Changeset 5721a6d for src


Ignore:
Timestamp:
Feb 1, 2016, 2:24:50 PM (10 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
2a4b088, b4cd03b7
Parents:
ae8b942
Message:

correctly set type for complex constants, consolidate function name tables, add offsetof, refactor printing complex constants to use basic types

Location:
src
Files:
1 added
15 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    rae8b942 r5721a6d  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct  5 16:37:24 2015
    13 // Update Count     : 255
     12// Last Modified On : Mon Feb  1 13:32:30 2016
     13// Update Count     : 271
    1414//
    1515
     
    9191static inline bool checkL( char c ) { return c == 'l' || c == 'L'; }
    9292static inline bool checkF( char c ) { return c == 'f' || c == 'F'; }
     93static inline bool checkD( char c ) { return c == 'd' || c == 'D'; }
     94static inline bool checkI( char c ) { return c == 'i' || c == 'I'; }
    9395static inline bool checkX( char c ) { return c == 'x' || c == 'X'; }
    9496
     
    114116                                { BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt },
    115117                        };
    116                         size_t last = value.length() - 1;                       // last character of constant
    117                         unsigned long long v;                                           // converted integral value
    118118                        bool dec = true, Unsigned = false;                      // decimal, unsigned constant
    119119                        int size;                                                                       // 0 => int, 1 => long, 2 => long long
     120                        unsigned long long v;                                           // converted integral value
     121                        size_t last = value.length() - 1;                       // last character of constant
    120122
    121123                        if ( value[0] == '0' ) {                                        // octal constant ?
     
    176178          case Float:
    177179                {
    178                         size_t len = value.length() - 1;
    179 
    180                         btype = BasicType::Double;                                      // default
    181                         if ( checkF( value[len] ) ) {                           // float ?
    182                                 btype = BasicType::Float;
    183                         } // if
    184                         if ( checkL( value[len] ) ) {                           // long double ?
    185                                 btype = BasicType::LongDouble;
    186                         } // if
     180                        static const BasicType::Kind kind[2][3] = {
     181                                { BasicType::Float, BasicType::Double, BasicType::LongDouble },
     182                                { BasicType::FloatComplex, BasicType::DoubleComplex, BasicType::LongDoubleComplex },
     183                        };
     184                        bool complx = false;                                            // real, complex
     185                        int size = 1;                                                           // 0 => float, 1 => double (default), 2 => long double
     186                        // floating-point constant has minimum of 2 characters: 1. or .1
     187                        size_t last = value.length() - 1;
     188
     189                        if ( checkI( value[last] ) ) {                          // imaginary ?
     190                                complx = true;
     191                                last -= 1;                                                              // backup one character
     192                        } // if
     193                        if ( checkF( value[last] ) ) {                          // float ?
     194                                size = 0;
     195                        } else if ( checkD( value[last] ) ) {           // double ?
     196                                size = 1;
     197                        } else if ( checkL( value[last] ) ) {           // long double ?
     198                                size = 2;
     199                        } // if
     200                        if ( ! complx && checkI( value[last - 1] ) ) { // imaginary ?
     201                                complx = true;
     202                        } // if
     203                        btype = kind[complx][size];                                     // lookup constant type
    187204                        break;
    188205                }
     
    365382//##############################################################################
    366383
     384static const char *opName[] = {
     385        "TupleC", "Comma", "TupleFieldSel", // "TuplePFieldSel", // n-adic
     386        // triadic
     387        "Cond", "NCond",
     388        // diadic
     389        "SizeOf", "AlignOf", "OffsetOf", "Attr", "CompLit", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&",
     390        "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?",
     391        "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",
     392        "?[?]", "FieldSel", "PFieldSel", "Range",
     393        // monadic
     394        "+?", "-?", "AddressOf", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "&&"
     395};
     396
    367397OperatorNode::OperatorNode( Type t ) : type( t ) {}
    368398
     
    378408void OperatorNode::printOneLine( std::ostream &os, int indent ) const {
    379409        printDesignation( os );
    380         os << OpName[ type ] << ' ';
     410        os << opName[ type ] << ' ';
    381411}
    382412
    383413void OperatorNode::print( std::ostream &os, int indent ) const{
    384414        printDesignation( os );
    385         os << string( indent, ' ' ) << "Operator: " << OpName[type] << endl;
     415        os << string( indent, ' ' ) << "Operator: " << opName[type] << endl;
    386416        return;
    387417}
    388418
    389419const char *OperatorNode::get_typename( void ) const{
    390         return OpName[ type ];
    391 }
    392 
    393 const char *OperatorNode::OpName[] = {
    394         "TupleC",  "Comma", "TupleFieldSel",// "TuplePFieldSel", //n-adic
    395         // triadic
    396         "Cond",   "NCond",
    397         // diadic
    398         "SizeOf",     "AlignOf", "Attr", "CompLit", "Plus",    "Minus",   "Mul",     "Div",     "Mod",      "Or",
    399         "And",       "BitOr",   "BitAnd",  "Xor",     "Cast",    "LShift",  "RShift",  "LThan",   "GThan",
    400         "LEThan",    "GEThan", "Eq",      "Neq",     "Assign",  "MulAssn", "DivAssn", "ModAssn", "PlusAssn",
    401         "MinusAssn", "LSAssn", "RSAssn",  "AndAssn", "ERAssn",  "OrAssn",  "Index",   "FieldSel","PFieldSel",
    402         "Range",
    403         // monadic
    404         "UnPlus", "UnMinus", "AddressOf", "PointTo", "Neg", "BitNeg", "Incr", "IncrPost", "Decr", "DecrPost", "LabelAddress"
    405 };
     420        return opName[ type ];
     421}
    406422
    407423//##############################################################################
     
    438454        delete arguments;
    439455}
    440 
    441 // the names that users use to define operator functions
    442 static const char *opFuncName[] = {
    443         "",             "",             "",
    444         "",             "",
    445         //diadic
    446         "",             "",             "",             "",             "?+?",          "?-?",  "?*?",  "?/?",  "?%?",  "",              "",
    447         "?|?",          "?&?",          "?^?",  "",             "?<<?", "?>>?", "?<?",  "?>?",  "?<=?",
    448         "?>=?",         "?==?",         "?!=?", "?=?",  "?*=?", "?/=?", "?%=?", "?+=?", "?-=?",
    449         "?<<=?",        "?>>=?",        "?&=?", "?^=?", "?|=?", "?[?]", "",             "",             "Range",
    450         //monadic
    451         "+?",           "-?",           "",             "*?",   "!?",   "~?",   "++?",  "?++",  "--?",  "?--",  "&&"
    452 };
    453456
    454457#include "Common/utility.h"
     
    529532          case OperatorNode::BitNeg:
    530533          case OperatorNode::LabelAddress:
    531                 return new UntypedExpr( new NameExpr( opFuncName[ op->get_type() ] ), args );
     534                return new UntypedExpr( new NameExpr( opName[ op->get_type() ] ), args );
    532535          case OperatorNode::AddressOf:
    533536                assert( args.size() == 1 );
     
    585588                        return ret;
    586589                }
     590          case OperatorNode::SizeOf:
     591                {
     592                        if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()) ) {
     593                                return new SizeofExpr( arg->get_decl()->buildType());
     594                        } else {
     595                                return new SizeofExpr( args.front());
     596                        } // if
     597                }
    587598          case OperatorNode::AlignOf:
    588599                {
     
    593604                        } // if
    594605                }
    595           case OperatorNode::SizeOf:
    596                 {
    597                         if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()) ) {
    598                                 return new SizeofExpr( arg->get_decl()->buildType());
    599                         } else {
    600                                 return new SizeofExpr( args.front());
    601                         } // if
     606          case OperatorNode::OffsetOf:
     607                {
     608                        assert( false );
    602609                }
    603610          case OperatorNode::Attr:
     
    650657          default:
    651658                // shouldn't happen
     659                assert( false );
    652660                return 0;
    653661        } // switch
     
    660668        for ( ExpressionNode *cur = arguments; cur != 0; cur = dynamic_cast< ExpressionNode* >( cur->get_link() ) ) {
    661669                cur->printOneLine( os, indent );
    662         }
     670        } // for
    663671        os << ") ";
    664672}
  • src/Parser/ParseNode.h

    rae8b942 r5721a6d  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 15 17:24:30 2016
    13 // Update Count     : 174
     12// Last Modified On : Mon Feb  1 13:32:32 2016
     13// Update Count     : 184
    1414//
    1515
     
    175175class OperatorNode : public ExpressionNode {
    176176  public:
    177         enum Type { TupleC, Comma, TupleFieldSel,
     177        enum Type { TupleC, Comma, TupleFieldSel, // n-adic
     178                                // triadic
    178179                                Cond, NCond,
    179                                 SizeOf, AlignOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And,
     180                                // diadic
     181                                SizeOf, AlignOf, OffsetOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And,
    180182                                BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq,
    181                                 Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn,
    182                                 ERAssn, OrAssn, Index, FieldSel, PFieldSel, Range,
    183                                 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress
     183                                Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,
     184                                Index, FieldSel, PFieldSel, Range,
     185                                // monadic
     186                                UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress,
    184187        };
    185188
     
    199202  private:
    200203        Type type;
    201         static const char *OpName[];
    202204};
    203205
  • src/Parser/lex.cc

    rae8b942 r5721a6d  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 178
    385 #define YY_END_OF_BUFFER 179
     384#define YY_NUM_RULES 180
     385#define YY_END_OF_BUFFER 181
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[862] =
     393static yyconst flex_int16_t yy_accept[884] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  113,  113,  116,  116,
    396       179,  177,    7,    9,    8,  136,  115,  100,  141,  144,
    397       112,  123,  124,  139,  137,  127,  138,  130,  140,  105,
    398       106,  107,  128,  129,  146,  148,  147,  149,  177,  100,
    399       121,  177,  122,  142,  100,  102,  100,  100,  100,  100,
    400       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    401       100,  125,  145,  126,  143,    7,  177,    4,    4,  178,
    402       103,  178,  104,  113,  114,  120,  116,  117,    7,    9,
    403         0,    8,  153,  172,  100,    0,  165,  135,  158,  166,
    404       163,  150,  161,  151,  162,  160,    0,  110,    3,    0,
    405 
    406       164,  110,  108,    0,    0,  108,  108,    0,    0,  108,
    407       107,  107,  107,    0,  107,  133,  134,  132,  154,  156,
    408       152,  157,  155,    0,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,  101,  171,
    410         0,  115,  112,  100,    0,    0,  168,    0,  100,  100,
    411       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    412       100,  100,  100,  100,  100,   39,  100,  100,  100,  100,
    413       100,  100,  100,  100,  100,  100,   57,  100,  100,  100,
    414       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    415       100,  100,  167,  159,    7,    0,    0,    0,    2,    0,
    416 
    417         5,  103,    0,    0,    0,  113,    0,  119,  118,  118,
    418         0,    0,    0,  116,    0,    0,    0,    0,    0,    0,
    419         0,    0,    0,    0,    0,    0,    0,    0,    0,  131,
    420       110,  110,    0,  110,  110,    0,    0,    6,    0,  108,
    421         0,    0,    0,  110,    0,  108,  108,  108,  108,    0,
    422       109,    0,    0,  107,  107,  107,  107,    0,  169,  170,
    423         0,  175,  173,    0,    0,    0,  101,    0,    0,    0,
    424         0,    0,    0,    0,    0,  100,   17,  100,  100,  100,
    425       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    426       100,  100,  100,  100,   14,  100,  100,  100,  100,  100,
    427 
    428       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    429       100,  100,  100,   51,  100,  100,  100,   64,  100,  100,
    430       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    431        87,  100,  100,  100,  100,  100,  100,  100,    0,    0,
    432         0,    0,    0,    0,    0,    0,  118,    0,    0,    0,
    433         0,    0,  118,    0,    0,  176,    0,    0,    0,    0,
    434         0,    0,    0,  110,    0,  110,    0,  110,  110,    0,
    435         0,  110,    0,  108,  108,    0,    0,  109,  109,    0,
    436       109,    0,  109,  107,  107,    0,    0,    0,    0,    0,
    437         0,    0,    0,    0,    0,  174,  100,  100,  100,  100,
    438 
    439       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    440       100,  100,  100,  100,  100,  100,  100,  100,   21,  100,
    441        24,  100,   27,  100,  100,  100,  100,  100,  100,  100,
    442        42,  100,   44,  100,  100,  100,  100,  100,  100,  100,
    443        56,  100,   67,  100,  100,  100,  100,  100,  100,  100,
    444       100,  100,  100,  100,   88,  100,  100,   95,  100,  100,
     395        0,    0,    0,    0,    0,    0,  115,  115,  118,  118,
     396      181,  179,    7,    9,    8,  138,  117,  102,  143,  146,
     397      114,  125,  126,  141,  139,  129,  140,  132,  142,  107,
     398      108,  109,  130,  131,  148,  150,  149,  151,  179,  102,
     399      123,  179,  124,  144,  102,  104,  102,  102,  102,  102,
     400      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     401      102,  102,  127,  147,  128,  145,    7,  179,    4,    4,
     402      180,  105,  180,  106,  115,  116,  122,  118,  119,    7,
     403        9,    0,    8,  155,  174,  102,    0,  167,  137,  160,
     404      168,  165,  152,  163,  153,  164,  162,    0,  112,    3,
     405
     406        0,  166,  112,  110,    0,    0,  110,  110,    0,    0,
     407      110,  109,  109,  109,    0,  109,  135,  136,  134,  156,
     408      158,  154,  159,  157,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
     410      173,    0,  117,  114,  102,    0,    0,  170,    0,  102,
     411      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     412      102,  102,  102,  102,  102,  102,   39,  102,  102,  102,
     413      102,  102,  102,  102,  102,  102,  102,   57,  102,  102,
     414      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     415      102,  102,  102,  102,  169,  161,    7,    0,    0,    0,
     416
     417        2,    0,    5,  105,    0,    0,    0,  115,    0,  121,
     418      120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
    445419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    446         0,    0,    0,    0,  118,    0,    0,    0,    0,    0,
    447       110,    0,    0,    0,    0,    0,    0,  109,  109,    0,
    448       111,    0,  109,  109,    0,    0,    0,    0,    0,    0,
    449 
    450         0,    0,    0,    0,    0,    0,    0,  100,  100,   22,
    451       100,  100,  100,  100,  100,  100,  100,   15,  100,  100,
    452       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    453       100,   23,   25,  100,   32,  100,  100,  100,  100,  100,
    454        41,  100,  100,  100,  100,   49,  100,  100,   54,  100,
    455       100,  100,  100,  100,   75,  100,  100,  100,  100,  100,
    456        85,  100,  100,   93,  100,  100,   99,    0,    0,    0,
     420        0,  133,  112,  112,    0,  112,  112,  112,    0,    6,
     421      112,  110,    0,    0,    0,  112,    0,  110,  110,  110,
     422      110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
     423      171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
     424        0,    0,    0,    0,    0,    0,    0,  102,   17,  102,
     425      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     426      102,  102,  102,  102,  102,  102,  102,   14,  102,  102,
     427
     428      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     429      102,  102,  102,  102,  102,  102,   51,  102,  102,  102,
     430       64,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     431      102,  102,  102,  102,   89,  102,  102,  102,  102,  102,
     432      102,  102,    0,    0,    0,    0,    0,    0,    0,    0,
     433      120,    0,    0,    0,    0,    0,  120,    0,    0,  178,
     434        0,    0,    0,    0,    0,    0,    0,  112,    0,  112,
     435        0,  112,    0,    0,  112,  112,  110,  110,    0,    0,
     436      111,  111,    0,  111,    0,  111,  109,  109,    0,    0,
     437        0,    0,    0,    0,    0,    0,    0,    0,  176,  102,
     438
     439      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     440      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     441      102,  102,   21,  102,   24,  102,   27,  102,  102,  102,
     442      102,  102,  102,  102,   42,  102,   44,  102,  102,  102,
     443      102,  102,  102,  102,   56,  102,   67,  102,  102,  102,
     444      102,  102,  102,  102,  102,  102,  102,  102,  102,   90,
     445      102,  102,   97,  102,  102,    0,    0,    0,    0,    0,
     446        0,    0,    0,    0,    0,    0,    0,    0,    0,  120,
     447        0,    0,    0,    0,    0,  112,  112,    0,    0,    0,
     448        0,    0,  111,  111,    0,  113,    0,  111,  111,    0,
     449
    457450        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    458         0,    0,    0,    0,    0,    0,  111,    0,    0,  109,
    459       111,  111,  111,  111,    0,  109,    0,    0,    0,    0,
    460 
    461         0,    0,    0,    0,    0,    0,  100,    0,  100,  100,
    462       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    463       100,  100,  100,   59,  100,  100,  100,  100,  100,  100,
    464       100,  100,   28,  100,  100,  100,  100,   40,   43,   46,
    465       100,  100,   52,  100,   61,   68,  100,  100,   74,   76,
    466        79,   80,   82,   83,  100,  100,   90,  100,  100,    0,
    467         1,    0,    0,    0,    0,    0,    0,  103,    0,    0,
    468         0,  118,    0,    0,    0,    0,  111,    0,  111,  111,
    469       111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    470       100,  100,   18,  100,  100,  100,  100,  100,  100,  100,
    471 
    472        16,  100,  100,   33,  100,  100,  100,  100,  100,  100,
    473       100,  100,  100,  100,  100,   35,  100,   37,   38,  100,
    474        48,   53,  100,  100,  100,   89,  100,  100,    0,    0,
     451        0,    0,  102,  102,   22,  102,  102,  102,  102,  102,
     452      102,  102,   15,  102,  102,  102,  102,  102,  102,  102,
     453      102,  102,  102,  102,  102,  102,  102,   23,   25,  102,
     454       32,  102,  102,  102,  102,  102,   41,  102,  102,  102,
     455      102,   49,  102,  102,   54,  102,  102,  102,  102,  102,
     456      102,   77,  102,  102,  102,  102,  102,   87,  102,  102,
     457       95,  102,  102,  101,    0,    0,    0,    0,    0,    0,
    475458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    476         0,   10,   11,   29,   55,  100,  100,  100,  100,  100,
    477       100,  100,  100,  100,  100,   60,   62,   65,  100,  100,
    478        77,   91,  100,  100,   36,   47,   70,   71,  100,   94,
    479        96,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    480         0,    0,    0,  100,   69,  100,  100,   12,  100,   30,
    481        34,  100,  100,  100,   66,  100,  100,  100,  100,  100,
    482 
    483       100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    484         0,    0,    0,    0,   58,  100,  100,  100,  100,  100,
    485       100,   50,   63,   72,   78,   92,   97,  100,  100,    0,
    486         0,    0,    0,    0,    0,    0,    0,  100,  100,   13,
    487        19,   31,  100,  100,  100,   26,   86,    0,    0,  100,
    488       100,  100,  100,   73,   98,  100,   84,   20,   45,   81,
    489         0
     459        0,    0,    0,  113,    0,    0,  111,  113,  113,  113,
     460
     461      113,  113,  111,    0,    0,    0,    0,    0,    0,    0,
     462        0,    0,    0,  102,    0,  102,  102,  102,  102,  102,
     463      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     464      102,   59,  102,  102,  102,  102,  102,  102,  102,  102,
     465       28,  102,  102,  102,  102,   40,   43,   46,  102,  102,
     466       52,  102,   61,   68,  102,  102,  102,   76,   78,   81,
     467       82,   84,   85,  102,  102,   92,  102,  102,    0,    1,
     468        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     469      120,    0,    0,    0,    0,  113,  113,  113,  113,    0,
     470        0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
     471
     472       18,  102,  102,  102,  102,  102,  102,  102,   16,  102,
     473      102,  102,   33,  102,  102,  102,  102,  102,  102,  102,
     474      102,  102,  102,  102,   35,  102,   37,   38,  102,   48,
     475       53,  102,  102,  102,  102,   91,  102,  102,    0,    0,
     476        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     477        0,   10,   11,   29,   55,  102,  102,  102,  102,  102,
     478      102,  102,  102,  102,  102,  102,   60,   62,   65,  102,
     479      102,   79,   93,  102,  102,   36,   47,   70,   72,   73,
     480      102,   96,   98,    0,    0,    0,    0,    0,    0,    0,
     481        0,    0,    0,    0,    0,  102,   69,  102,  102,   12,
     482
     483      102,  102,   30,   34,  102,  102,  102,   66,  102,  102,
     484      102,  102,  102,  102,    0,    0,    0,    0,    0,    0,
     485        0,    0,    0,    0,    0,    0,    0,   58,  102,  102,
     486      102,  102,  102,  102,  102,   50,   63,   74,   80,   94,
     487       99,  102,  102,    0,    0,    0,    0,    0,    0,    0,
     488        0,  102,  102,   13,   19,  102,   31,  102,  102,  102,
     489       26,   88,    0,    0,  102,  102,  102,  102,  102,   75,
     490      100,  102,   86,   20,  102,   45,   83,  102,  102,  102,
     491      102,   71,    0
    490492    } ;
    491493
     
    535537    } ;
    536538
    537 static yyconst flex_int16_t yy_base[1036] =
     539static yyconst flex_int16_t yy_base[1058] =
    538540    {   0,
    539         0,   83, 2200, 2197,   93,    0,  175,  176,  177,  178,
    540      2213, 2760,  189, 2760,  195,   54, 2760, 2160,   59,  171,
    541      2760, 2760, 2760,   55,  186, 2760,  189,  187,  202,  214,
    542       272,    0, 2177, 2760,  214, 2175,  150,  340,  153,  222,
    543      2760,  157, 2760,  215,  224, 2760,  207,  181,  221,  249,
    544       235,  289,  155,  255,  218,  206,  266,  256,  323,  259,
    545       192, 2760,  223, 2760, 2170,  377,  342, 2760, 2181, 2760,
    546      2150,  234, 2760,    0, 2760,  421,    0, 2760,  393, 2760,
    547       399,  405, 2760,  492, 2148,  241, 2760, 2760, 2760, 2760,
    548      2760, 2163, 2760, 2160, 2760, 2760, 2172,  552, 2760, 2189,
    549 
    550      2760,  413,  393,  437,  493,  377,  318,  195,  430,  382,
    551         0,  384,  321,  196,  427, 2760, 2760, 2760, 2158, 2760,
    552      2760, 2760, 2155, 2152,  252,  302, 2167,  342,  435,  422,
    553       381,  455,  400,  494, 2148,  440, 2097,  469, 2125, 2760,
    554       276, 2760, 2760,  520, 2119, 2118, 2760, 2091,  414,  463,
    555       470,  325,  254,  479,  432,  274,  480,  423,  483,  498,
    556       492,  503,  499,  509,  341,  455,  484,  377,  510,  512,
    557       517,  518,  529,  486,  530,  531, 2118,  536,  537,  541,
    558       548,  538,  552,  544,  566,  568,  545,  571,  593,  573,
    559       574,  578, 2760, 2760,  647,  653, 2147,  659, 2760,  665,
    560 
    561      2760, 2096,  584, 2092, 2089,    0,  662, 2760, 2760,  671,
    562      2086, 2085, 2084,    0, 2105,  595,  602,  603,  680,  679,
    563       639,  669,  670,  673, 2100,  676,  683, 2076, 2075, 2760,
    564         0,  666,  704,  677,  680, 2074, 2124, 2760,  706,    0,
    565       697,  730,  737,  769,  754,  595, 2760, 2081, 2054,    0,
    566       755, 2099,  790,  672, 2760, 2076, 2050,  814, 2760, 2760,
    567      2080, 2760, 2760,  691,  702, 2058, 2058,  694, 2054, 2052,
    568      2049,    0, 2048,    0, 2019,  686,  731,  732,  595,  606,
    569       768,  734,  771,  735,  780,  751,  757,  683,  775,  794,
    570       738,  723,  781,  796, 2048,  797,  798,  800,  804,  805,
    571 
    572       806,  807,  813,  816,  820,  812,  810,  827,  737,  823,
    573       822,  830,  834,  836,  838,  842,  840, 2045,  843,  844,
    574       848,  845,  846,  850,  847,  856,  849,  851,  855,  862,
    575      2044,  863,  895,  866,  868,  875,  873,  876,  935,  931,
    576      2040, 2038, 2035,    0, 2031,    0,  925,  929, 2027,    0,
    577      2025,    0, 2023,    0, 2041, 2760,  907,  924, 2020, 2016,
    578         0, 2013,    0, 2760,  936,  958,  947, 2760, 2760,  964,
    579       979, 1003, 2010, 2760, 2760,  923,  924,  990,  965, 1023,
    580       950, 1017,  949, 2760, 2760, 2009, 2008, 2006,    0, 2003,
    581         0, 2000,    0, 1999,    0, 2760,  894,  944,  969,  985,
    582 
    583       992,  914, 1002,  958, 1003,  957,  947, 1000, 1007, 1015,
    584      1016, 1025, 1027, 1029, 1017, 1028, 1031, 1018, 2001,  879,
    585      1999, 1041, 1996, 1043, 1044, 1045, 1046, 1051, 1047, 1052,
    586      1993, 1048, 1992, 1055, 1056, 1059, 1060, 1065, 1067, 1068,
    587      1991, 1071, 1989, 1070, 1073, 1072, 1076, 1079, 1081, 1084,
    588      1085, 1097, 1099, 1083, 1095, 1100, 1105, 1986, 1089, 1109,
    589      1163, 1980,    0, 1979,    0, 1978,    0, 1976,    0, 1150,
    590      1973,    0, 1970,    0, 1969, 1968, 1966,    0, 1963,    0,
    591      1154, 1960, 1160, 1146, 1180, 1147, 1093, 1145, 2760, 1199,
    592      1213, 1239, 1971, 1946, 1956, 1953,    0, 1950,    0, 1949,
    593 
    594         0, 1948,    0, 1946,    0, 1943,    0, 1143, 1177, 1945,
    595      1161, 1138, 1178, 1115, 1179, 1193, 1195, 1107, 1181, 1180,
    596      1196, 1209, 1197, 1208, 1220, 1119, 1222, 1224, 1225, 1227,
    597      1229, 1944, 1238, 1230, 1942, 1235, 1237, 1240, 1241, 1243,
    598      1939, 1244, 1245, 1147, 1248, 1938, 1249, 1260, 1937, 1250,
    599      1257, 1247, 1258, 1251, 1935, 1267, 1270, 1272, 1273, 1182,
    600      1282, 1274, 1277, 1902, 1281, 1278, 1900, 1948, 1893,    0,
    601      1890,    0, 1889,    0, 1888,    0, 1886,    0, 1883,    0,
    602      1880,    0, 1879,    0, 1328, 1334, 1361, 1345, 1878, 2760,
    603      1351, 1297, 1351, 1352, 1876, 2760, 1873,    0, 1872,    0,
    604 
    605      1871,    0, 1869,    0,    0,    0, 1869,    0, 1340, 1285,
    606      1284, 1315, 1297, 1330, 1289, 1286, 1329, 1341, 1343, 1350,
    607      1355, 1363, 1357, 1367, 1368, 1399, 1373, 1375, 1378, 1382,
    608      1381, 1383, 1868, 1384, 1386, 1389, 1393, 1867, 1865, 1862,
    609      1390, 1391, 1858, 1396, 1854, 1850, 1398, 1394, 1834, 1833,
    610      1832, 1830, 1827, 1826, 1405, 1412, 1825, 1408, 1404, 1872,
    611      2760, 1817,    0, 1816,    0,    0,    0, 1818,    0,    0,
    612         0, 2760,    0,    0,    0,    0, 1452, 1813, 2760, 2760,
    613      2760, 1458, 1810,    0, 1809,    0,    0,    0,    0, 1808,
    614      1415, 1435, 1809, 1420, 1437, 1416, 1438, 1447, 1448, 1441,
    615 
    616      1806, 1457, 1440, 1453, 1452, 1482, 1466, 1468, 1489, 1471,
    617      1470, 1472, 1475, 1478, 1476, 1805, 1479, 1804, 1802, 1481,
    618      1799, 1798, 1486, 1487, 1484, 1797, 1490, 1492,    0,    0,
    619         0, 1792, 1789, 1788, 1539,    0, 1787, 1785, 1782, 1781,
    620      1780, 1781, 1778, 1777, 1776, 1496, 1500, 1494, 1493, 1518,
    621      1502, 1495, 1519, 1507, 1530, 1774, 1523, 1767, 1524, 1529,
    622      1531, 1532, 1533, 1537, 1765, 1764, 1761, 1760, 1538, 1759,
    623      1757, 1737, 1728, 1727, 1724, 1717, 1714, 1707, 1705, 1704,
    624      1683, 1682, 1681, 1539, 1677, 1541, 1540, 1543, 1545, 1544,
    625      1675, 1550, 1574, 1551, 1674, 1553, 1552, 1556, 1563, 1557,
    626 
    627      1564, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1621, 1619,
    628      1618, 1617, 1616, 1615, 1617, 1565, 1569, 1578, 1570, 1582,
    629      1571, 1616, 1615, 1584, 1614, 1583, 1589, 1590, 1591, 1574,
    630      1394, 1346, 1344, 1287, 1018, 1016,  987, 1593, 1596,  924,
    631      1594,  767, 1595, 1603, 1604,  689,  576,  370,  335, 1605,
    632      1608, 1609, 1610,  337,  290, 1611,  251,  200,  196,  136,
    633      2760, 1685, 1698, 1711, 1721, 1731, 1744, 1754, 1767, 1780,
    634      1793, 1801, 1811, 1818, 1825, 1832, 1839, 1846, 1853, 1860,
    635      1867, 1874, 1887, 1894, 1898, 1906, 1909, 1916, 1923, 1930,
    636      1933, 1940, 1946, 1959, 1972, 1979, 1986, 1993, 2000, 2003,
    637 
    638      2010, 2013, 2020, 2023, 2030, 2033, 2040, 2043, 2050, 2053,
    639      2060, 2063, 2070, 2078, 2085, 2092, 2099, 2106, 2109, 2116,
    640      2119, 2126, 2129, 2136, 2142, 2155, 2162, 2169, 2172, 2179,
    641      2182, 2189, 2192, 2199, 2202, 2209, 2212, 2219, 2222, 2229,
    642      2236, 2239, 2246, 2249, 2256, 2263, 2270, 2273, 2280, 2283,
    643      2290, 2293, 2300, 2303, 2310, 2313, 2320, 2326, 2339, 2346,
    644      2353, 2356, 2363, 2366, 2373, 2376, 2383, 2386, 2393, 2396,
    645      2403, 2406, 2413, 2416, 2423, 2426, 2433, 2440, 2443, 2450,
    646      2453, 2460, 2463, 2470, 2473, 2476, 2482, 2489, 2498, 2505,
    647      2512, 2515, 2522, 2525, 2528, 2534, 2541, 2544, 2547, 2550,
    648 
    649      2553, 2556, 2559, 2562, 2569, 2572, 2579, 2582, 2585, 2588,
    650      2591, 2601, 2608, 2611, 2614, 2617, 2624, 2631, 2638, 2641,
    651      2648, 2655, 2662, 2669, 2676, 2683, 2690, 2697, 2704, 2711,
    652      2718, 2725, 2732, 2739, 2746
     541        0,   83, 2252, 2249,   93,    0,  175,  176,  177,  178,
     542     2263, 2799,  189, 2799,  195,   54, 2799, 2210,   59,  171,
     543     2799, 2799, 2799,   55,  186, 2799,  189,  187,  202,  214,
     544      272,    0, 2228, 2799,  214, 2227,  150,  340,  153,  222,
     545     2799,  157, 2799,  215,  224, 2799,  207,  181,  221,  249,
     546      235,  289,  155,  255,  218,  196,  257,  312,  256,  323,
     547      259,  192, 2799,  185, 2799, 2222,  377,  342, 2799, 2231,
     548     2799, 2200,  241, 2799,    0, 2799,  421,    0, 2799,  393,
     549     2799,  399,  405, 2799,  492, 2199,  256, 2799, 2799, 2799,
     550     2799, 2799, 2215, 2799, 2212, 2799, 2799, 2222,  552, 2799,
     551
     552     2239, 2799,  413,  393,  437,  493,  377,  263,  195,  430,
     553      276,    0,  382,  318,  231,  400, 2799, 2799, 2799, 2209,
     554     2799, 2799, 2799, 2207, 2204,  302,  306, 2217,  356,  395,
     555      422,  400,  455,  440,  469, 2198,  494, 2148,  495, 2177,
     556     2799,  384, 2799, 2799,  521, 2171, 2168, 2799, 2141,  414,
     557      424,  463,  470,  274,  480,  341,  485,  495,  401,  432,
     558      484,  490,  513,  482,  520,  486,  506,  487,  488,  533,
     559      532,  534,  535,  541,  231,  536,  544, 2169,  553,  547,
     560      545,  548,  569,  570,  546,  572,  571,  573,  551,  576,
     561      622,  581,  583,  586, 2799, 2799,  653,  659, 2216,  665,
     562
     563     2799,  692, 2799, 2164,  590, 2158, 2157,    0,  668, 2799,
     564     2799,  655, 2156, 2154, 2134,    0, 2155,  664,  668,  671,
     565      679,  689,  672,  693,  680,  696, 2152,  699,  700, 2128,
     566     2125, 2799,    0,  599,  717,  707,  611, 2124, 2175, 2799,
     567      715,    0,  486,  738,  760,  777,  803,  673, 2799, 2133,
     568     2106,    0,  791, 2149,  783,  677, 2799, 2126, 2101,  824,
     569     2799, 2799, 2132, 2799, 2799,  704,  715, 2110, 2108,  704,
     570     2104, 2103, 2101,    0, 2098,    0, 2067,  708,  582,  719,
     571      729,  687,  738,  597,  739,  742,  801,  740,  765,  746,
     572      766,  791,  804,  707,  789,  793,  803, 2097,  811,  812,
     573
     574      761,  818,  813,  819,  824,  826,  830,  828,  699,  832,
     575      836,  838,  839,  840,  844,  847,  851,  843,  850,  853,
     576     2096,  492,  857,  858,  861,  859,  860,  864,  863,  867,
     577      865,  869,  871,  870, 2094,  877,  918,  878,  882,  889,
     578      885,  891,  948,  943, 2088, 2087, 2086,    0, 2084,    0,
     579      936,  940, 2081,    0, 2080,    0, 2079,    0, 2098, 2799,
     580      922,  935, 2076, 2070,    0, 2066,    0, 2799,  948,  969,
     581      959, 2799,  975,  990, 1014, 2064, 2799, 2799,  933,  935,
     582     1001,  976, 1034,  938, 1028,  960, 2799, 2799, 2062, 2059,
     583     2057,    0, 2055,    0, 2052,    0, 2049,    0, 2799,  958,
     584
     585      955,  901,  976, 1003,  980, 1013,  974, 1014,  968, 1011,
     586     1018, 1015, 1029, 1026, 1032, 1030, 1034, 1033, 1036, 1041,
     587     1042, 1038, 2051, 1044, 2050, 1054, 2048, 1055, 1059, 1060,
     588     1062, 1064, 1063, 1065, 2045, 1067, 2042, 1068, 1071, 1072,
     589     1075, 1077, 1079, 1080, 2041, 1083, 2040, 1084, 1086, 1090,
     590     1094, 1096, 1091, 1101, 1102, 1104, 1098, 1108, 1103, 1118,
     591     1106, 1119, 2038, 1109, 1112, 1176, 2032,    0, 2029,    0,
     592     2028,    0, 2027,    0, 1166, 2025,    0, 2022,    0, 2019,
     593     2018, 2017,    0, 2015,    0, 1170, 2012, 1176, 1162, 1196,
     594     1163, 1139, 1166, 2799, 1219, 1229, 1255, 2021, 1996, 2007,
     595
     596     2005,    0, 2002,    0, 1999,    0, 1998,    0, 1997,    0,
     597     1995,    0, 1159, 1122, 1995, 1196, 1134, 1174, 1153, 1184,
     598     1124, 1177, 1206, 1198, 1207, 1214, 1213, 1208, 1210, 1224,
     599     1212, 1264, 1238, 1240, 1241, 1243, 1245, 1992, 1254, 1246,
     600     1991, 1249, 1251, 1256, 1257, 1260, 1990, 1261, 1259, 1253,
     601     1263, 1988, 1266, 1274, 1985, 1273, 1277, 1267, 1280, 1283,
     602     1284, 1984, 1285,  805, 1287, 1288, 1291, 1298, 1290, 1295,
     603     1983, 1297, 1300, 1981, 2027, 1974,    0, 1973,    0, 1971,
     604        0, 1938,    0, 1936,    0, 1935,    0, 1932,    0, 1929,
     605        0, 1344, 1350, 1377, 1361, 1928, 2799, 1367, 1317, 1367,
     606
     607     1318, 1927, 2799, 1925,    0, 1922,    0, 1919,    0, 1918,
     608        0,    0,    0, 1920,    0, 1355, 1304, 1356, 1344, 1328,
     609     1346, 1359, 1363, 1361, 1306, 1376, 1362, 1379, 1374, 1381,
     610     1383, 1388, 1386, 1399, 1393, 1395, 1397, 1400, 1401, 1402,
     611     1918, 1404, 1407, 1409, 1410, 1915, 1914, 1913, 1412, 1413,
     612     1911, 1416, 1908, 1907, 1417, 1420, 1414, 1906, 1904, 1901,
     613     1897, 1893, 1889, 1425, 1427, 1873, 1436, 1424, 1921, 2799,
     614     1868,    0, 1866,    0,    0,    0, 1866,    0,    0,    0,
     615     2799,    0,    0,    0,    0, 1475, 1862, 2799, 2799, 1481,
     616     1861,    0, 1859,    0,    0,    0,    0, 1856, 1422, 1428,
     617
     618     1858, 1441, 1461, 1458, 1444, 1469, 1470, 1442, 1857, 1471,
     619     1474, 1480, 1476, 1475, 1509, 1491, 1486, 1507, 1497, 1492,
     620     1493, 1498, 1499, 1502, 1855, 1504, 1852, 1851, 1503, 1850,
     621     1848, 1506, 1510, 1511, 1514, 1845, 1517, 1515,    0,    0,
     622        0, 1841, 1840, 1838, 1565,    0, 1835, 1834, 1833, 1831,
     623     1828, 1830, 1829, 1827, 1824, 1522, 1527, 1529, 1528, 1521,
     624     1532, 1545, 1520, 1547, 1548, 1576, 1823, 1551, 1822, 1553,
     625     1552, 1557, 1563, 1558, 1564, 1820, 1817, 1816, 1815, 1813,
     626     1565, 1806, 1804, 1800, 1797, 1796, 1795, 1793, 1776, 1767,
     627     1766, 1763, 1756, 1753, 1746, 1567, 1747, 1569, 1571, 1572,
     628
     629     1570, 1574, 1578, 1746, 1579, 1605, 1582, 1725, 1584, 1583,
     630     1593, 1591, 1595, 1598, 1721, 1720, 1713, 1711, 1710, 1668,
     631     1664, 1663, 1662, 1661, 1660, 1659, 1657, 1657, 1599, 1601,
     632     1604, 1603, 1609, 1610, 1602, 1655, 1654, 1615, 1519, 1518,
     633     1621, 1616, 1617, 1456, 1309, 1183, 1122,  998,  934,  770,
     634      653, 1622, 1623,  655, 1629, 1630,  621, 1633, 1634, 1635,
     635      585,  537,  436,  395, 1639, 1641, 1642, 1643, 1644,  362,
     636      322, 1646,  270,  232, 1648,  203,  199, 1649, 1650, 1652,
     637     1651,  136, 2799, 1724, 1737, 1750, 1760, 1770, 1783, 1793,
     638     1806, 1819, 1832, 1840, 1850, 1857, 1864, 1871, 1878, 1885,
     639
     640     1892, 1899, 1906, 1913, 1926, 1933, 1937, 1945, 1948, 1955,
     641     1962, 1969, 1972, 1979, 1985, 1998, 2011, 2018, 2025, 2032,
     642     2039, 2042, 2049, 2052, 2059, 2062, 2069, 2072, 2079, 2082,
     643     2089, 2092, 2099, 2102, 2109, 2117, 2124, 2131, 2138, 2145,
     644     2148, 2155, 2158, 2165, 2168, 2175, 2181, 2194, 2201, 2208,
     645     2211, 2218, 2221, 2228, 2231, 2238, 2241, 2248, 2251, 2258,
     646     2261, 2268, 2275, 2278, 2285, 2288, 2295, 2302, 2309, 2312,
     647     2319, 2322, 2329, 2332, 2339, 2342, 2349, 2352, 2359, 2365,
     648     2378, 2385, 2392, 2395, 2402, 2405, 2412, 2415, 2422, 2425,
     649     2432, 2435, 2442, 2445, 2452, 2455, 2462, 2465, 2472, 2479,
     650
     651     2482, 2489, 2492, 2499, 2502, 2509, 2512, 2515, 2521, 2528,
     652     2537, 2544, 2551, 2554, 2561, 2564, 2567, 2573, 2580, 2583,
     653     2586, 2589, 2592, 2595, 2598, 2601, 2608, 2611, 2618, 2621,
     654     2624, 2627, 2630, 2640, 2647, 2650, 2653, 2656, 2663, 2670,
     655     2677, 2680, 2687, 2694, 2701, 2708, 2715, 2722, 2729, 2736,
     656     2743, 2750, 2757, 2764, 2771, 2778, 2785
    653657    } ;
    654658
    655 static yyconst flex_int16_t yy_def[1036] =
     659static yyconst flex_int16_t yy_def[1058] =
    656660    {   0,
    657       861,    1,  862,  862,  861,    5,  863,  863,  864,  864,
    658       861,  861,  861,  861,  861,  861,  861,  865,  861,  861,
    659       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    660       861,   31,  861,  861,  861,  861,  861,  861,  866,  865,
    661       861,  861,  861,  861,  865,  861,  865,  865,  865,  865,
    662       865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
    663       865,  861,  861,  861,  861,  861,  867,  861,  861,  861,
    664       868,  861,  861,  869,  861,  861,  870,  861,  861,  861,
    665       861,  861,  861,  861,  865,  861,  861,  861,  861,  861,
    666       861,  861,  861,  861,  861,  861,  861,  861,  861,  871,
    667 
    668       861,   98,   30,  861,  861,  861,  861,  872,   30,  861,
    669        31,  861,  861,   31,  861,  861,  861,  861,  861,  861,
    670       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    671       861,  861,  861,  861,  861,  861,  861,  861,  873,  861,
    672       861,  861,  861,  865,  874,  875,  861,  861,  865,  865,
    673       865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
    674       865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
    675       865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
    676       865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
    677       865,  865,  861,  861,  861,  867,  867,  867,  861,  867,
    678 
    679       861,  868,  861,  876,  877,  869,  861,  861,  861,  861,
    680       878,  879,  880,  870,  861,  861,  861,  861,  861,  861,
    681       861,  861,  861,  861,  861,  861,  861,  881,  882,  861,
    682        98,  861,  861,  861,  861,   98,  883,  861,  861,  103,
    683       103,  861,  861,  861,  861,  861,  861,  861,  861,  884,
    684       885,  886,  861,  861,  861,  861,  861,  861,  861,  861,
    685       861,  861,  861,  861,  861,  861,  873,  861,  887,  888,
    686       889,  890,  891,  892,  861,  893,  893,  893,  893,  893,
    687       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
    688       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
    689 
    690       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
    691       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
    692       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
    693       893,  893,  893,  893,  893,  893,  893,  893,  894,  895,
    694       896,  897,  898,  899,  900,  901,  861,  861,  902,  903,
    695       904,  905,  906,  907,  861,  861,  861,  861,  861,  908,
    696       909,  910,  911,  861,  861,  861,  861,  861,  861,  861,
    697       861,  366,  372,  861,  861,  912,  913,  914,  861,  861,
    698       861,  914,  861,  861,  861,  915,  916,  917,  918,  919,
    699       920,  921,  922,  923,  924,  861,  925,  925,  925,  925,
    700 
    701       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    702       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    703       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    704       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    705       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    706       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    707       926,  927,  928,  929,  930,  931,  932,  933,  934,  861,
    708       935,  936,  937,  938,  939,  939,  940,  941,  942,  943,
    709       861,  481,  861,  944,  861,  944,  861,  861,  861,  861,
    710       861,  861,  861,  861,  945,  946,  947,  948,  949,  950,
    711 
    712       951,  952,  953,  954,  955,  956,  957,  958,  958,  958,
    713       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
    714       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
    715       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
    716       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
    717       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
    718       958,  958,  958,  958,  958,  958,  958,  959,  960,  961,
    719       962,  963,  964,  965,  966,  967,  968,  969,  970,  971,
    720       972,  973,  974,  975,  861,  861,  861,  861,  976,  861,
    721       587,  861,  861,  861,  591,  861,  977,  978,  979,  980,
    722 
    723       981,  982,  983,  984,  985,  986,  987,  988,  987,  987,
    724       987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
    725       987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
    726       987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
    727       987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
    728       987,  987,  987,  987,  987,  987,  987,  987,  987,  989,
    729       861,  990,  991,  992,  993,  994,  995,  996,  997,  998,
    730       999,  861, 1000, 1001, 1002, 1003,  861,  677,  861,  861,
    731       861,  861, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
    732      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    733 
    734      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    735      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    736      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1013, 1014,
    737      1015, 1016, 1017, 1018,  861, 1019, 1004, 1006, 1020, 1021,
    738      1011, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    739      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    740      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    741      1012, 1022, 1023, 1016, 1024, 1017, 1025, 1018, 1026, 1027,
    742      1020, 1028, 1021, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    743      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    744 
    745      1012, 1029, 1022, 1030, 1023, 1031, 1024, 1032, 1025, 1033,
    746      1026, 1034, 1027, 1028, 1012, 1012, 1012, 1012, 1012, 1012,
    747      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1035,
    748      1029, 1030, 1031, 1032, 1006, 1033, 1034, 1012, 1012, 1012,
    749      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1035, 1006, 1012,
    750      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    751         0,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    752       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    753       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    754       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    755 
    756       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    757       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    758       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    759       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    760       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    761       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    762       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    763       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    764       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    765       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    766 
    767       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    768       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    769       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    770       861,  861,  861,  861,  861
     661      883,    1,  884,  884,  883,    5,  885,  885,  886,  886,
     662      883,  883,  883,  883,  883,  883,  883,  887,  883,  883,
     663      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     664      883,   31,  883,  883,  883,  883,  883,  883,  888,  887,
     665      883,  883,  883,  883,  887,  883,  887,  887,  887,  887,
     666      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     667      887,  887,  883,  883,  883,  883,  883,  889,  883,  883,
     668      883,  890,  883,  883,  891,  883,  883,  892,  883,  883,
     669      883,  883,  883,  883,  883,  887,  883,  883,  883,  883,
     670      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     671
     672      893,  883,   99,   30,  883,  883,  883,  883,  894,   30,
     673      883,   31,  883,  883,   31,  883,  883,  883,  883,  883,
     674      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     675      883,  883,  883,  883,  883,  883,  883,  883,  883,  895,
     676      883,  883,  883,  883,  887,  896,  897,  883,  883,  887,
     677      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     678      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     679      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     680      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     681      887,  887,  887,  887,  883,  883,  883,  889,  889,  889,
     682
     683      883,  889,  883,  890,  883,  898,  899,  891,  883,  883,
     684      883,  883,  900,  901,  902,  892,  883,  883,  883,  883,
     685      883,  883,  883,  883,  883,  883,  883,  883,  883,  903,
     686      904,  883,   99,  883,  883,  883,  883,   99,  905,  883,
     687      883,  104,  104,  883,  883,  883,  883,  883,  883,  883,
     688      883,  906,  907,  908,  883,  883,  883,  883,  883,  883,
     689      883,  883,  883,  883,  883,  883,  883,  883,  895,  883,
     690      909,  910,  911,  912,  913,  914,  883,  915,  915,  915,
     691      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     692      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     693
     694      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     695      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     696      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     697      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     698      915,  915,  916,  917,  918,  919,  920,  921,  922,  923,
     699      883,  883,  924,  925,  926,  927,  928,  929,  883,  883,
     700      883,  883,  883,  930,  931,  932,  933,  883,  883,  883,
     701      883,  883,  883,  883,  370,  375,  883,  883,  934,  935,
     702      936,  883,  883,  883,  936,  883,  883,  883,  937,  938,
     703      939,  940,  941,  942,  943,  944,  945,  946,  883,  947,
     704
     705      947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
     706      947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
     707      947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
     708      947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
     709      947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
     710      947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
     711      947,  947,  947,  947,  947,  948,  949,  950,  951,  952,
     712      953,  954,  955,  956,  883,  957,  958,  959,  960,  961,
     713      961,  962,  963,  964,  965,  883,  486,  883,  966,  883,
     714      966,  883,  883,  883,  883,  883,  883,  883,  883,  967,
     715
     716      968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
     717      978,  979,  980,  980,  980,  980,  980,  980,  980,  980,
     718      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
     719      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
     720      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
     721      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
     722      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
     723      980,  980,  980,  980,  981,  982,  983,  984,  985,  986,
     724      987,  988,  989,  990,  991,  992,  993,  994,  995,  996,
     725      997,  883,  883,  883,  883,  998,  883,  594,  883,  883,
     726
     727      883,  598,  883,  999, 1000, 1001, 1002, 1003, 1004, 1005,
     728     1006, 1007, 1008, 1009, 1010, 1009, 1009, 1009, 1009, 1009,
     729     1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
     730     1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
     731     1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
     732     1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
     733     1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1011,  883,
     734     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
     735      883, 1022, 1023, 1024, 1025,  883,  686,  883,  883,  883,
     736     1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1034,
     737
     738     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     739     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     740     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     741     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1036,
     742     1037, 1038, 1039, 1040,  883, 1041, 1026, 1028, 1042, 1043,
     743     1033, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     744     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     745     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     746     1034, 1034, 1034, 1044, 1045, 1038, 1046, 1039, 1047, 1040,
     747     1048, 1049, 1042, 1050, 1043, 1034, 1034, 1034, 1034, 1034,
     748
     749     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     750     1034, 1034, 1034, 1034, 1051, 1044, 1052, 1045, 1053, 1046,
     751     1054, 1047, 1055, 1048, 1056, 1049, 1050, 1034, 1034, 1034,
     752     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     753     1034, 1034, 1034, 1057, 1051, 1052, 1053, 1054, 1028, 1055,
     754     1056, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     755     1034, 1034, 1057, 1028, 1034, 1034, 1034, 1034, 1034, 1034,
     756     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     757     1034, 1034,    0,  883,  883,  883,  883,  883,  883,  883,
     758      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     759
     760      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     761      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     762      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     763      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     764      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     765      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     766      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     767      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     768      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     769      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     770
     771      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     772      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     773      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     774      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     775      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     776      883,  883,  883,  883,  883,  883,  883
    771777    } ;
    772778
    773 static yyconst flex_int16_t yy_nxt[2845] =
     779static yyconst flex_int16_t yy_nxt[2884] =
    774780    {   0,
    775781       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    779785       18,   18,   40,   18,   18,   18,   18,   18,   40,   18,
    780786       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
    781        51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
    782        18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
    783        62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
    784        87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
    785 
    786        70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
    787        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
    788        70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
     787       51,   52,   53,   18,   54,   18,   55,   18,   18,   56,
     788       18,   57,   58,   59,   60,   61,   62,   18,   18,   18,
     789       63,   64,   65,   66,   67,   84,   92,   85,   85,   67,
     790       88,   89,   68,   71,   71,   71,   71,   71,   71,   71,
     791
     792       71,   71,   71,   72,   71,   71,   71,   71,   71,   71,
    789793       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    790        71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
    791        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    792        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    793        71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
    794        78,  122,  123,   89,  140,   78,   78,   86,   75,   75,
    795        79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
    796 
    797        82,   81,   90,   92,  141,  145,   86,   97,   94,   98,
    798        98,   98,   98,   98,   98,  250,  861,   93,   99,   84,
    799        95,   96,   84,  100,  176,  117,   76,   76,   76,   76,
    800       142,  146,   86,  101,  102,  143,  103,  103,  103,  103,
    801       104,  104,  118,   86,  119,  120,  147,   86,  148,  252,
    802       258,   86,  160,  105,  193,  192,  106,   86,   86,  149,
    803       150,  151,  107,  108,  152,  153,  181,  154,  109,   86,
    804       155,  156,   86,   86,  105,   86,  144,  161,  157,  158,
    805       110,  159,  204,  261,  162,  262,   86,  179,  107,  228,
    806       163,  108,  102,  180,  111,  111,  111,  111,  111,  111,
    807 
    808        86,  168,   86,  169,  194,   86,   86,   86,  205,  164,
    809        86,  105,  170,  165,  112,  229,  177,   86,  166,  186,
    810       113,  281,  167,  178,  269,   86,  114,  187,  191,  182,
    811       183,  142,  105,  261,  188,  262,  143,  284,  115,  184,
    812        86,   86,  185,  198,  199,  171,  113,  124,  198,  189,
    813       270,  125,  126,  172,  127,  173,  128,  129,  174,  130,
    814       248,  131,  175,  256,  200,  200,  200,  200,  200,  200,
    815       132,  133,  134,  261,   86,  262,   86,  144,  195,   80,
    816        81,   81,   81,  195,  249,  280,  196,  257,   86,  861,
    817       135,  190,   86,  136,   79,   80,   81,   81,   81,   79,
    818 
    819        81,   80,   81,   81,   81,   81,   81,   80,   82,   82,
    820        82,   81,  261,  304,  262,  240,  240,  240,  240,  246,
    821       137,  138,  207,  208,  861,  247,  254,  207,   86,  209,
    822       247,  261,  255,  262,  209,   98,   98,   98,   98,   98,
    823        98,  263,  861,  210,  210,  210,  210,  241,  246,  307,
    824       861,  247,  263,  261,  209,  262,  247,  102,  255,  104,
    825       104,  104,  104,  104,  104,   86,  261,  239,  262,  211,
    826       861,  261,  209,  262,   86,  255,  105,  209,  209,  861,
    827       276,  209,  209,   86,  253,  264,  261,  277,  262,  209,
    828       295,  242,  209,  254,  209,  212,  209,  105,  213,  215,
    829 
    830       261,  255,  262,  216,  217,  283,   86,  861,  218,  219,
    831       243,  220,  243,  221,   86,  244,  244,  244,  244,  244,
    832       244,   86,  222,  223,  224,  261,  265,  262,  142,  305,
    833        86,   86,  278,  143,   86,   86,  285,   86,  286,  279,
    834       287,  288,  225,   86,  289,  226,  290,  245,  282,   86,
    835        86,  291,  292,  293,   86,  294,  296,  314,  297,  300,
    836        86,   86,  306,   86,  298,  299,  308,  302,   86,   86,
    837       303,   86,  301,  227,  231,  231,  231,  231,  231,  231,
    838        86,   86,   86,  311,  309,  310,  312,   86,   86,   86,
    839       232,  233,   86,  234,  235,   86,   86,  320,  313,   86,
    840 
    841       327,  142,  317,   86,  316,  319,  236,  324,  315,  318,
    842       321,  232,  233,  232,  325,  328,  234,   86,  235,   86,
    843       322,  323,   86,  331,   86,   86,  355,   86,  356,   86,
    844       329,  326,  341,  355,  355,  356,  356,  334,  336,  330,
    845       337,  332,  338,  374,   86,  335,   86,  333,  195,   80,
    846        81,   81,   81,  195,  198,  199,  196,   86,  342,  198,
    847       198,  199,  400,  207,  208,  198,  339,  199,  207,  374,
    848       355,  339,  356,  340,  401,  200,  200,  200,  200,  200,
    849       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
    850       200,  200,  200,  347,  347,  347,  347,  356,  356,  357,
    851 
    852       355,  355,  356,  356,  355,  358,  356,  355,  364,  356,
    853       355,  355,  356,  356,  355,  368,  356,  861,  369,  368,
    854       384,  365,  261,  365,  262,  348,  366,  366,  366,  366,
    855       366,  366,  364,  261,   86,  262,  368,   86,  368,  369,
    856        86,  369,  386,  368,  232,  233,  384,  234,  235,  411,
    857       397,  371,  104,  104,  104,  104,  104,  104,  367,  244,
    858       244,  244,  244,  244,  244,  232,  233,  232,  387,  105,
    859       234,  243,  235,  243,   86,  377,  244,  244,  244,  244,
    860       244,  244,   86,   86,  253,   86,   86,  416,   86,   86,
    861       105,  372,  372,  372,  372,  372,  372,  379,  415,  380,
    862 
    863       398,  399,   86,  381,  433,  403,  405,  232,   86,  382,
    864       234,  235,  104,  104,  104,  104,  104,  104,   86,   86,
    865       409,  383,   86,  373,  402,  380,   86,  404,  232,  381,
    866       232,   86,   86,  234,  410,  235,  111,  111,  111,  111,
    867       111,  111,  412,  413,  253,   86,  406,   86,   86,   86,
    868       414,   86,  407,  408,  420,   86,   86,   86,   86,  417,
    869       421,   86,  422,   86,   86,  418,  419,   86,  258,  427,
    870       431,   86,  428,   86,   86,  424,  423,  429,   86,  425,
    871       426,   86,  430,  434,  432,   86,  436,   86,  435,   86,
    872       437,   86,  438,   86,   86,   86,   86,   86,   86,   86,
    873 
    874        86,   86,   86,  142,  442,  443,   86,   86,  440,  439,
    875       444,  441,  445,   86,   86,  449,  450,   86,  446,   86,
    876       447,  448,  451,  455,   86,  452,   86,   86,  453,  459,
    877        86,  454,  457,  199,  458,  456,  339,  199,  355,  197,
    878       356,  339,  460,  340,  532,   86,   86,  209,  209,  209,
    879       209,  347,  347,  347,  347,  355,  508,  356,  366,  366,
    880       366,  366,  366,  366,  365,   86,  365,  485,  485,  366,
    881       366,  366,  366,  366,  366,   86,  513,  486,  487,  470,
    882       481,  481,  481,  481,  481,  481,  231,  231,  231,  231,
    883       231,  231,  493,  485,  485,   86,  232,  489,   86,  234,
    884 
    885       235,  240,  240,  240,  240,  104,  104,  488,   86,   86,
    886       377,  509,  482,  489,  518,  488,  494,  232,  370,  232,
    887        86,  517,  234,  489,  235,  372,  372,  372,  372,  372,
    888       372,  515,  379,  371,  380,  510,   86,  861,  381,  489,
    889       490,  861,  490,   86,  382,  491,  491,  491,  491,  491,
    890       491,   86,  512,   86,   86,  511,  383,  373,   86,  379,
    891       380,  380,  514,  516,  381,  381,   86,   86,   86,   86,
    892       861,  495,  849,  519,  520,  521,   86,  492,   86,   86,
    893        86,  524,   86,  383,  531,  523,  527,  380,  522,  528,
    894       529,  381,   86,  525,   86,   86,   86,   86,   86,   86,
    895 
    896       526,  530,   86,   86,  533,  536,   86,   86,  539,  537,
    897        86,   86,  541,  540,  542,  534,   86,  535,   86,   86,
    898       538,   86,   86,   86,   86,  545,  543,   86,  549,  544,
    899        86,  547,   86,  546,   86,   86,   86,  485,  548,  550,
    900        86,  556,  626,  553,  551,  552,   86,  554,   86,  558,
    901        86,   86,  555,  557,  562,  559,   86,  560,   86,  561,
    902        86,  618,  566,  485,  563,  199,   86,  565,  564,  567,
    903        86,  568,  209,  209,  209,  209,  481,  481,  481,  481,
    904       481,  481,  372,  372,  372,  372,  372,  372,  614,   86,
    905       485,  485,  232,  590,   86,  234,  235,  586,   86,  586,
    906 
    907       486,  589,  587,  587,  587,  587,  587,  587,  482,  612,
    908       641,  609,   86,  232,  483,  232,  485,  485,  234,  590,
    909       235,  491,  491,  491,  491,  491,  491,  611,   86,   86,
    910        86,   86,   86,   86,  588,  591,  591,  591,  591,  591,
    911       591,  610,  613,  615,   86,  654,   86,   86,   86,  616,
    912       620,  592,  619,  623,  593,  594,  490,  617,  490,   86,
    913        86,  491,  491,  491,  491,  491,  491,  595,  621,  622,
    914       624,   86,  592,   86,  592,   86,   86,  593,   86,  594,
    915        86,   86,  627,  632,  625,  631,   86,  630,   86,   86,
    916       633,   86,   86,  629,   86,   86,   86,  628,   86,   86,
    917 
    918        86,   86,   86,  638,  639,  635,  636,  637,   86,   86,
    919       645,   86,  634,  640,  642,  643,  644,  646,   86,  649,
    920       647,   86,  648,   86,   86,   86,  650,  655,   86,   86,
    921       652,  651,   86,   86,  656,   86,   86,   86,  657,  679,
    922        86,  861,  659,  693,  694,  699,  653,  698,   86,  658,
    923       481,  481,  481,  481,  481,  481,  587,  587,  587,  587,
    924       587,  587,  586,  679,  586,  696,   86,  587,  587,  587,
    925       587,  587,  587,  591,  591,  591,  591,  591,  591,  695,
    926        86,   86,  585,  677,  677,  677,  677,  677,  677,  680,
    927       681,   86,   86,  680,   86,  701,  691,  700,  861,  592,
    928 
    929       861,   86,  593,  594,  697,  595,   86,  702,   86,  692,
    930       680,  681,  680,  681,   86,  678,  703,  680,   86,   86,
    931       592,  707,  592,  709,   86,  593,   86,  594,  704,   86,
    932       706,  705,   86,   86,   86,   86,  708,   86,  712,  710,
    933        86,   86,   86,  715,   86,   86,  711,   86,  861,   86,
    934        86,  713,  724,  719,  714,   86,   86,  716,  723,   86,
    935       717,  720,  718,   86,  722,  725,   86,   86,  727,  721,
    936       728,   86,  746,  726,  677,  677,  677,  677,  677,  677,
    937       591,  591,  591,  591,  591,  591,   86,  742,   86,   86,
    938       592,   86,   86,  593,  594,  745,  743,  744,   86,   86,
    939 
    940       752,  748,  749,   86,   86,  755,  678,  753,   86,  747,
    941       750,  592,  682,  592,  751,  758,  593,   86,  594,   86,
    942       756,   86,   86,   86,  754,  759,   86,   86,  757,   86,
    943        86,  761,   86,   86,  760,   86,  762,   86,   86,  765,
    944        86,   86,  763,   86,   86,   86,   86,   86,  764,  770,
    945       786,   86,  771,   86,  793,  766,  769,  767,   86,  787,
    946       768,  677,  677,  677,  677,  677,  677,  784,  785,   86,
    947        86,  792,  790,  791,   86,   86,  789,  794,  795,  788,
    948        86,   86,   86,   86,   86,  797,  798,  796,   86,   86,
    949        86,   86,   86,  735,   86,   86,   86,  818,  820,  799,
    950 
    951       822,   86,   86,   86,   86,  823,  825,   86,   86,  817,
    952       826,  800,  801,  816,   86,   86,   86,  815,  819,  821,
    953        86,   86,   86,  827,  828,   86,  824,  839,  848,   86,
    954       841,  829,  840,   86,   86,   86,  842,  838,  844,  843,
    955        86,   86,   86,  845,   86,   86,   86,   86,  852,  853,
    956       846,  847,  851,  850,   86,   86,   86,  854,  855,   86,
    957        86,   86,   86,  858,  859,   86,   86,   86,   86,  861,
    958       861,  837,  861,  836,  857,  861,  856,  834,  861,  833,
    959       861,  832,  861,  831,  860,   68,   68,   68,   68,   68,
    960        68,   68,   68,   68,   68,   68,   68,   68,   74,   74,
    961 
    962        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    963        74,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    964        77,   77,   77,   77,   85,   86,   86,   85,   86,   85,
    965        85,   85,   85,   85,  139,  861,  814,  861,  139,  139,
    966       139,  139,  139,  139,  197,  197,  197,  197,  197,  197,
    967       197,  197,  197,  197,  197,  197,  197,  202,  813,  811,
    968       202,  861,  202,  202,  202,  202,  202,  206,  809,  206,
    969       206,  861,  206,  206,  206,  206,  206,  206,  807,  206,
    970       214,  861,  805,  214,  214,  214,  214,  214,  214,  214,
    971       214,  803,  214,  237,  237,  237,  237,  237,  237,  237,
    972 
    973       237,  237,  237,  237,  237,  237,  251,  251,   86,  251,
    974        86,   86,   86,  251,  267,   86,   86,  267,   86,  267,
    975       267,  267,  267,  267,  271,   86,  271,   86,   86,   86,
    976       271,  273,   86,  273,  861,  783,  781,  273,  343,  861,
    977       343,  861,  778,  776,  343,  345,  774,  345,   86,   86,
    978        86,  345,  349,   86,  349,   86,   86,   86,  349,  351,
    979        86,  351,  741,  738,  737,  351,  353,  735,  353,  203,
    980       731,  730,  353,  360,  661,  360,   86,   86,   86,  360,
    981       362,   86,  362,   86,   86,   86,  362,  237,  237,  237,
    982       237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
    983 
    984       376,   86,  376,  378,  378,   86,  378,  378,  378,   86,
    985       378,  251,  251,   86,  251,  388,   86,  388,   86,   86,
    986        86,  388,  390,  689,  390,  688,  686,  684,  390,  392,
    987       682,  392,  589,  676,  675,  392,  271,  673,  271,  394,
    988       671,  394,  669,  667,  665,  394,  273,  663,  273,   85,
    989       661,   86,   85,   86,   85,   85,   85,   85,   85,  197,
    990       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
    991       197,  197,  461,  461,  461,  461,  461,  461,  461,  461,
    992       461,  461,  461,  461,  461,  462,   86,  462,   86,   86,
    993        86,  462,  464,   86,  464,   86,   86,  608,  464,  466,
    994 
    995       606,  466,  604,  602,  600,  466,  343,  598,  343,  468,
    996       495,  468,  596,  596,  585,  468,  345,  584,  345,  471,
    997       582,  471,  476,  476,  580,  471,  349,  578,  349,  473,
    998       576,  473,  574,  572,  570,  473,  351,   86,  351,  475,
    999        86,  475,   86,   86,   86,  475,  353,   86,  353,  477,
    1000        86,  477,   86,  507,  505,  477,  360,  503,  360,  479,
    1001       501,  479,  499,  497,  483,  479,  362,  480,  362,  484,
    1002       478,  484,  356,  484,  356,  484,  376,  476,  376,  474,
    1003       376,  472,  376,  378,  378,  469,  378,  378,  378,  467,
    1004       378,  496,  465,  496,  463,   86,   86,  496,  498,   86,
    1005 
    1006       498,  396,  395,  393,  498,  500,  391,  500,  389,  268,
    1007       263,  500,  388,  262,  388,  502,  385,  502,  385,  250,
    1008       375,  502,  390,  375,  390,  504,  238,  504,  370,  363,
    1009       361,  504,  392,  359,  392,  506,  355,  506,  354,  352,
    1010       350,  506,  394,  346,  394,   85,  344,  203,   85,  199,
    1011        85,   85,   85,   85,   85,  461,  461,  461,  461,  461,
    1012       461,  461,  461,  461,  461,  461,  461,  461,  569,   86,
    1013       569,  275,  274,  272,  569,  462,  268,  462,  571,  263,
    1014       571,  266,  263,  261,  571,  464,  260,  464,  573,  259,
    1015       573,  238,  230,   84,  573,  466,   84,  466,  575,   86,
    1016 
    1017       575,  203,  201,   84,  575,  468,  121,  468,  577,  116,
    1018       577,   86,  861,   69,  577,  471,   69,  471,  579,  861,
    1019       579,  861,  861,  861,  579,  473,  861,  473,  475,  861,
    1020       475,  861,  861,  861,  475,  581,  861,  581,  861,  861,
    1021       861,  581,  477,  861,  477,  583,  861,  583,  861,  861,
    1022       861,  583,  479,  861,  479,  484,  861,  484,  861,  484,
    1023       861,  484,  378,  861,  378,  861,  861,  861,  378,  597,
    1024       861,  597,  861,  861,  861,  597,  496,  861,  496,  599,
    1025       861,  599,  861,  861,  861,  599,  498,  861,  498,  601,
    1026       861,  601,  861,  861,  861,  601,  500,  861,  500,  603,
    1027 
    1028       861,  603,  861,  861,  861,  603,  502,  861,  502,  605,
    1029       861,  605,  861,  861,  861,  605,  504,  861,  504,  607,
    1030       861,  607,  861,  861,  861,  607,  506,  861,  506,   85,
    1031       861,  861,   85,  861,   85,   85,   85,   85,   85,  660,
    1032       660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
    1033       660,  660,  662,  861,  662,  861,  861,  861,  662,  569,
    1034       861,  569,  664,  861,  664,  861,  861,  861,  664,  571,
    1035       861,  571,  666,  861,  666,  861,  861,  861,  666,  573,
    1036       861,  573,  668,  861,  668,  861,  861,  861,  668,  575,
    1037       861,  575,  670,  861,  670,  861,  861,  861,  670,  577,
    1038 
    1039       861,  577,  672,  861,  672,  861,  861,  861,  672,  579,
    1040       861,  579,  674,  861,  674,  861,  861,  861,  674,  581,
    1041       861,  581,   85,  861,   85,  861,  861,  861,   85,  583,
    1042       861,  583,  484,  861,  484,  861,  861,  861,  484,  683,
    1043       861,  683,  861,  861,  861,  683,  597,  861,  597,  685,
    1044       861,  685,  861,  861,  861,  685,  599,  861,  599,  687,
    1045       861,  687,  861,  861,  861,  687,  601,  861,  601,  139,
    1046       861,  139,  861,  861,  861,  139,  603,  861,  603,  690,
    1047       861,  690,  605,  861,  605,   85,  861,  861,   85,  861,
    1048        85,   85,   85,   85,   85,  607,  861,  607,  660,  660,
    1049 
    1050       660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
    1051       660,  729,  861,  729,  861,  861,  861,  729,  662,  861,
    1052       662,  202,  861,  202,  861,  861,  861,  202,  664,  861,
    1053       664,  732,  861,  732,  666,  861,  666,  202,  861,  861,
    1054       202,  861,  202,  202,  202,  202,  202,  668,  861,  668,
    1055       733,  861,  733,  670,  861,  670,  672,  861,  672,  734,
    1056       861,  734,  674,  861,  674,   85,  861,   85,  736,  861,
    1057       736,  861,  861,  861,  736,  683,  861,  683,  267,  861,
    1058       267,  861,  861,  861,  267,  685,  861,  685,  739,  861,
    1059       739,  687,  861,  687,  139,  861,  139,  740,  861,  740,
    1060 
    1061       861,  861,  861,  740,   85,  861,  861,   85,  861,   85,
    1062        85,   85,   85,   85,  772,  861,  772,  729,  861,  729,
    1063       202,  861,  202,  773,  861,  773,  861,  861,  861,  773,
    1064       775,  861,  775,  861,  861,  861,  775,  777,  861,  777,
    1065       861,  861,  861,  777,  779,  861,  779,  780,  861,  780,
    1066       861,  861,  861,  780,  782,  861,  782,  861,  861,  861,
    1067       782,  802,  861,  802,  861,  861,  861,  802,  804,  861,
    1068       804,  861,  861,  861,  804,  806,  861,  806,  861,  861,
    1069       861,  806,  808,  861,  808,  861,  861,  861,  808,  810,
    1070       861,  810,  861,  861,  861,  810,  812,  861,  812,  861,
    1071 
    1072       861,  861,  812,  607,  861,  607,  861,  861,  861,  607,
    1073       830,  861,  830,  861,  861,  861,  830,  668,  861,  668,
    1074       861,  861,  861,  668,  672,  861,  672,  861,  861,  861,
    1075       672,   85,  861,   85,  861,  861,  861,   85,  835,  861,
    1076       835,  861,  861,  861,  835,  139,  861,  139,  861,  861,
    1077       861,  139,  202,  861,  202,  861,  861,  861,  202,   11,
    1078       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1079       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1080       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1081       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1082 
    1083       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1084       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1085       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1086       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1087       861,  861,  861,  861
     794       71,   71,   71,   71,   71,   71,   71,   71,   72,   72,
     795       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
     796       72,   72,   72,   71,   73,   71,   71,   72,   74,   72,
     797       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
     798       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
     799       72,   72,   72,   71,   71,   71,   71,   76,   76,   79,
     800       79,  123,  124,   90,  141,   79,   79,   87,   76,   76,
     801       80,   81,   82,   82,   82,   80,   82,   81,   83,   83,
     802
     803       83,   82,   91,   93,  142,  146,   87,   98,   95,   99,
     804       99,   99,   99,   99,   99,  252,  195,   94,  100,   85,
     805       96,   97,   85,  101,  177,  118,   77,   77,   77,   77,
     806      143,  147,   87,  102,  103,  144,  104,  104,  104,  104,
     807      105,  105,  119,   87,  120,  121,  148,   87,  149,  254,
     808       87,  883,  161,  106,   87,  194,  107,  182,   87,  150,
     809      151,  152,  108,  109,  153,  154,  196,  155,  110,   87,
     810      156,  157,   87,   87,  106,   87,  145,  162,  158,  159,
     811      111,  160,   87,   87,  163,  260,   87,  180,  108,  206,
     812      164,  109,  103,  181,  112,  112,  112,  112,  112,  112,
     813
     814       87,  169,  317,  170,  230,  250,   87,   87,   87,  165,
     815       87,  106,  171,  166,  113,  207,  178,  183,  167,  188,
     816      114,   87,  168,  179,  249,   87,  115,  189,  193,  251,
     817      231,  143,  106,  263,  190,  264,  144,  263,  116,  264,
     818       87,  283,  248,  200,  201,  172,  114,  125,  200,  191,
     819      249,  126,  127,  173,  128,  174,  129,  130,  175,  131,
     820      258,  132,  176,   87,  202,  202,  202,  202,  202,  202,
     821      133,  134,  135,   87,   87,  184,  185,  145,  197,   81,
     822       82,   82,   82,  197,  259,  186,  198,  263,  187,  264,
     823      136,  192,   87,  137,   80,   81,   82,   82,   82,   80,
     824
     825       82,   81,   82,   82,   82,   82,   82,   81,   83,   83,
     826       83,   82,  265,   87,  285,  242,  242,  242,  242,  248,
     827      138,  139,  209,  210,  256,  249,  263,  209,  264,  211,
     828      257,  263,  271,  264,  211,   99,   99,   99,   99,   99,
     829       99,  265,  883,  212,  212,  212,  212,  243,  257,  883,
     830      883,  249,   87,  263,  211,  264,  257,  103,  272,  105,
     831      105,  105,  105,  105,  105,   87,  256,  241,  298,  213,
     832      883,  263,  211,  264,  257,   87,  106,  211,  211,  883,
     833      278,  211,  211,   87,  255,  266,  263,  279,  264,  211,
     834      883,  244,  211,  280,  211,  214,  211,  106,  215,  217,
     835
     836      263,  267,  264,  218,  219,  299,  883,  883,  220,  221,
     837      245,  222,  245,  223,   87,  246,  246,  246,  246,  246,
     838      246,   87,  224,  225,  226,  263,  263,  264,  264,  143,
     839      282,   87,  281,   87,  144,   87,   87,   87,   87,   87,
     840      374,   87,  227,   87,  300,  228,   87,  247,  286,  284,
     841      305,  287,  288,  289,  447,  290,  291,   87,  307,  292,
     842      310,  293,  301,  302,   87,  309,  294,  295,  296,  303,
     843      297,   87,   87,  229,  233,  233,  233,  233,  233,  233,
     844      308,  306,  304,   87,   87,   87,   87,   87,   87,  311,
     845      234,  235,   87,  236,  237,   87,   87,   87,   87,   87,
     846
     847      314,  323,   87,  315,   87,  313,  238,  312,  329,  324,
     848      316,  234,  235,  234,  318,  322,  236,  319,  237,  320,
     849       87,   87,   87,   87,   87,  330,  321,   87,  331,  335,
     850      143,  325,   87,   87,   87,  333,   87,   87,  345,  328,
     851      368,  326,  327,  332,  334,  338,  336,  340,   87,  341,
     852      342,  401,  368,  339,  197,   81,   82,   82,   82,  197,
     853      200,  201,  198,  368,  346,  200,  200,  201,  406,  209,
     854      210,  200,   87,   87,  209,  368,  337,  351,  351,  351,
     855      351,  202,  202,  202,  202,  202,  202,  202,  202,  202,
     856      202,  202,  202,  343,  201,  359,  360,  360,  343,  359,
     857
     858      344,  360,  359,  359,  360,  360,   87,  883,  360,  352,
     859      359,  359,  360,  360,  202,  202,  202,  202,  202,  202,
     860      359,  377,  360,  361,  359,  387,  360,  359,  362,  360,
     861      359,  359,  360,  360,  369,  263,  369,  264,   87,  370,
     862      370,  370,  370,  370,  370,  372,  263,  377,  264,  372,
     863       87,  387,  389,  234,  235,  404,  236,  237,   87,   87,
     864      105,  105,  105,  105,  105,  105,  372,  419,  372,  434,
     865       87,  371,  400,  372,  234,  235,  234,  106,  390,  236,
     866       87,  237,  246,  246,  246,  246,  246,  246,  402,   87,
     867       87,   87,  255,   87,  405,  407,  403,   87,  106,  375,
     868
     869      375,  375,  375,  375,  375,  105,  105,  105,  105,  105,
     870      105,  380,   87,  408,  412,  234,   87,   87,  236,  237,
     871      245,  425,  245,  414,  883,  246,  246,  246,  246,  246,
     872      246,  376,  415,  382,  413,  383,  234,  255,  234,  384,
     873       87,  236,   87,  237,   87,  385,  112,  112,  112,  112,
     874      112,  112,   87,  420,   87,   87,   87,  386,  416,  417,
     875      418,  383,   87,   87,   87,  384,  660,  409,  424,   87,
     876       87,  421,  422,  410,  411,   87,  426,   87,  260,   87,
     877      423,   87,  431,   87,  427,  433,  432,   87,  428,   87,
     878       87,   87,  435,  436,   87,   87,  429,  430,   87,  438,
     879
     880      440,   87,   87,  441,   87,  437,  439,  442,   87,   87,
     881       87,   87,   87,  444,   87,   87,   87,  446,   87,  445,
     882       87,   87,   87,  448,  443,  450,  143,  455,   87,   87,
     883      449,  454,  451,   87,  452,  453,   87,  460,  456,  459,
     884       87,  464,   87,  457,  458,  201,  462,  461,  463,  343,
     885      201,  199,   87,  359,  343,  360,  344,  465,  211,  211,
     886      211,  211,  351,  351,  351,  351,  359,  515,  360,   87,
     887      370,  370,  370,  370,  370,  370,  369,  490,  369,  490,
     888      498,  370,  370,  370,  370,  370,  370,  491,  864,  492,
     889      475,  486,  486,  486,  486,  486,  486,  233,  233,  233,
     890
     891      233,  233,  233,  490,  499,  490,   87,  234,  494,   87,
     892      236,  237,  242,  242,  242,  242,  105,  105,  493,   87,
     893      513,  380,  514,  487,  494,   87,  493,   87,  234,  373,
     894      234,   87,  522,  236,  494,  237,  375,  375,  375,  375,
     895      375,  375,  518,  382,  374,  383,  516,  520,  883,  384,
     896      494,  495,  883,  495,   87,  385,  496,  496,  496,  496,
     897      496,  496,   87,  517,   87,   87,   87,  386,  376,   87,
     898      382,  383,  383,  519,  521,  384,  384,   87,  523,  525,
     899       87,   87,  500,   87,   87,   87,  530,   87,  497,   87,
     900      533,  524,   87,   87,  386,   87,  526,  527,  383,  528,
     901
     902      531,  529,  384,  535,  537,   87,   87,  532,  534,  538,
     903       87,   87,  536,   87,   87,   87,   87,  539,   87,   87,
     904      542,  545,   87,   87,  543,  547,   87,  540,   87,  546,
     905       87,   87,  541,  548,   87,   87,  544,   87,  551,  549,
     906      555,   87,   87,  553,  550,   87,  558,   87,  552,   87,
     907      554,  556,   87,   87,   87,   87,  566,   87,  557,   87,
     908       87,  563,  559,   87,  562,  560,  567,  561,  565,   87,
     909       87,  564,  574,   87,  571,   87,  883,  569,  201,  568,
     910      623,  572,  573,  490,  575,   87,  617,  570,  211,  211,
     911      211,  211,  486,  486,  486,  486,  486,  486,  375,  375,
     912
     913      375,  375,  375,  375,   87,  619,  490,  490,  234,  490,
     914       87,  236,  237,  593,  597,  593,  491,  596,  594,  594,
     915      594,  594,  594,  594,  487,   87,  621,  616,   87,  234,
     916      488,  234,  490,  490,  236,   87,  237,  883,  620,  624,
     917      597,  496,  496,  496,  496,  496,  496,   87,  622,   87,
     918      595,  598,  598,  598,  598,  598,  598,   87,   87,   87,
     919      625,   87,  618,   87,   87,   87,  631,  599,  630,  626,
     920      600,  601,  495,  627,  495,   87,  633,  496,  496,  496,
     921      496,  496,  496,  602,  628,  629,  632,  634,  599,   87,
     922      599,   87,   87,  600,   87,  601,   87,   87,  635,  640,
     923
     924       87,  639,   87,  638,   87,   87,  641,   87,   87,  637,
     925       87,   87,   87,  636,   87,   87,  649,   87,   87,  643,
     926      646,  647,  644,  645,   87,   87,  642,  648,   87,  650,
     927      652,   87,  651,  653,   87,   87,   87,  654,   87,   87,
     928      655,   87,   87,  664,  659,  661,   87,  657,   87,   87,
     929      665,   87,  658,  656,  663,   87,  666,   87,  688,  688,
     930      709,  662,  701,  883,  668,  667,  486,  486,  486,  486,
     931      486,  486,  594,  594,  594,  594,  594,  594,  593,   87,
     932      593,  688,  688,  594,  594,  594,  594,  594,  594,  598,
     933      598,  598,  598,  598,  598,   87,  704,   87,  592,  686,
     934
     935      686,  686,  686,  686,  686,  689,   87,   87,  703,  689,
     936       87,  699,   87,   87,   87,  599,  702,  706,  600,  601,
     937      705,  602,  707,  718,  700,   87,  689,   87,  689,  708,
     938       87,  687,   87,  689,   87,  711,  599,   87,  599,   87,
     939      710,  600,  716,  601,   87,  712,   87,  713,   87,  714,
     940       87,   87,   87,   87,  717,   87,  715,  721,   87,  719,
     941       87,   87,  724,   87,   87,   87,  720,   87,   87,  722,
     942      728,   87,  734,   87,  723,   87,   87,  725,   87,   87,
     943      733,  726,  727,  729,  731,  735,  732,   87,  736,  753,
     944      738,  730,   87,   87,  752,   87,  737,  686,  686,  686,
     945
     946      686,  686,  686,  598,  598,  598,  598,  598,  598,   87,
     947      863,  760,   87,  599,  756,  757,  600,  601,  754,  755,
     948       87,   87,   87,  758,  759,   87,   87,   87,  761,  687,
     949      764,   87,  766,  769,  599,  690,  599,   87,  762,  600,
     950      763,  601,   87,   87,   87,  767,  768,  765,   87,   87,
     951       87,  770,  772,   87,   87,   87,  771,   87,   87,  773,
     952       87,   87,   87,  774,  776,   87,   87,  778,   87,   87,
     953       87,   87,   87,   87,  775,  783,  782,  777,   87,   87,
     954       87,  779,  800,   87,  780,  798,  781,  686,  686,  686,
     955      686,  686,  686,  796,  799,  797,   87,  803,   87,   87,
     956
     957      806,  804,   87,   87,   87,  807,  801,  808,   87,   87,
     958      809,  810,  805,  802,   87,   87,   87,  811,   87,  745,
     959       87,   87,   87,   87,  812,   87,  831,   87,  833,   87,
     960       87,  836,  834,   87,   87,   87,  837,  839,  813,  814,
     961      830,  829,   87,  832,   87,  828,   87,  840,  835,   87,
     962       87,  841,   87,   87,   87,   87,   87,  838,  854,  853,
     963       87,   87,  842,  855,  857,  843,   87,   87,   87,  859,
     964      858,  852,   87,   87,   87,  860,  861,  862,  856,  866,
     965       87,   87,  865,  867,   87,   87,   87,  869,  870,  871,
     966       87,  868,   87,   87,   87,   87,  874,   87,  876,   87,
     967
     968       87,   87,   87,   87,  875,   87,   87,  873,   87,  879,
     969      872,  883,  882,  883,  851,  883,  850,  883,  848,  877,
     970      878,  881,  883,  880,   69,   69,   69,   69,   69,   69,
     971       69,   69,   69,   69,   69,   69,   69,   75,   75,   75,
     972       75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
     973       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
     974       78,   78,   78,   86,  847,  883,   86,  846,   86,   86,
     975       86,   86,   86,  140,  883,  845,   87,  140,  140,  140,
     976      140,  140,  140,  199,  199,  199,  199,  199,  199,  199,
     977      199,  199,  199,  199,  199,  199,  204,   87,   87,  204,
     978
     979      883,  204,  204,  204,  204,  204,  208,  827,  208,  208,
     980      883,  208,  208,  208,  208,  208,  208,  826,  208,  216,
     981      824,  883,  216,  216,  216,  216,  216,  216,  216,  216,
     982      822,  216,  239,  239,  239,  239,  239,  239,  239,  239,
     983      239,  239,  239,  239,  239,  253,  253,  883,  253,  820,
     984      883,  818,  253,  269,  816,   87,  269,   87,  269,  269,
     985      269,  269,  269,  273,   87,  273,   87,   87,   87,  273,
     986      275,   87,  275,   87,   87,   87,  275,  347,   87,  347,
     987       87,   87,  883,  347,  349,  795,  349,  793,  883,  883,
     988      349,  353,  790,  353,  788,  786,   87,  353,  355,   87,
     989
     990      355,   87,   87,   87,  355,  357,   87,  357,   87,   87,
     991      751,  357,  364,  748,  364,  747,  745,  205,  364,  366,
     992      741,  366,  740,  670,   87,  366,  239,  239,  239,  239,
     993      239,  239,  239,  239,  239,  239,  239,  239,  239,  379,
     994       87,  379,  381,  381,   87,  381,  381,  381,   87,  381,
     995      253,  253,   87,  253,  391,   87,  391,   87,   87,   87,
     996      391,  393,   87,  393,   87,   87,   87,  393,  395,   87,
     997      395,   87,  697,  696,  395,  273,  694,  273,  397,  692,
     998      397,  690,  596,  685,  397,  275,  684,  275,   86,  682,
     999      680,   86,  678,   86,   86,   86,   86,   86,  199,  199,
     1000
     1001      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
     1002      199,  466,  466,  466,  466,  466,  466,  466,  466,  466,
     1003      466,  466,  466,  466,  467,  676,  467,  674,  672,  670,
     1004      467,  469,   87,  469,   87,   87,   87,  469,  471,   87,
     1005      471,   87,   87,   87,  471,  347,   87,  347,  473,  615,
     1006      473,  613,  611,  609,  473,  349,  607,  349,  476,  605,
     1007      476,  500,  603,  603,  476,  353,  592,  353,  478,  591,
     1008      478,  589,  481,  481,  478,  355,  587,  355,  480,  585,
     1009      480,  583,  581,  579,  480,  357,  577,  357,  482,   87,
     1010      482,   87,   87,   87,  482,  364,   87,  364,  484,   87,
     1011
     1012      484,   87,   87,  512,  484,  366,  510,  366,  489,  508,
     1013      489,  506,  489,  504,  489,  379,  502,  379,  488,  379,
     1014      485,  379,  381,  381,  483,  381,  381,  381,  360,  381,
     1015      501,  360,  501,  481,  479,  477,  501,  503,  474,  503,
     1016      472,  470,  468,  503,  505,   87,  505,   87,   87,  399,
     1017      505,  391,  398,  391,  507,  396,  507,  394,  392,  270,
     1018      507,  393,  265,  393,  509,  264,  509,  388,  388,  252,
     1019      509,  395,  378,  395,  511,  378,  511,  240,  373,  367,
     1020      511,  397,  365,  397,   86,  363,  359,   86,  358,   86,
     1021       86,   86,   86,   86,  466,  466,  466,  466,  466,  466,
     1022
     1023      466,  466,  466,  466,  466,  466,  466,  576,  356,  576,
     1024      354,  350,  348,  576,  467,  205,  467,  578,  201,  578,
     1025       87,  277,  276,  578,  469,  274,  469,  580,  270,  580,
     1026      265,  268,  265,  580,  471,  263,  471,  582,  262,  582,
     1027      261,  240,  232,  582,  473,   85,  473,  584,   85,  584,
     1028       87,  205,  203,  584,  476,   85,  476,  586,  122,  586,
     1029      117,   87,  883,  586,  478,   70,  478,  480,   70,  480,
     1030      883,  883,  883,  480,  588,  883,  588,  883,  883,  883,
     1031      588,  482,  883,  482,  590,  883,  590,  883,  883,  883,
     1032      590,  484,  883,  484,  489,  883,  489,  883,  489,  883,
     1033
     1034      489,  381,  883,  381,  883,  883,  883,  381,  604,  883,
     1035      604,  883,  883,  883,  604,  501,  883,  501,  606,  883,
     1036      606,  883,  883,  883,  606,  503,  883,  503,  608,  883,
     1037      608,  883,  883,  883,  608,  505,  883,  505,  610,  883,
     1038      610,  883,  883,  883,  610,  507,  883,  507,  612,  883,
     1039      612,  883,  883,  883,  612,  509,  883,  509,  614,  883,
     1040      614,  883,  883,  883,  614,  511,  883,  511,   86,  883,
     1041      883,   86,  883,   86,   86,   86,   86,   86,  669,  669,
     1042      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1043      669,  671,  883,  671,  883,  883,  883,  671,  576,  883,
     1044
     1045      576,  673,  883,  673,  883,  883,  883,  673,  578,  883,
     1046      578,  675,  883,  675,  883,  883,  883,  675,  580,  883,
     1047      580,  677,  883,  677,  883,  883,  883,  677,  582,  883,
     1048      582,  679,  883,  679,  883,  883,  883,  679,  584,  883,
     1049      584,  681,  883,  681,  883,  883,  883,  681,  586,  883,
     1050      586,  683,  883,  683,  883,  883,  883,  683,  588,  883,
     1051      588,   86,  883,   86,  883,  883,  883,   86,  590,  883,
     1052      590,  489,  883,  489,  883,  883,  883,  489,  691,  883,
     1053      691,  883,  883,  883,  691,  604,  883,  604,  693,  883,
     1054      693,  883,  883,  883,  693,  606,  883,  606,  695,  883,
     1055
     1056      695,  883,  883,  883,  695,  608,  883,  608,  140,  883,
     1057      140,  883,  883,  883,  140,  610,  883,  610,  698,  883,
     1058      698,  612,  883,  612,   86,  883,  883,   86,  883,   86,
     1059       86,   86,   86,   86,  614,  883,  614,  669,  669,  669,
     1060      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1061      739,  883,  739,  883,  883,  883,  739,  671,  883,  671,
     1062      204,  883,  204,  883,  883,  883,  204,  673,  883,  673,
     1063      742,  883,  742,  675,  883,  675,  204,  883,  883,  204,
     1064      883,  204,  204,  204,  204,  204,  677,  883,  677,  743,
     1065      883,  743,  679,  883,  679,  681,  883,  681,  744,  883,
     1066
     1067      744,  683,  883,  683,   86,  883,   86,  746,  883,  746,
     1068      883,  883,  883,  746,  691,  883,  691,  269,  883,  269,
     1069      883,  883,  883,  269,  693,  883,  693,  749,  883,  749,
     1070      695,  883,  695,  140,  883,  140,  750,  883,  750,  883,
     1071      883,  883,  750,   86,  883,  883,   86,  883,   86,   86,
     1072       86,   86,   86,  784,  883,  784,  739,  883,  739,  204,
     1073      883,  204,  785,  883,  785,  883,  883,  883,  785,  787,
     1074      883,  787,  883,  883,  883,  787,  789,  883,  789,  883,
     1075      883,  883,  789,  791,  883,  791,  792,  883,  792,  883,
     1076      883,  883,  792,  794,  883,  794,  883,  883,  883,  794,
     1077
     1078      815,  883,  815,  883,  883,  883,  815,  817,  883,  817,
     1079      883,  883,  883,  817,  819,  883,  819,  883,  883,  883,
     1080      819,  821,  883,  821,  883,  883,  883,  821,  823,  883,
     1081      823,  883,  883,  883,  823,  825,  883,  825,  883,  883,
     1082      883,  825,  614,  883,  614,  883,  883,  883,  614,  844,
     1083      883,  844,  883,  883,  883,  844,  677,  883,  677,  883,
     1084      883,  883,  677,  681,  883,  681,  883,  883,  883,  681,
     1085       86,  883,   86,  883,  883,  883,   86,  849,  883,  849,
     1086      883,  883,  883,  849,  140,  883,  140,  883,  883,  883,
     1087      140,  204,  883,  204,  883,  883,  883,  204,   11,  883,
     1088
     1089      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1090      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1091      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1092      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1093      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1094      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1095      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1096      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1097      883,  883,  883
    10881098    } ;
    10891099
    1090 static yyconst flex_int16_t yy_chk[2845] =
     1100static yyconst flex_int16_t yy_chk[2884] =
    10911101    {   0,
    10921102        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11091119        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11101120        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
    1111        10,   37,   37,   20,   39,    9,   10,  860,    7,    8,
     1121       10,   37,   37,   20,   39,    9,   10,  882,    7,    8,
    11121122       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
    11131123
    11141124       15,   15,   20,   25,   39,   42,   53,   28,   27,   28,
    1115        28,   28,   28,   28,   28,  108,  114,   25,   29,   25,
     1125       28,   28,   28,   28,   28,  109,   64,   25,   29,   25,
    11161126       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
    11171127       40,   42,   48,   29,   30,   40,   30,   30,   30,   30,
    1118        30,   30,   35,   61,   35,   35,   44,  859,   44,  108,
    1119       114,  858,   48,   30,   63,   61,   30,   56,   47,   45,
    1120        45,   45,   30,   30,   45,   45,   56,   45,   30,   55,
     1128       30,   30,   35,   62,   35,   35,   44,   56,   44,  109,
     1129      877,  115,   48,   30,  876,   62,   30,   56,   47,   45,
     1130       45,   45,   30,   30,   45,   45,   64,   45,   30,   55,
    11211131       45,   45,   49,   40,   30,   45,   40,   49,   45,   47,
    1122        30,   47,   72,  125,   49,  125,   51,   55,   30,   86,
     1132       30,   47,  175,  874,   49,  115,   51,   55,   30,   73,
    11231133       49,   30,   31,   55,   31,   31,   31,   31,   31,   31,
    11241134
    1125        50,   51,  857,   51,   63,  153,   54,   58,   72,   50,
    1126        60,   31,   51,   50,   31,   86,   54,   57,   50,   58,
    1127        31,  153,   50,   54,  141,  156,   31,   58,   60,   57,
    1128        57,   59,   31,  126,   58,  126,   59,  156,   31,   57,
    1129        52,  855,   57,   67,   67,   52,   31,   38,   67,   59,
    1130       141,   38,   38,   52,   38,   52,   38,   38,   52,   38,
    1131       107,   38,   52,  113,   67,   67,   67,   67,   67,   67,
    1132        38,   38,   38,  128,   59,  128,  152,   59,   66,   66,
    1133        66,   66,   66,   66,  107,  152,   66,  113,  854,  849,
    1134        38,   59,  165,   38,   79,   79,   79,   79,   79,   79,
    1135 
    1136        81,   81,   81,   81,   81,   81,   82,   82,   82,   82,
    1137        82,   82,  131,  165,  131,  103,  103,  103,  103,  106,
    1138        38,   38,   76,   76,  848,  106,  112,   76,  168,   76,
    1139       110,  133,  112,  133,   76,  102,  102,  102,  102,  102,
    1140       102,  130,  103,   76,   76,   76,   76,  103,  110,  168,
    1141       109,  106,  129,  130,   76,  130,  110,  104,  112,  104,
    1142       104,  104,  104,  104,  104,  149,  129,  102,  129,   76,
    1143       103,  136,   76,  136,  158,  115,  104,   76,   76,  109,
    1144       149,   76,   76,  155,  109,  132,  132,  149,  132,   76,
    1145       158,  104,   76,  115,   76,   76,   76,  104,   76,   84,
    1146 
    1147       138,  115,  138,   84,   84,  155,  166,  109,   84,   84,
    1148       105,   84,  105,   84,  150,  105,  105,  105,  105,  105,
    1149       105,  151,   84,   84,   84,  134,  134,  134,  144,  166,
    1150       154,  157,  150,  144,  159,  167,  157,  174,  157,  151,
    1151       157,  157,   84,  161,  157,   84,  157,  105,  154,  160,
    1152       163,  157,  157,  157,  162,  157,  159,  174,  160,  162,
    1153       164,  169,  167,  170,  161,  161,  169,  163,  171,  172,
    1154       164,  144,  162,   84,   98,   98,   98,   98,   98,   98,
    1155       173,  175,  176,  171,  169,  170,  172,  178,  179,  182,
    1156        98,   98,  180,   98,   98,  184,  187,  180,  173,  181,
    1157 
    1158       184,  189,  178,  183,  176,  179,   98,  182,  175,  178,
    1159       181,   98,   98,   98,  183,  184,   98,  185,   98,  186,
    1160       181,  181,  188,  187,  190,  191,  216,  847,  216,  192,
    1161       185,  183,  203,  217,  218,  217,  218,  190,  191,  186,
    1162       191,  188,  192,  246,  189,  190,  279,  189,  195,  195,
    1163       195,  195,  195,  195,  196,  196,  195,  280,  203,  196,
    1164       198,  198,  279,  207,  207,  198,  200,  200,  207,  246,
    1165       221,  200,  221,  200,  280,  196,  196,  196,  196,  196,
    1166       196,  198,  198,  198,  198,  198,  198,  200,  200,  200,
    1167       200,  200,  200,  210,  210,  210,  210,  219,  220,  222,
    1168 
    1169       222,  223,  222,  223,  224,  224,  224,  226,  232,  226,
    1170       220,  219,  220,  219,  227,  234,  227,  241,  235,  234,
    1171       254,  233,  264,  233,  264,  210,  233,  233,  233,  233,
    1172       233,  233,  232,  265,  288,  265,  234,  276,  234,  235,
    1173       846,  235,  268,  234,  239,  239,  254,  239,  239,  288,
    1174       276,  241,  242,  242,  242,  242,  242,  242,  233,  243,
    1175       243,  243,  243,  243,  243,  239,  239,  239,  268,  242,
    1176       239,  245,  239,  245,  292,  251,  245,  245,  245,  245,
    1177       245,  245,  277,  278,  242,  282,  284,  292,  309,  291,
    1178       242,  244,  244,  244,  244,  244,  244,  251,  291,  251,
    1179 
    1180       277,  278,  286,  251,  309,  282,  284,  244,  287,  251,
    1181       244,  244,  253,  253,  253,  253,  253,  253,  842,  281,
    1182       286,  251,  283,  244,  281,  251,  289,  283,  244,  251,
    1183       244,  285,  293,  244,  287,  244,  258,  258,  258,  258,
    1184       258,  258,  289,  289,  253,  290,  285,  294,  296,  297,
    1185       290,  298,  285,  285,  297,  299,  300,  301,  302,  293,
    1186       298,  307,  299,  306,  303,  294,  296,  304,  258,  303,
    1187       307,  305,  304,  311,  310,  301,  300,  305,  308,  302,
    1188       302,  312,  306,  310,  308,  313,  312,  314,  311,  315,
    1189       313,  317,  314,  316,  319,  320,  322,  323,  325,  321,
    1190 
    1191       327,  324,  328,  333,  317,  319,  329,  326,  315,  314,
    1192       320,  316,  321,  330,  332,  325,  326,  334,  322,  335,
    1193       323,  324,  327,  332,  337,  328,  336,  338,  329,  337,
    1194       420,  330,  335,  340,  336,  334,  339,  339,  357,  340,
    1195       357,  339,  338,  339,  420,  397,  333,  347,  347,  347,
    1196       347,  348,  348,  348,  348,  358,  397,  358,  365,  365,
    1197       365,  365,  365,  365,  367,  402,  367,  376,  377,  367,
    1198       367,  367,  367,  367,  367,  840,  402,  376,  377,  347,
    1199       366,  366,  366,  366,  366,  366,  370,  370,  370,  370,
    1200       370,  370,  381,  376,  377,  398,  366,  383,  407,  366,
    1201 
    1202       366,  371,  371,  371,  371,  371,  371,  379,  406,  404,
    1203       378,  398,  366,  379,  407,  383,  381,  366,  370,  366,
    1204       399,  406,  366,  383,  366,  372,  372,  372,  372,  372,
    1205       372,  404,  378,  371,  378,  399,  400,  382,  378,  379,
    1206       380,  837,  380,  401,  378,  380,  380,  380,  380,  380,
    1207       380,  408,  401,  403,  405,  400,  378,  372,  409,  382,
    1208       378,  382,  403,  405,  378,  382,  410,  411,  415,  418,
    1209       836,  382,  835,  408,  409,  409,  412,  380,  413,  416,
    1210       414,  412,  417,  382,  418,  411,  414,  382,  410,  415,
    1211       416,  382,  422,  413,  424,  425,  426,  427,  429,  432,
    1212 
    1213       413,  417,  428,  430,  422,  426,  434,  435,  428,  426,
    1214       436,  437,  430,  429,  432,  424,  438,  425,  439,  440,
    1215       427,  444,  442,  446,  445,  436,  434,  447,  440,  435,
    1216       448,  438,  449,  437,  454,  450,  451,  487,  439,  442,
    1217       459,  449,  526,  446,  444,  445,  455,  447,  452,  451,
    1218       453,  456,  448,  450,  455,  452,  457,  453,  518,  454,
    1219       460,  518,  459,  487,  455,  461,  514,  457,  456,  460,
    1220       526,  461,  470,  470,  470,  470,  481,  481,  481,  481,
    1221       481,  481,  483,  483,  483,  483,  483,  483,  514,  512,
    1222       484,  486,  481,  488,  508,  481,  481,  485,  544,  485,
    1223 
    1224       484,  486,  485,  485,  485,  485,  485,  485,  481,  512,
    1225       544,  508,  511,  481,  483,  481,  484,  486,  481,  488,
    1226       481,  490,  490,  490,  490,  490,  490,  511,  509,  513,
    1227       515,  520,  519,  560,  485,  491,  491,  491,  491,  491,
    1228       491,  509,  513,  515,  516,  560,  517,  521,  523,  516,
    1229       520,  491,  519,  523,  491,  491,  492,  517,  492,  524,
    1230       522,  492,  492,  492,  492,  492,  492,  491,  521,  522,
    1231       524,  525,  491,  527,  491,  528,  529,  491,  530,  491,
    1232       531,  534,  527,  533,  525,  531,  536,  530,  537,  533,
    1233       534,  538,  539,  529,  540,  542,  543,  528,  552,  545,
    1234 
    1235       547,  550,  554,  540,  542,  537,  538,  539,  551,  553,
    1236       550,  548,  536,  543,  545,  547,  548,  551,  556,  554,
    1237       552,  557,  553,  558,  559,  562,  556,  561,  563,  566,
    1238       558,  557,  565,  561,  562,  611,  610,  616,  563,  592,
    1239       615,  834,  566,  610,  611,  616,  559,  615,  613,  565,
    1240       585,  585,  585,  585,  585,  585,  586,  586,  586,  586,
    1241       586,  586,  588,  592,  588,  613,  612,  588,  588,  588,
    1242       588,  588,  588,  591,  591,  591,  591,  591,  591,  612,
    1243       617,  614,  585,  587,  587,  587,  587,  587,  587,  593,
    1244       594,  609,  618,  593,  619,  618,  609,  617,  833,  587,
    1245 
    1246       832,  620,  587,  587,  614,  591,  621,  619,  623,  609,
    1247       593,  594,  593,  594,  622,  587,  620,  593,  624,  625,
    1248       587,  624,  587,  626,  627,  587,  628,  587,  621,  629,
    1249       623,  622,  631,  630,  632,  634,  625,  635,  629,  627,
    1250       636,  641,  642,  632,  637,  648,  628,  644,  831,  647,
    1251       626,  630,  648,  637,  631,  659,  655,  634,  647,  658,
    1252       635,  641,  636,  656,  644,  655,  691,  696,  658,  642,
    1253       659,  694,  696,  656,  677,  677,  677,  677,  677,  677,
    1254       682,  682,  682,  682,  682,  682,  692,  691,  695,  697,
    1255       677,  703,  700,  677,  677,  695,  692,  694,  698,  699,
    1256 
    1257       703,  698,  699,  705,  704,  706,  677,  704,  702,  697,
    1258       700,  677,  682,  677,  702,  709,  677,  707,  677,  708,
    1259       707,  711,  710,  712,  705,  710,  713,  715,  708,  714,
    1260       717,  712,  720,  706,  711,  725,  713,  723,  724,  717,
    1261       709,  727,  714,  728,  749,  748,  752,  746,  715,  727,
    1262       748,  747,  728,  751,  755,  720,  725,  723,  754,  749,
    1263       724,  735,  735,  735,  735,  735,  735,  746,  747,  750,
    1264       753,  754,  752,  753,  757,  759,  751,  757,  759,  750,
    1265       760,  755,  761,  762,  763,  761,  762,  760,  764,  769,
    1266       784,  787,  786,  735,  788,  790,  789,  788,  790,  763,
    1267 
    1268       793,  792,  794,  797,  796,  794,  797,  798,  800,  787,
    1269       798,  764,  769,  786,  799,  801,  816,  784,  789,  792,
    1270       817,  819,  821,  799,  800,  793,  796,  817,  830,  818,
    1271       819,  801,  818,  820,  826,  824,  820,  816,  824,  821,
    1272       827,  828,  829,  827,  838,  841,  843,  839,  841,  843,
    1273       828,  829,  839,  838,  844,  845,  850,  844,  845,  851,
    1274       852,  853,  856,  852,  853,  825,  823,  822,  815,  814,
    1275       813,  812,  811,  810,  851,  809,  850,  808,  807,  806,
    1276       805,  804,  803,  802,  856,  862,  862,  862,  862,  862,
    1277       862,  862,  862,  862,  862,  862,  862,  862,  863,  863,
    1278 
    1279       863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
    1280       863,  864,  864,  864,  864,  864,  864,  864,  864,  864,
    1281       864,  864,  864,  864,  865,  795,  791,  865,  785,  865,
    1282       865,  865,  865,  865,  866,  783,  782,  781,  866,  866,
    1283       866,  866,  866,  866,  867,  867,  867,  867,  867,  867,
    1284       867,  867,  867,  867,  867,  867,  867,  868,  780,  779,
    1285       868,  778,  868,  868,  868,  868,  868,  869,  777,  869,
    1286       869,  776,  869,  869,  869,  869,  869,  869,  775,  869,
    1287       870,  774,  773,  870,  870,  870,  870,  870,  870,  870,
    1288       870,  772,  870,  871,  871,  871,  871,  871,  871,  871,
    1289 
    1290       871,  871,  871,  871,  871,  871,  872,  872,  771,  872,
    1291       770,  768,  767,  872,  873,  766,  765,  873,  758,  873,
    1292       873,  873,  873,  873,  874,  756,  874,  745,  744,  743,
    1293       874,  875,  742,  875,  741,  740,  739,  875,  876,  738,
    1294       876,  737,  734,  733,  876,  877,  732,  877,  726,  722,
    1295       721,  877,  878,  719,  878,  718,  716,  701,  878,  879,
    1296       693,  879,  690,  685,  683,  879,  880,  678,  880,  668,
    1297       664,  662,  880,  881,  660,  881,  657,  654,  653,  881,
    1298       882,  652,  882,  651,  650,  649,  882,  883,  883,  883,
    1299       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1300 
    1301       884,  646,  884,  885,  885,  645,  885,  885,  885,  643,
    1302       885,  886,  886,  640,  886,  887,  639,  887,  638,  633,
    1303       607,  887,  888,  603,  888,  601,  599,  597,  888,  889,
    1304       595,  889,  589,  583,  581,  889,  890,  579,  890,  891,
    1305       577,  891,  575,  573,  571,  891,  892,  569,  892,  893,
    1306       568,  567,  893,  564,  893,  893,  893,  893,  893,  894,
    1307       894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
    1308       894,  894,  895,  895,  895,  895,  895,  895,  895,  895,
    1309       895,  895,  895,  895,  895,  896,  555,  896,  549,  546,
    1310       541,  896,  897,  535,  897,  532,  510,  506,  897,  898,
    1311 
    1312       504,  898,  502,  500,  498,  898,  899,  496,  899,  900,
    1313       495,  900,  494,  493,  482,  900,  901,  479,  901,  902,
    1314       477,  902,  476,  475,  473,  902,  903,  471,  903,  904,
    1315       468,  904,  466,  464,  462,  904,  905,  458,  905,  906,
    1316       443,  906,  441,  433,  431,  906,  907,  423,  907,  908,
    1317       421,  908,  419,  394,  392,  908,  909,  390,  909,  910,
    1318       388,  910,  387,  386,  373,  910,  911,  362,  911,  912,
    1319       360,  912,  359,  912,  355,  912,  913,  353,  913,  351,
    1320       913,  349,  913,  914,  914,  345,  914,  914,  914,  343,
    1321       914,  915,  342,  915,  341,  331,  318,  915,  916,  295,
    1322 
    1323       916,  275,  273,  271,  916,  917,  270,  917,  269,  267,
    1324       266,  917,  918,  261,  918,  919,  257,  919,  256,  252,
    1325       249,  919,  920,  248,  920,  921,  237,  921,  236,  229,
    1326       228,  921,  922,  225,  922,  923,  215,  923,  213,  212,
    1327       211,  923,  924,  205,  924,  925,  204,  202,  925,  197,
    1328       925,  925,  925,  925,  925,  926,  926,  926,  926,  926,
    1329       926,  926,  926,  926,  926,  926,  926,  926,  927,  177,
    1330       927,  148,  146,  145,  927,  928,  139,  928,  929,  137,
    1331       929,  135,  127,  124,  929,  930,  123,  930,  931,  119,
    1332       931,  100,   97,   94,  931,  932,   92,  932,  933,   85,
    1333 
    1334       933,   71,   69,   65,  933,  934,   36,  934,  935,   33,
    1335       935,   18,   11,    4,  935,  936,    3,  936,  937,    0,
    1336       937,    0,    0,    0,  937,  938,    0,  938,  939,    0,
    1337       939,    0,    0,    0,  939,  940,    0,  940,    0,    0,
    1338         0,  940,  941,    0,  941,  942,    0,  942,    0,    0,
    1339         0,  942,  943,    0,  943,  944,    0,  944,    0,  944,
    1340         0,  944,  945,    0,  945,    0,    0,    0,  945,  946,
    1341         0,  946,    0,    0,    0,  946,  947,    0,  947,  948,
    1342         0,  948,    0,    0,    0,  948,  949,    0,  949,  950,
    1343         0,  950,    0,    0,    0,  950,  951,    0,  951,  952,
    1344 
    1345         0,  952,    0,    0,    0,  952,  953,    0,  953,  954,
    1346         0,  954,    0,    0,    0,  954,  955,    0,  955,  956,
    1347         0,  956,    0,    0,    0,  956,  957,    0,  957,  958,
    1348         0,    0,  958,    0,  958,  958,  958,  958,  958,  959,
    1349       959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
    1350       959,  959,  960,    0,  960,    0,    0,    0,  960,  961,
    1351         0,  961,  962,    0,  962,    0,    0,    0,  962,  963,
    1352         0,  963,  964,    0,  964,    0,    0,    0,  964,  965,
    1353         0,  965,  966,    0,  966,    0,    0,    0,  966,  967,
    1354         0,  967,  968,    0,  968,    0,    0,    0,  968,  969,
    1355 
    1356         0,  969,  970,    0,  970,    0,    0,    0,  970,  971,
    1357         0,  971,  972,    0,  972,    0,    0,    0,  972,  973,
    1358         0,  973,  974,    0,  974,    0,    0,    0,  974,  975,
    1359         0,  975,  976,    0,  976,    0,    0,    0,  976,  977,
    1360         0,  977,    0,    0,    0,  977,  978,    0,  978,  979,
    1361         0,  979,    0,    0,    0,  979,  980,    0,  980,  981,
    1362         0,  981,    0,    0,    0,  981,  982,    0,  982,  983,
    1363         0,  983,    0,    0,    0,  983,  984,    0,  984,  985,
    1364         0,  985,  986,    0,  986,  987,    0,    0,  987,    0,
    1365       987,  987,  987,  987,  987,  988,    0,  988,  989,  989,
    1366 
    1367       989,  989,  989,  989,  989,  989,  989,  989,  989,  989,
     1135       50,   51,  175,   51,   87,  108,   54,   59,   57,   50,
     1136       61,   31,   51,   50,   31,   73,   54,   57,   50,   59,
     1137       31,  873,   50,   54,  111,  154,   31,   59,   61,  108,
     1138       87,   60,   31,  126,   59,  126,   60,  127,   31,  127,
     1139       52,  154,  111,   68,   68,   52,   31,   38,   68,   60,
     1140      111,   38,   38,   52,   38,   52,   38,   38,   52,   38,
     1141      114,   38,   52,   58,   68,   68,   68,   68,   68,   68,
     1142       38,   38,   38,  871,   60,   58,   58,   60,   67,   67,
     1143       67,   67,   67,   67,  114,   58,   67,  129,   58,  129,
     1144       38,   60,  156,   38,   80,   80,   80,   80,   80,   80,
     1145
     1146       82,   82,   82,   82,   82,   82,   83,   83,   83,   83,
     1147       83,   83,  130,  870,  156,  104,  104,  104,  104,  107,
     1148       38,   38,   77,   77,  113,  107,  130,   77,  130,   77,
     1149      113,  132,  142,  132,   77,  103,  103,  103,  103,  103,
     1150      103,  131,  104,   77,   77,   77,   77,  104,  116,  864,
     1151      110,  107,  159,  131,   77,  131,  113,  105,  142,  105,
     1152      105,  105,  105,  105,  105,  150,  116,  103,  159,   77,
     1153      104,  134,   77,  134,  116,  151,  105,   77,   77,  110,
     1154      150,   77,   77,  160,  110,  133,  133,  150,  133,   77,
     1155      863,  105,   77,  151,   77,   77,   77,  105,   77,   85,
     1156
     1157      135,  135,  135,   85,   85,  160,  243,  110,   85,   85,
     1158      106,   85,  106,   85,  152,  106,  106,  106,  106,  106,
     1159      106,  153,   85,   85,   85,  137,  139,  137,  139,  145,
     1160      153,  155,  152,  164,  145,  161,  157,  166,  168,  169,
     1161      243,  162,   85,  322,  161,   85,  158,  106,  157,  155,
     1162      164,  158,  158,  158,  322,  158,  158,  167,  166,  158,
     1163      169,  158,  162,  162,  163,  168,  158,  158,  158,  163,
     1164      158,  165,  145,   85,   99,   99,   99,   99,   99,   99,
     1165      167,  165,  163,  171,  170,  172,  173,  176,  862,  170,
     1166       99,   99,  174,   99,   99,  177,  181,  185,  180,  182,
     1167
     1168      172,  181,  189,  173,  179,  171,   99,  170,  185,  182,
     1169      174,   99,   99,   99,  176,  180,   99,  177,   99,  179,
     1170      183,  184,  187,  186,  188,  185,  179,  190,  186,  189,
     1171      191,  183,  192,  279,  193,  187,  861,  194,  205,  184,
     1172      234,  183,  183,  186,  188,  192,  190,  193,  284,  193,
     1173      194,  279,  237,  192,  197,  197,  197,  197,  197,  197,
     1174      198,  198,  197,  234,  205,  198,  200,  200,  284,  209,
     1175      209,  200,  857,  191,  209,  237,  191,  212,  212,  212,
     1176      212,  198,  198,  198,  198,  198,  198,  200,  200,  200,
     1177      200,  200,  200,  202,  202,  218,  221,  218,  202,  219,
     1178
     1179      202,  219,  220,  223,  220,  223,  854,  851,  222,  212,
     1180      221,  225,  221,  225,  202,  202,  202,  202,  202,  202,
     1181      222,  248,  222,  224,  224,  256,  224,  226,  226,  226,
     1182      228,  229,  228,  229,  235,  266,  235,  266,  282,  235,
     1183      235,  235,  235,  235,  235,  236,  267,  248,  267,  236,
     1184      309,  256,  270,  241,  241,  282,  241,  241,  294,  278,
     1185      244,  244,  244,  244,  244,  244,  236,  294,  236,  309,
     1186      280,  235,  278,  236,  241,  241,  241,  244,  270,  241,
     1187      281,  241,  245,  245,  245,  245,  245,  245,  280,  283,
     1188      285,  288,  244,  286,  283,  285,  281,  290,  244,  246,
     1189
     1190      246,  246,  246,  246,  246,  255,  255,  255,  255,  255,
     1191      255,  253,  301,  286,  288,  246,  289,  291,  246,  246,
     1192      247,  301,  247,  290,  850,  247,  247,  247,  247,  247,
     1193      247,  246,  291,  253,  289,  253,  246,  255,  246,  253,
     1194      295,  246,  292,  246,  296,  253,  260,  260,  260,  260,
     1195      260,  260,  287,  295,  297,  293,  564,  253,  292,  292,
     1196      293,  253,  299,  300,  303,  253,  564,  287,  300,  302,
     1197      304,  296,  297,  287,  287,  305,  302,  306,  260,  308,
     1198      299,  307,  306,  310,  303,  308,  307,  311,  304,  312,
     1199      313,  314,  310,  311,  318,  315,  305,  305,  316,  313,
     1200
     1201      315,  319,  317,  316,  320,  312,  314,  317,  323,  324,
     1202      326,  327,  325,  318,  329,  328,  331,  320,  330,  319,
     1203      332,  334,  333,  323,  317,  325,  337,  330,  336,  338,
     1204      324,  329,  326,  339,  327,  328,  341,  336,  331,  334,
     1205      340,  341,  342,  332,  333,  344,  339,  338,  340,  343,
     1206      343,  344,  402,  361,  343,  361,  343,  342,  351,  351,
     1207      351,  351,  352,  352,  352,  352,  362,  402,  362,  337,
     1208      369,  369,  369,  369,  369,  369,  371,  379,  371,  380,
     1209      384,  371,  371,  371,  371,  371,  371,  379,  849,  380,
     1210      351,  370,  370,  370,  370,  370,  370,  373,  373,  373,
     1211
     1212      373,  373,  373,  379,  384,  380,  401,  370,  386,  400,
     1213      370,  370,  374,  374,  374,  374,  374,  374,  382,  409,
     1214      400,  381,  401,  370,  382,  407,  386,  403,  370,  373,
     1215      370,  405,  409,  370,  386,  370,  375,  375,  375,  375,
     1216      375,  375,  405,  381,  374,  381,  403,  407,  385,  381,
     1217      382,  383,  848,  383,  404,  381,  383,  383,  383,  383,
     1218      383,  383,  410,  404,  406,  408,  412,  381,  375,  411,
     1219      385,  381,  385,  406,  408,  381,  385,  414,  410,  412,
     1220      413,  416,  385,  415,  418,  417,  416,  419,  383,  422,
     1221      418,  411,  420,  421,  385,  424,  413,  413,  385,  414,
     1222
     1223      417,  415,  385,  420,  422,  426,  428,  417,  419,  424,
     1224      429,  430,  421,  431,  433,  432,  434,  426,  436,  438,
     1225      430,  432,  439,  440,  430,  434,  441,  428,  442,  433,
     1226      443,  444,  429,  436,  446,  448,  431,  449,  440,  438,
     1227      444,  450,  453,  442,  439,  451,  449,  452,  441,  457,
     1228      443,  446,  454,  455,  459,  456,  457,  461,  448,  458,
     1229      464,  454,  450,  465,  453,  451,  458,  452,  456,  460,
     1230      462,  455,  465,  514,  461,  521,  847,  460,  466,  459,
     1231      521,  462,  464,  492,  466,  517,  514,  460,  475,  475,
     1232      475,  475,  486,  486,  486,  486,  486,  486,  488,  488,
     1233
     1234      488,  488,  488,  488,  519,  517,  489,  491,  486,  492,
     1235      513,  486,  486,  490,  493,  490,  489,  491,  490,  490,
     1236      490,  490,  490,  490,  486,  518,  519,  513,  522,  486,
     1237      488,  486,  489,  491,  486,  520,  486,  846,  518,  522,
     1238      493,  495,  495,  495,  495,  495,  495,  516,  520,  524,
     1239      490,  496,  496,  496,  496,  496,  496,  523,  525,  528,
     1240      523,  529,  516,  531,  527,  526,  529,  496,  528,  524,
     1241      496,  496,  497,  525,  497,  530,  531,  497,  497,  497,
     1242      497,  497,  497,  496,  526,  527,  530,  532,  496,  533,
     1243      496,  534,  535,  496,  536,  496,  537,  540,  533,  539,
     1244
     1245      542,  537,  543,  536,  550,  539,  540,  544,  545,  535,
     1246      549,  546,  548,  534,  551,  532,  550,  553,  558,  543,
     1247      546,  548,  544,  545,  556,  554,  542,  549,  557,  551,
     1248      554,  559,  553,  556,  560,  561,  563,  557,  565,  566,
     1249      558,  569,  567,  568,  563,  565,  570,  560,  572,  568,
     1250      569,  573,  561,  559,  567,  617,  570,  625,  599,  601,
     1251      625,  566,  617,  845,  573,  572,  592,  592,  592,  592,
     1252      592,  592,  593,  593,  593,  593,  593,  593,  595,  620,
     1253      595,  599,  601,  595,  595,  595,  595,  595,  595,  598,
     1254      598,  598,  598,  598,  598,  619,  620,  621,  592,  594,
     1255
     1256      594,  594,  594,  594,  594,  600,  616,  618,  619,  600,
     1257      622,  616,  624,  627,  623,  594,  618,  622,  594,  594,
     1258      621,  598,  623,  634,  616,  629,  600,  626,  600,  624,
     1259      628,  594,  630,  600,  631,  627,  594,  633,  594,  632,
     1260      626,  594,  632,  594,  635,  628,  636,  629,  637,  630,
     1261      634,  638,  639,  640,  633,  642,  631,  637,  643,  635,
     1262      644,  645,  640,  649,  650,  657,  636,  652,  655,  638,
     1263      645,  656,  657,  699,  639,  668,  664,  642,  665,  700,
     1264      656,  643,  644,  649,  652,  664,  655,  667,  665,  700,
     1265      668,  650,  702,  708,  699,  705,  667,  686,  686,  686,
     1266
     1267      686,  686,  686,  690,  690,  690,  690,  690,  690,  704,
     1268      844,  708,  703,  686,  704,  705,  686,  686,  702,  703,
     1269      706,  707,  710,  706,  707,  711,  714,  713,  710,  686,
     1270      713,  712,  715,  718,  686,  690,  686,  717,  711,  686,
     1271      712,  686,  716,  720,  721,  716,  717,  714,  719,  722,
     1272      723,  719,  721,  724,  729,  726,  720,  732,  718,  722,
     1273      715,  733,  734,  723,  726,  735,  738,  732,  737,  840,
     1274      839,  763,  760,  756,  724,  738,  737,  729,  757,  759,
     1275      758,  733,  760,  761,  734,  758,  735,  745,  745,  745,
     1276      745,  745,  745,  756,  759,  757,  762,  763,  764,  765,
     1277
     1278      766,  764,  768,  771,  770,  768,  761,  770,  772,  774,
     1279      771,  772,  765,  762,  773,  775,  781,  773,  796,  745,
     1280      798,  801,  799,  800,  774,  802,  800,  766,  802,  803,
     1281      805,  806,  803,  807,  810,  809,  807,  810,  775,  781,
     1282      799,  798,  812,  801,  811,  796,  813,  811,  805,  814,
     1283      829,  812,  830,  835,  832,  831,  806,  809,  831,  830,
     1284      833,  834,  813,  832,  834,  814,  838,  842,  843,  838,
     1285      835,  829,  841,  852,  853,  841,  842,  843,  833,  853,
     1286      855,  856,  852,  855,  858,  859,  860,  858,  859,  860,
     1287      865,  856,  866,  867,  868,  869,  867,  872,  869,  875,
     1288
     1289      878,  879,  881,  880,  868,  837,  836,  866,  828,  878,
     1290      865,  827,  881,  826,  825,  824,  823,  822,  821,  872,
     1291      875,  880,  820,  879,  884,  884,  884,  884,  884,  884,
     1292      884,  884,  884,  884,  884,  884,  884,  885,  885,  885,
     1293      885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
     1294      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     1295      886,  886,  886,  887,  819,  818,  887,  817,  887,  887,
     1296      887,  887,  887,  888,  816,  815,  808,  888,  888,  888,
     1297      888,  888,  888,  889,  889,  889,  889,  889,  889,  889,
     1298      889,  889,  889,  889,  889,  889,  890,  804,  797,  890,
     1299
     1300      795,  890,  890,  890,  890,  890,  891,  794,  891,  891,
     1301      793,  891,  891,  891,  891,  891,  891,  792,  891,  892,
     1302      791,  790,  892,  892,  892,  892,  892,  892,  892,  892,
     1303      789,  892,  893,  893,  893,  893,  893,  893,  893,  893,
     1304      893,  893,  893,  893,  893,  894,  894,  788,  894,  787,
     1305      786,  785,  894,  895,  784,  783,  895,  782,  895,  895,
     1306      895,  895,  895,  896,  780,  896,  779,  778,  777,  896,
     1307      897,  776,  897,  769,  767,  755,  897,  898,  754,  898,
     1308      753,  752,  751,  898,  899,  750,  899,  749,  748,  747,
     1309      899,  900,  744,  900,  743,  742,  736,  900,  901,  731,
     1310
     1311      901,  730,  728,  727,  901,  902,  725,  902,  709,  701,
     1312      698,  902,  903,  693,  903,  691,  687,  677,  903,  904,
     1313      673,  904,  671,  669,  666,  904,  905,  905,  905,  905,
     1314      905,  905,  905,  905,  905,  905,  905,  905,  905,  906,
     1315      663,  906,  907,  907,  662,  907,  907,  907,  661,  907,
     1316      908,  908,  660,  908,  909,  659,  909,  658,  654,  653,
     1317      909,  910,  651,  910,  648,  647,  646,  910,  911,  641,
     1318      911,  614,  610,  608,  911,  912,  606,  912,  913,  604,
     1319      913,  602,  596,  590,  913,  914,  588,  914,  915,  586,
     1320      584,  915,  582,  915,  915,  915,  915,  915,  916,  916,
     1321
     1322      916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
     1323      916,  917,  917,  917,  917,  917,  917,  917,  917,  917,
     1324      917,  917,  917,  917,  918,  580,  918,  578,  576,  575,
     1325      918,  919,  574,  919,  571,  562,  555,  919,  920,  552,
     1326      920,  547,  541,  538,  920,  921,  515,  921,  922,  511,
     1327      922,  509,  507,  505,  922,  923,  503,  923,  924,  501,
     1328      924,  500,  499,  498,  924,  925,  487,  925,  926,  484,
     1329      926,  482,  481,  480,  926,  927,  478,  927,  928,  476,
     1330      928,  473,  471,  469,  928,  929,  467,  929,  930,  463,
     1331      930,  447,  445,  437,  930,  931,  435,  931,  932,  427,
     1332
     1333      932,  425,  423,  397,  932,  933,  395,  933,  934,  393,
     1334      934,  391,  934,  390,  934,  935,  389,  935,  376,  935,
     1335      366,  935,  936,  936,  364,  936,  936,  936,  363,  936,
     1336      937,  359,  937,  357,  355,  353,  937,  938,  349,  938,
     1337      347,  346,  345,  938,  939,  335,  939,  321,  298,  277,
     1338      939,  940,  275,  940,  941,  273,  941,  272,  271,  269,
     1339      941,  942,  268,  942,  943,  263,  943,  259,  258,  254,
     1340      943,  944,  251,  944,  945,  250,  945,  239,  238,  231,
     1341      945,  946,  230,  946,  947,  227,  217,  947,  215,  947,
     1342      947,  947,  947,  947,  948,  948,  948,  948,  948,  948,
     1343
     1344      948,  948,  948,  948,  948,  948,  948,  949,  214,  949,
     1345      213,  207,  206,  949,  950,  204,  950,  951,  199,  951,
     1346      178,  149,  147,  951,  952,  146,  952,  953,  140,  953,
     1347      138,  136,  128,  953,  954,  125,  954,  955,  124,  955,
     1348      120,  101,   98,  955,  956,   95,  956,  957,   93,  957,
     1349       86,   72,   70,  957,  958,   66,  958,  959,   36,  959,
     1350       33,   18,   11,  959,  960,    4,  960,  961,    3,  961,
     1351        0,    0,    0,  961,  962,    0,  962,    0,    0,    0,
     1352      962,  963,    0,  963,  964,    0,  964,    0,    0,    0,
     1353      964,  965,    0,  965,  966,    0,  966,    0,  966,    0,
     1354
     1355      966,  967,    0,  967,    0,    0,    0,  967,  968,    0,
     1356      968,    0,    0,    0,  968,  969,    0,  969,  970,    0,
     1357      970,    0,    0,    0,  970,  971,    0,  971,  972,    0,
     1358      972,    0,    0,    0,  972,  973,    0,  973,  974,    0,
     1359      974,    0,    0,    0,  974,  975,    0,  975,  976,    0,
     1360      976,    0,    0,    0,  976,  977,    0,  977,  978,    0,
     1361      978,    0,    0,    0,  978,  979,    0,  979,  980,    0,
     1362        0,  980,    0,  980,  980,  980,  980,  980,  981,  981,
     1363      981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
     1364      981,  982,    0,  982,    0,    0,    0,  982,  983,    0,
     1365
     1366      983,  984,    0,  984,    0,    0,    0,  984,  985,    0,
     1367      985,  986,    0,  986,    0,    0,    0,  986,  987,    0,
     1368      987,  988,    0,  988,    0,    0,    0,  988,  989,    0,
    13681369      989,  990,    0,  990,    0,    0,    0,  990,  991,    0,
    13691370      991,  992,    0,  992,    0,    0,    0,  992,  993,    0,
    1370       993,  994,    0,  994,  995,    0,  995,  996,    0,    0,
    1371       996,    0,  996,  996,  996,  996,  996,  997,    0,  997,
    1372       998,    0,  998,  999,    0,  999, 1000,    0, 1000, 1001,
    1373         0, 1001, 1002,    0, 1002, 1003,    0, 1003, 1004,    0,
    1374      1004,    0,    0,    0, 1004, 1005,    0, 1005, 1006,    0,
    1375      1006,    0,    0,    0, 1006, 1007,    0, 1007, 1008,    0,
    1376      1008, 1009,    0, 1009, 1010,    0, 1010, 1011,    0, 1011,
    1377 
    1378         0,    0,    0, 1011, 1012,    0,    0, 1012,    0, 1012,
    1379      1012, 1012, 1012, 1012, 1013,    0, 1013, 1014,    0, 1014,
    1380      1015,    0, 1015, 1016,    0, 1016,    0,    0,    0, 1016,
    1381      1017,    0, 1017,    0,    0,    0, 1017, 1018,    0, 1018,
    1382         0,    0,    0, 1018, 1019,    0, 1019, 1020,    0, 1020,
    1383         0,    0,    0, 1020, 1021,    0, 1021,    0,    0,    0,
    1384      1021, 1022,    0, 1022,    0,    0,    0, 1022, 1023,    0,
    1385      1023,    0,    0,    0, 1023, 1024,    0, 1024,    0,    0,
    1386         0, 1024, 1025,    0, 1025,    0,    0,    0, 1025, 1026,
    1387         0, 1026,    0,    0,    0, 1026, 1027,    0, 1027,    0,
    1388 
    1389         0,    0, 1027, 1028,    0, 1028,    0,    0,    0, 1028,
    1390      1029,    0, 1029,    0,    0,    0, 1029, 1030,    0, 1030,
    1391         0,    0,    0, 1030, 1031,    0, 1031,    0,    0,    0,
    1392      1031, 1032,    0, 1032,    0,    0,    0, 1032, 1033,    0,
    1393      1033,    0,    0,    0, 1033, 1034,    0, 1034,    0,    0,
    1394         0, 1034, 1035,    0, 1035,    0,    0,    0, 1035,  861,
    1395       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1396       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1397       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1398       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1399 
    1400       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1401       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1402       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1403       861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1404       861,  861,  861,  861
     1371      993,  994,    0,  994,    0,    0,    0,  994,  995,    0,
     1372      995,  996,    0,  996,    0,    0,    0,  996,  997,    0,
     1373      997,  998,    0,  998,    0,    0,    0,  998,  999,    0,
     1374      999,    0,    0,    0,  999, 1000,    0, 1000, 1001,    0,
     1375     1001,    0,    0,    0, 1001, 1002,    0, 1002, 1003,    0,
     1376
     1377     1003,    0,    0,    0, 1003, 1004,    0, 1004, 1005,    0,
     1378     1005,    0,    0,    0, 1005, 1006,    0, 1006, 1007,    0,
     1379     1007, 1008,    0, 1008, 1009,    0,    0, 1009,    0, 1009,
     1380     1009, 1009, 1009, 1009, 1010,    0, 1010, 1011, 1011, 1011,
     1381     1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
     1382     1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
     1383     1014,    0, 1014,    0,    0,    0, 1014, 1015,    0, 1015,
     1384     1016,    0, 1016, 1017,    0, 1017, 1018,    0,    0, 1018,
     1385        0, 1018, 1018, 1018, 1018, 1018, 1019,    0, 1019, 1020,
     1386        0, 1020, 1021,    0, 1021, 1022,    0, 1022, 1023,    0,
     1387
     1388     1023, 1024,    0, 1024, 1025,    0, 1025, 1026,    0, 1026,
     1389        0,    0,    0, 1026, 1027,    0, 1027, 1028,    0, 1028,
     1390        0,    0,    0, 1028, 1029,    0, 1029, 1030,    0, 1030,
     1391     1031,    0, 1031, 1032,    0, 1032, 1033,    0, 1033,    0,
     1392        0,    0, 1033, 1034,    0,    0, 1034,    0, 1034, 1034,
     1393     1034, 1034, 1034, 1035,    0, 1035, 1036,    0, 1036, 1037,
     1394        0, 1037, 1038,    0, 1038,    0,    0,    0, 1038, 1039,
     1395        0, 1039,    0,    0,    0, 1039, 1040,    0, 1040,    0,
     1396        0,    0, 1040, 1041,    0, 1041, 1042,    0, 1042,    0,
     1397        0,    0, 1042, 1043,    0, 1043,    0,    0,    0, 1043,
     1398
     1399     1044,    0, 1044,    0,    0,    0, 1044, 1045,    0, 1045,
     1400        0,    0,    0, 1045, 1046,    0, 1046,    0,    0,    0,
     1401     1046, 1047,    0, 1047,    0,    0,    0, 1047, 1048,    0,
     1402     1048,    0,    0,    0, 1048, 1049,    0, 1049,    0,    0,
     1403        0, 1049, 1050,    0, 1050,    0,    0,    0, 1050, 1051,
     1404        0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,    0,
     1405        0,    0, 1052, 1053,    0, 1053,    0,    0,    0, 1053,
     1406     1054,    0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,
     1407        0,    0,    0, 1055, 1056,    0, 1056,    0,    0,    0,
     1408     1056, 1057,    0, 1057,    0,    0,    0, 1057,  883,  883,
     1409
     1410      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1411      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1412      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1413      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1414      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1415      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1416      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1417      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1418      883,  883,  883
    14051419    } ;
    14061420
    14071421/* Table of booleans, true if rule could match eol. */
    1408 static yyconst flex_int32_t yy_rule_can_match_eol[179] =
     1422static yyconst flex_int32_t yy_rule_can_match_eol[181] =
    14091423    {   0,
    141014241, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14131427    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14141428    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1415     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1,
     1429    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
     1430    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14161431    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14171432    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1418     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
     1433    0,     };
    14191434
    14201435static yy_state_type yy_last_accepting_state;
     
    14441459 * Created On       : Sat Sep 22 08:58:10 2001
    14451460 * Last Modified By : Peter A. Buhr
    1446  * Last Modified On : Thu Jan 21 21:53:38 2016
    1447  * Update Count     : 417
     1461 * Last Modified On : Sat Jan 30 19:54:39 2016
     1462 * Update Count     : 425
    14481463 */
    14491464#line 20 "lex.ll"
     
    15031518
    15041519
    1505 #line 1506 "Parser/lex.cc"
     1520#line 1521 "Parser/lex.cc"
    15061521
    15071522#define INITIAL 0
     
    16981713
    16991714                                   /* line directives */
    1700 #line 1701 "Parser/lex.cc"
     1715#line 1716 "Parser/lex.cc"
    17011716
    17021717        if ( !(yy_init) )
     
    17521767                                {
    17531768                                yy_current_state = (int) yy_def[yy_current_state];
    1754                                 if ( yy_current_state >= 862 )
     1769                                if ( yy_current_state >= 884 )
    17551770                                        yy_c = yy_meta[(unsigned int) yy_c];
    17561771                                }
     
    17581773                        ++yy_cp;
    17591774                        }
    1760                 while ( yy_base[yy_current_state] != 2760 );
     1775                while ( yy_base[yy_current_state] != 2799 );
    17611776
    17621777yy_find_action:
     
    21702185YY_RULE_SETUP
    21712186#line 238 "lex.ll"
     2187{ KEYWORD_RETURN(OFFSETOF); }                   // GCC
     2188        YY_BREAK
     2189case 71:
     2190YY_RULE_SETUP
     2191#line 239 "lex.ll"
     2192{ KEYWORD_RETURN(OFFSETOF); }           // GCC
     2193        YY_BREAK
     2194case 72:
     2195YY_RULE_SETUP
     2196#line 240 "lex.ll"
    21722197{ KEYWORD_RETURN(REGISTER); }
    21732198        YY_BREAK
    2174 case 71:
    2175 YY_RULE_SETUP
    2176 #line 239 "lex.ll"
     2199case 73:
     2200YY_RULE_SETUP
     2201#line 241 "lex.ll"
    21772202{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21782203        YY_BREAK
    2179 case 72:
    2180 YY_RULE_SETUP
    2181 #line 240 "lex.ll"
     2204case 74:
     2205YY_RULE_SETUP
     2206#line 242 "lex.ll"
    21822207{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21832208        YY_BREAK
    2184 case 73:
    2185 YY_RULE_SETUP
    2186 #line 241 "lex.ll"
     2209case 75:
     2210YY_RULE_SETUP
     2211#line 243 "lex.ll"
    21872212{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21882213        YY_BREAK
    2189 case 74:
    2190 YY_RULE_SETUP
    2191 #line 242 "lex.ll"
     2214case 76:
     2215YY_RULE_SETUP
     2216#line 244 "lex.ll"
    21922217{ KEYWORD_RETURN(RETURN); }
    21932218        YY_BREAK
    2194 case 75:
    2195 YY_RULE_SETUP
    2196 #line 243 "lex.ll"
     2219case 77:
     2220YY_RULE_SETUP
     2221#line 245 "lex.ll"
    21972222{ KEYWORD_RETURN(SHORT); }
    21982223        YY_BREAK
    2199 case 76:
    2200 YY_RULE_SETUP
    2201 #line 244 "lex.ll"
     2224case 78:
     2225YY_RULE_SETUP
     2226#line 246 "lex.ll"
    22022227{ KEYWORD_RETURN(SIGNED); }
    22032228        YY_BREAK
    2204 case 77:
    2205 YY_RULE_SETUP
    2206 #line 245 "lex.ll"
     2229case 79:
     2230YY_RULE_SETUP
     2231#line 247 "lex.ll"
    22072232{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22082233        YY_BREAK
    2209 case 78:
    2210 YY_RULE_SETUP
    2211 #line 246 "lex.ll"
     2234case 80:
     2235YY_RULE_SETUP
     2236#line 248 "lex.ll"
    22122237{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22132238        YY_BREAK
    2214 case 79:
    2215 YY_RULE_SETUP
    2216 #line 247 "lex.ll"
     2239case 81:
     2240YY_RULE_SETUP
     2241#line 249 "lex.ll"
    22172242{ KEYWORD_RETURN(SIZEOF); }
    22182243        YY_BREAK
    2219 case 80:
    2220 YY_RULE_SETUP
    2221 #line 248 "lex.ll"
     2244case 82:
     2245YY_RULE_SETUP
     2246#line 250 "lex.ll"
    22222247{ KEYWORD_RETURN(STATIC); }
    22232248        YY_BREAK
    2224 case 81:
    2225 YY_RULE_SETUP
    2226 #line 249 "lex.ll"
     2249case 83:
     2250YY_RULE_SETUP
     2251#line 251 "lex.ll"
    22272252{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22282253        YY_BREAK
    2229 case 82:
    2230 YY_RULE_SETUP
    2231 #line 250 "lex.ll"
     2254case 84:
     2255YY_RULE_SETUP
     2256#line 252 "lex.ll"
    22322257{ KEYWORD_RETURN(STRUCT); }
    22332258        YY_BREAK
    2234 case 83:
    2235 YY_RULE_SETUP
    2236 #line 251 "lex.ll"
     2259case 85:
     2260YY_RULE_SETUP
     2261#line 253 "lex.ll"
    22372262{ KEYWORD_RETURN(SWITCH); }
    22382263        YY_BREAK
    2239 case 84:
    2240 YY_RULE_SETUP
    2241 #line 252 "lex.ll"
     2264case 86:
     2265YY_RULE_SETUP
     2266#line 254 "lex.ll"
    22422267{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22432268        YY_BREAK
    2244 case 85:
    2245 YY_RULE_SETUP
    2246 #line 253 "lex.ll"
     2269case 87:
     2270YY_RULE_SETUP
     2271#line 255 "lex.ll"
    22472272{ KEYWORD_RETURN(THROW); }                              // CFA
    22482273        YY_BREAK
    2249 case 86:
    2250 YY_RULE_SETUP
    2251 #line 254 "lex.ll"
     2274case 88:
     2275YY_RULE_SETUP
     2276#line 256 "lex.ll"
    22522277{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22532278        YY_BREAK
    2254 case 87:
    2255 YY_RULE_SETUP
    2256 #line 255 "lex.ll"
     2279case 89:
     2280YY_RULE_SETUP
     2281#line 257 "lex.ll"
    22572282{ KEYWORD_RETURN(TRY); }                                // CFA
    22582283        YY_BREAK
    2259 case 88:
    2260 YY_RULE_SETUP
    2261 #line 256 "lex.ll"
     2284case 90:
     2285YY_RULE_SETUP
     2286#line 258 "lex.ll"
    22622287{ KEYWORD_RETURN(TYPE); }                               // CFA
    22632288        YY_BREAK
    2264 case 89:
    2265 YY_RULE_SETUP
    2266 #line 257 "lex.ll"
     2289case 91:
     2290YY_RULE_SETUP
     2291#line 259 "lex.ll"
    22672292{ KEYWORD_RETURN(TYPEDEF); }
    2268         YY_BREAK
    2269 case 90:
    2270 YY_RULE_SETUP
    2271 #line 258 "lex.ll"
    2272 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2273         YY_BREAK
    2274 case 91:
    2275 YY_RULE_SETUP
    2276 #line 259 "lex.ll"
    2277 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    22782293        YY_BREAK
    22792294case 92:
     
    22852300YY_RULE_SETUP
    22862301#line 261 "lex.ll"
     2302{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2303        YY_BREAK
     2304case 94:
     2305YY_RULE_SETUP
     2306#line 262 "lex.ll"
     2307{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2308        YY_BREAK
     2309case 95:
     2310YY_RULE_SETUP
     2311#line 263 "lex.ll"
    22872312{ KEYWORD_RETURN(UNION); }
    22882313        YY_BREAK
    2289 case 94:
    2290 YY_RULE_SETUP
    2291 #line 262 "lex.ll"
     2314case 96:
     2315YY_RULE_SETUP
     2316#line 264 "lex.ll"
    22922317{ KEYWORD_RETURN(UNSIGNED); }
    22932318        YY_BREAK
    2294 case 95:
    2295 YY_RULE_SETUP
    2296 #line 263 "lex.ll"
     2319case 97:
     2320YY_RULE_SETUP
     2321#line 265 "lex.ll"
    22972322{ KEYWORD_RETURN(VOID); }
    22982323        YY_BREAK
    2299 case 96:
    2300 YY_RULE_SETUP
    2301 #line 264 "lex.ll"
     2324case 98:
     2325YY_RULE_SETUP
     2326#line 266 "lex.ll"
    23022327{ KEYWORD_RETURN(VOLATILE); }
    23032328        YY_BREAK
    2304 case 97:
    2305 YY_RULE_SETUP
    2306 #line 265 "lex.ll"
     2329case 99:
     2330YY_RULE_SETUP
     2331#line 267 "lex.ll"
    23072332{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23082333        YY_BREAK
    2309 case 98:
    2310 YY_RULE_SETUP
    2311 #line 266 "lex.ll"
     2334case 100:
     2335YY_RULE_SETUP
     2336#line 268 "lex.ll"
    23122337{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23132338        YY_BREAK
    2314 case 99:
    2315 YY_RULE_SETUP
    2316 #line 267 "lex.ll"
     2339case 101:
     2340YY_RULE_SETUP
     2341#line 269 "lex.ll"
    23172342{ KEYWORD_RETURN(WHILE); }
    23182343        YY_BREAK
    23192344/* identifier */
    2320 case 100:
    2321 YY_RULE_SETUP
    2322 #line 270 "lex.ll"
     2345case 102:
     2346YY_RULE_SETUP
     2347#line 272 "lex.ll"
    23232348{ IDENTIFIER_RETURN(); }
    23242349        YY_BREAK
    2325 case 101:
    2326 YY_RULE_SETUP
    2327 #line 271 "lex.ll"
     2350case 103:
     2351YY_RULE_SETUP
     2352#line 273 "lex.ll"
    23282353{ ATTRIBUTE_RETURN(); }
    23292354        YY_BREAK
    2330 case 102:
    2331 YY_RULE_SETUP
    2332 #line 272 "lex.ll"
     2355case 104:
     2356YY_RULE_SETUP
     2357#line 274 "lex.ll"
    23332358{ BEGIN BKQUOTE; }
    23342359        YY_BREAK
    2335 case 103:
    2336 YY_RULE_SETUP
    2337 #line 273 "lex.ll"
     2360case 105:
     2361YY_RULE_SETUP
     2362#line 275 "lex.ll"
    23382363{ IDENTIFIER_RETURN(); }
    23392364        YY_BREAK
    2340 case 104:
    2341 YY_RULE_SETUP
    2342 #line 274 "lex.ll"
     2365case 106:
     2366YY_RULE_SETUP
     2367#line 276 "lex.ll"
    23432368{ BEGIN 0; }
    23442369        YY_BREAK
    23452370/* numeric constants */
    2346 case 105:
    2347 YY_RULE_SETUP
    2348 #line 277 "lex.ll"
     2371case 107:
     2372YY_RULE_SETUP
     2373#line 279 "lex.ll"
    23492374{ NUMERIC_RETURN(ZERO); }                               // CFA
    23502375        YY_BREAK
    2351 case 106:
    2352 YY_RULE_SETUP
    2353 #line 278 "lex.ll"
     2376case 108:
     2377YY_RULE_SETUP
     2378#line 280 "lex.ll"
    23542379{ NUMERIC_RETURN(ONE); }                                // CFA
    2355         YY_BREAK
    2356 case 107:
    2357 YY_RULE_SETUP
    2358 #line 279 "lex.ll"
    2359 { NUMERIC_RETURN(INTEGERconstant); }
    2360         YY_BREAK
    2361 case 108:
    2362 YY_RULE_SETUP
    2363 #line 280 "lex.ll"
    2364 { NUMERIC_RETURN(INTEGERconstant); }
    23652380        YY_BREAK
    23662381case 109:
     
    23722387YY_RULE_SETUP
    23732388#line 282 "lex.ll"
     2389{ NUMERIC_RETURN(INTEGERconstant); }
     2390        YY_BREAK
     2391case 111:
     2392YY_RULE_SETUP
     2393#line 283 "lex.ll"
     2394{ NUMERIC_RETURN(INTEGERconstant); }
     2395        YY_BREAK
     2396case 112:
     2397YY_RULE_SETUP
     2398#line 284 "lex.ll"
    23742399{ NUMERIC_RETURN(FLOATINGconstant); }
    23752400        YY_BREAK
    2376 case 111:
    2377 YY_RULE_SETUP
    2378 #line 283 "lex.ll"
     2401case 113:
     2402YY_RULE_SETUP
     2403#line 285 "lex.ll"
    23792404{ NUMERIC_RETURN(FLOATINGconstant); }
    23802405        YY_BREAK
    23812406/* character constant, allows empty value */
    2382 case 112:
    2383 YY_RULE_SETUP
    2384 #line 286 "lex.ll"
     2407case 114:
     2408YY_RULE_SETUP
     2409#line 288 "lex.ll"
    23852410{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23862411        YY_BREAK
    2387 case 113:
    2388 YY_RULE_SETUP
    2389 #line 287 "lex.ll"
     2412case 115:
     2413YY_RULE_SETUP
     2414#line 289 "lex.ll"
    23902415{ *strtext += std::string( yytext ); }
    23912416        YY_BREAK
    2392 case 114:
    2393 /* rule 114 can match eol */
    2394 YY_RULE_SETUP
    2395 #line 288 "lex.ll"
     2417case 116:
     2418/* rule 116 can match eol */
     2419YY_RULE_SETUP
     2420#line 290 "lex.ll"
    23962421{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    23972422        YY_BREAK
    23982423/* ' stop highlighting */
    23992424/* string constant */
    2400 case 115:
    2401 YY_RULE_SETUP
    2402 #line 292 "lex.ll"
     2425case 117:
     2426YY_RULE_SETUP
     2427#line 294 "lex.ll"
    24032428{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24042429        YY_BREAK
    2405 case 116:
    2406 YY_RULE_SETUP
    2407 #line 293 "lex.ll"
     2430case 118:
     2431YY_RULE_SETUP
     2432#line 295 "lex.ll"
    24082433{ *strtext += std::string( yytext ); }
    24092434        YY_BREAK
    2410 case 117:
    2411 /* rule 117 can match eol */
    2412 YY_RULE_SETUP
    2413 #line 294 "lex.ll"
     2435case 119:
     2436/* rule 119 can match eol */
     2437YY_RULE_SETUP
     2438#line 296 "lex.ll"
    24142439{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24152440        YY_BREAK
    24162441/* " stop highlighting */
    24172442/* common character/string constant */
    2418 case 118:
    2419 YY_RULE_SETUP
    2420 #line 298 "lex.ll"
     2443case 120:
     2444YY_RULE_SETUP
     2445#line 300 "lex.ll"
    24212446{ rm_underscore(); *strtext += std::string( yytext ); }
    24222447        YY_BREAK
    2423 case 119:
    2424 /* rule 119 can match eol */
    2425 YY_RULE_SETUP
    2426 #line 299 "lex.ll"
     2448case 121:
     2449/* rule 121 can match eol */
     2450YY_RULE_SETUP
     2451#line 301 "lex.ll"
    24272452{}                                              // continuation (ALSO HANDLED BY CPP)
    24282453        YY_BREAK
    2429 case 120:
    2430 YY_RULE_SETUP
    2431 #line 300 "lex.ll"
     2454case 122:
     2455YY_RULE_SETUP
     2456#line 302 "lex.ll"
    24322457{ *strtext += std::string( yytext ); } // unknown escape character
    24332458        YY_BREAK
    24342459/* punctuation */
    2435 case 121:
    2436 YY_RULE_SETUP
    2437 #line 303 "lex.ll"
    2438 { ASCIIOP_RETURN(); }
    2439         YY_BREAK
    2440 case 122:
    2441 YY_RULE_SETUP
    2442 #line 304 "lex.ll"
    2443 { ASCIIOP_RETURN(); }
    2444         YY_BREAK
    24452460case 123:
    24462461YY_RULE_SETUP
     
    24662481YY_RULE_SETUP
    24672482#line 309 "lex.ll"
    2468 { ASCIIOP_RETURN(); }                                   // also operator
     2483{ ASCIIOP_RETURN(); }
    24692484        YY_BREAK
    24702485case 128:
     
    24762491YY_RULE_SETUP
    24772492#line 311 "lex.ll"
     2493{ ASCIIOP_RETURN(); }                                   // also operator
     2494        YY_BREAK
     2495case 130:
     2496YY_RULE_SETUP
     2497#line 312 "lex.ll"
    24782498{ ASCIIOP_RETURN(); }
    24792499        YY_BREAK
    2480 case 130:
    2481 YY_RULE_SETUP
    2482 #line 312 "lex.ll"
     2500case 131:
     2501YY_RULE_SETUP
     2502#line 313 "lex.ll"
     2503{ ASCIIOP_RETURN(); }
     2504        YY_BREAK
     2505case 132:
     2506YY_RULE_SETUP
     2507#line 314 "lex.ll"
    24832508{ ASCIIOP_RETURN(); }                                   // also operator
    24842509        YY_BREAK
    2485 case 131:
    2486 YY_RULE_SETUP
    2487 #line 313 "lex.ll"
     2510case 133:
     2511YY_RULE_SETUP
     2512#line 315 "lex.ll"
    24882513{ NAMEDOP_RETURN(ELLIPSIS); }
    24892514        YY_BREAK
    24902515/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2491 case 132:
    2492 YY_RULE_SETUP
    2493 #line 316 "lex.ll"
     2516case 134:
     2517YY_RULE_SETUP
     2518#line 318 "lex.ll"
    24942519{ RETURN_VAL('['); }
    24952520        YY_BREAK
    2496 case 133:
    2497 YY_RULE_SETUP
    2498 #line 317 "lex.ll"
     2521case 135:
     2522YY_RULE_SETUP
     2523#line 319 "lex.ll"
    24992524{ RETURN_VAL(']'); }
    25002525        YY_BREAK
    2501 case 134:
    2502 YY_RULE_SETUP
    2503 #line 318 "lex.ll"
     2526case 136:
     2527YY_RULE_SETUP
     2528#line 320 "lex.ll"
    25042529{ RETURN_VAL('{'); }
    25052530        YY_BREAK
    2506 case 135:
    2507 YY_RULE_SETUP
    2508 #line 319 "lex.ll"
     2531case 137:
     2532YY_RULE_SETUP
     2533#line 321 "lex.ll"
    25092534{ RETURN_VAL('}'); }
    25102535        YY_BREAK
    25112536/* operators */
    2512 case 136:
    2513 YY_RULE_SETUP
    2514 #line 322 "lex.ll"
    2515 { ASCIIOP_RETURN(); }
    2516         YY_BREAK
    2517 case 137:
    2518 YY_RULE_SETUP
    2519 #line 323 "lex.ll"
    2520 { ASCIIOP_RETURN(); }
    2521         YY_BREAK
    25222537case 138:
    25232538YY_RULE_SETUP
     
    25822597case 150:
    25832598YY_RULE_SETUP
     2599#line 336 "lex.ll"
     2600{ ASCIIOP_RETURN(); }
     2601        YY_BREAK
     2602case 151:
     2603YY_RULE_SETUP
    25842604#line 337 "lex.ll"
     2605{ ASCIIOP_RETURN(); }
     2606        YY_BREAK
     2607case 152:
     2608YY_RULE_SETUP
     2609#line 339 "lex.ll"
    25852610{ NAMEDOP_RETURN(ICR); }
    25862611        YY_BREAK
    2587 case 151:
    2588 YY_RULE_SETUP
    2589 #line 338 "lex.ll"
     2612case 153:
     2613YY_RULE_SETUP
     2614#line 340 "lex.ll"
    25902615{ NAMEDOP_RETURN(DECR); }
    25912616        YY_BREAK
    2592 case 152:
    2593 YY_RULE_SETUP
    2594 #line 339 "lex.ll"
     2617case 154:
     2618YY_RULE_SETUP
     2619#line 341 "lex.ll"
    25952620{ NAMEDOP_RETURN(EQ); }
    25962621        YY_BREAK
    2597 case 153:
    2598 YY_RULE_SETUP
    2599 #line 340 "lex.ll"
     2622case 155:
     2623YY_RULE_SETUP
     2624#line 342 "lex.ll"
    26002625{ NAMEDOP_RETURN(NE); }
    26012626        YY_BREAK
    2602 case 154:
    2603 YY_RULE_SETUP
    2604 #line 341 "lex.ll"
     2627case 156:
     2628YY_RULE_SETUP
     2629#line 343 "lex.ll"
    26052630{ NAMEDOP_RETURN(LS); }
    26062631        YY_BREAK
    2607 case 155:
    2608 YY_RULE_SETUP
    2609 #line 342 "lex.ll"
     2632case 157:
     2633YY_RULE_SETUP
     2634#line 344 "lex.ll"
    26102635{ NAMEDOP_RETURN(RS); }
    26112636        YY_BREAK
    2612 case 156:
    2613 YY_RULE_SETUP
    2614 #line 343 "lex.ll"
     2637case 158:
     2638YY_RULE_SETUP
     2639#line 345 "lex.ll"
    26152640{ NAMEDOP_RETURN(LE); }
    26162641        YY_BREAK
    2617 case 157:
    2618 YY_RULE_SETUP
    2619 #line 344 "lex.ll"
     2642case 159:
     2643YY_RULE_SETUP
     2644#line 346 "lex.ll"
    26202645{ NAMEDOP_RETURN(GE); }
    26212646        YY_BREAK
    2622 case 158:
    2623 YY_RULE_SETUP
    2624 #line 345 "lex.ll"
     2647case 160:
     2648YY_RULE_SETUP
     2649#line 347 "lex.ll"
    26252650{ NAMEDOP_RETURN(ANDAND); }
    26262651        YY_BREAK
    2627 case 159:
    2628 YY_RULE_SETUP
    2629 #line 346 "lex.ll"
     2652case 161:
     2653YY_RULE_SETUP
     2654#line 348 "lex.ll"
    26302655{ NAMEDOP_RETURN(OROR); }
    26312656        YY_BREAK
    2632 case 160:
    2633 YY_RULE_SETUP
    2634 #line 347 "lex.ll"
     2657case 162:
     2658YY_RULE_SETUP
     2659#line 349 "lex.ll"
    26352660{ NAMEDOP_RETURN(ARROW); }
    26362661        YY_BREAK
    2637 case 161:
    2638 YY_RULE_SETUP
    2639 #line 348 "lex.ll"
     2662case 163:
     2663YY_RULE_SETUP
     2664#line 350 "lex.ll"
    26402665{ NAMEDOP_RETURN(PLUSassign); }
    26412666        YY_BREAK
    2642 case 162:
    2643 YY_RULE_SETUP
    2644 #line 349 "lex.ll"
     2667case 164:
     2668YY_RULE_SETUP
     2669#line 351 "lex.ll"
    26452670{ NAMEDOP_RETURN(MINUSassign); }
    26462671        YY_BREAK
    2647 case 163:
    2648 YY_RULE_SETUP
    2649 #line 350 "lex.ll"
     2672case 165:
     2673YY_RULE_SETUP
     2674#line 352 "lex.ll"
    26502675{ NAMEDOP_RETURN(MULTassign); }
    26512676        YY_BREAK
    2652 case 164:
    2653 YY_RULE_SETUP
    2654 #line 351 "lex.ll"
     2677case 166:
     2678YY_RULE_SETUP
     2679#line 353 "lex.ll"
    26552680{ NAMEDOP_RETURN(DIVassign); }
    26562681        YY_BREAK
    2657 case 165:
    2658 YY_RULE_SETUP
    2659 #line 352 "lex.ll"
     2682case 167:
     2683YY_RULE_SETUP
     2684#line 354 "lex.ll"
    26602685{ NAMEDOP_RETURN(MODassign); }
    26612686        YY_BREAK
    2662 case 166:
    2663 YY_RULE_SETUP
    2664 #line 353 "lex.ll"
     2687case 168:
     2688YY_RULE_SETUP
     2689#line 355 "lex.ll"
    26652690{ NAMEDOP_RETURN(ANDassign); }
    26662691        YY_BREAK
    2667 case 167:
    2668 YY_RULE_SETUP
    2669 #line 354 "lex.ll"
     2692case 169:
     2693YY_RULE_SETUP
     2694#line 356 "lex.ll"
    26702695{ NAMEDOP_RETURN(ORassign); }
    26712696        YY_BREAK
    2672 case 168:
    2673 YY_RULE_SETUP
    2674 #line 355 "lex.ll"
     2697case 170:
     2698YY_RULE_SETUP
     2699#line 357 "lex.ll"
    26752700{ NAMEDOP_RETURN(ERassign); }
    26762701        YY_BREAK
    2677 case 169:
    2678 YY_RULE_SETUP
    2679 #line 356 "lex.ll"
     2702case 171:
     2703YY_RULE_SETUP
     2704#line 358 "lex.ll"
    26802705{ NAMEDOP_RETURN(LSassign); }
    26812706        YY_BREAK
    2682 case 170:
    2683 YY_RULE_SETUP
    2684 #line 357 "lex.ll"
     2707case 172:
     2708YY_RULE_SETUP
     2709#line 359 "lex.ll"
    26852710{ NAMEDOP_RETURN(RSassign); }
    26862711        YY_BREAK
    2687 case 171:
    2688 YY_RULE_SETUP
    2689 #line 359 "lex.ll"
     2712case 173:
     2713YY_RULE_SETUP
     2714#line 361 "lex.ll"
    26902715{ NAMEDOP_RETURN(ATassign); }
    26912716        YY_BREAK
    26922717/* CFA, operator identifier */
    2693 case 172:
    2694 YY_RULE_SETUP
    2695 #line 362 "lex.ll"
     2718case 174:
     2719YY_RULE_SETUP
     2720#line 364 "lex.ll"
    26962721{ IDENTIFIER_RETURN(); }                                // unary
    26972722        YY_BREAK
    2698 case 173:
    2699 YY_RULE_SETUP
    2700 #line 363 "lex.ll"
     2723case 175:
     2724YY_RULE_SETUP
     2725#line 365 "lex.ll"
    27012726{ IDENTIFIER_RETURN(); }
    27022727        YY_BREAK
    2703 case 174:
    2704 YY_RULE_SETUP
    2705 #line 364 "lex.ll"
     2728case 176:
     2729YY_RULE_SETUP
     2730#line 366 "lex.ll"
    27062731{ IDENTIFIER_RETURN(); }
    27072732        YY_BREAK
    2708 case 175:
    2709 YY_RULE_SETUP
    2710 #line 365 "lex.ll"
     2733case 177:
     2734YY_RULE_SETUP
     2735#line 367 "lex.ll"
    27112736{ IDENTIFIER_RETURN(); }                // binary
    27122737        YY_BREAK
     
    27372762          an argument list.
    27382763        */
    2739 case 176:
    2740 YY_RULE_SETUP
    2741 #line 392 "lex.ll"
     2764case 178:
     2765YY_RULE_SETUP
     2766#line 394 "lex.ll"
    27422767{
    27432768        // 1 or 2 character unary operator ?
     
    27522777        YY_BREAK
    27532778/* unknown characters */
    2754 case 177:
    2755 YY_RULE_SETUP
    2756 #line 404 "lex.ll"
     2779case 179:
     2780YY_RULE_SETUP
     2781#line 406 "lex.ll"
    27572782{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27582783        YY_BREAK
    2759 case 178:
    2760 YY_RULE_SETUP
    2761 #line 406 "lex.ll"
     2784case 180:
     2785YY_RULE_SETUP
     2786#line 408 "lex.ll"
    27622787ECHO;
    27632788        YY_BREAK
    2764 #line 2765 "Parser/lex.cc"
     2789#line 2790 "Parser/lex.cc"
    27652790case YY_STATE_EOF(INITIAL):
    27662791case YY_STATE_EOF(COMMENT):
     
    30593084                        {
    30603085                        yy_current_state = (int) yy_def[yy_current_state];
    3061                         if ( yy_current_state >= 862 )
     3086                        if ( yy_current_state >= 884 )
    30623087                                yy_c = yy_meta[(unsigned int) yy_c];
    30633088                        }
     
    30873112                {
    30883113                yy_current_state = (int) yy_def[yy_current_state];
    3089                 if ( yy_current_state >= 862 )
     3114                if ( yy_current_state >= 884 )
    30903115                        yy_c = yy_meta[(unsigned int) yy_c];
    30913116                }
    30923117        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3093         yy_is_jam = (yy_current_state == 861);
     3118        yy_is_jam = (yy_current_state == 883);
    30943119
    30953120        return yy_is_jam ? 0 : yy_current_state;
     
    37373762#define YYTABLES_NAME "yytables"
    37383763
    3739 #line 406 "lex.ll"
     3764#line 408 "lex.ll"
    37403765
    37413766
  • src/Parser/lex.ll

    rae8b942 r5721a6d  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Thu Jan 21 21:53:38 2016
    13  * Update Count     : 417
     12 * Last Modified On : Sat Jan 30 19:54:39 2016
     13 * Update Count     : 425
    1414 */
    1515
     
    9696exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    9797                                // GCC: D (double), LD (long double) and iI (imaginary) suffixes
    98 floating_suffix "_"?(([fFdD][lL]?)|([lL][fFdD]?)|([iI][lLfFdD]?))
     98floating_suffix "_"?([fFdD]?|([lL]?)|([iI][lLfFdD]?)|([lLfFdD][iI]))
    9999floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    100100
     
    236236lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
    237237_Noreturn               { KEYWORD_RETURN(NORETURN); }                   // C11
     238offsetof                { KEYWORD_RETURN(OFFSETOF); }                   // GCC
     239__builtin_offsetof { KEYWORD_RETURN(OFFSETOF); }                // GCC
    238240register                { KEYWORD_RETURN(REGISTER); }
    239241restrict                { KEYWORD_RETURN(RESTRICT); }                   // C99
  • src/Parser/parser.cc

    rae8b942 r5721a6d  
    151151     CONTEXT = 290,
    152152     SIZEOF = 291,
    153      ATTRIBUTE = 292,
    154      EXTENSION = 293,
    155      IF = 294,
    156      ELSE = 295,
    157      SWITCH = 296,
    158      CASE = 297,
    159      DEFAULT = 298,
    160      DO = 299,
    161      WHILE = 300,
    162      FOR = 301,
    163      BREAK = 302,
    164      CONTINUE = 303,
    165      GOTO = 304,
    166      RETURN = 305,
    167      CHOOSE = 306,
    168      DISABLE = 307,
    169      ENABLE = 308,
    170      FALLTHRU = 309,
    171      TRY = 310,
    172      CATCH = 311,
    173      CATCHRESUME = 312,
    174      FINALLY = 313,
    175      THROW = 314,
    176      THROWRESUME = 315,
    177      AT = 316,
    178      ASM = 317,
    179      ALIGNAS = 318,
    180      ALIGNOF = 319,
    181      ATOMIC = 320,
    182      GENERIC = 321,
    183      NORETURN = 322,
    184      STATICASSERT = 323,
    185      THREADLOCAL = 324,
    186      IDENTIFIER = 325,
    187      QUOTED_IDENTIFIER = 326,
    188      TYPEDEFname = 327,
    189      TYPEGENname = 328,
    190      ATTR_IDENTIFIER = 329,
    191      ATTR_TYPEDEFname = 330,
    192      ATTR_TYPEGENname = 331,
    193      INTEGERconstant = 332,
    194      FLOATINGconstant = 333,
    195      CHARACTERconstant = 334,
    196      STRINGliteral = 335,
    197      ZERO = 336,
    198      ONE = 337,
    199      ARROW = 338,
    200      ICR = 339,
    201      DECR = 340,
    202      LS = 341,
    203      RS = 342,
    204      LE = 343,
    205      GE = 344,
    206      EQ = 345,
    207      NE = 346,
    208      ANDAND = 347,
    209      OROR = 348,
    210      ELLIPSIS = 349,
    211      MULTassign = 350,
    212      DIVassign = 351,
    213      MODassign = 352,
    214      PLUSassign = 353,
    215      MINUSassign = 354,
    216      LSassign = 355,
    217      RSassign = 356,
    218      ANDassign = 357,
    219      ERassign = 358,
    220      ORassign = 359,
    221      ATassign = 360,
    222      THEN = 361
     153     OFFSETOF = 292,
     154     ATTRIBUTE = 293,
     155     EXTENSION = 294,
     156     IF = 295,
     157     ELSE = 296,
     158     SWITCH = 297,
     159     CASE = 298,
     160     DEFAULT = 299,
     161     DO = 300,
     162     WHILE = 301,
     163     FOR = 302,
     164     BREAK = 303,
     165     CONTINUE = 304,
     166     GOTO = 305,
     167     RETURN = 306,
     168     CHOOSE = 307,
     169     DISABLE = 308,
     170     ENABLE = 309,
     171     FALLTHRU = 310,
     172     TRY = 311,
     173     CATCH = 312,
     174     CATCHRESUME = 313,
     175     FINALLY = 314,
     176     THROW = 315,
     177     THROWRESUME = 316,
     178     AT = 317,
     179     ASM = 318,
     180     ALIGNAS = 319,
     181     ALIGNOF = 320,
     182     ATOMIC = 321,
     183     GENERIC = 322,
     184     NORETURN = 323,
     185     STATICASSERT = 324,
     186     THREADLOCAL = 325,
     187     IDENTIFIER = 326,
     188     QUOTED_IDENTIFIER = 327,
     189     TYPEDEFname = 328,
     190     TYPEGENname = 329,
     191     ATTR_IDENTIFIER = 330,
     192     ATTR_TYPEDEFname = 331,
     193     ATTR_TYPEGENname = 332,
     194     INTEGERconstant = 333,
     195     FLOATINGconstant = 334,
     196     CHARACTERconstant = 335,
     197     STRINGliteral = 336,
     198     ZERO = 337,
     199     ONE = 338,
     200     ARROW = 339,
     201     ICR = 340,
     202     DECR = 341,
     203     LS = 342,
     204     RS = 343,
     205     LE = 344,
     206     GE = 345,
     207     EQ = 346,
     208     NE = 347,
     209     ANDAND = 348,
     210     OROR = 349,
     211     ELLIPSIS = 350,
     212     MULTassign = 351,
     213     DIVassign = 352,
     214     MODassign = 353,
     215     PLUSassign = 354,
     216     MINUSassign = 355,
     217     LSassign = 356,
     218     RSassign = 357,
     219     ANDassign = 358,
     220     ERassign = 359,
     221     ORassign = 360,
     222     ATassign = 361,
     223     THEN = 362
    223224   };
    224225#endif
     
    258259#define CONTEXT 290
    259260#define SIZEOF 291
    260 #define ATTRIBUTE 292
    261 #define EXTENSION 293
    262 #define IF 294
    263 #define ELSE 295
    264 #define SWITCH 296
    265 #define CASE 297
    266 #define DEFAULT 298
    267 #define DO 299
    268 #define WHILE 300
    269 #define FOR 301
    270 #define BREAK 302
    271 #define CONTINUE 303
    272 #define GOTO 304
    273 #define RETURN 305
    274 #define CHOOSE 306
    275 #define DISABLE 307
    276 #define ENABLE 308
    277 #define FALLTHRU 309
    278 #define TRY 310
    279 #define CATCH 311
    280 #define CATCHRESUME 312
    281 #define FINALLY 313
    282 #define THROW 314
    283 #define THROWRESUME 315
    284 #define AT 316
    285 #define ASM 317
    286 #define ALIGNAS 318
    287 #define ALIGNOF 319
    288 #define ATOMIC 320
    289 #define GENERIC 321
    290 #define NORETURN 322
    291 #define STATICASSERT 323
    292 #define THREADLOCAL 324
    293 #define IDENTIFIER 325
    294 #define QUOTED_IDENTIFIER 326
    295 #define TYPEDEFname 327
    296 #define TYPEGENname 328
    297 #define ATTR_IDENTIFIER 329
    298 #define ATTR_TYPEDEFname 330
    299 #define ATTR_TYPEGENname 331
    300 #define INTEGERconstant 332
    301 #define FLOATINGconstant 333
    302 #define CHARACTERconstant 334
    303 #define STRINGliteral 335
    304 #define ZERO 336
    305 #define ONE 337
    306 #define ARROW 338
    307 #define ICR 339
    308 #define DECR 340
    309 #define LS 341
    310 #define RS 342
    311 #define LE 343
    312 #define GE 344
    313 #define EQ 345
    314 #define NE 346
    315 #define ANDAND 347
    316 #define OROR 348
    317 #define ELLIPSIS 349
    318 #define MULTassign 350
    319 #define DIVassign 351
    320 #define MODassign 352
    321 #define PLUSassign 353
    322 #define MINUSassign 354
    323 #define LSassign 355
    324 #define RSassign 356
    325 #define ANDassign 357
    326 #define ERassign 358
    327 #define ORassign 359
    328 #define ATassign 360
    329 #define THEN 361
     261#define OFFSETOF 292
     262#define ATTRIBUTE 293
     263#define EXTENSION 294
     264#define IF 295
     265#define ELSE 296
     266#define SWITCH 297
     267#define CASE 298
     268#define DEFAULT 299
     269#define DO 300
     270#define WHILE 301
     271#define FOR 302
     272#define BREAK 303
     273#define CONTINUE 304
     274#define GOTO 305
     275#define RETURN 306
     276#define CHOOSE 307
     277#define DISABLE 308
     278#define ENABLE 309
     279#define FALLTHRU 310
     280#define TRY 311
     281#define CATCH 312
     282#define CATCHRESUME 313
     283#define FINALLY 314
     284#define THROW 315
     285#define THROWRESUME 316
     286#define AT 317
     287#define ASM 318
     288#define ALIGNAS 319
     289#define ALIGNOF 320
     290#define ATOMIC 321
     291#define GENERIC 322
     292#define NORETURN 323
     293#define STATICASSERT 324
     294#define THREADLOCAL 325
     295#define IDENTIFIER 326
     296#define QUOTED_IDENTIFIER 327
     297#define TYPEDEFname 328
     298#define TYPEGENname 329
     299#define ATTR_IDENTIFIER 330
     300#define ATTR_TYPEDEFname 331
     301#define ATTR_TYPEGENname 332
     302#define INTEGERconstant 333
     303#define FLOATINGconstant 334
     304#define CHARACTERconstant 335
     305#define STRINGliteral 336
     306#define ZERO 337
     307#define ONE 338
     308#define ARROW 339
     309#define ICR 340
     310#define DECR 341
     311#define LS 342
     312#define RS 343
     313#define LE 344
     314#define GE 345
     315#define EQ 346
     316#define NE 347
     317#define ANDAND 348
     318#define OROR 349
     319#define ELLIPSIS 350
     320#define MULTassign 351
     321#define DIVassign 352
     322#define MODassign 353
     323#define PLUSassign 354
     324#define MINUSassign 355
     325#define LSassign 356
     326#define RSassign 357
     327#define ANDassign 358
     328#define ERassign 359
     329#define ORassign 360
     330#define ATassign 361
     331#define THEN 362
    330332
    331333
     
    354356
    355357/* Line 293 of yacc.c  */
    356 #line 357 "Parser/parser.cc"
     358#line 359 "Parser/parser.cc"
    357359} YYSTYPE;
    358360# define YYSTYPE_IS_TRIVIAL 1
     
    366368
    367369/* Line 343 of yacc.c  */
    368 #line 369 "Parser/parser.cc"
     370#line 371 "Parser/parser.cc"
    369371
    370372#ifdef short
     
    585587#define YYFINAL  247
    586588/* YYLAST -- Last index in YYTABLE.  */
    587 #define YYLAST   10817
     589#define YYLAST   10929
    588590
    589591/* YYNTOKENS -- Number of terminals.  */
    590 #define YYNTOKENS  131
     592#define YYNTOKENS  132
    591593/* YYNNTS -- Number of nonterminals.  */
    592594#define YYNNTS  238
    593595/* YYNRULES -- Number of rules.  */
    594 #define YYNRULES  749
     596#define YYNRULES  750
    595597/* YYNRULES -- Number of states.  */
    596 #define YYNSTATES  1570
     598#define YYNSTATES  1576
    597599
    598600/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    599601#define YYUNDEFTOK  2
    600 #define YYMAXUTOK   361
     602#define YYMAXUTOK   362
    601603
    602604#define YYTRANSLATE(YYX)                                                \
     
    609611       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    610612       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    611        2,     2,     2,   116,     2,     2,     2,   123,   118,     2,
    612      107,   108,   117,   119,   114,   120,   111,   122,     2,     2,
    613        2,     2,     2,     2,     2,     2,     2,     2,   115,   130,
    614      124,   129,   125,   128,     2,     2,     2,     2,     2,     2,
     613       2,     2,     2,   117,     2,     2,     2,   124,   119,     2,
     614     108,   109,   118,   120,   115,   121,   112,   123,     2,     2,
     615       2,     2,     2,     2,     2,     2,     2,     2,   116,   131,
     616     125,   130,   126,   129,     2,     2,     2,     2,     2,     2,
    615617       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    616618       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    617        2,   109,     2,   110,   126,     2,     2,     2,     2,     2,
     619       2,   110,     2,   111,   127,     2,     2,     2,     2,     2,
    618620       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    619621       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    620        2,     2,     2,   112,   127,   113,   121,     2,     2,     2,
     622       2,     2,     2,   113,   128,   114,   122,     2,     2,     2,
    621623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    622624       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    642644      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    643645      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    644      105,   106
     646     105,   106,   107
    645647};
    646648
     
    655657      88,    96,   101,   103,   107,   108,   110,   114,   122,   132,
    656658     134,   138,   140,   144,   152,   156,   164,   166,   168,   170,
    657      173,   176,   179,   182,   185,   188,   191,   196,   198,   203,
    658      208,   211,   216,   219,   221,   223,   225,   227,   229,   234,
    659      239,   241,   245,   249,   253,   255,   259,   263,   265,   269,
    660      273,   275,   279,   283,   287,   291,   293,   297,   301,   303,
    661      307,   309,   313,   315,   319,   321,   325,   327,   331,   333,
    662      339,   344,   350,   352,   354,   358,   362,   365,   366,   368,
    663      371,   377,   384,   392,   394,   398,   400,   402,   404,   406,
    664      408,   410,   412,   414,   416,   418,   420,   424,   425,   427,
    665      429,   431,   433,   435,   437,   439,   441,   443,   450,   455,
    666      458,   466,   468,   472,   474,   477,   479,   482,   484,   487,
    667      490,   496,   504,   510,   520,   526,   536,   538,   542,   544,
    668      546,   550,   554,   557,   559,   562,   565,   566,   568,   571,
    669      575,   576,   578,   581,   585,   589,   594,   595,   597,   599,
    670      602,   608,   616,   623,   630,   635,   639,   644,   647,   651,
    671      654,   658,   662,   666,   670,   676,   680,   684,   689,   691,
    672      697,   704,   710,   717,   727,   738,   748,   759,   762,   764,
    673      767,   770,   773,   775,   782,   791,   802,   815,   830,   831,
    674      833,   834,   836,   838,   842,   847,   855,   856,   858,   862,
    675      864,   868,   870,   872,   874,   878,   880,   882,   884,   888,
    676      889,   891,   895,   900,   902,   906,   908,   910,   914,   918,
    677      922,   926,   930,   933,   937,   944,   948,   952,   957,   959,
    678      962,   965,   969,   975,   984,   992,  1000,  1006,  1016,  1019,
    679     1022,  1028,  1032,  1038,  1043,  1047,  1052,  1057,  1065,  1069,
    680     1073,  1077,  1081,  1086,  1093,  1095,  1097,  1099,  1101,  1103,
    681     1105,  1107,  1109,  1110,  1112,  1114,  1117,  1119,  1121,  1123,
    682     1125,  1127,  1129,  1131,  1132,  1138,  1140,  1143,  1147,  1149,
    683     1152,  1154,  1156,  1158,  1160,  1162,  1164,  1166,  1168,  1170,
    684     1172,  1174,  1176,  1178,  1180,  1182,  1184,  1186,  1188,  1190,
    685     1192,  1194,  1196,  1199,  1202,  1206,  1210,  1212,  1216,  1218,
    686     1221,  1224,  1227,  1232,  1237,  1242,  1247,  1249,  1252,  1255,
    687     1259,  1261,  1264,  1267,  1269,  1272,  1275,  1279,  1281,  1284,
    688     1287,  1289,  1291,  1296,  1299,  1305,  1313,  1316,  1319,  1322,
    689     1324,  1327,  1330,  1334,  1337,  1341,  1343,  1346,  1350,  1353,
    690     1356,  1361,  1362,  1364,  1367,  1370,  1372,  1373,  1375,  1378,
    691     1381,  1387,  1394,  1397,  1400,  1405,  1406,  1409,  1410,  1412,
    692     1414,  1416,  1422,  1428,  1434,  1436,  1442,  1448,  1458,  1460,
    693     1466,  1467,  1469,  1471,  1477,  1479,  1481,  1487,  1493,  1495,
    694     1499,  1503,  1508,  1510,  1512,  1514,  1516,  1519,  1521,  1525,
    695     1529,  1531,  1534,  1536,  1540,  1542,  1544,  1546,  1548,  1550,
    696     1552,  1554,  1556,  1558,  1560,  1562,  1565,  1567,  1569,  1571,
    697     1574,  1575,  1578,  1581,  1583,  1588,  1589,  1591,  1594,  1598,
    698     1603,  1606,  1609,  1611,  1614,  1616,  1619,  1625,  1631,  1639,
    699     1646,  1648,  1651,  1654,  1658,  1660,  1663,  1666,  1671,  1674,
    700     1679,  1680,  1685,  1688,  1690,  1692,  1694,  1695,  1698,  1704,
    701     1710,  1724,  1726,  1728,  1732,  1736,  1739,  1743,  1747,  1750,
    702     1755,  1757,  1764,  1774,  1775,  1787,  1789,  1793,  1797,  1801,
    703     1803,  1805,  1811,  1814,  1820,  1821,  1823,  1825,  1829,  1830,
    704     1832,  1834,  1836,  1838,  1839,  1846,  1849,  1851,  1854,  1859,
    705     1862,  1866,  1870,  1874,  1879,  1885,  1891,  1897,  1904,  1906,
    706     1908,  1910,  1914,  1915,  1921,  1922,  1924,  1926,  1929,  1936,
    707     1938,  1942,  1943,  1945,  1950,  1952,  1954,  1956,  1958,  1961,
    708     1963,  1966,  1969,  1971,  1975,  1978,  1982,  1986,  1989,  1994,
    709     1999,  2003,  2012,  2016,  2019,  2021,  2024,  2031,  2040,  2044,
    710     2047,  2051,  2055,  2060,  2065,  2069,  2071,  2073,  2075,  2080,
    711     2087,  2091,  2094,  2098,  2102,  2107,  2112,  2116,  2119,  2121,
    712     2124,  2127,  2129,  2133,  2136,  2140,  2144,  2147,  2152,  2157,
    713     2161,  2168,  2177,  2181,  2184,  2186,  2189,  2192,  2195,  2199,
    714     2203,  2206,  2211,  2216,  2220,  2227,  2236,  2240,  2243,  2245,
    715     2248,  2251,  2253,  2255,  2258,  2262,  2266,  2269,  2274,  2281,
    716     2290,  2292,  2295,  2298,  2300,  2303,  2306,  2310,  2314,  2316,
    717     2321,  2326,  2330,  2336,  2345,  2349,  2352,  2356,  2358,  2364,
    718     2370,  2377,  2384,  2386,  2389,  2392,  2394,  2397,  2400,  2404,
    719     2408,  2410,  2415,  2420,  2424,  2430,  2439,  2443,  2445,  2448,
    720     2450,  2453,  2460,  2466,  2473,  2481,  2489,  2491,  2494,  2497,
    721     2499,  2502,  2505,  2509,  2513,  2515,  2520,  2525,  2529,  2538,
    722     2542,  2544,  2546,  2549,  2551,  2553,  2556,  2560,  2563,  2567,
    723     2570,  2574,  2578,  2581,  2586,  2590,  2593,  2597,  2600,  2605,
    724     2609,  2612,  2619,  2626,  2633,  2641,  2643,  2646,  2648,  2650,
    725     2652,  2655,  2659,  2662,  2666,  2669,  2673,  2677,  2682,  2685,
    726     2689,  2694,  2697,  2703,  2709,  2716,  2723,  2724,  2726,  2727
     659     173,   176,   179,   182,   185,   188,   191,   196,   203,   205,
     660     210,   215,   218,   223,   226,   228,   230,   232,   234,   236,
     661     241,   246,   248,   252,   256,   260,   262,   266,   270,   272,
     662     276,   280,   282,   286,   290,   294,   298,   300,   304,   308,
     663     310,   314,   316,   320,   322,   326,   328,   332,   334,   338,
     664     340,   346,   351,   357,   359,   361,   365,   369,   372,   373,
     665     375,   378,   384,   391,   399,   401,   405,   407,   409,   411,
     666     413,   415,   417,   419,   421,   423,   425,   427,   431,   432,
     667     434,   436,   438,   440,   442,   444,   446,   448,   450,   457,
     668     462,   465,   473,   475,   479,   481,   484,   486,   489,   491,
     669     494,   497,   503,   511,   517,   527,   533,   543,   545,   549,
     670     551,   553,   557,   561,   564,   566,   569,   572,   573,   575,
     671     578,   582,   583,   585,   588,   592,   596,   601,   602,   604,
     672     606,   609,   615,   623,   630,   637,   642,   646,   651,   654,
     673     658,   661,   665,   669,   673,   677,   683,   687,   691,   696,
     674     698,   704,   711,   717,   724,   734,   745,   755,   766,   769,
     675     771,   774,   777,   780,   782,   789,   798,   809,   822,   837,
     676     838,   840,   841,   843,   845,   849,   854,   862,   863,   865,
     677     869,   871,   875,   877,   879,   881,   885,   887,   889,   891,
     678     895,   896,   898,   902,   907,   909,   913,   915,   917,   921,
     679     925,   929,   933,   937,   940,   944,   951,   955,   959,   964,
     680     966,   969,   972,   976,   982,   991,   999,  1007,  1013,  1023,
     681    1026,  1029,  1035,  1039,  1045,  1050,  1054,  1059,  1064,  1072,
     682    1076,  1080,  1084,  1088,  1093,  1100,  1102,  1104,  1106,  1108,
     683    1110,  1112,  1114,  1116,  1117,  1119,  1121,  1124,  1126,  1128,
     684    1130,  1132,  1134,  1136,  1138,  1139,  1145,  1147,  1150,  1154,
     685    1156,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     686    1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,  1195,
     687    1197,  1199,  1201,  1203,  1206,  1209,  1213,  1217,  1219,  1223,
     688    1225,  1228,  1231,  1234,  1239,  1244,  1249,  1254,  1256,  1259,
     689    1262,  1266,  1268,  1271,  1274,  1276,  1279,  1282,  1286,  1288,
     690    1291,  1294,  1296,  1298,  1303,  1306,  1312,  1320,  1323,  1326,
     691    1329,  1331,  1334,  1337,  1341,  1344,  1348,  1350,  1353,  1357,
     692    1360,  1363,  1368,  1369,  1371,  1374,  1377,  1379,  1380,  1382,
     693    1385,  1388,  1394,  1401,  1404,  1407,  1412,  1413,  1416,  1417,
     694    1419,  1421,  1423,  1429,  1435,  1441,  1443,  1449,  1455,  1465,
     695    1467,  1473,  1474,  1476,  1478,  1484,  1486,  1488,  1494,  1500,
     696    1502,  1506,  1510,  1515,  1517,  1519,  1521,  1523,  1526,  1528,
     697    1532,  1536,  1538,  1541,  1543,  1547,  1549,  1551,  1553,  1555,
     698    1557,  1559,  1561,  1563,  1565,  1567,  1569,  1572,  1574,  1576,
     699    1578,  1581,  1582,  1585,  1588,  1590,  1595,  1596,  1598,  1601,
     700    1605,  1610,  1613,  1616,  1618,  1621,  1623,  1626,  1632,  1638,
     701    1646,  1653,  1655,  1658,  1661,  1665,  1667,  1670,  1673,  1678,
     702    1681,  1686,  1687,  1692,  1695,  1697,  1699,  1701,  1702,  1705,
     703    1711,  1717,  1731,  1733,  1735,  1739,  1743,  1746,  1750,  1754,
     704    1757,  1762,  1764,  1771,  1781,  1782,  1794,  1796,  1800,  1804,
     705    1808,  1810,  1812,  1818,  1821,  1827,  1828,  1830,  1832,  1836,
     706    1837,  1839,  1841,  1843,  1845,  1846,  1853,  1856,  1858,  1861,
     707    1866,  1869,  1873,  1877,  1881,  1886,  1892,  1898,  1904,  1911,
     708    1913,  1915,  1917,  1921,  1922,  1928,  1929,  1931,  1933,  1936,
     709    1943,  1945,  1949,  1950,  1952,  1957,  1959,  1961,  1963,  1965,
     710    1968,  1970,  1973,  1976,  1978,  1982,  1985,  1989,  1993,  1996,
     711    2001,  2006,  2010,  2019,  2023,  2026,  2028,  2031,  2038,  2047,
     712    2051,  2054,  2058,  2062,  2067,  2072,  2076,  2078,  2080,  2082,
     713    2087,  2094,  2098,  2101,  2105,  2109,  2114,  2119,  2123,  2126,
     714    2128,  2131,  2134,  2136,  2140,  2143,  2147,  2151,  2154,  2159,
     715    2164,  2168,  2175,  2184,  2188,  2191,  2193,  2196,  2199,  2202,
     716    2206,  2210,  2213,  2218,  2223,  2227,  2234,  2243,  2247,  2250,
     717    2252,  2255,  2258,  2260,  2262,  2265,  2269,  2273,  2276,  2281,
     718    2288,  2297,  2299,  2302,  2305,  2307,  2310,  2313,  2317,  2321,
     719    2323,  2328,  2333,  2337,  2343,  2352,  2356,  2359,  2363,  2365,
     720    2371,  2377,  2384,  2391,  2393,  2396,  2399,  2401,  2404,  2407,
     721    2411,  2415,  2417,  2422,  2427,  2431,  2437,  2446,  2450,  2452,
     722    2455,  2457,  2460,  2467,  2473,  2480,  2488,  2496,  2498,  2501,
     723    2504,  2506,  2509,  2512,  2516,  2520,  2522,  2527,  2532,  2536,
     724    2545,  2549,  2551,  2553,  2556,  2558,  2560,  2563,  2567,  2570,
     725    2574,  2577,  2581,  2585,  2588,  2593,  2597,  2600,  2604,  2607,
     726    2612,  2616,  2619,  2626,  2633,  2640,  2648,  2650,  2653,  2655,
     727    2657,  2659,  2662,  2666,  2669,  2673,  2676,  2680,  2684,  2689,
     728    2692,  2696,  2701,  2704,  2710,  2716,  2723,  2730,  2731,  2733,
     729    2734
    727730};
    728731
     
    730733static const yytype_int16 yyrhs[] =
    731734{
    732      297,     0,    -1,    -1,    -1,    77,    -1,    78,    -1,    79,
    733       -1,    70,    -1,    74,    -1,   138,    -1,    70,    -1,    74,
    734       -1,    70,    -1,    81,    -1,    82,    -1,    80,    -1,   139,
    735       80,    -1,    70,    -1,   138,    -1,   107,   166,   108,    -1,
    736      107,   170,   108,    -1,   140,    -1,   141,   109,   132,   161,
    737      133,   110,    -1,   141,   107,   142,   108,    -1,   141,   111,
    738      137,    -1,   141,   111,   109,   132,   144,   133,   110,    -1,
    739      141,    83,   137,    -1,   141,    83,   109,   132,   144,   133,
    740      110,    -1,   141,    84,    -1,   141,    85,    -1,   107,   270,
    741      108,   112,   274,   367,   113,    -1,   141,   112,   142,   113,
    742       -1,   143,    -1,   142,   114,   143,    -1,    -1,   161,    -1,
    743      137,   115,   161,    -1,   109,   132,   161,   133,   110,   115,
    744      161,    -1,   109,   132,   161,   114,   164,   133,   110,   115,
    745      161,    -1,   145,    -1,   144,   114,   145,    -1,   137,    -1,
    746      137,   111,   145,    -1,   137,   111,   109,   132,   144,   133,
    747      110,    -1,   137,    83,   145,    -1,   137,    83,   109,   132,
    748      144,   133,   110,    -1,   141,    -1,   134,    -1,   139,    -1,
    749       84,   146,    -1,    85,   146,    -1,    38,   148,    -1,   147,
    750      148,    -1,   116,   148,    -1,   117,   148,    -1,    36,   146,
    751       -1,    36,   107,   270,   108,    -1,    74,    -1,    74,   107,
    752      271,   108,    -1,    74,   107,   143,   108,    -1,    64,   146,
    753       -1,    64,   107,   270,   108,    -1,    92,   137,    -1,   118,
    754       -1,   119,    -1,   120,    -1,   121,    -1,   146,    -1,   107,
    755      270,   108,   148,    -1,   107,   270,   108,   163,    -1,   148,
    756       -1,   149,   117,   148,    -1,   149,   122,   148,    -1,   149,
    757      123,   148,    -1,   149,    -1,   150,   119,   149,    -1,   150,
    758      120,   149,    -1,   150,    -1,   151,    86,   150,    -1,   151,
    759       87,   150,    -1,   151,    -1,   152,   124,   151,    -1,   152,
    760      125,   151,    -1,   152,    88,   151,    -1,   152,    89,   151,
    761       -1,   152,    -1,   153,    90,   152,    -1,   153,    91,   152,
    762       -1,   153,    -1,   154,   118,   153,    -1,   154,    -1,   155,
    763      126,   154,    -1,   155,    -1,   156,   127,   155,    -1,   156,
    764       -1,   157,    92,   156,    -1,   157,    -1,   158,    93,   157,
    765       -1,   158,    -1,   158,   128,   166,   115,   159,    -1,   158,
    766      128,   115,   159,    -1,   158,   128,   166,   115,   163,    -1,
    767      159,    -1,   159,    -1,   146,   129,   161,    -1,   146,   165,
    768      161,    -1,   163,   368,    -1,    -1,   161,    -1,   109,   110,
    769       -1,   109,   132,   161,   133,   110,    -1,   109,   132,   114,
    770      164,   133,   110,    -1,   109,   132,   161,   114,   164,   133,
    771      110,    -1,   162,    -1,   164,   114,   162,    -1,    95,    -1,
    772       96,    -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,
    773      101,    -1,   102,    -1,   103,    -1,   104,    -1,   161,    -1,
    774      166,   114,   161,    -1,    -1,   166,    -1,   169,    -1,   170,
    775       -1,   174,    -1,   175,    -1,   187,    -1,   189,    -1,   190,
    776       -1,   195,    -1,   126,   141,   112,   142,   113,   130,    -1,
    777      137,   115,   307,   168,    -1,   112,   113,    -1,   112,   132,
    778      132,   206,   171,   133,   113,    -1,   172,    -1,   171,   132,
    779      172,    -1,   209,    -1,    38,   209,    -1,   303,    -1,   168,
    780      133,    -1,   168,    -1,   173,   168,    -1,   167,   130,    -1,
    781       39,   107,   166,   108,   168,    -1,    39,   107,   166,   108,
    782      168,    40,   168,    -1,    41,   107,   166,   108,   180,    -1,
    783       41,   107,   166,   108,   112,   132,   202,   181,   113,    -1,
    784       51,   107,   166,   108,   180,    -1,    51,   107,   166,   108,
    785      112,   132,   202,   183,   113,    -1,   160,    -1,   160,    94,
    786      160,    -1,   305,    -1,   176,    -1,   177,   114,   176,    -1,
    787       42,   177,   115,    -1,    43,   115,    -1,   178,    -1,   179,
    788      178,    -1,   179,   168,    -1,    -1,   182,    -1,   179,   173,
    789       -1,   182,   179,   173,    -1,    -1,   184,    -1,   179,   186,
    790       -1,   179,   173,   185,    -1,   184,   179,   186,    -1,   184,
    791      179,   173,   185,    -1,    -1,   186,    -1,    54,    -1,    54,
    792      130,    -1,    45,   107,   166,   108,   168,    -1,    44,   168,
    793       45,   107,   166,   108,   130,    -1,    46,   107,   132,   188,
    794      108,   168,    -1,   167,   133,   130,   167,   130,   167,    -1,
    795      209,   167,   130,   167,    -1,    49,   137,   130,    -1,    49,
    796      117,   166,   130,    -1,    48,   130,    -1,    48,   137,   130,
    797       -1,    47,   130,    -1,    47,   137,   130,    -1,    50,   167,
    798      130,    -1,    59,   162,   130,    -1,    60,   162,   130,    -1,
    799       60,   162,    61,   161,   130,    -1,    55,   170,   191,    -1,
    800       55,   170,   193,    -1,    55,   170,   191,   193,    -1,   192,
    801       -1,    56,   107,    94,   108,   170,    -1,   192,    56,   107,
    802       94,   108,   170,    -1,    57,   107,    94,   108,   170,    -1,
    803      192,    57,   107,    94,   108,   170,    -1,    56,   107,   132,
    804      132,   194,   133,   108,   170,   133,    -1,   192,    56,   107,
    805      132,   132,   194,   133,   108,   170,   133,    -1,    57,   107,
    806      132,   132,   194,   133,   108,   170,   133,    -1,   192,    57,
    807      107,   132,   132,   194,   133,   108,   170,   133,    -1,    58,
    808      170,    -1,   222,    -1,   222,   304,    -1,   222,   352,    -1,
    809      361,   137,    -1,   361,    -1,    62,   196,   107,   139,   108,
    810      130,    -1,    62,   196,   107,   139,   115,   197,   108,   130,
    811       -1,    62,   196,   107,   139,   115,   197,   115,   197,   108,
    812      130,    -1,    62,   196,   107,   139,   115,   197,   115,   197,
    813      115,   200,   108,   130,    -1,    62,   196,    49,   107,   139,
    814      115,   115,   197,   115,   200,   115,   201,   108,   130,    -1,
    815       -1,    11,    -1,    -1,   198,    -1,   199,    -1,   198,   114,
    816      199,    -1,   139,   107,   160,   108,    -1,   109,   160,   110,
    817      139,   107,   160,   108,    -1,    -1,   139,    -1,   200,   114,
    818      139,    -1,   137,    -1,   201,   114,   137,    -1,   133,    -1,
    819      203,    -1,   209,    -1,   203,   132,   209,    -1,   133,    -1,
    820      205,    -1,   219,    -1,   205,   132,   219,    -1,    -1,   207,
    821       -1,    28,   208,   130,    -1,   207,    28,   208,   130,    -1,
    822      269,    -1,   208,   114,   269,    -1,   210,    -1,   219,    -1,
    823      211,   133,   130,    -1,   216,   133,   130,    -1,   213,   133,
    824      130,    -1,   288,   133,   130,    -1,   291,   133,   130,    -1,
    825      212,   272,    -1,   228,   212,   272,    -1,   211,   133,   114,
    826      132,   267,   272,    -1,   362,   267,   306,    -1,   365,   267,
    827      306,    -1,   224,   365,   267,   306,    -1,   214,    -1,   224,
    828      214,    -1,   228,   214,    -1,   228,   224,   214,    -1,   213,
    829      133,   114,   132,   267,    -1,   109,   110,   267,   107,   132,
    830      255,   133,   108,    -1,   365,   267,   107,   132,   255,   133,
    831      108,    -1,   215,   267,   107,   132,   255,   133,   108,    -1,
    832      109,   132,   257,   133,   110,    -1,   109,   132,   257,   133,
    833      114,   132,   258,   133,   110,    -1,     3,   212,    -1,     3,
    834      214,    -1,   216,   133,   114,   132,   137,    -1,     3,   222,
    835      304,    -1,   217,   133,   114,   132,   304,    -1,   224,     3,
    836      222,   304,    -1,   222,     3,   304,    -1,   222,     3,   224,
    837      304,    -1,     3,   137,   129,   161,    -1,   218,   133,   114,
    838      132,   137,   129,   161,    -1,   220,   133,   130,    -1,   217,
    839      133,   130,    -1,   218,   133,   130,    -1,   237,   133,   130,
    840       -1,   221,   304,   306,   272,    -1,   220,   114,   307,   304,
    841      306,   272,    -1,   233,    -1,   237,    -1,   239,    -1,   278,
    842       -1,   234,    -1,   238,    -1,   240,    -1,   279,    -1,    -1,
    843      224,    -1,   225,    -1,   224,   225,    -1,   226,    -1,   309,
    844       -1,    10,    -1,    12,    -1,    11,    -1,    14,    -1,    65,
    845       -1,    -1,    13,   107,   227,   281,   108,    -1,   229,    -1,
    846      224,   229,    -1,   228,   224,   229,    -1,   230,    -1,   229,
    847      230,    -1,   231,    -1,     5,    -1,     7,    -1,     4,    -1,
    848        6,    -1,     8,    -1,     9,    -1,    67,    -1,    69,    -1,
    849       16,    -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,
    850       17,    -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,
    851       25,    -1,    26,    -1,   234,    -1,   228,   234,    -1,   233,
    852      230,    -1,   233,   230,   224,    -1,   233,   230,   234,    -1,
    853      235,    -1,   223,   236,   223,    -1,   232,    -1,   224,   232,
    854       -1,   235,   225,    -1,   235,   232,    -1,    27,   107,   271,
    855      108,    -1,    27,   107,   166,   108,    -1,    76,   107,   271,
    856      108,    -1,    76,   107,   166,   108,    -1,   238,    -1,   228,
    857      238,    -1,   237,   230,    -1,   237,   230,   224,    -1,   241,
    858       -1,   224,   241,    -1,   238,   225,    -1,   240,    -1,   228,
    859      240,    -1,   239,   230,    -1,   239,   230,   224,    -1,    72,
    860       -1,   224,    72,    -1,   240,   225,    -1,   242,    -1,   252,
    861       -1,   243,   112,   244,   113,    -1,   243,   269,    -1,   243,
    862      269,   112,   244,   113,    -1,   243,   107,   287,   108,   112,
    863      244,   113,    -1,   243,   280,    -1,    30,   307,    -1,    31,
    864      307,    -1,   245,    -1,   244,   245,    -1,   246,   130,    -1,
    865       38,   246,   130,    -1,   247,   130,    -1,    38,   247,   130,
    866       -1,   361,    -1,   361,   269,    -1,   246,   114,   269,    -1,
    867      246,   114,    -1,   222,   248,    -1,   247,   114,   307,   248,
    868       -1,    -1,   250,    -1,   313,   249,    -1,   326,   249,    -1,
    869      352,    -1,    -1,   250,    -1,   115,   160,    -1,    29,   307,
    870       -1,   251,   112,   253,   367,   113,    -1,   251,   269,   112,
    871      253,   367,   113,    -1,   251,   269,    -1,   269,   254,    -1,
    872      253,   114,   269,   254,    -1,    -1,   129,   160,    -1,    -1,
    873      256,    -1,   258,    -1,   257,    -1,   257,   133,   114,   132,
    874      258,    -1,   258,   133,   114,   132,    94,    -1,   257,   133,
    875      114,   132,    94,    -1,   262,    -1,   258,   133,   114,   132,
    876      262,    -1,   257,   133,   114,   132,   262,    -1,   257,   133,
    877      114,   132,   258,   133,   114,   132,   262,    -1,   263,    -1,
    878      258,   133,   114,   132,   263,    -1,    -1,   260,    -1,   261,
    879       -1,   261,   133,   114,   132,    94,    -1,   265,    -1,   264,
    880       -1,   261,   133,   114,   132,   265,    -1,   261,   133,   114,
    881      132,   264,    -1,   264,    -1,   357,   267,   368,    -1,   365,
    882      267,   368,    -1,   224,   365,   267,   368,    -1,   214,    -1,
    883      265,    -1,   357,    -1,   365,    -1,   224,   365,    -1,   366,
    884       -1,   221,   331,   368,    -1,   221,   335,   368,    -1,   221,
    885       -1,   221,   346,    -1,   137,    -1,   266,   114,   137,    -1,
    886      135,    -1,    72,    -1,    73,    -1,   136,    -1,    72,    -1,
    887       73,    -1,   137,    -1,    72,    -1,    73,    -1,   361,    -1,
    888      222,    -1,   222,   352,    -1,   361,    -1,   366,    -1,   222,
    889       -1,   222,   340,    -1,    -1,   129,   273,    -1,   105,   273,
    890       -1,   161,    -1,   112,   274,   367,   113,    -1,    -1,   273,
    891       -1,   275,   273,    -1,   274,   114,   273,    -1,   274,   114,
    892      275,   273,    -1,   276,   115,    -1,   269,   115,    -1,   277,
    893       -1,   276,   277,    -1,    78,    -1,   111,   269,    -1,   109,
    894      132,   161,   133,   110,    -1,   109,   132,   305,   133,   110,
    895       -1,   109,   132,   160,    94,   160,   133,   110,    -1,   111,
    896      109,   132,   144,   133,   110,    -1,   279,    -1,   228,   279,
    897       -1,   278,   230,    -1,   278,   230,   224,    -1,   280,    -1,
    898      224,   280,    -1,   279,   225,    -1,    73,   107,   287,   108,
    899       -1,   282,   368,    -1,   281,   114,   282,   368,    -1,    -1,
    900      284,   269,   283,   285,    -1,   222,   331,    -1,    32,    -1,
    901       34,    -1,    33,    -1,    -1,   285,   286,    -1,   127,   269,
    902      107,   287,   108,    -1,   127,   112,   132,   293,   113,    -1,
    903      127,   107,   132,   281,   133,   108,   112,   132,   293,   113,
    904      107,   287,   108,    -1,   271,    -1,   161,    -1,   287,   114,
    905      271,    -1,   287,   114,   161,    -1,    32,   289,    -1,   229,
    906       32,   289,    -1,   288,   114,   289,    -1,   290,   285,    -1,
    907      290,   285,   129,   271,    -1,   269,    -1,   268,   107,   132,
    908      281,   133,   108,    -1,    35,   269,   107,   132,   281,   133,
    909      108,   112,   113,    -1,    -1,    35,   269,   107,   132,   281,
    910      133,   108,   112,   292,   293,   113,    -1,   294,    -1,   293,
    911      132,   294,    -1,   295,   133,   130,    -1,   296,   133,   130,
    912       -1,   212,    -1,   214,    -1,   295,   133,   114,   132,   267,
    913       -1,   222,   304,    -1,   296,   133,   114,   132,   304,    -1,
    914       -1,   298,    -1,   300,    -1,   298,   132,   300,    -1,    -1,
    915      298,    -1,   209,    -1,   302,    -1,   195,    -1,    -1,     5,
    916       80,   301,   112,   299,   113,    -1,    38,   300,    -1,   303,
    917       -1,   318,   170,    -1,   322,   132,   204,   170,    -1,   213,
    918      170,    -1,   221,   318,   170,    -1,   224,   318,   170,    -1,
    919      228,   318,   170,    -1,   228,   224,   318,   170,    -1,   221,
    920      322,   132,   204,   170,    -1,   224,   322,   132,   204,   170,
    921       -1,   228,   322,   132,   204,   170,    -1,   228,   224,   322,
    922      132,   204,   170,    -1,   313,    -1,   318,    -1,   326,    -1,
    923      160,   121,   160,    -1,    -1,    62,   107,   139,   108,   307,
    924       -1,    -1,   308,    -1,   309,    -1,   308,   309,    -1,    37,
    925      107,   107,   310,   108,   108,    -1,   311,    -1,   310,   114,
    926      311,    -1,    -1,   312,    -1,   312,   107,   167,   108,    -1,
    927      267,    -1,   231,    -1,   232,    -1,   225,    -1,   314,   307,
    928       -1,   315,    -1,   316,   307,    -1,   317,   307,    -1,   135,
    929       -1,   107,   314,   108,    -1,   117,   313,    -1,   117,   224,
    930      313,    -1,   107,   315,   108,    -1,   314,   344,    -1,   107,
    931      315,   108,   344,    -1,   107,   316,   108,   345,    -1,   107,
    932      316,   108,    -1,   107,   315,   108,   107,   132,   259,   133,
    933      108,    -1,   107,   317,   108,    -1,   319,   307,    -1,   320,
    934       -1,   321,   307,    -1,   314,   107,   132,   259,   133,   108,
    935       -1,   107,   320,   108,   107,   132,   259,   133,   108,    -1,
    936      107,   319,   108,    -1,   117,   318,    -1,   117,   224,   318,
    937       -1,   107,   320,   108,    -1,   107,   320,   108,   344,    -1,
    938      107,   321,   108,   345,    -1,   107,   321,   108,    -1,   323,
    939       -1,   324,    -1,   325,    -1,   314,   107,   266,   108,    -1,
    940      107,   324,   108,   107,   266,   108,    -1,   107,   323,   108,
    941       -1,   117,   322,    -1,   117,   224,   322,    -1,   107,   324,
    942      108,    -1,   107,   324,   108,   344,    -1,   107,   325,   108,
    943      345,    -1,   107,   325,   108,    -1,   327,   307,    -1,   328,
    944       -1,   329,   307,    -1,   330,   307,    -1,   336,    -1,   107,
    945      327,   108,    -1,   117,   326,    -1,   117,   224,   326,    -1,
    946      107,   328,   108,    -1,   327,   344,    -1,   107,   328,   108,
    947      344,    -1,   107,   329,   108,   345,    -1,   107,   329,   108,
    948       -1,   327,   107,   132,   259,   133,   108,    -1,   107,   328,
    949      108,   107,   132,   259,   133,   108,    -1,   107,   330,   108,
    950       -1,   314,   307,    -1,   332,    -1,   333,   307,    -1,   334,
    951      307,    -1,   117,   331,    -1,   117,   224,   331,    -1,   107,
    952      332,   108,    -1,   314,   350,    -1,   107,   332,   108,   344,
    953       -1,   107,   333,   108,   345,    -1,   107,   333,   108,    -1,
    954      314,   107,   132,   259,   133,   108,    -1,   107,   332,   108,
    955      107,   132,   259,   133,   108,    -1,   107,   334,   108,    -1,
    956      336,   307,    -1,   337,    -1,   338,   307,    -1,   339,   307,
    957       -1,    72,    -1,    73,    -1,   117,   335,    -1,   117,   224,
    958      335,    -1,   107,   337,   108,    -1,   336,   350,    -1,   107,
    959      337,   108,   350,    -1,   336,   107,   132,   259,   133,   108,
    960       -1,   107,   337,   108,   107,   132,   259,   133,   108,    -1,
    961      341,    -1,   342,   307,    -1,   343,   307,    -1,   117,    -1,
    962      117,   224,    -1,   117,   340,    -1,   117,   224,   340,    -1,
    963      107,   341,   108,    -1,   344,    -1,   107,   341,   108,   344,
    964       -1,   107,   342,   108,   345,    -1,   107,   342,   108,    -1,
    965      107,   132,   259,   133,   108,    -1,   107,   341,   108,   107,
    966      132,   259,   133,   108,    -1,   107,   343,   108,    -1,   109,
    967      110,    -1,   109,   110,   345,    -1,   345,    -1,   109,   132,
    968      161,   133,   110,    -1,   109,   132,   117,   133,   110,    -1,
    969      345,   109,   132,   161,   133,   110,    -1,   345,   109,   132,
    970      117,   133,   110,    -1,   347,    -1,   348,   307,    -1,   349,
    971      307,    -1,   117,    -1,   117,   224,    -1,   117,   346,    -1,
    972      117,   224,   346,    -1,   107,   347,   108,    -1,   350,    -1,
    973      107,   347,   108,   350,    -1,   107,   348,   108,   345,    -1,
    974      107,   348,   108,    -1,   107,   132,   259,   133,   108,    -1,
    975      107,   347,   108,   107,   132,   259,   133,   108,    -1,   107,
    976      349,   108,    -1,   351,    -1,   351,   345,    -1,   345,    -1,
    977      109,   110,    -1,   109,   132,   224,   117,   133,   110,    -1,
    978      109,   132,   224,   133,   110,    -1,   109,   132,   224,   161,
    979      133,   110,    -1,   109,   132,     7,   223,   161,   133,   110,
    980       -1,   109,   132,   224,     7,   161,   133,   110,    -1,   353,
    981       -1,   354,   307,    -1,   355,   307,    -1,   117,    -1,   117,
    982      224,    -1,   117,   352,    -1,   117,   224,   352,    -1,   107,
    983      353,   108,    -1,   344,    -1,   107,   353,   108,   344,    -1,
    984      107,   354,   108,   345,    -1,   107,   354,   108,    -1,   107,
    985      353,   108,   107,   132,   259,   133,   108,    -1,   107,   355,
    986      108,    -1,   357,    -1,   365,    -1,   224,   365,    -1,   358,
    987       -1,   359,    -1,   117,   222,    -1,   224,   117,   222,    -1,
    988      117,   366,    -1,   224,   117,   366,    -1,   117,   356,    -1,
    989      224,   117,   356,    -1,   109,   110,   222,    -1,   360,   222,
    990       -1,   109,   110,   345,   222,    -1,   360,   345,   222,    -1,
    991      345,   222,    -1,   109,   110,   358,    -1,   360,   358,    -1,
    992      109,   110,   345,   358,    -1,   360,   345,   358,    -1,   345,
    993      358,    -1,   109,   132,   224,   117,   133,   110,    -1,   109,
    994      132,   224,   161,   133,   110,    -1,   109,   132,   228,   161,
    995      133,   110,    -1,   109,   132,   228,   224,   161,   133,   110,
    996       -1,   365,    -1,   224,   365,    -1,   362,    -1,   363,    -1,
    997      364,    -1,   117,   222,    -1,   224,   117,   222,    -1,   117,
    998      366,    -1,   224,   117,   366,    -1,   117,   361,    -1,   224,
    999      117,   361,    -1,   109,   110,   222,    -1,   109,   110,   345,
    1000      222,    -1,   345,   222,    -1,   109,   110,   363,    -1,   109,
    1001      110,   345,   363,    -1,   345,   363,    -1,   109,   132,   258,
    1002      133,   110,    -1,   109,   110,   107,   255,   108,    -1,   365,
    1003      107,   132,   255,   133,   108,    -1,   215,   107,   132,   255,
    1004      133,   108,    -1,    -1,   114,    -1,    -1,   129,   161,    -1
     735     298,     0,    -1,    -1,    -1,    78,    -1,    79,    -1,    80,
     736      -1,    71,    -1,    75,    -1,   139,    -1,    71,    -1,    75,
     737      -1,    71,    -1,    82,    -1,    83,    -1,    81,    -1,   140,
     738      81,    -1,    71,    -1,   139,    -1,   108,   167,   109,    -1,
     739     108,   171,   109,    -1,   141,    -1,   142,   110,   133,   162,
     740     134,   111,    -1,   142,   108,   143,   109,    -1,   142,   112,
     741     138,    -1,   142,   112,   110,   133,   145,   134,   111,    -1,
     742     142,    84,   138,    -1,   142,    84,   110,   133,   145,   134,
     743     111,    -1,   142,    85,    -1,   142,    86,    -1,   108,   271,
     744     109,   113,   275,   368,   114,    -1,   142,   113,   143,   114,
     745      -1,   144,    -1,   143,   115,   144,    -1,    -1,   162,    -1,
     746     138,   116,   162,    -1,   110,   133,   162,   134,   111,   116,
     747     162,    -1,   110,   133,   162,   115,   165,   134,   111,   116,
     748     162,    -1,   146,    -1,   145,   115,   146,    -1,   138,    -1,
     749     138,   112,   146,    -1,   138,   112,   110,   133,   145,   134,
     750     111,    -1,   138,    84,   146,    -1,   138,    84,   110,   133,
     751     145,   134,   111,    -1,   142,    -1,   135,    -1,   140,    -1,
     752      85,   147,    -1,    86,   147,    -1,    39,   149,    -1,   148,
     753     149,    -1,   117,   149,    -1,   118,   149,    -1,    36,   147,
     754      -1,    36,   108,   271,   109,    -1,    37,   108,   271,   115,
     755     138,   109,    -1,    75,    -1,    75,   108,   272,   109,    -1,
     756      75,   108,   144,   109,    -1,    65,   147,    -1,    65,   108,
     757     271,   109,    -1,    93,   138,    -1,   119,    -1,   120,    -1,
     758     121,    -1,   122,    -1,   147,    -1,   108,   271,   109,   149,
     759      -1,   108,   271,   109,   164,    -1,   149,    -1,   150,   118,
     760     149,    -1,   150,   123,   149,    -1,   150,   124,   149,    -1,
     761     150,    -1,   151,   120,   150,    -1,   151,   121,   150,    -1,
     762     151,    -1,   152,    87,   151,    -1,   152,    88,   151,    -1,
     763     152,    -1,   153,   125,   152,    -1,   153,   126,   152,    -1,
     764     153,    89,   152,    -1,   153,    90,   152,    -1,   153,    -1,
     765     154,    91,   153,    -1,   154,    92,   153,    -1,   154,    -1,
     766     155,   119,   154,    -1,   155,    -1,   156,   127,   155,    -1,
     767     156,    -1,   157,   128,   156,    -1,   157,    -1,   158,    93,
     768     157,    -1,   158,    -1,   159,    94,   158,    -1,   159,    -1,
     769     159,   129,   167,   116,   160,    -1,   159,   129,   116,   160,
     770      -1,   159,   129,   167,   116,   164,    -1,   160,    -1,   160,
     771      -1,   147,   130,   162,    -1,   147,   166,   162,    -1,   164,
     772     369,    -1,    -1,   162,    -1,   110,   111,    -1,   110,   133,
     773     162,   134,   111,    -1,   110,   133,   115,   165,   134,   111,
     774      -1,   110,   133,   162,   115,   165,   134,   111,    -1,   163,
     775      -1,   165,   115,   163,    -1,    96,    -1,    97,    -1,    98,
     776      -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
     777      -1,   104,    -1,   105,    -1,   162,    -1,   167,   115,   162,
     778      -1,    -1,   167,    -1,   170,    -1,   171,    -1,   175,    -1,
     779     176,    -1,   188,    -1,   190,    -1,   191,    -1,   196,    -1,
     780     127,   142,   113,   143,   114,   131,    -1,   138,   116,   308,
     781     169,    -1,   113,   114,    -1,   113,   133,   133,   207,   172,
     782     134,   114,    -1,   173,    -1,   172,   133,   173,    -1,   210,
     783      -1,    39,   210,    -1,   304,    -1,   169,   134,    -1,   169,
     784      -1,   174,   169,    -1,   168,   131,    -1,    40,   108,   167,
     785     109,   169,    -1,    40,   108,   167,   109,   169,    41,   169,
     786      -1,    42,   108,   167,   109,   181,    -1,    42,   108,   167,
     787     109,   113,   133,   203,   182,   114,    -1,    52,   108,   167,
     788     109,   181,    -1,    52,   108,   167,   109,   113,   133,   203,
     789     184,   114,    -1,   161,    -1,   161,    95,   161,    -1,   306,
     790      -1,   177,    -1,   178,   115,   177,    -1,    43,   178,   116,
     791      -1,    44,   116,    -1,   179,    -1,   180,   179,    -1,   180,
     792     169,    -1,    -1,   183,    -1,   180,   174,    -1,   183,   180,
     793     174,    -1,    -1,   185,    -1,   180,   187,    -1,   180,   174,
     794     186,    -1,   185,   180,   187,    -1,   185,   180,   174,   186,
     795      -1,    -1,   187,    -1,    55,    -1,    55,   131,    -1,    46,
     796     108,   167,   109,   169,    -1,    45,   169,    46,   108,   167,
     797     109,   131,    -1,    47,   108,   133,   189,   109,   169,    -1,
     798     168,   134,   131,   168,   131,   168,    -1,   210,   168,   131,
     799     168,    -1,    50,   138,   131,    -1,    50,   118,   167,   131,
     800      -1,    49,   131,    -1,    49,   138,   131,    -1,    48,   131,
     801      -1,    48,   138,   131,    -1,    51,   168,   131,    -1,    60,
     802     163,   131,    -1,    61,   163,   131,    -1,    61,   163,    62,
     803     162,   131,    -1,    56,   171,   192,    -1,    56,   171,   194,
     804      -1,    56,   171,   192,   194,    -1,   193,    -1,    57,   108,
     805      95,   109,   171,    -1,   193,    57,   108,    95,   109,   171,
     806      -1,    58,   108,    95,   109,   171,    -1,   193,    58,   108,
     807      95,   109,   171,    -1,    57,   108,   133,   133,   195,   134,
     808     109,   171,   134,    -1,   193,    57,   108,   133,   133,   195,
     809     134,   109,   171,   134,    -1,    58,   108,   133,   133,   195,
     810     134,   109,   171,   134,    -1,   193,    58,   108,   133,   133,
     811     195,   134,   109,   171,   134,    -1,    59,   171,    -1,   223,
     812      -1,   223,   305,    -1,   223,   353,    -1,   362,   138,    -1,
     813     362,    -1,    63,   197,   108,   140,   109,   131,    -1,    63,
     814     197,   108,   140,   116,   198,   109,   131,    -1,    63,   197,
     815     108,   140,   116,   198,   116,   198,   109,   131,    -1,    63,
     816     197,   108,   140,   116,   198,   116,   198,   116,   201,   109,
     817     131,    -1,    63,   197,    50,   108,   140,   116,   116,   198,
     818     116,   201,   116,   202,   109,   131,    -1,    -1,    11,    -1,
     819      -1,   199,    -1,   200,    -1,   199,   115,   200,    -1,   140,
     820     108,   161,   109,    -1,   110,   161,   111,   140,   108,   161,
     821     109,    -1,    -1,   140,    -1,   201,   115,   140,    -1,   138,
     822      -1,   202,   115,   138,    -1,   134,    -1,   204,    -1,   210,
     823      -1,   204,   133,   210,    -1,   134,    -1,   206,    -1,   220,
     824      -1,   206,   133,   220,    -1,    -1,   208,    -1,    28,   209,
     825     131,    -1,   208,    28,   209,   131,    -1,   270,    -1,   209,
     826     115,   270,    -1,   211,    -1,   220,    -1,   212,   134,   131,
     827      -1,   217,   134,   131,    -1,   214,   134,   131,    -1,   289,
     828     134,   131,    -1,   292,   134,   131,    -1,   213,   273,    -1,
     829     229,   213,   273,    -1,   212,   134,   115,   133,   268,   273,
     830      -1,   363,   268,   307,    -1,   366,   268,   307,    -1,   225,
     831     366,   268,   307,    -1,   215,    -1,   225,   215,    -1,   229,
     832     215,    -1,   229,   225,   215,    -1,   214,   134,   115,   133,
     833     268,    -1,   110,   111,   268,   108,   133,   256,   134,   109,
     834      -1,   366,   268,   108,   133,   256,   134,   109,    -1,   216,
     835     268,   108,   133,   256,   134,   109,    -1,   110,   133,   258,
     836     134,   111,    -1,   110,   133,   258,   134,   115,   133,   259,
     837     134,   111,    -1,     3,   213,    -1,     3,   215,    -1,   217,
     838     134,   115,   133,   138,    -1,     3,   223,   305,    -1,   218,
     839     134,   115,   133,   305,    -1,   225,     3,   223,   305,    -1,
     840     223,     3,   305,    -1,   223,     3,   225,   305,    -1,     3,
     841     138,   130,   162,    -1,   219,   134,   115,   133,   138,   130,
     842     162,    -1,   221,   134,   131,    -1,   218,   134,   131,    -1,
     843     219,   134,   131,    -1,   238,   134,   131,    -1,   222,   305,
     844     307,   273,    -1,   221,   115,   308,   305,   307,   273,    -1,
     845     234,    -1,   238,    -1,   240,    -1,   279,    -1,   235,    -1,
     846     239,    -1,   241,    -1,   280,    -1,    -1,   225,    -1,   226,
     847      -1,   225,   226,    -1,   227,    -1,   310,    -1,    10,    -1,
     848      12,    -1,    11,    -1,    14,    -1,    66,    -1,    -1,    13,
     849     108,   228,   282,   109,    -1,   230,    -1,   225,   230,    -1,
     850     229,   225,   230,    -1,   231,    -1,   230,   231,    -1,   232,
     851      -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
     852      -1,     9,    -1,    68,    -1,    70,    -1,    16,    -1,    21,
     853      -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
     854      -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
     855      -1,   235,    -1,   229,   235,    -1,   234,   231,    -1,   234,
     856     231,   225,    -1,   234,   231,   235,    -1,   236,    -1,   224,
     857     237,   224,    -1,   233,    -1,   225,   233,    -1,   236,   226,
     858      -1,   236,   233,    -1,    27,   108,   272,   109,    -1,    27,
     859     108,   167,   109,    -1,    77,   108,   272,   109,    -1,    77,
     860     108,   167,   109,    -1,   239,    -1,   229,   239,    -1,   238,
     861     231,    -1,   238,   231,   225,    -1,   242,    -1,   225,   242,
     862      -1,   239,   226,    -1,   241,    -1,   229,   241,    -1,   240,
     863     231,    -1,   240,   231,   225,    -1,    73,    -1,   225,    73,
     864      -1,   241,   226,    -1,   243,    -1,   253,    -1,   244,   113,
     865     245,   114,    -1,   244,   270,    -1,   244,   270,   113,   245,
     866     114,    -1,   244,   108,   288,   109,   113,   245,   114,    -1,
     867     244,   281,    -1,    30,   308,    -1,    31,   308,    -1,   246,
     868      -1,   245,   246,    -1,   247,   131,    -1,    39,   247,   131,
     869      -1,   248,   131,    -1,    39,   248,   131,    -1,   362,    -1,
     870     362,   270,    -1,   247,   115,   270,    -1,   247,   115,    -1,
     871     223,   249,    -1,   248,   115,   308,   249,    -1,    -1,   251,
     872      -1,   314,   250,    -1,   327,   250,    -1,   353,    -1,    -1,
     873     251,    -1,   116,   161,    -1,    29,   308,    -1,   252,   113,
     874     254,   368,   114,    -1,   252,   270,   113,   254,   368,   114,
     875      -1,   252,   270,    -1,   270,   255,    -1,   254,   115,   270,
     876     255,    -1,    -1,   130,   161,    -1,    -1,   257,    -1,   259,
     877      -1,   258,    -1,   258,   134,   115,   133,   259,    -1,   259,
     878     134,   115,   133,    95,    -1,   258,   134,   115,   133,    95,
     879      -1,   263,    -1,   259,   134,   115,   133,   263,    -1,   258,
     880     134,   115,   133,   263,    -1,   258,   134,   115,   133,   259,
     881     134,   115,   133,   263,    -1,   264,    -1,   259,   134,   115,
     882     133,   264,    -1,    -1,   261,    -1,   262,    -1,   262,   134,
     883     115,   133,    95,    -1,   266,    -1,   265,    -1,   262,   134,
     884     115,   133,   266,    -1,   262,   134,   115,   133,   265,    -1,
     885     265,    -1,   358,   268,   369,    -1,   366,   268,   369,    -1,
     886     225,   366,   268,   369,    -1,   215,    -1,   266,    -1,   358,
     887      -1,   366,    -1,   225,   366,    -1,   367,    -1,   222,   332,
     888     369,    -1,   222,   336,   369,    -1,   222,    -1,   222,   347,
     889      -1,   138,    -1,   267,   115,   138,    -1,   136,    -1,    73,
     890      -1,    74,    -1,   137,    -1,    73,    -1,    74,    -1,   138,
     891      -1,    73,    -1,    74,    -1,   362,    -1,   223,    -1,   223,
     892     353,    -1,   362,    -1,   367,    -1,   223,    -1,   223,   341,
     893      -1,    -1,   130,   274,    -1,   106,   274,    -1,   162,    -1,
     894     113,   275,   368,   114,    -1,    -1,   274,    -1,   276,   274,
     895      -1,   275,   115,   274,    -1,   275,   115,   276,   274,    -1,
     896     277,   116,    -1,   270,   116,    -1,   278,    -1,   277,   278,
     897      -1,    79,    -1,   112,   270,    -1,   110,   133,   162,   134,
     898     111,    -1,   110,   133,   306,   134,   111,    -1,   110,   133,
     899     161,    95,   161,   134,   111,    -1,   112,   110,   133,   145,
     900     134,   111,    -1,   280,    -1,   229,   280,    -1,   279,   231,
     901      -1,   279,   231,   225,    -1,   281,    -1,   225,   281,    -1,
     902     280,   226,    -1,    74,   108,   288,   109,    -1,   283,   369,
     903      -1,   282,   115,   283,   369,    -1,    -1,   285,   270,   284,
     904     286,    -1,   223,   332,    -1,    32,    -1,    34,    -1,    33,
     905      -1,    -1,   286,   287,    -1,   128,   270,   108,   288,   109,
     906      -1,   128,   113,   133,   294,   114,    -1,   128,   108,   133,
     907     282,   134,   109,   113,   133,   294,   114,   108,   288,   109,
     908      -1,   272,    -1,   162,    -1,   288,   115,   272,    -1,   288,
     909     115,   162,    -1,    32,   290,    -1,   230,    32,   290,    -1,
     910     289,   115,   290,    -1,   291,   286,    -1,   291,   286,   130,
     911     272,    -1,   270,    -1,   269,   108,   133,   282,   134,   109,
     912      -1,    35,   270,   108,   133,   282,   134,   109,   113,   114,
     913      -1,    -1,    35,   270,   108,   133,   282,   134,   109,   113,
     914     293,   294,   114,    -1,   295,    -1,   294,   133,   295,    -1,
     915     296,   134,   131,    -1,   297,   134,   131,    -1,   213,    -1,
     916     215,    -1,   296,   134,   115,   133,   268,    -1,   223,   305,
     917      -1,   297,   134,   115,   133,   305,    -1,    -1,   299,    -1,
     918     301,    -1,   299,   133,   301,    -1,    -1,   299,    -1,   210,
     919      -1,   303,    -1,   196,    -1,    -1,     5,    81,   302,   113,
     920     300,   114,    -1,    39,   301,    -1,   304,    -1,   319,   171,
     921      -1,   323,   133,   205,   171,    -1,   214,   171,    -1,   222,
     922     319,   171,    -1,   225,   319,   171,    -1,   229,   319,   171,
     923      -1,   229,   225,   319,   171,    -1,   222,   323,   133,   205,
     924     171,    -1,   225,   323,   133,   205,   171,    -1,   229,   323,
     925     133,   205,   171,    -1,   229,   225,   323,   133,   205,   171,
     926      -1,   314,    -1,   319,    -1,   327,    -1,   161,   122,   161,
     927      -1,    -1,    63,   108,   140,   109,   308,    -1,    -1,   309,
     928      -1,   310,    -1,   309,   310,    -1,    38,   108,   108,   311,
     929     109,   109,    -1,   312,    -1,   311,   115,   312,    -1,    -1,
     930     313,    -1,   313,   108,   168,   109,    -1,   268,    -1,   232,
     931      -1,   233,    -1,   226,    -1,   315,   308,    -1,   316,    -1,
     932     317,   308,    -1,   318,   308,    -1,   136,    -1,   108,   315,
     933     109,    -1,   118,   314,    -1,   118,   225,   314,    -1,   108,
     934     316,   109,    -1,   315,   345,    -1,   108,   316,   109,   345,
     935      -1,   108,   317,   109,   346,    -1,   108,   317,   109,    -1,
     936     108,   316,   109,   108,   133,   260,   134,   109,    -1,   108,
     937     318,   109,    -1,   320,   308,    -1,   321,    -1,   322,   308,
     938      -1,   315,   108,   133,   260,   134,   109,    -1,   108,   321,
     939     109,   108,   133,   260,   134,   109,    -1,   108,   320,   109,
     940      -1,   118,   319,    -1,   118,   225,   319,    -1,   108,   321,
     941     109,    -1,   108,   321,   109,   345,    -1,   108,   322,   109,
     942     346,    -1,   108,   322,   109,    -1,   324,    -1,   325,    -1,
     943     326,    -1,   315,   108,   267,   109,    -1,   108,   325,   109,
     944     108,   267,   109,    -1,   108,   324,   109,    -1,   118,   323,
     945      -1,   118,   225,   323,    -1,   108,   325,   109,    -1,   108,
     946     325,   109,   345,    -1,   108,   326,   109,   346,    -1,   108,
     947     326,   109,    -1,   328,   308,    -1,   329,    -1,   330,   308,
     948      -1,   331,   308,    -1,   337,    -1,   108,   328,   109,    -1,
     949     118,   327,    -1,   118,   225,   327,    -1,   108,   329,   109,
     950      -1,   328,   345,    -1,   108,   329,   109,   345,    -1,   108,
     951     330,   109,   346,    -1,   108,   330,   109,    -1,   328,   108,
     952     133,   260,   134,   109,    -1,   108,   329,   109,   108,   133,
     953     260,   134,   109,    -1,   108,   331,   109,    -1,   315,   308,
     954      -1,   333,    -1,   334,   308,    -1,   335,   308,    -1,   118,
     955     332,    -1,   118,   225,   332,    -1,   108,   333,   109,    -1,
     956     315,   351,    -1,   108,   333,   109,   345,    -1,   108,   334,
     957     109,   346,    -1,   108,   334,   109,    -1,   315,   108,   133,
     958     260,   134,   109,    -1,   108,   333,   109,   108,   133,   260,
     959     134,   109,    -1,   108,   335,   109,    -1,   337,   308,    -1,
     960     338,    -1,   339,   308,    -1,   340,   308,    -1,    73,    -1,
     961      74,    -1,   118,   336,    -1,   118,   225,   336,    -1,   108,
     962     338,   109,    -1,   337,   351,    -1,   108,   338,   109,   351,
     963      -1,   337,   108,   133,   260,   134,   109,    -1,   108,   338,
     964     109,   108,   133,   260,   134,   109,    -1,   342,    -1,   343,
     965     308,    -1,   344,   308,    -1,   118,    -1,   118,   225,    -1,
     966     118,   341,    -1,   118,   225,   341,    -1,   108,   342,   109,
     967      -1,   345,    -1,   108,   342,   109,   345,    -1,   108,   343,
     968     109,   346,    -1,   108,   343,   109,    -1,   108,   133,   260,
     969     134,   109,    -1,   108,   342,   109,   108,   133,   260,   134,
     970     109,    -1,   108,   344,   109,    -1,   110,   111,    -1,   110,
     971     111,   346,    -1,   346,    -1,   110,   133,   162,   134,   111,
     972      -1,   110,   133,   118,   134,   111,    -1,   346,   110,   133,
     973     162,   134,   111,    -1,   346,   110,   133,   118,   134,   111,
     974      -1,   348,    -1,   349,   308,    -1,   350,   308,    -1,   118,
     975      -1,   118,   225,    -1,   118,   347,    -1,   118,   225,   347,
     976      -1,   108,   348,   109,    -1,   351,    -1,   108,   348,   109,
     977     351,    -1,   108,   349,   109,   346,    -1,   108,   349,   109,
     978      -1,   108,   133,   260,   134,   109,    -1,   108,   348,   109,
     979     108,   133,   260,   134,   109,    -1,   108,   350,   109,    -1,
     980     352,    -1,   352,   346,    -1,   346,    -1,   110,   111,    -1,
     981     110,   133,   225,   118,   134,   111,    -1,   110,   133,   225,
     982     134,   111,    -1,   110,   133,   225,   162,   134,   111,    -1,
     983     110,   133,     7,   224,   162,   134,   111,    -1,   110,   133,
     984     225,     7,   162,   134,   111,    -1,   354,    -1,   355,   308,
     985      -1,   356,   308,    -1,   118,    -1,   118,   225,    -1,   118,
     986     353,    -1,   118,   225,   353,    -1,   108,   354,   109,    -1,
     987     345,    -1,   108,   354,   109,   345,    -1,   108,   355,   109,
     988     346,    -1,   108,   355,   109,    -1,   108,   354,   109,   108,
     989     133,   260,   134,   109,    -1,   108,   356,   109,    -1,   358,
     990      -1,   366,    -1,   225,   366,    -1,   359,    -1,   360,    -1,
     991     118,   223,    -1,   225,   118,   223,    -1,   118,   367,    -1,
     992     225,   118,   367,    -1,   118,   357,    -1,   225,   118,   357,
     993      -1,   110,   111,   223,    -1,   361,   223,    -1,   110,   111,
     994     346,   223,    -1,   361,   346,   223,    -1,   346,   223,    -1,
     995     110,   111,   359,    -1,   361,   359,    -1,   110,   111,   346,
     996     359,    -1,   361,   346,   359,    -1,   346,   359,    -1,   110,
     997     133,   225,   118,   134,   111,    -1,   110,   133,   225,   162,
     998     134,   111,    -1,   110,   133,   229,   162,   134,   111,    -1,
     999     110,   133,   229,   225,   162,   134,   111,    -1,   366,    -1,
     1000     225,   366,    -1,   363,    -1,   364,    -1,   365,    -1,   118,
     1001     223,    -1,   225,   118,   223,    -1,   118,   367,    -1,   225,
     1002     118,   367,    -1,   118,   362,    -1,   225,   118,   362,    -1,
     1003     110,   111,   223,    -1,   110,   111,   346,   223,    -1,   346,
     1004     223,    -1,   110,   111,   364,    -1,   110,   111,   346,   364,
     1005      -1,   346,   364,    -1,   110,   133,   259,   134,   111,    -1,
     1006     110,   111,   108,   256,   109,    -1,   366,   108,   133,   256,
     1007     134,   109,    -1,   216,   108,   133,   256,   134,   109,    -1,
     1008      -1,   115,    -1,    -1,   130,   162,    -1
    10051009};
    10061010
     
    10141018     401,   405,   407,   409,   411,   413,   418,   421,   423,   425,
    10151019     427,   429,   431,   433,   435,   441,   443,   445,   447,   449,
    1016      451,   453,   455,   460,   461,   462,   463,   467,   468,   470,
    1017      475,   476,   478,   480,   485,   486,   488,   493,   494,   496,
    1018      501,   502,   504,   506,   508,   513,   514,   516,   521,   522,
    1019      527,   528,   533,   534,   539,   540,   545,   546,   551,   552,
    1020      554,   556,   561,   566,   567,   569,   571,   577,   578,   584,
    1021      586,   588,   590,   595,   596,   601,   602,   603,   604,   605,
    1022      606,   607,   608,   609,   610,   614,   615,   621,   622,   628,
    1023      629,   630,   631,   632,   633,   634,   635,   636,   645,   652,
    1024      654,   664,   665,   670,   672,   674,   676,   680,   681,   686,
    1025      691,   694,   696,   698,   703,   705,   713,   714,   716,   720,
    1026      721,   726,   727,   732,   733,   737,   742,   743,   747,   749,
    1027      755,   756,   760,   762,   764,   766,   772,   773,   777,   778,
    1028      782,   784,   786,   791,   793,   798,   800,   804,   807,   811,
    1029      814,   818,   820,   824,   826,   833,   835,   837,   846,   848,
    1030      850,   852,   854,   859,   861,   863,   865,   870,   883,   884,
    1031      889,   891,   896,   900,   902,   904,   906,   908,   914,   915,
    1032      921,   922,   926,   927,   932,   934,   940,   941,   943,   948,
    1033      950,   957,   959,   963,   964,   969,   971,   975,   976,   980,
    1034      982,   986,   987,   991,   992,   996,   997,  1012,  1013,  1014,
    1035     1015,  1016,  1020,  1025,  1032,  1042,  1047,  1052,  1060,  1065,
    1036     1070,  1075,  1080,  1088,  1110,  1115,  1122,  1124,  1131,  1136,
    1037     1141,  1152,  1157,  1162,  1167,  1172,  1181,  1186,  1194,  1195,
    1038     1196,  1197,  1203,  1208,  1216,  1217,  1218,  1219,  1223,  1224,
    1039     1225,  1226,  1231,  1232,  1241,  1242,  1247,  1248,  1253,  1255,
    1040     1257,  1259,  1261,  1264,  1263,  1275,  1276,  1278,  1288,  1289,
    1041     1294,  1298,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1317,
     1020     451,   453,   455,   457,   462,   463,   464,   465,   469,   470,
     1021     472,   477,   478,   480,   482,   487,   488,   490,   495,   496,
     1022     498,   503,   504,   506,   508,   510,   515,   516,   518,   523,
     1023     524,   529,   530,   535,   536,   541,   542,   547,   548,   553,
     1024     554,   556,   558,   563,   568,   569,   571,   573,   579,   580,
     1025     586,   588,   590,   592,   597,   598,   603,   604,   605,   606,
     1026     607,   608,   609,   610,   611,   612,   616,   617,   623,   624,
     1027     630,   631,   632,   633,   634,   635,   636,   637,   638,   647,
     1028     654,   656,   666,   667,   672,   674,   676,   678,   682,   683,
     1029     688,   693,   696,   698,   700,   705,   707,   715,   716,   718,
     1030     722,   723,   728,   729,   734,   735,   739,   744,   745,   749,
     1031     751,   757,   758,   762,   764,   766,   768,   774,   775,   779,
     1032     780,   784,   786,   788,   793,   795,   800,   802,   806,   809,
     1033     813,   816,   820,   822,   826,   828,   835,   837,   839,   848,
     1034     850,   852,   854,   856,   861,   863,   865,   867,   872,   885,
     1035     886,   891,   893,   898,   902,   904,   906,   908,   910,   916,
     1036     917,   923,   924,   928,   929,   934,   936,   942,   943,   945,
     1037     950,   952,   959,   961,   965,   966,   971,   973,   977,   978,
     1038     982,   984,   988,   989,   993,   994,   998,   999,  1014,  1015,
     1039    1016,  1017,  1018,  1022,  1027,  1034,  1044,  1049,  1054,  1062,
     1040    1067,  1072,  1077,  1082,  1090,  1112,  1117,  1124,  1126,  1133,
     1041    1138,  1143,  1154,  1159,  1164,  1169,  1174,  1183,  1188,  1196,
     1042    1197,  1198,  1199,  1205,  1210,  1218,  1219,  1220,  1221,  1225,
     1043    1226,  1227,  1228,  1233,  1234,  1243,  1244,  1249,  1250,  1255,
     1044    1257,  1259,  1261,  1263,  1266,  1265,  1277,  1278,  1280,  1290,
     1045    1291,  1296,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,
    10421046    1319,  1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,
    1043     1339,  1345,  1346,  1348,  1350,  1352,  1357,  1358,  1364,  1365,
    1044     1367,  1369,  1374,  1376,  1378,  1380,  1385,  1386,  1388,  1390,
    1045     1395,  1396,  1398,  1403,  1404,  1406,  1408,  1413,  1415,  1417,
    1046     1422,  1423,  1427,  1429,  1431,  1433,  1435,  1440,  1442,  1447,
    1047     1449,  1454,  1455,  1457,  1458,  1463,  1464,  1466,  1468,  1473,
    1048     1475,  1481,  1482,  1484,  1487,  1490,  1495,  1496,  1501,  1506,
    1049     1510,  1512,  1514,  1519,  1521,  1527,  1528,  1536,  1537,  1541,
    1050     1542,  1543,  1545,  1547,  1554,  1555,  1557,  1559,  1564,  1565,
    1051     1571,  1572,  1576,  1577,  1582,  1583,  1584,  1586,  1594,  1595,
    1052     1597,  1600,  1602,  1606,  1607,  1608,  1610,  1612,  1616,  1621,
    1053     1629,  1630,  1639,  1641,  1646,  1647,  1648,  1652,  1653,  1654,
    1054     1658,  1659,  1660,  1664,  1665,  1666,  1671,  1672,  1673,  1674,
    1055     1680,  1681,  1683,  1688,  1689,  1694,  1695,  1696,  1697,  1698,
    1056     1713,  1714,  1719,  1720,  1728,  1730,  1732,  1735,  1737,  1739,
    1057     1762,  1763,  1765,  1767,  1772,  1773,  1775,  1780,  1785,  1786,
    1058     1792,  1791,  1795,  1799,  1801,  1803,  1809,  1810,  1815,  1820,
    1059     1822,  1827,  1829,  1830,  1832,  1837,  1839,  1841,  1846,  1848,
    1060     1853,  1858,  1866,  1872,  1871,  1885,  1886,  1891,  1892,  1896,
    1061     1901,  1906,  1914,  1919,  1930,  1931,  1942,  1943,  1949,  1950,
    1062     1954,  1955,  1956,  1959,  1958,  1969,  1974,  1979,  1985,  1994,
    1063     2000,  2006,  2012,  2018,  2026,  2032,  2040,  2046,  2055,  2056,
    1064     2057,  2061,  2065,  2067,  2072,  2073,  2077,  2078,  2083,  2089,
    1065     2090,  2093,  2095,  2096,  2100,  2101,  2102,  2103,  2137,  2139,
    1066     2140,  2142,  2147,  2152,  2157,  2159,  2161,  2166,  2168,  2170,
    1067     2172,  2177,  2179,  2189,  2191,  2192,  2197,  2199,  2201,  2206,
    1068     2208,  2210,  2215,  2217,  2219,  2228,  2229,  2230,  2234,  2236,
    1069     2238,  2243,  2245,  2247,  2252,  2254,  2256,  2271,  2273,  2274,
    1070     2276,  2281,  2282,  2287,  2289,  2291,  2296,  2298,  2300,  2302,
    1071     2307,  2309,  2311,  2321,  2323,  2324,  2326,  2331,  2333,  2335,
    1072     2340,  2342,  2344,  2346,  2351,  2353,  2355,  2386,  2388,  2389,
    1073     2391,  2396,  2401,  2409,  2411,  2413,  2418,  2420,  2425,  2427,
    1074     2441,  2442,  2444,  2449,  2451,  2453,  2455,  2457,  2462,  2463,
    1075     2465,  2467,  2472,  2474,  2476,  2482,  2484,  2486,  2490,  2492,
    1076     2494,  2496,  2510,  2511,  2513,  2518,  2520,  2522,  2524,  2526,
    1077     2531,  2532,  2534,  2536,  2541,  2543,  2545,  2551,  2552,  2554,
    1078     2563,  2566,  2568,  2571,  2573,  2575,  2588,  2589,  2591,  2596,
    1079     2598,  2600,  2602,  2604,  2609,  2610,  2612,  2614,  2619,  2621,
    1080     2629,  2630,  2631,  2636,  2637,  2641,  2643,  2645,  2647,  2649,
    1081     2651,  2658,  2660,  2662,  2664,  2666,  2668,  2670,  2672,  2674,
    1082     2676,  2681,  2683,  2685,  2690,  2716,  2717,  2719,  2723,  2724,
    1083     2728,  2730,  2732,  2734,  2736,  2738,  2745,  2747,  2749,  2751,
    1084     2753,  2755,  2760,  2765,  2767,  2769,  2787,  2789,  2794,  2795
     1047    1339,  1341,  1347,  1348,  1350,  1352,  1354,  1359,  1360,  1366,
     1048    1367,  1369,  1371,  1376,  1378,  1380,  1382,  1387,  1388,  1390,
     1049    1392,  1397,  1398,  1400,  1405,  1406,  1408,  1410,  1415,  1417,
     1050    1419,  1424,  1425,  1429,  1431,  1433,  1435,  1437,  1442,  1444,
     1051    1449,  1451,  1456,  1457,  1459,  1460,  1465,  1466,  1468,  1470,
     1052    1475,  1477,  1483,  1484,  1486,  1489,  1492,  1497,  1498,  1503,
     1053    1508,  1512,  1514,  1516,  1521,  1523,  1529,  1530,  1538,  1539,
     1054    1543,  1544,  1545,  1547,  1549,  1556,  1557,  1559,  1561,  1566,
     1055    1567,  1573,  1574,  1578,  1579,  1584,  1585,  1586,  1588,  1596,
     1056    1597,  1599,  1602,  1604,  1608,  1609,  1610,  1612,  1614,  1618,
     1057    1623,  1631,  1632,  1641,  1643,  1648,  1649,  1650,  1654,  1655,
     1058    1656,  1660,  1661,  1662,  1666,  1667,  1668,  1673,  1674,  1675,
     1059    1676,  1682,  1683,  1685,  1690,  1691,  1696,  1697,  1698,  1699,
     1060    1700,  1715,  1716,  1721,  1722,  1730,  1732,  1734,  1737,  1739,
     1061    1741,  1764,  1765,  1767,  1769,  1774,  1775,  1777,  1782,  1787,
     1062    1788,  1794,  1793,  1797,  1801,  1803,  1805,  1811,  1812,  1817,
     1063    1822,  1824,  1829,  1831,  1832,  1834,  1839,  1841,  1843,  1848,
     1064    1850,  1855,  1860,  1868,  1874,  1873,  1887,  1888,  1893,  1894,
     1065    1898,  1903,  1908,  1916,  1921,  1932,  1933,  1944,  1945,  1951,
     1066    1952,  1956,  1957,  1958,  1961,  1960,  1971,  1976,  1981,  1987,
     1067    1996,  2002,  2008,  2014,  2020,  2028,  2034,  2042,  2048,  2057,
     1068    2058,  2059,  2063,  2067,  2069,  2074,  2075,  2079,  2080,  2085,
     1069    2091,  2092,  2095,  2097,  2098,  2102,  2103,  2104,  2105,  2139,
     1070    2141,  2142,  2144,  2149,  2154,  2159,  2161,  2163,  2168,  2170,
     1071    2172,  2174,  2179,  2181,  2191,  2193,  2194,  2199,  2201,  2203,
     1072    2208,  2210,  2212,  2217,  2219,  2221,  2230,  2231,  2232,  2236,
     1073    2238,  2240,  2245,  2247,  2249,  2254,  2256,  2258,  2273,  2275,
     1074    2276,  2278,  2283,  2284,  2289,  2291,  2293,  2298,  2300,  2302,
     1075    2304,  2309,  2311,  2313,  2323,  2325,  2326,  2328,  2333,  2335,
     1076    2337,  2342,  2344,  2346,  2348,  2353,  2355,  2357,  2388,  2390,
     1077    2391,  2393,  2398,  2403,  2411,  2413,  2415,  2420,  2422,  2427,
     1078    2429,  2443,  2444,  2446,  2451,  2453,  2455,  2457,  2459,  2464,
     1079    2465,  2467,  2469,  2474,  2476,  2478,  2484,  2486,  2488,  2492,
     1080    2494,  2496,  2498,  2512,  2513,  2515,  2520,  2522,  2524,  2526,
     1081    2528,  2533,  2534,  2536,  2538,  2543,  2545,  2547,  2553,  2554,
     1082    2556,  2565,  2568,  2570,  2573,  2575,  2577,  2590,  2591,  2593,
     1083    2598,  2600,  2602,  2604,  2606,  2611,  2612,  2614,  2616,  2621,
     1084    2623,  2631,  2632,  2633,  2638,  2639,  2643,  2645,  2647,  2649,
     1085    2651,  2653,  2660,  2662,  2664,  2666,  2668,  2670,  2672,  2674,
     1086    2676,  2678,  2683,  2685,  2687,  2692,  2718,  2719,  2721,  2725,
     1087    2726,  2730,  2732,  2734,  2736,  2738,  2740,  2747,  2749,  2751,
     1088    2753,  2755,  2757,  2762,  2767,  2769,  2771,  2789,  2791,  2796,
     1089    2797
    10851090};
    10861091#endif
     
    10961101  "SIGNED", "UNSIGNED", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF", "LABEL",
    10971102  "ENUM", "STRUCT", "UNION", "TYPE", "FTYPE", "DTYPE", "CONTEXT", "SIZEOF",
    1098   "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT",
    1099   "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE",
    1100   "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
     1103  "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE",
     1104  "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN",
     1105  "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
    11011106  "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
    11021107  "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT", "THREADLOCAL",
     
    12141219     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12151220     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1216      355,   356,   357,   358,   359,   360,   361,    40,    41,    91,
    1217       93,    46,   123,   125,    44,    58,    33,    42,    38,    43,
    1218       45,   126,    47,    37,    60,    62,    94,   124,    63,    61,
    1219       59
     1221     355,   356,   357,   358,   359,   360,   361,   362,    40,    41,
     1222      91,    93,    46,   123,   125,    44,    58,    33,    42,    38,
     1223      43,    45,   126,    47,    37,    60,    62,    94,   124,    63,
     1224      61,    59
    12201225};
    12211226# endif
     
    12241229static const yytype_uint16 yyr1[] =
    12251230{
    1226        0,   131,   132,   133,   134,   134,   134,   135,   135,   135,
    1227      136,   136,   137,   138,   138,   139,   139,   140,   140,   140,
    1228      140,   141,   141,   141,   141,   141,   141,   141,   141,   141,
    1229      141,   141,   142,   142,   143,   143,   143,   143,   143,   144,
    1230      144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
    1231      146,   146,   146,   146,   146,   146,   146,   146,   146,   146,
    1232      146,   146,   146,   147,   147,   147,   147,   148,   148,   148,
    1233      149,   149,   149,   149,   150,   150,   150,   151,   151,   151,
    1234      152,   152,   152,   152,   152,   153,   153,   153,   154,   154,
    1235      155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
    1236      159,   159,   160,   161,   161,   161,   161,   162,   162,   163,
    1237      163,   163,   163,   164,   164,   165,   165,   165,   165,   165,
    1238      165,   165,   165,   165,   165,   166,   166,   167,   167,   168,
    1239      168,   168,   168,   168,   168,   168,   168,   168,   169,   170,
    1240      170,   171,   171,   172,   172,   172,   172,   173,   173,   174,
    1241      175,   175,   175,   175,   175,   175,   176,   176,   176,   177,
    1242      177,   178,   178,   179,   179,   180,   181,   181,   182,   182,
    1243      183,   183,   184,   184,   184,   184,   185,   185,   186,   186,
    1244      187,   187,   187,   188,   188,   189,   189,   189,   189,   189,
    1245      189,   189,   189,   189,   189,   190,   190,   190,   191,   191,
    1246      191,   191,   191,   192,   192,   192,   192,   193,   194,   194,
    1247      194,   194,   194,   195,   195,   195,   195,   195,   196,   196,
    1248      197,   197,   198,   198,   199,   199,   200,   200,   200,   201,
    1249      201,   202,   202,   203,   203,   204,   204,   205,   205,   206,
    1250      206,   207,   207,   208,   208,   209,   209,   210,   210,   210,
    1251      210,   210,   211,   211,   211,   212,   212,   212,   213,   213,
    1252      213,   213,   213,   214,   214,   214,   215,   215,   216,   216,
    1253      216,   217,   217,   217,   217,   217,   218,   218,   219,   219,
    1254      219,   219,   220,   220,   221,   221,   221,   221,   222,   222,
    1255      222,   222,   223,   223,   224,   224,   225,   225,   226,   226,
    1256      226,   226,   226,   227,   226,   228,   228,   228,   229,   229,
    1257      230,   231,   231,   231,   231,   231,   231,   231,   231,   232,
    1258      232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
    1259      232,   233,   233,   233,   233,   233,   234,   234,   235,   235,
    1260      235,   235,   236,   236,   236,   236,   237,   237,   237,   237,
    1261      238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
    1262      241,   241,   242,   242,   242,   242,   242,   243,   243,   244,
    1263      244,   245,   245,   245,   245,   246,   246,   246,   246,   247,
    1264      247,   248,   248,   248,   248,   248,   249,   249,   250,   251,
    1265      252,   252,   252,   253,   253,   254,   254,   255,   255,   256,
    1266      256,   256,   256,   256,   257,   257,   257,   257,   258,   258,
    1267      259,   259,   260,   260,   261,   261,   261,   261,   262,   262,
    1268      262,   262,   262,   263,   263,   263,   263,   263,   264,   264,
    1269      265,   265,   266,   266,   267,   267,   267,   268,   268,   268,
    1270      269,   269,   269,   270,   270,   270,   271,   271,   271,   271,
    1271      272,   272,   272,   273,   273,   274,   274,   274,   274,   274,
    1272      275,   275,   276,   276,   277,   277,   277,   277,   277,   277,
    1273      278,   278,   278,   278,   279,   279,   279,   280,   281,   281,
    1274      283,   282,   282,   284,   284,   284,   285,   285,   286,   286,
    1275      286,   287,   287,   287,   287,   288,   288,   288,   289,   289,
    1276      290,   290,   291,   292,   291,   293,   293,   294,   294,   295,
    1277      295,   295,   296,   296,   297,   297,   298,   298,   299,   299,
    1278      300,   300,   300,   301,   300,   300,   302,   302,   302,   303,
    1279      303,   303,   303,   303,   303,   303,   303,   303,   304,   304,
    1280      304,   305,   306,   306,   307,   307,   308,   308,   309,   310,
    1281      310,   311,   311,   311,   312,   312,   312,   312,   313,   313,
    1282      313,   313,   314,   314,   315,   315,   315,   316,   316,   316,
    1283      316,   317,   317,   318,   318,   318,   319,   319,   319,   320,
    1284      320,   320,   321,   321,   321,   322,   322,   322,   323,   323,
    1285      323,   324,   324,   324,   325,   325,   325,   326,   326,   326,
    1286      326,   327,   327,   328,   328,   328,   329,   329,   329,   329,
    1287      330,   330,   330,   331,   331,   331,   331,   332,   332,   332,
    1288      333,   333,   333,   333,   334,   334,   334,   335,   335,   335,
    1289      335,   336,   336,   337,   337,   337,   338,   338,   339,   339,
    1290      340,   340,   340,   341,   341,   341,   341,   341,   342,   342,
    1291      342,   342,   343,   343,   343,   344,   344,   344,   345,   345,
    1292      345,   345,   346,   346,   346,   347,   347,   347,   347,   347,
    1293      348,   348,   348,   348,   349,   349,   349,   350,   350,   350,
    1294      351,   351,   351,   351,   351,   351,   352,   352,   352,   353,
    1295      353,   353,   353,   353,   354,   354,   354,   354,   355,   355,
    1296      356,   356,   356,   357,   357,   358,   358,   358,   358,   358,
    1297      358,   359,   359,   359,   359,   359,   359,   359,   359,   359,
    1298      359,   360,   360,   360,   360,   361,   361,   361,   362,   362,
    1299      363,   363,   363,   363,   363,   363,   364,   364,   364,   364,
    1300      364,   364,   365,   366,   366,   366,   367,   367,   368,   368
     1231       0,   132,   133,   134,   135,   135,   135,   136,   136,   136,
     1232     137,   137,   138,   139,   139,   140,   140,   141,   141,   141,
     1233     141,   142,   142,   142,   142,   142,   142,   142,   142,   142,
     1234     142,   142,   143,   143,   144,   144,   144,   144,   144,   145,
     1235     145,   146,   146,   146,   146,   146,   147,   147,   147,   147,
     1236     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
     1237     147,   147,   147,   147,   148,   148,   148,   148,   149,   149,
     1238     149,   150,   150,   150,   150,   151,   151,   151,   152,   152,
     1239     152,   153,   153,   153,   153,   153,   154,   154,   154,   155,
     1240     155,   156,   156,   157,   157,   158,   158,   159,   159,   160,
     1241     160,   160,   160,   161,   162,   162,   162,   162,   163,   163,
     1242     164,   164,   164,   164,   165,   165,   166,   166,   166,   166,
     1243     166,   166,   166,   166,   166,   166,   167,   167,   168,   168,
     1244     169,   169,   169,   169,   169,   169,   169,   169,   169,   170,
     1245     171,   171,   172,   172,   173,   173,   173,   173,   174,   174,
     1246     175,   176,   176,   176,   176,   176,   176,   177,   177,   177,
     1247     178,   178,   179,   179,   180,   180,   181,   182,   182,   183,
     1248     183,   184,   184,   185,   185,   185,   185,   186,   186,   187,
     1249     187,   188,   188,   188,   189,   189,   190,   190,   190,   190,
     1250     190,   190,   190,   190,   190,   190,   191,   191,   191,   192,
     1251     192,   192,   192,   192,   193,   193,   193,   193,   194,   195,
     1252     195,   195,   195,   195,   196,   196,   196,   196,   196,   197,
     1253     197,   198,   198,   199,   199,   200,   200,   201,   201,   201,
     1254     202,   202,   203,   203,   204,   204,   205,   205,   206,   206,
     1255     207,   207,   208,   208,   209,   209,   210,   210,   211,   211,
     1256     211,   211,   211,   212,   212,   212,   213,   213,   213,   214,
     1257     214,   214,   214,   214,   215,   215,   215,   216,   216,   217,
     1258     217,   217,   218,   218,   218,   218,   218,   219,   219,   220,
     1259     220,   220,   220,   221,   221,   222,   222,   222,   222,   223,
     1260     223,   223,   223,   224,   224,   225,   225,   226,   226,   227,
     1261     227,   227,   227,   227,   228,   227,   229,   229,   229,   230,
     1262     230,   231,   232,   232,   232,   232,   232,   232,   232,   232,
     1263     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
     1264     233,   233,   234,   234,   234,   234,   234,   235,   235,   236,
     1265     236,   236,   236,   237,   237,   237,   237,   238,   238,   238,
     1266     238,   239,   239,   239,   240,   240,   240,   240,   241,   241,
     1267     241,   242,   242,   243,   243,   243,   243,   243,   244,   244,
     1268     245,   245,   246,   246,   246,   246,   247,   247,   247,   247,
     1269     248,   248,   249,   249,   249,   249,   249,   250,   250,   251,
     1270     252,   253,   253,   253,   254,   254,   255,   255,   256,   256,
     1271     257,   257,   257,   257,   257,   258,   258,   258,   258,   259,
     1272     259,   260,   260,   261,   261,   262,   262,   262,   262,   263,
     1273     263,   263,   263,   263,   264,   264,   264,   264,   264,   265,
     1274     265,   266,   266,   267,   267,   268,   268,   268,   269,   269,
     1275     269,   270,   270,   270,   271,   271,   271,   272,   272,   272,
     1276     272,   273,   273,   273,   274,   274,   275,   275,   275,   275,
     1277     275,   276,   276,   277,   277,   278,   278,   278,   278,   278,
     1278     278,   279,   279,   279,   279,   280,   280,   280,   281,   282,
     1279     282,   284,   283,   283,   285,   285,   285,   286,   286,   287,
     1280     287,   287,   288,   288,   288,   288,   289,   289,   289,   290,
     1281     290,   291,   291,   292,   293,   292,   294,   294,   295,   295,
     1282     296,   296,   296,   297,   297,   298,   298,   299,   299,   300,
     1283     300,   301,   301,   301,   302,   301,   301,   303,   303,   303,
     1284     304,   304,   304,   304,   304,   304,   304,   304,   304,   305,
     1285     305,   305,   306,   307,   307,   308,   308,   309,   309,   310,
     1286     311,   311,   312,   312,   312,   313,   313,   313,   313,   314,
     1287     314,   314,   314,   315,   315,   316,   316,   316,   317,   317,
     1288     317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
     1289     321,   321,   321,   322,   322,   322,   323,   323,   323,   324,
     1290     324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
     1291     327,   327,   328,   328,   329,   329,   329,   330,   330,   330,
     1292     330,   331,   331,   331,   332,   332,   332,   332,   333,   333,
     1293     333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
     1294     336,   336,   337,   337,   338,   338,   338,   339,   339,   340,
     1295     340,   341,   341,   341,   342,   342,   342,   342,   342,   343,
     1296     343,   343,   343,   344,   344,   344,   345,   345,   345,   346,
     1297     346,   346,   346,   347,   347,   347,   348,   348,   348,   348,
     1298     348,   349,   349,   349,   349,   350,   350,   350,   351,   351,
     1299     351,   352,   352,   352,   352,   352,   352,   353,   353,   353,
     1300     354,   354,   354,   354,   354,   355,   355,   355,   355,   356,
     1301     356,   357,   357,   357,   358,   358,   359,   359,   359,   359,
     1302     359,   359,   360,   360,   360,   360,   360,   360,   360,   360,
     1303     360,   360,   361,   361,   361,   361,   362,   362,   362,   363,
     1304     363,   364,   364,   364,   364,   364,   364,   365,   365,   365,
     1305     365,   365,   365,   366,   367,   367,   367,   368,   368,   369,
     1306     369
    13011307};
    13021308
     
    13091315       7,     4,     1,     3,     0,     1,     3,     7,     9,     1,
    13101316       3,     1,     3,     7,     3,     7,     1,     1,     1,     2,
    1311        2,     2,     2,     2,     2,     2,     4,     1,     4,     4,
    1312        2,     4,     2,     1,     1,     1,     1,     1,     4,     4,
    1313        1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    1314        1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    1315        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    1316        4,     5,     1,     1,     3,     3,     2,     0,     1,     2,
    1317        5,     6,     7,     1,     3,     1,     1,     1,     1,     1,
    1318        1,     1,     1,     1,     1,     1,     3,     0,     1,     1,
    1319        1,     1,     1,     1,     1,     1,     1,     6,     4,     2,
    1320        7,     1,     3,     1,     2,     1,     2,     1,     2,     2,
    1321        5,     7,     5,     9,     5,     9,     1,     3,     1,     1,
    1322        3,     3,     2,     1,     2,     2,     0,     1,     2,     3,
    1323        0,     1,     2,     3,     3,     4,     0,     1,     1,     2,
    1324        5,     7,     6,     6,     4,     3,     4,     2,     3,     2,
    1325        3,     3,     3,     3,     5,     3,     3,     4,     1,     5,
    1326        6,     5,     6,     9,    10,     9,    10,     2,     1,     2,
    1327        2,     2,     1,     6,     8,    10,    12,    14,     0,     1,
    1328        0,     1,     1,     3,     4,     7,     0,     1,     3,     1,
    1329        3,     1,     1,     1,     3,     1,     1,     1,     3,     0,
    1330        1,     3,     4,     1,     3,     1,     1,     3,     3,     3,
    1331        3,     3,     2,     3,     6,     3,     3,     4,     1,     2,
    1332        2,     3,     5,     8,     7,     7,     5,     9,     2,     2,
    1333        5,     3,     5,     4,     3,     4,     4,     7,     3,     3,
    1334        3,     3,     4,     6,     1,     1,     1,     1,     1,     1,
    1335        1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
    1336        1,     1,     1,     0,     5,     1,     2,     3,     1,     2,
     1317       2,     2,     2,     2,     2,     2,     4,     6,     1,     4,
     1318       4,     2,     4,     2,     1,     1,     1,     1,     1,     4,
     1319       4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
     1320       3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
     1321       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
     1322       5,     4,     5,     1,     1,     3,     3,     2,     0,     1,
     1323       2,     5,     6,     7,     1,     3,     1,     1,     1,     1,
     1324       1,     1,     1,     1,     1,     1,     1,     3,     0,     1,
     1325       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     1326       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     1327       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     1328       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     1329       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     1330       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     1331       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     1332       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     1333       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     1334       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     1335       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     1336       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     1337       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     1338       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     1339       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     1340       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     1341       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     1342       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     1343       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    13371344       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1338        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1339        1,     1,     2,     2,     3,     3,     1,     3,     1,     2,
    1340        2,     2,     4,     4,     4,     4,     1,     2,     2,     3,
    1341        1,     2,     2,     1,     2,     2,     3,     1,     2,     2,
    1342        1,     1,     4,     2,     5,     7,     2,     2,     2,     1,
    1343        2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
    1344        4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
    1345        5,     6,     2,     2,     4,     0,     2,     0,     1,     1,
    1346        1,     5,     5,     5,     1,     5,     5,     9,     1,     5,
    1347        0,     1,     1,     5,     1,     1,     5,     5,     1,     3,
    1348        3,     4,     1,     1,     1,     1,     2,     1,     3,     3,
    1349        1,     2,     1,     3,     1,     1,     1,     1,     1,     1,
    1350        1,     1,     1,     1,     1,     2,     1,     1,     1,     2,
    1351        0,     2,     2,     1,     4,     0,     1,     2,     3,     4,
    1352        2,     2,     1,     2,     1,     2,     5,     5,     7,     6,
    1353        1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
    1354        0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
    1355       13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
    1356        1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
    1357        1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
    1358        1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
    1359        3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
    1360        1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
    1361        3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
     1345       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     1346       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     1347       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     1348       2,     1,     1,     4,     2,     5,     7,     2,     2,     2,
     1349       1,     2,     2,     3,     2,     3,     1,     2,     3,     2,
     1350       2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
     1351       2,     5,     6,     2,     2,     4,     0,     2,     0,     1,
     1352       1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
     1353       5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
     1354       3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
     1355       3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
     1356       1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
     1357       2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
     1358       4,     2,     2,     1,     2,     1,     2,     5,     5,     7,
     1359       6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
     1360       4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
     1361       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
     1362       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
     1363       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
     1364       1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
     1365       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
     1366       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
     1367       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1368       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1369       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
     1370       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
     1371       6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
    13621372       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1363        3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
    1364        3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
    1365        3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
    1366        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    1367        6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
    1368        2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
    1369        2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
    1370        1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
    1371        4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
    1372        6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
    1373        1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
    1374        2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
    1375        2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
    1376        1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
    1377        3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
    1378        2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
    1379        2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
    1380        4,     2,     5,     5,     6,     6,     0,     1,     0,     2
     1373       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
     1374       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1375       2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
     1376       8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1377       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
     1378       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
     1379       3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
     1380       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
     1381       1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
     1382       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
     1383       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
     1384       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
     1385       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
     1386       3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
     1387       2
    13811388};
    13821389
     
    13861393static const yytype_uint16 yydefact[] =
    13871394{
    1388      292,   292,   313,   311,   314,   312,   315,   316,   298,   300,
    1389      299,     0,   301,   327,   319,   324,   322,   323,   321,   320,
    1390      325,   326,   328,   329,   330,   544,   544,   544,     0,     0,
    1391        0,   292,   218,   302,   317,   318,     7,   357,     0,     8,
    1392       13,    14,     0,     2,   292,   562,     9,   522,   520,   245,
    1393        3,   450,     3,   258,     0,     3,     3,     3,   246,     3,
    1394        0,     0,     0,   293,   294,   296,   292,   305,   308,   310,
    1395      338,   284,   331,   336,   285,   346,   286,   353,   350,   360,
    1396        0,     0,   361,   287,   470,   474,     3,     3,     0,     2,
    1397      516,   521,   526,   297,     0,     0,   544,   574,   544,     2,
    1398      585,   586,   587,   292,     0,   728,   729,     0,    12,   292,
    1399        0,   268,   269,     0,   293,   288,   289,   290,   291,   523,
    1400      303,   389,   545,   546,   367,   368,    12,   441,   442,    11,
    1401      437,   440,     0,   500,   495,   486,   441,   442,     0,     0,
    1402      525,   219,     0,   292,     0,     0,     0,     0,     0,     0,
    1403        0,     0,   292,   292,     2,     0,   730,   293,   579,   591,
    1404      734,   727,   725,   732,     0,     0,     0,   252,     2,     0,
    1405      529,   435,   436,   434,     0,     0,     0,     0,   544,     0,
    1406      631,   632,     0,     0,   542,   538,   544,   559,   544,   544,
    1407      539,     2,   540,   544,   598,   544,   544,   601,     0,     0,
    1408        0,   292,   292,   311,   358,     2,   292,   259,   295,   306,
    1409      339,   351,   475,     0,     2,     0,   450,   260,   293,   332,
    1410      347,   354,   471,     0,     2,     0,   309,   333,   340,   341,
    1411        0,   348,   352,   355,   359,   442,   292,   292,   363,   366,
    1412        0,   392,   472,   476,     0,     0,     0,     1,   292,     2,
    1413      527,   573,   575,   292,     2,   738,   293,   741,   542,   542,
    1414      293,     0,     0,     0,   271,   544,   539,     2,   292,     0,
    1415        0,   292,   547,     2,   498,     2,   551,     0,     0,     0,
    1416        0,     0,    17,    57,     4,     5,     6,    15,     0,     0,
    1417        0,   292,     2,     0,   292,    63,    64,    65,    66,    47,
    1418       18,    48,    21,    46,    67,     0,    70,    74,    77,    80,
    1419       85,    88,    90,    92,    94,    96,    98,   103,   492,   748,
    1420      448,   491,     0,   446,   447,     0,   563,   578,   581,   584,
    1421      590,   593,   596,   357,     0,     2,   736,     0,   292,   739,
    1422        2,   292,     3,   422,     0,   430,   293,   292,   305,   331,
    1423      285,   346,   353,     3,     3,   404,   408,   418,   423,   470,
    1424      292,   424,   703,   704,   292,   425,   427,   292,     2,   580,
    1425      592,   726,     2,     2,   247,     2,   455,     0,   453,   452,
    1426      451,   139,     2,     2,   249,     2,     2,   248,     2,   279,
    1427        2,   280,     0,   278,     0,     0,     0,     0,     0,     0,
    1428        0,     0,     0,   564,   603,     0,   450,     2,   558,   567,
    1429      657,   560,   561,   530,   292,     2,   597,   606,   599,   600,
    1430        0,   274,   292,   292,   337,   293,     0,   293,     0,   292,
    1431      731,   735,   733,   531,   292,   542,   253,   261,   307,     0,
    1432        2,   532,   292,   496,   334,   335,   281,   349,   356,     0,
    1433      292,     2,   381,   292,   369,     0,     0,   375,   725,   292,
    1434      746,   395,     0,   473,   497,   250,   251,   517,   292,   432,
    1435        0,   292,   235,     0,     2,   237,     0,   293,     0,   255,
    1436        2,   256,   276,     0,     0,     2,   292,   542,   292,   483,
    1437      485,   484,     0,     0,   748,     0,   292,     0,   292,   487,
    1438      292,   557,   555,   556,   554,     0,   549,   552,     0,     0,
    1439      292,    55,    67,    51,   292,    60,   292,   292,    49,    50,
    1440       62,     2,   125,     0,     0,   444,     0,   443,   109,   292,
    1441       53,    54,    16,     0,    28,    29,    34,     2,     0,    34,
    1442      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
    1443        0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
     1395     293,   293,   314,   312,   315,   313,   316,   317,   299,   301,
     1396     300,     0,   302,   328,   320,   325,   323,   324,   322,   321,
     1397     326,   327,   329,   330,   331,   545,   545,   545,     0,     0,
     1398       0,   293,   219,   303,   318,   319,     7,   358,     0,     8,
     1399      13,    14,     0,     2,   293,   563,     9,   523,   521,   246,
     1400       3,   451,     3,   259,     0,     3,     3,     3,   247,     3,
     1401       0,     0,     0,   294,   295,   297,   293,   306,   309,   311,
     1402     339,   285,   332,   337,   286,   347,   287,   354,   351,   361,
     1403       0,     0,   362,   288,   471,   475,     3,     3,     0,     2,
     1404     517,   522,   527,   298,     0,     0,   545,   575,   545,     2,
     1405     586,   587,   588,   293,     0,   729,   730,     0,    12,   293,
     1406       0,   269,   270,     0,   294,   289,   290,   291,   292,   524,
     1407     304,   390,   546,   547,   368,   369,    12,   442,   443,    11,
     1408     438,   441,     0,   501,   496,   487,   442,   443,     0,     0,
     1409     526,   220,     0,   293,     0,     0,     0,     0,     0,     0,
     1410       0,     0,   293,   293,     2,     0,   731,   294,   580,   592,
     1411     735,   728,   726,   733,     0,     0,     0,   253,     2,     0,
     1412     530,   436,   437,   435,     0,     0,     0,     0,   545,     0,
     1413     632,   633,     0,     0,   543,   539,   545,   560,   545,   545,
     1414     540,     2,   541,   545,   599,   545,   545,   602,     0,     0,
     1415       0,   293,   293,   312,   359,     2,   293,   260,   296,   307,
     1416     340,   352,   476,     0,     2,     0,   451,   261,   294,   333,
     1417     348,   355,   472,     0,     2,     0,   310,   334,   341,   342,
     1418       0,   349,   353,   356,   360,   443,   293,   293,   364,   367,
     1419       0,   393,   473,   477,     0,     0,     0,     1,   293,     2,
     1420     528,   574,   576,   293,     2,   739,   294,   742,   543,   543,
     1421     294,     0,     0,     0,   272,   545,   540,     2,   293,     0,
     1422       0,   293,   548,     2,   499,     2,   552,     0,     0,     0,
     1423       0,     0,     0,    17,    58,     4,     5,     6,    15,     0,
     1424       0,     0,   293,     2,     0,   293,    64,    65,    66,    67,
     1425      47,    18,    48,    21,    46,    68,     0,    71,    75,    78,
     1426      81,    86,    89,    91,    93,    95,    97,    99,   104,   493,
     1427     749,   449,   492,     0,   447,   448,     0,   564,   579,   582,
     1428     585,   591,   594,   597,   358,     0,     2,   737,     0,   293,
     1429     740,     2,   293,     3,   423,     0,   431,   294,   293,   306,
     1430     332,   286,   347,   354,     3,     3,   405,   409,   419,   424,
     1431     471,   293,   425,   704,   705,   293,   426,   428,   293,     2,
     1432     581,   593,   727,     2,     2,   248,     2,   456,     0,   454,
     1433     453,   452,   140,     2,     2,   250,     2,     2,   249,     2,
     1434     280,     2,   281,     0,   279,     0,     0,     0,     0,     0,
     1435       0,     0,     0,     0,   565,   604,     0,   451,     2,   559,
     1436     568,   658,   561,   562,   531,   293,     2,   598,   607,   600,
     1437     601,     0,   275,   293,   293,   338,   294,     0,   294,     0,
     1438     293,   732,   736,   734,   532,   293,   543,   254,   262,   308,
     1439       0,     2,   533,   293,   497,   335,   336,   282,   350,   357,
     1440       0,   293,     2,   382,   293,   370,     0,     0,   376,   726,
     1441     293,   747,   396,     0,   474,   498,   251,   252,   518,   293,
     1442     433,     0,   293,   236,     0,     2,   238,     0,   294,     0,
     1443     256,     2,   257,   277,     0,     0,     2,   293,   543,   293,
     1444     484,   486,   485,     0,     0,   749,     0,   293,     0,   293,
     1445     488,   293,   558,   556,   557,   555,     0,   550,   553,     0,
     1446       0,   293,    55,   293,    68,    51,   293,    61,   293,   293,
     1447      49,    50,    63,     2,   126,     0,     0,   445,     0,   444,
     1448     110,   293,    53,    54,    16,     0,    28,    29,    34,     2,
     1449       0,    34,   116,   117,   118,   119,   120,   121,   122,   123,
     1450     124,   125,     0,     0,    52,     0,     0,     0,     0,     0,
    14441451       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1445        0,     0,     0,   106,     2,   643,   449,   640,   544,   544,
    1446      648,   477,   292,     2,   582,   583,     0,   594,   595,     0,
    1447        2,   737,   740,   109,   292,     2,   292,     0,   705,   293,
    1448      709,   700,   701,   707,     0,     2,     2,   665,   544,   748,
    1449      614,   544,   544,   748,   544,   628,   544,   544,   679,   431,
    1450      662,   544,   544,   670,   677,   292,   426,   293,     0,     0,
    1451      292,   715,   293,   720,   748,   712,   292,   717,   748,   292,
    1452      292,   292,     0,   109,     0,    17,     5,     2,     0,     0,
    1453      456,   746,     0,     0,   462,   239,     0,   292,     0,     0,
    1454        0,   542,   566,   570,   572,   602,   605,   609,   612,   565,
    1455      604,     0,   282,   655,     0,   292,   275,     0,     0,     0,
    1456        0,   273,     2,     0,   257,   533,   292,     0,     0,     0,
    1457        0,   292,   292,     0,     0,   689,   379,   382,   386,   544,
    1458      386,   694,   385,   686,   544,   544,   362,   370,   378,   371,
    1459      544,   373,   376,   292,   747,     0,     0,   393,   746,   293,
    1460        3,   411,     3,   415,   414,   588,     0,   528,   292,     3,
    1461        3,   292,   430,   293,     3,   424,   425,     2,     0,     0,
    1462        0,   482,   304,   292,   478,   480,     3,     2,     2,     0,
    1463      499,     3,     0,   551,   127,     0,     0,   220,     0,     0,
    1464        2,     0,     0,    35,     0,     0,   109,   292,    19,     0,
    1465       20,     0,   689,   445,     0,   107,     3,     2,    26,     2,
    1466        0,    32,     0,     2,    24,     0,   104,   105,    71,    72,
    1467       73,    75,    76,    78,    79,    83,    84,    81,    82,    86,
    1468       87,    89,    91,    93,    95,    97,     0,     0,   749,   292,
    1469        0,     0,     0,   644,   645,   641,   642,   494,   493,   292,
    1470        0,     3,   292,   711,   292,   716,   293,   292,   292,   292,
    1471      659,   702,   658,     2,   292,     0,     0,     0,     0,     0,
    1472        0,     0,     0,   680,     0,   666,   617,   633,   667,     2,
    1473      613,   620,   428,   615,   616,   429,     2,   627,   636,   629,
    1474      630,   663,   664,   678,   706,   710,   708,   748,   266,     2,
    1475      742,     2,   419,   714,   719,   420,     0,   398,     3,     3,
    1476        3,     3,   450,     3,     0,     2,   465,   461,   747,     0,
    1477      457,   464,     2,   460,   463,     0,   292,   240,   262,     3,
    1478      270,   272,     0,   450,     2,   568,   569,     2,   607,   608,
    1479        0,   656,   534,     3,   343,   342,   345,   344,   292,   535,
    1480        0,   536,   292,   372,   374,     2,     0,     0,     0,     0,
    1481      102,   388,   690,   691,   383,   387,   384,   687,   688,   377,
    1482      381,   364,   395,   390,   396,     0,     0,     0,   433,   238,
    1483        0,     0,     3,     2,   665,   426,     0,   524,     0,   748,
    1484      486,     0,   292,   292,   292,     0,   548,   550,   128,     0,
    1485        0,   213,     0,     0,     0,   221,   222,    56,    61,   292,
    1486        0,    59,    58,     0,   126,   690,   455,    68,    69,   108,
    1487      113,     3,   107,     0,     0,     0,    23,    34,     3,     0,
    1488       31,   100,     0,     3,   647,   651,   654,   646,     3,   589,
    1489        3,   713,   718,     2,   292,     3,     3,   293,     0,     3,
    1490      619,   623,   626,   635,   669,   673,   676,   292,     3,   618,
    1491      634,   668,   292,   292,   421,   292,   292,   743,     0,     0,
    1492        0,     0,   254,     0,   102,     0,     3,     3,     0,   458,
    1493        0,   454,     0,     0,   243,   292,     0,     0,   127,     0,
    1494        0,     0,     0,     0,   127,     0,     0,   107,   107,     2,
    1495        0,     0,     0,     3,   129,   130,     2,   141,   131,   132,
    1496      133,   134,   135,   136,   143,   145,     0,     0,     0,   283,
    1497      292,   292,   544,     0,   537,   292,   109,   693,   697,   699,
    1498      692,   380,   394,   391,   576,     2,   661,   660,     0,   666,
    1499        2,   479,   481,   501,     3,   509,   510,     0,     2,   505,
    1500        3,     3,     0,     0,   553,   220,     0,     0,     0,   220,
    1501        0,     3,    36,   746,   107,     0,     3,   658,    41,     3,
    1502       39,     3,    33,     0,     3,    99,   101,     0,     2,   649,
    1503      650,     0,     0,   292,     0,     0,     0,     3,   635,     0,
    1504        2,   621,   622,     2,   637,     2,   671,   672,     0,     0,
    1505        3,     0,     3,     3,     3,     3,   406,   405,   409,     2,
    1506        2,   745,   744,   110,     0,     0,     0,     0,     3,   459,
    1507        3,     0,   241,   144,     3,   293,   292,     0,     0,     0,
    1508        0,     2,   189,     0,   187,     0,     0,     0,     0,     0,
    1509        0,     0,     0,   109,     0,   544,   149,   146,   292,     0,
    1510        0,   265,   277,     3,     3,   543,   610,   365,     2,   695,
    1511      696,   292,   264,   292,     0,   512,   489,   292,     0,     0,
    1512      488,   503,     0,     0,     0,   214,     0,   223,   107,     0,
    1513        0,   114,   111,     0,     0,     0,     0,     0,     0,    22,
    1514        0,   652,   292,   577,   263,   721,   722,   723,     0,   674,
    1515      292,   292,   292,     3,     3,     0,   682,     0,     0,     0,
    1516        0,   292,   292,     3,   541,   466,   467,     0,     0,   244,
    1517      293,     0,     0,     0,     0,   292,   190,   188,     0,   185,
    1518      191,     0,     0,     0,     0,   195,   198,   196,   192,     0,
    1519      193,    34,   127,   142,   140,   242,     0,     0,   292,   413,
    1520      417,   416,     0,   506,     2,   507,     2,   508,   502,   292,
    1521      226,     0,   224,     0,   226,     3,   658,    30,   112,     2,
    1522       44,     2,    42,    40,    27,   110,    25,     3,   724,     3,
    1523        3,     3,     0,     0,   681,   683,   624,   638,   267,     2,
    1524      403,     3,   402,     0,   469,   466,   127,     0,     0,   127,
    1525        3,     0,   127,   186,     0,     2,     2,   207,   197,     0,
    1526        0,     0,     0,   138,   571,   611,     3,     2,     0,     0,
    1527        2,   227,     0,     0,   215,     0,     0,     0,     0,     0,
    1528        0,     0,     0,     0,   684,   685,   292,     0,   468,   150,
    1529        0,     0,     2,   163,   127,   152,     0,   180,     0,   127,
    1530        0,     2,   154,     0,     2,     0,     2,     2,     2,   194,
    1531       31,     0,   292,   511,   513,   504,     0,     0,     0,     0,
    1532      112,    37,     3,     3,   653,   625,   639,   675,   407,   127,
    1533      156,   159,     0,   158,   162,     3,   165,   164,     0,   127,
    1534      182,   127,     3,     0,   292,     0,   292,     0,     2,     0,
    1535        2,   137,   698,     2,   228,   229,     0,   225,   216,     0,
    1536        0,     0,   151,     0,     0,   161,   231,   166,     2,   233,
    1537      181,     0,   184,   170,   199,     3,   208,   212,   201,     3,
    1538        0,   292,     0,   292,     0,     0,     0,    38,    45,    43,
    1539      157,   160,   127,     0,   167,   292,   127,   127,     0,   171,
    1540        0,     0,   689,   209,   210,   211,     0,   200,     3,   202,
    1541        3,   292,   217,   230,   147,   168,   153,   127,   234,   183,
    1542      178,   176,   172,   155,   127,     0,   690,     0,     0,     0,
    1543        0,   148,   169,   179,   173,   177,   176,   174,     3,     3,
    1544        0,     0,   490,   175,   203,   205,     3,     3,   204,   206
     1452       0,     0,     0,     0,     0,   107,     2,   644,   450,   641,
     1453     545,   545,   649,   478,   293,     2,   583,   584,     0,   595,
     1454     596,     0,     2,   738,   741,   110,   293,     2,   293,     0,
     1455     706,   294,   710,   701,   702,   708,     0,     2,     2,   666,
     1456     545,   749,   615,   545,   545,   749,   545,   629,   545,   545,
     1457     680,   432,   663,   545,   545,   671,   678,   293,   427,   294,
     1458       0,     0,   293,   716,   294,   721,   749,   713,   293,   718,
     1459     749,   293,   293,   293,     0,   110,     0,    17,     5,     2,
     1460       0,     0,   457,   747,     0,     0,   463,   240,     0,   293,
     1461       0,     0,     0,   543,   567,   571,   573,   603,   606,   610,
     1462     613,   566,   605,     0,   283,   656,     0,   293,   276,     0,
     1463       0,     0,     0,   274,     2,     0,   258,   534,   293,     0,
     1464       0,     0,     0,   293,   293,     0,     0,   690,   380,   383,
     1465     387,   545,   387,   695,   386,   687,   545,   545,   363,   371,
     1466     379,   372,   545,   374,   377,   293,   748,     0,     0,   394,
     1467     747,   294,     3,   412,     3,   416,   415,   589,     0,   529,
     1468     293,     3,     3,   293,   431,   294,     3,   425,   426,     2,
     1469       0,     0,     0,   483,   305,   293,   479,   481,     3,     2,
     1470       2,     0,   500,     3,     0,   552,   128,     0,     0,   221,
     1471       0,     0,     0,     2,     0,     0,    35,     0,     0,   110,
     1472     293,    19,     0,    20,     0,   690,   446,     0,   108,     3,
     1473       2,    26,     2,     0,    32,     0,     2,    24,     0,   105,
     1474     106,    72,    73,    74,    76,    77,    79,    80,    84,    85,
     1475      82,    83,    87,    88,    90,    92,    94,    96,    98,     0,
     1476       0,   750,   293,     0,     0,     0,   645,   646,   642,   643,
     1477     495,   494,   293,     0,     3,   293,   712,   293,   717,   294,
     1478     293,   293,   293,   660,   703,   659,     2,   293,     0,     0,
     1479       0,     0,     0,     0,     0,     0,   681,     0,   667,   618,
     1480     634,   668,     2,   614,   621,   429,   616,   617,   430,     2,
     1481     628,   637,   630,   631,   664,   665,   679,   707,   711,   709,
     1482     749,   267,     2,   743,     2,   420,   715,   720,   421,     0,
     1483     399,     3,     3,     3,     3,   451,     3,     0,     2,   466,
     1484     462,   748,     0,   458,   465,     2,   461,   464,     0,   293,
     1485     241,   263,     3,   271,   273,     0,   451,     2,   569,   570,
     1486       2,   608,   609,     0,   657,   535,     3,   344,   343,   346,
     1487     345,   293,   536,     0,   537,   293,   373,   375,     2,     0,
     1488       0,     0,     0,   103,   389,   691,   692,   384,   388,   385,
     1489     688,   689,   378,   382,   365,   396,   391,   397,     0,     0,
     1490       0,   434,   239,     0,     0,     3,     2,   666,   427,     0,
     1491     525,     0,   749,   487,     0,   293,   293,   293,     0,   549,
     1492     551,   129,     0,     0,   214,     0,     0,     0,   222,   223,
     1493      56,     0,    62,   293,     0,    60,    59,     0,   127,   691,
     1494     456,    69,    70,   109,   114,     3,   108,     0,     0,     0,
     1495      23,    34,     3,     0,    31,   101,     0,     3,   648,   652,
     1496     655,   647,     3,   590,     3,   714,   719,     2,   293,     3,
     1497       3,   294,     0,     3,   620,   624,   627,   636,   670,   674,
     1498     677,   293,     3,   619,   635,   669,   293,   293,   422,   293,
     1499     293,   744,     0,     0,     0,     0,   255,     0,   103,     0,
     1500       3,     3,     0,   459,     0,   455,     0,     0,   244,   293,
     1501       0,     0,   128,     0,     0,     0,     0,     0,   128,     0,
     1502       0,   108,   108,     2,     0,     0,     0,     3,   130,   131,
     1503       2,   142,   132,   133,   134,   135,   136,   137,   144,   146,
     1504       0,     0,     0,   284,   293,   293,   545,     0,   538,   293,
     1505     110,   694,   698,   700,   693,   381,   395,   392,   577,     2,
     1506     662,   661,     0,   667,     2,   480,   482,   502,     3,   510,
     1507     511,     0,     2,   506,     3,     3,     0,     0,   554,   221,
     1508       0,     0,     0,   221,     0,     0,     3,    36,   747,   108,
     1509       0,     3,   659,    41,     3,    39,     3,    33,     0,     3,
     1510     100,   102,     0,     2,   650,   651,     0,     0,   293,     0,
     1511       0,     0,     3,   636,     0,     2,   622,   623,     2,   638,
     1512       2,   672,   673,     0,     0,     3,     0,     3,     3,     3,
     1513       3,   407,   406,   410,     2,     2,   746,   745,   111,     0,
     1514       0,     0,     0,     3,   460,     3,     0,   242,   145,     3,
     1515     294,   293,     0,     0,     0,     0,     2,   190,     0,   188,
     1516       0,     0,     0,     0,     0,     0,     0,     0,   110,     0,
     1517     545,   150,   147,   293,     0,     0,   266,   278,     3,     3,
     1518     544,   611,   366,     2,   696,   697,   293,   265,   293,     0,
     1519     513,   490,   293,     0,     0,   489,   504,     0,     0,     0,
     1520     215,     0,   224,    57,   108,     0,     0,   115,   112,     0,
     1521       0,     0,     0,     0,     0,    22,     0,   653,   293,   578,
     1522     264,   722,   723,   724,     0,   675,   293,   293,   293,     3,
     1523       3,     0,   683,     0,     0,     0,     0,   293,   293,     3,
     1524     542,   467,   468,     0,     0,   245,   294,     0,     0,     0,
     1525       0,   293,   191,   189,     0,   186,   192,     0,     0,     0,
     1526       0,   196,   199,   197,   193,     0,   194,    34,   128,   143,
     1527     141,   243,     0,     0,   293,   414,   418,   417,     0,   507,
     1528       2,   508,     2,   509,   503,   293,   227,     0,   225,     0,
     1529     227,     3,   659,    30,   113,     2,    44,     2,    42,    40,
     1530      27,   111,    25,     3,   725,     3,     3,     3,     0,     0,
     1531     682,   684,   625,   639,   268,     2,   404,     3,   403,     0,
     1532     470,   467,   128,     0,     0,   128,     3,     0,   128,   187,
     1533       0,     2,     2,   208,   198,     0,     0,     0,     0,   139,
     1534     572,   612,     3,     2,     0,     0,     2,   228,     0,     0,
     1535     216,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1536     685,   686,   293,     0,   469,   151,     0,     0,     2,   164,
     1537     128,   153,     0,   181,     0,   128,     0,     2,   155,     0,
     1538       2,     0,     2,     2,     2,   195,    31,     0,   293,   512,
     1539     514,   505,     0,     0,     0,     0,   113,    37,     3,     3,
     1540     654,   626,   640,   676,   408,   128,   157,   160,     0,   159,
     1541     163,     3,   166,   165,     0,   128,   183,   128,     3,     0,
     1542     293,     0,   293,     0,     2,     0,     2,   138,   699,     2,
     1543     229,   230,     0,   226,   217,     0,     0,     0,   152,     0,
     1544       0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
     1545     200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
     1546       0,     0,     0,    38,    45,    43,   158,   161,   128,     0,
     1547     168,   293,   128,   128,     0,   172,     0,     0,   690,   210,
     1548     211,   212,     0,   201,     3,   203,     3,   293,   218,   231,
     1549     148,   169,   154,   128,   235,   184,   179,   177,   173,   156,
     1550     128,     0,   691,     0,     0,     0,     0,   149,   170,   180,
     1551     174,   178,   177,   175,     3,     3,     0,     0,   491,   176,
     1552     204,   206,     3,     3,   205,   207
    15451553};
    15461554
     
    15481556static const yytype_int16 yydefgoto[] =
    15491557{
    1550       -1,   834,   472,   299,    45,   130,   131,   300,   301,   302,
    1551      303,   780,   781,  1139,  1140,   304,   305,   306,   307,   308,
    1552      309,   310,   311,   312,   313,   314,   315,   316,   317,  1045,
    1553      522,   990,   319,   991,   551,   968,  1072,  1534,  1074,  1075,
    1554     1076,  1077,  1535,  1078,  1079,  1451,  1452,  1413,  1414,  1415,
    1555     1513,  1514,  1518,  1519,  1554,  1555,  1080,  1371,  1081,  1082,
    1556     1305,  1306,  1307,  1495,  1083,   142,   974,   975,   976,  1392,
    1557     1476,  1487,  1488,   473,   474,   896,   897,  1053,    48,    49,
    1558       50,    51,    52,   343,   155,    55,    56,    57,    58,    59,
    1559      345,    61,    62,   260,    64,    65,   271,   347,   348,    68,
    1560       69,    70,    71,   115,    73,   201,   350,   116,    76,   117,
    1561       78,    79,    80,   453,   454,   455,   456,   696,   934,   697,
    1562       81,    82,   460,   717,   876,   877,   353,   354,   720,   721,
    1563      722,   355,   356,   357,   358,   470,   337,   132,   133,   526,
    1564      321,   167,   650,   651,   652,   653,   654,    83,   118,    85,
    1565      493,   494,   960,   495,   274,   499,   322,    86,   134,   135,
    1566       87,  1329,  1118,  1119,  1120,  1121,    88,    89,   738,    90,
    1567      270,    91,    92,   184,  1047,   684,   408,   122,    93,   505,
    1568      506,   507,   185,   265,   187,   188,   189,   266,    96,    97,
     1558      -1,   837,   473,   300,    45,   130,   131,   301,   302,   303,
     1559     304,   783,   784,  1144,  1145,   305,   306,   307,   308,   309,
     1560     310,   311,   312,   313,   314,   315,   316,   317,   318,  1049,
     1561     524,   994,   320,   995,   553,   971,  1076,  1540,  1078,  1079,
     1562    1080,  1081,  1541,  1082,  1083,  1457,  1458,  1419,  1420,  1421,
     1563    1519,  1520,  1524,  1525,  1560,  1561,  1084,  1377,  1085,  1086,
     1564    1311,  1312,  1313,  1501,  1087,   142,   977,   978,   979,  1398,
     1565    1482,  1493,  1494,   474,   475,   899,   900,  1057,    48,    49,
     1566      50,    51,    52,   344,   155,    55,    56,    57,    58,    59,
     1567     346,    61,    62,   260,    64,    65,   271,   348,   349,    68,
     1568      69,    70,    71,   115,    73,   201,   351,   116,    76,   117,
     1569      78,    79,    80,   454,   455,   456,   457,   698,   937,   699,
     1570      81,    82,   461,   719,   879,   880,   354,   355,   722,   723,
     1571     724,   356,   357,   358,   359,   471,   338,   132,   133,   528,
     1572     322,   167,   652,   653,   654,   655,   656,    83,   118,    85,
     1573     494,   495,   963,   496,   274,   500,   323,    86,   134,   135,
     1574      87,  1335,  1122,  1123,  1124,  1125,    88,    89,   740,    90,
     1575     270,    91,    92,   184,  1051,   686,   409,   122,    93,   506,
     1576     507,   508,   185,   265,   187,   188,   189,   266,    96,    97,
    15691577      98,    99,   100,   101,   102,   192,   193,   194,   195,   196,
    1570      846,   610,   611,   612,   613,   197,   615,   616,   617,   576,
    1571      577,   578,   579,   701,   103,   619,   620,   621,   622,   623,
    1572      624,   933,   703,   704,   705,   600,   361,   362,   363,   364,
    1573      323,   161,   105,   106,   107,   366,   715,   573
     1578     849,   612,   613,   614,   615,   197,   617,   618,   619,   578,
     1579     579,   580,   581,   703,   103,   621,   622,   623,   624,   625,
     1580     626,   936,   705,   706,   707,   602,   362,   363,   364,   365,
     1581     324,   161,   105,   106,   107,   367,   717,   575
    15741582};
    15751583
    15761584/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15771585   STATE-NUM.  */
    1578 #define YYPACT_NINF -1362
     1586#define YYPACT_NINF -1361
    15791587static const yytype_int16 yypact[] =
    15801588{
    1581     5182,  8315, -1362,    65, -1362, -1362, -1362, -1362, -1362, -1362,
    1582    -1362,    58, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1583    -1362, -1362, -1362, -1362, -1362,    82,    82,    82,   907,   818,
    1584      118,  6817,   261, -1362, -1362, -1362, -1362, -1362,   194, -1362,
    1585    -1362, -1362,   762,   245,  3620, -1362, -1362, -1362, -1362, -1362,
    1586    -1362,   110,   286, -1362,   690, -1362, -1362, -1362, -1362,   307,
    1587     1768,   457,   101,  6932, -1362, -1362,  4184,   407, -1362, -1362,
    1588    -1362,  1616,   474,  5211,   816,  1213,  1616,  2188, -1362, -1362,
    1589      386,   368, -1362,  1616,  2312, -1362,   370, -1362,   505,   519,
    1590    -1362, -1362, -1362, -1362,   390,   286,    82, -1362,    82, -1362,
    1591    -1362, -1362, -1362,  8539,   690, -1362, -1362,   690, -1362,  9099,
    1592      393, -1362, -1362,  2123,  9180, -1362,   951,   951,   951, -1362,
    1593    -1362, -1362,    82, -1362, -1362, -1362,   455,   470,   487, -1362,
    1594    -1362, -1362,   492, -1362, -1362, -1362, -1362, -1362,   517,   553,
    1595    -1362, -1362,    76,  8285,  1659,   753,   483,   539,   586,   596,
    1596      599,   606,  7594,  6229,   641,   646, -1362,  8650, -1362, -1362,
    1597    -1362, -1362,   673, -1362,   126,  3695,  3695, -1362,   682,   235,
    1598    -1362, -1362, -1362, -1362,   693,   419,   442,   449,    82,   685,
    1599    -1362, -1362,  1768,  2932,   768, -1362,    90, -1362,    82,    82,
    1600      286, -1362, -1362,   121, -1362,    82,    82, -1362,  3090,   696,
    1601      779,   951,  6612, -1362, -1362,   728,  3620, -1362, -1362,  1616,
    1602    -1362, -1362, -1362,   286, -1362,   690,   110, -1362,  7263, -1362,
    1603      951,   951,   951,   286, -1362,   907, -1362,  5761, -1362, -1362,
    1604      745,   951, -1362,   951, -1362,   194,  8285,  8427,   777, -1362,
    1605      818,   866,   951, -1362,   907,   775,   789, -1362,  6817,   874,
    1606    -1362, -1362, -1362,  5519, -1362, -1362,  6022, -1362,   768,   173,
    1607     9180, 10174,  2123,  3090, -1362,   265, -1362, -1362,  9099,   690,
    1608      879,  6376, -1362, -1362,   507, -1362, 10523,   887,   920,  3349,
    1609    10328, 10347, -1362,   895, -1362, -1362, -1362, -1362, 10405, 10405,
    1610      874,  7949,   897, 10328,  8397, -1362, -1362, -1362, -1362, -1362,
    1611    -1362,   930, -1362,   797,  2723, 10328, -1362,   688,   806,   843,
    1612      301,   862,   899,   893,   906,   932,    20, -1362, -1362,   934,
    1613      593, -1362,   402, -1362, -1362,  1659, -1362, -1362,   610,   919,
    1614    -1362,   621,   919,   946,   194, -1362, -1362,   962,  8539, -1362,
    1615      961,  8061, -1362, -1362,  1747,  1347,  7675,  6612,  1616, -1362,
    1616     1616,   951,   951, -1362, -1362, -1362, -1362, -1362, -1362,   951,
    1617     9209,   690, -1362, -1362,  9247,  1940, -1362,  9032, -1362, -1362,
    1618    -1362, -1362, -1362, -1362, -1362,   966,  4295, 10328, -1362, -1362,
    1619    -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1620    -1362, -1362,  2123, -1362,   446,   964,   972,   978,   719,   979,
    1621      987,   990,  2932, -1362, -1362,   994,   110,   992, -1362, -1362,
    1622      995, -1362, -1362, -1362,  5519, -1362, -1362, -1362, -1362, -1362,
    1623     3090, -1362,  8285,  8285, -1362,   951,  2123,  6731,   690,  7745,
    1624    -1362, -1362, -1362, -1362,  5519,   173, -1362, -1362,  1616,   286,
    1625    -1362, -1362,  5519, -1362,  6258, -1362, -1362,   951,   951,   484,
    1626     9317,   998,  1130,  4716, -1362,   459,   467,   818, -1362,  8427,
    1627      991,   980,   818,   951, -1362, -1362, -1362, -1362,  9608, -1362,
    1628      567,  6494, -1362,   286,   999, -1362,  2123, 10603, 10193, -1362,
    1629    -1362, -1362, -1362,   793,  3090, -1362,  7815,   768,  6702, -1362,
    1630    -1362, -1362,   842,   625,   934,   818,  6376,   494,  9099, -1362,
    1631     6376, -1362, -1362, -1362, -1362,   636, -1362,  1005,   920,   328,
    1632     7949, -1362, -1362, -1362,  7949, -1362,  8173,  7949, -1362, -1362,
    1633    -1362,  1004, -1362,   644,  1013,   617,  1014, -1362,  8787,  5845,
    1634    -1362, -1362, -1362,    93, -1362, -1362, 10251, -1362,   164, 10251,
    1635    -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1636    10174, 10174, -1362, 10328, 10328, 10328, 10328, 10328, 10328, 10328,
    1637    10328, 10328, 10328, 10328, 10328, 10328, 10328, 10328, 10328, 10328,
    1638    10328,  4995, 10174, -1362,   593,  1220, -1362, -1362,    82,    82,
    1639    -1362, -1362,  8285, -1362, -1362,   995,   874, -1362,   995, 10270,
    1640    -1362, -1362, -1362,  5874,  5845,  1015,  8509,  1017, -1362,  9355,
    1641    -1362, -1362,   673, -1362,  1019,   506,  1020,  2624,   288,   934,
    1642    -1362,    82,    82,   934,   294, -1362,    82,    82,   995, -1362,
    1643    -1362,    82,    82, -1362,   919,  9384,   690, 10744,   254,   525,
    1644     9384, -1362,  6140, -1362,   934, -1362,  9209, -1362,   255,  7377,
    1645     7377,  7377,   690, -1362, 10097,  1009,   565,   966,   409,  1022,
    1646    -1362,  1018,  3695,   612, -1362,  1103,   690,  7377,   874,  2123,
    1647      874,   768,   628,   919, -1362, -1362,   744,   919, -1362, -1362,
    1648    -1362,   920, -1362,   919,   286,  9608, -1362,   659,  1026,   668,
    1649     1031, -1362,  1032,   286, -1362, -1362,  5519,   286,  1029,   497,
    1650      511,  9465,  6347,  1465, 10328,  2769, -1362, -1362,  1039,    94,
    1651     1039, -1362, -1362, -1362,    82,    82, -1362, -1362,   818, -1362,
    1652       82, -1362, -1362,  8924,   818,  1033, 10328, -1362,   991, 10744,
    1653    -1362, -1362,  1048, -1362, -1362, -1362,   874, -1362, 10674, 10328,
    1654    -1362,  7377,   639,  7675, -1362, -1362,   673,  1034,  1044,   842,
    1655     1987, -1362, -1362,  6376, -1362, -1362,  1045, -1362, -1362,  1051,
    1656    -1362,  1045,  1054, 10523, 10174,   142,  1040,    53,  1055,  1056,
    1657      897,  1057,  1061, -1362,  1063,  1066,  8203,  5993, -1362, 10174,
    1658    -1362,   617,  1650, -1362, 10116, 10174,  1062, -1362, -1362,   966,
    1659      676, -1362, 10174, -1362, -1362,   901, -1362, -1362, -1362, -1362,
    1660    -1362,   688,   688,   806,   806,   843,   843,   843,   843,   301,
    1661      301,   862,   899,   893,   906,   932, 10328,   912, -1362,  9608,
    1662     1069,  1070,  1075,  1220, -1362, -1362, -1362, -1362, -1362,  9608,
    1663      680, 10328,  7377, -1362,  9209, -1362,  6465,  8621,  9070,  6229,
    1664    -1362, -1362, -1362,   506,  9608,   832,  1076,  1078,  1079,  1080,
    1665     1082,  1083,  1088, -1362,  3884,  2624, -1362, -1362, -1362, -1362,
    1666    -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1667    -1362, -1362, -1362,   995, -1362, -1362, -1362,   934, -1362, -1362,
    1668    -1362, -1362, -1362, -1362, -1362, -1362,  1089, -1362,  1099,  1101,
    1669    -1362, -1362,   110,  1062, 10097, -1362, -1362, -1362,  4295,  1100,
    1670    -1362, -1362, -1362, -1362, -1362,   818,  5597,  1173, -1362, -1362,
    1671    -1362, -1362,  1085,   110, -1362, -1362,   995, -1362, -1362,   995,
    1672       28,   995, -1362, -1362, -1362, -1362, -1362, -1362,  8758, -1362,
    1673      286, -1362,  8427, -1362, -1362,  1108,   913,  1111,  1112,  1120,
    1674    -1362, -1362,  2769, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1675     1130, -1362,   980, -1362, -1362,  1116,  1128,  1124, -1362, -1362,
    1676     1132,  1133, -1362,   639,  1695, -1362,   589, -1362,  1987,   934,
    1677    -1362,  1138,  6376,  9494,  8285,  1140, -1362, -1362,  1137,  1144,
    1678     1147, -1362, 10328,   146,   128,  1150, -1362,  1153,  1153,  5845,
    1679    10174, -1362, -1362,  1153, -1362,  1650,  4295, -1362, -1362, -1362,
    1680    -1362,  1152, 10174,  1158,   874, 10097, -1362, 10251, -1362,   874,
    1681    -1362, -1362, 10174, -1362,   826,   919, -1362, -1362, -1362, -1362,
    1682    -1362, -1362, -1362,   966,  8061, -1362, -1362,  6583,  1161, -1362,
    1683      841,   919, -1362,   865,   883,   919, -1362,   951,  4042, -1362,
    1684    -1362, -1362,  9608,  9608, -1362,  7745,  7745, -1362,  1156,  1157,
    1685     1168,  1169, -1362,  1174,   677,   212,  1062, -1362,   874, -1362,
    1686     3695, -1362, 10174,   515, -1362,  5727,  1176,  1179,  9970,  1180,
    1687     1184,    11,    62,    64, 10174,  1185,   286, 10174, 10174,  1183,
    1688      535,  1182,  1164, -1362, -1362, -1362,  1187, -1362, -1362, -1362,
    1689    -1362, -1362, -1362, -1362, -1362, -1362,   818,  1190, 10174, -1362,
    1690     9608,  9608,    82,  1194, -1362,  8962,  8895,   888,   919, -1362,
    1691    -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,  1195,  1695,
    1692    -1362, -1362,  1186, -1362,  1045, -1362, -1362,  2123,  1196, -1362,
    1693    -1362, -1362,   684,  1203, -1362,    53,  1197, 10328,  1188,    53,
    1694       53,  1205, -1362,  1018, 10174,  1207,  1152,   337,   130,  1206,
    1695    -1362,  1205, -1362,  1214,  1206, -1362, -1362,  1217, -1362, -1362,
    1696      995,  1218,  1222,  6111,  1221,  1223,  1225, -1362, -1362,  1224,
    1697    -1362, -1362,   995, -1362, -1362, -1362, -1362,   995, 10174, 10174,
    1698    10328,  1226, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1699    -1362, -1362, -1362, -1362, 10328, 10328,  1232,  1234,  1206, -1362,
    1700    -1362,   818, -1362, -1362, -1362,  7193,  9494, 10174, 10174,  1283,
    1701    10174, -1362, -1362,  1215, -1362,  1219, 10174,  1233,  1242, 10174,
    1702      900,  1243,    37,  8091,  1006,    82, -1362, -1362,  5597,  1239,
    1703      523, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
    1704      995, 10093, -1362,  7815,  1256, -1362, -1362,  9494,   540,   555,
    1705    -1362,  1263,  1262,   920,  1270, -1362,   354, -1362, 10174,  1271,
    1706     1269, -1362, -1362,  1273,   206,   262,   874,  1274,  1275, -1362,
    1707     1276, -1362,  9608, -1362, -1362, -1362, -1362, -1362,  1277, -1362,
    1708     9608,  9608,  9608, -1362, -1362,  1279, -1362,  1282,  1286,  1287,
    1709      702,  7447,  7561, -1362, -1362,   388, -1362,  1291,  1292, -1362,
    1710     7885,   700,   705,  1296,   731,  5363, -1362, -1362,   575, -1362,
    1711    -1362,   741,  1297,  1299,   286,  1349,   974, -1362, -1362, 10174,
    1712    -1362, 10251,  9970, -1362, -1362, -1362,  1303,  1304,  9608, -1362,
    1713    -1362, -1362,  1312, -1362, -1362, -1362, -1362, -1362, -1362,  9494,
    1714      920,   263, -1362,  1293,   920,  1152,   273, -1362, -1362, -1362,
    1715    -1362, -1362, -1362, -1362, -1362,  1301, -1362, -1362, -1362, -1362,
    1716    -1362, -1362,  1316,  1317, -1362, -1362, -1362, -1362, -1362, -1362,
    1717    -1362,  1322, -1362,  1329, -1362, -1362,  9970,   107, 10174,  9970,
    1718    -1362,  1332, 10174, -1362,   151,  1351,  1355, -1362, -1362,  1334,
    1719     1335,  1320,   924, -1362, -1362, -1362, -1362, -1362,   690,  2123,
    1720     1338,   930,   937, 10328, -1362,   742,  1343, 10174,   874,   874,
    1721     1352,  1353,  1354,  1357, -1362, -1362,  7745,  1341, -1362,  1417,
    1722    10328,  1344, -1362, -1362,  9884, -1362,   785, -1362,  1333,  9970,
    1723     1340, -1362, -1362,  1363, -1362,  1364, -1362,  1379,  1382, -1362,
    1724     1350,  1371,  9494, -1362, -1362, -1362,   920,   874,  1374,  1365,
    1725     1370, -1362,  1206,  1206, -1362, -1362, -1362, -1362, -1362,  9970,
    1726      258, -1362,   941, -1362, -1362,  7047, -1362, -1362,  1367, 10174,
    1727    -1362, 10174,  7047,   286,  9317,   286,  9317,  1392, -1362,  1396,
    1728    -1362, -1362, -1362,  1393,   930, -1362,   803, -1362, -1362, 10174,
    1729     1397,  1398, -1362, 10328, 10328, -1362, -1362,  1016,    97, -1362,
    1730    -1362,  1383, -1362,  1016, -1362, -1362,  2377,   874, -1362, -1362,
    1731      286,  9317,   286,  9317,  1405,  1384,   874, -1362, -1362, -1362,
    1732    -1362, -1362,  9884,  1402,  1016,  7122, 10174,  9798,  1406,  1016,
    1733     1412,  2377,  2919, -1362, -1362, -1362,  1413, -1362, -1362, -1362,
    1734    -1362,  8285, -1362, -1362, -1362,  9705, -1362,  9884, -1362, -1362,
    1735     1400,  9612, -1362, -1362,  9798,   286,  2919,   286,  1414,  1419,
    1736      807, -1362,  9705, -1362, -1362, -1362,  9612, -1362, -1362, -1362,
    1737      286,   286, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362
     1589    5174,  7512, -1361,    10, -1361, -1361, -1361, -1361, -1361, -1361,
     1590   -1361,    37, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1591   -1361, -1361, -1361, -1361, -1361,   161,   161,   161,   843,   859,
     1592     111,  6821,   221, -1361, -1361, -1361, -1361, -1361,   155, -1361,
     1593   -1361, -1361,   987,   163,  5874, -1361, -1361, -1361, -1361, -1361,
     1594   -1361,    81,   209, -1361,  1199, -1361, -1361, -1361, -1361,   238,
     1595    1088,   380,    99,  6937, -1361, -1361,  8924,  1148, -1361, -1361,
     1596   -1361,   839,   388,  3333,   858,   581,   839,  1265, -1361, -1361,
     1597      94,   172, -1361,   839,  1598, -1361,   279, -1361,   402,   444,
     1598   -1361, -1361, -1361, -1361,   325,   209,   161, -1361,   161, -1361,
     1599   -1361, -1361, -1361,  9179,  1199, -1361, -1361,  1199, -1361,  9261,
     1600     326, -1361, -1361,  1806,  9290, -1361,  1135,  1135,  1135, -1361,
     1601   -1361, -1361,   161, -1361, -1361, -1361,   435,   468,   557, -1361,
     1602   -1361, -1361,   560, -1361, -1361, -1361, -1361, -1361,   574,   602,
     1603   -1361, -1361,    89,  8398,  1214,   400,   470,   528,   617,   620,
     1604     687,   694,  7699,  6228,   708,   720, -1361,  8962, -1361, -1361,
     1605   -1361, -1361,   741, -1361,   358,  3979,  3979, -1361,   755,   371,
     1606   -1361, -1361, -1361, -1361,   777,   379,   382,   389,   161,   751,
     1607   -1361, -1361,  1088,  2653,   834, -1361,    15, -1361,   161,   161,
     1608     209, -1361, -1361,   199, -1361,   161,   161, -1361,  3078,   802,
     1609     811,  1135,  6378, -1361, -1361,   832,  5874, -1361, -1361,   839,
     1610   -1361, -1361, -1361,   209, -1361,  1199,    81, -1361,  7363, -1361,
     1611    1135,  1135,  1135,   209, -1361,   843, -1361,  6024, -1361, -1361,
     1612     816,  1135, -1361,  1135, -1361,   155,  8398,  8428,   851, -1361,
     1613     859,   880,  1135, -1361,   843,   884,   897, -1361,  6821,   961,
     1614   -1361, -1361, -1361,  8857, -1361, -1361,  5093, -1361,   834,    72,
     1615    9290, 10300,  1806,  3078, -1361,   253, -1361, -1361,  9261,  1199,
     1616     922,  6966, -1361, -1361,   355, -1361, 10631,   941,   965,  4235,
     1617     955,  4451, 10454, -1361,   973, -1361, -1361, -1361, -1361, 10512,
     1618   10512,   961,  8059,   962,  4451,  8511, -1361, -1361, -1361, -1361,
     1619   -1361, -1361,  1002, -1361,   567,  2174,  4451, -1361,   357,   484,
     1620     568,   283,   719,   968,   967,   964,   996,   246, -1361, -1361,
     1621     966,   472, -1361,   270, -1361, -1361,  1214, -1361, -1361,   446,
     1622     989, -1361,   504,   989,   995,   155, -1361, -1361,  1003,  9179,
     1623   -1361,  1004,  8172, -1361, -1361,   747,  1701,  7781,  6378,   839,
     1624   -1361,   839,  1135,  1135, -1361, -1361, -1361, -1361, -1361, -1361,
     1625    1135,  9328,  1199, -1361, -1361,  9399,  1399, -1361,  8549, -1361,
     1626   -1361, -1361, -1361, -1361, -1361, -1361,  1015,  5239,  4451, -1361,
     1627   -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1628   -1361, -1361, -1361,  1806, -1361,   793,  1019,  1025,  1026,   863,
     1629    1028,  1031,  1032,  2653, -1361, -1361,  1005,    81,  1039, -1361,
     1630   -1361,  1033, -1361, -1361, -1361,  8857, -1361, -1361, -1361, -1361,
     1631   -1361,  3078, -1361,  8398,  8398, -1361,  1135,  1806,  6497,  1199,
     1632    7852, -1361, -1361, -1361, -1361,  8857,    72, -1361, -1361,   839,
     1633     209, -1361, -1361,  8857, -1361,  6143, -1361, -1361,  1135,  1135,
     1634     375,  9437,  1053,  1568,  8775, -1361,   433,   442,   859, -1361,
     1635    8428,  1050,  1037,   859,  1135, -1361, -1361, -1361, -1361,  9692,
     1636   -1361,   526,  6259, -1361,   209,  1055, -1361,  1806, 10712, 10358,
     1637   -1361, -1361, -1361, -1361,   867,  3078, -1361,  7923,   834,  6705,
     1638   -1361, -1361, -1361,  1562,   529,   966,   859,  6966,   285,  9261,
     1639   -1361,  6966, -1361, -1361, -1361, -1361,   613, -1361,  1067,   965,
     1640     260,  8059, -1361,  9437, -1361, -1361,  8059, -1361,  8285,  8059,
     1641   -1361, -1361, -1361,  1065, -1361,   616,  1068,   590,  1070, -1361,
     1642    4969,  5843, -1361, -1361, -1361,    79, -1361, -1361, 10377, -1361,
     1643     173, 10377, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1644   -1361, -1361, 10300, 10300, -1361,  4451,  4451,  4451,  4451,  4451,
     1645    4451,  4451,  4451,  4451,  4451,  4451,  4451,  4451,  4451,  4451,
     1646    4451,  4451,  4451,  4825, 10300, -1361,   472,   707, -1361, -1361,
     1647     161,   161, -1361, -1361,  8398, -1361, -1361,  1033,   961, -1361,
     1648    1033, 10435, -1361, -1361, -1361,  8886,  5843,  1071,  8624,  1073,
     1649   -1361,  9466, -1361, -1361,   741, -1361,  1074,   817,  1080,  2410,
     1650     289,   966, -1361,   161,   161,   966,   329, -1361,   161,   161,
     1651    1033, -1361, -1361,   161,   161, -1361,   989,  9548,  1199, 10855,
     1652     627,   641,  9548, -1361,  6736, -1361,   966, -1361,  9328, -1361,
     1653     212,  7478,  7478,  7478,  1199, -1361, 10223,  1076,   366,  1015,
     1654     264,  1077, -1361,  1066,  3979,   524, -1361,  1167,  1199,  7478,
     1655     961,  1806,   961,   834,   732,   989, -1361, -1361,   762,   989,
     1656   -1361, -1361, -1361,   965, -1361,   989,   209,  9692, -1361,   625,
     1657    1090,   646,  1095, -1361,  1086,   209, -1361, -1361,  8857,   209,
     1658    1092,   471,   485,  9577,  6347,  1714,  4451,  2851, -1361, -1361,
     1659    1091,    93,  1091, -1361, -1361, -1361,   161,   161, -1361, -1361,
     1660     859, -1361,   161, -1361, -1361,  9111,   859,  1096,  4451, -1361,
     1661    1050, 10855, -1361, -1361,  1103, -1361, -1361, -1361,   961, -1361,
     1662   10784,  4451, -1361,  7478,   606,  7781, -1361, -1361,   741,  1105,
     1663    1107,  1562,  3179, -1361, -1361,  6966, -1361, -1361,  1102, -1361,
     1664   -1361,  1121, -1361,  1102,  1114, 10631, 10300,   273,  1099,    56,
     1665    1122,  1118,  1125,   962,  1119,  1127, -1361,  1130,  1134,  8315,
     1666    5990, -1361, 10300, -1361,   590,  1176, -1361, 10242, 10300,  1129,
     1667   -1361, -1361,  1015,   670, -1361, 10300, -1361, -1361,   824, -1361,
     1668   -1361, -1361, -1361, -1361,   357,   357,   484,   484,   568,   568,
     1669     568,   568,   283,   283,   719,   968,   967,   964,   996,  4451,
     1670     852, -1361,  9692,  1136,  1139,  1141,   707, -1361, -1361, -1361,
     1671   -1361, -1361,  9692,   675,  4451,  7478, -1361,  9328, -1361,  6466,
     1672    8737,  8662,  6228, -1361, -1361, -1361,   817,  9692,   882,  1147,
     1673    1149,  1154,  1158,  1162,  1178,  1181, -1361,  7167,  2410, -1361,
     1674   -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1675   -1361, -1361, -1361, -1361, -1361, -1361,  1033, -1361, -1361, -1361,
     1676     966, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,  1182,
     1677   -1361,  1183,  1184, -1361, -1361,    81,  1129, 10223, -1361, -1361,
     1678   -1361,  5239,  1186, -1361, -1361, -1361, -1361, -1361,   859,  5411,
     1679    1267, -1361, -1361, -1361, -1361,  1171,    81, -1361, -1361,  1033,
     1680   -1361, -1361,  1033,    53,  1033, -1361, -1361, -1361, -1361, -1361,
     1681   -1361,  9000, -1361,   209, -1361,  8428, -1361, -1361,  1193,   894,
     1682    1196,  1200,  1201, -1361, -1361,  2851, -1361, -1361, -1361, -1361,
     1683   -1361, -1361, -1361,  1568, -1361,  1037, -1361, -1361,  1194,  1202,
     1684    1203, -1361, -1361,  1204,  1208, -1361,   606,  1611, -1361,   648,
     1685   -1361,  3179,   966, -1361,  1205,  6966,  9615,  8398,  1211, -1361,
     1686   -1361,  1213,  1220,  1207, -1361,  4451,   125,   216,  1218, -1361,
     1687    1222,   961,  1222,  5843, 10300, -1361, -1361,  1222, -1361,  1176,
     1688    5239, -1361, -1361, -1361, -1361,  1221, 10300,  1226,   961, 10223,
     1689   -1361, 10377, -1361,   961, -1361, -1361, 10300, -1361,   803,   989,
     1690   -1361, -1361, -1361, -1361, -1361, -1361, -1361,  1015,  8172, -1361,
     1691   -1361,  6585,  1229, -1361,   836,   989, -1361,   928,   932,   989,
     1692   -1361,  1135,  7244, -1361, -1361, -1361,  9692,  9692, -1361,  7852,
     1693    7852, -1361,  1224,  1225,  1233,  1234, -1361,  1238,   649,   147,
     1694    1129, -1361,   961, -1361,  3979, -1361, 10300,   492, -1361,  5724,
     1695    1236,  1242, 10095,  1246,  1248,     1,    51,    18, 10300,  1250,
     1696     209, 10300, 10300,  1249,   145,  1253,  1231, -1361, -1361, -1361,
     1697    1259, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1698     859,  1266, 10300, -1361,  9692,  9692,   161,  1269, -1361,  9149,
     1699    9038,   935,   989, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1700   -1361, -1361,  1271,  1611, -1361, -1361,  1254, -1361,  1102, -1361,
     1701   -1361,  1806,  1272, -1361, -1361, -1361,   677,  1268, -1361,    56,
     1702    1277,  4451,  1258,    56,    56,  1281,  1276, -1361,  1066, 10300,
     1703    1287,  1221,   764,    58,  1284, -1361,  1276, -1361,  1290,  1284,
     1704   -1361, -1361,  1293, -1361, -1361,  1033,  1296,  1298,  6109,  1301,
     1705    1302,  1305, -1361, -1361,  1309, -1361, -1361,  1033, -1361, -1361,
     1706   -1361, -1361,  1033, 10300, 10300,  4451,  1311, -1361, -1361, -1361,
     1707   -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,  4451,
     1708    4451,  1312,  1315,  1284, -1361, -1361,   859, -1361, -1361, -1361,
     1709    7126,  9615, 10300, 10300,  1384, 10300, -1361, -1361,  1300, -1361,
     1710    1306, 10300,  1310,  1316, 10300,   954,  1318,    50,  8202,   875,
     1711     161, -1361, -1361,  5411,  1319,   498, -1361, -1361, -1361, -1361,
     1712   -1361, -1361, -1361, -1361, -1361,  1033, 10219, -1361,  7923,  1323,
     1713   -1361, -1361,  9615,   502,   527, -1361,  1322,  1327,   965,  1337,
     1714   -1361,   287, -1361, -1361, 10300,  1340,  1338, -1361, -1361,  1342,
     1715     178,   188,   961,  1344,  1347, -1361,  1349, -1361,  9692, -1361,
     1716   -1361, -1361, -1361, -1361,  1352, -1361,  9692,  9692,  9692, -1361,
     1717   -1361,  1356, -1361,  1357,  1360,  1362,   661,  7551,  7666, -1361,
     1718   -1361,   437, -1361,  1364,  1365, -1361,  7994,   679,   699,  1369,
     1719     717,  5593, -1361, -1361,   559, -1361, -1361,   718,  1370,  1371,
     1720     209,  1425,   951, -1361, -1361, 10300, -1361, 10377, 10095, -1361,
     1721   -1361, -1361,  1376,  1382,  9692, -1361, -1361, -1361,  1379, -1361,
     1722   -1361, -1361, -1361, -1361, -1361,  9615,   965,   262, -1361,  1368,
     1723     965,  1221,   334, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
     1724   -1361,  1381, -1361, -1361, -1361, -1361, -1361, -1361,  1389,  1392,
     1725   -1361, -1361, -1361, -1361, -1361, -1361, -1361,  1396, -1361,  1397,
     1726   -1361, -1361, 10095,    75, 10300, 10095, -1361,  1400, 10300, -1361,
     1727      97,  1419,  1424, -1361, -1361,  1407,  1412,  1390,   938, -1361,
     1728   -1361, -1361, -1361, -1361,  1199,  1806,  1409,  1002,   952,  4451,
     1729   -1361,   759,  1414, 10300,   961,   961,  1417,  1423,  1426,  1427,
     1730   -1361, -1361,  7852,  1413, -1361,  1492,  4451,  1429, -1361, -1361,
     1731   10006, -1361,   771, -1361,  1408, 10095,  1410, -1361, -1361,  1439,
     1732   -1361,  1447, -1361,  1463,  1465, -1361,  1431,  1454,  9615, -1361,
     1733   -1361, -1361,   965,   961,  1456,  1435,  1451, -1361,  1284,  1284,
     1734   -1361, -1361, -1361, -1361, -1361, 10095,   316, -1361,   956, -1361,
     1735   -1361,  4664, -1361, -1361,  1438, 10300, -1361, 10300,  4664,   209,
     1736    9437,   209,  9437,  1461, -1361,  1462, -1361, -1361, -1361,  1458,
     1737    1002, -1361,   774, -1361, -1361, 10300,  1467,  1471, -1361,  4451,
     1738    4451, -1361, -1361,  1042,    57, -1361, -1361,  1442, -1361,  1042,
     1739   -1361, -1361,  1766,   961, -1361, -1361,   209,  9437,   209,  9437,
     1740    1466,  1445,   961, -1361, -1361, -1361, -1361, -1361, 10006,  1469,
     1741    1042,  7053, 10300,  9917,  1473,  1042,  1479,  1766,  2991, -1361,
     1742   -1361, -1361,  1480, -1361, -1361, -1361, -1361,  8398, -1361, -1361,
     1743   -1361,  9824, -1361, 10006, -1361, -1361,  1475,  9731, -1361, -1361,
     1744    9917,   209,  2991,   209,  1482,  1485,   778, -1361,  9824, -1361,
     1745   -1361, -1361,  9731, -1361, -1361, -1361,   209,   209, -1361, -1361,
     1746   -1361, -1361, -1361, -1361, -1361, -1361
    17381747};
    17391748
     
    17411750static const yytype_int16 yypgoto[] =
    17421751{
    1743    -1362,  3493,  1093, -1362,  1502, -1362,    -1,     2,   435, -1362,
    1744      458,  -522,  -509,  -926,  -270,  4585, -1362,  1298,   508,   516,
    1745      480,   518,   965,   977,   985,   963,   975, -1362,   450,  -552,
    1746     3932,  -889,  -691,  -949, -1362,   269,  -657,  -346, -1362,  1391,
    1747    -1362,   339, -1080, -1362, -1362,    75, -1362, -1321,  -831,   188,
    1748    -1362, -1362, -1362, -1362,     7, -1083, -1362, -1362, -1362, -1362,
    1749    -1362, -1362,   268, -1220,    39, -1362,  -255, -1362,   439,   242,
    1750    -1362,   117, -1362,  -360, -1362, -1362, -1362,   498,  -843, -1362,
    1751    -1362,    12, -1020,    26,  1825, -1362, -1362, -1362,  -118, -1362,
    1752      513,    86,  -185,   665,  2995, -1362, -1362,    55,   143,   302,
    1753     -254,  1799, -1362,  1348, -1362, -1362,   259,  1704, -1362,  2086,
    1754     1311, -1362, -1362,  -430,  -428,  1135,  1143,   640,   890,   313,
    1755    -1362, -1362,  1126,   652,  -484, -1362,  -469,  -299,   976, -1362,
    1756    -1362,  -931,  -975,  -226,  1098,  1011,    22, -1362,   189,   264,
    1757      -13,  -195,  -156,   609,   711, -1362,   947, -1362,  2242,   541,
    1758     -458,   859, -1362, -1362,   647, -1362,  -235, -1362,    24, -1362,
    1759    -1362, -1362, -1279,   371, -1362, -1362, -1362,  1122, -1362,    46,
    1760    -1362, -1362,  -859,  -108, -1361,   -83,  2954, -1362,  2772, -1362,
    1761      858, -1362,  -175,   138,  -168,  -167,  -163,     3,   -38,   -31,
    1762      -30,   910,    25,    70,    79,  -147,  -162,  -159,  -152,  -151,
    1763     -287,  -573,  -525,  -485,  -559,  -293,  -488, -1362, -1362,  -496,
    1764     1038,  1041,  1042,  2149,  4025,  -548,  -554,  -520,  -498,  -453,
    1765    -1362,  -411,  -687,  -675,  -653,  -597,  -296,  -300, -1362, -1362,
    1766      829,    71,   -28, -1362,  3030,   124,  -627,  -190
     1752   -1361,  3544,   970, -1361,    20, -1361,    -1,     2,   -74, -1361,
     1753     522,  -526,  -500,  -936,  -243,  4577, -1361,  1460,   543,   548,
     1754     295,   553,  1034,  1038,  1043,  1048,  1057, -1361,   -51,  -392,
     1755    4234,  -943,  -738,  -935, -1361,  -249,  -735,  -441, -1361,   365,
     1756   -1361,   391, -1096, -1361, -1361,   130, -1361, -1360, -1063,   247,
     1757   -1361, -1361, -1361, -1361,    70, -1089, -1361, -1361, -1361, -1361,
     1758   -1361, -1361,   323, -1158,    73, -1361,  -340, -1361,   501,   308,
     1759   -1361,   184, -1361,  -322, -1361, -1361, -1361,   564,  -756, -1361,
     1760   -1361,    12, -1009,   192,  2073, -1361, -1361, -1361,   -15, -1361,
     1761      83,   109,  -196,   768,  3404, -1361, -1361,   205,   194,   733,
     1762    -239,  1824, -1361,  1487, -1361, -1361,   107,  1870, -1361,  2141,
     1763    1985, -1361, -1361,  -425,  -428,  1206,  1210,   713,   957,   377,
     1764   -1361, -1361,  1195,   723,  -403, -1361,  -227,   263,  1518, -1361,
     1765   -1361,  -988,  -991,  -146,  1115,  1075,    26, -1361,  1505,   190,
     1766    -245,  -193,  -158,   681,   781, -1361,  1010, -1361,  2162,  1169,
     1767    -442,   924, -1361, -1361,   711, -1361,  -230, -1361,   137, -1361,
     1768   -1361, -1361, -1237,   439, -1361, -1361, -1361,  1190, -1361,    86,
     1769   -1361, -1361,  -871,   -43, -1329,  -102,  3071, -1361,  3370, -1361,
     1770     927, -1361,  -173,   505,  -181,  -170,  -166,     3,   -38,   -33,
     1771     -31,  1420,    16,    33,    44,  -169,  -160,  -157,  -151,  -142,
     1772    -329,  -550,  -528,  -519,  -571,  -327,  -523, -1361, -1361,  -506,
     1773    1109,  1117,  1120,  1366,  3814,  -567,  -543,  -531,  -530,  -562,
     1774   -1361,  -358,  -675,  -671,  -666,  -600,   354,  -320, -1361, -1361,
     1775     235,   558,   -67, -1361,  3073,   151,  -623,  -463
    17671776};
    17681777
     
    17701779   positive, shift that token.  If negative, reduce the rule which
    17711780   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1772 #define YYTABLE_NINF -520
     1781#define YYTABLE_NINF -521
    17731782static const yytype_int16 yytable[] =
    17741783{
    1775      110,   449,    46,    95,   146,   264,   927,   762,   403,   379,
    1776      380,   147,   148,   111,   395,   396,   424,   785,   928,   397,
    1777      398,   436,   502,   399,   889,   707,    53,   112,   865,   713,
    1778      400,   401,   836,    46,    95,  1194,   404,  1085,   746,    47,
    1779      929,   702,   751,  1136,    46,   601,    46,   158,   847,  1453,
    1780     1390,   840,   614,  1084,   674,    66,    46,    53,   609,   848,
    1781      633,  1178,    46,   190,   637,    46,   213,   149,    46,   223,
    1782       47,   104,   104,  1144,   683,   257,   174,   140,   216,   814,
    1783      837,   108,   687,   988,   927,   841,    66,   113,   403,   207,
    1784      421,   945,   217,  1457,   395,   396,   928,   969,  1309,   397,
    1785      398,   406,   104,   399,  1176,  1177,    46,   842,   532,    46,
    1786      400,   401,   150,   570,   773,    46,   404,   839,   929,    30,
    1787      838,   151,  1188,  1453,   339,   277,   258,    30,   199,   259,
    1788      156,    30,   108,   287,   108,   475,  1092,   104,    94,  -232,
    1789     -232,  1202,   931,    67,   146,   119,    46,   158,   571,  1410,
    1790     1411,   147,   148,  1473,    46,   851,   880,   881,    30,    46,
    1791      369,   858,   972,   108,   944,   120,   836,  1310,   163,    94,
    1792      878,   878,   878,   899,    67,   479,   481,   200,  1211,  1212,
    1793      145,  1206,    94,   278,    46,    46,   158,   734,   878,   255,
    1794      735,  1457,  1204,  1410,  1411,   156,  1457,   249,   186,   407,
    1795       46,    94,   777,   407,    94,   741,   209,   149,    46,   158,
    1796     -232,   672,  1193,  1254,   837,   165,  1457,    46,   138,  1412,
    1797       46,   439,   532,  1457,   146,   139,   532,   669,   415,   320,
    1798      407,   147,   148,   163,   108,   405,  1128,   435,   336,   166,
    1799      373,  1255,   723,  1129,   437,  1251,  1499,   952,   469,   443,
    1800       46,    95,   150,  1127,   838,   670,   374,   970,  1178,    74,
    1801      836,   151,   878,  1421,    46,    46,   158,   324,   464,   238,
    1802      241,    46,   141,   783,    53,  1194,   108,   698,    46,   840,
    1803      480,  1528,    94,  1530,   661,   707,  1030,    47,   426,   520,
    1804       74,   487,   430,   825,   467,    94,   475,  1031,   504,  1335,
    1805      601,   143,    30,    66,   744,   700,  1184,  1178,   837,   669,
    1806      592,  1146,   676,   841,   614,  1339,   475,  1007,   681,   104,
    1807      394,   186,   320,   452,   475,    30,   920,    46,   369,   601,
    1808      432,    30,   108,  1185,   601,   842,   874,   670,  1010,   339,
    1809      879,   879,   879,   532,    94,  1018,    46,    46,   838,   383,
    1810     1176,  1177,  1483,   878,   430,   152,    94,   492,   879,  1085,
    1811      324,   438,   480,    46,   868,   384,   174,    46,   869,   226,
    1812     1393,  1341,   485,   227,   407,  1084,   231,   525,   233,  1185,
    1813      156,  -110,   851,   634,   572,   242,    94,   638,  1397,   560,
    1814      561,    67,   432,   734,    46,   849,   735,   606,   168,   840,
    1815      483,   856,  -110,   606,    46,   369,   848,  1208,   532,   678,
    1816      680,     2,   203,     4,     5,     6,     7,   865,   163,   852,
    1817     1126,   178,    46,   855,   591,   562,   563,   598,    46,   461,
    1818       46,  1178,   879,   841,  1542,  1194,   756,  1541,   108,   225,
    1819      136,   137,  1194,   757,   872,  -110,   631,  -110,   875,   723,
    1820      635,  -110,  1372,   336,    46,   842,   108,  1552,   136,   235,
    1821      198,  1557,  1333,    94,  1556,   603,  -110,  -110,   734,  1334,
    1822      110,   735,  1442,  1443,    34,  1448,    35,  -288,    46,   108,
    1823      240,   136,   137,   608,   244,   750,    46,   369,  1142,   209,
    1824       46,    95,  1095,   236,    46,  1194,   890,   249,   237,   502,
    1825      339,  -110,  -110,   764,  1114,   247,  1250,    74,   320,   320,
    1826      581,   226,    74,    60,    53,   761,   582,  -110,   885,  -515,
    1827      403,  1100,   261,   879,  1012,   395,   396,    47,   825,   702,
    1828      397,   398,   778,   386,   399,   761,   452,   784,   761,   452,
    1829      186,   400,   401,    66,    60,   452,   324,   324,   404,   387,
    1830     1073,   901,   614,   249,   326,   407,   388,   113,  1029,   104,
    1831      523,  1031,   -10,   390,   108,   649,   136,   137,   475,   818,
    1832     1164,  1166,   389,   708,  1100,  1244,    36,  -438,   903,   391,
    1833       39,   710,   492,   723,   320,   469,   492,    40,    41,   709,
    1834      699,   327,   688,   723,  -439,    46,   525,   711,   582,   273,
    1835      525,   747,   320,   525,   212,   282,   748,    46,   723,    46,
    1836      949,   708,  1489,   833,   336,   606,    40,    41,   825,  1489,
    1837      209,   239,   324,   607,   275,   710,    94,   923,    46,  1191,
    1838      608,    67,  1283,  1284,   497,   870,   498,  1191,  1370,   871,
    1839      324,   924,   517,  -464,    46,  1192,   712,   328,   867,   827,
    1840      226,   461,   231,  1315,  1324,   212,  1512,   900,    46,   902,
    1841      276,    46,  1517,   339,   882,    63,   114,   707,   320,  1326,
    1842     1325,  1029,  1538,    74,  -464,   725,  -464,  1034,   898,   823,
    1843     -464,   726,   598,  1537,   745,  1327,   749,  1042,  1544,   769,
    1844      891,   677,   679,    74,   329,    46,    63,    46,   212,   870,
    1845      574,    74,   407,  1110,   330,  1373,   324,   331,  1089,   157,
    1846      575,   864,  1199,   509,   332,  1420,   598,   583,   601,   407,
    1847      603,   892,   873,   648,   771,   948,   407,   893,   586,  1122,
    1848      407,   218,  1049,   742,   772,   904,  1175,   407,   339,   743,
    1849      226,    46,    46,   835,   752,   608,   953,    74,   606,   866,
    1850      753,   367,   768,   368,   603,    46,   954,   669,   769,   212,
    1851       36,    60,   171,   172,    39,   698,   476,   914,   256,  1111,
    1852      438,    40,    41,   769,   758,   504,   916,   336,   759,   523,
    1853      372,   765,   769,   523,   996,   670,   523,  -103,  1009,  1382,
    1854      997,  -103,  1240,   700,   726,   381,   825,   212,   582,   452,
    1855      385,   212,  1491,   422,  1492,   553,   723,   723,  1366,   325,
    1856      554,   555,  1358,  1367,   769,   393,  1359,   256,   346,   769,
    1857        2,   203,     4,     5,     6,     7,   415,   665,   407,   492,
    1858      405,   926,    36,   699,   927,    46,    39,   886,   428,  1369,
    1859      807,  1438,  1168,    40,    41,   769,   928,    46,   402,  1374,
    1860     1439,   907,   336,   407,   734,   769,  1436,   735,  1450,  1539,
    1861      249,   326,   209,   420,   723,   723,   425,   427,   929,    42,
    1862     1242,   157,  1073,   160,  1246,   446,   209,   835,   608,   144,
    1863      533,   534,   535,    34,   827,    35,   423,   212,   108,   459,
    1864      136,   137,   444,  1458,  1189,  1071,   447,   939,   448,   769,
    1865      485,   326,   407,   942,   536,   465,   537,   463,   538,   539,
    1866     1011,  1505,    36,    63,   823,  1562,    39,  1506,   477,   466,
    1867       46,   582,    53,    40,    41,   556,   557,   476,   484,   558,
    1868      559,  1510,  1450,  1148,    46,   407,   427,   735,   160,   849,
    1869      326,   606,    46,   755,   108,    74,    -3,   476,  1160,   739,
    1870      407,    66,   564,   565,   159,   476,  1302,  1303,  1304,   740,
    1871       46,     8,     9,    10,    11,    12,  1383,   104,   212,   209,
    1872      191,   835,  1163,   214,   606,  1115,   224,   126,   462,   127,
    1873      128,   129,  1361,   608,  1340,  1342,  1343,    74,    30,  1116,
    1874     1165,   488,   606,  1138,   508,  1228,   761,   407,  1138,   732,
    1875      287,    60,   516,   256,   823,  1320,   599,   528,   452,  1235,
    1876      532,   935,   627,   935,  1000,   997,    33,   566,   212,   567,
    1877     1409,   326,   407,  1417,   569,   632,   769,  1002,   335,   632,
    1878     1379,  1380,   256,   568,   104,   431,   723,  1430,   997,    67,
    1879      795,   796,   797,   798,   723,   723,   723,  1138,   492,  1117,
    1880      320,  1436,  1437,  -435,   159,  1484,  1485,  1071,  1410,  1411,
    1881     1203,  1205,  1207,   572,   791,   792,   457,   370,  1456,   590,
    1882      699,   593,   662,  1460,   793,   794,   643,   649,   699,   477,
    1883      663,    53,   799,   800,  1054,  1524,   664,   666,   324,   533,
    1884      534,   535,   723,   159,   346,   667,   608,   431,   668,   477,
    1885      864,   671,   673,  1482,   254,   714,   910,   477,   691,   716,
    1886     1196,  -236,   754,   536,   766,   537,   159,   538,  1311,    46,
    1887      527,   770,   774,   160,   -12,   828,   104,   830,   440,   832,
    1888      843,   895,   888,   719,   915,  1100,   427,   887,   866,   917,
    1889      212,   922,   918,   164,   930,   169,   943,  -519,   175,   176,
    1890      177,   733,   179,    63,   694,    74,  -412,   957,   964,   743,
    1891      438,   427,   966,   977,   978,   427,   930,   230,   212,   981,
    1892      971,   982,   980,   212,   983,   649,   992,  1004,  1005,   245,
    1893      246,   452,   823,  1006,  1020,   339,  1021,  1022,  1023,  1551,
    1894     1024,  1025,   973,   256,   346,  1551,  1026,  1037,    67,   476,
    1895       36,  1086,   180,   181,    39,   732,  1551,  -400,   216,  -399,
    1896     1551,    40,    41,  1051,  1088,    46,  -289,  1071,  1096,  1097,
    1897     1098,   207,   217,     8,     9,    10,    11,    12,  1099,  1103,
    1898        8,     9,    10,    11,    12,   370,  1104,   693,  1105,   407,
    1899      813,   476,  1106,  1107,    53,   694,  1113,   695,  1123,  1115,
    1900       30,   769,  1124,  1138,  1138,  1138,  1001,    30,   632,   826,
    1901      212,   599,  1125,  1116,  1130,   986,  1134,   104,  1137,  1158,
    1902     1179,  1180,   845,    66,   212,  1054,  1181,  1182,    33,   457,
    1903      732,  1434,   457,  1197,  1183,    33,  1198,  1200,   457,   104,
    1904      599,  1201,  1209,  1213,  1216,   599,  1550,  1215,  1221,   336,
    1905       -3,   632,  1226,  1232,   346,   346,   346,  1243,   104,  1236,
    1906      761,  1071,   370,   497,    74,  1241,   437,  1252,  1245,  1248,
    1907     1256,    53,   346,  1117,  1259,  1261,  1263,   574,  1293,   407,
    1908     1264,  1265,  1269,  1266,  1044,  1267,  1276,   575,   209,   527,
    1909      719,  1115,  1285,   527,  1286,  1296,   527,   403,    72,  1297,
    1910     1196,   477,  1314,   395,   396,  1116,   256,   733,   397,   398,
    1911      932,    67,   399,  1299,  1322,  1071,   104,   212,  1071,   400,
    1912      401,   669,  1300,  1308,   211,   404,  1328,  1330,  1332,    72,
    1913     1289,  1336,  1337,  1338,  1344,  1345,  1346,  1348,  1523,  1354,
    1914       46,    46,  1355,   477,  1356,  1357,   346,  1138,  1138,   670,
    1915      104,  1364,  1365,  1368,  1375,   958,  1376,  1304,   427,    60,
    1916     1433,  1384,  1385,  1071,   219,  1117,  1397,    36,  1071,   180,
    1917      181,    39,   930,  1394,  1387,   211,  1404,  1405,    40,    41,
    1918     -401,   256,   733,   438,   597,   604,  1475,   985,    67,  1408,
    1919     1419,  1427,  1428,   170,  1115,  1423,   628,   629,  1071,  1425,
    1920     1429,  1435,  1145,  1440,   605,  1359,   606,  1449,  1116,  1454,
    1921     1444,  1445,  1446,  1459,   607,  1447,  1291,  1292,   211,  1294,
    1922     1461,  1463,  1465,  1467,   719,  1298,  1469,    74,  1301,  1472,
    1923     1471,    53,  1477,   146,   719,  1479,   250,   346,    53,   632,
    1924      147,   148,  1017,   632,   826,  1478,  1525,  1490,    46,   719,
    1925     1500,   349,  1044,   104,  1502,  1533,  1504,  1508,  1509,  1028,
    1926     1196,  1071,  1531,  1516,  1532,  1536,  1071,  1196,  1117,  1543,
    1927     1545,  1547,  1560,    46,    46,   158,   104,  1561,  1214,   211,
    1928     1553,   801,   804,   104,  1071,    36,  1071,   180,   181,    39,
    1929     1071,    53,   457,  1071,   802,   805,    40,    41,    46,   369,
    1930     1496,  1071,  1496,   803,    74,  1071,   173,  1313,   212,  1511,
    1931      973,    63,  1422,  1563,   973,   973,   724,   211,   476,  1247,
    1932     1196,   211,   693,  1378,   407,   445,  1395,   930,   513,  1493,
    1933     1101,   413,   695,   632,  1220,   689,   104,  1496,   718,  1496,
    1934      936,   530,   531,   690,  1102,  1133,    72,   820,    67,  1050,
    1935      894,    72,   959,   552,   433,    67,   173,  1112,  1323,   173,
    1936      737,   967,   810,     0,   441,   811,   812,   320,     0,  1109,
    1937        2,   203,     4,     5,     6,     7,     0,   427,   114,     0,
    1938        0,     0,     0,     0,   930,   930,     0,  1416,     0,   531,
    1939        0,     0,     0,     0,   346,     0,     0,     0,     0,     0,
    1940        0,   913,     0,     0,   173,   324,     0,   211,    67,   483,
    1941        8,     9,    10,    11,    12,     0,   732,     0,     0,     8,
    1942        9,    10,    11,    12,     0,   531,     0,     0,  1331,   599,
    1943        0,     0,   524,    34,     0,    35,     0,    30,     0,     0,
    1944        0,     0,   425,     0,     0,   219,    30,   719,   719,     0,
    1945      346,   346,     0,     0,    75,     8,     9,    10,    11,    12,
    1946        0,     0,     0,     0,    74,    33,     0,   173,     0,     0,
    1947     1195,    74,     0,     0,    33,     0,     0,     0,     0,    36,
    1948        0,    60,    30,    39,     0,    75,   212,     0,   211,     0,
    1949       40,    41,     0,     0,     0,     0,   732,     0,     0,     0,
    1950        0,   457,     0,     0,     0,   719,   719,   771,     0,   407,
    1951       33,   632,    72,     0,     0,  1391,    42,   772,     0,  1391,
    1952      220,   173,     0,   724,    74,     0,   144,   349,   173,     0,
    1953        0,     0,    72,     0,     0,  1003,     0,     0,   211,     0,
    1954       72,     0,     0,     0,     0,  1008,     0,     0,     0,     0,
    1955        0,     0,   953,     0,   606,     0,     0,     0,   476,     0,
    1956     1019,     0,   954,   946,     0,   947,   349,    36,   733,   171,
    1957      172,    39,   950,   951,     0,    54,    54,   956,    40,    41,
    1958      685,   212,     0,     0,   349,     0,    72,     0,    36,   961,
    1959      180,   181,    39,   930,   965,     0,   173,     0,     0,    40,
    1960       41,   788,   789,   790,   368,     0,    54,   351,     0,     0,
    1961      930,  1290,   210,   173,   727,     0,     0,   173,     0,   993,
    1962        0,  1474,   229,     0,     0,   182,     0,   349,   256,     0,
    1963        0,     0,     0,    63,     0,   183,     0,     0,    54,     0,
    1964        0,    54,     0,     0,   531,     0,   719,     0,   733,     0,
    1965        0,   524,   114,     0,     0,   524,     0,   724,   524,     0,
    1966      211,     0,     0,   210,   597,     0,     0,   724,     0,     0,
    1967        0,     0,     0,     0,   457,     0,     0,   719,     0,     0,
    1968      173,     0,   724,   930,   930,   719,   719,   719,   211,     0,
    1969        0,     0,   349,   211,     0,     0,   346,   346,     0,     0,
    1970        0,     0,    75,     0,     0,     0,   210,    75,     0,     0,
    1971     1195,     0,     0,     0,     0,     0,     0,     0,   476,     0,
    1972        0,  1038,  1039,  1040,  1041,   476,  1043,     0,   344,     0,
    1973        0,     0,     0,   719,     0,     0,     0,   349,   349,   349,
    1974        0,     0,  1087,     0,   114,     0,     0,     8,     9,    10,
    1975       11,    12,     0,     0,     0,   349,  1093,     0,  1173,  1174,
    1976       36,     0,   171,   172,    39,     0,     0,   210,     0,     0,
    1977        0,    40,    41,   349,    30,     0,     0,   531,   476,     0,
    1978      211,     0,     0,     0,    72,     0,     0,     0,     0,     0,
    1979      349,     0,     0,    54,   211,  1108,     0,   372,     0,     0,
    1980        0,   220,    33,     0,     0,   210,     0,    36,     0,   210,
    1981        0,    39,     0,     0,     0,   912,  1223,  1224,    40,    41,
    1982        0,   346,   987,    54,   919,   503,    72,     0,   921,   349,
    1983        0,     0,     0,     0,  1135,     0,    77,     0,     0,     0,
    1984        0,  1143,     0,     0,   739,   173,  1147,   114,     0,     0,
    1985        0,  1151,     0,  1152,   740,     0,     0,  1154,  1155,  1156,
    1986        0,     0,  1159,     0,     0,   349,     0,    77,    75,   531,
    1987     1195,  1171,     0,     0,     0,     0,     0,  1195,   173,     0,
    1988      724,   724,     0,   351,     0,     0,     0,   211,    75,  1186,
    1989     1187,     0,     0,     0,   173,   210,    75,     0,     0,     0,
    1990        0,     0,   221,     0,     0,     0,     0,   349,   173,     0,
    1991        0,     0,     0,     0,     0,     0,  1217,   349,     0,  1219,
    1992      349,     0,   351,     0,     0,   219,     0,   349,     0,     0,
    1993     1195,     0,   349,     0,     0,     0,     0,  1546,   724,   724,
    1994      351,  -290,    75,    36,     0,   180,   181,    39,     8,     9,
    1995       10,    11,    12,     0,    40,    41,     0,  1234,     0,     0,
    1996        0,     0,     0,  1238,  1239,     0,     0,     0,     0,     0,
    1997        0,     0,     0,     0,  1249,    30,   210,     0,     0,  1253,
    1998      262,     0,  1257,   351,  1258,     0,     0,  1260,  1347,   352,
    1999      263,     0,    84,   210,    72,     0,  1349,  1350,  1351,     0,
    2000     1268,     0,     0,    33,   344,   173,     0,     0,     0,     0,
    2001        0,     0,     0,  1275,     0,  1277,  1278,  1279,  1280,     0,
    2002        0,     0,     0,    84,     0,     0,   210,     0,     0,     0,
    2003        0,  1287,     0,  1288,     0,     0,     0,   169,     0,     0,
    2004        0,     0,     0,  1497,  1386,  1497,     0,     0,   351,     0,
    2005        0,     0,     0,     0,     0,     0,     0,     0,   222,     0,
    2006        0,  1094,   531,    54,     0,  -291,  1316,  1317,     0,     0,
    2007        0,     0,     8,     9,    10,    11,    12,   349,   211,  1321,
    2008     1497,     0,  1497,     0,    77,   409,     0,     0,     0,    77,
    2009        0,     0,   417,   351,   351,   351,     0,     0,     0,    30,
    2010        0,     0,     0,   513,   344,     0,     0,     0,     0,     0,
    2011      724,   351,     0,     0,     0,     0,  1352,  1353,   724,   724,
    2012      724,     0,     0,     0,     0,     0,  1363,    33,     0,   351,
    2013      349,   349,     0,   349,   349,     0,     0,     0,     0,     0,
    2014       75,     0,     0,     0,     0,   359,   351,     0,   210,     0,
    2015        0,     0,     0,    72,     0,     0,     0,     0,     0,     0,
    2016        0,     0,     0,     0,   409,     0,   724,     0,     0,   344,
    2017      173,     0,     0,     0,     0,     0,   210,     0,  1396,     0,
    2018        0,   210,    75,   221,     0,   351,     0,     0,   349,   349,
    2019     1400,     0,  1401,  1402,  1403,     0,     0,    36,     0,   180,
    2020      181,    39,     0,     0,  1407,     0,     0,  1210,    40,    41,
    2021        0,     0,     0,  1418,   344,   344,   344,     0,   531,   580,
    2022        0,   351,     0,     0,     0,     0,     0,   584,     0,  1431,
    2023      587,     0,   344,     0,  1521,     0,   407,     0,     0,     0,
    2024       84,     0,     0,     0,  1522,    84,     0,     0,     0,     0,
    2025       77,   349,     0,     0,     0,     0,   211,     0,     0,     0,
    2026        0,     0,     0,   351,     0,   352,     0,     0,   210,     0,
    2027       77,     0,     0,   351,     0,     0,   351,     0,    77,     0,
    2028        0,   220,   210,   351,     0,  1480,  1481,     0,   351,     0,
    2029        0,     0,     0,   409,   219,     0,     0,   417,  1486,     0,
    2030        0,     0,   503,     0,   352,  1486,   344,     0,     0,     0,
    2031        0,     0,     0,     0,     0,     0,    72,     0,     0,     0,
    2032        0,     0,   352,     0,    77,     0,     0,     0,     0,   349,
    2033        0,   349,     0,     0,     0,     0,     0,     0,  1520,   222,
    2034        0,     0,  1526,     0,     0,     0,     0,     0,     0,     0,
    2035       75,   211,     0,     0,     0,     0,     0,     0,     0,     0,
    2036      349,     0,     0,     0,     0,   352,     0,     0,   349,   349,
    2037      349,  1548,     0,  1549,     0,   210,     0,     0,     0,   349,
    2038      349,     0,   409,     0,     8,     9,    10,    11,    12,     0,
    2039        0,     0,     0,    72,     0,     0,     0,   344,     0,     0,
    2040        0,  1564,  1565,     0,   344,     0,    84,     0,     0,  1568,
    2041     1569,    30,     0,     0,     0,     0,   349,     0,     0,     0,
    2042        0,   359,     0,     0,     0,     0,    84,     0,     0,     0,
    2043      352,     0,     0,   351,    84,     0,     0,     0,     0,    33,
    2044        0,     0,     0,     0,    36,  1377,   180,   181,    39,     0,
    2045        0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
    2046      359,     0,     0,     0,     0,   173,     0,     0,     0,     0,
    2047        0,    54,     0,   580,   580,   352,   352,   352,   359,     0,
    2048       84,   605,     0,   606,     0,     0,   351,   351,     0,   351,
    2049      351,   607,     0,   352,     0,     0,     0,     0,     0,     0,
    2050        0,     0,     0,     0,   349,     0,     0,     0,     0,    75,
    2051        0,   352,     0,     0,     0,     0,     0,     0,     0,     0,
    2052        0,   359,    77,     0,     0,     0,     0,     0,   352,     8,
    2053        9,    10,    11,    12,     0,     0,     0,     0,    54,     0,
    2054        0,     0,     0,     0,   351,   351,     0,   123,   123,   123,
    2055        0,     0,     0,    72,   344,     0,    30,     0,     0,     0,
    2056       72,   905,     0,     0,    77,   908,   210,   352,   540,   541,
    2057      542,   543,   544,   545,   546,   547,   548,   549,     0,     0,
    2058        0,     0,     0,     0,    33,     0,   359,     0,     0,    36,
    2059        0,   180,   181,    39,     0,     0,     0,     0,   409,     0,
    2060       40,    41,   550,   352,  1494,     0,  1498,   351,     0,     0,
    2061      344,   344,     0,    72,     0,     0,     0,     0,   123,     0,
    2062      123,     0,     0,     0,     0,     0,   693,     0,   407,     0,
    2063       54,   359,   359,   359,     0,     0,   695,     0,     0,     0,
    2064      173,  1527,     0,  1529,   272,   352,     0,     0,     0,   359,
    2065      220,     0,     0,     0,     0,   352,     0,     0,   352,     0,
    2066        0,     0,     0,   221,     0,   352,     0,   359,     0,     0,
    2067      352,     0,    75,     0,     0,     0,     0,     0,    84,     8,
    2068        9,    10,    11,    12,   359,   351,  1558,   351,  1559,     0,
    2069        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2070      123,  1566,  1567,     0,     0,     0,    30,     0,   123,     0,
    2071      123,   123,   580,     0,     0,   123,   351,   123,   123,    30,
    2072       84,     0,     0,   359,   351,   351,   351,     0,     0,   121,
    2073      124,   125,    77,     0,    33,   351,   351,     0,     0,    36,
    2074        0,   180,   181,    39,   210,     0,     0,    33,     0,    75,
    2075       40,    41,    36,     0,   180,   181,    39,     0,     0,   359,
    2076        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2077       54,    54,   351,     0,     0,     0,  1521,     0,   407,     0,
    2078        0,     0,     0,     0,     0,     0,  1522,   123,     0,   182,
    2079        0,     0,     0,    54,     0,     0,     0,     0,     0,   183,
    2080      251,   359,   252,     0,     0,     0,     0,     0,   208,     0,
    2081        0,   359,    54,     0,   359,   352,     0,     0,   228,   222,
    2082      232,   359,   234,     0,   162,   409,   359,     0,     0,   243,
     1784     110,   396,    46,    95,   146,   425,   450,   380,   381,   147,
     1785     404,   148,   397,   111,   405,   788,   398,   611,   765,   616,
     1786     930,   972,   399,   437,   931,   400,   709,   868,  1089,   932,
     1787     892,   401,   746,    46,    95,   715,   257,   503,   850,   992,
     1788     402,   635,   851,   525,    46,   639,    46,   158,   854,  1183,
     1789    1199,  1181,  1182,    30,   861,   748,    46,   839,   149,   753,
     1790    1463,  1141,    46,   190,   843,    46,   213,  1149,    46,   223,
     1791     264,   817,   108,    47,   173,   150,   844,   845,   216,   840,
     1792     174,   396,   407,    60,   842,   340,   151,  1459,   841,   108,
     1793     404,   119,   397,   676,   405,   704,   398,   948,  1396,   930,
     1794    -233,  -233,   399,   931,    47,   400,    46,    74,   932,    46,
     1795     113,   401,  1315,   685,    60,    46,  1193,   140,  1416,  1417,
     1796     402,   689,   108,   249,   173,   408,   199,   173,  1216,  1217,
     1797     258,    30,  1207,   259,   534,   406,  1211,   288,    74,   277,
     1798    1416,  1417,  1260,  1088,   146,   120,    46,   158,   855,   147,
     1799     108,   148,   858,   156,    46,   422,   480,   482,  1463,    46,
     1800     370,  1459,  1096,  1463,   743,   108,   975,   136,   235,   776,
     1801    1261,  -233,   173,   875,   679,   681,   200,   878,   680,   682,
     1802     481,  1316,  1209,  1463,    46,    46,   158,   165,  1418,   780,
     1803    1463,   839,    53,   112,    67,   163,  1257,   278,   149,    30,
     1804      46,  1479,   236,   408,   510,    66,   534,   237,    46,   158,
     1805    1427,   166,   255,   840,   674,   150,   283,    46,   156,   139,
     1806      46,   440,   841,    53,   146,    67,   151,    40,    41,   147,
     1807     671,   148,   141,  1131,   672,   173,    66,    30,   476,   883,
     1808     884,   436,  1189,   108,   108,   136,   137,  1183,   470,   108,
     1809      46,    95,   321,   519,   752,   207,   902,   209,   217,   108,
     1810     163,   337,   525,   143,    46,    46,   158,   525,  1151,  1190,
     1811     525,    46,   594,   767,   152,   828,   854,  1034,    46,   160,
     1812     700,  1035,   616,   786,   702,   240,   839,   709,  1345,   173,
     1813     522,    30,  1199,   843,   325,   488,   173,  1183,  1347,  1181,
     1814    1182,   340,   505,  1198,   934,   844,   845,   416,   840,   408,
     1815    1011,   427,   671,  1022,  1505,   431,   672,   841,   877,  1341,
     1816     481,    47,   168,   725,   810,  1132,   947,    30,    46,   370,
     1817     955,    60,  1133,  1213,   468,   108,   477,   136,   137,   821,
     1818     572,   534,   574,   534,   160,   321,   453,    46,    46,  1534,
     1819     663,  1536,  1089,   178,   534,    74,   108,   433,   136,   137,
     1820      74,   486,   444,   408,    46,   173,   923,    30,    46,   758,
     1821    1399,   174,   562,   563,   888,   573,   759,   431,   678,   583,
     1822     493,   465,   173,   198,   683,   584,   173,   325,   636,   973,
     1823     851,  -289,   640,   749,   244,    46,  1339,   852,   750,   608,
     1824     476,   527,   247,  1340,   156,    46,   370,  1038,   564,   565,
     1825     438,  1489,   439,   843,   881,   881,   881,   170,   868,   433,
     1826     476,  1183,  1014,    46,  1454,   844,   845,  1547,   476,    46,
     1827    1518,    46,   881,   249,  1548,   757,  1523,   859,  1190,   608,
     1828      53,   432,    67,  -111,  -516,  -465,   163,  1558,   593,   173,
     1829    1403,   600,  1199,    66,  1562,    46,   261,  1543,  1077,  1199,
     1830     250,  1563,  1550,   340,  -111,  1169,  1171,  1088,  1448,  1449,
     1831     633,   110,   458,   374,   637,   555,  -465,   337,  -465,    46,
     1832     556,   557,  -465,   498,   690,   499,   384,    46,   370,   375,
     1833     584,    46,    95,   605,   387,    46,   893,   389,   477,  1115,
     1834    1099,  1147,   385,   432,   391,    94,   881,  1016,   249,   327,
     1835     388,   828,  1199,   390,   396,  1256,   503,   764,   477,  1033,
     1836     392,   616,    74,  1118,   404,   397,   477,   529,   405,   398,
     1837     160,   725,   321,   321,   781,   399,    94,   764,   400,   787,
     1838     764,   209,    74,   -10,   401,  1378,  1035,   145,   710,    94,
     1839      74,  -111,  -111,   402,   585,   414,   408,   712,   104,   104,
     1840     453,   906,    47,   453,   711,   186,  1376,  -111,    94,   453,
     1841     734,    94,    60,   713,   325,   325,  -439,  1104,   434,   328,
     1842     576,   113,   408,  1130,  -290,   704,   710,   470,   442,   104,
     1843     577,     8,     9,    10,    11,    12,    74,    46,   881,   913,
     1844     712,   828,   926,   894,   558,   559,   493,  1196,   321,    46,
     1845     493,    46,   588,  1196,   408,   173,   927,  1330,   904,    30,
     1846     527,  1204,   527,  1197,   104,   527,   340,   321,   527,  1321,
     1847      46,  1104,  1033,  1331,   895,   727,   650,   329,   744,   337,
     1848     896,   728,  1332,  1426,   745,   933,    46,    33,   173,    94,
     1849     325,   535,   536,   537,   870,   560,   561,   526,  1333,   903,
     1850      46,   905,    94,    46,   173,  -440,   725,   933,   273,   325,
     1851     885,   709,   209,   476,   772,   538,   725,   539,   173,   540,
     1852     541,    53,   275,    67,   901,   976,   458,   395,   186,   458,
     1853    1379,   725,  1046,   321,    66,   458,   603,    46,   774,    46,
     1854     408,   760,   340,   761,   826,  1495,   762,   600,   775,   768,
     1855     276,    94,  1495,  1093,   956,   952,   608,     8,     9,    10,
     1856      11,    12,   754,    94,   957,   771,   330,   951,   755,   331,
     1857    1497,   772,  1498,  1053,   917,   325,   867,  1126,   871,  1249,
     1858     772,   600,   872,    46,    46,    30,   529,   876,   529,   605,
     1859     736,   529,   873,    94,   529,   919,   874,    46,  1005,   873,
     1860    -104,   772,   671,  1114,  -104,  1544,   672,   484,    63,   114,
     1861     700,   477,  1364,    33,   702,   173,  1365,   734,   869,  1000,
     1862     828,   505,  1077,   605,  1013,  1001,  1245,  1545,  1372,  1247,
     1863     728,  1388,   584,  1251,   772,    74,   332,  1289,  1290,    63,
     1864     226,   830,   337,   333,   227,   687,   104,   231,  1373,   233,
     1865     566,   567,   157,   477,   772,   576,   242,   408,    36,   368,
     1866     171,   172,    39,   439,   453,   577,  1375,  1380,   369,    40,
     1867      41,    94,   772,   772,   218,  1173,  1048,    74,    46,   729,
     1868     907,   737,   408,     2,   203,     4,     5,     6,     7,   373,
     1869      46,   610,   930,   734,   493,   369,   931,   798,   799,   800,
     1870     801,   932,     2,   203,     4,     5,     6,     7,  1445,   382,
     1871     910,   256,   408,  -111,  1442,  -111,   526,  1389,   337,  -111,
     1872    1464,   526,   394,  1511,   526,   386,   772,  1568,    36,  1512,
     1873     725,   725,    39,   584,  -111,  -111,  1194,   406,  1075,    40,
     1874      41,   249,   327,   408,   882,   882,   882,    34,   186,    35,
     1875     423,  1153,   326,   408,   126,   209,   127,   128,   129,   424,
     1876     256,   347,   882,    46,   933,   836,    34,   608,    35,   209,
     1877     108,  1415,   136,   137,  1423,   609,  1015,    46,  1004,  1001,
     1878     826,   173,   226,   429,  1165,    46,   408,   447,   725,   725,
     1879     458,   403,   603,  1297,  1298,  1150,  1300,   736,   701,   535,
     1880     536,   537,  1304,    46,   460,  1307,   421,   772,  1006,   426,
     1881     428,   416,   667,   408,   157,   486,   327,   408,  1119,  1462,
     1882    1135,   603,    60,   538,  1466,   539,   603,   540,  1317,    -3,
     1883     852,   327,   608,   463,    94,   445,   882,  1143,   610,   448,
     1884     764,   449,  1143,   327,   408,  1048,    74,  1444,  1385,  1386,
     1885     464,  1308,  1309,  1310,  1488,   466,    63,  1346,  1348,  1349,
     1886     164,   478,   169,   209,  1456,   175,   176,   177,   467,   179,
     1887     826,   485,   108,   736,   453,   489,  1168,   830,   608,   428,
     1888    1170,   915,   608,  1233,   230,   408,   288,   104,   737,   509,
     1889     922,  1143,  1436,  1001,   924,   976,   245,   246,    36,   976,
     1890     976,  1075,    39,   513,  1208,  1210,  1212,  1442,  1443,    40,
     1891      41,  1490,  1491,   530,   493,  1121,   321,   938,  1240,   938,
     1892     933,   518,   226,   534,   231,  1416,  1417,   568,   882,   571,
     1893    1326,    53,   570,    67,   569,    42,   574,  1516,  1456,   336,
     1894    1557,   794,   795,  -436,    66,   144,  1557,   256,   796,   797,
     1895     601,   592,   838,   673,   610,   595,   629,  1557,   325,   802,
     1896     803,  1557,   725,    46,   737,  1422,   645,   867,   664,   634,
     1897     725,   725,   725,   634,   665,   666,   256,   668,   933,   933,
     1898     669,   670,   477,   254,  1530,     8,     9,    10,    11,    12,
     1899     675,   340,     2,   203,     4,     5,     6,     7,  1120,    36,
     1900     458,   180,   181,    39,   693,   716,    74,   718,  -237,   869,
     1901      40,    41,   226,    30,  1337,   756,   769,   773,   725,   777,
     1902     225,   891,   831,   478,   833,   835,     8,     9,    10,    11,
     1903      12,   846,   -12,   890,  1104,   898,   182,   921,   347,   918,
     1904     929,    33,   701,   478,   920,   925,   183,   696,   453,   826,
     1905     946,   478,  -413,   216,    30,   439,    34,   745,    35,  -520,
     1906      46,   960,  1075,   969,     8,     9,    10,    11,    12,   967,
     1907     974,   980,   212,   981,   982,   984,   985,   721,   173,   986,
     1908     428,   734,    33,   987,   996,  1008,   838,   610,  1009,   239,
     1909    1010,    53,    30,    67,  1119,   735,  1024,    63,  1025,  1143,
     1910    1143,  1143,  1397,  1026,  1201,   428,  1397,  1027,  -291,   428,
     1911      36,  1028,   171,   172,    39,     8,     9,    10,    11,    12,
     1912      33,    40,    41,   212,   774,    36,   408,  1029,  1098,    39,
     1913    1030,  1041,  -401,  -400,   775,  1090,    40,    41,   256,   347,
     1914    1055,  1092,  1180,    30,  1100,  1101,    60,  1556,  1107,  1102,
     1915    1103,  1108,   599,   606,  1117,  1110,   764,  1075,  1109,  1111,
     1916    1127,   734,    42,  1129,   630,   631,   212,   337,   772,  1128,
     1917      74,    33,   144,  1134,   458,   990,  1139,  1142,  1163,  1184,
     1918    1185,   838,  1186,  1187,  1202,   816,   396,  1119,   933,  1188,
     1919    1203,  1121,  1440,   610,  1205,   404,  1206,   397,  1214,   405,
     1920    1218,   398,  1221,   634,   829,   933,   601,   399,  1480,  1220,
     1921     400,  1075,   603,    -3,  1075,  1226,   401,   848,  1231,   671,
     1922    1237,  1246,   498,   672,   477,   402,  1241,   212,  1248,  1250,
     1923    1253,  1254,   207,   217,   209,   601,    46,    46,  1258,  1262,
     1924     601,  1265,  1267,  1143,  1143,  1269,   634,  1270,    74,   347,
     1925     347,   347,  1271,  1272,   173,    53,  1273,    67,  1275,  1075,
     1926    1439,   736,  1282,  1291,  1075,   212,  1292,   347,    66,   212,
     1927    1299,  1302,  1328,  1320,  1120,  1215,  1334,  1303,   933,   933,
     1928     701,  1305,  1481,  1336,  1121,   721,  1338,  1306,   701,  1314,
     1929    1119,  1342,  1343,  1344,  1075,  1350,   478,   104,  1351,  1529,
     1930    1352,   256,   735,  1354,   159,   935,   610,  1360,  1361,  1362,
     1931      36,  1363,   171,   172,    39,  1370,  1371,  1374,  1381,  1382,
     1932     191,    40,    41,   214,  1310,  1390,   224,    72,   438,   146,
     1933     439,  1391,  1393,    53,   147,    67,   148,  1403,   478,  1400,
     1934    1410,   347,  1531,  1411,    46,  -402,  1201,   373,  1414,  1425,
     1935     961,  1539,   737,   428,  1429,  1433,   212,  1075,    72,  1431,
     1936    1434,  1435,  1075,  1441,   104,  1446,  1450,  1120,  1365,    46,
     1937      46,   158,  1451,  1455,   138,  1452,  1453,   256,   735,  1465,
     1938    1075,  1467,  1075,   989,   477,  1460,  1075,  1121,  1469,  1075,
     1939    1367,   477,   410,   219,    46,   370,  1471,  1075,  1473,   418,
     1940    1475,  1075,  1477,  1478,   159,  1483,  1484,  1485,    74,  1496,
     1941    1506,  1508,  1510,  1522,  1537,    74,  1538,   371,  1514,  1502,
     1942     721,  1502,  1515,  1542,   726,   238,   241,  1549,  1551,  1553,
     1943     721,  1566,   737,   347,  1567,   634,  1219,   212,  1021,   634,
     1944     829,  -292,   804,   159,   477,   721,  1559,   805,     8,     9,
     1945      10,    11,    12,   806,  1319,  1032,  1502,   104,  1502,   807,
     1946    1517,     8,     9,    10,    11,    12,   159,  1428,    74,   808,
     1947    1120,   410,  1569,    36,  1384,  1252,    30,    39,   441,    36,
     1948     350,   180,   181,    39,    40,    41,   321,   212,  1401,    30,
     1949      40,    41,  1499,    53,  1225,    67,  1105,   691,   720,   939,
     1950      53,   692,    67,   823,    33,   897,  1201,    63,  1106,   962,
     1951     741,  1138,  1054,  1201,  1116,  1383,   695,    33,   408,   739,
     1952     742,  1329,   970,     0,   696,   813,   697,   582,   325,   634,
     1953       0,     0,   949,   814,   950,   586,   815,     0,   589,     0,
     1954       0,   953,   954,     0,     0,  1503,   959,  1503,     0,     0,
     1955       0,     0,     0,    53,   446,    67,     0,     0,   964,   956,
     1956       0,   608,     0,   968,     0,  1113,  1201,     0,     0,   957,
     1957       0,     0,     0,   428,   114,    72,     0,     0,     0,     0,
     1958      72,   515,  1503,     0,  1503,   462,   371,     0,     0,   997,
     1959       0,   347,     0,     0,   532,   533,     0,     0,     0,   104,
     1960       0,   410,     0,     0,     0,   418,   554,     0,     0,     0,
     1961     212,     0,    36,     0,   180,   181,    39,     0,     0,     0,
     1962       0,   104,     0,    40,    41,    36,   601,   180,   181,    39,
     1963       0,     0,   726,     0,   599,     0,    40,    41,   212,   426,
     1964     104,     0,   533,   212,   721,   721,     0,   347,   347,   607,
     1965       0,   608,     0,     0,     0,     0,     0,     0,     0,   609,
     1966       0,     0,   695,   371,   408,     0,     0,  1200,     0,     0,
     1967       0,     0,   697,     0,  1500,   219,  1504,    36,   533,   180,
     1968     181,    39,     0,     0,     0,     0,     0,     0,    40,    41,
     1969     410,  1042,  1043,  1044,  1045,     0,  1047,     0,     0,   104,
     1970       0,     0,   721,   721,     0,     0,     0,     0,   634,     0,
     1971      75,  1533,  1091,  1535,  1527,     0,   408,    36,     0,   180,
     1972     181,    39,   651,     0,  1528,     0,  1097,   210,    40,    41,
     1973     212,     0,     0,   104,     0,     0,     0,   229,     0,     0,
     1974       0,    75,    72,     0,   212,     0,     0,     0,     0,     0,
     1975       0,     0,     0,     0,   262,     0,  1564,   350,  1565,     0,
     1976       0,     0,    72,     0,   263,  1112,   735,   726,     0,     0,
     1977      72,  1572,  1573,     0,     0,     0,   220,   726,   210,     0,
     1978       0,     0,   582,   582,     0,     0,     0,     0,     0,     0,
     1979       0,     0,   726,     0,     0,     0,   350,     0,     0,     0,
     1980       0,     0,     0,   714,     0,  1140,     0,     0,   462,  1296,
     1981       0,     0,  1148,     0,   350,     0,    72,  1152,     0,     0,
     1982       0,   210,  1156,     0,  1157,     0,   256,     0,  1159,  1160,
     1983    1161,    63,     0,  1164,     0,     0,   104,     0,   212,     0,
     1984       0,   747,  1176,   751,   721,     0,   735,     0,     0,     0,
     1985     114,     0,     0,     0,     0,   791,   792,   793,   350,   104,
     1986    1191,  1192,     0,   352,     0,     0,   104,     0,     0,     0,
     1987     908,     0,   484,     0,   911,     0,   721,     0,     0,     0,
     1988       0,     0,   210,     0,   721,   721,   721,  1222,   211,     0,
     1989    1224,     0,     0,     0,     0,   347,   347,     0,   533,     0,
     1990       0,     0,     0,     0,     0,     0,     0,   410,     0,  1200,
     1991       0,     0,     0,    54,    54,     0,     0,     0,     0,   104,
     1992     210,     0,     0,   350,   210,     0,     0,     0,  1239,     0,
     1993       0,     0,   721,     0,  1243,  1244,     0,     0,     0,   211,
     1994     504,     0,     0,   114,    54,     0,  1255,     0,     0,     0,
     1995       0,  1259,     0,     0,  1263,     0,  1264,     0,    75,  1266,
     1996       0,     0,     0,    75,     0,     0,     0,     0,   350,   350,
     1997     350,     0,  1274,     0,     0,     0,    54,     0,     0,    54,
     1998       0,    77,   211,     0,     0,  1281,   350,  1283,  1284,  1285,
     1999    1286,   726,   726,     0,     0,   889,     0,     0,     0,     0,
     2000       0,     0,    84,  1293,   350,  1294,     0,     0,     0,   169,
     2001       0,   210,    77,     0,     0,    72,     0,     0,     0,     0,
     2002     347,   350,   582,     0,     0,     0,     0,     0,     0,     0,
     2003     212,   533,     0,    84,     0,   916,     0,     0,  1322,  1323,
     2004       0,     0,     0,   211,     0,     0,   114,   221,     0,   726,
     2005     726,     0,     0,     0,     0,   942,     0,    72,   220,     0,
     2006     350,   945,     0,     0,     0,     0,   345,     0,   222,  1200,
     2007       0,     0,     0,     0,     0,     0,  1200,   991,     0,     0,
     2008       0,   211,     0,     0,     0,   211,     0,     0,     0,  1358,
     2009    1359,     0,   210,     0,     0,     0,     0,   350,     0,  1369,
    20832010       0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
    2084        0,     0,     0,   215,     0,     0,     0,     0,     0,     0,
    2085        8,     9,    10,    11,    12,     0,   344,   344,     0,   208,
    2086      351,   232,   234,   243,     0,    54,     0,     0,   352,   352,
    2087       54,   352,   352,     0,     0,     0,     0,    30,     0,     0,
    2088        0,     0,   392,     0,     0,     0,     0,     0,    84,   162,
    2089        0,    77,   411,   412,   269,     0,     0,   416,     0,   418,
    2090      419,     0,   208,  1149,    54,    33,     0,     0,     0,    75,
    2091       36,     0,   180,   181,    39,     0,    75,     0,     0,  1161,
    2092        0,    40,    41,   162,     0,     0,   352,   352,     0,     0,
    2093        0,     0,     0,   365,     0,     0,     0,   371,     0,     0,
    2094        0,     0,     0,     0,     0,     0,     0,   262,     0,     0,
    2095        0,     0,     0,     0,     0,     0,     0,   263,     0,     0,
    2096        0,     0,     0,   208,     0,   232,   234,   243,     0,    75,
    2097        0,   359,     0,     0,     0,     0,     0,     0,     0,     0,
    2098        0,   344,     0,     0,     0,     0,   162,     0,     0,   352,
    2099        0,     0,     0,     0,     0,     0,  1229,     0,   215,     0,
    2100        0,   208,     0,     0,     0,   208,     0,    54,     0,     0,
    2101        0,     0,     0,     0,     0,     0,   162,   458,     0,     0,
    2102        0,   501,     0,     0,   359,   359,     0,   359,   359,     0,
    2103       54,     0,   221,     0,     0,     0,     0,    54,     0,     0,
    2104      371,     0,     0,     0,     0,     0,     0,    84,   162,     0,
    2105        0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
    2106        0,     0,     0,     0,     0,     0,     0,   352,     0,   352,
    2107      208,   458,     0,     0,   162,     0,     0,     0,     0,     0,
    2108        0,     0,   359,   359,     0,     0,     0,     0,     0,     0,
    2109       54,   208,     0,     0,     0,     0,   232,   234,   352,     0,
    2110      123,   123,     0,     0,   243,     0,   352,   352,   352,     0,
    2111        0,     0,     0,     0,     0,     0,     0,   352,   352,     0,
    2112        0,   602,     0,     0,     0,     0,   626,     0,     0,     0,
    2113      123,    77,     0,   123,   123,   279,   123,   280,   123,   123,
    2114        0,     0,     0,   123,   123,   359,     0,   208,     0,     0,
    2115        0,     0,     0,     0,   352,     0,     0,     0,     0,     0,
    2116        0,     0,     0,   281,     0,   208,     0,     0,     0,   282,
    2117      208,     0,   208,   283,     0,     0,   284,   285,   286,   287,
    2118       40,    41,     0,   288,   289,     0,     0,     0,   222,   208,
    2119        0,   290,   208,   208,     0,     0,     0,     0,     0,     0,
    2120        0,     0,   162,   162,     0,     0,   510,     0,   208,   365,
    2121       84,     0,     0,     0,     0,   293,   377,   295,   296,   297,
    2122      298,   123,   208,   359,     0,   359,   123,   123,     0,   208,
    2123      458,     0,   123,   458,     0,     0,     0,     0,     0,   458,
    2124        0,     0,   352,     0,     0,     0,     0,     0,     0,     0,
    2125        0,     0,     0,     0,   359,     0,     0,     0,     0,     0,
    2126        0,     0,   359,   359,   359,     0,   736,     0,     0,     0,
    2127        0,     0,     0,   359,   359,     0,     0,     0,   162,     0,
    2128        0,     0,   815,   816,     0,     0,   153,    84,     0,     0,
    2129      458,    77,     0,     0,   458,     0,   162,   458,    77,     0,
    2130        0,     0,     0,     0,     0,     0,     0,     0,     0,   365,
    2131      359,     0,   850,     0,     0,   853,   854,     0,   857,     0,
    2132      859,   860,     0,     0,     0,   861,   862,     0,     0,     0,
    2133        0,     0,   248,     0,     0,     0,     0,     0,     0,     0,
    2134        0,     0,   253,     0,   208,     0,     0,     0,     0,     0,
    2135        0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
    2136        0,     0,   162,     0,     0,     0,     0,     0,     0,     0,
    2137        0,     0,   208,     0,   365,     0,   602,   208,     0,   831,
     2011     542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
     2012       0,     0,     0,     0,   533,    75,     0,     0,     0,  1200,
     2013       0,    54,     0,     0,   353,   410,  1552,     0,     0,   350,
     2014     352,     0,   210,     0,   552,    75,     0,     0,     0,   350,
     2015       0,  1402,   350,    75,     0,   360,     0,   219,     0,   350,
     2016       0,    54,     0,  1406,   350,  1407,  1408,  1409,     0,     0,
     2017    1007,     0,   211,     0,     0,     0,     0,  1413,     0,   352,
     2018    1012,     0,     0,     0,     0,     0,  1424,     0,     0,     0,
     2019       0,  1327,     0,     0,     0,  1023,     0,   352,     0,    75,
     2020       0,     0,  1437,     0,     0,     0,     0,     0,     0,   212,
     2021       0,     0,     0,     0,  1154,     0,     0,     0,     0,     0,
     2022       0,     0,     0,   726,     0,     0,    72,     0,     0,    77,
     2023    1166,   726,   726,   726,    77,     0,   651,     0,     0,     0,
     2024       0,   352,     0,  1058,     0,     0,     0,     0,     0,     0,
     2025      84,     0,     0,   211,     0,    84,     0,     0,  1486,  1487,
     2026       8,     9,    10,    11,    12,   210,     0,     0,     0,     0,
     2027       0,  1492,     0,     0,     0,     0,     0,     0,  1492,   726,
     2028       0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
     2029       0,     0,     0,   210,     0,     0,     0,     0,   210,     0,
     2030       0,     0,     0,   211,     0,   212,   352,  1234,     0,     0,
     2031     350,  1526,     0,     0,     0,  1532,    33,     0,   533,     0,
     2032       0,    36,     0,   180,   181,    39,     0,     0,     0,   221,
     2033       0,     0,    40,    41,     0,   651,     0,     0,     0,     0,
     2034       0,     0,     0,   345,  1554,     0,  1555,     0,     0,     0,
     2035     222,   352,   352,   352,     0,     0,     0,     0,   607,   515,
     2036     608,     0,     0,   350,   350,     0,   350,   350,   609,   352,
     2037       0,     0,     0,     0,  1570,  1571,     0,     0,     0,     0,
     2038       0,     0,  1574,  1575,     0,   210,    72,   352,     0,     0,
     2039       0,     0,     0,     0,  1178,  1179,    77,     0,    75,   210,
     2040       0,     0,    54,     0,   352,     0,     0,     0,     0,     0,
     2041       0,   353,     0,     0,     0,     0,    77,    84,     0,   504,
     2042       0,   350,   350,     0,    77,     0,   211,     0,     0,     0,
     2043       0,     0,   360,     0,     0,  1058,     0,    84,     0,     0,
     2044      75,     0,     0,   352,   345,    84,     0,     0,     0,     0,
     2045     353,     0,  1228,  1229,   211,     0,     0,     0,     0,   211,
     2046       0,     0,     0,     0,     0,     0,     0,     0,   353,     0,
     2047      77,   360,     0,     0,     0,   533,     0,     0,     0,     0,
     2048     352,     0,     0,     0,     0,   350,     0,     0,     0,   360,
     2049       0,    84,     0,   210,     0,     0,     0,     0,     0,     0,
     2050       0,     0,     0,     8,     9,    10,    11,    12,     0,   345,
     2051       0,     0,   353,     0,     0,     0,     0,     0,     0,     0,
     2052       0,     0,   352,     0,     0,     0,     0,     0,   219,     0,
     2053       0,    30,   352,   360,     0,   352,     0,     0,     0,     0,
     2054     220,  1295,   352,     0,     0,     0,   211,   352,     0,     0,
     2055      72,     0,     0,     0,   345,   345,   345,     0,     0,    33,
     2056     211,     0,     0,   350,    36,   350,   180,   181,    39,     0,
     2057       0,     0,   345,     0,     0,    40,    41,   353,     0,     0,
     2058       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2059       0,     0,     0,     0,     0,   350,     0,     0,   360,     0,
     2060       0,   182,     0,   350,   350,   350,     0,     0,     0,    75,
     2061       0,   183,     0,     0,   350,   350,     0,     0,     0,     0,
     2062       0,     0,   353,   353,   353,     0,  1353,     0,    72,     0,
     2063       0,     0,     0,     0,  1355,  1356,  1357,     0,     0,     0,
     2064     353,     0,     0,   360,   360,   360,   345,     0,     0,     0,
     2065       0,   350,     0,     0,   211,     0,     0,     0,   353,     0,
     2066       0,   360,     0,     0,     0,     0,     0,     0,     0,    77,
     2067       0,     0,     0,     0,     0,   353,     0,     0,     0,   360,
     2068       0,     0,  1392,     0,     0,   210,     0,     0,     0,     0,
     2069      84,     0,     0,   352,     0,     0,   360,     0,     0,     0,
     2070       0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
     2071       0,    77,     0,     0,   353,     0,     0,     0,     0,     0,
     2072       0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
     2073       0,     0,    84,     0,     0,   360,     0,     0,   345,   350,
     2074       0,     0,     0,     0,     0,   345,   352,   352,     0,   352,
     2075     352,   353,     0,     0,     0,     0,     0,    33,     0,     0,
     2076       0,     0,    36,     0,   180,   181,    39,     0,     0,    75,
     2077       0,     0,   360,    40,    41,     0,     0,     0,     0,     0,
     2078       0,     0,     0,     0,     0,     0,     0,     0,    72,     0,
     2079       0,     0,     0,   353,     0,    72,     0,     0,     0,   695,
     2080       0,   408,     0,   353,   352,   352,   353,     0,     0,   697,
     2081       0,   221,    54,   353,   360,     0,     0,     0,   353,     0,
     2082       0,     0,     0,     0,   360,     0,     0,   360,     0,     0,
     2083       0,     0,   222,     0,   360,     0,     0,     0,     0,   360,
     2084       0,     8,     9,    10,    11,    12,   211,     0,    72,     0,
     2085       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2086       0,     0,     0,     0,   210,     0,     0,     0,   352,    30,
     2087       0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
     2088      77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2089       0,     0,     0,     0,     0,     0,   345,    33,     0,     0,
     2090       0,    84,    36,     0,   180,   181,    39,     0,     0,     0,
     2091       0,   220,     0,    40,    41,     0,     0,     0,     0,     0,
     2092       0,     0,     0,     0,     0,     0,     0,     0,     8,     9,
     2093      10,    11,    12,    75,     0,     0,   121,   124,   125,  1527,
     2094       0,   408,     0,     0,     0,     0,   352,     0,   352,  1528,
     2095       0,     0,   345,   345,     0,     0,    30,   162,     0,     0,
     2096     210,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2097       0,     0,    54,     0,     0,     0,   215,     0,   352,     0,
     2098       0,     0,     0,     0,    33,   360,   352,   352,   352,    36,
     2099       0,   180,   181,    39,     0,     0,     0,   352,   352,     0,
     2100      40,    41,     0,     0,     0,     0,     0,   251,     0,   252,
     2101       0,    75,     0,     0,     0,     0,     0,   353,   353,     0,
     2102     353,   353,   162,     0,     0,   211,   262,   269,     0,     8,
     2103       9,    10,    11,    12,   352,     0,   263,     0,   360,   360,
     2104      77,   360,   360,     0,     0,     0,     0,     0,     0,     0,
     2105       0,     0,     0,     0,     0,     0,   162,    30,     0,     0,
     2106       0,    84,     0,     0,     0,     0,   366,     0,     0,     0,
     2107     372,     0,     0,     0,     0,   353,   353,     0,     0,     0,
     2108       0,     0,     0,     0,     0,    33,     0,     0,     0,   393,
     2109      36,     0,     0,     0,    39,     0,   360,   360,     0,   412,
     2110     413,    40,    41,     0,   417,     0,   419,   420,     0,     0,
     2111       0,     0,     0,    54,    54,     0,     0,     0,     0,   162,
     2112       0,   211,   352,     0,     0,     0,     0,   741,     0,     0,
     2113       0,   215,     0,     0,     0,     0,    54,   742,     0,   353,
     2114       0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
     2115     459,     0,     0,     0,     0,    54,     0,     0,     0,     0,
     2116     360,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2117       0,    75,     0,   372,     0,     0,     0,     0,    75,     0,
     2118       0,   162,   221,     8,     9,    10,    11,    12,    13,    14,
     2119      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2120     345,   345,     0,   222,    77,   459,     0,     0,   162,    54,
     2121       0,    30,     0,     0,    54,     0,     0,   353,     0,   353,
     2122       0,     0,     0,     0,     0,    84,     0,     0,     0,     0,
     2123       0,    75,     0,     0,     0,   123,   123,   123,   360,    33,
     2124     360,     0,     0,     0,     0,     0,     0,     0,    54,   353,
     2125       0,     0,     0,     0,     0,   604,     0,   353,   353,   353,
     2126     628,     0,     0,     0,     0,     0,     0,     0,   353,   353,
     2127     360,     0,     0,     0,     0,     0,     0,     0,   360,   360,
     2128     360,     0,    77,     0,     0,     0,     0,     0,     0,   360,
     2129     360,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2130       0,     0,     0,    84,     0,   353,   123,   208,   123,     0,
     2131       0,     0,     0,     0,     0,     0,     0,   228,     0,   232,
     2132       0,   234,     0,     0,     0,   345,   360,     0,   243,     0,
     2133       0,     0,   272,     0,     0,     0,   162,   162,     0,     0,
     2134       0,     0,     0,   366,     0,     0,     0,     0,     0,     0,
     2135       0,    54,     0,     0,     0,     0,     0,     0,   208,     0,
     2136     232,   234,   243,     0,   459,     0,     0,   459,     0,     0,
     2137       0,     0,     0,   459,    54,     0,     0,     0,     0,     0,
     2138       0,    54,     0,     0,     0,     0,     0,     0,   123,     0,
     2139       0,     0,     0,   353,     0,     0,   123,     0,   123,   123,
     2140     738,   208,     0,   123,     0,   123,   123,     0,     0,     0,
     2141       0,     0,   162,     0,   360,     0,     0,     0,     0,     0,
     2142       0,     0,     0,     0,   459,     0,   459,   153,     0,   459,
     2143       0,   162,   459,     0,    54,     0,     0,     0,     0,     0,
     2144       0,     0,    77,     0,   366,     0,     0,     0,     0,    77,
     2145       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2146       0,     0,   208,    84,   232,   234,   243,     0,     0,     0,
     2147      84,     0,     0,   248,     0,   123,     0,     0,     0,     0,
     2148       0,     0,     0,   253,     0,     0,     0,     0,     0,     0,
     2149       0,   818,   819,     0,     0,     0,     0,   162,     0,     0,
     2150     208,     0,    77,     0,   208,     0,     0,     0,     0,   366,
     2151       0,   604,     0,     0,   834,     0,     0,     0,     0,     0,
     2152     502,   853,     0,    84,   856,   857,     0,   860,     0,   862,
     2153     863,     0,     0,     0,   864,   865,     0,     0,   153,     0,
     2154     604,     0,     0,     0,     0,   604,     0,     0,     0,     0,
     2155       0,     0,   383,     0,   366,   366,   366,     0,     0,     0,
     2156       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2157     208,     0,   366,     0,     0,   415,     0,     0,     0,     0,
     2158       0,     0,     0,     0,     0,     0,     0,     0,     0,   430,
     2159       0,   208,     0,     0,     0,     0,   232,   234,   435,     0,
     2160       0,     0,     0,     0,   243,     0,     0,   738,   443,     0,
     2161       0,     0,     0,     0,     0,     0,     0,   940,   941,     0,
     2162       0,     0,     0,   943,     0,     0,     0,     0,   459,     0,
     2163       0,     0,     0,   469,     0,     0,     0,     0,   479,     0,
     2164       0,     0,     0,     0,     0,     0,   366,   208,   958,     0,
     2165       0,   487,     0,     0,     0,     0,     0,   497,     0,   501,
     2166       0,     0,     0,     0,     0,   208,     0,     0,     0,     0,
     2167     208,     0,   208,     0,     0,     0,     0,   531,     0,     0,
     2168       0,     0,     0,   738,     0,     0,     0,     0,     0,   208,
     2169       0,     0,   208,   208,     0,     0,     0,     0,     0,     0,
     2170       0,     0,     0,     0,     0,     0,     0,     0,   208,     0,
     2171       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2172     591,     0,   208,     0,     0,   596,     0,     0,     0,   208,
     2173       0,     0,     0,     0,     0,     0,     0,     0,   366,     0,
     2174       0,     0,   628,     0,     0,   366,     0,     0,     0,     0,
     2175       0,     0,     0,   642,     0,     0,     0,   643,   644,     0,
     2176     646,     0,     0,     0,     0,     0,     0,   657,   658,     0,
     2177     659,   660,     0,   661,     0,   662,     0,     0,     0,     0,
     2178       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2179     123,   123,   591,     0,     0,     0,     0,     0,     0,     0,
     2180     677,     0,     0,     0,     0,     0,   339,   361,     0,     0,
     2181       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2182     123,     0,     0,   123,   123,   688,   123,     0,   123,   123,
     2183       0,     0,     0,   123,   123,     0,   694,     0,   459,     0,
     2184     411,     0,     0,     0,     0,   208,     0,   411,     0,     0,
     2185       0,     0,     0,     0,     0,   279,   280,     0,   281,   730,
     2186       0,     0,     0,     0,     0,   733,     0,     0,     0,     0,
     2187     469,     0,     0,   208,     0,     0,     0,     0,   208,     0,
     2188     162,     0,     0,     0,   282,     0,     0,     0,     0,     0,
     2189     283,     0,     0,     0,   284,     0,   366,   285,   286,   287,
     2190     288,    40,    41,     0,   289,   290,     0,   770,     0,     0,
     2191       0,   123,   291,     0,     0,     0,   123,   123,     0,   411,
     2192       0,     0,   123,   785,     0,     0,     0,   292,     0,   376,
     2193       0,   604,   377,     0,     0,     0,   294,   378,   296,   297,
     2194     298,   299,     0,     0,     0,     0,     0,     0,     0,     0,
     2195       0,     0,   366,   366,     0,     0,     0,     0,     0,     0,
     2196     812,     0,     0,     0,     0,   208,     0,     0,     0,   822,
     2197       0,     0,     0,     0,     0,   411,   825,     0,     0,   208,
     2198       0,   832,     0,   411,   587,     0,   411,   590,     0,     0,
     2199       0,     0,   847,     0,     0,     0,   361,     0,     0,   502,
     2200     620,     0,     0,     0,     0,     0,     0,  1230,     0,     0,
     2201       0,     0,   459,     0,     0,     0,     0,     0,     0,   638,
     2202       0,     0,   339,     0,     0,     0,     0,     0,     0,     0,
     2203       0,     0,     0,   887,     0,     0,     0,     0,     0,     0,
     2204       0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
     2205       0,     0,     0,   411,     0,     0,     0,     0,     0,     0,
     2206     208,     0,     0,     0,     0,     0,     0,     0,   832,     0,
     2207       0,   738,     0,   208,     0,     0,     0,     0,     0,     0,
     2208       0,     0,     0,     0,   361,     0,     0,     0,     0,     0,
     2209       0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
     2210       0,     0,     0,     0,     0,     0,     0,   411,     0,     0,
     2211       0,   279,   280,   215,   281,     0,     0,     0,     0,     0,
     2212       0,     0,     0,   248,     0,     0,     0,     0,     0,     0,
     2213       0,  1318,     0,   965,   966,     0,     0,     0,   411,     0,
     2214     282,   361,     0,     0,     0,     0,   283,   983,     0,     0,
     2215     284,   738,     0,   285,   286,   287,   288,    40,    41,     0,
     2216     289,   290,     0,     0,   998,     0,   999,     0,   291,     0,
     2217    1003,     0,     0,     0,     0,     0,     0,     0,     0,   208,
     2218       0,   411,     0,   511,   339,   361,     0,     0,     0,     0,
     2219       0,     0,   294,   378,   296,   297,   298,   299,     0,     0,
     2220     366,   366,     0,     0,     0,   208,     0,     0,     0,   215,
     2221       0,     0,     0,     0,     0,     0,     0,   319,     0,     0,
     2222       0,     0,     0,     0,     0,     0,     0,   343,     0,     0,
     2223     411,   411,     0,   208,     0,     0,  1036,     0,     0,   379,
     2224     379,     0,     0,  1037,     0,     0,     0,     0,     0,   827,
     2225     361,     0,   361,     0,     0,     0,  1039,     0,  1040,     0,
     2226       0,   620,     0,   620,   620,   208,     0,     0,     0,     0,
     2227     620,     0,  1052,     0,     0,     0,   208,     0,     0,  1056,
     2228     866,   361,     0,     0,     0,     0,   361,     0,     0,     0,
     2229       0,  1094,     0,     0,  1095,   361,   361,   361,     0,     0,
     2230       0,     0,     0,     0,     0,     0,   123,     0,     0,     0,
     2231     319,     0,   596,   361,     0,     0,     0,     0,   411,   909,
     2232       0,     0,   411,   912,     0,   366,     0,   279,   280,   914,
     2233     281,     0,     0,     0,     0,   483,     0,     0,     0,     0,
     2234       0,     0,     0,     0,     0,     0,     0,   339,   361,   411,
     2235       0,   411,     0,     0,     0,   411,   282,   208,     0,     0,
     2236       0,     0,   283,     0,     0,     0,   284,     0,     0,   285,
     2237     286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
     2238       0,     0,     0,   459,   291,   459,     0,   361,   620,     0,
     2239       0,     0,     0,     0,     0,     0,     0,     0,     0,   292,
     2240       0,  1158,     0,     0,     0,     0,     0,     0,   294,   378,
     2241     296,   297,   298,   299,     0,     0,     0,     0,     0,     0,
     2242     459,     0,   459,   339,   361,     0,     0,     0,   411,   411,
     2243     123,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,     0,     0,   208,     0,     0,     0,     0,     0,
     2245     162,   379,     0,     0,     0,     0,     0,   531,     0,     0,
     2246       0,     0,     0,     0,  1223,     0,     0,     0,     0,     0,
     2247     411,     0,     0,     0,     0,     0,     0,     0,     0,   361,
     2248       0,     0,     0,     0,     0,   827,   361,     0,     0,     0,
     2249     620,     0,   620,  1236,     0,     0,     0,     0,  1238,     0,
     2250       0,     0,   620,     0,     0,     0,  1242,     1,     2,   203,
     2251       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2252      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2253      24,  -293,     0,    25,    26,    27,    28,  1268,     0,    29,
     2254     208,     0,    30,     0,     0,     0,     0,     0,     0,  1276,
     2255       0,     0,  1277,   732,  1278,     0,     0,     0,     0,     0,
     2256       0,     0,     0,     0,     0,     0,     0,     0,  1287,  1288,
     2257      33,     0,    34,     0,    35,   827,     0,    37,    38,     0,
     2258       0,  -293,     0,   411,     0,     0,     0,     0,     0,   411,
     2259    1301,     0,   766,     0,     0,     0,     0,   411,     0,     0,
     2260       0,     0,     0,     0,     0,   779,     0,     0,     0,     0,
     2261     620,   620,   766,     0,    43,   766,     0,  1324,     0,     0,
     2262       0,     0,   109,     0,     0,     0,   789,   790,     0,     0,
     2263       0,     0,     0,     0,     0,     0,     0,   361,     0,     0,
     2264       0,     0,     0,   411,     0,     0,     0,     0,   811,     0,
     2265       0,     0,     0,     0,     0,     0,     0,     0,   820,     0,
     2266       0,     0,   411,  1155,     0,   343,     0,     0,     0,     0,
     2267     779,     0,   361,     0,     0,     0,     0,     0,   411,  1167,
     2268       0,   620,   620,  1172,     0,     0,     0,     0,     0,     0,
     2269       0,     0,     0,   361,   361,     0,   512,     0,   514,   517,
     2270       0,   279,   280,     0,   281,     0,   520,   521,     0,     0,
     2271       0,   514,   514,     0,  1394,     0,  1395,     0,     0,     0,
     2272     886,     0,     0,   514,     0,     0,     0,     0,   379,  1404,
     2273     282,  1405,     0,     0,     0,     0,   283,     0,     0,     0,
     2274     284,     0,     0,   285,   286,   287,   288,    40,    41,  1412,
     2275     289,   290,     0,     0,   827,   411,  1235,     0,   291,   514,
     2276       0,     0,     0,     0,     0,  1430,  1432,   620,   343,     0,
     2277       0,     0,     0,   292,     0,   376,     0,  1438,     0,     0,
     2278    1242,   809,   294,   378,   296,   297,   298,   299,     0,     0,
     2279       0,     0,     0,     0,     0,   514,   208,     0,     0,     0,
     2280       0,     0,  1461,     0,     0,     0,     0,     0,     0,     0,
     2281       0,  1468,   361,     0,  1470,     0,  1472,  1474,  1476,     8,
     2282       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2283      19,    20,    21,    22,    23,    24,  -293,     0,    25,    26,
     2284      27,     0,     0,     0,   779,     0,   988,    30,     0,     0,
     2285       0,     0,   993,     0,     0,     0,     0,     0,  1507,  1002,
     2286    1509,     0,     0,  1242,     0,     0,     0,     0,     0,     0,
     2287       0,     0,   339,     0,     0,    33,     0,     0,  1521,     0,
     2288       0,     0,    37,    38,     0,     0,  -293,     0,     0,     0,
     2289       0,     0,   361,     0,     0,     0,     0,     0,     0,     0,
     2290       0,     0,     0,  1019,  1020,     0,   343,     0,     0,     0,
     2291       0,     0,     0,     0,     0,     0,     0,   641,     0,   336,
     2292       0,   343,     0,     0,     0,     0,     0,   109,     0,     0,
     2293       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2294       0,   361,   361,     8,     9,    10,    11,    12,    13,    14,
     2295      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2296       0,  1050,    25,    26,    27,   379,     0,     0,     0,     0,
     2297       0,    30,   514,   514,   514,   514,   514,   514,   514,   514,
     2298     514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
     2299       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2300       0,     0,     0,     0,     0,     0,   204,    38,     0,     0,
     2301       0,     0,     0,     0,  -515,   514,     0,     1,     2,     3,
     2302       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2303      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2304      24,   319,     0,    25,    26,    27,    28,     0,     0,    29,
     2305       0,   268,    30,    31,     0,     0,     0,  1136,  1137,     0,
     2306       0,     0,     0,     0,   379,     0,   361,     0,     0,     0,
     2307     993,     0,     0,  1146,     0,   766,     0,    32,     0,     0,
     2308      33,     0,    34,     0,    35,    36,     0,    37,    38,    39,
     2309       0,     0,     0,     0,     0,  1162,    40,    41,     0,     0,
     2310       0,     0,     0,     0,     0,     0,  1177,     0,     0,     0,
     2311       0,     0,     0,   514,     0,   279,   280,     0,   281,     0,
     2312       0,     0,    42,     0,    43,     0,     0,     0,   379,     0,
     2313    1195,     0,    44,     0,     0,   514,     0,     0,     0,     0,
     2314       0,     0,     0,     0,   282,   993,   993,     0,   514,     0,
     2315     647,     0,   136,   137,   284,     0,   411,   285,   648,   287,
     2316     288,    40,    41,     0,   289,   290,  1227,     0,     0,     0,
     2317       0,     0,   291,     0,     0,     0,     0,     0,     0,     0,
     2318       0,   411,   411,     0,     0,     0,     0,   292,     0,   649,
     2319       0,   650,   377,     0,   514,     0,   294,   378,   296,   297,
     2320     298,   299,     0,     0,     0,     0,   411,     0,     0,     0,
     2321       0,     0,     0,   993,     0,     0,     0,     0,     0,     0,
     2322       0,     0,     0,     0,     0,     0,   514,     0,     0,     0,
     2323       0,     0,   886,     0,     0,     0,     0,     0,     0,     0,
     2324       0,   514,     0,     0,     0,     0,     0,  1279,  1280,     0,
     2325       0,     0,     0,     0,     1,     2,   203,     4,     5,     6,
     2326       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2327      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2328      25,    26,    27,    28,     0,     0,    29,   279,   280,    30,
     2329    1059,  1060,     0,  1061,     0,     0,  1062,  1063,  1064,  1065,
     2330    1066,  1067,  1068,  1069,     0,     0,     0,  1070,     0,     0,
     2331       0,  1071,  1072,     0,    32,     0,   282,    33,     0,    34,
     2332       0,    35,   647,     0,    37,    38,   284,     0,   993,   285,
     2333     286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
     2334       0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
     2335       0,     0,     0,     0,     0,     0,     0,     0,     0,   292,
     2336       0,  1073,     0,     0,   168,     0,     0,     0,   294,   295,
     2337     296,   297,   298,   299,     0,     0,     0,     0,  1074,     0,
     2338       0,     0,  -128,     0,     0,     0,     0,     0,     0,  1387,
     2339       0,   766,   514,     0,     0,     0,     0,     0,     0,     0,
     2340       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2341       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2342       0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
     2343       0,     0,     0,     0,     0,   514,     1,     2,   203,     4,
     2344       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2345      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2346       0,     0,    25,    26,    27,    28,     0,     0,    29,   279,
     2347     280,    30,   281,     0,     0,     0,   514,  1447,     0,     0,
     2348       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2349       0,     0,     0,     0,     0,     0,     0,     0,   282,    33,
     2350       0,    34,     0,    35,   283,     0,    37,    38,   284,     0,
     2351       0,   285,   286,   287,   288,    40,    41,     0,   289,   290,
     2352       0,     0,     0,     0,     0,     0,   291,     0,     0,     0,
     2353       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2354       0,   292,     0,  1073,     0,     0,     0,     0,   514,     0,
     2355     294,   295,   296,   297,   298,   299,     0,     0,     0,  1513,
     2356       0,     0,     0,     0,  -128,     0,     0,     1,     2,   203,
     2357       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2358      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2359      24,     0,   514,    25,    26,    27,    28,     0,     0,    29,
     2360     279,   280,    30,   281,     0,     0,   514,   514,     0,     0,
     2361       0,   319,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,     0,     0,     0,     0,     0,     0,   282,
     2363      33,     0,    34,     0,    35,   283,     0,    37,    38,   284,
     2364       0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
     2365     290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
     2366       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2367       0,     0,   292,     0,    43,     0,     0,     0,     0,     0,
     2368       0,   294,   295,   296,   297,   298,   299,     2,   203,     4,
     2369       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2370      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2371       0,     0,    25,    26,    27,     0,     0,     0,     0,   279,
     2372     280,    30,   281,     0,     8,     9,    10,    11,    12,    13,
     2373      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2374      24,     0,     0,    25,    26,    27,     0,     0,   282,    33,
     2375       0,    34,    30,    35,   283,     0,    37,    38,   284,     0,
     2376       0,   285,   286,   287,   288,    40,    41,     0,   289,   290,
     2377       0,     0,     0,     0,     0,     0,   291,     0,     0,     0,
     2378      33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
     2379       0,   292,     0,   341,     0,     0,    40,    41,   778,     0,
     2380     294,   342,   296,   297,   298,   299,     0,     0,     0,     0,
     2381       0,     0,     0,     0,     0,     0,   514,     0,     0,     0,
     2382       0,     0,    42,     0,   154,     0,     0,     0,     0,     0,
     2383       0,     0,    44,   514,     2,   203,     4,     5,     6,     7,
    21382384       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2139       18,    19,    20,    21,    22,    23,    24,   153,   359,    25,
    2140       26,    27,     0,     0,     0,   602,     0,    30,   937,   938,
    2141      602,   382,     0,     0,   940,     0,     0,     0,     0,   365,
    2142      365,   365,     0,     0,     0,     0,     0,     0,     0,     0,
    2143        0,     0,     0,     0,   414,    33,     0,   365,     0,     0,
    2144       36,     0,    37,    38,    39,     0,     0,    84,   429,     0,
    2145        0,    40,    41,     0,    84,     0,     0,   434,     0,     0,
    2146        0,     0,     0,     0,   208,     0,     0,   442,     0,     0,
    2147        0,     0,   736,     0,     0,     0,     0,    42,   208,   154,
    2148        0,   279,     0,   280,     0,     0,     0,    44,     0,     0,
    2149        0,     0,   468,   458,     0,     0,     0,   478,   501,     0,
    2150        0,     0,     0,     0,     0,     0,     0,    84,     0,   281,
    2151      486,   365,     0,   955,     0,   282,   496,     0,   500,   283,
    2152        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2153      289,     0,     0,     0,     0,   529,     0,   290,     0,     0,
    2154        0,     0,     0,     0,     0,     0,     0,   736,     0,     0,
    2155        0,     0,   291,     0,   375,     0,     0,   376,   208,     0,
    2156        0,   293,   377,   295,   296,   297,   298,     0,     0,     0,
    2157        0,   208,     0,     0,     0,     0,     0,     0,   589,     0,
    2158        0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
    2159      208,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2160        0,     0,   365,     0,     0,     0,   626,     0,     0,   365,
    2161        0,   640,     0,     0,   123,   641,   642,     0,   644,     0,
    2162        0,     0,     0,     0,     0,   655,   656,     0,   657,   658,
    2163        0,   659,     0,   660,     0,     0,     0,     0,     0,     0,
    2164        0,  1027,     0,     0,     8,     9,    10,    11,    12,     0,
    2165      589,     0,     0,     0,     0,     0,     0,     0,   675,     0,
    2166        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2167      279,    30,   280,     0,     0,     0,     0,   208,     0,     0,
    2168        0,     0,     0,   686,     0,     0,     0,     0,     0,     0,
    2169        0,     0,     0,     0,   692,     0,     0,     0,   281,    33,
    2170        0,     0,   458,   208,   282,     0,     0,     0,   283,     0,
    2171        0,   284,   285,   286,   287,    40,    41,   728,   288,   289,
    2172        0,     0,     0,   731,     0,     0,   290,     0,   468,     0,
    2173      208,     0,     0,     0,     0,     0,     0,   123,     0,     0,
    2174        0,   291,     0,   375,   162,     0,     0,     0,     0,     0,
    2175      293,   821,   295,   296,   297,   298,     0,     0,     0,   365,
    2176        0,     0,   208,     0,   767,     0,     0,     0,     0,     0,
    2177        0,     0,     0,   208,     0,     0,     0,     0,     0,     0,
    2178      782,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2179        0,     0,     0,     0,   602,     0,  1225,     0,     0,  1169,
    2180        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2181        0,     0,     0,     0,     0,   365,   365,   809,     0,     0,
    2182        0,     0,     0,     0,     0,   318,   819,     0,   279,    30,
    2183      280,     0,     0,   822,     0,   342,     0,     0,   829,     0,
    2184        0,     0,     0,     0,     0,     0,     0,   378,   378,   844,
    2185        0,     0,     0,     0,   208,     0,   281,    33,     0,     0,
    2186        0,     0,   282,     0,     0,     0,   283,     0,     0,   284,
    2187      285,   286,   287,    40,    41,   458,   288,   289,     0,     0,
    2188        0,     0,     0,     0,   290,     0,     0,     0,     0,     0,
    2189      884,     0,     0,     0,     0,     0,     0,     0,     0,   291,
    2190        0,   375,     0,     0,     0,     0,     0,     0,   293,  1170,
    2191      295,   296,   297,   298,     0,     0,     0,     0,   318,  1312,
    2192        0,     0,     0,     0,     0,   829,     0,   338,   360,     0,
    2193        0,     0,     0,   736,     0,     0,     0,     0,     0,     0,
    2194      208,     0,     0,   482,     8,     9,    10,    11,    12,    13,
     2385      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2386      26,    27,     0,     0,     0,     0,   279,   280,    30,   281,
     2387       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    21952388      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2196       24,   410,     0,    25,    26,    27,     0,     0,   410,     0,
    2197        0,    30,     0,     0,     0,   215,     0,     0,     0,     0,
    2198      248,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2199      962,   963,     0,     0,     0,     0,     0,     0,     0,    33,
    2200        0,     0,     0,   979,    36,     0,    37,    38,    39,     0,
    2201        0,     0,     0,   736,     0,    40,    41,     0,     0,     0,
    2202      994,     0,   995,     0,     0,     0,   999,     0,     0,     0,
    2203        0,     0,     0,     0,     0,   208,     0,     0,     0,     0,
    2204      410,    42,     0,    43,     0,     0,     0,     0,     0,     0,
    2205        0,    44,     0,     0,     0,     0,     0,     0,   378,     0,
    2206        0,   365,   365,     0,     0,     0,     0,     0,     0,     0,
    2207      215,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2208        0,   279,     0,   280,     0,     0,     0,     0,     0,     0,
    2209        0,     0,  1032,     0,     0,   410,     0,     0,     0,  1033,
    2210        0,     0,     0,   410,   585,     0,   410,   588,     0,   281,
    2211        0,     0,  1035,     0,  1036,   645,   360,   136,   137,   283,
    2212      618,     0,   284,   646,   286,   287,    40,    41,  1048,   288,
    2213      289,     0,     0,     0,     0,  1052,     0,   290,     0,   636,
    2214        0,     0,   338,     0,     0,     0,     0,  1090,     0,     0,
    2215     1091,     0,   291,     0,   647,     0,   648,   376,     0,     0,
    2216      730,   293,   377,   295,   296,   297,   298,     0,   594,   410,
    2217        0,     0,     0,   410,     0,     0,     0,     0,     0,     0,
    2218        0,     0,     0,     0,     0,     0,   365,     0,     0,     0,
    2219        0,     0,     0,     0,     0,     0,     0,     0,   763,     0,
    2220        0,     0,     0,     0,   360,     0,     0,     0,     0,     0,
    2221        0,   776,     0,     0,     0,     0,     0,     0,   763,     0,
    2222        0,   763,     0,     0,     0,     0,     0,   410,     0,     0,
    2223        0,     0,   786,   787,     0,     0,     0,     0,     0,     0,
    2224        0,     0,     0,     0,   458,     0,   458,     0,     0,     0,
    2225        0,     0,     0,     0,   808,     0,  1153,     0,   410,     0,
    2226        0,   360,     0,     0,   817,     0,     0,     0,     0,     0,
    2227        0,   342,     0,     0,     0,     0,   776,     0,     0,     0,
    2228        0,   458,     0,   458,     0,     0,     0,     0,     0,     0,
    2229        0,   208,     0,     0,     0,     0,     0,     0,     0,     0,
    2230      410,     0,     0,   338,   360,     0,     0,     0,     0,     0,
    2231        0,   162,   529,     0,     0,     0,     0,     0,     0,  1218,
    2232        0,     0,     0,     0,     0,     0,   883,     0,     0,     0,
    2233        0,     0,     0,     0,   378,     0,     0,     0,     0,     0,
    2234        0,     0,     0,     0,     0,     0,     0,     0,  1231,   410,
    2235      410,     0,     0,  1233,     0,     0,     0,     0,     0,     0,
    2236        0,  1237,     0,     0,     0,     0,     0,     0,   824,   360,
    2237        0,   360,     0,     0,   342,     0,     0,     0,     0,     0,
    2238      618,     0,   618,   618,     0,     0,     0,     0,     0,   618,
    2239        0,  1262,     0,     0,     0,     0,     0,     0,     0,   863,
    2240      360,     0,     0,  1270,     0,   360,  1271,     0,  1272,     0,
    2241        0,     0,     0,     0,   360,   360,   360,     0,     0,     0,
    2242        0,     0,  1281,  1282,     0,     0,     0,     0,     0,     0,
    2243        0,     0,   360,     0,     0,     0,     0,   410,   906,     0,
    2244        0,   410,   909,     0,  1295,     0,     0,     0,   911,   776,
    2245        0,   984,     0,     0,     0,     0,     0,   989,     0,     0,
    2246        0,     0,     0,     0,   998,     0,   338,   360,   410,     0,
    2247      410,  1318,     0,     0,   410,     0,     8,     9,    10,    11,
     2389      24,  -293,     0,     0,     0,   282,    33,     0,    34,     0,
     2390      35,   283,    30,    37,    38,   284,   514,   514,   285,   286,
     2391     287,   288,    40,    41,     0,   289,   290,     0,     0,     0,
     2392       0,     0,     0,   291,     0,     0,     0,     0,     0,     0,
     2393      33,     0,     0,     0,     0,     0,     0,     0,   292,     0,
     2394     928,  -293,     0,     0,     0,   778,     0,   294,   342,   296,
     2395     297,   298,   299,     2,   203,     4,     5,     6,     7,     8,
     2396       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2397      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2398      27,     0,     0,     0,     0,   279,   280,    30,   281,     0,
     2399       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2400      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2401    -294,     0,     0,     0,   282,    33,     0,    34,     0,    35,
     2402     283,    30,    37,    38,   284,     0,     0,   285,   286,   287,
     2403     288,    40,    41,     0,   289,   290,     0,     0,     0,     0,
     2404       0,     0,   291,     0,     0,     0,     0,     0,     0,    33,
     2405       0,     0,     0,     0,     0,     0,     0,   292,     0,   928,
     2406    -294,     0,     0,     0,   778,     0,   294,   598,   296,   297,
     2407     298,   299,     2,   203,     4,     5,     6,     7,     8,     9,
     2408      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2409      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2410       0,     0,     0,     0,   279,   280,    30,   281,     0,     8,
     2411       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2412      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2413      27,     0,     0,   282,    33,     0,    34,    30,    35,   283,
     2414       0,    37,    38,   284,     0,     0,   285,   286,   287,   288,
     2415      40,    41,     0,   289,   290,     0,     0,     0,     0,     0,
     2416       0,   291,     0,     0,     0,    33,     0,     0,     0,     0,
     2417     108,     0,    37,    38,     0,     0,   292,     0,   341,     0,
     2418       0,     0,     0,     0,     0,   294,   342,   296,   297,   298,
     2419     299,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2420      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2421      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2422       0,     0,     0,   279,   280,    30,   281,     0,     8,     9,
     2423      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2424      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2425       0,     0,   282,    33,     0,    34,    30,    35,   283,     0,
     2426      37,    38,   284,     0,     0,   285,   286,   287,   288,    40,
     2427      41,     0,   289,   290,     0,     0,     0,     0,     0,     0,
     2428     291,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2429       0,    37,    38,     0,     0,   292,     0,   928,     0,     0,
     2430       0,     0,     0,     0,   294,   342,   296,   297,   298,   299,
     2431       2,   203,     4,     5,     6,     7,     8,     9,    10,    11,
    22482432      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    22492433      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2250        0,     0,     0,    30,   450,     0,   360,   618,  1015,  1016,
    2251        0,   342,     0,     0,     0,     0,     0,     0,     0,     0,
    2252        0,     0,     0,     0,     0,     0,   342,     0,     0,     0,
    2253        0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
    2254        0,   338,   360,     0,     0,     0,   410,   410,     0,     0,
    2255        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,     0,     0,  1046,  1388,     0,  1389,
    2257      378,     0,     0,     0,     0,   451,     0,     0,     0,   706,
    2258        0,     0,  1398,   109,  1399,     0,     0,     0,   410,     0,
    2259        0,     0,     0,     0,     0,     0,     0,   360,     0,     0,
    2260        0,     0,  1406,   824,   360,     0,     0,     0,   618,     0,
    2261      618,     0,     0,     0,   511,   512,   515,     0,  1424,  1426,
    2262      618,     0,     0,   518,   519,     0,     0,     0,   512,   512,
    2263     1432,     0,     0,  1237,     0,     0,     0,     0,     0,     0,
    2264      512,     0,     0,     0,     0,     0,   318,     0,     0,     0,
    2265        0,     0,     0,     0,     0,  1455,     0,     0,     0,     0,
    2266        0,  1131,  1132,     0,  1462,     0,     0,  1464,   378,  1466,
    2267     1468,  1470,     0,     0,   989,     0,   512,  1141,     0,   763,
    2268        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2269        0,     0,     0,   824,     0,     0,     0,     0,     0,  1157,
    2270        0,   410,     0,     0,     0,     0,     0,   410,     0,     0,
    2271     1172,  1501,   512,  1503,     0,   410,  1237,     0,     0,     0,
    2272        0,     0,     0,     0,     0,     0,     0,     0,   618,   618,
    2273        0,  1515,   378,     0,  1190,     0,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,     0,     0,     0,     0,   989,
    2275      989,     0,     0,     0,   360,     0,     0,     0,     0,     0,
    2276      410,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277     1222,     0,     0,     0,     0,     0,     0,     0,     0,   410,
    2278     1150,   279,     0,   280,     0,     0,     0,     0,     0,   360,
    2279        0,     0,     0,     0,     0,   410,  1162,     0,   618,   618,
    2280     1167,     0,     0,     0,     0,     0,     0,     0,     0,   281,
    2281      360,   360,     0,     0,     0,   282,   989,     0,     0,   283,
    2282        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2283      289,     0,     0,     0,     0,   883,     0,   290,     0,     0,
    2284        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2285     1273,  1274,   291,     0,   375,     0,     0,     0,     0,     0,
    2286      806,   293,   377,   295,   296,   297,   298,     0,     0,     0,
    2287        0,   824,   410,  1230,     0,     0,     0,     0,     0,     0,
    2288        0,     0,     0,     0,   618,     0,     0,     0,   512,   512,
    2289      512,   512,   512,   512,   512,   512,   512,   512,   512,   512,
    2290      512,   512,   512,   512,   512,   512,     0,     0,     0,     0,
    2291        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2292        0,     0,     0,     0,     0,     0,     0,     0,   360,     0,
    2293      989,   512,  -514,     0,     0,     1,     2,     3,     4,     5,
    2294        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2295       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2296        0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
    2297       31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2298       17,    18,    19,    20,    21,    22,    23,    24,   338,     0,
    2299        0,  1381,     0,   763,    32,     0,     0,    33,    30,    34,
    2300        0,    35,    36,     0,    37,    38,    39,     0,   360,     0,
    2301        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2302        0,     0,     0,     0,     0,     0,    33,     0,     0,   512,
    2303        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    2304        0,    43,     0,     0,     0,     0,     0,     0,     0,    44,
    2305        0,   512,     0,     0,     0,     0,   360,   360,     0,     0,
    2306        0,     0,     0,     0,   512,     0,     0,     0,     0,     0,
    2307        0,     0,     0,     0,     0,     0,     0,     0,     0,  1441,
    2308        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2309        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2310        0,     0,     0,     0,     0,     0,     0,     0,     0,   512,
    2311        0,     0,     0,     0,     0,     0,     1,     2,   203,     4,
    2312        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2313       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2314        0,   512,    25,    26,    27,    28,     0,     0,    29,   279,
    2315       30,   280,     0,     0,     0,     0,   512,     0,     0,     0,
    2316        0,  1507,     0,     0,     0,     0,     0,     0,     0,     0,
    2317        0,     0,     0,     0,     0,     0,     0,   281,    33,     0,
    2318       34,   360,    35,   282,     0,    37,    38,   283,     0,     0,
    2319      284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
    2320        0,     0,     0,     0,     0,   290,     0,     0,     0,     0,
    2321        0,     0,     0,   318,     0,     0,     0,     0,     0,     0,
    2322      291,     0,  1069,     0,     0,     0,     0,     0,     0,   293,
    2323      294,   295,   296,   297,   298,     0,     0,     0,     0,     0,
    2324        0,     0,     0,  -127,     0,     0,     0,     0,     0,     0,
    2325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2326        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2327        0,   410,   471,     2,   203,     4,     5,     6,     7,     8,
    2328        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2329       19,    20,    21,    22,    23,    24,   410,   410,    25,    26,
    2330       27,     0,     0,     0,     0,     0,    30,   512,     0,     0,
    2331        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2332        0,   410,     0,     0,     0,     0,     0,     0,     0,     0,
    2333        0,     0,     0,     0,    33,     0,    34,   512,    35,     0,
    2334        0,    37,    38,     0,     0,     0,     0,     0,     0,   512,
    2335        1,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2434       0,     0,   279,   280,    30,   281,     0,     8,     9,    10,
    23362435      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2337       21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
    2338        0,    -3,    29,   279,    30,  1055,  1056,     0,  1057,     0,
    2339      512,  1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,     0,
    2340        0,     0,  1066,     0,     0,     0,  1067,  1068,     0,    32,
    2341        0,   281,    33,     0,    34,     0,    35,   645,     0,    37,
    2342       38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
    2343        0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
    2344        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2345        0,     0,     0,     0,   291,     0,  1069,     0,     0,   168,
    2346        0,     0,   512,   293,   294,   295,   296,   297,   298,     0,
    2347        0,     0,     0,  1070,     0,     0,     0,  -127,     0,     0,
    2348        1,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2349       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2350       21,    22,    23,    24,     0,   512,    25,    26,    27,    28,
    2351        0,     0,    29,   279,    30,   280,     0,     0,     0,   512,
    2352      512,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2353       17,    18,    19,    20,    21,    22,    23,    24,  -292,     0,
    2354        0,   281,    33,     0,    34,     0,    35,   282,    30,    37,
    2355       38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
    2356        0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
    2357        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2358        0,     0,     0,     0,   291,     0,    43,  -292,     0,     0,
    2359        0,     0,     0,   293,   294,   295,   296,   297,   298,     2,
     2436      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2437       0,   282,    33,     0,    34,    30,    35,   283,     0,   204,
     2438      38,   284,     0,     0,   285,   286,   287,   288,    40,    41,
     2439       0,   289,   290,     0,     0,     0,     0,     0,     0,   291,
     2440       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2441     204,    38,     0,     0,   292,     0,  1017,     0,     0,     0,
     2442       0,     0,     0,   294,  1018,   296,   297,   298,   299,     2,
    23602443     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    23612444      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    23622445      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2363        0,   279,    30,   280,     8,     9,    10,    11,    12,    13,
    2364       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2365       24,  -292,     0,    25,    26,    27,     0,     0,     0,   281,
    2366       33,    30,    34,     0,    35,   282,     0,    37,    38,   283,
    2367        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2368      289,     0,     0,     0,     0,     0,     0,   290,     0,    33,
    2369        0,     0,     0,     0,    36,     0,   333,   334,    39,     0,
    2370     -292,     0,   291,     0,   340,    40,    41,     0,     0,   775,
    2371        0,   293,   341,   295,   296,   297,   298,     0,     0,     0,
    2372        0,     0,     0,     0,     0,     0,     0,     0,   512,     0,
    2373        0,   639,     0,   335,     0,     0,     0,     0,     0,     0,
    2374        0,   630,     0,     0,     0,   512,     0,     2,   203,     4,
     2446       0,   279,   280,    30,   281,     0,     0,     0,     0,     0,
     2447       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2448       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2449     282,    33,     0,    34,     0,    35,   283,     0,   204,    38,
     2450     284,     0,     0,   285,   286,   287,   288,    40,    41,     0,
     2451     289,   290,     0,     0,     0,     0,     0,     0,   291,     0,
     2452       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2453       0,     0,     0,   292,     0,   376,     0,     0,     0,     0,
     2454       0,     0,   294,   378,   296,   297,   298,   299,     1,     2,
     2455       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2456      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2457      23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
     2458      29,     0,     0,    30,    31,     0,     8,     9,    10,    11,
     2459      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2460      22,    23,    24,     0,     0,    25,    26,    27,    32,     0,
     2461       0,    33,     0,    34,    30,    35,    36,     0,    37,    38,
     2462      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
     2463       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2464       0,     0,    33,     0,     0,     0,     0,     0,     0,   204,
     2465      38,     0,     0,    42,     0,    43,     0,     0,     0,  -519,
     2466       0,     0,     0,    44,     1,     2,     3,     4,     5,     6,
     2467       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2468      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2469      25,    26,    27,    28,   627,     0,    29,     0,     0,    30,
     2470      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2471       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,    32,     0,     0,    33,     0,    34,
     2473       0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
     2474       0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
     2475       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2476       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
     2477       0,    43,     0,     0,     0,     0,     0,     0,     0,    44,
     2478     202,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2479      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2480      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2481       0,     0,     0,     0,     0,    30,     8,     9,    10,    11,
     2482      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2483      22,    23,    24,     0,     0,    25,    26,    27,   490,   491,
     2484     492,     0,     0,    33,    30,    34,     0,    35,    36,     0,
     2485     204,    38,    39,     0,     0,     0,     0,     0,     0,    40,
     2486      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2487       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2488      38,     0,     0,     0,     0,    42,     0,   205,     0,     0,
     2489       0,     0,     0,     0,     0,   206,     1,     2,   203,     4,
    23752490       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    23762491      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2377        0,     0,    25,    26,    27,     0,     0,     0,     0,   279,
    2378       30,   280,     8,     9,    10,    11,    12,    13,    14,    15,
    2379       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2380        0,    25,    26,    27,     0,     0,     0,   281,    33,    30,
    2381       34,     0,    35,   282,     0,    37,    38,   283,   512,   512,
    2382      284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
    2383        0,     0,     0,     0,     0,   290,     0,    33,     0,     0,
    2384        0,     0,     0,     0,   204,    38,     0,     0,     0,     0,
    2385      291,     0,   925,     0,     0,     0,     0,   775,     0,   293,
    2386      341,   295,   296,   297,   298,     2,   203,     4,     5,     6,
    2387        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2388       17,    18,    19,    20,    21,    22,    23,    24,     0,   268,
    2389       25,    26,    27,     0,     0,     0,     0,   279,    30,   280,
    2390        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2391       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2392       26,    27,     0,     0,     0,   281,    33,    30,    34,     0,
    2393       35,   282,     0,    37,    38,   283,     0,     0,   284,   285,
    2394      286,   287,    40,    41,     0,   288,   289,     0,     0,     0,
    2395        0,     0,     0,   290,     0,    33,     0,     0,     0,     0,
    2396        0,     0,   204,    38,     0,     0,     0,     0,   291,     0,
    2397      925,     0,     0,     0,     0,   775,     0,   293,   596,   295,
    2398      296,   297,   298,     2,   203,     4,     5,     6,     7,     8,
    2399        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2400       19,    20,    21,    22,    23,    24,     0,   625,    25,    26,
    2401       27,     0,     0,     0,     0,   279,    30,   280,     8,     9,
    2402       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2403       20,    21,    22,    23,    24,  -293,     0,     0,     0,     0,
    2404        0,     0,     0,   281,    33,    30,    34,     0,    35,   282,
    2405        0,    37,    38,   283,     0,     0,   284,   285,   286,   287,
    2406       40,    41,     0,   288,   289,     0,     0,     0,     0,     0,
    2407        0,   290,     0,    33,     0,     0,     0,     0,     0,     0,
    2408        0,     0,     0,     0,  -293,     0,   291,     0,   340,     0,
    2409        0,     0,     0,     0,     0,   293,   341,   295,   296,   297,
    2410      298,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2411       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2412       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2413        0,     0,     0,   279,    30,   280,     8,     9,    10,    11,
     2492       0,     0,    25,    26,    27,    28,     0,     0,    29,     0,
     2493       0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     2494       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2495       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2496       0,    34,     0,    35,     0,     0,    37,    38,     0,   202,
     2497       2,   203,     4,     5,     6,     7,     8,     9,    10,    11,
    24142498      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2415       22,    23,    24,     0,     0,    25,    26,    27,   489,   490,
    2416      491,   281,    33,    30,    34,     0,    35,   282,     0,    37,
    2417       38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
    2418        0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
    2419        0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
    2420        0,     0,     0,     0,   291,     0,   925,     0,     0,     0,
    2421        0,     0,     0,   293,   341,   295,   296,   297,   298,     2,
    2422      203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2423       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2424       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2425        0,   279,    30,   280,     8,     9,    10,    11,    12,    13,
    2426       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2427       24,     0,     0,    25,    26,    27,     0,     0,     0,   281,
    2428       33,    30,    34,     0,    35,   282,     0,   204,    38,   283,
    2429        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2430      289,     0,     0,     0,     0,     0,     0,   290,     0,    33,
    2431        0,     0,     0,     0,   108,     0,    37,    38,     0,     0,
    2432        0,     0,   291,     0,  1013,     0,     0,     0,     0,     0,
    2433        0,   293,  1014,   295,   296,   297,   298,     2,   203,     4,
     2499      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2500       0,     0,     0,    43,    30,     0,     0,     0,     0,     0,
     2501       0,   109,     0,     0,  1031,     0,     0,     8,     9,    10,
     2502      11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
     2503       0,     0,    33,     0,    34,     0,    35,     0,     0,   204,
     2504      38,     0,     0,   279,   280,    30,   281,     0,     0,     0,
     2505       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2506       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2507       0,     0,   282,    33,     0,     0,   205,     0,   283,     0,
     2508       0,     0,   284,     0,   268,   285,   286,   287,   288,    40,
     2509      41,  1174,   289,   290,     8,     9,    10,    11,    12,     0,
     2510     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2511       0,     0,     0,     0,     0,   292,     0,   376,     0,     0,
     2512     279,   280,    30,   281,   294,   824,   296,   297,   298,   299,
     2513       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2514       0,     0,     0,     0,     0,     0,     0,     0,     0,   282,
     2515      33,     0,     0,     0,     0,   283,     0,     0,     0,   284,
     2516       0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
     2517     290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
     2518       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2519       0,     0,   292,     0,   376,     0,     0,     0,     0,     0,
     2520       0,   294,  1175,   296,   297,   298,   299,     2,   203,     4,
    24342521       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    24352522      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2436        0,     0,    25,    26,    27,     0,     0,     0,     0,   279,
    2437       30,   280,     8,     9,    10,    11,    12,    13,    14,    15,
    2438       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2439        0,    25,    26,    27,     0,     0,     0,   281,    33,    30,
    2440       34,     0,    35,   282,     0,   204,    38,   283,     0,     0,
    2441      284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
    2442        0,     0,     0,     0,     0,   290,     0,    33,     0,     0,
    2443        0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
    2444      291,     0,   375,     0,     0,     0,     0,     0,     0,   293,
    2445      377,   295,   296,   297,   298,     1,     2,     3,     4,     5,
    2446        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2447       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2448        0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
    2449       31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2450       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2451       25,    26,    27,     0,    32,     0,     0,    33,    30,    34,
    2452        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
    2453        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2454        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2455        0,     0,     0,   204,    38,     0,     0,     0,     0,    42,
    2456        0,    43,     0,     0,     0,  -518,     0,     0,     0,    44,
    2457        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    2458       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2459       21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
    2460        0,     0,    29,     0,    30,    31,     0,     0,     0,     0,
     2523       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2524       0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    24612525       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2462        0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
    2463        0,     0,    33,     0,    34,     0,    35,    36,     0,    37,
    2464       38,    39,     0,     0,     0,     0,     0,     0,    40,    41,
     2526       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2527       0,    34,     0,    35,    36,     0,   204,    38,    39,     0,
     2528       0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
    24652529       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24662530       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2467        0,     0,     0,     0,    42,     0,    43,     0,     0,     0,
    2468        0,     0,     0,     0,    44,   202,     2,   203,     4,     5,
    2469        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2531       0,    42,     0,   205,     0,     0,     0,     0,     0,     0,
     2532       0,   206,     2,   203,     4,     5,     6,     7,     8,     9,
     2533      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2534      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2535       0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     2536       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    24702537      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2471        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2538       0,    25,    26,    27,    33,     0,    34,     0,    35,     0,
     2539      30,    37,    38,     0,     0,     2,   203,     4,     5,     6,
     2540       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2541      17,    18,    19,    20,    21,    22,    23,    24,    33,     0,
     2542      25,    26,    27,   108,     0,    37,    38,  -398,   684,    30,
     2543       0,     0,     0,     0,     0,     0,   632,     0,     0,     0,
     2544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2545       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2546       0,    35,    43,     0,    37,    38,     0,     0,     0,     0,
     2547     109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2548       0,     0,     0,     0,     0,     0,  1366,     0,     0,     0,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,   684,     0,     0,     0,     0,     0,     0,     0,   632,
     2551       2,   203,     4,     5,     6,     7,     8,     9,    10,    11,
     2552      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2553      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2554       0,     0,     0,     0,    30,     0,     0,     0,     0,     8,
     2555       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2556      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2557      27,     0,    33,     0,    34,     0,    35,    30,     0,    37,
     2558      38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2559       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2560       0,  1368,     0,     0,     0,    33,     0,     0,     0,     0,
     2561      36,     0,   334,   335,    39,     0,   684,     0,     0,     0,
     2562       0,    40,    41,     0,   632,     2,   203,     4,     5,     6,
     2563       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2564      17,    18,    19,    20,    21,    22,    23,    24,     0,   336,
     2565      25,    26,    27,     0,     0,     0,     0,   109,     0,    30,
    24722566       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24732567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24742568       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2475        0,    35,    36,     0,   204,    38,    39,     0,     0,     0,
    2476        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2477        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2478        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    2479        0,   205,     0,     0,     0,     0,     0,     0,     0,   206,
    2480        1,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2481       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2482       21,    22,    23,    24,  -292,     0,    25,    26,    27,    28,
    2483        0,     0,    29,     0,    30,     0,     0,     0,     0,     0,
    2484        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2485        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2486        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2487       38,     0,     0,  -292,     0,     1,     2,   203,     4,     5,
     2569       0,    35,     0,     0,   204,    38,     2,   203,     4,     5,
    24882570       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24892571      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2490        0,    25,    26,    27,    28,     0,    43,    29,     0,    30,
    2491        0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2572       0,    25,    26,    27,     0,     0,     0,     0,     0,     0,
     2573      30,   267,     0,     0,     0,     0,     0,     0,     0,   627,
    24922574       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2493        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2494        0,    35,     0,     0,    37,    38,   202,     2,   203,     4,
     2575       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2576      34,     0,    35,     0,     0,    37,    38,     2,   203,     4,
    24952577       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    24962578      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    24972579       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2498       30,    43,     0,     0,     0,     0,     0,     0,     0,   109,
     2580       0,    30,   684,     0,     0,     0,     0,     0,     0,     0,
     2581     632,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2583       0,    34,     0,    35,     0,     0,    37,    38,     2,   203,
     2584       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2585      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2586      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2587       0,     0,    30,   597,     0,     0,     0,     0,     0,     0,
     2588       0,   632,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2590      33,     0,    34,     0,    35,     0,     0,   204,    38,     8,
     2591       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2592      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2593      27,     0,     0,     0,     0,   279,   280,    30,   281,     0,
     2594       0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
     2595       0,     0,   268,     0,     0,     0,     0,     0,     0,     0,
     2596       0,     0,     0,     0,   282,    33,     0,     0,     0,     0,
     2597     283,     0,    37,    38,   284,     0,     0,   285,   286,   287,
     2598     288,    40,    41,     0,   289,   290,     0,     0,     0,     0,
     2599       0,     0,   291,     0,     0,     0,     0,     0,     0,     0,
     2600       0,     0,     0,     0,     0,     0,     0,   292,     0,   523,
     2601       0,     0,   168,     0,     0,     0,   294,   295,   296,   297,
     2602     298,   299,     8,     9,    10,    11,    12,    13,    14,    15,
     2603      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2604       0,    25,    26,    27,     0,     0,     0,     0,   279,   280,
     2605      30,   281,     8,     9,    10,    11,    12,    13,    14,    15,
     2606      16,    17,    18,    19,    20,    21,    22,    23,    24,  -293,
     2607       0,    25,    26,    27,     0,     0,     0,   282,    33,     0,
     2608      30,     0,     0,   283,     0,    37,    38,   284,     0,     0,
     2609     285,   286,   287,   288,    40,    41,     0,   289,   290,     0,
     2610       0,     0,     0,     0,     0,   291,     0,     0,    33,     0,
     2611       0,     0,     0,    36,     0,   334,   335,    39,     0,  -293,
     2612     292,     0,   597,    -3,    40,    41,     0,     0,     0,   294,
     2613     598,   296,   297,   298,   299,     8,     9,    10,    11,    12,
     2614      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2615      23,    24,   336,     0,    25,    26,    27,     0,     0,     0,
     2616     109,   279,   280,    30,   281,     8,     9,    10,    11,    12,
     2617      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2618      23,    24,  -293,     0,    25,    26,    27,     0,     0,     0,
     2619     282,    33,     0,    30,     0,     0,   647,     0,    37,    38,
     2620     284,     0,     0,   285,   286,   287,   288,    40,    41,     0,
     2621     289,   290,     0,     0,     0,     0,     0,     0,   291,     0,
     2622       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2623       0,     0,  -293,   292,   -34,   763,     0,     0,     0,     0,
     2624       0,     0,   294,   295,   296,   297,   298,   299,     8,     9,
     2625      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2626      20,    21,    22,    23,    24,   336,     0,    25,    26,    27,
     2627       0,     0,     0,   109,   279,   280,    30,   281,     8,     9,
     2628      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2629      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2630       0,     0,     0,   282,    33,     0,    30,   451,     0,   283,
     2631       0,    37,    38,   284,     0,     0,   285,   286,   287,   288,
     2632      40,    41,     0,   289,   290,     0,     0,     0,     0,     0,
     2633       0,   291,     0,     0,    33,     0,     0,     0,     0,     0,
     2634       0,    37,    38,     0,     0,     0,   292,     0,   293,     0,
     2635       0,     0,     0,     0,     0,   294,   295,   296,   297,   298,
     2636     299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2637      17,    18,    19,    20,    21,    22,    23,    24,   452,     0,
     2638      25,    26,    27,     0,     0,     0,   109,   279,   280,    30,
     2639     281,     0,     0,     0,     0,     0,     0,     0,     0,     8,
     2640       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2641      19,    20,    21,    22,    23,    24,   282,    33,    25,    26,
     2642      27,     0,   283,     0,    37,    38,   284,    30,     0,   285,
     2643     286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
     2644       0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
     2645       0,     0,     0,     0,     0,    33,     0,     0,     0,   292,
     2646       0,   154,    37,    38,     0,     0,     0,     0,   294,   295,
     2647     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
     2648      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2649      24,     0,     0,    25,    26,    27,     0,   641,     0,   336,
     2650     279,   280,    30,   281,     0,     0,     0,   109,     0,     0,
     2651       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2652      16,    17,    18,    19,    20,    21,    22,    23,    24,   282,
     2653      33,    25,    26,    27,     0,   283,     0,    37,    38,   284,
     2654      30,     0,   285,   286,   287,   288,    40,    41,     0,   289,
     2655     290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
     2656       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2657       0,     0,   292,     0,   597,    37,    38,     0,     0,     0,
     2658       0,   294,   598,   296,   297,   298,   299,     8,     9,    10,
     2659      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2660      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2661     641,     0,   336,   279,   280,    30,   281,     0,     0,     0,
     2662     632,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2663      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2664      23,    24,   282,    33,    25,    26,    27,     0,   283,     0,
     2665      37,    38,   284,    30,   451,   285,   286,   287,   288,    40,
     2666      41,     0,   289,   290,     0,     0,     0,     0,     0,     0,
     2667     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2668       0,    33,     0,     0,     0,   292,     0,   376,    37,    38,
     2669       0,     0,     0,     0,   294,   378,   296,   297,   298,   299,
     2670     472,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2671      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2672      21,    22,    23,    24,     0,   452,    25,    26,    27,   708,
     2673       0,     0,     0,   109,     0,    30,     8,     9,    10,    11,
     2674      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2675      22,    23,    24,  -293,     0,    25,    26,    27,     0,     0,
     2676       0,     0,     0,    33,    30,    34,     0,    35,     0,     0,
     2677      37,    38,     0,     0,     8,     9,    10,    11,    12,    13,
     2678      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2679      24,     0,    33,    25,    26,    27,     0,    36,     0,   334,
     2680     335,    39,    30,  -293,     0,     0,     0,     0,    40,    41,
     2681      -3,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2682      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2683      33,    25,    26,    27,   641,    36,   336,    37,    38,    39,
     2684      30,     0,     0,     0,   632,     0,    40,    41,     0,     0,
     2685       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2686      18,    19,    20,    21,    22,    23,    24,     0,    33,    25,
     2687      26,    27,    42,    36,    43,   204,    38,    39,    30,     0,
     2688       0,     0,    44,     0,    40,    41,     0,     0,     8,     9,
     2689      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2690      20,    21,    22,    23,    24,  -293,    33,    25,    26,    27,
     2691      42,    36,   267,   334,   335,    39,    30,     0,     0,     0,
     2692     206,     0,    40,    41,     0,     0,     0,     0,     0,     0,
     2693       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2694       0,     0,     0,     0,    33,     0,     0,     0,   641,     0,
     2695     336,    37,    38,     0,     0,  -293,     0,     0,   632,     0,
     2696       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2697      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2698      25,    26,    27,     0,     0,     0,   641,     0,   336,    30,
     2699     451,     0,     0,     0,     0,     0,   632,     0,     0,     8,
     2700       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2701      19,    20,    21,    22,    23,    24,     0,    33,    25,    26,
     2702      27,     0,     0,     0,    37,    38,     0,    30,   451,     8,
     2703       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2704      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2705      27,     0,     0,     0,     0,    33,     0,    30,     0,     0,
     2706       0,   452,    37,    38,     0,   944,     0,     0,     0,   109,
     2707       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2708       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2709       0,     0,    37,    38,     0,     0,     0,     0,     0,   452,
     2710       0,     0,     0,  1232,     0,     0,     0,   109,     0,     0,
     2711       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2712      17,    18,    19,    20,    21,    22,    23,    24,     0,   254,
     2713      25,    26,    27,     0,     0,     0,     0,   109,     0,    30,
     2714       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2715      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2716      26,    27,     0,     0,     0,     0,     0,    33,    30,     0,
     2717       0,     0,     0,     0,    37,    38,     0,     0,     8,     9,
     2718      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2719      20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
     2720       0,     0,     0,   204,    38,     0,    30,     0,     0,     0,
     2721       0,   154,     0,     0,     0,     0,     0,     0,     0,   109,
     2722       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2723       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2724     267,    37,    38,     0,     0,     0,     0,     0,   268,     8,
     2725       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2726      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2727      27,     0,     0,     0,     0,     0,     0,    30,   254,     0,
     2728       0,     0,     0,     0,     0,     0,   632,     8,     9,    10,
     2729      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2730      21,    22,    23,    24,     0,    33,    25,    26,    27,     0,
     2731       0,     0,    37,    38,     0,    30,     8,     9,    10,    11,
     2732      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2733      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2734       0,     0,     0,    33,    30,     0,     0,     0,     0,   336,
     2735      37,    38,     0,     0,     0,     0,     0,   632,     0,     0,
     2736       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2737       0,     0,    33,     0,     0,     0,     0,     0,     0,   204,
     2738      38,     0,     0,     0,     0,     0,     0,   452,     0,     0,
     2739       0,     0,     0,     0,     0,   109,     0,     0,     8,     9,
     2740      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2741      20,    21,    22,    23,    24,     0,   267,    25,    26,    27,
     2742       0,     0,     0,     0,   627,     0,    30,     8,     9,    10,
     2743      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2744      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2745       0,     0,     0,     0,    33,    30,     0,     0,     0,     0,
     2746       0,    37,    38,     0,     0,     8,     9,    10,    11,    12,
     2747      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2748      23,    24,     0,    33,    25,    26,    27,     0,     0,     0,
     2749      37,    38,     0,    30,     0,     0,     0,     0,   597,     0,
     2750       0,     0,     0,     0,     0,     0,   632,     0,     0,     0,
     2751       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2752       0,    33,     0,     0,     0,     0,     0,   336,    37,    38,
     2753       0,     0,     0,     0,     0,   109,     2,   203,     4,     5,
     2754       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2755      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2756       0,    25,    26,    27,     0,    43,     0,     0,     0,     0,
     2757      30,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    24992758       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25002759       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2501       34,     0,    35,     0,     0,   204,    38,     2,   203,     4,
    2502        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2503       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2504        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2505       30,     0,   205,     0,     0,     0,     0,     0,     0,     0,
    2506      268,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2507        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2508       34,     0,    35,    36,     0,   204,    38,    39,     0,     0,
    2509        0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
     2760      34,     0,    35,     0,     0,    37,    38,   279,   280,     0,
     2761     281,  1060,     0,  1061,     0,     0,  1062,  1063,  1064,  1065,
     2762    1066,  1067,  1068,  1069,     0,     0,  1546,  1070,     0,     0,
     2763       0,  1071,  1072,     0,    32,     0,   282,     0,     0,     0,
     2764       0,  -411,   647,     0,     0,     0,   284,     0,     0,   285,
     2765     286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
     2766       0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
     2767       0,     0,     0,     0,     0,     0,     0,     0,     0,   292,
     2768       0,   376,     0,     0,   168,     0,     0,     0,   294,   378,
     2769     296,   297,   298,   299,     0,     0,     0,     0,  1074,     0,
     2770     279,   280,  -128,   281,  1060,     0,  1061,     0,     0,  1062,
     2771    1063,  1064,  1065,  1066,  1067,  1068,  1069,     0,     0,     0,
     2772    1070,     0,     0,     0,  1071,  1072,     0,    32,     0,   282,
     2773       0,     0,     0,     0,     0,   647,     0,     0,     0,   284,
     2774       0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
     2775     290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
     2776       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2777       0,     0,   292,     0,   376,     0,     0,   168,     0,     0,
     2778       0,   294,   378,   296,   297,   298,   299,     0,     0,     0,
     2779       0,  1074,     0,   279,   280,  -128,   281,  1060,     0,  1061,
     2780    1416,  1417,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,
     2781       0,     0,  1546,  1070,     0,     0,     0,  1071,  1072,     0,
     2782      32,     0,   282,     0,     0,     0,     0,     0,   647,     0,
     2783       0,     0,   284,     0,     0,   285,   286,   287,   288,    40,
     2784      41,     0,   289,   290,     0,     0,     0,     0,     0,     0,
     2785     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2786       0,     0,     0,     0,     0,   292,     0,   376,     0,     0,
     2787     168,     0,     0,     0,   294,   378,   296,   297,   298,   299,
     2788       0,     0,   279,   280,  1074,   281,  1060,     0,  1061,  1416,
     2789    1417,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,     0,
     2790       0,     0,  1070,     0,     0,     0,  1071,  1072,     0,    32,
     2791       0,   282,     0,     0,     0,     0,     0,   647,     0,     0,
     2792       0,   284,     0,     0,   285,   286,   287,   288,    40,    41,
     2793       0,   289,   290,     0,     0,     0,     0,     0,     0,   291,
     2794       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2795       0,     0,     0,     0,   292,     0,   376,     0,     0,   168,
     2796       0,     0,     0,   294,   378,   296,   297,   298,   299,     0,
     2797       0,   279,   280,  1074,   281,  1060,     0,  1061,     0,     0,
     2798    1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,     0,     0,
     2799       0,  1070,     0,     0,     0,  1071,  1072,     0,    32,     0,
     2800     282,     0,     0,     0,     0,     0,   647,     0,     0,     0,
     2801     284,     0,     0,   285,   286,   287,   288,    40,    41,     0,
     2802     289,   290,     0,     0,     0,     0,     0,     0,   291,     0,
     2803       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2804       0,     0,     0,   292,     0,   376,     0,     0,   168,     0,
     2805       0,     0,   294,   378,   296,   297,   298,   299,     0,     0,
     2806       0,     0,  1074,     2,   203,     4,     5,     6,     7,     8,
     2807       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2808      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2809      27,     0,     0,     0,     0,     0,     0,    30,     0,   279,
     2810     280,     0,   281,     0,     0,     0,     0,     0,     0,     0,
     2811       0,     0,     0,     0,     0,     0,     0,     0,   279,   280,
     2812       0,   281,     0,     0,     0,    33,     0,    34,   282,    35,
     2813       0,     0,    37,    38,   283,     0,     0,     0,   284,     0,
     2814       0,   285,   286,   287,   288,    40,    41,   282,   289,   290,
     2815       0,     0,     0,   283,  1325,     0,   291,   284,     0,     0,
     2816     285,   286,   287,   288,    40,    41,     0,   289,   290,     0,
     2817       0,   292,     0,   376,     0,   291,   279,   280,   778,   281,
     2818     294,   378,   296,   297,   298,   299,     0,     0,     0,     0,
     2819     292,     0,   376,     0,     0,   990,     0,     0,     0,   294,
     2820     378,   296,   297,   298,   299,   282,     0,     0,     0,     0,
     2821       0,   283,     0,     0,     0,   284,     0,     0,   285,   286,
     2822     287,   288,    40,    41,     0,   289,   290,     0,     0,     0,
     2823       0,     0,     0,   291,   279,   280,     0,   281,     0,     0,
     2824       0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
     2825     376,     0,     0,   279,   280,     0,   281,   294,   378,   296,
     2826     297,   298,   299,   282,     0,     0,     0,     0,     0,   283,
     2827       0,     0,     0,   284,     0,     0,   285,   286,   287,   288,
     2828      40,    41,   282,   289,   290,     0,     0,     0,   647,     0,
     2829       0,   291,   284,     0,     0,   285,   286,   287,   288,    40,
     2830      41,     0,   289,   290,     0,     0,   292,     0,   376,     0,
     2831     291,   279,   280,     0,   281,   294,   731,   296,   297,   298,
     2832     299,     0,     0,     0,     0,   292,     0,   782,     0,     0,
     2833     279,   280,     0,   281,   294,   378,   296,   297,   298,   299,
     2834     282,     0,     0,     0,     0,     0,   283,     0,     0,     0,
     2835     284,     0,     0,   285,   286,   287,   288,    40,    41,   282,
     2836     289,   290,     0,     0,     0,   283,     0,     0,   291,   284,
     2837       0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
     2838     290,     0,     0,   292,     0,   376,     0,   291,   279,   280,
     2839       0,   281,   294,   824,   296,   297,   298,   299,     0,     0,
     2840       0,     0,   516,     0,     0,     0,     0,     0,     0,     0,
     2841       0,   294,   378,   296,   297,   298,   299,   282,     0,     0,
     2842       0,     0,     0,   283,     0,     0,     0,   284,     0,     0,
     2843     285,   286,   287,   288,    40,    41,     0,   289,   290,     0,
     2844       0,     0,     0,     0,     0,   291,     0,     0,     0,     0,
     2845       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2846     519,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2847     378,   296,   297,   298,   299,     2,   203,     4,     5,     6,
     2848       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2849      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2850       0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    25102851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25112852       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2512       42,     0,   205,     0,     0,     0,     0,     0,     0,     0,
    2513      206,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2514       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2515       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2516        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2853       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2854       0,    35,    36,     0,   171,   172,    39,     0,     0,     0,
     2855       0,     0,     0,    40,    41,   202,     2,   203,     4,     5,
     2856       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2857      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2858       0,    25,    26,    27,     0,     0,     0,     0,     0,     0,
     2859      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25172860       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2861       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2862      34,     0,    35,     0,     0,   204,    38,   472,     2,   203,
     2863       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2864      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2865      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2866       0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    25182867       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2519        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2520       38,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2521       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2522       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2523        0,     0,     0,     0,    30,  -397,   682,     0,     0,     0,
    2524        0,     0,     0,     0,   630,     0,     0,     0,     0,     0,
    2525        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2526        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2527       38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2528        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2529        0,  1360,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,     0,     0,     0,     0,   682,     0,     0,     0,
    2531        0,     0,     0,     0,   630,     2,   203,     4,     5,     6,
    2532        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2533       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2534       25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2535        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2536       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2537       24,     0,     0,    25,    26,    27,    33,     0,    34,     0,
    2538       35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
    2539        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2540        0,     0,     0,     0,     0,  1362,     0,     0,     0,    33,
    2541        0,     0,     0,     0,    36,     0,   333,   334,    39,     0,
    2542      682,     0,     0,     0,     0,    40,    41,     0,   630,     2,
    2543      203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2544       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2545       23,    24,     0,   335,    25,    26,    27,     0,     0,     0,
    2546        0,   109,    30,     0,     0,     0,     0,     0,     0,     0,
    2547        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549       33,     0,    34,     0,    35,     0,     0,   204,    38,     2,
    2550      203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2551       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2552       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2553        0,     0,    30,     0,   267,     0,     0,     0,     0,     0,
    2554        0,     0,   625,     0,     0,     0,     0,     0,     0,     0,
    25552868       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25562869      33,     0,    34,     0,    35,     0,     0,    37,    38,     2,
     
    25582871      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    25592872      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2560        0,     0,    30,     0,   682,     0,     0,     0,     0,     0,
    2561        0,     0,   630,     0,     0,     0,     0,     0,     0,     0,
     2873       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    25622874       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2563       33,     0,    34,     0,    35,     0,     0,    37,    38,     2,
    2564      203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2875       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2876       0,    33,     0,    34,     0,    35,     0,     0,   204,    38
     2877};
     2878
     2879#define yypact_value_is_default(yystate) \
     2880  ((yystate) == (-1361))
     2881
     2882#define yytable_value_is_error(yytable_value) \
     2883  YYID (0)
     2884
     2885static const yytype_int16 yycheck[] =
     2886{
     2887       1,   182,     0,     0,    42,   201,   236,   165,   166,    42,
     2888     183,    42,   182,     1,   183,   541,   182,   346,   518,   346,
     2889     695,   756,   182,   216,   695,   182,   454,   627,   899,   695,
     2890     653,   182,   495,    31,    31,   460,   103,   276,   609,   777,
     2891     182,   361,   609,   292,    42,   365,    44,    44,   610,  1040,
     2892    1059,  1039,  1040,    38,   616,   497,    54,   607,    42,   501,
     2893    1420,   996,    60,    60,   607,    63,    63,  1003,    66,    66,
     2894     113,   577,    71,     0,    54,    42,   607,   607,    66,   607,
     2895      54,   262,   184,     0,   607,   152,    42,  1416,   607,    71,
     2896     263,    81,   262,   415,   263,   453,   262,   720,  1335,   774,
     2897      43,    44,   262,   774,    31,   262,   104,     0,   774,   107,
     2898       1,   262,    62,   435,    31,   113,  1052,    31,    43,    44,
     2899     262,   443,    71,   108,   104,   110,    27,   107,  1071,  1072,
     2900     104,    38,   131,   107,    81,    63,   118,    81,    31,    50,
     2901      43,    44,    84,   899,   182,   108,   144,   144,   611,   182,
     2902      71,   182,   615,    44,   152,   198,   258,   259,  1518,   157,
     2903     157,  1490,   109,  1523,   493,    71,   110,    73,    74,   527,
     2904     112,   114,   152,   636,   423,   424,    77,   640,   423,   424,
     2905     108,   131,   131,  1543,   182,   183,   183,   106,   113,   110,
     2906    1550,   741,     0,     1,     0,    44,  1139,   108,   182,    38,
     2907     198,  1438,   108,   110,   278,     0,    81,   113,   206,   206,
     2908     113,   130,   103,   741,   407,   182,    71,   215,   109,   108,
     2909     218,   218,   741,    31,   262,    31,   182,    82,    83,   262,
     2910     403,   262,    11,   108,   403,   215,    31,    38,   253,   642,
     2911     643,   215,    95,    71,    71,    73,    74,  1238,   249,    71,
     2912     248,   248,   143,   108,   499,    63,   659,    63,    66,    71,
     2913     109,   152,   511,   108,   262,   263,   263,   516,  1006,   122,
     2914     519,   269,   339,   518,   111,   595,   838,   848,   276,    44,
     2915     453,   848,   609,   110,   453,   113,   836,   715,   110,   269,
     2916     291,    38,  1301,   836,   143,   269,   276,  1288,   110,  1287,
     2917    1288,   368,   276,  1059,   696,   836,   836,   108,   836,   110,
     2918     816,   202,   485,   836,  1472,   206,   485,   836,   638,  1254,
     2919     108,   248,   113,   469,   573,   109,   718,    38,   326,   326,
     2920     733,   248,   116,  1068,   248,    71,   253,    73,    74,   584,
     2921      94,    81,   130,    81,   109,   236,   237,   345,   346,  1507,
     2922     393,  1509,  1223,   115,    81,   248,    71,   206,    73,    74,
     2923     253,   108,   225,   110,   362,   345,   688,    38,   366,   109,
     2924     108,   345,    89,    90,   110,   129,   116,   268,   421,   109,
     2925     271,   244,   362,     3,   427,   115,   366,   236,   362,   116,
     2926     957,     3,   366,   108,   115,   393,   109,   108,   113,   110,
     2927     415,   292,     0,   116,   295,   403,   403,   870,   125,   126,
     2928     218,    95,   218,   956,   641,   642,   643,    52,  1018,   268,
     2929     435,  1412,   825,   421,  1412,   956,   956,  1523,   443,   427,
     2930    1493,   429,   659,   108,  1523,   509,  1499,   108,   122,   110,
     2931     248,   206,   248,   109,     0,    79,   295,  1543,   339,   429,
     2932     116,   342,  1461,   248,  1550,   453,   130,  1520,   899,  1468,
     2933      95,  1550,  1525,   530,   130,  1027,  1028,  1223,  1404,  1405,
     2934     361,   472,   237,   115,   365,   118,   110,   368,   112,   477,
     2935     123,   124,   116,   128,   109,   130,   115,   485,   485,   131,
     2936     115,   489,   489,   342,   115,   493,   654,   115,   415,   962,
     2937     925,  1001,   131,   268,   115,     0,   733,   827,   108,   109,
     2938     131,   831,  1521,   131,   695,  1138,   755,   518,   435,   848,
     2939     131,   848,   415,   965,   697,   695,   443,   292,   697,   695,
     2940     295,   677,   423,   424,   535,   695,    31,   538,   695,   540,
     2941     541,   347,   435,   108,   695,  1301,  1113,    42,   115,    44,
     2942     443,   114,   115,   695,   108,   190,   110,   115,     0,     1,
     2943     451,   663,   489,   454,   131,    60,  1301,   130,    63,   460,
     2944     487,    66,   489,   131,   423,   424,   108,   935,   213,   109,
     2945     108,   472,   110,   975,     3,   943,   115,   588,   223,    31,
     2946     118,    10,    11,    12,    13,    14,   489,   595,   825,   673,
     2947     115,   921,   131,    79,   120,   121,   497,   115,   499,   607,
     2948     501,   609,   108,   115,   110,   595,   131,   115,   661,    38,
     2949     511,  1062,   513,   131,    66,   516,   693,   518,   519,   131,
     2950     628,   989,   961,   131,   110,   109,   112,   109,   109,   530,
     2951     116,   115,   115,  1378,   115,   696,   644,    66,   628,   144,
     2952     499,    84,    85,    86,   628,    87,    88,   292,   131,   660,
     2953     658,   662,   157,   661,   644,   108,   812,   718,   108,   518,
     2954     644,  1099,   478,   688,   115,   108,   822,   110,   658,   112,
     2955     113,   489,   108,   489,   658,   759,   451,   182,   183,   454,
     2956     131,   837,   885,   584,   489,   460,   342,   695,   108,   697,
     2957     110,   511,   769,   513,   595,  1461,   516,   598,   118,   519,
     2958     108,   206,  1468,   906,   108,   730,   110,    10,    11,    12,
     2959      13,    14,   109,   218,   118,   109,   109,   728,   115,   109,
     2960    1465,   115,  1467,   891,   109,   584,   627,   967,   111,  1131,
     2961     115,   632,   115,   741,   742,    38,   511,   638,   513,   598,
     2962     487,   516,   111,   248,   519,   109,   115,   755,   809,   111,
     2963     111,   115,   935,   115,   115,  1521,   935,   262,     0,     1,
     2964     943,   688,   111,    66,   943,   755,   115,   694,   627,   109,
     2965    1100,   755,  1223,   632,   109,   115,   109,  1522,   109,  1129,
     2966     115,  1317,   115,  1133,   115,   688,   109,  1189,  1190,    31,
     2967      67,   596,   693,   109,    71,   440,   248,    74,   109,    76,
     2968      91,    92,    44,   730,   115,   108,    83,   110,    71,   111,
     2969      73,    74,    75,   629,   715,   118,   109,   109,   108,    82,
     2970      83,   326,   115,   115,    66,  1031,   887,   730,   836,   474,
     2971     108,   487,   110,     4,     5,     6,     7,     8,     9,   108,
     2972     848,   346,  1527,   770,   745,   108,  1527,   562,   563,   564,
     2973     565,  1527,     4,     5,     6,     7,     8,     9,   109,   114,
     2974     108,   103,   110,   109,   115,   111,   511,  1318,   769,   115,
     2975     109,   516,   131,   109,   519,   108,   115,   109,    71,   115,
     2976    1036,  1037,    75,   115,   130,   131,  1054,    63,   899,    82,
     2977      83,   108,   109,   110,   641,   642,   643,    68,   403,    70,
     2978     108,   108,   144,   110,    71,   721,    73,    74,    75,   108,
     2979     152,   153,   659,   921,   975,   108,    68,   110,    70,   735,
     2980      71,  1372,    73,    74,  1375,   118,   827,   935,   114,   115,
     2981     831,   921,   209,   111,   108,   943,   110,   131,  1094,  1095,
     2982     715,   183,   598,  1202,  1203,  1006,  1205,   694,   453,    84,
     2983      85,    86,  1211,   961,   113,  1214,   198,   115,   116,   201,
     2984     202,   108,   109,   110,   206,   108,   109,   110,   966,  1420,
     2985     981,   627,   899,   108,  1425,   110,   632,   112,   113,   131,
     2986     108,   109,   110,   113,   489,   227,   733,   998,   493,   231,
     2987    1001,   233,  1003,   109,   110,  1056,   899,  1399,    57,    58,
     2988     242,    57,    58,    59,  1455,   131,   248,  1260,  1261,  1262,
     2989      50,   253,    52,   829,  1416,    55,    56,    57,   131,    59,
     2990     921,   263,    71,   770,   925,   113,   108,   832,   110,   271,
     2991     108,   676,   110,   108,    74,   110,    81,   489,   694,   108,
     2992     685,  1052,   114,   115,   689,  1129,    86,    87,    71,  1133,
     2993    1134,  1062,    75,   108,  1065,  1066,  1067,   115,   116,    82,
     2994      83,   115,   116,   111,   965,   966,   967,   700,  1121,   702,
     2995    1131,   108,   349,    81,   351,    43,    44,   119,   825,    93,
     2996    1236,   899,   128,   899,   127,   108,   130,  1489,  1490,   110,
     2997    1541,   558,   559,   108,   899,   118,  1547,   339,   560,   561,
     2998     342,   108,   607,   108,   609,   111,   348,  1558,   967,   566,
     2999     567,  1562,  1268,  1121,   770,  1374,   111,  1018,   109,   361,
     3000    1276,  1277,  1278,   365,   109,   109,   368,   109,  1189,  1190,
     3001     109,   109,  1059,   110,  1502,    10,    11,    12,    13,    14,
     3002     111,  1218,     4,     5,     6,     7,     8,     9,   966,    71,
     3003     925,    73,    74,    75,   111,   115,  1059,   130,   113,  1018,
     3004      82,    83,   439,    38,  1248,   108,   111,   109,  1324,   109,
     3005      32,   115,   111,   415,   111,   111,    10,    11,    12,    13,
     3006      14,   111,   116,   116,  1552,    28,   108,   111,   430,   109,
     3007     695,    66,   697,   435,   109,   113,   118,   116,  1099,  1100,
     3008     114,   443,   109,  1201,    38,  1021,    68,   115,    70,   114,
     3009    1218,   114,  1223,   109,    10,    11,    12,    13,    14,   108,
     3010     131,   109,    63,   115,   109,   116,   109,   469,  1218,   109,
     3011     472,  1158,    66,   109,   115,   109,   741,   742,   109,    80,
     3012     109,  1059,    38,  1059,  1242,   487,   109,   489,   109,  1260,
     3013    1261,  1262,  1336,   109,  1059,   497,  1340,   109,     3,   501,
     3014      71,   109,    73,    74,    75,    10,    11,    12,    13,    14,
     3015      66,    82,    83,   114,   108,    71,   110,   109,   923,    75,
     3016     109,   109,   109,   109,   118,    28,    82,    83,   530,   531,
     3017     114,   130,  1039,    38,   111,   109,  1223,  1537,   114,   109,
     3018     109,   109,   342,   343,   109,   111,  1317,  1318,   115,   111,
     3019     109,  1238,   108,   116,   354,   355,   157,  1218,   115,   109,
     3020    1223,    66,   118,   115,  1099,   113,   115,   111,   109,   115,
     3021     115,   836,   109,   109,   108,   577,  1527,  1335,  1399,   111,
     3022     108,  1242,  1395,   848,   108,  1528,   108,  1527,   108,  1528,
     3023     111,  1527,   131,   595,   596,  1416,   598,  1527,  1442,   116,
     3024    1527,  1372,  1018,   114,  1375,   109,  1527,   609,   109,  1552,
     3025     109,   113,   128,  1552,  1301,  1527,   114,   218,   111,   131,
     3026     109,   115,  1200,  1201,  1200,   627,  1394,  1395,   111,   115,
     3027     632,   111,   109,  1404,  1405,   109,   638,   109,  1301,   641,
     3028     642,   643,   111,   111,  1394,  1223,   111,  1223,   109,  1420,
     3029    1394,  1158,   111,   111,  1425,   256,   111,   659,  1223,   260,
     3030      46,   131,   109,   114,  1242,  1070,   114,   131,  1489,  1490,
     3031     935,   131,  1443,   116,  1335,   677,   109,   131,   943,   131,
     3032    1438,   111,   114,   111,  1455,   111,   688,   899,   111,  1502,
     3033     111,   693,   694,   111,    44,   697,   961,   111,   111,   109,
     3034      71,   109,    73,    74,    75,   111,   111,   108,   108,   108,
     3035      60,    82,    83,    63,    59,   109,    66,     0,  1296,  1527,
     3036    1296,   109,   113,  1301,  1527,  1301,  1527,   116,   730,   131,
     3037     111,   733,  1503,   111,  1502,   109,  1301,   108,   111,   109,
     3038     742,  1512,  1158,   745,    95,   108,   347,  1518,    31,    95,
     3039     108,   131,  1523,   114,   966,   111,   109,  1335,   115,  1527,
     3040    1528,  1528,   109,    41,    29,   109,   109,   769,   770,   131,
     3041    1541,   131,  1543,   775,  1461,   116,  1547,  1438,   109,  1550,
     3042    1287,  1468,   186,    66,  1552,  1552,   109,  1558,    95,   193,
     3043      95,  1562,   131,   109,   144,   109,   131,   116,  1461,   131,
     3044     109,   109,   114,   131,   108,  1468,   131,   157,   111,  1470,
     3045     812,  1472,   111,   114,   469,    80,    81,   114,   109,   109,
     3046     822,   109,  1238,   825,   109,   827,  1074,   428,   830,   831,
     3047     832,     3,   568,   183,  1521,   837,   131,   569,    10,    11,
     3048      12,    13,    14,   570,  1223,   847,  1507,  1059,  1509,   571,
     3049    1490,    10,    11,    12,    13,    14,   206,  1380,  1521,   572,
     3050    1438,   265,  1562,    71,  1311,  1134,    38,    75,   218,    71,
     3051     153,    73,    74,    75,    82,    83,  1537,   478,  1340,    38,
     3052      82,    83,  1468,  1461,  1090,  1461,   943,   451,   463,   702,
     3053    1468,   451,  1468,   588,    66,   655,  1461,   899,   945,   745,
     3054     108,   990,   891,  1468,   963,  1310,   108,    66,   110,   489,
     3055     118,  1242,   755,    -1,   116,   576,   118,   321,  1537,   921,
     3056      -1,    -1,   722,   576,   724,   329,   576,    -1,   332,    -1,
     3057      -1,   731,   732,    -1,    -1,  1470,   736,  1472,    -1,    -1,
     3058      -1,    -1,    -1,  1521,   227,  1521,    -1,    -1,   748,   108,
     3059      -1,   110,    -1,   753,    -1,   957,  1521,    -1,    -1,   118,
     3060      -1,    -1,    -1,   965,   966,   248,    -1,    -1,    -1,    -1,
     3061     253,   281,  1507,    -1,  1509,   240,   326,    -1,    -1,   779,
     3062      -1,   983,    -1,    -1,   294,   295,    -1,    -1,    -1,  1201,
     3063      -1,   395,    -1,    -1,    -1,   399,   306,    -1,    -1,    -1,
     3064     601,    -1,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
     3065      -1,  1223,    -1,    82,    83,    71,  1018,    73,    74,    75,
     3066      -1,    -1,   677,    -1,   824,    -1,    82,    83,   629,  1031,
     3067    1242,    -1,   342,   634,  1036,  1037,    -1,  1039,  1040,   108,
     3068      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3069      -1,    -1,   108,   403,   110,    -1,    -1,  1059,    -1,    -1,
     3070      -1,    -1,   118,    -1,  1469,   348,  1471,    71,   378,    73,
     3071      74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,
     3072     484,   881,   882,   883,   884,    -1,   886,    -1,    -1,  1301,
     3073      -1,    -1,  1094,  1095,    -1,    -1,    -1,    -1,  1100,    -1,
     3074       0,  1506,   902,  1508,   108,    -1,   110,    71,    -1,    73,
     3075      74,    75,   377,    -1,   118,    -1,   916,    63,    82,    83,
     3076     721,    -1,    -1,  1335,    -1,    -1,    -1,    73,    -1,    -1,
     3077      -1,    31,   415,    -1,   735,    -1,    -1,    -1,    -1,    -1,
     3078      -1,    -1,    -1,    -1,   108,    -1,  1551,   430,  1553,    -1,
     3079      -1,    -1,   435,    -1,   118,   955,  1158,   812,    -1,    -1,
     3080     443,  1566,  1567,    -1,    -1,    -1,    66,   822,   114,    -1,
     3081      -1,    -1,   576,   577,    -1,    -1,    -1,    -1,    -1,    -1,
     3082      -1,    -1,   837,    -1,    -1,    -1,   469,    -1,    -1,    -1,
     3083      -1,    -1,    -1,   458,    -1,   995,    -1,    -1,   463,  1201,
     3084      -1,    -1,  1002,    -1,   487,    -1,   489,  1007,    -1,    -1,
     3085      -1,   157,  1012,    -1,  1014,    -1,  1218,    -1,  1018,  1019,
     3086    1020,  1223,    -1,  1023,    -1,    -1,  1438,    -1,   829,    -1,
     3087      -1,   496,  1032,   498,  1236,    -1,  1238,    -1,    -1,    -1,
     3088    1242,    -1,    -1,    -1,    -1,   555,   556,   557,   531,  1461,
     3089    1050,  1051,    -1,   153,    -1,    -1,  1468,    -1,    -1,    -1,
     3090     664,    -1,  1527,    -1,   668,    -1,  1268,    -1,    -1,    -1,
     3091      -1,    -1,   218,    -1,  1276,  1277,  1278,  1077,    63,    -1,
     3092    1080,    -1,    -1,    -1,    -1,  1287,  1288,    -1,   598,    -1,
     3093      -1,    -1,    -1,    -1,    -1,    -1,    -1,   701,    -1,  1301,
     3094      -1,    -1,    -1,     0,     1,    -1,    -1,    -1,    -1,  1521,
     3095     256,    -1,    -1,   596,   260,    -1,    -1,    -1,  1118,    -1,
     3096      -1,    -1,  1324,    -1,  1124,  1125,    -1,    -1,    -1,   114,
     3097     276,    -1,    -1,  1335,    31,    -1,  1136,    -1,    -1,    -1,
     3098      -1,  1141,    -1,    -1,  1144,    -1,  1146,    -1,   248,  1149,
     3099      -1,    -1,    -1,   253,    -1,    -1,    -1,    -1,   641,   642,
     3100     643,    -1,  1162,    -1,    -1,    -1,    63,    -1,    -1,    66,
     3101      -1,     0,   157,    -1,    -1,  1175,   659,  1177,  1178,  1179,
     3102    1180,  1036,  1037,    -1,    -1,   650,    -1,    -1,    -1,    -1,
     3103      -1,    -1,     0,  1193,   677,  1195,    -1,    -1,    -1,  1199,
     3104      -1,   347,    31,    -1,    -1,   688,    -1,    -1,    -1,    -1,
     3105    1412,   694,   816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3106    1021,   731,    -1,    31,    -1,   677,    -1,    -1,  1228,  1229,
     3107      -1,    -1,    -1,   218,    -1,    -1,  1438,    66,    -1,  1094,
     3108    1095,    -1,    -1,    -1,    -1,   710,    -1,   730,   348,    -1,
     3109     733,   716,    -1,    -1,    -1,    -1,   153,    -1,    66,  1461,
     3110      -1,    -1,    -1,    -1,    -1,    -1,  1468,   777,    -1,    -1,
     3111      -1,   256,    -1,    -1,    -1,   260,    -1,    -1,    -1,  1279,
     3112    1280,    -1,   428,    -1,    -1,    -1,    -1,   770,    -1,  1289,
     3113      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   445,
     3114      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
     3115      -1,    -1,    -1,    -1,   824,   415,    -1,    -1,    -1,  1521,
     3116      -1,   218,    -1,    -1,   153,   929,  1528,    -1,    -1,   812,
     3117     430,    -1,   478,    -1,   130,   435,    -1,    -1,    -1,   822,
     3118      -1,  1341,   825,   443,    -1,   153,    -1,   830,    -1,   832,
     3119      -1,   248,    -1,  1353,   837,  1355,  1356,  1357,    -1,    -1,
     3120     812,    -1,   347,    -1,    -1,    -1,    -1,  1367,    -1,   469,
     3121     822,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,    -1,
     3122      -1,  1236,    -1,    -1,    -1,   837,    -1,   487,    -1,   489,
     3123      -1,    -1,  1392,    -1,    -1,    -1,    -1,    -1,    -1,  1200,
     3124      -1,    -1,    -1,    -1,  1008,    -1,    -1,    -1,    -1,    -1,
     3125      -1,    -1,    -1,  1268,    -1,    -1,   899,    -1,    -1,   248,
     3126    1024,  1276,  1277,  1278,   253,    -1,   891,    -1,    -1,    -1,
     3127      -1,   531,    -1,   898,    -1,    -1,    -1,    -1,    -1,    -1,
     3128     248,    -1,    -1,   428,    -1,   253,    -1,    -1,  1448,  1449,
     3129      10,    11,    12,    13,    14,   601,    -1,    -1,    -1,    -1,
     3130      -1,  1461,    -1,    -1,    -1,    -1,    -1,    -1,  1468,  1324,
     3131      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,
     3132      -1,    -1,    -1,   629,    -1,    -1,    -1,    -1,   634,    -1,
     3133      -1,    -1,    -1,   478,    -1,  1296,   596,  1101,    -1,    -1,
     3134     983,  1501,    -1,    -1,    -1,  1505,    66,    -1,  1018,    -1,
     3135      -1,    71,    -1,    73,    74,    75,    -1,    -1,    -1,   348,
     3136      -1,    -1,    82,    83,    -1,   990,    -1,    -1,    -1,    -1,
     3137      -1,    -1,    -1,   430,  1534,    -1,  1536,    -1,    -1,    -1,
     3138     348,   641,   642,   643,    -1,    -1,    -1,    -1,   108,  1059,
     3139     110,    -1,    -1,  1036,  1037,    -1,  1039,  1040,   118,   659,
     3140      -1,    -1,    -1,    -1,  1564,  1565,    -1,    -1,    -1,    -1,
     3141      -1,    -1,  1572,  1573,    -1,   721,  1059,   677,    -1,    -1,
     3142      -1,    -1,    -1,    -1,  1036,  1037,   415,    -1,   688,   735,
     3143      -1,    -1,   489,    -1,   694,    -1,    -1,    -1,    -1,    -1,
     3144      -1,   430,    -1,    -1,    -1,    -1,   435,   415,    -1,   755,
     3145      -1,  1094,  1095,    -1,   443,    -1,   601,    -1,    -1,    -1,
     3146      -1,    -1,   430,    -1,    -1,  1090,    -1,   435,    -1,    -1,
     3147     730,    -1,    -1,   733,   531,   443,    -1,    -1,    -1,    -1,
     3148     469,    -1,  1094,  1095,   629,    -1,    -1,    -1,    -1,   634,
     3149      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   487,    -1,
     3150     489,   469,    -1,    -1,    -1,  1175,    -1,    -1,    -1,    -1,
     3151     770,    -1,    -1,    -1,    -1,  1158,    -1,    -1,    -1,   487,
     3152      -1,   489,    -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,
     3153      -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,   596,
     3154      -1,    -1,   531,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3155      -1,    -1,   812,    -1,    -1,    -1,    -1,    -1,  1201,    -1,
     3156      -1,    38,   822,   531,    -1,   825,    -1,    -1,    -1,    -1,
     3157     830,  1196,   832,    -1,    -1,    -1,   721,   837,    -1,    -1,
     3158    1223,    -1,    -1,    -1,   641,   642,   643,    -1,    -1,    66,
     3159     735,    -1,    -1,  1236,    71,  1238,    73,    74,    75,    -1,
     3160      -1,    -1,   659,    -1,    -1,    82,    83,   596,    -1,    -1,
     3161      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3162      -1,    -1,    -1,    -1,    -1,  1268,    -1,    -1,   596,    -1,
     3163      -1,   108,    -1,  1276,  1277,  1278,    -1,    -1,    -1,   899,
     3164      -1,   118,    -1,    -1,  1287,  1288,    -1,    -1,    -1,    -1,
     3165      -1,    -1,   641,   642,   643,    -1,  1268,    -1,  1301,    -1,
     3166      -1,    -1,    -1,    -1,  1276,  1277,  1278,    -1,    -1,    -1,
     3167     659,    -1,    -1,   641,   642,   643,   733,    -1,    -1,    -1,
     3168      -1,  1324,    -1,    -1,   829,    -1,    -1,    -1,   677,    -1,
     3169      -1,   659,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   688,
     3170      -1,    -1,    -1,    -1,    -1,   694,    -1,    -1,    -1,   677,
     3171      -1,    -1,  1324,    -1,    -1,  1021,    -1,    -1,    -1,    -1,
     3172     688,    -1,    -1,   983,    -1,    -1,   694,    -1,    -1,    -1,
     3173      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
     3174      -1,   730,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,
     3175      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
     3176      -1,    -1,   730,    -1,    -1,   733,    -1,    -1,   825,  1412,
     3177      -1,    -1,    -1,    -1,    -1,   832,  1036,  1037,    -1,  1039,
     3178    1040,   770,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
     3179      -1,    -1,    71,    -1,    73,    74,    75,    -1,    -1,  1059,
     3180      -1,    -1,   770,    82,    83,    -1,    -1,    -1,    -1,    -1,
     3181      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1461,    -1,
     3182      -1,    -1,    -1,   812,    -1,  1468,    -1,    -1,    -1,   108,
     3183      -1,   110,    -1,   822,  1094,  1095,   825,    -1,    -1,   118,
     3184      -1,   830,   899,   832,   812,    -1,    -1,    -1,   837,    -1,
     3185      -1,    -1,    -1,    -1,   822,    -1,    -1,   825,    -1,    -1,
     3186      -1,    -1,   830,    -1,   832,    -1,    -1,    -1,    -1,   837,
     3187      -1,    10,    11,    12,    13,    14,  1021,    -1,  1521,    -1,
     3188      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3189      -1,    -1,    -1,    -1,  1200,    -1,    -1,    -1,  1158,    38,
     3190      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,
     3191     899,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3192      -1,    -1,    -1,    -1,    -1,    -1,   983,    66,    -1,    -1,
     3193      -1,   899,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
     3194      -1,  1201,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,
     3195      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3196      12,    13,    14,  1223,    -1,    -1,    25,    26,    27,   108,
     3197      -1,   110,    -1,    -1,    -1,    -1,  1236,    -1,  1238,   118,
     3198      -1,    -1,  1039,  1040,    -1,    -1,    38,    44,    -1,    -1,
     3199    1296,    -1,    -1,    -1,   983,    -1,    -1,    -1,    -1,    -1,
     3200      -1,    -1,  1059,    -1,    -1,    -1,    63,    -1,  1268,    -1,
     3201      -1,    -1,    -1,    -1,    66,   983,  1276,  1277,  1278,    71,
     3202      -1,    73,    74,    75,    -1,    -1,    -1,  1287,  1288,    -1,
     3203      82,    83,    -1,    -1,    -1,    -1,    -1,    96,    -1,    98,
     3204      -1,  1301,    -1,    -1,    -1,    -1,    -1,  1036,  1037,    -1,
     3205    1039,  1040,   109,    -1,    -1,  1200,   108,   114,    -1,    10,
     3206      11,    12,    13,    14,  1324,    -1,   118,    -1,  1036,  1037,
     3207    1059,  1039,  1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3208      -1,    -1,    -1,    -1,    -1,    -1,   143,    38,    -1,    -1,
     3209      -1,  1059,    -1,    -1,    -1,    -1,   153,    -1,    -1,    -1,
     3210     157,    -1,    -1,    -1,    -1,  1094,  1095,    -1,    -1,    -1,
     3211      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   178,
     3212      71,    -1,    -1,    -1,    75,    -1,  1094,  1095,    -1,   188,
     3213     189,    82,    83,    -1,   193,    -1,   195,   196,    -1,    -1,
     3214      -1,    -1,    -1,  1200,  1201,    -1,    -1,    -1,    -1,   206,
     3215      -1,  1296,  1412,    -1,    -1,    -1,    -1,   108,    -1,    -1,
     3216      -1,   218,    -1,    -1,    -1,    -1,  1223,   118,    -1,  1158,
     3217      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   236,
     3218     237,    -1,    -1,    -1,    -1,  1242,    -1,    -1,    -1,    -1,
     3219    1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3220      -1,  1461,    -1,   260,    -1,    -1,    -1,    -1,  1468,    -1,
     3221      -1,   268,  1201,    10,    11,    12,    13,    14,    15,    16,
     3222      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3223    1287,  1288,    -1,  1201,  1223,   292,    -1,    -1,   295,  1296,
     3224      -1,    38,    -1,    -1,  1301,    -1,    -1,  1236,    -1,  1238,
     3225      -1,    -1,    -1,    -1,    -1,  1223,    -1,    -1,    -1,    -1,
     3226      -1,  1521,    -1,    -1,    -1,    25,    26,    27,  1236,    66,
     3227    1238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,  1268,
     3228      -1,    -1,    -1,    -1,    -1,   342,    -1,  1276,  1277,  1278,
     3229     347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,  1288,
     3230    1268,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1276,  1277,
     3231    1278,    -1,  1301,    -1,    -1,    -1,    -1,    -1,    -1,  1287,
     3232    1288,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3233      -1,    -1,    -1,  1301,    -1,  1324,    96,    63,    98,    -1,
     3234      -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    75,
     3235      -1,    77,    -1,    -1,    -1,  1412,  1324,    -1,    84,    -1,
     3236      -1,    -1,   122,    -1,    -1,    -1,   423,   424,    -1,    -1,
     3237      -1,    -1,    -1,   430,    -1,    -1,    -1,    -1,    -1,    -1,
     3238      -1,  1438,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
     3239     116,   117,   118,    -1,   451,    -1,    -1,   454,    -1,    -1,
     3240      -1,    -1,    -1,   460,  1461,    -1,    -1,    -1,    -1,    -1,
     3241      -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,   178,    -1,
     3242      -1,    -1,    -1,  1412,    -1,    -1,   186,    -1,   188,   189,
     3243     487,   157,    -1,   193,    -1,   195,   196,    -1,    -1,    -1,
     3244      -1,    -1,   499,    -1,  1412,    -1,    -1,    -1,    -1,    -1,
     3245      -1,    -1,    -1,    -1,   511,    -1,   513,    43,    -1,   516,
     3246      -1,   518,   519,    -1,  1521,    -1,    -1,    -1,    -1,    -1,
     3247      -1,    -1,  1461,    -1,   531,    -1,    -1,    -1,    -1,  1468,
     3248      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3249      -1,    -1,   218,  1461,   220,   221,   222,    -1,    -1,    -1,
     3250    1468,    -1,    -1,    89,    -1,   265,    -1,    -1,    -1,    -1,
     3251      -1,    -1,    -1,    99,    -1,    -1,    -1,    -1,    -1,    -1,
     3252      -1,   580,   581,    -1,    -1,    -1,    -1,   584,    -1,    -1,
     3253     256,    -1,  1521,    -1,   260,    -1,    -1,    -1,    -1,   596,
     3254      -1,   598,    -1,    -1,   601,    -1,    -1,    -1,    -1,    -1,
     3255     276,   610,    -1,  1521,   613,   614,    -1,   616,    -1,   618,
     3256     619,    -1,    -1,    -1,   623,   624,    -1,    -1,   154,    -1,
     3257     627,    -1,    -1,    -1,    -1,   632,    -1,    -1,    -1,    -1,
     3258      -1,    -1,   168,    -1,   641,   642,   643,    -1,    -1,    -1,
     3259      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3260     326,    -1,   659,    -1,    -1,   191,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   205,
     3262      -1,   347,    -1,    -1,    -1,    -1,   352,   353,   214,    -1,
     3263      -1,    -1,    -1,    -1,   360,    -1,    -1,   694,   224,    -1,
     3264      -1,    -1,    -1,    -1,    -1,    -1,    -1,   706,   707,    -1,
     3265      -1,    -1,    -1,   712,    -1,    -1,    -1,    -1,   715,    -1,
     3266      -1,    -1,    -1,   249,    -1,    -1,    -1,    -1,   254,    -1,
     3267      -1,    -1,    -1,    -1,    -1,    -1,   733,   403,   735,    -1,
     3268      -1,   267,    -1,    -1,    -1,    -1,    -1,   273,    -1,   275,
     3269      -1,    -1,    -1,    -1,    -1,   421,    -1,    -1,    -1,    -1,
     3270     426,    -1,   428,    -1,    -1,    -1,    -1,   293,    -1,    -1,
     3271      -1,    -1,    -1,   770,    -1,    -1,    -1,    -1,    -1,   445,
     3272      -1,    -1,   448,   449,    -1,    -1,    -1,    -1,    -1,    -1,
     3273      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   464,    -1,
     3274      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3275     336,    -1,   478,    -1,    -1,   341,    -1,    -1,    -1,   485,
     3276      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,    -1,
     3277      -1,    -1,   829,    -1,    -1,   832,    -1,    -1,    -1,    -1,
     3278      -1,    -1,    -1,   369,    -1,    -1,    -1,   373,   374,    -1,
     3279     376,    -1,    -1,    -1,    -1,    -1,    -1,   383,   384,    -1,
     3280     386,   387,    -1,   389,    -1,   391,    -1,    -1,    -1,    -1,
     3281      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3282     580,   581,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3283     416,    -1,    -1,    -1,    -1,    -1,   152,   153,    -1,    -1,
     3284      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3285     610,    -1,    -1,   613,   614,   441,   616,    -1,   618,   619,
     3286      -1,    -1,    -1,   623,   624,    -1,   452,    -1,   925,    -1,
     3287     186,    -1,    -1,    -1,    -1,   601,    -1,   193,    -1,    -1,
     3288      -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,   475,
     3289      -1,    -1,    -1,    -1,    -1,   481,    -1,    -1,    -1,    -1,
     3290     486,    -1,    -1,   629,    -1,    -1,    -1,    -1,   634,    -1,
     3291     967,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
     3292      71,    -1,    -1,    -1,    75,    -1,   983,    78,    79,    80,
     3293      81,    82,    83,    -1,    85,    86,    -1,   523,    -1,    -1,
     3294      -1,   701,    93,    -1,    -1,    -1,   706,   707,    -1,   265,
     3295      -1,    -1,   712,   539,    -1,    -1,    -1,   108,    -1,   110,
     3296      -1,  1018,   113,    -1,    -1,    -1,   117,   118,   119,   120,
     3297     121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3298      -1,    -1,  1039,  1040,    -1,    -1,    -1,    -1,    -1,    -1,
     3299     576,    -1,    -1,    -1,    -1,   721,    -1,    -1,    -1,   585,
     3300      -1,    -1,    -1,    -1,    -1,   321,   592,    -1,    -1,   735,
     3301      -1,   597,    -1,   329,   330,    -1,   332,   333,    -1,    -1,
     3302      -1,    -1,   608,    -1,    -1,    -1,   342,    -1,    -1,   755,
     3303     346,    -1,    -1,    -1,    -1,    -1,    -1,  1096,    -1,    -1,
     3304      -1,    -1,  1099,    -1,    -1,    -1,    -1,    -1,    -1,   365,
     3305      -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3306      -1,    -1,    -1,   649,    -1,    -1,    -1,    -1,    -1,    -1,
     3307      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   395,
     3308      -1,    -1,    -1,   399,    -1,    -1,    -1,    -1,    -1,    -1,
     3309     816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   684,    -1,
     3310      -1,  1158,    -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,   430,    -1,    -1,    -1,    -1,    -1,
     3312      -1,    -1,   848,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,
     3314      -1,    36,    37,  1200,    39,    -1,    -1,    -1,    -1,    -1,
     3315      -1,    -1,    -1,   739,    -1,    -1,    -1,    -1,    -1,    -1,
     3316      -1,  1220,    -1,   749,   750,    -1,    -1,    -1,   484,    -1,
     3317      65,   487,    -1,    -1,    -1,    -1,    71,   763,    -1,    -1,
     3318      75,  1238,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3319      85,    86,    -1,    -1,   780,    -1,   782,    -1,    93,    -1,
     3320     786,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   935,
     3321      -1,   527,    -1,   108,   530,   531,    -1,    -1,    -1,    -1,
     3322      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3323    1287,  1288,    -1,    -1,    -1,   961,    -1,    -1,    -1,  1296,
     3324      -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,
     3325      -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,    -1,
     3326     576,   577,    -1,   989,    -1,    -1,   852,    -1,    -1,   165,
     3327     166,    -1,    -1,   859,    -1,    -1,    -1,    -1,    -1,   595,
     3328     596,    -1,   598,    -1,    -1,    -1,   872,    -1,   874,    -1,
     3329      -1,   607,    -1,   609,   610,  1021,    -1,    -1,    -1,    -1,
     3330     616,    -1,   888,    -1,    -1,    -1,  1032,    -1,    -1,   895,
     3331     626,   627,    -1,    -1,    -1,    -1,   632,    -1,    -1,    -1,
     3332      -1,   907,    -1,    -1,   910,   641,   642,   643,    -1,    -1,
     3333      -1,    -1,    -1,    -1,    -1,    -1,  1096,    -1,    -1,    -1,
     3334     236,    -1,   928,   659,    -1,    -1,    -1,    -1,   664,   665,
     3335      -1,    -1,   668,   669,    -1,  1412,    -1,    36,    37,   675,
     3336      39,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,    -1,
     3337      -1,    -1,    -1,    -1,    -1,    -1,    -1,   693,   694,   695,
     3338      -1,   697,    -1,    -1,    -1,   701,    65,  1113,    -1,    -1,
     3339      -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
     3340      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3341      -1,    -1,    -1,  1470,    93,  1472,    -1,   733,   734,    -1,
     3342      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
     3343      -1,  1017,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3344     119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,
     3345    1507,    -1,  1509,   769,   770,    -1,    -1,    -1,   774,   775,
     3346    1220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3347      -1,    -1,    -1,    -1,  1200,    -1,    -1,    -1,    -1,    -1,
     3348    1537,   377,    -1,    -1,    -1,    -1,    -1,  1073,    -1,    -1,
     3349      -1,    -1,    -1,    -1,  1080,    -1,    -1,    -1,    -1,    -1,
     3350     816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,
     3351      -1,    -1,    -1,    -1,    -1,   831,   832,    -1,    -1,    -1,
     3352     836,    -1,   838,  1109,    -1,    -1,    -1,    -1,  1114,    -1,
     3353      -1,    -1,   848,    -1,    -1,    -1,  1122,     3,     4,     5,
     3354       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3355      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3356      26,    27,    -1,    29,    30,    31,    32,  1153,    -1,    35,
     3357    1296,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,  1165,
     3358      -1,    -1,  1168,   479,  1170,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1184,  1185,
     3360      66,    -1,    68,    -1,    70,   921,    -1,    73,    74,    -1,
     3361      -1,    77,    -1,   929,    -1,    -1,    -1,    -1,    -1,   935,
     3362    1206,    -1,   518,    -1,    -1,    -1,    -1,   943,    -1,    -1,
     3363      -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,    -1,    -1,
     3364     956,   957,   538,    -1,   110,   541,    -1,  1233,    -1,    -1,
     3365      -1,    -1,   118,    -1,    -1,    -1,   552,   553,    -1,    -1,
     3366      -1,    -1,    -1,    -1,    -1,    -1,    -1,   983,    -1,    -1,
     3367      -1,    -1,    -1,   989,    -1,    -1,    -1,    -1,   574,    -1,
     3368      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   584,    -1,
     3369      -1,    -1,  1008,  1009,    -1,   591,    -1,    -1,    -1,    -1,
     3370     596,    -1,  1018,    -1,    -1,    -1,    -1,    -1,  1024,  1025,
     3371      -1,  1027,  1028,  1029,    -1,    -1,    -1,    -1,    -1,    -1,
     3372      -1,    -1,    -1,  1039,  1040,    -1,   279,    -1,   281,   282,
     3373      -1,    36,    37,    -1,    39,    -1,   289,   290,    -1,    -1,
     3374      -1,   294,   295,    -1,  1330,    -1,  1332,    -1,    -1,    -1,
     3375     646,    -1,    -1,   306,    -1,    -1,    -1,    -1,   654,  1345,
     3376      65,  1347,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3377      75,    -1,    -1,    78,    79,    80,    81,    82,    83,  1365,
     3378      85,    86,    -1,    -1,  1100,  1101,  1102,    -1,    93,   342,
     3379      -1,    -1,    -1,    -1,    -1,  1381,  1382,  1113,   694,    -1,
     3380      -1,    -1,    -1,   108,    -1,   110,    -1,  1393,    -1,    -1,
     3381    1396,   116,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3382      -1,    -1,    -1,    -1,    -1,   378,  1552,    -1,    -1,    -1,
     3383      -1,    -1,  1418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3384      -1,  1427,  1158,    -1,  1430,    -1,  1432,  1433,  1434,    10,
     3385      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3386      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
     3387      31,    -1,    -1,    -1,   770,    -1,   772,    38,    -1,    -1,
     3388      -1,    -1,   778,    -1,    -1,    -1,    -1,    -1,  1474,   785,
     3389    1476,    -1,    -1,  1479,    -1,    -1,    -1,    -1,    -1,    -1,
     3390      -1,    -1,  1218,    -1,    -1,    66,    -1,    -1,  1494,    -1,
     3391      -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,    -1,
     3392      -1,    -1,  1238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3393      -1,    -1,    -1,   829,   830,    -1,   832,    -1,    -1,    -1,
     3394      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3395      -1,   847,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3396      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3397      -1,  1287,  1288,    10,    11,    12,    13,    14,    15,    16,
     3398      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3399      -1,   887,    29,    30,    31,   891,    -1,    -1,    -1,    -1,
     3400      -1,    38,   555,   556,   557,   558,   559,   560,   561,   562,
     3401     563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
     3402      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3403      -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
     3404      -1,    -1,    -1,    -1,     0,   598,    -1,     3,     4,     5,
     3405       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3406      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3407      26,   967,    -1,    29,    30,    31,    32,    -1,    -1,    35,
     3408      -1,   118,    38,    39,    -1,    -1,    -1,   983,   984,    -1,
     3409      -1,    -1,    -1,    -1,   990,    -1,  1412,    -1,    -1,    -1,
     3410     996,    -1,    -1,   999,    -1,  1001,    -1,    63,    -1,    -1,
     3411      66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3412      -1,    -1,    -1,    -1,    -1,  1021,    82,    83,    -1,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,  1032,    -1,    -1,    -1,
     3414      -1,    -1,    -1,   696,    -1,    36,    37,    -1,    39,    -1,
     3415      -1,    -1,   108,    -1,   110,    -1,    -1,    -1,  1054,    -1,
     3416    1056,    -1,   118,    -1,    -1,   718,    -1,    -1,    -1,    -1,
     3417      -1,    -1,    -1,    -1,    65,  1071,  1072,    -1,   731,    -1,
     3418      71,    -1,    73,    74,    75,    -1,  1502,    78,    79,    80,
     3419      81,    82,    83,    -1,    85,    86,  1092,    -1,    -1,    -1,
     3420      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3421      -1,  1527,  1528,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3422      -1,   112,   113,    -1,   777,    -1,   117,   118,   119,   120,
     3423     121,   122,    -1,    -1,    -1,    -1,  1552,    -1,    -1,    -1,
     3424      -1,    -1,    -1,  1139,    -1,    -1,    -1,    -1,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    -1,    -1,   809,    -1,    -1,    -1,
     3426      -1,    -1,  1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3427      -1,   824,    -1,    -1,    -1,    -1,    -1,  1173,  1174,    -1,
     3428      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3429       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3430      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3431      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3432      39,    40,    -1,    42,    -1,    -1,    45,    46,    47,    48,
     3433      49,    50,    51,    52,    -1,    -1,    -1,    56,    -1,    -1,
     3434      -1,    60,    61,    -1,    63,    -1,    65,    66,    -1,    68,
     3435      -1,    70,    71,    -1,    73,    74,    75,    -1,  1254,    78,
     3436      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3437      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
     3438      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
     3439      -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,   118,
     3440     119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
     3441      -1,    -1,   131,    -1,    -1,    -1,    -1,    -1,    -1,  1315,
     3442      -1,  1317,   975,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3443      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3444      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3445      -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,    -1,    -1,
     3446      -1,    -1,    -1,    -1,    -1,  1018,     3,     4,     5,     6,
     3447       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3448      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3449      -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3450      37,    38,    39,    -1,    -1,    -1,  1059,  1403,    -1,    -1,
     3451      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3452      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
     3453      -1,    68,    -1,    70,    71,    -1,    73,    74,    75,    -1,
     3454      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3455      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3456      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3457      -1,   108,    -1,   110,    -1,    -1,    -1,    -1,  1131,    -1,
     3458     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,  1485,
     3459      -1,    -1,    -1,    -1,   131,    -1,    -1,     3,     4,     5,
     3460       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3461      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3462      26,    -1,  1175,    29,    30,    31,    32,    -1,    -1,    35,
     3463      36,    37,    38,    39,    -1,    -1,  1189,  1190,    -1,    -1,
     3464      -1,  1537,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3465      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
     3466      66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3467      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3468      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
     3469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3470      -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3471      -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
     3472       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3473      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3474      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3475      37,    38,    39,    -1,    10,    11,    12,    13,    14,    15,
     3476      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3477      26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,    66,
     3478      -1,    68,    38,    70,    71,    -1,    73,    74,    75,    -1,
     3479      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3480      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3481      66,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,
     3482      -1,   108,    -1,   110,    -1,    -1,    82,    83,   115,    -1,
     3483     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3484      -1,    -1,    -1,    -1,    -1,    -1,  1399,    -1,    -1,    -1,
     3485      -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3486      -1,    -1,   118,  1416,     4,     5,     6,     7,     8,     9,
     3487      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3488      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3489      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,
     3490      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3491      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3492      26,    27,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
     3493      70,    71,    38,    73,    74,    75,  1489,  1490,    78,    79,
     3494      80,    81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,
     3495      -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,
     3496      66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
     3497     110,    77,    -1,    -1,    -1,   115,    -1,   117,   118,   119,
     3498     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     3499      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3500      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3501      31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,
     3502      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3503      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3504      27,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,
     3505      71,    38,    73,    74,    75,    -1,    -1,    78,    79,    80,
     3506      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3507      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3508      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3509      77,    -1,    -1,    -1,   115,    -1,   117,   118,   119,   120,
     3510     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3511      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3512      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3513      -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,    10,
     3514      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3515      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3516      31,    -1,    -1,    65,    66,    -1,    68,    38,    70,    71,
     3517      -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
     3518      82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
     3519      -1,    93,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3520      71,    -1,    73,    74,    -1,    -1,   108,    -1,   110,    -1,
     3521      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3522     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    25653523      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2566       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2567        0,     0,    30,     0,   595,     0,     0,     0,     0,     0,
    2568        0,     0,   630,     0,     0,     0,     0,     0,     0,     0,
    2569        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2570       33,     0,    34,     0,    35,     0,     0,   204,    38,     8,
    2571        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2572       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2573       27,     0,     0,     0,     0,   279,    30,   280,     0,     0,
    2574        0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
    2575        0,     0,   268,     0,     0,     0,     0,     0,     0,     0,
    2576        0,     0,     0,   281,    33,     0,     0,     0,     0,   282,
    2577        0,    37,    38,   283,     0,     0,   284,   285,   286,   287,
    2578       40,    41,     0,   288,   289,     0,     0,     0,     0,     0,
    2579        0,   290,     0,     0,     0,     0,     0,     0,     0,     0,
    2580        0,     0,     0,     0,     0,     0,   291,     0,   521,     0,
    2581        0,   168,     0,     0,     0,   293,   294,   295,   296,   297,
    2582      298,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2583       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2584       25,    26,    27,     0,     0,     0,     0,   279,    30,   280,
    2585        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2586       17,    18,    19,    20,    21,    22,    23,    24,  -292,     0,
    2587       25,    26,    27,     0,     0,   281,    33,     0,    30,     0,
    2588        0,   282,     0,    37,    38,   283,     0,     0,   284,   285,
    2589      286,   287,    40,    41,     0,   288,   289,     0,     0,     0,
    2590        0,     0,     0,   290,     0,     0,    33,     0,     0,     0,
    2591        0,    36,     0,   333,   334,    39,     0,  -292,   291,     0,
    2592      595,    -3,    40,    41,     0,     0,     0,   293,   596,   295,
    2593      296,   297,   298,     8,     9,    10,    11,    12,    13,    14,
    2594       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2595      335,     0,    25,    26,    27,     0,     0,     0,   109,   279,
    2596       30,   280,     0,     8,     9,    10,    11,    12,    13,    14,
    2597       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2598     -292,     0,    25,    26,    27,     0,     0,   281,    33,     0,
    2599       30,     0,     0,   645,     0,    37,    38,   283,     0,     0,
    2600      284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
    2601        0,     0,     0,     0,     0,   290,     0,     0,    33,     0,
    2602        0,     0,     0,     0,     0,    37,    38,     0,     0,  -292,
    2603      291,   -34,   760,     0,     0,     0,     0,     0,     0,   293,
    2604      294,   295,   296,   297,   298,     8,     9,    10,    11,    12,
    2605       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2606       23,    24,   335,     0,    25,    26,    27,     0,     0,     0,
    2607      109,   279,    30,   280,     0,     8,     9,    10,    11,    12,
    2608       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2609       23,    24,     0,     0,    25,    26,    27,     0,     0,   281,
    2610       33,     0,    30,     0,     0,   282,     0,    37,    38,   283,
    2611        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2612      289,     0,     0,     0,     0,     0,     0,   290,     0,     0,
    2613       33,     0,     0,     0,     0,   108,     0,    37,    38,     0,
    2614        0,     0,   291,     0,   292,     0,     0,     0,     0,     0,
    2615        0,   293,   294,   295,   296,   297,   298,     8,     9,    10,
    2616       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2617       21,    22,    23,    24,    43,     0,    25,    26,    27,     0,
    2618        0,     0,   109,   279,    30,   280,     0,     8,     9,    10,
    2619       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2620       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2621        0,   281,    33,     0,    30,   450,     0,   282,     0,    37,
    2622       38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
    2623        0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
    2624        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2625       38,     0,     0,     0,   291,     0,   154,     0,     0,     0,
    2626        0,     0,     0,   293,   294,   295,   296,   297,   298,     8,
    2627        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2628       19,    20,    21,    22,    23,    24,   451,     0,    25,    26,
    2629       27,     0,     0,     0,   109,   279,    30,   280,     0,     8,
    2630        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2631       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2632       27,     0,     0,   281,    33,     0,    30,     0,     0,   282,
    2633        0,    37,    38,   283,     0,     0,   284,   285,   286,   287,
    2634       40,    41,     0,   288,   289,     0,     0,     0,     0,     0,
    2635        0,   290,     0,     0,    33,     0,     0,     0,     0,     0,
    2636        0,    37,    38,     0,     0,     0,   291,     0,   595,     0,
    2637        0,     0,     0,     0,     0,   293,   596,   295,   296,   297,
    2638      298,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2639       17,    18,    19,    20,    21,    22,    23,    24,   254,     0,
    2640       25,    26,    27,     0,     0,     0,   109,   279,    30,   280,
    2641        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2642       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2643       26,    27,     0,     0,     0,   281,    33,    30,     0,     0,
    2644        0,   282,     0,    37,    38,   283,     0,     0,   284,   285,
    2645      286,   287,    40,    41,     0,   288,   289,     0,     0,     0,
    2646        0,     0,     0,   290,     0,    33,     0,     0,     0,     0,
    2647       36,     0,   204,    38,    39,     0,     0,     0,   291,     0,
    2648      375,    40,    41,     0,     0,     0,     0,   293,   377,   295,
    2649      296,   297,   298,     0,     0,     0,     0,     0,     0,     0,
    2650        0,     0,     0,     0,     0,     0,     0,    42,     0,   267,
    2651        0,     0,     0,     0,     0,     0,     0,   206,     8,     9,
    2652       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2653       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2654        0,     0,     0,     0,     0,    30,     0,     8,     9,    10,
    2655       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2656       21,    22,    23,    24,  -292,     0,    25,    26,    27,     0,
    2657        0,     0,     0,    33,    30,     0,     0,     0,    36,     0,
    2658      333,   334,    39,     0,     0,     0,     0,     0,     0,    40,
    2659       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2660        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2661       38,     0,     0,  -292,     0,   639,     0,   335,     0,     0,
    2662        0,     0,     0,     0,     0,   630,     0,     0,     0,     0,
    2663        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,   639,     0,   335,     0,     0,     0,
    2665        0,     0,     0,     0,   109,     8,     9,    10,    11,    12,
    2666       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2667       23,    24,  -292,     0,    25,    26,    27,     0,     0,     0,
    2668        0,     0,    30,     0,     8,     9,    10,    11,    12,    13,
    2669       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2670       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2671       33,    30,   450,     0,     0,     0,     0,    37,    38,     0,
    2672        0,  -292,     8,     9,    10,    11,    12,    13,    14,    15,
    2673       16,    17,    18,    19,    20,    21,    22,    23,    24,    33,
    2674        0,    25,    26,    27,     0,     0,    37,    38,     0,    30,
    2675      450,     0,   639,     0,   335,     0,     0,     0,     0,     0,
    2676        0,     0,   630,     0,     0,     0,     0,     0,     0,     0,
    2677        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2678        0,     0,     0,   451,    37,    38,     0,   941,     0,     0,
    2679        0,   109,     8,     9,    10,    11,    12,    13,    14,    15,
    2680       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2681        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2682        0,   451,     0,     0,     0,  1227,     0,     0,     0,   109,
    2683        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2684       18,    19,    20,    21,    22,    23,    24,    33,     0,    25,
    2685       26,    27,     0,     0,    37,    38,     0,    30,     0,     8,
    2686        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2687       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2688       27,     0,     0,     0,     0,    33,    30,     0,     0,   639,
    2689        0,   335,    37,    38,     0,     0,     0,     0,     0,   109,
    2690        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2691        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2692        0,    37,    38,     0,     0,     0,     0,   639,     0,   335,
    2693        0,     0,     0,     0,     0,     0,     0,   630,     0,     0,
    2694        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2695       18,    19,    20,    21,    22,    23,    24,     0,   154,    25,
    2696       26,    27,     0,     0,     0,     0,   109,    30,     0,     8,
    2697        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2698       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2699       27,     0,     0,     0,     0,    33,    30,     0,     0,     0,
    2700        0,     0,   204,    38,     0,     0,     0,     8,     9,    10,
    2701       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2702       21,    22,    23,    24,    33,     0,    25,    26,    27,     0,
    2703        0,    37,    38,     0,    30,     0,     0,     0,     0,   267,
    2704        0,     0,     0,     0,     0,     0,     0,   268,     0,     0,
    2705        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2706        0,     0,    33,     0,     0,     0,     0,     0,   254,    37,
    2707       38,     0,     0,     0,     0,     0,   630,     8,     9,    10,
    2708       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2709       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2710        0,     0,     0,     0,    30,     0,   335,     0,     0,     0,
    2711        0,     0,     0,     0,   630,     8,     9,    10,    11,    12,
    2712       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2713       23,    24,    33,     0,    25,    26,    27,     0,     0,    37,
    2714       38,     0,    30,     0,     8,     9,    10,    11,    12,    13,
    2715       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2716       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2717       33,    30,     0,     0,     0,     0,   451,   204,    38,     0,
    2718        0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    2719        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2720        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2721        0,     0,     0,     0,   267,     0,     0,     0,     0,     0,
    2722        0,     0,   625,     0,     0,     8,     9,    10,    11,    12,
    2723       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2724       23,    24,     0,   595,    25,    26,    27,     0,     0,     0,
    2725        0,   630,    30,     0,     8,     9,    10,    11,    12,    13,
    2726       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2727       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2728       33,    30,     0,     0,     0,     0,     0,    37,    38,     0,
    2729        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2730        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2731        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2732        0,     0,     0,     0,   335,     0,     0,     0,     0,     0,
    2733        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
    2734        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2735        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2736        0,   109,     2,   203,     4,     5,     6,     7,     8,     9,
    2737       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2738       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2739        0,     0,     0,     0,     0,    30,     0,     0,   279,     0,
    2740      280,  1056,     0,  1057,     0,     0,  1058,  1059,  1060,  1061,
    2741     1062,  1063,  1064,  1065,     0,     0,  1540,  1066,     0,     0,
    2742        0,  1067,  1068,    33,    32,    34,   281,    35,     0,     0,
    2743       37,    38,   645,     0,     0,     0,   283,     0,     0,   284,
    2744      285,   286,   287,    40,    41,     0,   288,   289,     0,     0,
    2745        0,     0,     0,     0,   290,     0,     0,     0,     0,     0,
    2746        0,     0,     0,     0,     0,     0,  -410,     0,     0,   291,
    2747        0,   375,     0,     0,   168,     0,     0,     0,   293,   377,
    2748      295,   296,   297,   298,     0,     0,     0,     0,  1070,     0,
    2749        0,   279,  -127,   280,  1056,     0,  1057,     0,     0,  1058,
    2750     1059,  1060,  1061,  1062,  1063,  1064,  1065,     0,     0,     0,
    2751     1066,     0,     0,     0,  1067,  1068,     0,    32,     0,   281,
    2752        0,     0,     0,     0,     0,   645,     0,     0,     0,   283,
    2753        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2754      289,     0,     0,     0,     0,     0,     0,   290,     0,     0,
    2755        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2756        0,     0,   291,     0,   375,     0,     0,   168,     0,     0,
    2757        0,   293,   377,   295,   296,   297,   298,     0,     0,     0,
    2758        0,  1070,     0,     0,   279,  -127,   280,  1056,     0,  1057,
    2759     1410,  1411,  1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,
    2760        0,     0,  1540,  1066,     0,     0,     0,  1067,  1068,     0,
    2761       32,     0,   281,     0,     0,     0,     0,     0,   645,     0,
    2762        0,     0,   283,     0,     0,   284,   285,   286,   287,    40,
    2763       41,     0,   288,   289,     0,     0,     0,     0,     0,     0,
    2764      290,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2765        0,     0,     0,     0,     0,   291,     0,   375,     0,     0,
    2766      168,     0,     0,     0,   293,   377,   295,   296,   297,   298,
    2767      279,     0,   280,  1056,  1070,  1057,  1410,  1411,  1058,  1059,
    2768     1060,  1061,  1062,  1063,  1064,  1065,     0,     0,     0,  1066,
    2769        0,     0,     0,  1067,  1068,     0,    32,     0,   281,     0,
    2770        0,     0,     0,     0,   645,     0,     0,     0,   283,     0,
    2771        0,   284,   285,   286,   287,    40,    41,     0,   288,   289,
    2772        0,     0,     0,     0,     0,     0,   290,     0,     0,     0,
    2773        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2774        0,   291,     0,   375,     0,     0,   168,     0,     0,     0,
    2775      293,   377,   295,   296,   297,   298,   279,     0,   280,  1056,
    2776     1070,  1057,     0,     0,  1058,  1059,  1060,  1061,  1062,  1063,
    2777     1064,  1065,     0,     0,     0,  1066,     0,     0,     0,  1067,
    2778     1068,     0,    32,     0,   281,     0,     0,     0,     0,     0,
    2779      645,     0,     0,     0,   283,     0,     0,   284,   285,   286,
    2780      287,    40,    41,     0,   288,   289,     0,     0,     0,     0,
    2781        0,     0,   290,     0,     0,     0,     0,     0,     0,     0,
    2782        0,     0,     0,     0,     0,     0,     0,   291,     0,   375,
    2783        0,     0,   168,     0,     0,     0,   293,   377,   295,   296,
    2784      297,   298,     0,     0,     0,     0,  1070,     2,   203,     4,
    2785        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2786       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2787        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2788       30,     0,     0,   279,     0,   280,     0,     0,     0,     0,
    2789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790        0,     0,   279,     0,   280,     0,     0,     0,    33,     0,
    2791       34,   281,    35,     0,     0,    37,    38,   282,     0,     0,
    2792        0,   283,     0,     0,   284,   285,   286,   287,    40,    41,
    2793      281,   288,   289,     0,     0,     0,   282,  1319,     0,   290,
    2794      283,     0,     0,   284,   285,   286,   287,    40,    41,     0,
    2795      288,   289,     0,     0,   291,     0,   375,     0,   290,     0,
    2796      279,   775,   280,   293,   377,   295,   296,   297,   298,     0,
    2797        0,     0,     0,   291,     0,   375,     0,     0,   986,   279,
    2798        0,   280,   293,   377,   295,   296,   297,   298,   281,     0,
    2799        0,     0,     0,     0,   282,     0,     0,     0,   283,     0,
    2800        0,   284,   285,   286,   287,    40,    41,   281,   288,   289,
    2801        0,     0,     0,   282,     0,     0,   290,   283,     0,     0,
    2802      284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
    2803        0,   291,     0,   375,     0,   290,     0,   279,     0,   280,
    2804      293,   377,   295,   296,   297,   298,     0,     0,     0,     0,
    2805      291,     0,   375,     0,     0,     0,   279,     0,   280,   293,
    2806      729,   295,   296,   297,   298,   281,     0,     0,     0,     0,
    2807        0,   645,     0,     0,     0,   283,     0,     0,   284,   285,
    2808      286,   287,    40,    41,   281,   288,   289,     0,     0,     0,
    2809      282,     0,     0,   290,   283,     0,     0,   284,   285,   286,
    2810      287,    40,    41,     0,   288,   289,     0,     0,   291,     0,
    2811      779,     0,   290,     0,   279,     0,   280,   293,   377,   295,
    2812      296,   297,   298,     0,     0,     0,     0,   291,     0,   375,
    2813        0,     0,     0,   279,     0,   280,   293,   821,   295,   296,
    2814      297,   298,   281,     0,     0,     0,     0,     0,   282,     0,
    2815        0,     0,   283,     0,     0,   284,   285,   286,   287,    40,
    2816       41,   281,   288,   289,     0,     0,     0,   282,     0,     0,
    2817      290,   283,     0,     0,   284,   285,   286,   287,    40,    41,
    2818        0,   288,   289,     0,     0,   291,     0,     0,     0,   290,
    2819        0,   279,     0,   280,   293,   377,   295,   296,   297,   298,
    2820        0,     0,     0,     0,   514,     0,     0,     0,     0,     0,
    2821        0,     0,     0,   293,   377,   295,   296,   297,   298,   281,
    2822        0,     0,     0,     0,     0,   282,     0,     0,     0,   283,
    2823        0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
    2824      289,     0,     0,     0,     0,     0,     0,   290,     0,     0,
    2825        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2826        0,     0,   517,     0,     0,     0,     0,     0,     0,     0,
    2827        0,   293,   377,   295,   296,   297,   298,     2,   203,     4,
    2828        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2829       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2830        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2831       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2832        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2833        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2834       34,     0,    35,    36,     0,   171,   172,    39,     0,     0,
    2835        0,     0,     0,     0,    40,    41,   202,     2,   203,     4,
    2836        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2837       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2838        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2839       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2840        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2841        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2842       34,     0,    35,     0,     0,   204,    38,   471,     2,   203,
     3524      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3525      -1,    -1,    -1,    36,    37,    38,    39,    -1,    10,    11,
     3526      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3527      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3528      -1,    -1,    65,    66,    -1,    68,    38,    70,    71,    -1,
     3529      73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
     3530      83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
     3531      93,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3532      -1,    73,    74,    -1,    -1,   108,    -1,   110,    -1,    -1,
     3533      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    28433534       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    28443535      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2845       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2846        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2847        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2848        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2849        0,    34,     0,    35,     0,     0,    37,    38,     2,   203,
    2850        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2851       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2852       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2853        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2854        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2855        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2856        0,    34,     0,    35,     0,     0,   204,    38
    2857 };
    2858 
    2859 #define yypact_value_is_default(yystate) \
    2860   ((yystate) == (-1362))
    2861 
    2862 #define yytable_value_is_error(yytable_value) \
    2863   YYID (0)
    2864 
    2865 static const yytype_int16 yycheck[] =
    2866 {
    2867        1,   236,     0,     0,    42,   113,   693,   516,   183,   165,
    2868      166,    42,    42,     1,   182,   182,   201,   539,   693,   182,
    2869      182,   216,   276,   182,   651,   453,     0,     1,   625,   459,
    2870      182,   182,   605,    31,    31,  1055,   183,   896,   496,     0,
    2871      693,   452,   500,   992,    42,   341,    44,    44,   607,  1410,
    2872     1329,   605,   345,   896,   414,     0,    54,    31,   345,   607,
    2873      360,  1036,    60,    60,   364,    63,    63,    42,    66,    66,
    2874       31,     0,     1,   999,   434,   103,    54,    31,    66,   575,
    2875      605,    70,   442,   774,   771,   605,    31,     1,   263,    63,
    2876      198,   718,    66,  1414,   262,   262,   771,   754,    61,   262,
    2877      262,   184,    31,   262,  1035,  1036,   104,   605,    80,   107,
    2878      262,   262,    42,    93,   525,   113,   263,   605,   771,    37,
    2879      605,    42,  1048,  1484,   152,    49,   104,    37,    27,   107,
    2880       44,    37,    70,    80,    70,   253,   108,    66,     0,    42,
    2881       43,   130,   694,     0,   182,    80,   144,   144,   128,    42,
    2882       43,   182,   182,  1432,   152,   608,   640,   641,    37,   157,
    2883      157,   614,   109,    70,   716,   107,   739,   130,    44,    31,
    2884      639,   640,   641,   657,    31,   258,   259,    76,  1067,  1068,
    2885       42,   117,    44,   107,   182,   183,   183,   486,   657,   103,
    2886      486,  1512,   130,    42,    43,   109,  1517,   107,    60,   109,
    2887      198,    63,   109,   109,    66,   492,    63,   182,   206,   206,
    2888      113,   406,  1055,    83,   739,   105,  1537,   215,    29,   112,
    2889      218,   218,    80,  1544,   262,   107,    80,   402,   107,   143,
    2890      109,   262,   262,   109,    70,    62,   108,   215,   152,   129,
    2891      114,   111,   468,   115,   218,  1134,  1466,   731,   249,   225,
    2892      248,   248,   182,   107,   739,   402,   130,   115,  1233,     0,
    2893      833,   182,   731,   112,   262,   263,   263,   143,   244,    80,
    2894       81,   269,    11,   109,   248,  1295,    70,   452,   276,   833,
    2895      107,  1501,   144,  1503,   392,   713,   845,   248,   202,   290,
    2896       31,   269,   206,   593,   248,   157,   414,   845,   276,  1248,
    2897      596,   107,    37,   248,   494,   452,    94,  1282,   833,   484,
    2898      338,  1002,   420,   833,   607,   109,   434,   813,   426,   248,
    2899      182,   183,   236,   237,   442,    37,   686,   325,   325,   625,
    2900      206,    37,    70,   121,   630,   833,   636,   484,   822,   367,
    2901      639,   640,   641,    80,   206,   833,   344,   345,   833,   114,
    2902     1281,  1282,    94,   822,   268,   110,   218,   271,   657,  1218,
    2903      236,   218,   107,   361,   110,   130,   344,   365,   114,    67,
    2904      107,   109,   107,    71,   109,  1218,    74,   291,    76,   121,
    2905      294,   108,   835,   361,   129,    83,   248,   365,   115,    88,
    2906       89,   248,   268,   692,   392,   107,   692,   109,   112,   953,
    2907      262,   107,   129,   109,   402,   402,   954,  1064,    80,   422,
    2908      423,     4,     5,     6,     7,     8,     9,  1014,   294,   609,
    2909      972,   114,   420,   613,   338,   124,   125,   341,   426,   240,
    2910      428,  1406,   731,   953,  1517,  1455,   108,  1517,    70,    32,
    2911       72,    73,  1462,   115,   634,   108,   360,   110,   638,   675,
    2912      364,   114,  1295,   367,   452,   953,    70,  1537,    72,    73,
    2913        3,  1544,   108,   325,  1544,   341,   129,   130,   767,   115,
    2914      471,   767,  1398,  1399,    67,  1406,    69,     3,   476,    70,
    2915      112,    72,    73,   345,   114,   498,   484,   484,   997,   346,
    2916      488,   488,   922,   107,   492,  1515,   652,   107,   112,   753,
    2917      528,   113,   114,   516,   962,     0,  1133,   248,   422,   423,
    2918      108,   209,   253,     0,   488,   516,   114,   129,   109,     0,
    2919      695,   932,   129,   822,   824,   693,   693,   488,   828,   940,
    2920      693,   693,   533,   114,   693,   536,   450,   538,   539,   453,
    2921      402,   693,   693,   488,    31,   459,   422,   423,   695,   130,
    2922      896,   659,   845,   107,   108,   109,   114,   471,   845,   488,
    2923      291,  1109,   107,   114,    70,   376,    72,    73,   686,   582,
    2924     1023,  1024,   130,   114,   985,  1127,    70,   107,   661,   130,
    2925       74,   114,   496,   809,   498,   586,   500,    81,    82,   130,
    2926      452,   108,   108,   819,   107,   593,   510,   130,   114,   107,
    2927      514,   107,   516,   517,    63,    70,   112,   605,   834,   607,
    2928      728,   114,  1455,   107,   528,   109,    81,    82,   918,  1462,
    2929      477,    80,   498,   117,   107,   114,   488,   130,   626,   114,
    2930      492,   488,  1184,  1185,   127,   110,   129,   114,  1295,   114,
    2931      516,   130,   107,    78,   642,   130,   457,   108,   626,   594,
    2932      348,   462,   350,   130,   114,   114,  1487,   658,   656,   660,
    2933      107,   659,  1493,   691,   642,     0,     1,  1095,   582,   114,
    2934      130,   958,  1515,   414,   109,   108,   111,   867,   656,   593,
    2935      115,   114,   596,  1514,   495,   130,   497,   882,  1519,   114,
    2936       78,   422,   423,   434,   108,   693,    31,   695,   157,   110,
    2937      107,   442,   109,   114,   108,   130,   582,   108,   903,    44,
    2938      117,   625,  1058,   278,   108,  1372,   630,   107,  1014,   109,
    2939      596,   109,   636,   111,   107,   726,   109,   115,   107,   964,
    2940      109,    66,   888,   108,   117,   107,  1035,   109,   766,   114,
    2941      438,   739,   740,   605,   108,   607,   107,   488,   109,   625,
    2942      114,   110,   108,   107,   630,   753,   117,   932,   114,   218,
    2943       70,   248,    72,    73,    74,   940,   253,   108,   103,   959,
    2944      627,    81,    82,   114,   510,   753,   108,   691,   514,   510,
    2945      107,   517,   114,   514,   108,   932,   517,   110,   108,  1311,
    2946      114,   114,   108,   940,   114,   113,  1096,   256,   114,   713,
    2947      107,   260,  1459,   107,  1461,   117,  1032,  1033,   108,   144,
    2948      122,   123,   110,   108,   114,   130,   114,   152,   153,   114,
    2949        4,     5,     6,     7,     8,     9,   107,   108,   109,   743,
    2950       62,   693,    70,   695,  1521,   833,    74,   648,   110,   108,
    2951      571,  1393,  1027,    81,    82,   114,  1521,   845,   183,   108,
    2952      108,   107,   766,   109,  1153,   114,   114,  1153,  1410,  1516,
    2953      107,   108,   719,   198,  1090,  1091,   201,   202,  1521,   107,
    2954     1125,   206,  1218,    44,  1129,   130,   733,   739,   740,   117,
    2955       83,    84,    85,    67,   829,    69,   107,   346,    70,   112,
    2956       72,    73,   227,   108,  1050,   896,   231,   708,   233,   114,
    2957      107,   108,   109,   714,   107,   130,   109,   242,   111,   112,
    2958      824,   108,    70,   248,   828,   108,    74,   114,   253,   130,
    2959      918,   114,   896,    81,    82,   119,   120,   414,   263,    86,
    2960       87,  1483,  1484,   107,   932,   109,   271,  1233,   109,   107,
    2961      108,   109,   940,   508,    70,   686,   130,   434,   107,   107,
    2962      109,   896,    90,    91,    44,   442,    56,    57,    58,   117,
    2963      958,    10,    11,    12,    13,    14,  1312,   896,   427,   826,
    2964       60,   833,   107,    63,   109,   963,    66,    70,   112,    72,
    2965       73,    74,  1281,   845,  1254,  1255,  1256,   728,    37,   963,
    2966      107,   112,   109,   994,   107,   107,   997,   109,   999,   486,
    2967       80,   488,   107,   338,   918,  1231,   341,   110,   922,  1117,
    2968       80,   698,   347,   700,   113,   114,    65,   118,   477,   126,
    2969     1366,   108,   109,  1369,    92,   360,   114,   115,   109,   364,
    2970       56,    57,   367,   127,   963,   206,  1262,   113,   114,   896,
    2971      560,   561,   562,   563,  1270,  1271,  1272,  1048,   962,   963,
    2972      964,   114,   115,   107,   144,   114,   115,  1058,    42,    43,
    2973     1061,  1062,  1063,   129,   556,   557,   237,   157,  1414,   107,
    2974      932,   110,   108,  1419,   558,   559,   110,   888,   940,   414,
    2975      108,  1055,   564,   565,   895,  1496,   108,   108,   964,    83,
    2976       84,    85,  1318,   183,   429,   108,   958,   268,   108,   434,
    2977     1014,   107,   110,  1449,   109,   114,   671,   442,   110,   129,
    2978     1055,   112,   107,   107,   110,   109,   206,   111,   112,  1117,
    2979      291,   108,   108,   294,   115,   110,  1055,   110,   218,   110,
    2980      110,    28,   114,   468,   108,  1546,   471,   115,  1014,   108,
    2981      599,   112,   110,    50,   694,    52,   113,   113,    55,    56,
    2982       57,   486,    59,   488,   115,   896,   108,   113,   107,   114,
    2983     1017,   496,   108,   108,   108,   500,   716,    74,   627,   108,
    2984      130,   108,   115,   632,   108,   986,   114,   108,   108,    86,
    2985       87,  1095,  1096,   108,   108,  1213,   108,   108,   108,  1535,
    2986      108,   108,   757,   528,   529,  1541,   108,   108,  1055,   686,
    2987       70,    28,    72,    73,    74,   692,  1552,   108,  1196,   108,
    2988     1556,    81,    82,   113,   129,  1213,     3,  1218,   110,   108,
    2989      108,  1195,  1196,    10,    11,    12,    13,    14,   108,   113,
    2990       10,    11,    12,    13,    14,   325,   108,   107,   114,   109,
    2991      575,   728,   110,   110,  1218,   115,   108,   117,   108,  1237,
    2992       37,   114,   108,  1254,  1255,  1256,   806,    37,   593,   594,
    2993      719,   596,   115,  1237,   114,   112,   114,  1196,   110,   108,
    2994      114,   114,   607,  1218,   733,  1086,   108,   108,    65,   450,
    2995      767,  1389,   453,   107,   110,    65,   107,   107,   459,  1218,
    2996      625,   107,   107,   110,   130,   630,  1531,   115,   108,  1213,
    2997      113,   636,   108,   108,   639,   640,   641,   110,  1237,   113,
    2998     1311,  1312,   402,   127,  1055,   112,  1290,   110,   130,   114,
    2999      114,  1295,   657,  1237,   110,   108,   108,   107,    45,   109,
    3000      108,   110,   108,   110,   884,   110,   110,   117,  1195,   510,
    3001      675,  1329,   110,   514,   110,   130,   517,  1522,     0,   130,
    3002     1295,   686,   113,  1521,  1521,  1329,   691,   692,  1521,  1521,
    3003      695,  1218,  1521,   130,   108,  1366,  1295,   826,  1369,  1521,
    3004     1521,  1546,   130,   130,    63,  1522,   113,   115,   108,    31,
    3005     1191,   110,   113,   110,   110,   110,   110,   110,  1496,   110,
    3006     1388,  1389,   110,   728,   108,   108,   731,  1398,  1399,  1546,
    3007     1329,   110,   110,   107,   107,   740,   107,    58,   743,   896,
    3008     1388,   108,   108,  1414,    66,  1329,   115,    70,  1419,    72,
    3009       73,    74,   972,   130,   112,   114,   110,   110,    81,    82,
    3010      108,   766,   767,  1290,   341,   342,  1437,   772,  1295,   110,
    3011      108,   107,   107,    52,  1432,    94,   353,   354,  1449,    94,
    3012      130,   113,  1002,   110,   107,   114,   109,    40,  1432,   115,
    3013      108,   108,   108,   130,   117,   108,  1197,  1198,   157,  1200,
    3014      130,   108,   108,    94,   809,  1206,    94,  1218,  1209,   108,
    3015      130,  1455,   108,  1521,   819,   115,    95,   822,  1462,   824,
    3016     1521,  1521,   827,   828,   829,   130,  1497,   130,  1496,   834,
    3017      108,   153,  1052,  1432,   108,  1506,   113,   110,   110,   844,
    3018     1455,  1512,   107,   130,   130,   113,  1517,  1462,  1432,   113,
    3019      108,   108,   108,  1521,  1522,  1522,  1455,   108,  1070,   218,
    3020      130,   566,   569,  1462,  1535,    70,  1537,    72,    73,    74,
    3021     1541,  1515,   713,  1544,   567,   570,    81,    82,  1546,  1546,
    3022     1464,  1552,  1466,   568,  1295,  1556,    54,  1218,  1017,  1484,
    3023     1125,   896,  1374,  1556,  1129,  1130,   468,   256,  1055,  1130,
    3024     1515,   260,   107,  1305,   109,   227,  1334,  1127,   280,  1462,
    3025      940,   190,   117,   918,  1086,   450,  1515,  1501,   462,  1503,
    3026      700,   293,   294,   450,   942,   986,   248,   586,  1455,   888,
    3027      653,   253,   743,   305,   213,  1462,   104,   960,  1237,   107,
    3028      488,   753,   574,    -1,   223,   574,   574,  1531,    -1,   954,
    3029        4,     5,     6,     7,     8,     9,    -1,   962,   963,    -1,
    3030       -1,    -1,    -1,    -1,  1184,  1185,    -1,  1368,    -1,   341,
    3031       -1,    -1,    -1,    -1,   979,    -1,    -1,    -1,    -1,    -1,
    3032       -1,   675,    -1,    -1,   152,  1531,    -1,   346,  1515,  1521,
    3033       10,    11,    12,    13,    14,    -1,  1153,    -1,    -1,    10,
    3034       11,    12,    13,    14,    -1,   377,    -1,    -1,  1243,  1014,
    3035       -1,    -1,   291,    67,    -1,    69,    -1,    37,    -1,    -1,
    3036       -1,    -1,  1027,    -1,    -1,   347,    37,  1032,  1033,    -1,
    3037     1035,  1036,    -1,    -1,     0,    10,    11,    12,    13,    14,
    3038       -1,    -1,    -1,    -1,  1455,    65,    -1,   215,    -1,    -1,
    3039     1055,  1462,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,
    3040       -1,  1218,    37,    74,    -1,    31,  1195,    -1,   427,    -1,
    3041       81,    82,    -1,    -1,    -1,    -1,  1233,    -1,    -1,    -1,
    3042       -1,   922,    -1,    -1,    -1,  1090,  1091,   107,    -1,   109,
    3043       65,  1096,   414,    -1,    -1,  1330,   107,   117,    -1,  1334,
    3044       66,   269,    -1,   675,  1515,    -1,   117,   429,   276,    -1,
    3045       -1,    -1,   434,    -1,    -1,   809,    -1,    -1,   477,    -1,
    3046      442,    -1,    -1,    -1,    -1,   819,    -1,    -1,    -1,    -1,
    3047       -1,    -1,   107,    -1,   109,    -1,    -1,    -1,  1295,    -1,
    3048      834,    -1,   117,   720,    -1,   722,   468,    70,  1153,    72,
    3049       73,    74,   729,   730,    -1,     0,     1,   734,    81,    82,
    3050      439,  1290,    -1,    -1,   486,    -1,   488,    -1,    70,   746,
    3051       72,    73,    74,  1393,   751,    -1,   344,    -1,    -1,    81,
    3052       82,   553,   554,   555,   107,    -1,    31,   153,    -1,    -1,
    3053     1410,  1196,    63,   361,   473,    -1,    -1,   365,    -1,   776,
    3054       -1,  1436,    73,    -1,    -1,   107,    -1,   529,  1213,    -1,
    3055       -1,    -1,    -1,  1218,    -1,   117,    -1,    -1,    63,    -1,
    3056       -1,    66,    -1,    -1,   596,    -1,  1231,    -1,  1233,    -1,
    3057       -1,   510,  1237,    -1,    -1,   514,    -1,   809,   517,    -1,
    3058      599,    -1,    -1,   114,   821,    -1,    -1,   819,    -1,    -1,
    3059       -1,    -1,    -1,    -1,  1095,    -1,    -1,  1262,    -1,    -1,
    3060      428,    -1,   834,  1483,  1484,  1270,  1271,  1272,   627,    -1,
    3061       -1,    -1,   594,   632,    -1,    -1,  1281,  1282,    -1,    -1,
    3062       -1,    -1,   248,    -1,    -1,    -1,   157,   253,    -1,    -1,
    3063     1295,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1455,    -1,
    3064       -1,   878,   879,   880,   881,  1462,   883,    -1,   153,    -1,
    3065       -1,    -1,    -1,  1318,    -1,    -1,    -1,   639,   640,   641,
    3066       -1,    -1,   899,    -1,  1329,    -1,    -1,    10,    11,    12,
    3067       13,    14,    -1,    -1,    -1,   657,   913,    -1,  1032,  1033,
    3068       70,    -1,    72,    73,    74,    -1,    -1,   218,    -1,    -1,
    3069       -1,    81,    82,   675,    37,    -1,    -1,   729,  1515,    -1,
    3070      719,    -1,    -1,    -1,   686,    -1,    -1,    -1,    -1,    -1,
    3071      692,    -1,    -1,   218,   733,   952,    -1,   107,    -1,    -1,
    3072       -1,   347,    65,    -1,    -1,   256,    -1,    70,    -1,   260,
    3073       -1,    74,    -1,    -1,    -1,   674,  1090,  1091,    81,    82,
    3074       -1,  1406,   774,   248,   683,   276,   728,    -1,   687,   731,
    3075       -1,    -1,    -1,    -1,   991,    -1,     0,    -1,    -1,    -1,
    3076       -1,   998,    -1,    -1,   107,   593,  1003,  1432,    -1,    -1,
    3077       -1,  1008,    -1,  1010,   117,    -1,    -1,  1014,  1015,  1016,
    3078       -1,    -1,  1019,    -1,    -1,   767,    -1,    31,   414,   821,
    3079     1455,  1028,    -1,    -1,    -1,    -1,    -1,  1462,   626,    -1,
    3080     1032,  1033,    -1,   429,    -1,    -1,    -1,   826,   434,  1046,
    3081     1047,    -1,    -1,    -1,   642,   346,   442,    -1,    -1,    -1,
    3082       -1,    -1,    66,    -1,    -1,    -1,    -1,   809,   656,    -1,
    3083       -1,    -1,    -1,    -1,    -1,    -1,  1073,   819,    -1,  1076,
    3084      822,    -1,   468,    -1,    -1,   827,    -1,   829,    -1,    -1,
    3085     1515,    -1,   834,    -1,    -1,    -1,    -1,  1522,  1090,  1091,
    3086      486,     3,   488,    70,    -1,    72,    73,    74,    10,    11,
    3087       12,    13,    14,    -1,    81,    82,    -1,  1114,    -1,    -1,
    3088       -1,    -1,    -1,  1120,  1121,    -1,    -1,    -1,    -1,    -1,
    3089       -1,    -1,    -1,    -1,  1131,    37,   427,    -1,    -1,  1136,
    3090      107,    -1,  1139,   529,  1141,    -1,    -1,  1144,  1262,   153,
    3091      117,    -1,     0,   444,   896,    -1,  1270,  1271,  1272,    -1,
    3092     1157,    -1,    -1,    65,   429,   753,    -1,    -1,    -1,    -1,
    3093       -1,    -1,    -1,  1170,    -1,  1172,  1173,  1174,  1175,    -1,
    3094       -1,    -1,    -1,    31,    -1,    -1,   477,    -1,    -1,    -1,
    3095       -1,  1188,    -1,  1190,    -1,    -1,    -1,  1194,    -1,    -1,
    3096       -1,    -1,    -1,  1464,  1318,  1466,    -1,    -1,   594,    -1,
    3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3098       -1,   920,  1014,   488,    -1,     3,  1223,  1224,    -1,    -1,
    3099       -1,    -1,    10,    11,    12,    13,    14,   979,  1017,  1231,
    3100     1501,    -1,  1503,    -1,   248,   186,    -1,    -1,    -1,   253,
    3101       -1,    -1,   193,   639,   640,   641,    -1,    -1,    -1,    37,
    3102       -1,    -1,    -1,  1055,   529,    -1,    -1,    -1,    -1,    -1,
    3103     1262,   657,    -1,    -1,    -1,    -1,  1273,  1274,  1270,  1271,
    3104     1272,    -1,    -1,    -1,    -1,    -1,  1283,    65,    -1,   675,
    3105     1032,  1033,    -1,  1035,  1036,    -1,    -1,    -1,    -1,    -1,
    3106      686,    -1,    -1,    -1,    -1,   153,   692,    -1,   599,    -1,
    3107       -1,    -1,    -1,  1055,    -1,    -1,    -1,    -1,    -1,    -1,
    3108       -1,    -1,    -1,    -1,   265,    -1,  1318,    -1,    -1,   594,
    3109      918,    -1,    -1,    -1,    -1,    -1,   627,    -1,  1335,    -1,
    3110       -1,   632,   728,   347,    -1,   731,    -1,    -1,  1090,  1091,
    3111     1347,    -1,  1349,  1350,  1351,    -1,    -1,    70,    -1,    72,
    3112       73,    74,    -1,    -1,  1361,    -1,    -1,  1066,    81,    82,
    3113       -1,    -1,    -1,  1370,   639,   640,   641,    -1,  1170,   320,
    3114       -1,   767,    -1,    -1,    -1,    -1,    -1,   328,    -1,  1386,
    3115      331,    -1,   657,    -1,   107,    -1,   109,    -1,    -1,    -1,
    3116      248,    -1,    -1,    -1,   117,   253,    -1,    -1,    -1,    -1,
    3117      414,  1153,    -1,    -1,    -1,    -1,  1195,    -1,    -1,    -1,
    3118       -1,    -1,    -1,   809,    -1,   429,    -1,    -1,   719,    -1,
    3119      434,    -1,    -1,   819,    -1,    -1,   822,    -1,   442,    -1,
    3120       -1,   827,   733,   829,    -1,  1442,  1443,    -1,   834,    -1,
    3121       -1,    -1,    -1,   394,  1196,    -1,    -1,   398,  1455,    -1,
    3122       -1,    -1,   753,    -1,   468,  1462,   731,    -1,    -1,    -1,
    3123       -1,    -1,    -1,    -1,    -1,    -1,  1218,    -1,    -1,    -1,
    3124       -1,    -1,   486,    -1,   488,    -1,    -1,    -1,    -1,  1231,
    3125       -1,  1233,    -1,    -1,    -1,    -1,    -1,    -1,  1495,   347,
    3126       -1,    -1,  1499,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3127      896,  1290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3128     1262,    -1,    -1,    -1,    -1,   529,    -1,    -1,  1270,  1271,
    3129     1272,  1528,    -1,  1530,    -1,   826,    -1,    -1,    -1,  1281,
    3130     1282,    -1,   483,    -1,    10,    11,    12,    13,    14,    -1,
    3131       -1,    -1,    -1,  1295,    -1,    -1,    -1,   822,    -1,    -1,
    3132       -1,  1558,  1559,    -1,   829,    -1,   414,    -1,    -1,  1566,
    3133     1567,    37,    -1,    -1,    -1,    -1,  1318,    -1,    -1,    -1,
    3134       -1,   429,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,
    3135      594,    -1,    -1,   979,   442,    -1,    -1,    -1,    -1,    65,
    3136       -1,    -1,    -1,    -1,    70,  1304,    72,    73,    74,    -1,
    3137       -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,
    3138      468,    -1,    -1,    -1,    -1,  1213,    -1,    -1,    -1,    -1,
    3139       -1,   896,    -1,   574,   575,   639,   640,   641,   486,    -1,
    3140      488,   107,    -1,   109,    -1,    -1,  1032,  1033,    -1,  1035,
    3141     1036,   117,    -1,   657,    -1,    -1,    -1,    -1,    -1,    -1,
    3142       -1,    -1,    -1,    -1,  1406,    -1,    -1,    -1,    -1,  1055,
    3143       -1,   675,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3144       -1,   529,   686,    -1,    -1,    -1,    -1,    -1,   692,    10,
    3145       11,    12,    13,    14,    -1,    -1,    -1,    -1,   963,    -1,
    3146       -1,    -1,    -1,    -1,  1090,  1091,    -1,    25,    26,    27,
    3147       -1,    -1,    -1,  1455,   979,    -1,    37,    -1,    -1,    -1,
    3148     1462,   662,    -1,    -1,   728,   666,  1017,   731,    95,    96,
    3149       97,    98,    99,   100,   101,   102,   103,   104,    -1,    -1,
    3150       -1,    -1,    -1,    -1,    65,    -1,   594,    -1,    -1,    70,
    3151       -1,    72,    73,    74,    -1,    -1,    -1,    -1,   699,    -1,
    3152       81,    82,   129,   767,  1463,    -1,  1465,  1153,    -1,    -1,
    3153     1035,  1036,    -1,  1515,    -1,    -1,    -1,    -1,    96,    -1,
    3154       98,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,    -1,
    3155     1055,   639,   640,   641,    -1,    -1,   117,    -1,    -1,    -1,
    3156     1388,  1500,    -1,  1502,   122,   809,    -1,    -1,    -1,   657,
    3157     1196,    -1,    -1,    -1,    -1,   819,    -1,    -1,   822,    -1,
    3158       -1,    -1,    -1,   827,    -1,   829,    -1,   675,    -1,    -1,
    3159      834,    -1,  1218,    -1,    -1,    -1,    -1,    -1,   686,    10,
    3160       11,    12,    13,    14,   692,  1231,  1545,  1233,  1547,    -1,
    3161       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3162      178,  1560,  1561,    -1,    -1,    -1,    37,    -1,   186,    -1,
    3163      188,   189,   813,    -1,    -1,   193,  1262,   195,   196,    37,
    3164      728,    -1,    -1,   731,  1270,  1271,  1272,    -1,    -1,    25,
    3165       26,    27,   896,    -1,    65,  1281,  1282,    -1,    -1,    70,
    3166       -1,    72,    73,    74,  1195,    -1,    -1,    65,    -1,  1295,
    3167       81,    82,    70,    -1,    72,    73,    74,    -1,    -1,   767,
    3168       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
    3169     1195,  1196,  1318,    -1,    -1,    -1,   107,    -1,   109,    -1,
    3170       -1,    -1,    -1,    -1,    -1,    -1,   117,   265,    -1,   107,
    3171       -1,    -1,    -1,  1218,    -1,    -1,    -1,    -1,    -1,   117,
    3172       96,   809,    98,    -1,    -1,    -1,    -1,    -1,    63,    -1,
    3173       -1,   819,  1237,    -1,   822,   979,    -1,    -1,    73,   827,
    3174       75,   829,    77,    -1,    44,   926,   834,    -1,    -1,    84,
    3175       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1290,
    3176       -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
    3177       10,    11,    12,    13,    14,    -1,  1281,  1282,    -1,   114,
    3178     1406,   116,   117,   118,    -1,  1290,    -1,    -1,  1032,  1033,
    3179     1295,  1035,  1036,    -1,    -1,    -1,    -1,    37,    -1,    -1,
    3180       -1,    -1,   178,    -1,    -1,    -1,    -1,    -1,   896,   109,
    3181       -1,  1055,   188,   189,   114,    -1,    -1,   193,    -1,   195,
    3182      196,    -1,   157,  1004,  1329,    65,    -1,    -1,    -1,  1455,
    3183       70,    -1,    72,    73,    74,    -1,  1462,    -1,    -1,  1020,
    3184       -1,    81,    82,   143,    -1,    -1,  1090,  1091,    -1,    -1,
    3185       -1,    -1,    -1,   153,    -1,    -1,    -1,   157,    -1,    -1,
    3186       -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
    3187       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
    3188       -1,    -1,    -1,   218,    -1,   220,   221,   222,    -1,  1515,
    3189       -1,   979,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3190       -1,  1406,    -1,    -1,    -1,    -1,   206,    -1,    -1,  1153,
    3191       -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,   218,    -1,
    3192       -1,   256,    -1,    -1,    -1,   260,    -1,  1432,    -1,    -1,
    3193       -1,    -1,    -1,    -1,    -1,    -1,   236,   237,    -1,    -1,
    3194       -1,   276,    -1,    -1,  1032,  1033,    -1,  1035,  1036,    -1,
    3195     1455,    -1,  1196,    -1,    -1,    -1,    -1,  1462,    -1,    -1,
    3196      260,    -1,    -1,    -1,    -1,    -1,    -1,  1055,   268,    -1,
    3197       -1,    -1,    -1,    -1,  1218,    -1,    -1,    -1,    -1,    -1,
    3198       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1231,    -1,  1233,
    3199      325,   291,    -1,    -1,   294,    -1,    -1,    -1,    -1,    -1,
    3200       -1,    -1,  1090,  1091,    -1,    -1,    -1,    -1,    -1,    -1,
    3201     1515,   346,    -1,    -1,    -1,    -1,   351,   352,  1262,    -1,
    3202      578,   579,    -1,    -1,   359,    -1,  1270,  1271,  1272,    -1,
    3203       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1281,  1282,    -1,
    3204       -1,   341,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
    3205      608,  1295,    -1,   611,   612,    36,   614,    38,   616,   617,
    3206       -1,    -1,    -1,   621,   622,  1153,    -1,   402,    -1,    -1,
    3207       -1,    -1,    -1,    -1,  1318,    -1,    -1,    -1,    -1,    -1,
    3208       -1,    -1,    -1,    64,    -1,   420,    -1,    -1,    -1,    70,
    3209      425,    -1,   427,    74,    -1,    -1,    77,    78,    79,    80,
    3210       81,    82,    -1,    84,    85,    -1,    -1,    -1,  1196,   444,
    3211       -1,    92,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,
    3212       -1,    -1,   422,   423,    -1,    -1,   107,    -1,   463,   429,
    3213     1218,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
    3214      121,   699,   477,  1231,    -1,  1233,   704,   705,    -1,   484,
    3215      450,    -1,   710,   453,    -1,    -1,    -1,    -1,    -1,   459,
    3216       -1,    -1,  1406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3217       -1,    -1,    -1,    -1,  1262,    -1,    -1,    -1,    -1,    -1,
    3218       -1,    -1,  1270,  1271,  1272,    -1,   486,    -1,    -1,    -1,
    3219       -1,    -1,    -1,  1281,  1282,    -1,    -1,    -1,   498,    -1,
    3220       -1,    -1,   578,   579,    -1,    -1,    43,  1295,    -1,    -1,
    3221      510,  1455,    -1,    -1,   514,    -1,   516,   517,  1462,    -1,
    3222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   529,
    3223     1318,    -1,   608,    -1,    -1,   611,   612,    -1,   614,    -1,
    3224      616,   617,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
    3225       -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3226       -1,    -1,    99,    -1,   599,    -1,    -1,    -1,    -1,    -1,
    3227       -1,  1515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3228       -1,    -1,   582,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3229       -1,    -1,   627,    -1,   594,    -1,   596,   632,    -1,   599,
    3230       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3231       20,    21,    22,    23,    24,    25,    26,   154,  1406,    29,
    3232       30,    31,    -1,    -1,    -1,   625,    -1,    37,   704,   705,
    3233      630,   168,    -1,    -1,   710,    -1,    -1,    -1,    -1,   639,
    3234      640,   641,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3235       -1,    -1,    -1,    -1,   191,    65,    -1,   657,    -1,    -1,
    3236       70,    -1,    72,    73,    74,    -1,    -1,  1455,   205,    -1,
    3237       -1,    81,    82,    -1,  1462,    -1,    -1,   214,    -1,    -1,
    3238       -1,    -1,    -1,    -1,   719,    -1,    -1,   224,    -1,    -1,
    3239       -1,    -1,   692,    -1,    -1,    -1,    -1,   107,   733,   109,
    3240       -1,    36,    -1,    38,    -1,    -1,    -1,   117,    -1,    -1,
    3241       -1,    -1,   249,   713,    -1,    -1,    -1,   254,   753,    -1,
    3242       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1515,    -1,    64,
    3243      267,   731,    -1,   733,    -1,    70,   273,    -1,   275,    74,
    3244       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3245       85,    -1,    -1,    -1,    -1,   292,    -1,    92,    -1,    -1,
    3246       -1,    -1,    -1,    -1,    -1,    -1,    -1,   767,    -1,    -1,
    3247       -1,    -1,   107,    -1,   109,    -1,    -1,   112,   813,    -1,
    3248       -1,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
    3249       -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,   335,    -1,
    3250       -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,    -1,
    3251      845,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3252       -1,    -1,   822,    -1,    -1,    -1,   826,    -1,    -1,   829,
    3253       -1,   368,    -1,    -1,  1092,   372,   373,    -1,   375,    -1,
    3254       -1,    -1,    -1,    -1,    -1,   382,   383,    -1,   385,   386,
    3255       -1,   388,    -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,
    3256       -1,     7,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3257      407,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   415,    -1,
    3258       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3259       36,    37,    38,    -1,    -1,    -1,    -1,   932,    -1,    -1,
    3260       -1,    -1,    -1,   440,    -1,    -1,    -1,    -1,    -1,    -1,
    3261       -1,    -1,    -1,    -1,   451,    -1,    -1,    -1,    64,    65,
    3262       -1,    -1,   922,   958,    70,    -1,    -1,    -1,    74,    -1,
    3263       -1,    77,    78,    79,    80,    81,    82,   474,    84,    85,
    3264       -1,    -1,    -1,   480,    -1,    -1,    92,    -1,   485,    -1,
    3265      985,    -1,    -1,    -1,    -1,    -1,    -1,  1215,    -1,    -1,
    3266       -1,   107,    -1,   109,   964,    -1,    -1,    -1,    -1,    -1,
    3267      116,   117,   118,   119,   120,   121,    -1,    -1,    -1,   979,
    3268       -1,    -1,  1017,    -1,   521,    -1,    -1,    -1,    -1,    -1,
    3269       -1,    -1,    -1,  1028,    -1,    -1,    -1,    -1,    -1,    -1,
    3270      537,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3271       -1,    -1,    -1,    -1,  1014,    -1,  1092,    -1,    -1,     7,
    3272       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,    -1,  1035,  1036,   574,    -1,    -1,
    3274       -1,    -1,    -1,    -1,    -1,   143,   583,    -1,    36,    37,
    3275       38,    -1,    -1,   590,    -1,   153,    -1,    -1,   595,    -1,
    3276       -1,    -1,    -1,    -1,    -1,    -1,    -1,   165,   166,   606,
    3277       -1,    -1,    -1,    -1,  1109,    -1,    64,    65,    -1,    -1,
    3278       -1,    -1,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,
    3279       78,    79,    80,    81,    82,  1095,    84,    85,    -1,    -1,
    3280       -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,
    3281      647,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
    3282       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
    3283      118,   119,   120,   121,    -1,    -1,    -1,    -1,   236,  1215,
    3284       -1,    -1,    -1,    -1,    -1,   682,    -1,   152,   153,    -1,
    3285       -1,    -1,    -1,  1153,    -1,    -1,    -1,    -1,    -1,    -1,
    3286     1195,    -1,    -1,   261,    10,    11,    12,    13,    14,    15,
    3287       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3288       26,   186,    -1,    29,    30,    31,    -1,    -1,   193,    -1,
    3289       -1,    37,    -1,    -1,    -1,  1195,    -1,    -1,    -1,    -1,
    3290      737,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3291      747,   748,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3292       -1,    -1,    -1,   760,    70,    -1,    72,    73,    74,    -1,
    3293       -1,    -1,    -1,  1233,    -1,    81,    82,    -1,    -1,    -1,
    3294      777,    -1,   779,    -1,    -1,    -1,   783,    -1,    -1,    -1,
    3295       -1,    -1,    -1,    -1,    -1,  1290,    -1,    -1,    -1,    -1,
    3296      265,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
    3297       -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,
    3298       -1,  1281,  1282,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3299     1290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3300       -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3301       -1,    -1,   849,    -1,    -1,   320,    -1,    -1,    -1,   856,
    3302       -1,    -1,    -1,   328,   329,    -1,   331,   332,    -1,    64,
    3303       -1,    -1,   869,    -1,   871,    70,   341,    72,    73,    74,
    3304      345,    -1,    77,    78,    79,    80,    81,    82,   885,    84,
    3305       85,    -1,    -1,    -1,    -1,   892,    -1,    92,    -1,   364,
    3306       -1,    -1,   367,    -1,    -1,    -1,    -1,   904,    -1,    -1,
    3307      907,    -1,   107,    -1,   109,    -1,   111,   112,    -1,    -1,
    3308      478,   116,   117,   118,   119,   120,   121,    -1,   925,   394,
    3309       -1,    -1,    -1,   398,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,    -1,    -1,    -1,  1406,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   516,    -1,
    3312       -1,    -1,    -1,    -1,   429,    -1,    -1,    -1,    -1,    -1,
    3313       -1,   529,    -1,    -1,    -1,    -1,    -1,    -1,   536,    -1,
    3314       -1,   539,    -1,    -1,    -1,    -1,    -1,   452,    -1,    -1,
    3315       -1,    -1,   550,   551,    -1,    -1,    -1,    -1,    -1,    -1,
    3316       -1,    -1,    -1,    -1,  1464,    -1,  1466,    -1,    -1,    -1,
    3317       -1,    -1,    -1,    -1,   572,    -1,  1013,    -1,   483,    -1,
    3318       -1,   486,    -1,    -1,   582,    -1,    -1,    -1,    -1,    -1,
    3319       -1,   589,    -1,    -1,    -1,    -1,   594,    -1,    -1,    -1,
    3320       -1,  1501,    -1,  1503,    -1,    -1,    -1,    -1,    -1,    -1,
    3321       -1,  1546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3322      525,    -1,    -1,   528,   529,    -1,    -1,    -1,    -1,    -1,
    3323       -1,  1531,  1069,    -1,    -1,    -1,    -1,    -1,    -1,  1076,
    3324       -1,    -1,    -1,    -1,    -1,    -1,   644,    -1,    -1,    -1,
    3325       -1,    -1,    -1,    -1,   652,    -1,    -1,    -1,    -1,    -1,
    3326       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1105,   574,
    3327      575,    -1,    -1,  1110,    -1,    -1,    -1,    -1,    -1,    -1,
    3328       -1,  1118,    -1,    -1,    -1,    -1,    -1,    -1,   593,   594,
    3329       -1,   596,    -1,    -1,   692,    -1,    -1,    -1,    -1,    -1,
    3330      605,    -1,   607,   608,    -1,    -1,    -1,    -1,    -1,   614,
    3331       -1,  1148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,
    3332      625,    -1,    -1,  1160,    -1,   630,  1163,    -1,  1165,    -1,
    3333       -1,    -1,    -1,    -1,   639,   640,   641,    -1,    -1,    -1,
    3334       -1,    -1,  1179,  1180,    -1,    -1,    -1,    -1,    -1,    -1,
    3335       -1,    -1,   657,    -1,    -1,    -1,    -1,   662,   663,    -1,
    3336       -1,   666,   667,    -1,  1201,    -1,    -1,    -1,   673,   767,
    3337       -1,   769,    -1,    -1,    -1,    -1,    -1,   775,    -1,    -1,
    3338       -1,    -1,    -1,    -1,   782,    -1,   691,   692,   693,    -1,
    3339      695,  1228,    -1,    -1,   699,    -1,    10,    11,    12,    13,
    3340       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    33413536      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3342       -1,    -1,    -1,    37,    38,    -1,   731,   732,   826,   827,
    3343       -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3344       -1,    -1,    -1,    -1,    -1,    -1,   844,    -1,    -1,    -1,
    3345       -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
    3346       -1,   766,   767,    -1,    -1,    -1,   771,   772,    -1,    -1,
    3347       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3348       -1,    -1,    -1,    -1,    -1,    -1,   884,  1324,    -1,  1326,
    3349      888,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
    3350       -1,    -1,  1339,   117,  1341,    -1,    -1,    -1,   813,    -1,
    3351       -1,    -1,    -1,    -1,    -1,    -1,    -1,   822,    -1,    -1,
    3352       -1,    -1,  1359,   828,   829,    -1,    -1,    -1,   833,    -1,
    3353      835,    -1,    -1,    -1,   279,   280,   281,    -1,  1375,  1376,
    3354      845,    -1,    -1,   288,   289,    -1,    -1,    -1,   293,   294,
    3355     1387,    -1,    -1,  1390,    -1,    -1,    -1,    -1,    -1,    -1,
    3356      305,    -1,    -1,    -1,    -1,    -1,   964,    -1,    -1,    -1,
    3357       -1,    -1,    -1,    -1,    -1,  1412,    -1,    -1,    -1,    -1,
    3358       -1,   979,   980,    -1,  1421,    -1,    -1,  1424,   986,  1426,
    3359     1427,  1428,    -1,    -1,   992,    -1,   341,   995,    -1,   997,
    3360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       -1,    -1,    -1,   918,    -1,    -1,    -1,    -1,    -1,  1017,
    3362       -1,   926,    -1,    -1,    -1,    -1,    -1,   932,    -1,    -1,
    3363     1028,  1468,   377,  1470,    -1,   940,  1473,    -1,    -1,    -1,
    3364       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   953,   954,
    3365       -1,  1488,  1050,    -1,  1052,    -1,    -1,    -1,    -1,    -1,
    3366       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1067,
    3367     1068,    -1,    -1,    -1,   979,    -1,    -1,    -1,    -1,    -1,
    3368      985,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3369     1088,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1004,
    3370     1005,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,  1014,
    3371       -1,    -1,    -1,    -1,    -1,  1020,  1021,    -1,  1023,  1024,
    3372     1025,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,
    3373     1035,  1036,    -1,    -1,    -1,    70,  1134,    -1,    -1,    74,
    3374       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3375       85,    -1,    -1,    -1,    -1,  1153,    -1,    92,    -1,    -1,
    3376       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3377     1168,  1169,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3378      115,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
    3379       -1,  1096,  1097,  1098,    -1,    -1,    -1,    -1,    -1,    -1,
    3380       -1,    -1,    -1,    -1,  1109,    -1,    -1,    -1,   553,   554,
    3381      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
    3382      565,   566,   567,   568,   569,   570,    -1,    -1,    -1,    -1,
    3383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1153,    -1,
    3385     1248,   596,     0,    -1,    -1,     3,     4,     5,     6,     7,
    3386        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3387       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3388       -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
    3389       38,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3390       19,    20,    21,    22,    23,    24,    25,    26,  1213,    -1,
    3391       -1,  1309,    -1,  1311,    62,    -1,    -1,    65,    37,    67,
    3392       -1,    69,    70,    -1,    72,    73,    74,    -1,  1233,    -1,
    3393       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
    3394       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   694,
    3395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
    3396       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3397       -1,   716,    -1,    -1,    -1,    -1,  1281,  1282,    -1,    -1,
    3398       -1,    -1,    -1,    -1,   729,    -1,    -1,    -1,    -1,    -1,
    3399       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1397,
    3400       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   774,
    3403       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    3404        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3405       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3406       -1,   806,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3407       37,    38,    -1,    -1,    -1,    -1,   821,    -1,    -1,    -1,
    3408       -1,  1479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    65,    -1,
    3410       67,  1406,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3411       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3412       -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
    3413       -1,    -1,    -1,  1531,    -1,    -1,    -1,    -1,    -1,    -1,
    3414      107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3415      117,   118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,
    3416       -1,    -1,    -1,   130,    -1,    -1,    -1,    -1,    -1,    -1,
    3417       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3418       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3419       -1,  1496,     3,     4,     5,     6,     7,     8,     9,    10,
    3420       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3421       21,    22,    23,    24,    25,    26,  1521,  1522,    29,    30,
    3422       31,    -1,    -1,    -1,    -1,    -1,    37,   972,    -1,    -1,
    3423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3424       -1,  1546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    -1,    65,    -1,    67,  1002,    69,    -1,
    3426       -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,  1014,
    3427        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3537      -1,    -1,    36,    37,    38,    39,    -1,    10,    11,    12,
    34283538      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3429       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    3430       -1,   112,    35,    36,    37,    38,    39,    -1,    41,    -1,
    3431     1055,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
    3432       -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,    62,
    3433       -1,    64,    65,    -1,    67,    -1,    69,    70,    -1,    72,
    3434       73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3435       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
    3436       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3437       -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,   112,
    3438       -1,    -1,  1127,   116,   117,   118,   119,   120,   121,    -1,
    3439       -1,    -1,    -1,   126,    -1,    -1,    -1,   130,    -1,    -1,
    3440        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3441       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3442       23,    24,    25,    26,    -1,  1170,    29,    30,    31,    32,
    3443       -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,  1184,
    3444     1185,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3445       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3446       -1,    64,    65,    -1,    67,    -1,    69,    70,    37,    72,
    3447       73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3448       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
    3449       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3450       -1,    -1,    -1,    -1,   107,    -1,   109,    76,    -1,    -1,
    3451       -1,    -1,    -1,   116,   117,   118,   119,   120,   121,     4,
     3539      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3540      -1,    65,    66,    -1,    68,    38,    70,    71,    -1,    73,
     3541      74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3542      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3543      -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
     3544      73,    74,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,
     3545      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
    34523546       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    34533547      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    34543548      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3455       -1,    36,    37,    38,    10,    11,    12,    13,    14,    15,
    3456       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3457       26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    64,
    3458       65,    37,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3459       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3460       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,
    3461       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3462       76,    -1,   107,    -1,   109,    81,    82,    -1,    -1,   114,
    3463       -1,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
    3464       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1393,    -1,
    3465       -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
    3466       -1,   117,    -1,    -1,    -1,  1410,    -1,     4,     5,     6,
     3549      -1,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
     3550      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3551      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3552      65,    66,    -1,    68,    -1,    70,    71,    -1,    73,    74,
     3553      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3554      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
     3555      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3556      -1,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,
     3557      -1,    -1,   117,   118,   119,   120,   121,   122,     3,     4,
     3558       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3559      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3560      25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
     3561      35,    -1,    -1,    38,    39,    -1,    10,    11,    12,    13,
     3562      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3563      24,    25,    26,    -1,    -1,    29,    30,    31,    63,    -1,
     3564      -1,    66,    -1,    68,    38,    70,    71,    -1,    73,    74,
     3565      75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,
     3566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3567      -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
     3568      74,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,   114,
     3569      -1,    -1,    -1,   118,     3,     4,     5,     6,     7,     8,
     3570       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3571      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3572      29,    30,    31,    32,   118,    -1,    35,    -1,    -1,    38,
     3573      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3574      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3575      -1,    -1,    -1,    -1,    63,    -1,    -1,    66,    -1,    68,
     3576      -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
     3577      -1,    -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,
     3578      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
     3580      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3581       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3582      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3583      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3584      -1,    -1,    -1,    -1,    -1,    38,    10,    11,    12,    13,
     3585      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3586      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    33,
     3587      34,    -1,    -1,    66,    38,    68,    -1,    70,    71,    -1,
     3588      73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,
     3589      83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3590      -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
     3591      74,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
     3592      -1,    -1,    -1,    -1,    -1,   118,     3,     4,     5,     6,
    34673593       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    34683594      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3469       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3470       37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
     3595      -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,
     3596      -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3597      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3598      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3599      -1,    68,    -1,    70,    -1,    -1,    73,    74,    -1,     3,
     3600       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3601      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3602      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3603      -1,    -1,    -1,   110,    38,    -1,    -1,    -1,    -1,    -1,
     3604      -1,   118,    -1,    -1,     7,    -1,    -1,    10,    11,    12,
     3605      13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3606      -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
     3607      74,    -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,
     3608      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3609      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3610      -1,    -1,    65,    66,    -1,    -1,   110,    -1,    71,    -1,
     3611      -1,    -1,    75,    -1,   118,    78,    79,    80,    81,    82,
     3612      83,     7,    85,    86,    10,    11,    12,    13,    14,    -1,
     3613      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3614      -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
     3615      36,    37,    38,    39,   117,   118,   119,   120,   121,   122,
     3616      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
     3618      66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
     3619      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3620      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
     3621      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3622      -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3623      -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
     3624       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3625      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3626      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3627      -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3628      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3629      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3630      -1,    68,    -1,    70,    71,    -1,    73,    74,    75,    -1,
     3631      -1,    -1,    -1,    -1,    -1,    82,    83,    -1,    -1,    -1,
     3632      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3633      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3634      -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
     3635      -1,   118,     4,     5,     6,     7,     8,     9,    10,    11,
     3636      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3637      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3638      -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,
     3639      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    34713640      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3472       -1,    29,    30,    31,    -1,    -1,    -1,    64,    65,    37,
    3473       67,    -1,    69,    70,    -1,    72,    73,    74,  1483,  1484,
    3474       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3475       -1,    -1,    -1,    -1,    -1,    92,    -1,    65,    -1,    -1,
    3476       -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
    3477      107,    -1,   109,    -1,    -1,    -1,    -1,   114,    -1,   116,
    3478      117,   118,   119,   120,   121,     4,     5,     6,     7,     8,
     3641      -1,    29,    30,    31,    66,    -1,    68,    -1,    70,    -1,
     3642      38,    73,    74,    -1,    -1,     4,     5,     6,     7,     8,
    34793643       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3480       19,    20,    21,    22,    23,    24,    25,    26,    -1,   117,
    3481       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3644      19,    20,    21,    22,    23,    24,    25,    26,    66,    -1,
     3645      29,    30,    31,    71,    -1,    73,    74,   109,   110,    38,
     3646      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
     3647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
     3649      -1,    70,   110,    -1,    73,    74,    -1,    -1,    -1,    -1,
     3650     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
     3652      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3653      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3654       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3655      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3656      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3657      -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    10,
     3658      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3659      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3660      31,    -1,    66,    -1,    68,    -1,    70,    38,    -1,    73,
     3661      74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3662      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3663      -1,    95,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3664      71,    -1,    73,    74,    75,    -1,   110,    -1,    -1,    -1,
     3665      -1,    82,    83,    -1,   118,     4,     5,     6,     7,     8,
     3666       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3667      19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
     3668      29,    30,    31,    -1,    -1,    -1,    -1,   118,    -1,    38,
     3669      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3670      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3671      -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
     3672      -1,    70,    -1,    -1,    73,    74,     4,     5,     6,     7,
     3673       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3674      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3675      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
     3676      38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3677      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3678      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3679      68,    -1,    70,    -1,    -1,    73,    74,     4,     5,     6,
     3680       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3681      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3682      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3683      -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3684     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3686      -1,    68,    -1,    70,    -1,    -1,    73,    74,     4,     5,
     3687       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3688      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3689      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3690      -1,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,
     3691      -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,    10,
     3694      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3695      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3696      31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,
     3697      -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3698      -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
     3700      71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
     3701      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3702      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3704      -1,    -1,   113,    -1,    -1,    -1,   117,   118,   119,   120,
     3705     121,   122,    10,    11,    12,    13,    14,    15,    16,    17,
     3706      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3707      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
     3708      38,    39,    10,    11,    12,    13,    14,    15,    16,    17,
     3709      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3710      -1,    29,    30,    31,    -1,    -1,    -1,    65,    66,    -1,
     3711      38,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    -1,
     3712      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3713      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    66,    -1,
     3714      -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    77,
     3715     108,    -1,   110,   111,    82,    83,    -1,    -1,    -1,   117,
     3716     118,   119,   120,   121,   122,    10,    11,    12,    13,    14,
     3717      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3718      25,    26,   110,    -1,    29,    30,    31,    -1,    -1,    -1,
     3719     118,    36,    37,    38,    39,    10,    11,    12,    13,    14,
     3720      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3721      25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
     3722      65,    66,    -1,    38,    -1,    -1,    71,    -1,    73,    74,
     3723      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3724      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
     3725      -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,
     3726      -1,    -1,    77,   108,   109,   110,    -1,    -1,    -1,    -1,
     3727      -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
     3728      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3729      22,    23,    24,    25,    26,   110,    -1,    29,    30,    31,
     3730      -1,    -1,    -1,   118,    36,    37,    38,    39,    10,    11,
     3731      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3732      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3733      -1,    -1,    -1,    65,    66,    -1,    38,    39,    -1,    71,
     3734      -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
     3735      82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
     3736      -1,    93,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3737      -1,    73,    74,    -1,    -1,    -1,   108,    -1,   110,    -1,
     3738      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3739     122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3740      19,    20,    21,    22,    23,    24,    25,    26,   110,    -1,
     3741      29,    30,    31,    -1,    -1,    -1,   118,    36,    37,    38,
     3742      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,
     3743      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3744      21,    22,    23,    24,    25,    26,    65,    66,    29,    30,
     3745      31,    -1,    71,    -1,    73,    74,    75,    38,    -1,    78,
     3746      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3747      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   108,
     3749      -1,   110,    73,    74,    -1,    -1,    -1,    -1,   117,   118,
     3750     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
     3751      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3752      26,    -1,    -1,    29,    30,    31,    -1,   108,    -1,   110,
     3753      36,    37,    38,    39,    -1,    -1,    -1,   118,    -1,    -1,
     3754      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3755      18,    19,    20,    21,    22,    23,    24,    25,    26,    65,
     3756      66,    29,    30,    31,    -1,    71,    -1,    73,    74,    75,
     3757      38,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3758      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3760      -1,    -1,   108,    -1,   110,    73,    74,    -1,    -1,    -1,
     3761      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
     3762      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3763      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3764     108,    -1,   110,    36,    37,    38,    39,    -1,    -1,    -1,
     3765     118,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3766      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3767      25,    26,    65,    66,    29,    30,    31,    -1,    71,    -1,
     3768      73,    74,    75,    38,    39,    78,    79,    80,    81,    82,
     3769      83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
     3770      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3771      -1,    66,    -1,    -1,    -1,   108,    -1,   110,    73,    74,
     3772      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3773       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3774      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3775      23,    24,    25,    26,    -1,   110,    29,    30,    31,   114,
     3776      -1,    -1,    -1,   118,    -1,    38,    10,    11,    12,    13,
     3777      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3778      24,    25,    26,    27,    -1,    29,    30,    31,    -1,    -1,
     3779      -1,    -1,    -1,    66,    38,    68,    -1,    70,    -1,    -1,
     3780      73,    74,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3781      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3782      26,    -1,    66,    29,    30,    31,    -1,    71,    -1,    73,
     3783      74,    75,    38,    77,    -1,    -1,    -1,    -1,    82,    83,
     3784     113,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3785      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3786      66,    29,    30,    31,   108,    71,   110,    73,    74,    75,
     3787      38,    -1,    -1,    -1,   118,    -1,    82,    83,    -1,    -1,
     3788      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3789      20,    21,    22,    23,    24,    25,    26,    -1,    66,    29,
     3790      30,    31,   108,    71,   110,    73,    74,    75,    38,    -1,
     3791      -1,    -1,   118,    -1,    82,    83,    -1,    -1,    10,    11,
     3792      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3793      22,    23,    24,    25,    26,    27,    66,    29,    30,    31,
     3794     108,    71,   110,    73,    74,    75,    38,    -1,    -1,    -1,
     3795     118,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
     3796      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3797      -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   108,    -1,
     3798     110,    73,    74,    -1,    -1,    77,    -1,    -1,   118,    -1,
     3799      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3800      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3801      29,    30,    31,    -1,    -1,    -1,   108,    -1,   110,    38,
     3802      39,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    10,
     3803      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3804      21,    22,    23,    24,    25,    26,    -1,    66,    29,    30,
     3805      31,    -1,    -1,    -1,    73,    74,    -1,    38,    39,    10,
     3806      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3807      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3808      31,    -1,    -1,    -1,    -1,    66,    -1,    38,    -1,    -1,
     3809      -1,   110,    73,    74,    -1,   114,    -1,    -1,    -1,   118,
     3810      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3811      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3812      -1,    -1,    73,    74,    -1,    -1,    -1,    -1,    -1,   110,
     3813      -1,    -1,    -1,   114,    -1,    -1,    -1,   118,    -1,    -1,
     3814      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3815      19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
     3816      29,    30,    31,    -1,    -1,    -1,    -1,   118,    -1,    38,
    34823817      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    34833818      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3484       30,    31,    -1,    -1,    -1,    64,    65,    37,    67,    -1,
    3485       69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3486       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3487       -1,    -1,    -1,    92,    -1,    65,    -1,    -1,    -1,    -1,
    3488       -1,    -1,    72,    73,    -1,    -1,    -1,    -1,   107,    -1,
    3489      109,    -1,    -1,    -1,    -1,   114,    -1,   116,   117,   118,
    3490      119,   120,   121,     4,     5,     6,     7,     8,     9,    10,
     3819      30,    31,    -1,    -1,    -1,    -1,    -1,    66,    38,    -1,
     3820      -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    10,    11,
     3821      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3822      22,    23,    24,    25,    26,    -1,    66,    29,    30,    31,
     3823      -1,    -1,    -1,    73,    74,    -1,    38,    -1,    -1,    -1,
     3824      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3825      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3826      -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3827     110,    73,    74,    -1,    -1,    -1,    -1,    -1,   118,    10,
    34913828      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3492       21,    22,    23,    24,    25,    26,    -1,   117,    29,    30,
    3493       31,    -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,
     3829      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3830      31,    -1,    -1,    -1,    -1,    -1,    -1,    38,   110,    -1,
     3831      -1,    -1,    -1,    -1,    -1,    -1,   118,    10,    11,    12,
     3832      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3833      23,    24,    25,    26,    -1,    66,    29,    30,    31,    -1,
     3834      -1,    -1,    73,    74,    -1,    38,    10,    11,    12,    13,
     3835      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3836      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3837      -1,    -1,    -1,    66,    38,    -1,    -1,    -1,    -1,   110,
     3838      73,    74,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3839      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3840      -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
     3841      74,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
     3842      -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    10,    11,
    34943843      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3495       22,    23,    24,    25,    26,    27,    -1,    -1,    -1,    -1,
    3496       -1,    -1,    -1,    64,    65,    37,    67,    -1,    69,    70,
    3497       -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
    3498       81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
    3499       -1,    92,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    3500       -1,    -1,    -1,    -1,    76,    -1,   107,    -1,   109,    -1,
    3501       -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
    3502      121,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3844      22,    23,    24,    25,    26,    -1,   110,    29,    30,    31,
     3845      -1,    -1,    -1,    -1,   118,    -1,    38,    10,    11,    12,
    35033846      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    35043847      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3505       -1,    -1,    -1,    36,    37,    38,    10,    11,    12,    13,
    3506       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3507       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    33,
    3508       34,    64,    65,    37,    67,    -1,    69,    70,    -1,    72,
    3509       73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3510       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
    3511       -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
    3512       -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
    3513       -1,    -1,    -1,   116,   117,   118,   119,   120,   121,     4,
     3848      -1,    -1,    -1,    -1,    66,    38,    -1,    -1,    -1,    -1,
     3849      -1,    73,    74,    -1,    -1,    10,    11,    12,    13,    14,
     3850      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3851      25,    26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,
     3852      73,    74,    -1,    38,    -1,    -1,    -1,    -1,   110,    -1,
     3853      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
     3854      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3855      -1,    66,    -1,    -1,    -1,    -1,    -1,   110,    73,    74,
     3856      -1,    -1,    -1,    -1,    -1,   118,     4,     5,     6,     7,
     3857       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3858      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3859      -1,    29,    30,    31,    -1,   110,    -1,    -1,    -1,    -1,
     3860      38,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3861      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3862      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3863      68,    -1,    70,    -1,    -1,    73,    74,    36,    37,    -1,
     3864      39,    40,    -1,    42,    -1,    -1,    45,    46,    47,    48,
     3865      49,    50,    51,    52,    -1,    -1,    55,    56,    -1,    -1,
     3866      -1,    60,    61,    -1,    63,    -1,    65,    -1,    -1,    -1,
     3867      -1,   109,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
     3868      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3869      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
     3870      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
     3871      -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,   118,
     3872     119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
     3873      36,    37,   131,    39,    40,    -1,    42,    -1,    -1,    45,
     3874      46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
     3875      56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,
     3876      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
     3877      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3878      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
     3879      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3880      -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,
     3881      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3882      -1,   127,    -1,    36,    37,   131,    39,    40,    -1,    42,
     3883      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
     3884      -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,
     3885      63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    -1,
     3886      -1,    -1,    75,    -1,    -1,    78,    79,    80,    81,    82,
     3887      83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3889      -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
     3890     113,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3891      -1,    -1,    36,    37,   127,    39,    40,    -1,    42,    43,
     3892      44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
     3893      -1,    -1,    56,    -1,    -1,    -1,    60,    61,    -1,    63,
     3894      -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
     3895      -1,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3896      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3897      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3898      -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,
     3899      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3900      -1,    36,    37,   127,    39,    40,    -1,    42,    -1,    -1,
     3901      45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
     3902      -1,    56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,
     3903      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3904      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3905      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
     3906      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3907      -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,
     3908      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3909      -1,    -1,   127,     4,     5,     6,     7,     8,     9,    10,
     3910      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3911      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3912      31,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    36,
     3913      37,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3914      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    37,
     3915      -1,    39,    -1,    -1,    -1,    66,    -1,    68,    65,    70,
     3916      -1,    -1,    73,    74,    71,    -1,    -1,    -1,    75,    -1,
     3917      -1,    78,    79,    80,    81,    82,    83,    65,    85,    86,
     3918      -1,    -1,    -1,    71,    95,    -1,    93,    75,    -1,    -1,
     3919      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3920      -1,   108,    -1,   110,    -1,    93,    36,    37,   115,    39,
     3921     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3922     108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,
     3923     118,   119,   120,   121,   122,    65,    -1,    -1,    -1,    -1,
     3924      -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79,
     3925      80,    81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,
     3926      -1,    -1,    -1,    93,    36,    37,    -1,    39,    -1,    -1,
     3927      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
     3928     110,    -1,    -1,    36,    37,    -1,    39,   117,   118,   119,
     3929     120,   121,   122,    65,    -1,    -1,    -1,    -1,    -1,    71,
     3930      -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,    81,
     3931      82,    83,    65,    85,    86,    -1,    -1,    -1,    71,    -1,
     3932      -1,    93,    75,    -1,    -1,    78,    79,    80,    81,    82,
     3933      83,    -1,    85,    86,    -1,    -1,   108,    -1,   110,    -1,
     3934      93,    36,    37,    -1,    39,   117,   118,   119,   120,   121,
     3935     122,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
     3936      36,    37,    -1,    39,   117,   118,   119,   120,   121,   122,
     3937      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3938      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    65,
     3939      85,    86,    -1,    -1,    -1,    71,    -1,    -1,    93,    75,
     3940      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3941      86,    -1,    -1,   108,    -1,   110,    -1,    93,    36,    37,
     3942      -1,    39,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3943      -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3944      -1,   117,   118,   119,   120,   121,   122,    65,    -1,    -1,
     3945      -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
     3946      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3947      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
     3948      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3949     108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3950     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
     3951       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3952      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3953      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
     3954      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3955      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3956      -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
     3957      -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
     3958      -1,    -1,    -1,    82,    83,     3,     4,     5,     6,     7,
     3959       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3960      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3961      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
     3962      38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3963      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3964      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3965      68,    -1,    70,    -1,    -1,    73,    74,     3,     4,     5,
     3966       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3967      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3968      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3969      -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3970      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3972      66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,     4,
    35143973       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    35153974      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    35163975      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3517       -1,    36,    37,    38,    10,    11,    12,    13,    14,    15,
    3518       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3519       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    64,
    3520       65,    37,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3521       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3522       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,
    3523       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
    3524       -1,    -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3525       -1,   116,   117,   118,   119,   120,   121,     4,     5,     6,
    3526        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3527       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3528       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3529       37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
    3530       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3531       -1,    29,    30,    31,    -1,    -1,    -1,    64,    65,    37,
    3532       67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3533       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3534       -1,    -1,    -1,    -1,    -1,    92,    -1,    65,    -1,    -1,
    3535       -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
    3536      107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3537      117,   118,   119,   120,   121,     3,     4,     5,     6,     7,
    3538        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3539       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3540       -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
    3541       38,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3542       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3543       29,    30,    31,    -1,    62,    -1,    -1,    65,    37,    67,
    3544       -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,    -1,
    3545       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
    3546       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3547       -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,   107,
    3548       -1,   109,    -1,    -1,    -1,   113,    -1,    -1,    -1,   117,
    3549        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3550       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3551       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    3552       -1,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,
    3553       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3554       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
    3555       -1,    -1,    65,    -1,    67,    -1,    69,    70,    -1,    72,
    3556       73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
     3976      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    35573977      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35583978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
    3560       -1,    -1,    -1,    -1,   117,     3,     4,     5,     6,     7,
    3561        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3562       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3563       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3565       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3566       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    67,
    3567       -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,    -1,
    3568       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
    3569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3570       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
    3571       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3572        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3573       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3574       23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
    3575       -1,    -1,    35,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3576       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3577       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,
    3579       73,    -1,    -1,    76,    -1,     3,     4,     5,     6,     7,
    3580        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3581       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3582       -1,    29,    30,    31,    32,    -1,   109,    35,    -1,    37,
    3583       -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    3584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3585       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    67,
    3586       -1,    69,    -1,    -1,    72,    73,     3,     4,     5,     6,
    3587        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3588       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3589       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3590       37,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3591       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3592       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3593       67,    -1,    69,    -1,    -1,    72,    73,     4,     5,     6,
    3594        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3595       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3596       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3597       37,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598      117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3599       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3600       67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3601       -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
    3602       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3604      107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3605      117,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3606       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3607       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3608       -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3609       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3611       -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,
    3612       73,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3613       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3614       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3615       -1,    -1,    -1,    -1,    37,   108,   109,    -1,    -1,    -1,
    3616       -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    3617       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3618       -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,
    3619       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3620       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3621       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3622       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,   117,     4,     5,     6,     7,     8,
    3624        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3625       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3626       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
    3627       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3628       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3629       26,    -1,    -1,    29,    30,    31,    65,    -1,    67,    -1,
    3630       69,    37,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
    3631       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3632       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    65,
    3633       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3634      109,    -1,    -1,    -1,    -1,    81,    82,    -1,   117,     4,
    3635        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3636       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3637       25,    26,    -1,   109,    29,    30,    31,    -1,    -1,    -1,
    3638       -1,   117,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3639       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3640       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3641       65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,
    3642        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3643       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3644       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3645       -1,    -1,    37,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3646       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,
    3649        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3650       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3651       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3652       -1,    -1,    37,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3653       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3654       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3655       65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,
    3656        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3657       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3658       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3659       -1,    -1,    37,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3660       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,    10,
    3663       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3664       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3665       31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
    3666       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3667       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3668       -1,    -1,    -1,    64,    65,    -1,    -1,    -1,    -1,    70,
    3669       -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
    3670       81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
    3671       -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3672       -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,    -1,
    3673       -1,   112,    -1,    -1,    -1,   116,   117,   118,   119,   120,
    3674      121,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3675       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3676       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3677       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3678       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3679       29,    30,    31,    -1,    -1,    64,    65,    -1,    37,    -1,
    3680       -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3681       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3682       -1,    -1,    -1,    92,    -1,    -1,    65,    -1,    -1,    -1,
    3683       -1,    70,    -1,    72,    73,    74,    -1,    76,   107,    -1,
    3684      109,   110,    81,    82,    -1,    -1,    -1,   116,   117,   118,
    3685      119,   120,   121,    10,    11,    12,    13,    14,    15,    16,
    3686       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3687      109,    -1,    29,    30,    31,    -1,    -1,    -1,   117,    36,
    3688       37,    38,    -1,    10,    11,    12,    13,    14,    15,    16,
    3689       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3690       27,    -1,    29,    30,    31,    -1,    -1,    64,    65,    -1,
    3691       37,    -1,    -1,    70,    -1,    72,    73,    74,    -1,    -1,
    3692       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3693       -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    65,    -1,
    3694       -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    76,
    3695      107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3696      117,   118,   119,   120,   121,    10,    11,    12,    13,    14,
    3697       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3698       25,    26,   109,    -1,    29,    30,    31,    -1,    -1,    -1,
    3699      117,    36,    37,    38,    -1,    10,    11,    12,    13,    14,
    3700       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3701       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    64,
    3702       65,    -1,    37,    -1,    -1,    70,    -1,    72,    73,    74,
    3703       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3704       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
    3705       65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,    -1,
    3706       -1,    -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3707       -1,   116,   117,   118,   119,   120,   121,    10,    11,    12,
    3708       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3709       23,    24,    25,    26,   109,    -1,    29,    30,    31,    -1,
    3710       -1,    -1,   117,    36,    37,    38,    -1,    10,    11,    12,
    3711       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3712       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3713       -1,    64,    65,    -1,    37,    38,    -1,    70,    -1,    72,
    3714       73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3715       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
    3716       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    3717       73,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
    3718       -1,    -1,    -1,   116,   117,   118,   119,   120,   121,    10,
    3719       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3720       21,    22,    23,    24,    25,    26,   109,    -1,    29,    30,
    3721       31,    -1,    -1,    -1,   117,    36,    37,    38,    -1,    10,
    3722       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3723       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3724       31,    -1,    -1,    64,    65,    -1,    37,    -1,    -1,    70,
    3725       -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
    3726       81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
    3727       -1,    92,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    3728       -1,    72,    73,    -1,    -1,    -1,   107,    -1,   109,    -1,
    3729       -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
    3730      121,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3731       19,    20,    21,    22,    23,    24,    25,    26,   109,    -1,
    3732       29,    30,    31,    -1,    -1,    -1,   117,    36,    37,    38,
    3733       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3734       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3735       30,    31,    -1,    -1,    -1,    64,    65,    37,    -1,    -1,
    3736       -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3737       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3738       -1,    -1,    -1,    92,    -1,    65,    -1,    -1,    -1,    -1,
    3739       70,    -1,    72,    73,    74,    -1,    -1,    -1,   107,    -1,
    3740      109,    81,    82,    -1,    -1,    -1,    -1,   116,   117,   118,
    3741      119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3742       -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,
    3743       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    10,    11,
    3744       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3745       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3746       -1,    -1,    -1,    -1,    -1,    37,    -1,    10,    11,    12,
    3747       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3748       23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
    3749       -1,    -1,    -1,    65,    37,    -1,    -1,    -1,    70,    -1,
    3750       72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    3751       82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    3753       73,    -1,    -1,    76,    -1,   107,    -1,   109,    -1,    -1,
    3754       -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,
    3755       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3756       -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
    3757       -1,    -1,    -1,    -1,   117,    10,    11,    12,    13,    14,
    3758       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3759       25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
    3760       -1,    -1,    37,    -1,    10,    11,    12,    13,    14,    15,
    3761       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3762       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3763       65,    37,    38,    -1,    -1,    -1,    -1,    72,    73,    -1,
    3764       -1,    76,    10,    11,    12,    13,    14,    15,    16,    17,
    3765       18,    19,    20,    21,    22,    23,    24,    25,    26,    65,
    3766       -1,    29,    30,    31,    -1,    -1,    72,    73,    -1,    37,
    3767       38,    -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3768       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    3770       -1,    -1,    -1,   109,    72,    73,    -1,   113,    -1,    -1,
    3771       -1,   117,    10,    11,    12,    13,    14,    15,    16,    17,
    3772       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3773       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3774       -1,   109,    -1,    -1,    -1,   113,    -1,    -1,    -1,   117,
    3775       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3776       20,    21,    22,    23,    24,    25,    26,    65,    -1,    29,
    3777       30,    31,    -1,    -1,    72,    73,    -1,    37,    -1,    10,
    3778       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3779       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3780       31,    -1,    -1,    -1,    -1,    65,    37,    -1,    -1,   107,
    3781       -1,   109,    72,    73,    -1,    -1,    -1,    -1,    -1,   117,
    3782       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3783       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    3784       -1,    72,    73,    -1,    -1,    -1,    -1,   107,    -1,   109,
    3785       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
    3786       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3787       20,    21,    22,    23,    24,    25,    26,    -1,   109,    29,
    3788       30,    31,    -1,    -1,    -1,    -1,   117,    37,    -1,    10,
    3789       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3790       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3791       31,    -1,    -1,    -1,    -1,    65,    37,    -1,    -1,    -1,
    3792       -1,    -1,    72,    73,    -1,    -1,    -1,    10,    11,    12,
    3793       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3794       23,    24,    25,    26,    65,    -1,    29,    30,    31,    -1,
    3795       -1,    72,    73,    -1,    37,    -1,    -1,    -1,    -1,   109,
    3796       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
    3797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3798       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,   109,    72,
    3799       73,    -1,    -1,    -1,    -1,    -1,   117,    10,    11,    12,
    3800       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3801       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3802       -1,    -1,    -1,    -1,    37,    -1,   109,    -1,    -1,    -1,
    3803       -1,    -1,    -1,    -1,   117,    10,    11,    12,    13,    14,
    3804       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3805       25,    26,    65,    -1,    29,    30,    31,    -1,    -1,    72,
    3806       73,    -1,    37,    -1,    10,    11,    12,    13,    14,    15,
    3807       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3808       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3809       65,    37,    -1,    -1,    -1,    -1,   109,    72,    73,    -1,
    3810       -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    3811       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3812       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3813       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3814       -1,    -1,   117,    -1,    -1,    10,    11,    12,    13,    14,
    3815       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3816       25,    26,    -1,   109,    29,    30,    31,    -1,    -1,    -1,
    3817       -1,   117,    37,    -1,    10,    11,    12,    13,    14,    15,
    3818       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3819       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3820       65,    37,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
    3821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3823       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3824       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
    3825       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3827       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
    3828       -1,   117,     4,     5,     6,     7,     8,     9,    10,    11,
    3829       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3830       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3831       -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    36,    -1,
    3832       38,    39,    -1,    41,    -1,    -1,    44,    45,    46,    47,
    3833       48,    49,    50,    51,    -1,    -1,    54,    55,    -1,    -1,
    3834       -1,    59,    60,    65,    62,    67,    64,    69,    -1,    -1,
    3835       72,    73,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,
    3836       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3837       -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,
    3838       -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,   107,
    3839       -1,   109,    -1,    -1,   112,    -1,    -1,    -1,   116,   117,
    3840      118,   119,   120,   121,    -1,    -1,    -1,    -1,   126,    -1,
    3841       -1,    36,   130,    38,    39,    -1,    41,    -1,    -1,    44,
    3842       45,    46,    47,    48,    49,    50,    51,    -1,    -1,    -1,
    3843       55,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
    3844       -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,
    3845       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3846       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
    3847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3848       -1,    -1,   107,    -1,   109,    -1,    -1,   112,    -1,    -1,
    3849       -1,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
    3850       -1,   126,    -1,    -1,    36,   130,    38,    39,    -1,    41,
    3851       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
    3852       -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
    3853       62,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3854       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3855       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    3856       92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3857       -1,    -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,
    3858      112,    -1,    -1,    -1,   116,   117,   118,   119,   120,   121,
    3859       36,    -1,    38,    39,   126,    41,    42,    43,    44,    45,
    3860       46,    47,    48,    49,    50,    51,    -1,    -1,    -1,    55,
    3861       -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,
    3862       -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,    -1,
    3863       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3864       -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,
    3865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3866       -1,   107,    -1,   109,    -1,    -1,   112,    -1,    -1,    -1,
    3867      116,   117,   118,   119,   120,   121,    36,    -1,    38,    39,
    3868      126,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
    3869       50,    51,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
    3870       60,    -1,    62,    -1,    64,    -1,    -1,    -1,    -1,    -1,
    3871       70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,    79,
    3872       80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,
    3873       -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3874       -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,
    3875       -1,    -1,   112,    -1,    -1,    -1,   116,   117,   118,   119,
    3876      120,   121,    -1,    -1,    -1,    -1,   126,     4,     5,     6,
    3877        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3878       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3879       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3880       37,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
    3881       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3882       -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    65,    -1,
    3883       67,    64,    69,    -1,    -1,    72,    73,    70,    -1,    -1,
    3884       -1,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3885       64,    84,    85,    -1,    -1,    -1,    70,    94,    -1,    92,
    3886       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3887       84,    85,    -1,    -1,   107,    -1,   109,    -1,    92,    -1,
    3888       36,   114,    38,   116,   117,   118,   119,   120,   121,    -1,
    3889       -1,    -1,    -1,   107,    -1,   109,    -1,    -1,   112,    36,
    3890       -1,    38,   116,   117,   118,   119,   120,   121,    64,    -1,
    3891       -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,    -1,
    3892       -1,    77,    78,    79,    80,    81,    82,    64,    84,    85,
    3893       -1,    -1,    -1,    70,    -1,    -1,    92,    74,    -1,    -1,
    3894       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3895       -1,   107,    -1,   109,    -1,    92,    -1,    36,    -1,    38,
    3896      116,   117,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
    3897      107,    -1,   109,    -1,    -1,    -1,    36,    -1,    38,   116,
    3898      117,   118,   119,   120,   121,    64,    -1,    -1,    -1,    -1,
    3899       -1,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,
    3900       79,    80,    81,    82,    64,    84,    85,    -1,    -1,    -1,
    3901       70,    -1,    -1,    92,    74,    -1,    -1,    77,    78,    79,
    3902       80,    81,    82,    -1,    84,    85,    -1,    -1,   107,    -1,
    3903      109,    -1,    92,    -1,    36,    -1,    38,   116,   117,   118,
    3904      119,   120,   121,    -1,    -1,    -1,    -1,   107,    -1,   109,
    3905       -1,    -1,    -1,    36,    -1,    38,   116,   117,   118,   119,
    3906      120,   121,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3907       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3908       82,    64,    84,    85,    -1,    -1,    -1,    70,    -1,    -1,
    3909       92,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3910       -1,    84,    85,    -1,    -1,   107,    -1,    -1,    -1,    92,
    3911       -1,    36,    -1,    38,   116,   117,   118,   119,   120,   121,
    3912       -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,
    3913       -1,    -1,    -1,   116,   117,   118,   119,   120,   121,    64,
    3914       -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,
    3915       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3916       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
    3917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3918       -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3919       -1,   116,   117,   118,   119,   120,   121,     4,     5,     6,
    3920        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3921       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3923       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3926       67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3927       -1,    -1,    -1,    -1,    81,    82,     3,     4,     5,     6,
    3928        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3929       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3930       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3931       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3934       67,    -1,    69,    -1,    -1,    72,    73,     3,     4,     5,
    3935        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3936       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3937       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3938       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3939       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3940       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3941       -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,     5,
    3942        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3943       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3944       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3945       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3946       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3947       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3948       -1,    67,    -1,    69,    -1,    -1,    72,    73
     3979      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74
    39493980};
    39503981
     
    39563987      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    39573988      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    3958       37,    38,    62,    65,    67,    69,    70,    72,    73,    74,
    3959       81,    82,   107,   109,   117,   135,   138,   195,   209,   210,
    3960      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
    3961      221,   222,   223,   224,   225,   226,   228,   229,   230,   231,
    3962      232,   233,   234,   235,   237,   238,   239,   240,   241,   242,
    3963      243,   251,   252,   278,   279,   280,   288,   291,   297,   298,
    3964      300,   302,   303,   309,   314,   318,   319,   320,   321,   322,
    3965      323,   324,   325,   345,   362,   363,   364,   365,    70,   117,
    3966      137,   212,   214,   222,   224,   234,   238,   240,   279,    80,
    3967      107,   307,   308,   309,   307,   307,    70,    72,    73,    74,
    3968      136,   137,   268,   269,   289,   290,    72,    73,   269,   107,
    3969      300,    11,   196,   107,   117,   314,   319,   320,   321,   323,
    3970      324,   325,   110,   132,   109,   215,   222,   224,   318,   322,
    3971      361,   362,   365,   366,   133,   105,   129,   272,   112,   133,
    3972      170,    72,    73,   135,   267,   133,   133,   133,   114,   133,
    3973       72,    73,   107,   117,   304,   313,   314,   315,   316,   317,
    3974      318,   322,   326,   327,   328,   329,   330,   336,     3,    27,
    3975       76,   236,     3,     5,    72,   109,   117,   214,   225,   229,
    3976      232,   241,   280,   318,   322,   365,   212,   214,   224,   234,
    3977      238,   240,   279,   318,   322,    32,   230,   230,   225,   232,
    3978      133,   230,   225,   230,   225,    73,   107,   112,   269,   280,
    3979      112,   269,   230,   225,   114,   133,   133,     0,   132,   107,
    3980      170,   307,   307,   132,   109,   222,   224,   363,   267,   267,
    3981      224,   129,   107,   117,   304,   314,   318,   109,   117,   365,
    3982      301,   227,   309,   107,   285,   107,   107,    49,   107,    36,
    3983       38,    64,    70,    74,    77,    78,    79,    80,    84,    85,
    3984       92,   107,   109,   116,   117,   118,   119,   120,   121,   134,
    3985      138,   139,   140,   141,   146,   147,   148,   149,   150,   151,
    3986      152,   153,   154,   155,   156,   157,   158,   159,   161,   163,
    3987      222,   271,   287,   361,   366,   224,   108,   108,   108,   108,
    3988      108,   108,   108,    72,    73,   109,   222,   267,   345,   363,
    3989      109,   117,   161,   214,   215,   221,   224,   228,   229,   234,
    3990      237,   238,   240,   257,   258,   262,   263,   264,   265,   279,
    3991      345,   357,   358,   359,   360,   365,   366,   110,   107,   318,
    3992      322,   365,   107,   114,   130,   109,   112,   117,   161,   273,
    3993      273,   113,   132,   114,   130,   107,   114,   130,   114,   130,
    3994      114,   130,   307,   130,   314,   315,   316,   317,   327,   328,
    3995      329,   330,   224,   313,   326,    62,   306,   109,   307,   344,
    3996      345,   307,   307,   170,   132,   107,   307,   344,   307,   307,
    3997      224,   304,   107,   107,   223,   224,   222,   224,   110,   132,
    3998      222,   361,   366,   170,   132,   267,   272,   214,   229,   318,
    3999      322,   170,   132,   289,   224,   234,   130,   224,   224,   287,
    4000       38,   109,   222,   244,   245,   246,   247,   361,   365,   112,
    4001      253,   269,   112,   224,   289,   130,   130,   300,   132,   137,
    4002      266,     3,   133,   204,   205,   219,   221,   224,   132,   306,
    4003      107,   306,   161,   314,   224,   107,   132,   267,   112,    32,
    4004       33,    34,   222,   281,   282,   284,   132,   127,   129,   286,
    4005      132,   225,   231,   232,   267,   310,   311,   312,   107,   139,
    4006      107,   146,   146,   148,   107,   146,   107,   107,   146,   146,
    4007      137,   109,   161,   166,   170,   222,   270,   361,   110,   132,
    4008      148,   148,    80,    83,    84,    85,   107,   109,   111,   112,
    4009       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    4010      129,   165,   148,   117,   122,   123,   119,   120,    86,    87,
    4011       88,    89,   124,   125,    90,    91,   118,   126,   127,    92,
    4012       93,   128,   129,   368,   107,   117,   340,   341,   342,   343,
    4013      344,   108,   114,   107,   344,   345,   107,   344,   345,   132,
    4014      107,   222,   363,   110,   132,   109,   117,   133,   222,   224,
    4015      356,   357,   365,   366,   133,   107,   109,   117,   314,   331,
    4016      332,   333,   334,   335,   336,   337,   338,   339,   345,   346,
    4017      347,   348,   349,   350,   351,   117,   365,   224,   133,   133,
    4018      117,   222,   224,   358,   267,   222,   345,   358,   267,   107,
    4019      132,   132,   132,   110,   132,    70,    78,   109,   111,   269,
    4020      273,   274,   275,   276,   277,   132,   132,   132,   132,   132,
    4021      132,   304,   108,   108,   108,   108,   108,   108,   108,   313,
    4022      326,   107,   272,   110,   204,   132,   304,   166,   271,   166,
    4023      271,   304,   109,   204,   306,   170,   132,   204,   108,   246,
    4024      247,   110,   132,   107,   115,   117,   248,   250,   313,   314,
    4025      326,   344,   352,   353,   354,   355,   113,   245,   114,   130,
    4026      114,   130,   269,   244,   114,   367,   129,   254,   253,   224,
    4027      259,   260,   261,   264,   265,   108,   114,   170,   132,   117,
    4028      161,   132,   221,   224,   258,   357,   365,   298,   299,   107,
    4029      117,   331,   108,   114,   368,   269,   281,   107,   112,   269,
    4030      271,   281,   108,   114,   107,   139,   108,   115,   270,   270,
    4031      109,   137,   143,   161,   271,   270,   110,   132,   108,   114,
    4032      108,   107,   117,   352,   108,   114,   161,   109,   137,   109,
    4033      142,   143,   132,   109,   137,   142,   161,   161,   148,   148,
    4034      148,   149,   149,   150,   150,   151,   151,   151,   151,   152,
    4035      152,   153,   154,   155,   156,   157,   115,   166,   161,   132,
    4036      341,   342,   343,   224,   340,   307,   307,   161,   271,   132,
    4037      266,   117,   132,   222,   345,   358,   224,   228,   110,   132,
    4038      110,   365,   110,   107,   132,   314,   332,   333,   334,   337,
    4039      347,   348,   349,   110,   132,   224,   331,   335,   346,   107,
    4040      307,   350,   368,   307,   307,   368,   107,   307,   350,   307,
    4041      307,   307,   307,   345,   222,   356,   366,   267,   110,   114,
    4042      110,   114,   368,   222,   358,   368,   255,   256,   257,   258,
    4043      255,   255,   267,   161,   132,   109,   269,   115,   114,   367,
    4044      273,    78,   109,   115,   277,    28,   206,   207,   267,   255,
    4045      137,   304,   137,   306,   107,   344,   345,   107,   344,   345,
    4046      139,   345,   170,   259,   108,   108,   108,   108,   110,   170,
    4047      204,   170,   112,   130,   130,   109,   314,   353,   354,   355,
    4048      159,   160,   224,   352,   249,   250,   249,   307,   307,   269,
    4049      307,   113,   269,   113,   160,   367,   133,   133,   137,   219,
    4050      133,   133,   255,   107,   117,   365,   133,   113,   224,   282,
    4051      283,   133,   132,   132,   107,   133,   108,   311,   166,   167,
    4052      115,   130,   109,   139,   197,   198,   199,   108,   108,   132,
    4053      115,   108,   108,   108,   161,   224,   112,   148,   163,   161,
    4054      162,   164,   114,   133,   132,   132,   108,   114,   161,   132,
    4055      113,   159,   115,   259,   108,   108,   108,   340,   259,   108,
    4056      255,   222,   358,   109,   117,   161,   161,   224,   337,   259,
    4057      108,   108,   108,   108,   108,   108,   108,     7,   224,   331,
    4058      335,   346,   132,   132,   368,   132,   132,   108,   133,   133,
    4059      133,   133,   272,   133,   159,   160,   161,   305,   132,   273,
    4060      275,   113,   132,   208,   269,    38,    39,    41,    44,    45,
    4061       46,    47,    48,    49,    50,    51,    55,    59,    60,   109,
    4062      126,   137,   167,   168,   169,   170,   171,   172,   174,   175,
    4063      187,   189,   190,   195,   209,   303,    28,   133,   129,   272,
    4064      132,   132,   108,   133,   170,   244,   110,   108,   108,   108,
    4065      352,   248,   254,   113,   108,   114,   110,   110,   133,   224,
    4066      114,   368,   285,   108,   281,   212,   214,   222,   293,   294,
    4067      295,   296,   287,   108,   108,   115,   160,   107,   108,   115,
    4068      114,   161,   161,   274,   114,   133,   164,   110,   137,   144,
    4069      145,   161,   143,   133,   144,   159,   163,   133,   107,   344,
    4070      345,   133,   133,   132,   133,   133,   133,   161,   108,   133,
    4071      107,   344,   345,   107,   350,   107,   350,   345,   223,     7,
    4072      117,   133,   161,   259,   259,   258,   262,   262,   263,   114,
    4073      114,   108,   108,   110,    94,   121,   133,   133,   144,   273,
    4074      161,   114,   130,   209,   213,   224,   228,   107,   107,   168,
    4075      107,   107,   130,   137,   130,   137,   117,   137,   167,   107,
    4076      170,   162,   162,   110,   141,   115,   130,   133,   132,   133,
    4077      208,   108,   161,   259,   259,   307,   108,   113,   107,   344,
    4078      345,   132,   108,   132,   133,   304,   113,   132,   133,   133,
    4079      108,   112,   197,   110,   160,   130,   197,   199,   114,   133,
    4080      367,   162,   110,   133,    83,   111,   114,   133,   133,   110,
    4081      133,   108,   132,   108,   108,   110,   110,   110,   133,   108,
    4082      132,   132,   132,   161,   161,   133,   110,   133,   133,   133,
    4083      133,   132,   132,   160,   160,   110,   110,   133,   133,   269,
    4084      224,   166,   166,    45,   166,   132,   130,   130,   166,   130,
    4085      130,   166,    56,    57,    58,   191,   192,   193,   130,    61,
    4086      130,   112,   307,   172,   113,   130,   133,   133,   132,    94,
    4087      264,   265,   108,   294,   114,   130,   114,   130,   113,   292,
    4088      115,   139,   108,   108,   115,   164,   110,   113,   110,   109,
    4089      145,   109,   145,   145,   110,   110,   110,   259,   110,   259,
    4090      259,   259,   133,   133,   110,   110,   108,   108,   110,   114,
    4091       94,   258,    94,   133,   110,   110,   108,   108,   107,   108,
    4092      167,   188,   209,   130,   108,   107,   107,   170,   193,    56,
    4093       57,   161,   142,   168,   108,   108,   259,   112,   132,   132,
    4094      293,   139,   200,   107,   130,   200,   133,   115,   132,   132,
    4095      133,   133,   133,   133,   110,   110,   132,   133,   110,   168,
    4096       42,    43,   112,   178,   179,   180,   166,   168,   133,   108,
    4097      167,   112,   180,    94,   132,    94,   132,   107,   107,   130,
    4098      113,   133,   132,   267,   304,   113,   114,   115,   160,   108,
    4099      110,   161,   144,   144,   108,   108,   108,   108,   262,    40,
    4100      160,   176,   177,   305,   115,   132,   168,   178,   108,   130,
    4101      168,   130,   132,   108,   132,   108,   132,    94,   132,    94,
    4102      132,   130,   108,   293,   139,   137,   201,   108,   130,   115,
    4103      133,   133,   168,    94,   114,   115,   133,   202,   203,   209,
    4104      130,   167,   167,   202,   170,   194,   222,   361,   170,   194,
    4105      108,   132,   108,   132,   113,   108,   114,   161,   110,   110,
    4106      160,   176,   179,   181,   182,   132,   130,   179,   183,   184,
    4107      133,   107,   117,   304,   352,   137,   133,   170,   194,   170,
    4108      194,   107,   130,   137,   168,   173,   113,   179,   209,   167,
    4109       54,   173,   186,   113,   179,   108,   224,   108,   133,   133,
    4110      287,   168,   173,   130,   185,   186,   173,   186,   170,   170,
    4111      108,   108,   108,   185,   133,   133,   170,   170,   133,   133
     3989      38,    39,    63,    66,    68,    70,    71,    73,    74,    75,
     3990      82,    83,   108,   110,   118,   136,   139,   196,   210,   211,
     3991     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     3992     222,   223,   224,   225,   226,   227,   229,   230,   231,   232,
     3993     233,   234,   235,   236,   238,   239,   240,   241,   242,   243,
     3994     244,   252,   253,   279,   280,   281,   289,   292,   298,   299,
     3995     301,   303,   304,   310,   315,   319,   320,   321,   322,   323,
     3996     324,   325,   326,   346,   363,   364,   365,   366,    71,   118,
     3997     138,   213,   215,   223,   225,   235,   239,   241,   280,    81,
     3998     108,   308,   309,   310,   308,   308,    71,    73,    74,    75,
     3999     137,   138,   269,   270,   290,   291,    73,    74,   270,   108,
     4000     301,    11,   197,   108,   118,   315,   320,   321,   322,   324,
     4001     325,   326,   111,   133,   110,   216,   223,   225,   319,   323,
     4002     362,   363,   366,   367,   134,   106,   130,   273,   113,   134,
     4003     171,    73,    74,   136,   268,   134,   134,   134,   115,   134,
     4004      73,    74,   108,   118,   305,   314,   315,   316,   317,   318,
     4005     319,   323,   327,   328,   329,   330,   331,   337,     3,    27,
     4006      77,   237,     3,     5,    73,   110,   118,   215,   226,   230,
     4007     233,   242,   281,   319,   323,   366,   213,   215,   225,   235,
     4008     239,   241,   280,   319,   323,    32,   231,   231,   226,   233,
     4009     134,   231,   226,   231,   226,    74,   108,   113,   270,   281,
     4010     113,   270,   231,   226,   115,   134,   134,     0,   133,   108,
     4011     171,   308,   308,   133,   110,   223,   225,   364,   268,   268,
     4012     225,   130,   108,   118,   305,   315,   319,   110,   118,   366,
     4013     302,   228,   310,   108,   286,   108,   108,    50,   108,    36,
     4014      37,    39,    65,    71,    75,    78,    79,    80,    81,    85,
     4015      86,    93,   108,   110,   117,   118,   119,   120,   121,   122,
     4016     135,   139,   140,   141,   142,   147,   148,   149,   150,   151,
     4017     152,   153,   154,   155,   156,   157,   158,   159,   160,   162,
     4018     164,   223,   272,   288,   362,   367,   225,   109,   109,   109,
     4019     109,   109,   109,   109,    73,    74,   110,   223,   268,   346,
     4020     364,   110,   118,   162,   215,   216,   222,   225,   229,   230,
     4021     235,   238,   239,   241,   258,   259,   263,   264,   265,   266,
     4022     280,   346,   358,   359,   360,   361,   366,   367,   111,   108,
     4023     319,   323,   366,   108,   115,   131,   110,   113,   118,   162,
     4024     274,   274,   114,   133,   115,   131,   108,   115,   131,   115,
     4025     131,   115,   131,   308,   131,   315,   316,   317,   318,   328,
     4026     329,   330,   331,   225,   314,   327,    63,   307,   110,   308,
     4027     345,   346,   308,   308,   171,   133,   108,   308,   345,   308,
     4028     308,   225,   305,   108,   108,   224,   225,   223,   225,   111,
     4029     133,   223,   362,   367,   171,   133,   268,   273,   215,   230,
     4030     319,   323,   171,   133,   290,   225,   235,   131,   225,   225,
     4031     288,    39,   110,   223,   245,   246,   247,   248,   362,   366,
     4032     113,   254,   270,   113,   225,   290,   131,   131,   301,   133,
     4033     138,   267,     3,   134,   205,   206,   220,   222,   225,   133,
     4034     307,   108,   307,   162,   315,   225,   108,   133,   268,   113,
     4035      32,    33,    34,   223,   282,   283,   285,   133,   128,   130,
     4036     287,   133,   226,   232,   233,   268,   311,   312,   313,   108,
     4037     140,   108,   147,   108,   147,   149,   108,   147,   108,   108,
     4038     147,   147,   138,   110,   162,   167,   171,   223,   271,   362,
     4039     111,   133,   149,   149,    81,    84,    85,    86,   108,   110,
     4040     112,   113,    96,    97,    98,    99,   100,   101,   102,   103,
     4041     104,   105,   130,   166,   149,   118,   123,   124,   120,   121,
     4042      87,    88,    89,    90,   125,   126,    91,    92,   119,   127,
     4043     128,    93,    94,   129,   130,   369,   108,   118,   341,   342,
     4044     343,   344,   345,   109,   115,   108,   345,   346,   108,   345,
     4045     346,   133,   108,   223,   364,   111,   133,   110,   118,   134,
     4046     223,   225,   357,   358,   366,   367,   134,   108,   110,   118,
     4047     315,   332,   333,   334,   335,   336,   337,   338,   339,   340,
     4048     346,   347,   348,   349,   350,   351,   352,   118,   366,   225,
     4049     134,   134,   118,   223,   225,   359,   268,   223,   346,   359,
     4050     268,   108,   133,   133,   133,   111,   133,    71,    79,   110,
     4051     112,   270,   274,   275,   276,   277,   278,   133,   133,   133,
     4052     133,   133,   133,   305,   109,   109,   109,   109,   109,   109,
     4053     109,   314,   327,   108,   273,   111,   205,   133,   305,   167,
     4054     272,   167,   272,   305,   110,   205,   307,   171,   133,   205,
     4055     109,   247,   248,   111,   133,   108,   116,   118,   249,   251,
     4056     314,   315,   327,   345,   353,   354,   355,   356,   114,   246,
     4057     115,   131,   115,   131,   270,   245,   115,   368,   130,   255,
     4058     254,   225,   260,   261,   262,   265,   266,   109,   115,   171,
     4059     133,   118,   162,   133,   222,   225,   259,   358,   366,   299,
     4060     300,   108,   118,   332,   109,   115,   369,   270,   282,   108,
     4061     113,   270,   272,   282,   109,   115,   108,   140,   109,   116,
     4062     271,   271,   271,   110,   138,   144,   162,   272,   271,   111,
     4063     133,   109,   115,   109,   108,   118,   353,   109,   115,   162,
     4064     110,   138,   110,   143,   144,   133,   110,   138,   143,   162,
     4065     162,   149,   149,   149,   150,   150,   151,   151,   152,   152,
     4066     152,   152,   153,   153,   154,   155,   156,   157,   158,   116,
     4067     167,   162,   133,   342,   343,   344,   225,   341,   308,   308,
     4068     162,   272,   133,   267,   118,   133,   223,   346,   359,   225,
     4069     229,   111,   133,   111,   366,   111,   108,   133,   315,   333,
     4070     334,   335,   338,   348,   349,   350,   111,   133,   225,   332,
     4071     336,   347,   108,   308,   351,   369,   308,   308,   369,   108,
     4072     308,   351,   308,   308,   308,   308,   346,   223,   357,   367,
     4073     268,   111,   115,   111,   115,   369,   223,   359,   369,   256,
     4074     257,   258,   259,   256,   256,   268,   162,   133,   110,   270,
     4075     116,   115,   368,   274,    79,   110,   116,   278,    28,   207,
     4076     208,   268,   256,   138,   305,   138,   307,   108,   345,   346,
     4077     108,   345,   346,   140,   346,   171,   260,   109,   109,   109,
     4078     109,   111,   171,   205,   171,   113,   131,   131,   110,   315,
     4079     354,   355,   356,   160,   161,   225,   353,   250,   251,   250,
     4080     308,   308,   270,   308,   114,   270,   114,   161,   368,   134,
     4081     134,   138,   220,   134,   134,   256,   108,   118,   366,   134,
     4082     114,   225,   283,   284,   134,   133,   133,   108,   134,   109,
     4083     312,   167,   168,   116,   131,   110,   140,   198,   199,   200,
     4084     109,   115,   109,   133,   116,   109,   109,   109,   162,   225,
     4085     113,   149,   164,   162,   163,   165,   115,   134,   133,   133,
     4086     109,   115,   162,   133,   114,   160,   116,   260,   109,   109,
     4087     109,   341,   260,   109,   256,   223,   359,   110,   118,   162,
     4088     162,   225,   338,   260,   109,   109,   109,   109,   109,   109,
     4089     109,     7,   225,   332,   336,   347,   133,   133,   369,   133,
     4090     133,   109,   134,   134,   134,   134,   273,   134,   160,   161,
     4091     162,   306,   133,   274,   276,   114,   133,   209,   270,    39,
     4092      40,    42,    45,    46,    47,    48,    49,    50,    51,    52,
     4093      56,    60,    61,   110,   127,   138,   168,   169,   170,   171,
     4094     172,   173,   175,   176,   188,   190,   191,   196,   210,   304,
     4095      28,   134,   130,   273,   133,   133,   109,   134,   171,   245,
     4096     111,   109,   109,   109,   353,   249,   255,   114,   109,   115,
     4097     111,   111,   134,   225,   115,   369,   286,   109,   282,   213,
     4098     215,   223,   294,   295,   296,   297,   288,   109,   109,   116,
     4099     161,   108,   109,   116,   115,   138,   162,   162,   275,   115,
     4100     134,   165,   111,   138,   145,   146,   162,   144,   134,   145,
     4101     160,   164,   134,   108,   345,   346,   134,   134,   133,   134,
     4102     134,   134,   162,   109,   134,   108,   345,   346,   108,   351,
     4103     108,   351,   346,   224,     7,   118,   134,   162,   260,   260,
     4104     259,   263,   263,   264,   115,   115,   109,   109,   111,    95,
     4105     122,   134,   134,   145,   274,   162,   115,   131,   210,   214,
     4106     225,   229,   108,   108,   169,   108,   108,   131,   138,   131,
     4107     138,   118,   138,   168,   108,   171,   163,   163,   111,   142,
     4108     116,   131,   134,   133,   134,   209,   109,   162,   260,   260,
     4109     308,   109,   114,   108,   345,   346,   133,   109,   133,   134,
     4110     305,   114,   133,   134,   134,   109,   113,   198,   111,   161,
     4111     131,   198,   200,   109,   115,   134,   368,   163,   111,   134,
     4112      84,   112,   115,   134,   134,   111,   134,   109,   133,   109,
     4113     109,   111,   111,   111,   134,   109,   133,   133,   133,   162,
     4114     162,   134,   111,   134,   134,   134,   134,   133,   133,   161,
     4115     161,   111,   111,   134,   134,   270,   225,   167,   167,    46,
     4116     167,   133,   131,   131,   167,   131,   131,   167,    57,    58,
     4117      59,   192,   193,   194,   131,    62,   131,   113,   308,   173,
     4118     114,   131,   134,   134,   133,    95,   265,   266,   109,   295,
     4119     115,   131,   115,   131,   114,   293,   116,   140,   109,   109,
     4120     116,   165,   111,   114,   111,   110,   146,   110,   146,   146,
     4121     111,   111,   111,   260,   111,   260,   260,   260,   134,   134,
     4122     111,   111,   109,   109,   111,   115,    95,   259,    95,   134,
     4123     111,   111,   109,   109,   108,   109,   168,   189,   210,   131,
     4124     109,   108,   108,   171,   194,    57,    58,   162,   143,   169,
     4125     109,   109,   260,   113,   133,   133,   294,   140,   201,   108,
     4126     131,   201,   134,   116,   133,   133,   134,   134,   134,   134,
     4127     111,   111,   133,   134,   111,   169,    43,    44,   113,   179,
     4128     180,   181,   167,   169,   134,   109,   168,   113,   181,    95,
     4129     133,    95,   133,   108,   108,   131,   114,   134,   133,   268,
     4130     305,   114,   115,   116,   161,   109,   111,   162,   145,   145,
     4131     109,   109,   109,   109,   263,    41,   161,   177,   178,   306,
     4132     116,   133,   169,   179,   109,   131,   169,   131,   133,   109,
     4133     133,   109,   133,    95,   133,    95,   133,   131,   109,   294,
     4134     140,   138,   202,   109,   131,   116,   134,   134,   169,    95,
     4135     115,   116,   134,   203,   204,   210,   131,   168,   168,   203,
     4136     171,   195,   223,   362,   171,   195,   109,   133,   109,   133,
     4137     114,   109,   115,   162,   111,   111,   161,   177,   180,   182,
     4138     183,   133,   131,   180,   184,   185,   134,   108,   118,   305,
     4139     353,   138,   134,   171,   195,   171,   195,   108,   131,   138,
     4140     169,   174,   114,   180,   210,   168,    55,   174,   187,   114,
     4141     180,   109,   225,   109,   134,   134,   288,   169,   174,   131,
     4142     186,   187,   174,   187,   171,   171,   109,   109,   109,   186,
     4143     134,   134,   171,   171,   134,   134
    41124144};
    41134145
     
    52345266/* Line 1806 of yacc.c  */
    52355267#line 446 "parser.yy"
     5268    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
     5269    break;
     5270
     5271  case 58:
     5272
     5273/* Line 1806 of yacc.c  */
     5274#line 448 "parser.yy"
    52365275    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    52375276    break;
    52385277
    5239   case 58:
    5240 
    5241 /* Line 1806 of yacc.c  */
    5242 #line 448 "parser.yy"
     5278  case 59:
     5279
     5280/* Line 1806 of yacc.c  */
     5281#line 450 "parser.yy"
    52435282    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52445283    break;
    52455284
    5246   case 59:
    5247 
    5248 /* Line 1806 of yacc.c  */
    5249 #line 450 "parser.yy"
     5285  case 60:
     5286
     5287/* Line 1806 of yacc.c  */
     5288#line 452 "parser.yy"
    52505289    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    52515290    break;
    52525291
    5253   case 60:
    5254 
    5255 /* Line 1806 of yacc.c  */
    5256 #line 452 "parser.yy"
     5292  case 61:
     5293
     5294/* Line 1806 of yacc.c  */
     5295#line 454 "parser.yy"
    52575296    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    52585297    break;
    52595298
    5260   case 61:
    5261 
    5262 /* Line 1806 of yacc.c  */
    5263 #line 454 "parser.yy"
     5299  case 62:
     5300
     5301/* Line 1806 of yacc.c  */
     5302#line 456 "parser.yy"
    52645303    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    52655304    break;
    52665305
    5267   case 62:
    5268 
    5269 /* Line 1806 of yacc.c  */
    5270 #line 456 "parser.yy"
     5306  case 63:
     5307
     5308/* Line 1806 of yacc.c  */
     5309#line 458 "parser.yy"
    52715310    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    52725311    break;
    52735312
    5274   case 63:
    5275 
    5276 /* Line 1806 of yacc.c  */
    5277 #line 460 "parser.yy"
     5313  case 64:
     5314
     5315/* Line 1806 of yacc.c  */
     5316#line 462 "parser.yy"
    52785317    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    52795318    break;
    52805319
    5281   case 64:
    5282 
    5283 /* Line 1806 of yacc.c  */
    5284 #line 461 "parser.yy"
     5320  case 65:
     5321
     5322/* Line 1806 of yacc.c  */
     5323#line 463 "parser.yy"
    52855324    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    52865325    break;
    52875326
    5288   case 65:
    5289 
    5290 /* Line 1806 of yacc.c  */
    5291 #line 462 "parser.yy"
     5327  case 66:
     5328
     5329/* Line 1806 of yacc.c  */
     5330#line 464 "parser.yy"
    52925331    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    52935332    break;
    52945333
    5295   case 66:
    5296 
    5297 /* Line 1806 of yacc.c  */
    5298 #line 463 "parser.yy"
     5334  case 67:
     5335
     5336/* Line 1806 of yacc.c  */
     5337#line 465 "parser.yy"
    52995338    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    5300     break;
    5301 
    5302   case 68:
    5303 
    5304 /* Line 1806 of yacc.c  */
    5305 #line 469 "parser.yy"
    5306     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    53075339    break;
    53085340
     
    53145346    break;
    53155347
    5316   case 71:
    5317 
    5318 /* Line 1806 of yacc.c  */
    5319 #line 477 "parser.yy"
     5348  case 70:
     5349
     5350/* Line 1806 of yacc.c  */
     5351#line 473 "parser.yy"
     5352    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5353    break;
     5354
     5355  case 72:
     5356
     5357/* Line 1806 of yacc.c  */
     5358#line 479 "parser.yy"
    53205359    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53215360    break;
    53225361
    5323   case 72:
    5324 
    5325 /* Line 1806 of yacc.c  */
    5326 #line 479 "parser.yy"
     5362  case 73:
     5363
     5364/* Line 1806 of yacc.c  */
     5365#line 481 "parser.yy"
    53275366    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53285367    break;
    53295368
    5330   case 73:
    5331 
    5332 /* Line 1806 of yacc.c  */
    5333 #line 481 "parser.yy"
     5369  case 74:
     5370
     5371/* Line 1806 of yacc.c  */
     5372#line 483 "parser.yy"
    53345373    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53355374    break;
    53365375
    5337   case 75:
    5338 
    5339 /* Line 1806 of yacc.c  */
    5340 #line 487 "parser.yy"
     5376  case 76:
     5377
     5378/* Line 1806 of yacc.c  */
     5379#line 489 "parser.yy"
    53415380    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53425381    break;
    53435382
    5344   case 76:
    5345 
    5346 /* Line 1806 of yacc.c  */
    5347 #line 489 "parser.yy"
     5383  case 77:
     5384
     5385/* Line 1806 of yacc.c  */
     5386#line 491 "parser.yy"
    53485387    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53495388    break;
    53505389
    5351   case 78:
    5352 
    5353 /* Line 1806 of yacc.c  */
    5354 #line 495 "parser.yy"
     5390  case 79:
     5391
     5392/* Line 1806 of yacc.c  */
     5393#line 497 "parser.yy"
    53555394    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53565395    break;
    53575396
    5358   case 79:
    5359 
    5360 /* Line 1806 of yacc.c  */
    5361 #line 497 "parser.yy"
     5397  case 80:
     5398
     5399/* Line 1806 of yacc.c  */
     5400#line 499 "parser.yy"
    53625401    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53635402    break;
    53645403
    5365   case 81:
    5366 
    5367 /* Line 1806 of yacc.c  */
    5368 #line 503 "parser.yy"
     5404  case 82:
     5405
     5406/* Line 1806 of yacc.c  */
     5407#line 505 "parser.yy"
    53695408    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53705409    break;
    53715410
    5372   case 82:
    5373 
    5374 /* Line 1806 of yacc.c  */
    5375 #line 505 "parser.yy"
     5411  case 83:
     5412
     5413/* Line 1806 of yacc.c  */
     5414#line 507 "parser.yy"
    53765415    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53775416    break;
    53785417
    5379   case 83:
    5380 
    5381 /* Line 1806 of yacc.c  */
    5382 #line 507 "parser.yy"
     5418  case 84:
     5419
     5420/* Line 1806 of yacc.c  */
     5421#line 509 "parser.yy"
    53835422    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53845423    break;
    53855424
    5386   case 84:
    5387 
    5388 /* Line 1806 of yacc.c  */
    5389 #line 509 "parser.yy"
     5425  case 85:
     5426
     5427/* Line 1806 of yacc.c  */
     5428#line 511 "parser.yy"
    53905429    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53915430    break;
    53925431
    5393   case 86:
    5394 
    5395 /* Line 1806 of yacc.c  */
    5396 #line 515 "parser.yy"
     5432  case 87:
     5433
     5434/* Line 1806 of yacc.c  */
     5435#line 517 "parser.yy"
    53975436    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53985437    break;
    53995438
    5400   case 87:
    5401 
    5402 /* Line 1806 of yacc.c  */
    5403 #line 517 "parser.yy"
     5439  case 88:
     5440
     5441/* Line 1806 of yacc.c  */
     5442#line 519 "parser.yy"
    54045443    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54055444    break;
    54065445
    5407   case 89:
    5408 
    5409 /* Line 1806 of yacc.c  */
    5410 #line 523 "parser.yy"
     5446  case 90:
     5447
     5448/* Line 1806 of yacc.c  */
     5449#line 525 "parser.yy"
    54115450    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54125451    break;
    54135452
    5414   case 91:
    5415 
    5416 /* Line 1806 of yacc.c  */
    5417 #line 529 "parser.yy"
     5453  case 92:
     5454
     5455/* Line 1806 of yacc.c  */
     5456#line 531 "parser.yy"
    54185457    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54195458    break;
    54205459
    5421   case 93:
    5422 
    5423 /* Line 1806 of yacc.c  */
    5424 #line 535 "parser.yy"
     5460  case 94:
     5461
     5462/* Line 1806 of yacc.c  */
     5463#line 537 "parser.yy"
    54255464    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54265465    break;
    54275466
    5428   case 95:
    5429 
    5430 /* Line 1806 of yacc.c  */
    5431 #line 541 "parser.yy"
     5467  case 96:
     5468
     5469/* Line 1806 of yacc.c  */
     5470#line 543 "parser.yy"
    54325471    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54335472    break;
    54345473
    5435   case 97:
    5436 
    5437 /* Line 1806 of yacc.c  */
    5438 #line 547 "parser.yy"
     5474  case 98:
     5475
     5476/* Line 1806 of yacc.c  */
     5477#line 549 "parser.yy"
    54395478    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54405479    break;
    54415480
    5442   case 99:
    5443 
    5444 /* Line 1806 of yacc.c  */
    5445 #line 553 "parser.yy"
     5481  case 100:
     5482
     5483/* Line 1806 of yacc.c  */
     5484#line 555 "parser.yy"
    54465485    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    54475486    break;
    54485487
    5449   case 100:
    5450 
    5451 /* Line 1806 of yacc.c  */
    5452 #line 555 "parser.yy"
     5488  case 101:
     5489
     5490/* Line 1806 of yacc.c  */
     5491#line 557 "parser.yy"
    54535492    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    54545493    break;
    54555494
    5456   case 101:
    5457 
    5458 /* Line 1806 of yacc.c  */
    5459 #line 557 "parser.yy"
     5495  case 102:
     5496
     5497/* Line 1806 of yacc.c  */
     5498#line 559 "parser.yy"
    54605499    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    54615500    break;
    54625501
    5463   case 104:
    5464 
    5465 /* Line 1806 of yacc.c  */
    5466 #line 568 "parser.yy"
     5502  case 105:
     5503
     5504/* Line 1806 of yacc.c  */
     5505#line 570 "parser.yy"
    54675506    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54685507    break;
    54695508
    5470   case 105:
    5471 
    5472 /* Line 1806 of yacc.c  */
    5473 #line 570 "parser.yy"
     5509  case 106:
     5510
     5511/* Line 1806 of yacc.c  */
     5512#line 572 "parser.yy"
    54745513    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54755514    break;
    54765515
    5477   case 106:
    5478 
    5479 /* Line 1806 of yacc.c  */
    5480 #line 572 "parser.yy"
     5516  case 107:
     5517
     5518/* Line 1806 of yacc.c  */
     5519#line 574 "parser.yy"
    54815520    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    54825521    break;
    54835522
    5484   case 107:
    5485 
    5486 /* Line 1806 of yacc.c  */
    5487 #line 577 "parser.yy"
     5523  case 108:
     5524
     5525/* Line 1806 of yacc.c  */
     5526#line 579 "parser.yy"
    54885527    { (yyval.en) = new NullExprNode; }
    54895528    break;
    54905529
    5491   case 109:
    5492 
    5493 /* Line 1806 of yacc.c  */
    5494 #line 585 "parser.yy"
     5530  case 110:
     5531
     5532/* Line 1806 of yacc.c  */
     5533#line 587 "parser.yy"
    54955534    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    54965535    break;
    54975536
    5498   case 110:
    5499 
    5500 /* Line 1806 of yacc.c  */
    5501 #line 587 "parser.yy"
     5537  case 111:
     5538
     5539/* Line 1806 of yacc.c  */
     5540#line 589 "parser.yy"
    55025541    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    55035542    break;
    55045543
    5505   case 111:
    5506 
    5507 /* Line 1806 of yacc.c  */
    5508 #line 589 "parser.yy"
     5544  case 112:
     5545
     5546/* Line 1806 of yacc.c  */
     5547#line 591 "parser.yy"
    55095548    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    55105549    break;
    55115550
    5512   case 112:
    5513 
    5514 /* Line 1806 of yacc.c  */
    5515 #line 591 "parser.yy"
     5551  case 113:
     5552
     5553/* Line 1806 of yacc.c  */
     5554#line 593 "parser.yy"
    55165555    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    55175556    break;
    55185557
    5519   case 114:
    5520 
    5521 /* Line 1806 of yacc.c  */
    5522 #line 597 "parser.yy"
     5558  case 115:
     5559
     5560/* Line 1806 of yacc.c  */
     5561#line 599 "parser.yy"
    55235562    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    55245563    break;
    55255564
    5526   case 115:
    5527 
    5528 /* Line 1806 of yacc.c  */
    5529 #line 601 "parser.yy"
     5565  case 116:
     5566
     5567/* Line 1806 of yacc.c  */
     5568#line 603 "parser.yy"
    55305569    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    55315570    break;
    55325571
    5533   case 116:
    5534 
    5535 /* Line 1806 of yacc.c  */
    5536 #line 602 "parser.yy"
     5572  case 117:
     5573
     5574/* Line 1806 of yacc.c  */
     5575#line 604 "parser.yy"
    55375576    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    55385577    break;
    55395578
    5540   case 117:
    5541 
    5542 /* Line 1806 of yacc.c  */
    5543 #line 603 "parser.yy"
     5579  case 118:
     5580
     5581/* Line 1806 of yacc.c  */
     5582#line 605 "parser.yy"
    55445583    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    55455584    break;
    55465585
    5547   case 118:
    5548 
    5549 /* Line 1806 of yacc.c  */
    5550 #line 604 "parser.yy"
     5586  case 119:
     5587
     5588/* Line 1806 of yacc.c  */
     5589#line 606 "parser.yy"
    55515590    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    55525591    break;
    55535592
    5554   case 119:
    5555 
    5556 /* Line 1806 of yacc.c  */
    5557 #line 605 "parser.yy"
     5593  case 120:
     5594
     5595/* Line 1806 of yacc.c  */
     5596#line 607 "parser.yy"
    55585597    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    55595598    break;
    55605599
    5561   case 120:
    5562 
    5563 /* Line 1806 of yacc.c  */
    5564 #line 606 "parser.yy"
     5600  case 121:
     5601
     5602/* Line 1806 of yacc.c  */
     5603#line 608 "parser.yy"
    55655604    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    55665605    break;
    55675606
    5568   case 121:
    5569 
    5570 /* Line 1806 of yacc.c  */
    5571 #line 607 "parser.yy"
     5607  case 122:
     5608
     5609/* Line 1806 of yacc.c  */
     5610#line 609 "parser.yy"
    55725611    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    55735612    break;
    55745613
    5575   case 122:
    5576 
    5577 /* Line 1806 of yacc.c  */
    5578 #line 608 "parser.yy"
     5614  case 123:
     5615
     5616/* Line 1806 of yacc.c  */
     5617#line 610 "parser.yy"
    55795618    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    55805619    break;
    55815620
    5582   case 123:
    5583 
    5584 /* Line 1806 of yacc.c  */
    5585 #line 609 "parser.yy"
     5621  case 124:
     5622
     5623/* Line 1806 of yacc.c  */
     5624#line 611 "parser.yy"
    55865625    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    55875626    break;
    55885627
    5589   case 124:
    5590 
    5591 /* Line 1806 of yacc.c  */
    5592 #line 610 "parser.yy"
     5628  case 125:
     5629
     5630/* Line 1806 of yacc.c  */
     5631#line 612 "parser.yy"
    55935632    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    55945633    break;
    55955634
    5596   case 126:
    5597 
    5598 /* Line 1806 of yacc.c  */
    5599 #line 616 "parser.yy"
     5635  case 127:
     5636
     5637/* Line 1806 of yacc.c  */
     5638#line 618 "parser.yy"
    56005639    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56015640    break;
    56025641
    5603   case 127:
    5604 
    5605 /* Line 1806 of yacc.c  */
    5606 #line 621 "parser.yy"
     5642  case 128:
     5643
     5644/* Line 1806 of yacc.c  */
     5645#line 623 "parser.yy"
    56075646    { (yyval.en) = 0; }
    56085647    break;
    56095648
    5610   case 131:
    5611 
    5612 /* Line 1806 of yacc.c  */
    5613 #line 630 "parser.yy"
     5649  case 132:
     5650
     5651/* Line 1806 of yacc.c  */
     5652#line 632 "parser.yy"
    56145653    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56155654    break;
    56165655
    5617   case 137:
    5618 
    5619 /* Line 1806 of yacc.c  */
    5620 #line 637 "parser.yy"
     5656  case 138:
     5657
     5658/* Line 1806 of yacc.c  */
     5659#line 639 "parser.yy"
    56215660    {
    56225661                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    56265665    break;
    56275666
    5628   case 138:
    5629 
    5630 /* Line 1806 of yacc.c  */
    5631 #line 646 "parser.yy"
     5667  case 139:
     5668
     5669/* Line 1806 of yacc.c  */
     5670#line 648 "parser.yy"
    56325671    {
    56335672                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56355674    break;
    56365675
    5637   case 139:
    5638 
    5639 /* Line 1806 of yacc.c  */
    5640 #line 653 "parser.yy"
     5676  case 140:
     5677
     5678/* Line 1806 of yacc.c  */
     5679#line 655 "parser.yy"
    56415680    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    56425681    break;
    56435682
    5644   case 140:
    5645 
    5646 /* Line 1806 of yacc.c  */
    5647 #line 660 "parser.yy"
     5683  case 141:
     5684
     5685/* Line 1806 of yacc.c  */
     5686#line 662 "parser.yy"
    56485687    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    56495688    break;
    56505689
    5651   case 142:
    5652 
    5653 /* Line 1806 of yacc.c  */
    5654 #line 666 "parser.yy"
     5690  case 143:
     5691
     5692/* Line 1806 of yacc.c  */
     5693#line 668 "parser.yy"
    56555694    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56565695    break;
    56575696
    5658   case 143:
    5659 
    5660 /* Line 1806 of yacc.c  */
    5661 #line 671 "parser.yy"
     5697  case 144:
     5698
     5699/* Line 1806 of yacc.c  */
     5700#line 673 "parser.yy"
    56625701    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56635702    break;
    56645703
    5665   case 144:
    5666 
    5667 /* Line 1806 of yacc.c  */
    5668 #line 673 "parser.yy"
     5704  case 145:
     5705
     5706/* Line 1806 of yacc.c  */
     5707#line 675 "parser.yy"
    56695708    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    56705709    break;
    56715710
    5672   case 145:
    5673 
    5674 /* Line 1806 of yacc.c  */
    5675 #line 675 "parser.yy"
     5711  case 146:
     5712
     5713/* Line 1806 of yacc.c  */
     5714#line 677 "parser.yy"
    56765715    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56775716    break;
    56785717
    5679   case 148:
    5680 
    5681 /* Line 1806 of yacc.c  */
    5682 #line 682 "parser.yy"
     5718  case 149:
     5719
     5720/* Line 1806 of yacc.c  */
     5721#line 684 "parser.yy"
    56835722    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    56845723    break;
    56855724
    5686   case 149:
    5687 
    5688 /* Line 1806 of yacc.c  */
    5689 #line 687 "parser.yy"
     5725  case 150:
     5726
     5727/* Line 1806 of yacc.c  */
     5728#line 689 "parser.yy"
    56905729    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    56915730    break;
    56925731
    5693   case 150:
    5694 
    5695 /* Line 1806 of yacc.c  */
    5696 #line 693 "parser.yy"
     5732  case 151:
     5733
     5734/* Line 1806 of yacc.c  */
     5735#line 695 "parser.yy"
    56975736    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    56985737    break;
    56995738
    5700   case 151:
    5701 
    5702 /* Line 1806 of yacc.c  */
    5703 #line 695 "parser.yy"
     5739  case 152:
     5740
     5741/* Line 1806 of yacc.c  */
     5742#line 697 "parser.yy"
    57045743    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57055744    break;
    57065745
    5707   case 152:
    5708 
    5709 /* Line 1806 of yacc.c  */
    5710 #line 697 "parser.yy"
     5746  case 153:
     5747
     5748/* Line 1806 of yacc.c  */
     5749#line 699 "parser.yy"
    57115750    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57125751    break;
    57135752
    5714   case 153:
    5715 
    5716 /* Line 1806 of yacc.c  */
    5717 #line 699 "parser.yy"
     5753  case 154:
     5754
     5755/* Line 1806 of yacc.c  */
     5756#line 701 "parser.yy"
    57185757    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57195758    break;
    57205759
    5721   case 154:
    5722 
    5723 /* Line 1806 of yacc.c  */
    5724 #line 704 "parser.yy"
     5760  case 155:
     5761
     5762/* Line 1806 of yacc.c  */
     5763#line 706 "parser.yy"
    57255764    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57265765    break;
    57275766
    5728   case 155:
    5729 
    5730 /* Line 1806 of yacc.c  */
    5731 #line 706 "parser.yy"
     5767  case 156:
     5768
     5769/* Line 1806 of yacc.c  */
     5770#line 708 "parser.yy"
    57325771    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57335772    break;
    57345773
    5735   case 156:
    5736 
    5737 /* Line 1806 of yacc.c  */
    5738 #line 713 "parser.yy"
     5774  case 157:
     5775
     5776/* Line 1806 of yacc.c  */
     5777#line 715 "parser.yy"
    57395778    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57405779    break;
    57415780
    5742   case 157:
    5743 
    5744 /* Line 1806 of yacc.c  */
    5745 #line 715 "parser.yy"
     5781  case 158:
     5782
     5783/* Line 1806 of yacc.c  */
     5784#line 717 "parser.yy"
    57465785    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57475786    break;
    57485787
    5749   case 160:
    5750 
    5751 /* Line 1806 of yacc.c  */
    5752 #line 722 "parser.yy"
     5788  case 161:
     5789
     5790/* Line 1806 of yacc.c  */
     5791#line 724 "parser.yy"
    57535792    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    57545793    break;
    57555794
    5756   case 161:
    5757 
    5758 /* Line 1806 of yacc.c  */
    5759 #line 726 "parser.yy"
     5795  case 162:
     5796
     5797/* Line 1806 of yacc.c  */
     5798#line 728 "parser.yy"
    57605799    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    57615800    break;
    57625801
    5763   case 162:
    5764 
    5765 /* Line 1806 of yacc.c  */
    5766 #line 727 "parser.yy"
     5802  case 163:
     5803
     5804/* Line 1806 of yacc.c  */
     5805#line 729 "parser.yy"
    57675806    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    57685807    break;
    57695808
    5770   case 164:
    5771 
    5772 /* Line 1806 of yacc.c  */
    5773 #line 733 "parser.yy"
     5809  case 165:
     5810
     5811/* Line 1806 of yacc.c  */
     5812#line 735 "parser.yy"
    57745813    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    57755814    break;
    57765815
    5777   case 165:
    5778 
    5779 /* Line 1806 of yacc.c  */
    5780 #line 737 "parser.yy"
     5816  case 166:
     5817
     5818/* Line 1806 of yacc.c  */
     5819#line 739 "parser.yy"
    57815820    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    57825821    break;
    57835822
    5784   case 166:
    5785 
    5786 /* Line 1806 of yacc.c  */
    5787 #line 742 "parser.yy"
     5823  case 167:
     5824
     5825/* Line 1806 of yacc.c  */
     5826#line 744 "parser.yy"
    57885827    { (yyval.sn) = 0; }
    57895828    break;
    57905829
    5791   case 168:
    5792 
    5793 /* Line 1806 of yacc.c  */
    5794 #line 748 "parser.yy"
     5830  case 169:
     5831
     5832/* Line 1806 of yacc.c  */
     5833#line 750 "parser.yy"
    57955834    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    57965835    break;
    57975836
    5798   case 169:
    5799 
    5800 /* Line 1806 of yacc.c  */
    5801 #line 750 "parser.yy"
     5837  case 170:
     5838
     5839/* Line 1806 of yacc.c  */
     5840#line 752 "parser.yy"
    58025841    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58035842    break;
    58045843
    5805   case 170:
    5806 
    5807 /* Line 1806 of yacc.c  */
    5808 #line 755 "parser.yy"
     5844  case 171:
     5845
     5846/* Line 1806 of yacc.c  */
     5847#line 757 "parser.yy"
    58095848    { (yyval.sn) = 0; }
    58105849    break;
    58115850
    5812   case 172:
    5813 
    5814 /* Line 1806 of yacc.c  */
    5815 #line 761 "parser.yy"
     5851  case 173:
     5852
     5853/* Line 1806 of yacc.c  */
     5854#line 763 "parser.yy"
    58165855    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58175856    break;
    58185857
    5819   case 173:
    5820 
    5821 /* Line 1806 of yacc.c  */
    5822 #line 763 "parser.yy"
     5858  case 174:
     5859
     5860/* Line 1806 of yacc.c  */
     5861#line 765 "parser.yy"
    58235862    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    58245863    break;
    58255864
    5826   case 174:
    5827 
    5828 /* Line 1806 of yacc.c  */
    5829 #line 765 "parser.yy"
     5865  case 175:
     5866
     5867/* Line 1806 of yacc.c  */
     5868#line 767 "parser.yy"
    58305869    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58315870    break;
    58325871
    5833   case 175:
    5834 
    5835 /* Line 1806 of yacc.c  */
    5836 #line 767 "parser.yy"
     5872  case 176:
     5873
     5874/* Line 1806 of yacc.c  */
     5875#line 769 "parser.yy"
    58375876    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    58385877    break;
    58395878
    5840   case 176:
    5841 
    5842 /* Line 1806 of yacc.c  */
    5843 #line 772 "parser.yy"
     5879  case 177:
     5880
     5881/* Line 1806 of yacc.c  */
     5882#line 774 "parser.yy"
    58445883    { (yyval.sn) = 0; }
    58455884    break;
    58465885
    5847   case 178:
    5848 
    5849 /* Line 1806 of yacc.c  */
    5850 #line 777 "parser.yy"
     5886  case 179:
     5887
     5888/* Line 1806 of yacc.c  */
     5889#line 779 "parser.yy"
    58515890    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58525891    break;
    58535892
    5854   case 179:
    5855 
    5856 /* Line 1806 of yacc.c  */
    5857 #line 778 "parser.yy"
     5893  case 180:
     5894
     5895/* Line 1806 of yacc.c  */
     5896#line 780 "parser.yy"
    58585897    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58595898    break;
    58605899
    5861   case 180:
    5862 
    5863 /* Line 1806 of yacc.c  */
    5864 #line 783 "parser.yy"
     5900  case 181:
     5901
     5902/* Line 1806 of yacc.c  */
     5903#line 785 "parser.yy"
    58655904    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58665905    break;
    58675906
    5868   case 181:
    5869 
    5870 /* Line 1806 of yacc.c  */
    5871 #line 785 "parser.yy"
     5907  case 182:
     5908
     5909/* Line 1806 of yacc.c  */
     5910#line 787 "parser.yy"
    58725911    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    58735912    break;
    58745913
    5875   case 182:
    5876 
    5877 /* Line 1806 of yacc.c  */
    5878 #line 787 "parser.yy"
     5914  case 183:
     5915
     5916/* Line 1806 of yacc.c  */
     5917#line 789 "parser.yy"
    58795918    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    58805919    break;
    58815920
    5882   case 183:
    5883 
    5884 /* Line 1806 of yacc.c  */
    5885 #line 792 "parser.yy"
     5921  case 184:
     5922
     5923/* Line 1806 of yacc.c  */
     5924#line 794 "parser.yy"
    58865925    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    58875926    break;
    58885927
    5889   case 184:
    5890 
    5891 /* Line 1806 of yacc.c  */
    5892 #line 794 "parser.yy"
     5928  case 185:
     5929
     5930/* Line 1806 of yacc.c  */
     5931#line 796 "parser.yy"
    58935932    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    58945933    break;
    58955934
    5896   case 185:
    5897 
    5898 /* Line 1806 of yacc.c  */
    5899 #line 799 "parser.yy"
     5935  case 186:
     5936
     5937/* Line 1806 of yacc.c  */
     5938#line 801 "parser.yy"
    59005939    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59015940    break;
    59025941
    5903   case 186:
    5904 
    5905 /* Line 1806 of yacc.c  */
    5906 #line 803 "parser.yy"
     5942  case 187:
     5943
     5944/* Line 1806 of yacc.c  */
     5945#line 805 "parser.yy"
    59075946    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59085947    break;
    59095948
    5910   case 187:
    5911 
    5912 /* Line 1806 of yacc.c  */
    5913 #line 806 "parser.yy"
     5949  case 188:
     5950
     5951/* Line 1806 of yacc.c  */
     5952#line 808 "parser.yy"
    59145953    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59155954    break;
    59165955
    5917   case 188:
    5918 
    5919 /* Line 1806 of yacc.c  */
    5920 #line 810 "parser.yy"
     5956  case 189:
     5957
     5958/* Line 1806 of yacc.c  */
     5959#line 812 "parser.yy"
    59215960    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59225961    break;
    59235962
    5924   case 189:
    5925 
    5926 /* Line 1806 of yacc.c  */
    5927 #line 813 "parser.yy"
     5963  case 190:
     5964
     5965/* Line 1806 of yacc.c  */
     5966#line 815 "parser.yy"
    59285967    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59295968    break;
    59305969
    5931   case 190:
    5932 
    5933 /* Line 1806 of yacc.c  */
    5934 #line 817 "parser.yy"
     5970  case 191:
     5971
     5972/* Line 1806 of yacc.c  */
     5973#line 819 "parser.yy"
    59355974    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59365975    break;
    59375976
    5938   case 191:
    5939 
    5940 /* Line 1806 of yacc.c  */
    5941 #line 819 "parser.yy"
     5977  case 192:
     5978
     5979/* Line 1806 of yacc.c  */
     5980#line 821 "parser.yy"
    59425981    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    59435982    break;
    59445983
    5945   case 192:
    5946 
    5947 /* Line 1806 of yacc.c  */
    5948 #line 821 "parser.yy"
     5984  case 193:
     5985
     5986/* Line 1806 of yacc.c  */
     5987#line 823 "parser.yy"
    59495988    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59505989    break;
    59515990
    5952   case 193:
    5953 
    5954 /* Line 1806 of yacc.c  */
    5955 #line 825 "parser.yy"
     5991  case 194:
     5992
     5993/* Line 1806 of yacc.c  */
     5994#line 827 "parser.yy"
    59565995    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59575996    break;
    59585997
    5959   case 194:
    5960 
    5961 /* Line 1806 of yacc.c  */
    5962 #line 827 "parser.yy"
     5998  case 195:
     5999
     6000/* Line 1806 of yacc.c  */
     6001#line 829 "parser.yy"
    59636002    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    5964     break;
    5965 
    5966   case 195:
    5967 
    5968 /* Line 1806 of yacc.c  */
    5969 #line 834 "parser.yy"
    5970     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    59716003    break;
    59726004
     
    59826014/* Line 1806 of yacc.c  */
    59836015#line 838 "parser.yy"
     6016    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6017    break;
     6018
     6019  case 198:
     6020
     6021/* Line 1806 of yacc.c  */
     6022#line 840 "parser.yy"
    59846023    {
    59856024                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    59886027    break;
    59896028
    5990   case 199:
    5991 
    5992 /* Line 1806 of yacc.c  */
    5993 #line 849 "parser.yy"
     6029  case 200:
     6030
     6031/* Line 1806 of yacc.c  */
     6032#line 851 "parser.yy"
    59946033    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    59956034    break;
    59966035
    5997   case 200:
    5998 
    5999 /* Line 1806 of yacc.c  */
    6000 #line 851 "parser.yy"
     6036  case 201:
     6037
     6038/* Line 1806 of yacc.c  */
     6039#line 853 "parser.yy"
    60016040    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60026041    break;
    60036042
    6004   case 201:
    6005 
    6006 /* Line 1806 of yacc.c  */
    6007 #line 853 "parser.yy"
     6043  case 202:
     6044
     6045/* Line 1806 of yacc.c  */
     6046#line 855 "parser.yy"
    60086047    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60096048    break;
    60106049
    6011   case 202:
    6012 
    6013 /* Line 1806 of yacc.c  */
    6014 #line 855 "parser.yy"
     6050  case 203:
     6051
     6052/* Line 1806 of yacc.c  */
     6053#line 857 "parser.yy"
    60156054    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60166055    break;
    60176056
    6018   case 203:
    6019 
    6020 /* Line 1806 of yacc.c  */
    6021 #line 860 "parser.yy"
     6057  case 204:
     6058
     6059/* Line 1806 of yacc.c  */
     6060#line 862 "parser.yy"
    60226061    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60236062    break;
    60246063
    6025   case 204:
    6026 
    6027 /* Line 1806 of yacc.c  */
    6028 #line 862 "parser.yy"
     6064  case 205:
     6065
     6066/* Line 1806 of yacc.c  */
     6067#line 864 "parser.yy"
    60296068    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60306069    break;
    60316070
    6032   case 205:
    6033 
    6034 /* Line 1806 of yacc.c  */
    6035 #line 864 "parser.yy"
     6071  case 206:
     6072
     6073/* Line 1806 of yacc.c  */
     6074#line 866 "parser.yy"
    60366075    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60376076    break;
    60386077
    6039   case 206:
    6040 
    6041 /* Line 1806 of yacc.c  */
    6042 #line 866 "parser.yy"
     6078  case 207:
     6079
     6080/* Line 1806 of yacc.c  */
     6081#line 868 "parser.yy"
    60436082    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60446083    break;
    60456084
    6046   case 207:
    6047 
    6048 /* Line 1806 of yacc.c  */
    6049 #line 871 "parser.yy"
     6085  case 208:
     6086
     6087/* Line 1806 of yacc.c  */
     6088#line 873 "parser.yy"
    60506089    {
    60516090                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60546093    break;
    60556094
    6056   case 209:
    6057 
    6058 /* Line 1806 of yacc.c  */
    6059 #line 885 "parser.yy"
     6095  case 210:
     6096
     6097/* Line 1806 of yacc.c  */
     6098#line 887 "parser.yy"
    60606099    {
    60616100                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60646103    break;
    60656104
    6066   case 210:
    6067 
    6068 /* Line 1806 of yacc.c  */
    6069 #line 890 "parser.yy"
     6105  case 211:
     6106
     6107/* Line 1806 of yacc.c  */
     6108#line 892 "parser.yy"
    60706109    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60716110    break;
    60726111
    6073   case 211:
    6074 
    6075 /* Line 1806 of yacc.c  */
    6076 #line 892 "parser.yy"
     6112  case 212:
     6113
     6114/* Line 1806 of yacc.c  */
     6115#line 894 "parser.yy"
    60776116    {
    60786117                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60816120    break;
    60826121
    6083   case 213:
    6084 
    6085 /* Line 1806 of yacc.c  */
    6086 #line 901 "parser.yy"
     6122  case 214:
     6123
     6124/* Line 1806 of yacc.c  */
     6125#line 903 "parser.yy"
    60876126    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    60886127    break;
    60896128
    6090   case 214:
    6091 
    6092 /* Line 1806 of yacc.c  */
    6093 #line 903 "parser.yy"
     6129  case 215:
     6130
     6131/* Line 1806 of yacc.c  */
     6132#line 905 "parser.yy"
    60946133    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    60956134    break;
    60966135
    6097   case 215:
    6098 
    6099 /* Line 1806 of yacc.c  */
    6100 #line 905 "parser.yy"
     6136  case 216:
     6137
     6138/* Line 1806 of yacc.c  */
     6139#line 907 "parser.yy"
    61016140    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61026141    break;
    61036142
    6104   case 216:
    6105 
    6106 /* Line 1806 of yacc.c  */
    6107 #line 907 "parser.yy"
     6143  case 217:
     6144
     6145/* Line 1806 of yacc.c  */
     6146#line 909 "parser.yy"
    61086147    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    61096148    break;
    61106149
    6111   case 217:
    6112 
    6113 /* Line 1806 of yacc.c  */
    6114 #line 909 "parser.yy"
     6150  case 218:
     6151
     6152/* Line 1806 of yacc.c  */
     6153#line 911 "parser.yy"
    61156154    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    61166155    break;
    61176156
    6118   case 218:
    6119 
    6120 /* Line 1806 of yacc.c  */
    6121 #line 914 "parser.yy"
     6157  case 219:
     6158
     6159/* Line 1806 of yacc.c  */
     6160#line 916 "parser.yy"
    61226161    { (yyval.flag) = false; }
    61236162    break;
    61246163
    6125   case 219:
    6126 
    6127 /* Line 1806 of yacc.c  */
    6128 #line 916 "parser.yy"
     6164  case 220:
     6165
     6166/* Line 1806 of yacc.c  */
     6167#line 918 "parser.yy"
    61296168    { (yyval.flag) = true; }
    61306169    break;
    61316170
    6132   case 220:
    6133 
    6134 /* Line 1806 of yacc.c  */
    6135 #line 921 "parser.yy"
     6171  case 221:
     6172
     6173/* Line 1806 of yacc.c  */
     6174#line 923 "parser.yy"
    61366175    { (yyval.en) = 0; }
    61376176    break;
    61386177
    6139   case 223:
    6140 
    6141 /* Line 1806 of yacc.c  */
    6142 #line 928 "parser.yy"
     6178  case 224:
     6179
     6180/* Line 1806 of yacc.c  */
     6181#line 930 "parser.yy"
    61436182    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    61446183    break;
    61456184
    6146   case 224:
    6147 
    6148 /* Line 1806 of yacc.c  */
    6149 #line 933 "parser.yy"
     6185  case 225:
     6186
     6187/* Line 1806 of yacc.c  */
     6188#line 935 "parser.yy"
    61506189    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    61516190    break;
    61526191
    6153   case 225:
    6154 
    6155 /* Line 1806 of yacc.c  */
    6156 #line 935 "parser.yy"
     6192  case 226:
     6193
     6194/* Line 1806 of yacc.c  */
     6195#line 937 "parser.yy"
    61576196    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    61586197    break;
    61596198
    6160   case 226:
    6161 
    6162 /* Line 1806 of yacc.c  */
    6163 #line 940 "parser.yy"
     6199  case 227:
     6200
     6201/* Line 1806 of yacc.c  */
     6202#line 942 "parser.yy"
    61646203    { (yyval.constant) = 0; }
    61656204    break;
    61666205
    6167   case 227:
    6168 
    6169 /* Line 1806 of yacc.c  */
    6170 #line 942 "parser.yy"
     6206  case 228:
     6207
     6208/* Line 1806 of yacc.c  */
     6209#line 944 "parser.yy"
    61716210    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    61726211    break;
    61736212
    6174   case 228:
    6175 
    6176 /* Line 1806 of yacc.c  */
    6177 #line 944 "parser.yy"
     6213  case 229:
     6214
     6215/* Line 1806 of yacc.c  */
     6216#line 946 "parser.yy"
    61786217    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    61796218    break;
    61806219
    6181   case 229:
    6182 
    6183 /* Line 1806 of yacc.c  */
    6184 #line 949 "parser.yy"
     6220  case 230:
     6221
     6222/* Line 1806 of yacc.c  */
     6223#line 951 "parser.yy"
    61856224    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    61866225    break;
    61876226
    6188   case 230:
    6189 
    6190 /* Line 1806 of yacc.c  */
    6191 #line 951 "parser.yy"
     6227  case 231:
     6228
     6229/* Line 1806 of yacc.c  */
     6230#line 953 "parser.yy"
    61926231    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    61936232    break;
    61946233
    6195   case 231:
    6196 
    6197 /* Line 1806 of yacc.c  */
    6198 #line 958 "parser.yy"
     6234  case 232:
     6235
     6236/* Line 1806 of yacc.c  */
     6237#line 960 "parser.yy"
    61996238    { (yyval.decl) = 0; }
    62006239    break;
    62016240
    6202   case 234:
    6203 
    6204 /* Line 1806 of yacc.c  */
    6205 #line 965 "parser.yy"
     6241  case 235:
     6242
     6243/* Line 1806 of yacc.c  */
     6244#line 967 "parser.yy"
    62066245    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62076246    break;
    62086247
    6209   case 235:
    6210 
    6211 /* Line 1806 of yacc.c  */
    6212 #line 970 "parser.yy"
     6248  case 236:
     6249
     6250/* Line 1806 of yacc.c  */
     6251#line 972 "parser.yy"
    62136252    { (yyval.decl) = 0; }
    62146253    break;
    62156254
    6216   case 238:
    6217 
    6218 /* Line 1806 of yacc.c  */
    6219 #line 977 "parser.yy"
     6255  case 239:
     6256
     6257/* Line 1806 of yacc.c  */
     6258#line 979 "parser.yy"
    62206259    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62216260    break;
    62226261
    6223   case 243:
    6224 
    6225 /* Line 1806 of yacc.c  */
    6226 #line 991 "parser.yy"
     6262  case 244:
     6263
     6264/* Line 1806 of yacc.c  */
     6265#line 993 "parser.yy"
    62276266    {}
    62286267    break;
    62296268
    6230   case 244:
    6231 
    6232 /* Line 1806 of yacc.c  */
    6233 #line 992 "parser.yy"
     6269  case 245:
     6270
     6271/* Line 1806 of yacc.c  */
     6272#line 994 "parser.yy"
    62346273    {}
    62356274    break;
    62366275
    6237   case 252:
    6238 
    6239 /* Line 1806 of yacc.c  */
    6240 #line 1021 "parser.yy"
     6276  case 253:
     6277
     6278/* Line 1806 of yacc.c  */
     6279#line 1023 "parser.yy"
    62416280    {
    62426281                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62456284    break;
    62466285
    6247   case 253:
    6248 
    6249 /* Line 1806 of yacc.c  */
    6250 #line 1028 "parser.yy"
     6286  case 254:
     6287
     6288/* Line 1806 of yacc.c  */
     6289#line 1030 "parser.yy"
    62516290    {
    62526291                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62556294    break;
    62566295
    6257   case 254:
    6258 
    6259 /* Line 1806 of yacc.c  */
    6260 #line 1033 "parser.yy"
     6296  case 255:
     6297
     6298/* Line 1806 of yacc.c  */
     6299#line 1035 "parser.yy"
    62616300    {
    62626301                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62656304    break;
    62666305
    6267   case 255:
    6268 
    6269 /* Line 1806 of yacc.c  */
    6270 #line 1043 "parser.yy"
     6306  case 256:
     6307
     6308/* Line 1806 of yacc.c  */
     6309#line 1045 "parser.yy"
    62716310    {
    62726311                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62756314    break;
    62766315
    6277   case 256:
    6278 
    6279 /* Line 1806 of yacc.c  */
    6280 #line 1048 "parser.yy"
     6316  case 257:
     6317
     6318/* Line 1806 of yacc.c  */
     6319#line 1050 "parser.yy"
    62816320    {
    62826321                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62856324    break;
    62866325
    6287   case 257:
    6288 
    6289 /* Line 1806 of yacc.c  */
    6290 #line 1053 "parser.yy"
     6326  case 258:
     6327
     6328/* Line 1806 of yacc.c  */
     6329#line 1055 "parser.yy"
    62916330    {
    62926331                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    62956334    break;
    62966335
    6297   case 258:
    6298 
    6299 /* Line 1806 of yacc.c  */
    6300 #line 1061 "parser.yy"
     6336  case 259:
     6337
     6338/* Line 1806 of yacc.c  */
     6339#line 1063 "parser.yy"
    63016340    {
    63026341                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63056344    break;
    63066345
    6307   case 259:
    6308 
    6309 /* Line 1806 of yacc.c  */
    6310 #line 1066 "parser.yy"
     6346  case 260:
     6347
     6348/* Line 1806 of yacc.c  */
     6349#line 1068 "parser.yy"
    63116350    {
    63126351                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63156354    break;
    63166355
    6317   case 260:
    6318 
    6319 /* Line 1806 of yacc.c  */
    6320 #line 1071 "parser.yy"
     6356  case 261:
     6357
     6358/* Line 1806 of yacc.c  */
     6359#line 1073 "parser.yy"
    63216360    {
    63226361                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63256364    break;
    63266365
    6327   case 261:
    6328 
    6329 /* Line 1806 of yacc.c  */
    6330 #line 1076 "parser.yy"
     6366  case 262:
     6367
     6368/* Line 1806 of yacc.c  */
     6369#line 1078 "parser.yy"
    63316370    {
    63326371                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63356374    break;
    63366375
    6337   case 262:
    6338 
    6339 /* Line 1806 of yacc.c  */
    6340 #line 1081 "parser.yy"
     6376  case 263:
     6377
     6378/* Line 1806 of yacc.c  */
     6379#line 1083 "parser.yy"
    63416380    {
    63426381                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63456384    break;
    63466385
    6347   case 263:
    6348 
    6349 /* Line 1806 of yacc.c  */
    6350 #line 1089 "parser.yy"
     6386  case 264:
     6387
     6388/* Line 1806 of yacc.c  */
     6389#line 1091 "parser.yy"
    63516390    {
    63526391                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    63546393    break;
    63556394
    6356   case 264:
    6357 
    6358 /* Line 1806 of yacc.c  */
    6359 #line 1112 "parser.yy"
     6395  case 265:
     6396
     6397/* Line 1806 of yacc.c  */
     6398#line 1114 "parser.yy"
    63606399    {
    63616400                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63636402    break;
    63646403
    6365   case 265:
    6366 
    6367 /* Line 1806 of yacc.c  */
    6368 #line 1116 "parser.yy"
     6404  case 266:
     6405
     6406/* Line 1806 of yacc.c  */
     6407#line 1118 "parser.yy"
    63696408    {
    63706409                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63726411    break;
    63736412
    6374   case 266:
    6375 
    6376 /* Line 1806 of yacc.c  */
    6377 #line 1123 "parser.yy"
     6413  case 267:
     6414
     6415/* Line 1806 of yacc.c  */
     6416#line 1125 "parser.yy"
    63786417    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    63796418    break;
    63806419
    6381   case 267:
    6382 
    6383 /* Line 1806 of yacc.c  */
    6384 #line 1127 "parser.yy"
     6420  case 268:
     6421
     6422/* Line 1806 of yacc.c  */
     6423#line 1129 "parser.yy"
    63856424    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    63866425    break;
    63876426
    6388   case 268:
    6389 
    6390 /* Line 1806 of yacc.c  */
    6391 #line 1132 "parser.yy"
     6427  case 269:
     6428
     6429/* Line 1806 of yacc.c  */
     6430#line 1134 "parser.yy"
    63926431    {
    63936432                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63966435    break;
    63976436
    6398   case 269:
    6399 
    6400 /* Line 1806 of yacc.c  */
    6401 #line 1137 "parser.yy"
     6437  case 270:
     6438
     6439/* Line 1806 of yacc.c  */
     6440#line 1139 "parser.yy"
    64026441    {
    64036442                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64066445    break;
    64076446
    6408   case 270:
    6409 
    6410 /* Line 1806 of yacc.c  */
    6411 #line 1142 "parser.yy"
     6447  case 271:
     6448
     6449/* Line 1806 of yacc.c  */
     6450#line 1144 "parser.yy"
    64126451    {
    64136452                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64166455    break;
    64176456
    6418   case 271:
    6419 
    6420 /* Line 1806 of yacc.c  */
    6421 #line 1153 "parser.yy"
     6457  case 272:
     6458
     6459/* Line 1806 of yacc.c  */
     6460#line 1155 "parser.yy"
    64226461    {
    64236462                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64266465    break;
    64276466
    6428   case 272:
    6429 
    6430 /* Line 1806 of yacc.c  */
    6431 #line 1158 "parser.yy"
     6467  case 273:
     6468
     6469/* Line 1806 of yacc.c  */
     6470#line 1160 "parser.yy"
    64326471    {
    64336472                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64366475    break;
    64376476
    6438   case 273:
    6439 
    6440 /* Line 1806 of yacc.c  */
    6441 #line 1163 "parser.yy"
     6477  case 274:
     6478
     6479/* Line 1806 of yacc.c  */
     6480#line 1165 "parser.yy"
    64426481    {
    64436482                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64466485    break;
    64476486
    6448   case 274:
    6449 
    6450 /* Line 1806 of yacc.c  */
    6451 #line 1168 "parser.yy"
     6487  case 275:
     6488
     6489/* Line 1806 of yacc.c  */
     6490#line 1170 "parser.yy"
    64526491    {
    64536492                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64566495    break;
    64576496
    6458   case 275:
    6459 
    6460 /* Line 1806 of yacc.c  */
    6461 #line 1173 "parser.yy"
     6497  case 276:
     6498
     6499/* Line 1806 of yacc.c  */
     6500#line 1175 "parser.yy"
    64626501    {
    64636502                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64666505    break;
    64676506
    6468   case 276:
    6469 
    6470 /* Line 1806 of yacc.c  */
    6471 #line 1182 "parser.yy"
     6507  case 277:
     6508
     6509/* Line 1806 of yacc.c  */
     6510#line 1184 "parser.yy"
    64726511    {
    64736512                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64766515    break;
    64776516
    6478   case 277:
    6479 
    6480 /* Line 1806 of yacc.c  */
    6481 #line 1187 "parser.yy"
     6517  case 278:
     6518
     6519/* Line 1806 of yacc.c  */
     6520#line 1189 "parser.yy"
    64826521    {
    64836522                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64866525    break;
    64876526
    6488   case 282:
    6489 
    6490 /* Line 1806 of yacc.c  */
    6491 #line 1204 "parser.yy"
     6527  case 283:
     6528
     6529/* Line 1806 of yacc.c  */
     6530#line 1206 "parser.yy"
    64926531    {
    64936532                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64966535    break;
    64976536
    6498   case 283:
    6499 
    6500 /* Line 1806 of yacc.c  */
    6501 #line 1209 "parser.yy"
     6537  case 284:
     6538
     6539/* Line 1806 of yacc.c  */
     6540#line 1211 "parser.yy"
    65026541    {
    65036542                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65066545    break;
    65076546
    6508   case 292:
    6509 
    6510 /* Line 1806 of yacc.c  */
    6511 #line 1231 "parser.yy"
     6547  case 293:
     6548
     6549/* Line 1806 of yacc.c  */
     6550#line 1233 "parser.yy"
    65126551    { (yyval.decl) = 0; }
    65136552    break;
    65146553
    6515   case 295:
    6516 
    6517 /* Line 1806 of yacc.c  */
    6518 #line 1243 "parser.yy"
     6554  case 296:
     6555
     6556/* Line 1806 of yacc.c  */
     6557#line 1245 "parser.yy"
    65196558    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65206559    break;
    65216560
    6522   case 298:
    6523 
    6524 /* Line 1806 of yacc.c  */
    6525 #line 1254 "parser.yy"
     6561  case 299:
     6562
     6563/* Line 1806 of yacc.c  */
     6564#line 1256 "parser.yy"
    65266565    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65276566    break;
    65286567
    6529   case 299:
    6530 
    6531 /* Line 1806 of yacc.c  */
    6532 #line 1256 "parser.yy"
     6568  case 300:
     6569
     6570/* Line 1806 of yacc.c  */
     6571#line 1258 "parser.yy"
    65336572    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65346573    break;
    65356574
    6536   case 300:
    6537 
    6538 /* Line 1806 of yacc.c  */
    6539 #line 1258 "parser.yy"
     6575  case 301:
     6576
     6577/* Line 1806 of yacc.c  */
     6578#line 1260 "parser.yy"
    65406579    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65416580    break;
    65426581
    6543   case 301:
    6544 
    6545 /* Line 1806 of yacc.c  */
    6546 #line 1260 "parser.yy"
     6582  case 302:
     6583
     6584/* Line 1806 of yacc.c  */
     6585#line 1262 "parser.yy"
    65476586    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65486587    break;
    65496588
    6550   case 302:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1262 "parser.yy"
     6589  case 303:
     6590
     6591/* Line 1806 of yacc.c  */
     6592#line 1264 "parser.yy"
    65546593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65556594    break;
    65566595
    6557   case 303:
    6558 
    6559 /* Line 1806 of yacc.c  */
    6560 #line 1264 "parser.yy"
     6596  case 304:
     6597
     6598/* Line 1806 of yacc.c  */
     6599#line 1266 "parser.yy"
    65616600    {
    65626601                        typedefTable.enterScope();
     
    65646603    break;
    65656604
    6566   case 304:
    6567 
    6568 /* Line 1806 of yacc.c  */
    6569 #line 1268 "parser.yy"
     6605  case 305:
     6606
     6607/* Line 1806 of yacc.c  */
     6608#line 1270 "parser.yy"
    65706609    {
    65716610                        typedefTable.leaveScope();
     
    65746613    break;
    65756614
    6576   case 306:
    6577 
    6578 /* Line 1806 of yacc.c  */
    6579 #line 1277 "parser.yy"
     6615  case 307:
     6616
     6617/* Line 1806 of yacc.c  */
     6618#line 1279 "parser.yy"
    65806619    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65816620    break;
    65826621
    6583   case 307:
    6584 
    6585 /* Line 1806 of yacc.c  */
    6586 #line 1279 "parser.yy"
     6622  case 308:
     6623
     6624/* Line 1806 of yacc.c  */
     6625#line 1281 "parser.yy"
    65876626    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65886627    break;
    65896628
    6590   case 309:
    6591 
    6592 /* Line 1806 of yacc.c  */
    6593 #line 1290 "parser.yy"
     6629  case 310:
     6630
     6631/* Line 1806 of yacc.c  */
     6632#line 1292 "parser.yy"
    65946633    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65956634    break;
    65966635
    6597   case 311:
    6598 
    6599 /* Line 1806 of yacc.c  */
    6600 #line 1299 "parser.yy"
     6636  case 312:
     6637
     6638/* Line 1806 of yacc.c  */
     6639#line 1301 "parser.yy"
    66016640    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66026641    break;
    66036642
    6604   case 312:
    6605 
    6606 /* Line 1806 of yacc.c  */
    6607 #line 1301 "parser.yy"
     6643  case 313:
     6644
     6645/* Line 1806 of yacc.c  */
     6646#line 1303 "parser.yy"
    66086647    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66096648    break;
    66106649
    6611   case 313:
    6612 
    6613 /* Line 1806 of yacc.c  */
    6614 #line 1303 "parser.yy"
     6650  case 314:
     6651
     6652/* Line 1806 of yacc.c  */
     6653#line 1305 "parser.yy"
    66156654    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66166655    break;
    66176656
    6618   case 314:
    6619 
    6620 /* Line 1806 of yacc.c  */
    6621 #line 1305 "parser.yy"
     6657  case 315:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1307 "parser.yy"
    66226661    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66236662    break;
    66246663
    6625   case 315:
    6626 
    6627 /* Line 1806 of yacc.c  */
    6628 #line 1307 "parser.yy"
     6664  case 316:
     6665
     6666/* Line 1806 of yacc.c  */
     6667#line 1309 "parser.yy"
    66296668    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66306669    break;
    66316670
    6632   case 316:
    6633 
    6634 /* Line 1806 of yacc.c  */
    6635 #line 1309 "parser.yy"
     6671  case 317:
     6672
     6673/* Line 1806 of yacc.c  */
     6674#line 1311 "parser.yy"
    66366675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66376676    break;
    66386677
    6639   case 317:
    6640 
    6641 /* Line 1806 of yacc.c  */
    6642 #line 1311 "parser.yy"
     6678  case 318:
     6679
     6680/* Line 1806 of yacc.c  */
     6681#line 1313 "parser.yy"
    66436682    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    66446683    break;
    66456684
    6646   case 318:
    6647 
    6648 /* Line 1806 of yacc.c  */
    6649 #line 1313 "parser.yy"
     6685  case 319:
     6686
     6687/* Line 1806 of yacc.c  */
     6688#line 1315 "parser.yy"
    66506689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    66516690    break;
    66526691
    6653   case 319:
    6654 
    6655 /* Line 1806 of yacc.c  */
    6656 #line 1318 "parser.yy"
     6692  case 320:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1320 "parser.yy"
    66576696    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    66586697    break;
    66596698
    6660   case 320:
    6661 
    6662 /* Line 1806 of yacc.c  */
    6663 #line 1320 "parser.yy"
     6699  case 321:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1322 "parser.yy"
    66646703    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    66656704    break;
    66666705
    6667   case 321:
    6668 
    6669 /* Line 1806 of yacc.c  */
    6670 #line 1322 "parser.yy"
     6706  case 322:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1324 "parser.yy"
    66716710    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    66726711    break;
    66736712
    6674   case 322:
    6675 
    6676 /* Line 1806 of yacc.c  */
    6677 #line 1324 "parser.yy"
     6713  case 323:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1326 "parser.yy"
    66786717    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    66796718    break;
    66806719
    6681   case 323:
    6682 
    6683 /* Line 1806 of yacc.c  */
    6684 #line 1326 "parser.yy"
     6720  case 324:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1328 "parser.yy"
    66856724    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    66866725    break;
    66876726
    6688   case 324:
    6689 
    6690 /* Line 1806 of yacc.c  */
    6691 #line 1328 "parser.yy"
     6727  case 325:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1330 "parser.yy"
    66926731    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    66936732    break;
    66946733
    6695   case 325:
    6696 
    6697 /* Line 1806 of yacc.c  */
    6698 #line 1330 "parser.yy"
     6734  case 326:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1332 "parser.yy"
    66996738    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67006739    break;
    67016740
    6702   case 326:
    6703 
    6704 /* Line 1806 of yacc.c  */
    6705 #line 1332 "parser.yy"
     6741  case 327:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1334 "parser.yy"
    67066745    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67076746    break;
    67086747
    6709   case 327:
    6710 
    6711 /* Line 1806 of yacc.c  */
    6712 #line 1334 "parser.yy"
     6748  case 328:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1336 "parser.yy"
    67136752    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67146753    break;
    67156754
    6716   case 328:
    6717 
    6718 /* Line 1806 of yacc.c  */
    6719 #line 1336 "parser.yy"
     6755  case 329:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1338 "parser.yy"
    67206759    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67216760    break;
    67226761
    6723   case 329:
    6724 
    6725 /* Line 1806 of yacc.c  */
    6726 #line 1338 "parser.yy"
     6762  case 330:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1340 "parser.yy"
    67276766    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67286767    break;
    67296768
    6730   case 330:
    6731 
    6732 /* Line 1806 of yacc.c  */
    6733 #line 1340 "parser.yy"
     6769  case 331:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1342 "parser.yy"
    67346773    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67356774    break;
    67366775
    6737   case 332:
    6738 
    6739 /* Line 1806 of yacc.c  */
    6740 #line 1347 "parser.yy"
     6776  case 333:
     6777
     6778/* Line 1806 of yacc.c  */
     6779#line 1349 "parser.yy"
    67416780    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67426781    break;
    67436782
    6744   case 333:
    6745 
    6746 /* Line 1806 of yacc.c  */
    6747 #line 1349 "parser.yy"
     6783  case 334:
     6784
     6785/* Line 1806 of yacc.c  */
     6786#line 1351 "parser.yy"
    67486787    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67496788    break;
    67506789
    6751   case 334:
    6752 
    6753 /* Line 1806 of yacc.c  */
    6754 #line 1351 "parser.yy"
     6790  case 335:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1353 "parser.yy"
    67556794    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67566795    break;
    67576796
    6758   case 335:
    6759 
    6760 /* Line 1806 of yacc.c  */
    6761 #line 1353 "parser.yy"
     6797  case 336:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1355 "parser.yy"
    67626801    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    67636802    break;
    67646803
    6765   case 337:
    6766 
    6767 /* Line 1806 of yacc.c  */
    6768 #line 1359 "parser.yy"
     6804  case 338:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1361 "parser.yy"
    67696808    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67706809    break;
    67716810
    6772   case 339:
    6773 
    6774 /* Line 1806 of yacc.c  */
    6775 #line 1366 "parser.yy"
     6811  case 340:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1368 "parser.yy"
    67766815    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67776816    break;
    67786817
    6779   case 340:
    6780 
    6781 /* Line 1806 of yacc.c  */
    6782 #line 1368 "parser.yy"
     6818  case 341:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1370 "parser.yy"
    67836822    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67846823    break;
    67856824
    6786   case 341:
    6787 
    6788 /* Line 1806 of yacc.c  */
    6789 #line 1370 "parser.yy"
     6825  case 342:
     6826
     6827/* Line 1806 of yacc.c  */
     6828#line 1372 "parser.yy"
    67906829    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    67916830    break;
    67926831
    6793   case 342:
    6794 
    6795 /* Line 1806 of yacc.c  */
    6796 #line 1375 "parser.yy"
     6832  case 343:
     6833
     6834/* Line 1806 of yacc.c  */
     6835#line 1377 "parser.yy"
    67976836    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    67986837    break;
    67996838
    6800   case 343:
    6801 
    6802 /* Line 1806 of yacc.c  */
    6803 #line 1377 "parser.yy"
     6839  case 344:
     6840
     6841/* Line 1806 of yacc.c  */
     6842#line 1379 "parser.yy"
    68046843    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68056844    break;
    68066845
    6807   case 344:
    6808 
    6809 /* Line 1806 of yacc.c  */
    6810 #line 1379 "parser.yy"
     6846  case 345:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1381 "parser.yy"
    68116850    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68126851    break;
    68136852
    6814   case 345:
    6815 
    6816 /* Line 1806 of yacc.c  */
    6817 #line 1381 "parser.yy"
     6853  case 346:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1383 "parser.yy"
    68186857    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68196858    break;
    68206859
    6821   case 347:
    6822 
    6823 /* Line 1806 of yacc.c  */
    6824 #line 1387 "parser.yy"
     6860  case 348:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1389 "parser.yy"
    68256864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68266865    break;
    68276866
    6828   case 348:
    6829 
    6830 /* Line 1806 of yacc.c  */
    6831 #line 1389 "parser.yy"
     6867  case 349:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1391 "parser.yy"
    68326871    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68336872    break;
    68346873
    6835   case 349:
    6836 
    6837 /* Line 1806 of yacc.c  */
    6838 #line 1391 "parser.yy"
     6874  case 350:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1393 "parser.yy"
    68396878    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68406879    break;
    68416880
    6842   case 351:
    6843 
    6844 /* Line 1806 of yacc.c  */
    6845 #line 1397 "parser.yy"
     6881  case 352:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1399 "parser.yy"
    68466885    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68476886    break;
    68486887
    6849   case 352:
    6850 
    6851 /* Line 1806 of yacc.c  */
    6852 #line 1399 "parser.yy"
     6888  case 353:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1401 "parser.yy"
    68536892    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68546893    break;
    68556894
    6856   case 354:
    6857 
    6858 /* Line 1806 of yacc.c  */
    6859 #line 1405 "parser.yy"
     6895  case 355:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1407 "parser.yy"
    68606899    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68616900    break;
    68626901
    6863   case 355:
    6864 
    6865 /* Line 1806 of yacc.c  */
    6866 #line 1407 "parser.yy"
     6902  case 356:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1409 "parser.yy"
    68676906    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68686907    break;
    68696908
    6870   case 356:
    6871 
    6872 /* Line 1806 of yacc.c  */
    6873 #line 1409 "parser.yy"
     6909  case 357:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1411 "parser.yy"
    68746913    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68756914    break;
    68766915
    6877   case 357:
    6878 
    6879 /* Line 1806 of yacc.c  */
    6880 #line 1414 "parser.yy"
     6916  case 358:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1416 "parser.yy"
    68816920    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    68826921    break;
    68836922
    6884   case 358:
    6885 
    6886 /* Line 1806 of yacc.c  */
    6887 #line 1416 "parser.yy"
     6923  case 359:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1418 "parser.yy"
    68886927    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68896928    break;
    68906929
    6891   case 359:
    6892 
    6893 /* Line 1806 of yacc.c  */
    6894 #line 1418 "parser.yy"
     6930  case 360:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1420 "parser.yy"
    68956934    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68966935    break;
    68976936
    6898   case 362:
    6899 
    6900 /* Line 1806 of yacc.c  */
    6901 #line 1428 "parser.yy"
     6937  case 363:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1430 "parser.yy"
    69026941    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    69036942    break;
    69046943
    6905   case 363:
    6906 
    6907 /* Line 1806 of yacc.c  */
    6908 #line 1430 "parser.yy"
     6944  case 364:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1432 "parser.yy"
    69096948    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    69106949    break;
    69116950
    6912   case 364:
    6913 
    6914 /* Line 1806 of yacc.c  */
    6915 #line 1432 "parser.yy"
     6951  case 365:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1434 "parser.yy"
    69166955    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    69176956    break;
    69186957
    6919   case 365:
    6920 
    6921 /* Line 1806 of yacc.c  */
    6922 #line 1434 "parser.yy"
     6958  case 366:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1436 "parser.yy"
    69236962    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    69246963    break;
    69256964
    6926   case 366:
    6927 
    6928 /* Line 1806 of yacc.c  */
    6929 #line 1436 "parser.yy"
     6965  case 367:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1438 "parser.yy"
    69306969    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69316970    break;
    69326971
    6933   case 367:
    6934 
    6935 /* Line 1806 of yacc.c  */
    6936 #line 1441 "parser.yy"
     6972  case 368:
     6973
     6974/* Line 1806 of yacc.c  */
     6975#line 1443 "parser.yy"
    69376976    { (yyval.aggKey) = DeclarationNode::Struct; }
    69386977    break;
    69396978
    6940   case 368:
    6941 
    6942 /* Line 1806 of yacc.c  */
    6943 #line 1443 "parser.yy"
     6979  case 369:
     6980
     6981/* Line 1806 of yacc.c  */
     6982#line 1445 "parser.yy"
    69446983    { (yyval.aggKey) = DeclarationNode::Union; }
    69456984    break;
    69466985
    6947   case 369:
    6948 
    6949 /* Line 1806 of yacc.c  */
    6950 #line 1448 "parser.yy"
     6986  case 370:
     6987
     6988/* Line 1806 of yacc.c  */
     6989#line 1450 "parser.yy"
    69516990    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    69526991    break;
    69536992
    6954   case 370:
    6955 
    6956 /* Line 1806 of yacc.c  */
    6957 #line 1450 "parser.yy"
     6993  case 371:
     6994
     6995/* Line 1806 of yacc.c  */
     6996#line 1452 "parser.yy"
    69586997    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    69596998    break;
    69606999
    6961   case 372:
    6962 
    6963 /* Line 1806 of yacc.c  */
    6964 #line 1456 "parser.yy"
     7000  case 373:
     7001
     7002/* Line 1806 of yacc.c  */
     7003#line 1458 "parser.yy"
    69657004    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    69667005    break;
    69677006
    6968   case 374:
    6969 
    6970 /* Line 1806 of yacc.c  */
    6971 #line 1459 "parser.yy"
     7007  case 375:
     7008
     7009/* Line 1806 of yacc.c  */
     7010#line 1461 "parser.yy"
    69727011    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    69737012    break;
    69747013
    6975   case 376:
    6976 
    6977 /* Line 1806 of yacc.c  */
    6978 #line 1465 "parser.yy"
     7014  case 377:
     7015
     7016/* Line 1806 of yacc.c  */
     7017#line 1467 "parser.yy"
    69797018    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    69807019    break;
    69817020
    6982   case 377:
    6983 
    6984 /* Line 1806 of yacc.c  */
    6985 #line 1467 "parser.yy"
     7021  case 378:
     7022
     7023/* Line 1806 of yacc.c  */
     7024#line 1469 "parser.yy"
    69867025    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    69877026    break;
    69887027
    6989   case 378:
    6990 
    6991 /* Line 1806 of yacc.c  */
    6992 #line 1469 "parser.yy"
     7028  case 379:
     7029
     7030/* Line 1806 of yacc.c  */
     7031#line 1471 "parser.yy"
    69937032    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    69947033    break;
    69957034
    6996   case 379:
    6997 
    6998 /* Line 1806 of yacc.c  */
    6999 #line 1474 "parser.yy"
     7035  case 380:
     7036
     7037/* Line 1806 of yacc.c  */
     7038#line 1476 "parser.yy"
    70007039    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70017040    break;
    70027041
    7003   case 380:
    7004 
    7005 /* Line 1806 of yacc.c  */
    7006 #line 1476 "parser.yy"
     7042  case 381:
     7043
     7044/* Line 1806 of yacc.c  */
     7045#line 1478 "parser.yy"
    70077046    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70087047    break;
    70097048
    7010   case 381:
    7011 
    7012 /* Line 1806 of yacc.c  */
    7013 #line 1481 "parser.yy"
     7049  case 382:
     7050
     7051/* Line 1806 of yacc.c  */
     7052#line 1483 "parser.yy"
    70147053    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70157054    break;
    70167055
    7017   case 382:
    7018 
    7019 /* Line 1806 of yacc.c  */
    7020 #line 1483 "parser.yy"
     7056  case 383:
     7057
     7058/* Line 1806 of yacc.c  */
     7059#line 1485 "parser.yy"
    70217060    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70227061    break;
    70237062
    7024   case 383:
    7025 
    7026 /* Line 1806 of yacc.c  */
    7027 #line 1486 "parser.yy"
     7063  case 384:
     7064
     7065/* Line 1806 of yacc.c  */
     7066#line 1488 "parser.yy"
    70287067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70297068    break;
    70307069
    7031   case 384:
    7032 
    7033 /* Line 1806 of yacc.c  */
    7034 #line 1489 "parser.yy"
     7070  case 385:
     7071
     7072/* Line 1806 of yacc.c  */
     7073#line 1491 "parser.yy"
    70357074    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70367075    break;
    70377076
    7038   case 386:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1495 "parser.yy"
     7077  case 387:
     7078
     7079/* Line 1806 of yacc.c  */
     7080#line 1497 "parser.yy"
    70427081    { (yyval.en) = 0; }
    70437082    break;
    70447083
    7045   case 387:
    7046 
    7047 /* Line 1806 of yacc.c  */
    7048 #line 1497 "parser.yy"
     7084  case 388:
     7085
     7086/* Line 1806 of yacc.c  */
     7087#line 1499 "parser.yy"
    70497088    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    70507089    break;
    70517090
    7052   case 388:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1502 "parser.yy"
     7091  case 389:
     7092
     7093/* Line 1806 of yacc.c  */
     7094#line 1504 "parser.yy"
    70567095    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70577096    break;
    70587097
    7059   case 390:
    7060 
    7061 /* Line 1806 of yacc.c  */
    7062 #line 1511 "parser.yy"
     7098  case 391:
     7099
     7100/* Line 1806 of yacc.c  */
     7101#line 1513 "parser.yy"
    70637102    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    70647103    break;
    70657104
    7066   case 391:
    7067 
    7068 /* Line 1806 of yacc.c  */
    7069 #line 1513 "parser.yy"
     7105  case 392:
     7106
     7107/* Line 1806 of yacc.c  */
     7108#line 1515 "parser.yy"
    70707109    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    70717110    break;
    70727111
    7073   case 392:
    7074 
    7075 /* Line 1806 of yacc.c  */
    7076 #line 1515 "parser.yy"
     7112  case 393:
     7113
     7114/* Line 1806 of yacc.c  */
     7115#line 1517 "parser.yy"
    70777116    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    70787117    break;
    70797118
    7080   case 393:
    7081 
    7082 /* Line 1806 of yacc.c  */
    7083 #line 1520 "parser.yy"
     7119  case 394:
     7120
     7121/* Line 1806 of yacc.c  */
     7122#line 1522 "parser.yy"
    70847123    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    70857124    break;
    70867125
    7087   case 394:
    7088 
    7089 /* Line 1806 of yacc.c  */
    7090 #line 1522 "parser.yy"
     7126  case 395:
     7127
     7128/* Line 1806 of yacc.c  */
     7129#line 1524 "parser.yy"
    70917130    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    70927131    break;
    70937132
    7094   case 395:
    7095 
    7096 /* Line 1806 of yacc.c  */
    7097 #line 1527 "parser.yy"
     7133  case 396:
     7134
     7135/* Line 1806 of yacc.c  */
     7136#line 1529 "parser.yy"
    70987137    { (yyval.en) = 0; }
    70997138    break;
    71007139
    7101   case 396:
    7102 
    7103 /* Line 1806 of yacc.c  */
    7104 #line 1529 "parser.yy"
     7140  case 397:
     7141
     7142/* Line 1806 of yacc.c  */
     7143#line 1531 "parser.yy"
    71057144    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71067145    break;
    71077146
    7108   case 397:
    7109 
    7110 /* Line 1806 of yacc.c  */
    7111 #line 1536 "parser.yy"
     7147  case 398:
     7148
     7149/* Line 1806 of yacc.c  */
     7150#line 1538 "parser.yy"
    71127151    { (yyval.decl) = 0; }
    71137152    break;
    71147153
    7115   case 401:
    7116 
    7117 /* Line 1806 of yacc.c  */
    7118 #line 1544 "parser.yy"
     7154  case 402:
     7155
     7156/* Line 1806 of yacc.c  */
     7157#line 1546 "parser.yy"
    71197158    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7120     break;
    7121 
    7122   case 402:
    7123 
    7124 /* Line 1806 of yacc.c  */
    7125 #line 1546 "parser.yy"
    7126     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71277159    break;
    71287160
     
    71347166    break;
    71357167
    7136   case 405:
    7137 
    7138 /* Line 1806 of yacc.c  */
    7139 #line 1556 "parser.yy"
    7140     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7168  case 404:
     7169
     7170/* Line 1806 of yacc.c  */
     7171#line 1550 "parser.yy"
     7172    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71417173    break;
    71427174
     
    71527184/* Line 1806 of yacc.c  */
    71537185#line 1560 "parser.yy"
     7186    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7187    break;
     7188
     7189  case 408:
     7190
     7191/* Line 1806 of yacc.c  */
     7192#line 1562 "parser.yy"
    71547193    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    71557194    break;
    71567195
    7157   case 409:
    7158 
    7159 /* Line 1806 of yacc.c  */
    7160 #line 1566 "parser.yy"
     7196  case 410:
     7197
     7198/* Line 1806 of yacc.c  */
     7199#line 1568 "parser.yy"
    71617200    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71627201    break;
    71637202
    7164   case 410:
    7165 
    7166 /* Line 1806 of yacc.c  */
    7167 #line 1571 "parser.yy"
     7203  case 411:
     7204
     7205/* Line 1806 of yacc.c  */
     7206#line 1573 "parser.yy"
    71687207    { (yyval.decl) = 0; }
    71697208    break;
    71707209
    7171   case 413:
    7172 
    7173 /* Line 1806 of yacc.c  */
    7174 #line 1578 "parser.yy"
     7210  case 414:
     7211
     7212/* Line 1806 of yacc.c  */
     7213#line 1580 "parser.yy"
    71757214    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7176     break;
    7177 
    7178   case 416:
    7179 
    7180 /* Line 1806 of yacc.c  */
    7181 #line 1585 "parser.yy"
    7182     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71837215    break;
    71847216
     
    71907222    break;
    71917223
    7192   case 419:
    7193 
    7194 /* Line 1806 of yacc.c  */
    7195 #line 1596 "parser.yy"
     7224  case 418:
     7225
     7226/* Line 1806 of yacc.c  */
     7227#line 1589 "parser.yy"
     7228    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7229    break;
     7230
     7231  case 420:
     7232
     7233/* Line 1806 of yacc.c  */
     7234#line 1598 "parser.yy"
    71967235    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    71977236    break;
    71987237
    7199   case 420:
    7200 
    7201 /* Line 1806 of yacc.c  */
    7202 #line 1599 "parser.yy"
     7238  case 421:
     7239
     7240/* Line 1806 of yacc.c  */
     7241#line 1601 "parser.yy"
    72037242    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72047243    break;
    72057244
    7206   case 421:
    7207 
    7208 /* Line 1806 of yacc.c  */
    7209 #line 1601 "parser.yy"
     7245  case 422:
     7246
     7247/* Line 1806 of yacc.c  */
     7248#line 1603 "parser.yy"
    72107249    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72117250    break;
    72127251
    7213   case 426:
    7214 
    7215 /* Line 1806 of yacc.c  */
    7216 #line 1611 "parser.yy"
     7252  case 427:
     7253
     7254/* Line 1806 of yacc.c  */
     7255#line 1613 "parser.yy"
    72177256    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72187257    break;
    72197258
    7220   case 428:
    7221 
    7222 /* Line 1806 of yacc.c  */
    7223 #line 1617 "parser.yy"
     7259  case 429:
     7260
     7261/* Line 1806 of yacc.c  */
     7262#line 1619 "parser.yy"
    72247263    {
    72257264                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72287267    break;
    72297268
    7230   case 429:
    7231 
    7232 /* Line 1806 of yacc.c  */
    7233 #line 1622 "parser.yy"
     7269  case 430:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1624 "parser.yy"
    72347273    {
    72357274                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72387277    break;
    72397278
    7240   case 431:
    7241 
    7242 /* Line 1806 of yacc.c  */
    7243 #line 1631 "parser.yy"
     7279  case 432:
     7280
     7281/* Line 1806 of yacc.c  */
     7282#line 1633 "parser.yy"
    72447283    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72457284    break;
    72467285
    7247   case 432:
    7248 
    7249 /* Line 1806 of yacc.c  */
    7250 #line 1640 "parser.yy"
     7286  case 433:
     7287
     7288/* Line 1806 of yacc.c  */
     7289#line 1642 "parser.yy"
    72517290    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    72527291    break;
    72537292
    7254   case 433:
    7255 
    7256 /* Line 1806 of yacc.c  */
    7257 #line 1642 "parser.yy"
     7293  case 434:
     7294
     7295/* Line 1806 of yacc.c  */
     7296#line 1644 "parser.yy"
    72587297    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    72597298    break;
    72607299
    7261   case 445:
    7262 
    7263 /* Line 1806 of yacc.c  */
    7264 #line 1667 "parser.yy"
     7300  case 446:
     7301
     7302/* Line 1806 of yacc.c  */
     7303#line 1669 "parser.yy"
    72657304    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72667305    break;
    72677306
    7268   case 449:
    7269 
    7270 /* Line 1806 of yacc.c  */
    7271 #line 1675 "parser.yy"
     7307  case 450:
     7308
     7309/* Line 1806 of yacc.c  */
     7310#line 1677 "parser.yy"
    72727311    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72737312    break;
    72747313
    7275   case 450:
    7276 
    7277 /* Line 1806 of yacc.c  */
    7278 #line 1680 "parser.yy"
     7314  case 451:
     7315
     7316/* Line 1806 of yacc.c  */
     7317#line 1682 "parser.yy"
    72797318    { (yyval.in) = 0; }
    7280     break;
    7281 
    7282   case 451:
    7283 
    7284 /* Line 1806 of yacc.c  */
    7285 #line 1682 "parser.yy"
    7286     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    72877319    break;
    72887320
     
    72977329
    72987330/* Line 1806 of yacc.c  */
    7299 #line 1688 "parser.yy"
     7331#line 1686 "parser.yy"
     7332    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7333    break;
     7334
     7335  case 454:
     7336
     7337/* Line 1806 of yacc.c  */
     7338#line 1690 "parser.yy"
    73007339    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73017340    break;
    73027341
    7303   case 454:
    7304 
    7305 /* Line 1806 of yacc.c  */
    7306 #line 1689 "parser.yy"
     7342  case 455:
     7343
     7344/* Line 1806 of yacc.c  */
     7345#line 1691 "parser.yy"
    73077346    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73087347    break;
    73097348
    7310   case 455:
    7311 
    7312 /* Line 1806 of yacc.c  */
    7313 #line 1694 "parser.yy"
     7349  case 456:
     7350
     7351/* Line 1806 of yacc.c  */
     7352#line 1696 "parser.yy"
    73147353    { (yyval.in) = 0; }
    73157354    break;
    73167355
    7317   case 457:
    7318 
    7319 /* Line 1806 of yacc.c  */
    7320 #line 1696 "parser.yy"
     7356  case 458:
     7357
     7358/* Line 1806 of yacc.c  */
     7359#line 1698 "parser.yy"
    73217360    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73227361    break;
    73237362
    7324   case 458:
    7325 
    7326 /* Line 1806 of yacc.c  */
    7327 #line 1697 "parser.yy"
     7363  case 459:
     7364
     7365/* Line 1806 of yacc.c  */
     7366#line 1699 "parser.yy"
    73287367    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73297368    break;
    73307369
    7331   case 459:
    7332 
    7333 /* Line 1806 of yacc.c  */
    7334 #line 1699 "parser.yy"
     7370  case 460:
     7371
     7372/* Line 1806 of yacc.c  */
     7373#line 1701 "parser.yy"
    73357374    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73367375    break;
    73377376
    7338   case 461:
    7339 
    7340 /* Line 1806 of yacc.c  */
    7341 #line 1715 "parser.yy"
     7377  case 462:
     7378
     7379/* Line 1806 of yacc.c  */
     7380#line 1717 "parser.yy"
    73427381    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    73437382    break;
    73447383
    7345   case 463:
    7346 
    7347 /* Line 1806 of yacc.c  */
    7348 #line 1721 "parser.yy"
     7384  case 464:
     7385
     7386/* Line 1806 of yacc.c  */
     7387#line 1723 "parser.yy"
    73497388    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    73507389    break;
    73517390
    7352   case 464:
    7353 
    7354 /* Line 1806 of yacc.c  */
    7355 #line 1729 "parser.yy"
     7391  case 465:
     7392
     7393/* Line 1806 of yacc.c  */
     7394#line 1731 "parser.yy"
    73567395    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    73577396    break;
    73587397
    7359   case 465:
    7360 
    7361 /* Line 1806 of yacc.c  */
    7362 #line 1731 "parser.yy"
     7398  case 466:
     7399
     7400/* Line 1806 of yacc.c  */
     7401#line 1733 "parser.yy"
    73637402    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    7364     break;
    7365 
    7366   case 466:
    7367 
    7368 /* Line 1806 of yacc.c  */
    7369 #line 1734 "parser.yy"
    7370     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    73717403    break;
    73727404
     
    73827414/* Line 1806 of yacc.c  */
    73837415#line 1738 "parser.yy"
     7416    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7417    break;
     7418
     7419  case 469:
     7420
     7421/* Line 1806 of yacc.c  */
     7422#line 1740 "parser.yy"
    73847423    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    73857424    break;
    73867425
    7387   case 469:
    7388 
    7389 /* Line 1806 of yacc.c  */
    7390 #line 1740 "parser.yy"
     7426  case 470:
     7427
     7428/* Line 1806 of yacc.c  */
     7429#line 1742 "parser.yy"
    73917430    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    73927431    break;
    73937432
    7394   case 471:
    7395 
    7396 /* Line 1806 of yacc.c  */
    7397 #line 1764 "parser.yy"
     7433  case 472:
     7434
     7435/* Line 1806 of yacc.c  */
     7436#line 1766 "parser.yy"
    73987437    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73997438    break;
    74007439
    7401   case 472:
    7402 
    7403 /* Line 1806 of yacc.c  */
    7404 #line 1766 "parser.yy"
     7440  case 473:
     7441
     7442/* Line 1806 of yacc.c  */
     7443#line 1768 "parser.yy"
    74057444    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74067445    break;
    74077446
    7408   case 473:
    7409 
    7410 /* Line 1806 of yacc.c  */
    7411 #line 1768 "parser.yy"
     7447  case 474:
     7448
     7449/* Line 1806 of yacc.c  */
     7450#line 1770 "parser.yy"
    74127451    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74137452    break;
    74147453
    7415   case 475:
    7416 
    7417 /* Line 1806 of yacc.c  */
    7418 #line 1774 "parser.yy"
     7454  case 476:
     7455
     7456/* Line 1806 of yacc.c  */
     7457#line 1776 "parser.yy"
    74197458    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74207459    break;
    74217460
    7422   case 476:
    7423 
    7424 /* Line 1806 of yacc.c  */
    7425 #line 1776 "parser.yy"
     7461  case 477:
     7462
     7463/* Line 1806 of yacc.c  */
     7464#line 1778 "parser.yy"
    74267465    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74277466    break;
    74287467
    7429   case 477:
    7430 
    7431 /* Line 1806 of yacc.c  */
    7432 #line 1781 "parser.yy"
     7468  case 478:
     7469
     7470/* Line 1806 of yacc.c  */
     7471#line 1783 "parser.yy"
    74337472    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74347473    break;
    74357474
    7436   case 479:
    7437 
    7438 /* Line 1806 of yacc.c  */
    7439 #line 1787 "parser.yy"
     7475  case 480:
     7476
     7477/* Line 1806 of yacc.c  */
     7478#line 1789 "parser.yy"
    74407479    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    74417480    break;
    74427481
    7443   case 480:
    7444 
    7445 /* Line 1806 of yacc.c  */
    7446 #line 1792 "parser.yy"
     7482  case 481:
     7483
     7484/* Line 1806 of yacc.c  */
     7485#line 1794 "parser.yy"
    74477486    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    74487487    break;
    74497488
    7450   case 481:
    7451 
    7452 /* Line 1806 of yacc.c  */
    7453 #line 1794 "parser.yy"
     7489  case 482:
     7490
     7491/* Line 1806 of yacc.c  */
     7492#line 1796 "parser.yy"
    74547493    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    74557494    break;
    74567495
    7457   case 483:
    7458 
    7459 /* Line 1806 of yacc.c  */
    7460 #line 1800 "parser.yy"
     7496  case 484:
     7497
     7498/* Line 1806 of yacc.c  */
     7499#line 1802 "parser.yy"
    74617500    { (yyval.tclass) = DeclarationNode::Type; }
    74627501    break;
    74637502
    7464   case 484:
    7465 
    7466 /* Line 1806 of yacc.c  */
    7467 #line 1802 "parser.yy"
     7503  case 485:
     7504
     7505/* Line 1806 of yacc.c  */
     7506#line 1804 "parser.yy"
    74687507    { (yyval.tclass) = DeclarationNode::Ftype; }
    74697508    break;
    74707509
    7471   case 485:
    7472 
    7473 /* Line 1806 of yacc.c  */
    7474 #line 1804 "parser.yy"
     7510  case 486:
     7511
     7512/* Line 1806 of yacc.c  */
     7513#line 1806 "parser.yy"
    74757514    { (yyval.tclass) = DeclarationNode::Dtype; }
    74767515    break;
    74777516
    7478   case 486:
    7479 
    7480 /* Line 1806 of yacc.c  */
    7481 #line 1809 "parser.yy"
     7517  case 487:
     7518
     7519/* Line 1806 of yacc.c  */
     7520#line 1811 "parser.yy"
    74827521    { (yyval.decl) = 0; }
    74837522    break;
    74847523
    7485   case 487:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1811 "parser.yy"
     7524  case 488:
     7525
     7526/* Line 1806 of yacc.c  */
     7527#line 1813 "parser.yy"
    74897528    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    74907529    break;
    74917530
    7492   case 488:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1816 "parser.yy"
     7531  case 489:
     7532
     7533/* Line 1806 of yacc.c  */
     7534#line 1818 "parser.yy"
    74967535    {
    74977536                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    75007539    break;
    75017540
    7502   case 489:
    7503 
    7504 /* Line 1806 of yacc.c  */
    7505 #line 1821 "parser.yy"
     7541  case 490:
     7542
     7543/* Line 1806 of yacc.c  */
     7544#line 1823 "parser.yy"
    75067545    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75077546    break;
    75087547
    7509   case 490:
    7510 
    7511 /* Line 1806 of yacc.c  */
    7512 #line 1823 "parser.yy"
     7548  case 491:
     7549
     7550/* Line 1806 of yacc.c  */
     7551#line 1825 "parser.yy"
    75137552    { (yyval.decl) = 0; }
    75147553    break;
    75157554
    7516   case 491:
    7517 
    7518 /* Line 1806 of yacc.c  */
    7519 #line 1828 "parser.yy"
     7555  case 492:
     7556
     7557/* Line 1806 of yacc.c  */
     7558#line 1830 "parser.yy"
    75207559    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    75217560    break;
    75227561
    7523   case 493:
    7524 
    7525 /* Line 1806 of yacc.c  */
    7526 #line 1831 "parser.yy"
     7562  case 494:
     7563
     7564/* Line 1806 of yacc.c  */
     7565#line 1833 "parser.yy"
    75277566    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    75287567    break;
    75297568
    7530   case 494:
    7531 
    7532 /* Line 1806 of yacc.c  */
    7533 #line 1833 "parser.yy"
     7569  case 495:
     7570
     7571/* Line 1806 of yacc.c  */
     7572#line 1835 "parser.yy"
    75347573    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75357574    break;
    75367575
    7537   case 495:
    7538 
    7539 /* Line 1806 of yacc.c  */
    7540 #line 1838 "parser.yy"
     7576  case 496:
     7577
     7578/* Line 1806 of yacc.c  */
     7579#line 1840 "parser.yy"
    75417580    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    75427581    break;
    75437582
    7544   case 496:
    7545 
    7546 /* Line 1806 of yacc.c  */
    7547 #line 1840 "parser.yy"
     7583  case 497:
     7584
     7585/* Line 1806 of yacc.c  */
     7586#line 1842 "parser.yy"
    75487587    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    75497588    break;
    75507589
    7551   case 497:
    7552 
    7553 /* Line 1806 of yacc.c  */
    7554 #line 1842 "parser.yy"
     7590  case 498:
     7591
     7592/* Line 1806 of yacc.c  */
     7593#line 1844 "parser.yy"
    75557594    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75567595    break;
    75577596
    7558   case 498:
    7559 
    7560 /* Line 1806 of yacc.c  */
    7561 #line 1847 "parser.yy"
     7597  case 499:
     7598
     7599/* Line 1806 of yacc.c  */
     7600#line 1849 "parser.yy"
    75627601    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    75637602    break;
    75647603
    7565   case 499:
    7566 
    7567 /* Line 1806 of yacc.c  */
    7568 #line 1849 "parser.yy"
     7604  case 500:
     7605
     7606/* Line 1806 of yacc.c  */
     7607#line 1851 "parser.yy"
    75697608    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75707609    break;
    75717610
    7572   case 500:
    7573 
    7574 /* Line 1806 of yacc.c  */
    7575 #line 1854 "parser.yy"
     7611  case 501:
     7612
     7613/* Line 1806 of yacc.c  */
     7614#line 1856 "parser.yy"
    75767615    {
    75777616                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75807619    break;
    75817620
    7582   case 501:
    7583 
    7584 /* Line 1806 of yacc.c  */
    7585 #line 1859 "parser.yy"
     7621  case 502:
     7622
     7623/* Line 1806 of yacc.c  */
     7624#line 1861 "parser.yy"
    75867625    {
    75877626                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75907629    break;
    75917630
    7592   case 502:
    7593 
    7594 /* Line 1806 of yacc.c  */
    7595 #line 1867 "parser.yy"
     7631  case 503:
     7632
     7633/* Line 1806 of yacc.c  */
     7634#line 1869 "parser.yy"
    75967635    {
    75977636                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76007639    break;
    76017640
    7602   case 503:
    7603 
    7604 /* Line 1806 of yacc.c  */
    7605 #line 1872 "parser.yy"
     7641  case 504:
     7642
     7643/* Line 1806 of yacc.c  */
     7644#line 1874 "parser.yy"
    76067645    {
    76077646                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    76107649    break;
    76117650
    7612   case 504:
    7613 
    7614 /* Line 1806 of yacc.c  */
    7615 #line 1877 "parser.yy"
     7651  case 505:
     7652
     7653/* Line 1806 of yacc.c  */
     7654#line 1879 "parser.yy"
    76167655    {
    76177656                        typedefTable.leaveContext();
     
    76217660    break;
    76227661
    7623   case 506:
    7624 
    7625 /* Line 1806 of yacc.c  */
    7626 #line 1887 "parser.yy"
     7662  case 507:
     7663
     7664/* Line 1806 of yacc.c  */
     7665#line 1889 "parser.yy"
    76277666    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76287667    break;
    76297668
    7630   case 509:
    7631 
    7632 /* Line 1806 of yacc.c  */
    7633 #line 1897 "parser.yy"
     7669  case 510:
     7670
     7671/* Line 1806 of yacc.c  */
     7672#line 1899 "parser.yy"
    76347673    {
    76357674                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76387677    break;
    76397678
    7640   case 510:
    7641 
    7642 /* Line 1806 of yacc.c  */
    7643 #line 1902 "parser.yy"
     7679  case 511:
     7680
     7681/* Line 1806 of yacc.c  */
     7682#line 1904 "parser.yy"
    76447683    {
    76457684                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76487687    break;
    76497688
    7650   case 511:
    7651 
    7652 /* Line 1806 of yacc.c  */
    7653 #line 1907 "parser.yy"
     7689  case 512:
     7690
     7691/* Line 1806 of yacc.c  */
     7692#line 1909 "parser.yy"
    76547693    {
    76557694                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76587697    break;
    76597698
    7660   case 512:
    7661 
    7662 /* Line 1806 of yacc.c  */
    7663 #line 1915 "parser.yy"
     7699  case 513:
     7700
     7701/* Line 1806 of yacc.c  */
     7702#line 1917 "parser.yy"
    76647703    {
    76657704                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76687707    break;
    76697708
    7670   case 513:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1920 "parser.yy"
     7709  case 514:
     7710
     7711/* Line 1806 of yacc.c  */
     7712#line 1922 "parser.yy"
    76747713    {
    76757714                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76787717    break;
    76797718
    7680   case 514:
    7681 
    7682 /* Line 1806 of yacc.c  */
    7683 #line 1930 "parser.yy"
     7719  case 515:
     7720
     7721/* Line 1806 of yacc.c  */
     7722#line 1932 "parser.yy"
    76847723    {}
    76857724    break;
    76867725
    7687   case 515:
    7688 
    7689 /* Line 1806 of yacc.c  */
    7690 #line 1932 "parser.yy"
     7726  case 516:
     7727
     7728/* Line 1806 of yacc.c  */
     7729#line 1934 "parser.yy"
    76917730    {
    76927731                        if ( theTree ) {
     
    76987737    break;
    76997738
    7700   case 517:
    7701 
    7702 /* Line 1806 of yacc.c  */
    7703 #line 1944 "parser.yy"
     7739  case 518:
     7740
     7741/* Line 1806 of yacc.c  */
     7742#line 1946 "parser.yy"
    77047743    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77057744    break;
    77067745
    7707   case 518:
    7708 
    7709 /* Line 1806 of yacc.c  */
    7710 #line 1949 "parser.yy"
     7746  case 519:
     7747
     7748/* Line 1806 of yacc.c  */
     7749#line 1951 "parser.yy"
    77117750    { (yyval.decl) = 0; }
    77127751    break;
    77137752
    7714   case 522:
    7715 
    7716 /* Line 1806 of yacc.c  */
    7717 #line 1957 "parser.yy"
     7753  case 523:
     7754
     7755/* Line 1806 of yacc.c  */
     7756#line 1959 "parser.yy"
    77187757    {}
    77197758    break;
    77207759
    7721   case 523:
    7722 
    7723 /* Line 1806 of yacc.c  */
    7724 #line 1959 "parser.yy"
     7760  case 524:
     7761
     7762/* Line 1806 of yacc.c  */
     7763#line 1961 "parser.yy"
    77257764    {
    77267765                        linkageStack.push( linkage );
     
    77297768    break;
    77307769
    7731   case 524:
    7732 
    7733 /* Line 1806 of yacc.c  */
    7734 #line 1964 "parser.yy"
     7770  case 525:
     7771
     7772/* Line 1806 of yacc.c  */
     7773#line 1966 "parser.yy"
    77357774    {
    77367775                        linkage = linkageStack.top();
     
    77407779    break;
    77417780
    7742   case 525:
    7743 
    7744 /* Line 1806 of yacc.c  */
    7745 #line 1970 "parser.yy"
     7781  case 526:
     7782
     7783/* Line 1806 of yacc.c  */
     7784#line 1972 "parser.yy"
    77467785    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77477786    break;
    77487787
    7749   case 527:
    7750 
    7751 /* Line 1806 of yacc.c  */
    7752 #line 1980 "parser.yy"
     7788  case 528:
     7789
     7790/* Line 1806 of yacc.c  */
     7791#line 1982 "parser.yy"
    77537792    {
    77547793                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77587797    break;
    77597798
    7760   case 528:
    7761 
    7762 /* Line 1806 of yacc.c  */
    7763 #line 1986 "parser.yy"
     7799  case 529:
     7800
     7801/* Line 1806 of yacc.c  */
     7802#line 1988 "parser.yy"
    77647803    {
    77657804                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77697808    break;
    77707809
    7771   case 529:
    7772 
    7773 /* Line 1806 of yacc.c  */
    7774 #line 1995 "parser.yy"
     7810  case 530:
     7811
     7812/* Line 1806 of yacc.c  */
     7813#line 1997 "parser.yy"
    77757814    {
    77767815                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77807819    break;
    77817820
    7782   case 530:
    7783 
    7784 /* Line 1806 of yacc.c  */
    7785 #line 2001 "parser.yy"
     7821  case 531:
     7822
     7823/* Line 1806 of yacc.c  */
     7824#line 2003 "parser.yy"
    77867825    {
    77877826                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77917830    break;
    77927831
    7793   case 531:
    7794 
    7795 /* Line 1806 of yacc.c  */
    7796 #line 2007 "parser.yy"
     7832  case 532:
     7833
     7834/* Line 1806 of yacc.c  */
     7835#line 2009 "parser.yy"
    77977836    {
    77987837                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78027841    break;
    78037842
    7804   case 532:
    7805 
    7806 /* Line 1806 of yacc.c  */
    7807 #line 2013 "parser.yy"
     7843  case 533:
     7844
     7845/* Line 1806 of yacc.c  */
     7846#line 2015 "parser.yy"
    78087847    {
    78097848                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78137852    break;
    78147853
    7815   case 533:
    7816 
    7817 /* Line 1806 of yacc.c  */
    7818 #line 2019 "parser.yy"
     7854  case 534:
     7855
     7856/* Line 1806 of yacc.c  */
     7857#line 2021 "parser.yy"
    78197858    {
    78207859                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78247863    break;
    78257864
    7826   case 534:
    7827 
    7828 /* Line 1806 of yacc.c  */
    7829 #line 2027 "parser.yy"
     7865  case 535:
     7866
     7867/* Line 1806 of yacc.c  */
     7868#line 2029 "parser.yy"
    78307869    {
    78317870                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78357874    break;
    78367875
    7837   case 535:
    7838 
    7839 /* Line 1806 of yacc.c  */
    7840 #line 2033 "parser.yy"
     7876  case 536:
     7877
     7878/* Line 1806 of yacc.c  */
     7879#line 2035 "parser.yy"
    78417880    {
    78427881                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78467885    break;
    78477886
    7848   case 536:
    7849 
    7850 /* Line 1806 of yacc.c  */
    7851 #line 2041 "parser.yy"
     7887  case 537:
     7888
     7889/* Line 1806 of yacc.c  */
     7890#line 2043 "parser.yy"
    78527891    {
    78537892                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78577896    break;
    78587897
    7859   case 537:
    7860 
    7861 /* Line 1806 of yacc.c  */
    7862 #line 2047 "parser.yy"
     7898  case 538:
     7899
     7900/* Line 1806 of yacc.c  */
     7901#line 2049 "parser.yy"
    78637902    {
    78647903                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78687907    break;
    78697908
    7870   case 541:
    7871 
    7872 /* Line 1806 of yacc.c  */
    7873 #line 2062 "parser.yy"
     7909  case 542:
     7910
     7911/* Line 1806 of yacc.c  */
     7912#line 2064 "parser.yy"
    78747913    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    78757914    break;
    78767915
    7877   case 544:
    7878 
    7879 /* Line 1806 of yacc.c  */
    7880 #line 2072 "parser.yy"
     7916  case 545:
     7917
     7918/* Line 1806 of yacc.c  */
     7919#line 2074 "parser.yy"
    78817920    { (yyval.decl) = 0; }
    78827921    break;
    78837922
    7884   case 547:
    7885 
    7886 /* Line 1806 of yacc.c  */
    7887 #line 2079 "parser.yy"
     7923  case 548:
     7924
     7925/* Line 1806 of yacc.c  */
     7926#line 2081 "parser.yy"
    78887927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78897928    break;
    78907929
    7891   case 548:
    7892 
    7893 /* Line 1806 of yacc.c  */
    7894 #line 2085 "parser.yy"
     7930  case 549:
     7931
     7932/* Line 1806 of yacc.c  */
     7933#line 2087 "parser.yy"
    78957934    { (yyval.decl) = 0; }
    78967935    break;
    78977936
    7898   case 554:
    7899 
    7900 /* Line 1806 of yacc.c  */
    7901 #line 2100 "parser.yy"
    7902     {}
    7903     break;
    7904 
    79057937  case 555:
    7906 
    7907 /* Line 1806 of yacc.c  */
    7908 #line 2101 "parser.yy"
    7909     {}
    7910     break;
    7911 
    7912   case 556:
    79137938
    79147939/* Line 1806 of yacc.c  */
     
    79177942    break;
    79187943
    7919   case 557:
     7944  case 556:
    79207945
    79217946/* Line 1806 of yacc.c  */
     
    79247949    break;
    79257950
     7951  case 557:
     7952
     7953/* Line 1806 of yacc.c  */
     7954#line 2104 "parser.yy"
     7955    {}
     7956    break;
     7957
    79267958  case 558:
    79277959
    79287960/* Line 1806 of yacc.c  */
    7929 #line 2138 "parser.yy"
    7930     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7931     break;
    7932 
    7933   case 560:
    7934 
    7935 /* Line 1806 of yacc.c  */
    7936 #line 2141 "parser.yy"
     7961#line 2105 "parser.yy"
     7962    {}
     7963    break;
     7964
     7965  case 559:
     7966
     7967/* Line 1806 of yacc.c  */
     7968#line 2140 "parser.yy"
    79377969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79387970    break;
     
    79487980
    79497981/* Line 1806 of yacc.c  */
    7950 #line 2148 "parser.yy"
     7982#line 2145 "parser.yy"
     7983    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7984    break;
     7985
     7986  case 563:
     7987
     7988/* Line 1806 of yacc.c  */
     7989#line 2150 "parser.yy"
    79517990    {
    79527991                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79557994    break;
    79567995
    7957   case 563:
    7958 
    7959 /* Line 1806 of yacc.c  */
    7960 #line 2153 "parser.yy"
     7996  case 564:
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2155 "parser.yy"
    79618000    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79628001    break;
    79638002
    7964   case 564:
    7965 
    7966 /* Line 1806 of yacc.c  */
    7967 #line 2158 "parser.yy"
     8003  case 565:
     8004
     8005/* Line 1806 of yacc.c  */
     8006#line 2160 "parser.yy"
    79688007    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    79698008    break;
    79708009
    7971   case 565:
    7972 
    7973 /* Line 1806 of yacc.c  */
    7974 #line 2160 "parser.yy"
     8010  case 566:
     8011
     8012/* Line 1806 of yacc.c  */
     8013#line 2162 "parser.yy"
    79758014    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    79768015    break;
    79778016
    7978   case 566:
    7979 
    7980 /* Line 1806 of yacc.c  */
    7981 #line 2162 "parser.yy"
     8017  case 567:
     8018
     8019/* Line 1806 of yacc.c  */
     8020#line 2164 "parser.yy"
    79828021    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79838022    break;
    79848023
    7985   case 567:
    7986 
    7987 /* Line 1806 of yacc.c  */
    7988 #line 2167 "parser.yy"
     8024  case 568:
     8025
     8026/* Line 1806 of yacc.c  */
     8027#line 2169 "parser.yy"
    79898028    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    7990     break;
    7991 
    7992   case 568:
    7993 
    7994 /* Line 1806 of yacc.c  */
    7995 #line 2169 "parser.yy"
    7996     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79978029    break;
    79988030
     
    80088040/* Line 1806 of yacc.c  */
    80098041#line 2173 "parser.yy"
     8042    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8043    break;
     8044
     8045  case 571:
     8046
     8047/* Line 1806 of yacc.c  */
     8048#line 2175 "parser.yy"
    80108049    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80118050    break;
    80128051
    8013   case 571:
    8014 
    8015 /* Line 1806 of yacc.c  */
    8016 #line 2178 "parser.yy"
     8052  case 572:
     8053
     8054/* Line 1806 of yacc.c  */
     8055#line 2180 "parser.yy"
    80178056    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80188057    break;
    80198058
    8020   case 572:
    8021 
    8022 /* Line 1806 of yacc.c  */
    8023 #line 2180 "parser.yy"
     8059  case 573:
     8060
     8061/* Line 1806 of yacc.c  */
     8062#line 2182 "parser.yy"
    80248063    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80258064    break;
    80268065
    8027   case 573:
    8028 
    8029 /* Line 1806 of yacc.c  */
    8030 #line 2190 "parser.yy"
     8066  case 574:
     8067
     8068/* Line 1806 of yacc.c  */
     8069#line 2192 "parser.yy"
    80318070    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80328071    break;
    80338072
    8034   case 575:
    8035 
    8036 /* Line 1806 of yacc.c  */
    8037 #line 2193 "parser.yy"
     8073  case 576:
     8074
     8075/* Line 1806 of yacc.c  */
     8076#line 2195 "parser.yy"
    80388077    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80398078    break;
    80408079
    8041   case 576:
    8042 
    8043 /* Line 1806 of yacc.c  */
    8044 #line 2198 "parser.yy"
     8080  case 577:
     8081
     8082/* Line 1806 of yacc.c  */
     8083#line 2200 "parser.yy"
    80458084    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80468085    break;
    80478086
    8048   case 577:
    8049 
    8050 /* Line 1806 of yacc.c  */
    8051 #line 2200 "parser.yy"
     8087  case 578:
     8088
     8089/* Line 1806 of yacc.c  */
     8090#line 2202 "parser.yy"
    80528091    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80538092    break;
    80548093
    8055   case 578:
    8056 
    8057 /* Line 1806 of yacc.c  */
    8058 #line 2202 "parser.yy"
     8094  case 579:
     8095
     8096/* Line 1806 of yacc.c  */
     8097#line 2204 "parser.yy"
    80598098    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80608099    break;
    80618100
    8062   case 579:
    8063 
    8064 /* Line 1806 of yacc.c  */
    8065 #line 2207 "parser.yy"
     8101  case 580:
     8102
     8103/* Line 1806 of yacc.c  */
     8104#line 2209 "parser.yy"
    80668105    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80678106    break;
    80688107
    8069   case 580:
    8070 
    8071 /* Line 1806 of yacc.c  */
    8072 #line 2209 "parser.yy"
     8108  case 581:
     8109
     8110/* Line 1806 of yacc.c  */
     8111#line 2211 "parser.yy"
    80738112    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80748113    break;
    80758114
    8076   case 581:
    8077 
    8078 /* Line 1806 of yacc.c  */
    8079 #line 2211 "parser.yy"
     8115  case 582:
     8116
     8117/* Line 1806 of yacc.c  */
     8118#line 2213 "parser.yy"
    80808119    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8081     break;
    8082 
    8083   case 582:
    8084 
    8085 /* Line 1806 of yacc.c  */
    8086 #line 2216 "parser.yy"
    8087     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80888120    break;
    80898121
     
    80998131/* Line 1806 of yacc.c  */
    81008132#line 2220 "parser.yy"
     8133    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8134    break;
     8135
     8136  case 585:
     8137
     8138/* Line 1806 of yacc.c  */
     8139#line 2222 "parser.yy"
    81018140    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81028141    break;
    81038142
    8104   case 588:
    8105 
    8106 /* Line 1806 of yacc.c  */
    8107 #line 2235 "parser.yy"
     8143  case 589:
     8144
     8145/* Line 1806 of yacc.c  */
     8146#line 2237 "parser.yy"
    81088147    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    81098148    break;
    81108149
    8111   case 589:
    8112 
    8113 /* Line 1806 of yacc.c  */
    8114 #line 2237 "parser.yy"
     8150  case 590:
     8151
     8152/* Line 1806 of yacc.c  */
     8153#line 2239 "parser.yy"
    81158154    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    81168155    break;
    81178156
    8118   case 590:
    8119 
    8120 /* Line 1806 of yacc.c  */
    8121 #line 2239 "parser.yy"
     8157  case 591:
     8158
     8159/* Line 1806 of yacc.c  */
     8160#line 2241 "parser.yy"
    81228161    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81238162    break;
    81248163
    8125   case 591:
    8126 
    8127 /* Line 1806 of yacc.c  */
    8128 #line 2244 "parser.yy"
     8164  case 592:
     8165
     8166/* Line 1806 of yacc.c  */
     8167#line 2246 "parser.yy"
    81298168    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81308169    break;
    81318170
    8132   case 592:
    8133 
    8134 /* Line 1806 of yacc.c  */
    8135 #line 2246 "parser.yy"
     8171  case 593:
     8172
     8173/* Line 1806 of yacc.c  */
     8174#line 2248 "parser.yy"
    81368175    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81378176    break;
    81388177
    8139   case 593:
    8140 
    8141 /* Line 1806 of yacc.c  */
    8142 #line 2248 "parser.yy"
     8178  case 594:
     8179
     8180/* Line 1806 of yacc.c  */
     8181#line 2250 "parser.yy"
    81438182    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8144     break;
    8145 
    8146   case 594:
    8147 
    8148 /* Line 1806 of yacc.c  */
    8149 #line 2253 "parser.yy"
    8150     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81518183    break;
    81528184
     
    81628194/* Line 1806 of yacc.c  */
    81638195#line 2257 "parser.yy"
     8196    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8197    break;
     8198
     8199  case 597:
     8200
     8201/* Line 1806 of yacc.c  */
     8202#line 2259 "parser.yy"
    81648203    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81658204    break;
    81668205
    8167   case 597:
    8168 
    8169 /* Line 1806 of yacc.c  */
    8170 #line 2272 "parser.yy"
    8171     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8172     break;
    8173 
    8174   case 599:
    8175 
    8176 /* Line 1806 of yacc.c  */
    8177 #line 2275 "parser.yy"
     8206  case 598:
     8207
     8208/* Line 1806 of yacc.c  */
     8209#line 2274 "parser.yy"
    81788210    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81798211    break;
     
    81868218    break;
    81878219
    8188   case 602:
    8189 
    8190 /* Line 1806 of yacc.c  */
    8191 #line 2283 "parser.yy"
     8220  case 601:
     8221
     8222/* Line 1806 of yacc.c  */
     8223#line 2279 "parser.yy"
     8224    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8225    break;
     8226
     8227  case 603:
     8228
     8229/* Line 1806 of yacc.c  */
     8230#line 2285 "parser.yy"
    81928231    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81938232    break;
    81948233
    8195   case 603:
    8196 
    8197 /* Line 1806 of yacc.c  */
    8198 #line 2288 "parser.yy"
     8234  case 604:
     8235
     8236/* Line 1806 of yacc.c  */
     8237#line 2290 "parser.yy"
    81998238    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82008239    break;
    82018240
    8202   case 604:
    8203 
    8204 /* Line 1806 of yacc.c  */
    8205 #line 2290 "parser.yy"
     8241  case 605:
     8242
     8243/* Line 1806 of yacc.c  */
     8244#line 2292 "parser.yy"
    82068245    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82078246    break;
    82088247
    8209   case 605:
    8210 
    8211 /* Line 1806 of yacc.c  */
    8212 #line 2292 "parser.yy"
     8248  case 606:
     8249
     8250/* Line 1806 of yacc.c  */
     8251#line 2294 "parser.yy"
    82138252    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82148253    break;
    82158254
    8216   case 606:
    8217 
    8218 /* Line 1806 of yacc.c  */
    8219 #line 2297 "parser.yy"
     8255  case 607:
     8256
     8257/* Line 1806 of yacc.c  */
     8258#line 2299 "parser.yy"
    82208259    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8221     break;
    8222 
    8223   case 607:
    8224 
    8225 /* Line 1806 of yacc.c  */
    8226 #line 2299 "parser.yy"
    8227     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82288260    break;
    82298261
     
    82398271/* Line 1806 of yacc.c  */
    82408272#line 2303 "parser.yy"
     8273    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8274    break;
     8275
     8276  case 610:
     8277
     8278/* Line 1806 of yacc.c  */
     8279#line 2305 "parser.yy"
    82418280    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82428281    break;
    82438282
    8244   case 610:
    8245 
    8246 /* Line 1806 of yacc.c  */
    8247 #line 2308 "parser.yy"
     8283  case 611:
     8284
     8285/* Line 1806 of yacc.c  */
     8286#line 2310 "parser.yy"
    82488287    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82498288    break;
    82508289
    8251   case 611:
    8252 
    8253 /* Line 1806 of yacc.c  */
    8254 #line 2310 "parser.yy"
     8290  case 612:
     8291
     8292/* Line 1806 of yacc.c  */
     8293#line 2312 "parser.yy"
    82558294    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82568295    break;
    82578296
    8258   case 612:
    8259 
    8260 /* Line 1806 of yacc.c  */
    8261 #line 2312 "parser.yy"
     8297  case 613:
     8298
     8299/* Line 1806 of yacc.c  */
     8300#line 2314 "parser.yy"
    82628301    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82638302    break;
    82648303
    8265   case 613:
    8266 
    8267 /* Line 1806 of yacc.c  */
    8268 #line 2322 "parser.yy"
    8269     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8270     break;
    8271 
    8272   case 615:
    8273 
    8274 /* Line 1806 of yacc.c  */
    8275 #line 2325 "parser.yy"
     8304  case 614:
     8305
     8306/* Line 1806 of yacc.c  */
     8307#line 2324 "parser.yy"
    82768308    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82778309    break;
     
    82878319
    82888320/* Line 1806 of yacc.c  */
    8289 #line 2332 "parser.yy"
     8321#line 2329 "parser.yy"
     8322    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8323    break;
     8324
     8325  case 618:
     8326
     8327/* Line 1806 of yacc.c  */
     8328#line 2334 "parser.yy"
    82908329    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82918330    break;
    82928331
    8293   case 618:
    8294 
    8295 /* Line 1806 of yacc.c  */
    8296 #line 2334 "parser.yy"
     8332  case 619:
     8333
     8334/* Line 1806 of yacc.c  */
     8335#line 2336 "parser.yy"
    82978336    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82988337    break;
    82998338
    8300   case 619:
    8301 
    8302 /* Line 1806 of yacc.c  */
    8303 #line 2336 "parser.yy"
     8339  case 620:
     8340
     8341/* Line 1806 of yacc.c  */
     8342#line 2338 "parser.yy"
    83048343    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83058344    break;
    83068345
    8307   case 620:
    8308 
    8309 /* Line 1806 of yacc.c  */
    8310 #line 2341 "parser.yy"
     8346  case 621:
     8347
     8348/* Line 1806 of yacc.c  */
     8349#line 2343 "parser.yy"
    83118350    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8312     break;
    8313 
    8314   case 621:
    8315 
    8316 /* Line 1806 of yacc.c  */
    8317 #line 2343 "parser.yy"
    8318     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83198351    break;
    83208352
     
    83308362/* Line 1806 of yacc.c  */
    83318363#line 2347 "parser.yy"
     8364    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8365    break;
     8366
     8367  case 624:
     8368
     8369/* Line 1806 of yacc.c  */
     8370#line 2349 "parser.yy"
    83328371    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83338372    break;
    83348373
    8335   case 624:
    8336 
    8337 /* Line 1806 of yacc.c  */
    8338 #line 2352 "parser.yy"
     8374  case 625:
     8375
     8376/* Line 1806 of yacc.c  */
     8377#line 2354 "parser.yy"
    83398378    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83408379    break;
    83418380
    8342   case 625:
    8343 
    8344 /* Line 1806 of yacc.c  */
    8345 #line 2354 "parser.yy"
     8381  case 626:
     8382
     8383/* Line 1806 of yacc.c  */
     8384#line 2356 "parser.yy"
    83468385    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83478386    break;
    83488387
    8349   case 626:
    8350 
    8351 /* Line 1806 of yacc.c  */
    8352 #line 2356 "parser.yy"
     8388  case 627:
     8389
     8390/* Line 1806 of yacc.c  */
     8391#line 2358 "parser.yy"
    83538392    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83548393    break;
    83558394
    8356   case 627:
    8357 
    8358 /* Line 1806 of yacc.c  */
    8359 #line 2387 "parser.yy"
    8360     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8361     break;
    8362 
    8363   case 629:
    8364 
    8365 /* Line 1806 of yacc.c  */
    8366 #line 2390 "parser.yy"
     8395  case 628:
     8396
     8397/* Line 1806 of yacc.c  */
     8398#line 2389 "parser.yy"
    83678399    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83688400    break;
     
    83788410
    83798411/* Line 1806 of yacc.c  */
    8380 #line 2397 "parser.yy"
     8412#line 2394 "parser.yy"
     8413    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8414    break;
     8415
     8416  case 632:
     8417
     8418/* Line 1806 of yacc.c  */
     8419#line 2399 "parser.yy"
    83818420    {
    83828421                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83858424    break;
    83868425
    8387   case 632:
    8388 
    8389 /* Line 1806 of yacc.c  */
    8390 #line 2402 "parser.yy"
     8426  case 633:
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2404 "parser.yy"
    83918430    {
    83928431                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83958434    break;
    83968435
    8397   case 633:
    8398 
    8399 /* Line 1806 of yacc.c  */
    8400 #line 2410 "parser.yy"
     8436  case 634:
     8437
     8438/* Line 1806 of yacc.c  */
     8439#line 2412 "parser.yy"
    84018440    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84028441    break;
    84038442
    8404   case 634:
    8405 
    8406 /* Line 1806 of yacc.c  */
    8407 #line 2412 "parser.yy"
     8443  case 635:
     8444
     8445/* Line 1806 of yacc.c  */
     8446#line 2414 "parser.yy"
    84088447    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84098448    break;
    84108449
    8411   case 635:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2414 "parser.yy"
     8450  case 636:
     8451
     8452/* Line 1806 of yacc.c  */
     8453#line 2416 "parser.yy"
    84158454    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84168455    break;
    84178456
    8418   case 636:
    8419 
    8420 /* Line 1806 of yacc.c  */
    8421 #line 2419 "parser.yy"
     8457  case 637:
     8458
     8459/* Line 1806 of yacc.c  */
     8460#line 2421 "parser.yy"
    84228461    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84238462    break;
    84248463
    8425   case 637:
    8426 
    8427 /* Line 1806 of yacc.c  */
    8428 #line 2421 "parser.yy"
     8464  case 638:
     8465
     8466/* Line 1806 of yacc.c  */
     8467#line 2423 "parser.yy"
    84298468    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84308469    break;
    84318470
    8432   case 638:
    8433 
    8434 /* Line 1806 of yacc.c  */
    8435 #line 2426 "parser.yy"
     8471  case 639:
     8472
     8473/* Line 1806 of yacc.c  */
     8474#line 2428 "parser.yy"
    84368475    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84378476    break;
    84388477
    8439   case 639:
    8440 
    8441 /* Line 1806 of yacc.c  */
    8442 #line 2428 "parser.yy"
     8478  case 640:
     8479
     8480/* Line 1806 of yacc.c  */
     8481#line 2430 "parser.yy"
    84438482    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8444     break;
    8445 
    8446   case 641:
    8447 
    8448 /* Line 1806 of yacc.c  */
    8449 #line 2443 "parser.yy"
    8450     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84518483    break;
    84528484
     
    84618493
    84628494/* Line 1806 of yacc.c  */
    8463 #line 2450 "parser.yy"
     8495#line 2447 "parser.yy"
     8496    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8497    break;
     8498
     8499  case 644:
     8500
     8501/* Line 1806 of yacc.c  */
     8502#line 2452 "parser.yy"
    84648503    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    84658504    break;
    84668505
    8467   case 644:
    8468 
    8469 /* Line 1806 of yacc.c  */
    8470 #line 2452 "parser.yy"
     8506  case 645:
     8507
     8508/* Line 1806 of yacc.c  */
     8509#line 2454 "parser.yy"
    84718510    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    84728511    break;
    84738512
    8474   case 645:
    8475 
    8476 /* Line 1806 of yacc.c  */
    8477 #line 2454 "parser.yy"
     8513  case 646:
     8514
     8515/* Line 1806 of yacc.c  */
     8516#line 2456 "parser.yy"
    84788517    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84798518    break;
    84808519
    8481   case 646:
    8482 
    8483 /* Line 1806 of yacc.c  */
    8484 #line 2456 "parser.yy"
     8520  case 647:
     8521
     8522/* Line 1806 of yacc.c  */
     8523#line 2458 "parser.yy"
    84858524    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84868525    break;
    84878526
    8488   case 647:
    8489 
    8490 /* Line 1806 of yacc.c  */
    8491 #line 2458 "parser.yy"
     8527  case 648:
     8528
     8529/* Line 1806 of yacc.c  */
     8530#line 2460 "parser.yy"
    84928531    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8493     break;
    8494 
    8495   case 649:
    8496 
    8497 /* Line 1806 of yacc.c  */
    8498 #line 2464 "parser.yy"
    8499     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85008532    break;
    85018533
     
    85118543/* Line 1806 of yacc.c  */
    85128544#line 2468 "parser.yy"
     8545    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8546    break;
     8547
     8548  case 652:
     8549
     8550/* Line 1806 of yacc.c  */
     8551#line 2470 "parser.yy"
    85138552    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85148553    break;
    85158554
    8516   case 652:
    8517 
    8518 /* Line 1806 of yacc.c  */
    8519 #line 2473 "parser.yy"
     8555  case 653:
     8556
     8557/* Line 1806 of yacc.c  */
     8558#line 2475 "parser.yy"
    85208559    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85218560    break;
    85228561
    8523   case 653:
    8524 
    8525 /* Line 1806 of yacc.c  */
    8526 #line 2475 "parser.yy"
     8562  case 654:
     8563
     8564/* Line 1806 of yacc.c  */
     8565#line 2477 "parser.yy"
    85278566    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85288567    break;
    85298568
    8530   case 654:
    8531 
    8532 /* Line 1806 of yacc.c  */
    8533 #line 2477 "parser.yy"
     8569  case 655:
     8570
     8571/* Line 1806 of yacc.c  */
     8572#line 2479 "parser.yy"
    85348573    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85358574    break;
    85368575
    8537   case 655:
    8538 
    8539 /* Line 1806 of yacc.c  */
    8540 #line 2483 "parser.yy"
     8576  case 656:
     8577
     8578/* Line 1806 of yacc.c  */
     8579#line 2485 "parser.yy"
    85418580    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    85428581    break;
    85438582
    8544   case 656:
    8545 
    8546 /* Line 1806 of yacc.c  */
    8547 #line 2485 "parser.yy"
     8583  case 657:
     8584
     8585/* Line 1806 of yacc.c  */
     8586#line 2487 "parser.yy"
    85488587    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    85498588    break;
    85508589
    8551   case 658:
    8552 
    8553 /* Line 1806 of yacc.c  */
    8554 #line 2491 "parser.yy"
     8590  case 659:
     8591
     8592/* Line 1806 of yacc.c  */
     8593#line 2493 "parser.yy"
    85558594    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    85568595    break;
    85578596
    8558   case 659:
    8559 
    8560 /* Line 1806 of yacc.c  */
    8561 #line 2493 "parser.yy"
     8597  case 660:
     8598
     8599/* Line 1806 of yacc.c  */
     8600#line 2495 "parser.yy"
    85628601    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    85638602    break;
    85648603
    8565   case 660:
    8566 
    8567 /* Line 1806 of yacc.c  */
    8568 #line 2495 "parser.yy"
     8604  case 661:
     8605
     8606/* Line 1806 of yacc.c  */
     8607#line 2497 "parser.yy"
    85698608    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    85708609    break;
    85718610
    8572   case 661:
    8573 
    8574 /* Line 1806 of yacc.c  */
    8575 #line 2497 "parser.yy"
     8611  case 662:
     8612
     8613/* Line 1806 of yacc.c  */
     8614#line 2499 "parser.yy"
    85768615    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8577     break;
    8578 
    8579   case 663:
    8580 
    8581 /* Line 1806 of yacc.c  */
    8582 #line 2512 "parser.yy"
    8583     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85848616    break;
    85858617
     
    85948626
    85958627/* Line 1806 of yacc.c  */
    8596 #line 2519 "parser.yy"
     8628#line 2516 "parser.yy"
     8629    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8630    break;
     8631
     8632  case 666:
     8633
     8634/* Line 1806 of yacc.c  */
     8635#line 2521 "parser.yy"
    85978636    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85988637    break;
    85998638
    8600   case 666:
    8601 
    8602 /* Line 1806 of yacc.c  */
    8603 #line 2521 "parser.yy"
     8639  case 667:
     8640
     8641/* Line 1806 of yacc.c  */
     8642#line 2523 "parser.yy"
    86048643    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86058644    break;
    86068645
    8607   case 667:
    8608 
    8609 /* Line 1806 of yacc.c  */
    8610 #line 2523 "parser.yy"
     8646  case 668:
     8647
     8648/* Line 1806 of yacc.c  */
     8649#line 2525 "parser.yy"
    86118650    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86128651    break;
    86138652
    8614   case 668:
    8615 
    8616 /* Line 1806 of yacc.c  */
    8617 #line 2525 "parser.yy"
     8653  case 669:
     8654
     8655/* Line 1806 of yacc.c  */
     8656#line 2527 "parser.yy"
    86188657    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86198658    break;
    86208659
    8621   case 669:
    8622 
    8623 /* Line 1806 of yacc.c  */
    8624 #line 2527 "parser.yy"
     8660  case 670:
     8661
     8662/* Line 1806 of yacc.c  */
     8663#line 2529 "parser.yy"
    86258664    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8626     break;
    8627 
    8628   case 671:
    8629 
    8630 /* Line 1806 of yacc.c  */
    8631 #line 2533 "parser.yy"
    8632     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86338665    break;
    86348666
     
    86448676/* Line 1806 of yacc.c  */
    86458677#line 2537 "parser.yy"
     8678    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8679    break;
     8680
     8681  case 674:
     8682
     8683/* Line 1806 of yacc.c  */
     8684#line 2539 "parser.yy"
    86468685    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86478686    break;
    86488687
    8649   case 674:
    8650 
    8651 /* Line 1806 of yacc.c  */
    8652 #line 2542 "parser.yy"
     8688  case 675:
     8689
     8690/* Line 1806 of yacc.c  */
     8691#line 2544 "parser.yy"
    86538692    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86548693    break;
    86558694
    8656   case 675:
    8657 
    8658 /* Line 1806 of yacc.c  */
    8659 #line 2544 "parser.yy"
     8695  case 676:
     8696
     8697/* Line 1806 of yacc.c  */
     8698#line 2546 "parser.yy"
    86608699    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86618700    break;
    86628701
    8663   case 676:
    8664 
    8665 /* Line 1806 of yacc.c  */
    8666 #line 2546 "parser.yy"
     8702  case 677:
     8703
     8704/* Line 1806 of yacc.c  */
     8705#line 2548 "parser.yy"
    86678706    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86688707    break;
    86698708
    8670   case 678:
    8671 
    8672 /* Line 1806 of yacc.c  */
    8673 #line 2553 "parser.yy"
     8709  case 679:
     8710
     8711/* Line 1806 of yacc.c  */
     8712#line 2555 "parser.yy"
    86748713    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    86758714    break;
    86768715
    8677   case 680:
    8678 
    8679 /* Line 1806 of yacc.c  */
    8680 #line 2564 "parser.yy"
     8716  case 681:
     8717
     8718/* Line 1806 of yacc.c  */
     8719#line 2566 "parser.yy"
    86818720    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86828721    break;
    86838722
    8684   case 681:
    8685 
    8686 /* Line 1806 of yacc.c  */
    8687 #line 2567 "parser.yy"
     8723  case 682:
     8724
     8725/* Line 1806 of yacc.c  */
     8726#line 2569 "parser.yy"
    86888727    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86898728    break;
    86908729
    8691   case 682:
    8692 
    8693 /* Line 1806 of yacc.c  */
    8694 #line 2569 "parser.yy"
     8730  case 683:
     8731
     8732/* Line 1806 of yacc.c  */
     8733#line 2571 "parser.yy"
    86958734    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    86968735    break;
    86978736
    8698   case 683:
    8699 
    8700 /* Line 1806 of yacc.c  */
    8701 #line 2572 "parser.yy"
     8737  case 684:
     8738
     8739/* Line 1806 of yacc.c  */
     8740#line 2574 "parser.yy"
    87028741    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87038742    break;
    87048743
    8705   case 684:
    8706 
    8707 /* Line 1806 of yacc.c  */
    8708 #line 2574 "parser.yy"
     8744  case 685:
     8745
     8746/* Line 1806 of yacc.c  */
     8747#line 2576 "parser.yy"
    87098748    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    87108749    break;
    87118750
    8712   case 685:
    8713 
    8714 /* Line 1806 of yacc.c  */
    8715 #line 2576 "parser.yy"
     8751  case 686:
     8752
     8753/* Line 1806 of yacc.c  */
     8754#line 2578 "parser.yy"
    87168755    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8717     break;
    8718 
    8719   case 687:
    8720 
    8721 /* Line 1806 of yacc.c  */
    8722 #line 2590 "parser.yy"
    8723     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87248756    break;
    87258757
     
    87348766
    87358767/* Line 1806 of yacc.c  */
    8736 #line 2597 "parser.yy"
     8768#line 2594 "parser.yy"
     8769    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8770    break;
     8771
     8772  case 690:
     8773
     8774/* Line 1806 of yacc.c  */
     8775#line 2599 "parser.yy"
    87378776    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87388777    break;
    87398778
    8740   case 690:
    8741 
    8742 /* Line 1806 of yacc.c  */
    8743 #line 2599 "parser.yy"
     8779  case 691:
     8780
     8781/* Line 1806 of yacc.c  */
     8782#line 2601 "parser.yy"
    87448783    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87458784    break;
    87468785
    8747   case 691:
    8748 
    8749 /* Line 1806 of yacc.c  */
    8750 #line 2601 "parser.yy"
     8786  case 692:
     8787
     8788/* Line 1806 of yacc.c  */
     8789#line 2603 "parser.yy"
    87518790    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87528791    break;
    87538792
    8754   case 692:
    8755 
    8756 /* Line 1806 of yacc.c  */
    8757 #line 2603 "parser.yy"
     8793  case 693:
     8794
     8795/* Line 1806 of yacc.c  */
     8796#line 2605 "parser.yy"
    87588797    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87598798    break;
    87608799
    8761   case 693:
    8762 
    8763 /* Line 1806 of yacc.c  */
    8764 #line 2605 "parser.yy"
     8800  case 694:
     8801
     8802/* Line 1806 of yacc.c  */
     8803#line 2607 "parser.yy"
    87658804    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8766     break;
    8767 
    8768   case 695:
    8769 
    8770 /* Line 1806 of yacc.c  */
    8771 #line 2611 "parser.yy"
    8772     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87738805    break;
    87748806
     
    87848816/* Line 1806 of yacc.c  */
    87858817#line 2615 "parser.yy"
     8818    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8819    break;
     8820
     8821  case 698:
     8822
     8823/* Line 1806 of yacc.c  */
     8824#line 2617 "parser.yy"
    87868825    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87878826    break;
    87888827
    8789   case 698:
    8790 
    8791 /* Line 1806 of yacc.c  */
    8792 #line 2620 "parser.yy"
     8828  case 699:
     8829
     8830/* Line 1806 of yacc.c  */
     8831#line 2622 "parser.yy"
    87938832    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87948833    break;
    87958834
    8796   case 699:
    8797 
    8798 /* Line 1806 of yacc.c  */
    8799 #line 2622 "parser.yy"
     8835  case 700:
     8836
     8837/* Line 1806 of yacc.c  */
     8838#line 2624 "parser.yy"
    88008839    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88018840    break;
    88028841
    8803   case 702:
    8804 
    8805 /* Line 1806 of yacc.c  */
    8806 #line 2632 "parser.yy"
     8842  case 703:
     8843
     8844/* Line 1806 of yacc.c  */
     8845#line 2634 "parser.yy"
    88078846    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88088847    break;
    88098848
    8810   case 705:
    8811 
    8812 /* Line 1806 of yacc.c  */
    8813 #line 2642 "parser.yy"
     8849  case 706:
     8850
     8851/* Line 1806 of yacc.c  */
     8852#line 2644 "parser.yy"
    88148853    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88158854    break;
    88168855
    8817   case 706:
    8818 
    8819 /* Line 1806 of yacc.c  */
    8820 #line 2644 "parser.yy"
     8856  case 707:
     8857
     8858/* Line 1806 of yacc.c  */
     8859#line 2646 "parser.yy"
    88218860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88228861    break;
    88238862
    8824   case 707:
    8825 
    8826 /* Line 1806 of yacc.c  */
    8827 #line 2646 "parser.yy"
     8863  case 708:
     8864
     8865/* Line 1806 of yacc.c  */
     8866#line 2648 "parser.yy"
    88288867    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88298868    break;
    88308869
    8831   case 708:
    8832 
    8833 /* Line 1806 of yacc.c  */
    8834 #line 2648 "parser.yy"
     8870  case 709:
     8871
     8872/* Line 1806 of yacc.c  */
     8873#line 2650 "parser.yy"
    88358874    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88368875    break;
    88378876
    8838   case 709:
    8839 
    8840 /* Line 1806 of yacc.c  */
    8841 #line 2650 "parser.yy"
     8877  case 710:
     8878
     8879/* Line 1806 of yacc.c  */
     8880#line 2652 "parser.yy"
    88428881    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88438882    break;
    88448883
    8845   case 710:
    8846 
    8847 /* Line 1806 of yacc.c  */
    8848 #line 2652 "parser.yy"
     8884  case 711:
     8885
     8886/* Line 1806 of yacc.c  */
     8887#line 2654 "parser.yy"
    88498888    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88508889    break;
    88518890
    8852   case 711:
    8853 
    8854 /* Line 1806 of yacc.c  */
    8855 #line 2659 "parser.yy"
     8891  case 712:
     8892
     8893/* Line 1806 of yacc.c  */
     8894#line 2661 "parser.yy"
    88568895    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88578896    break;
    88588897
    8859   case 712:
    8860 
    8861 /* Line 1806 of yacc.c  */
    8862 #line 2661 "parser.yy"
     8898  case 713:
     8899
     8900/* Line 1806 of yacc.c  */
     8901#line 2663 "parser.yy"
    88638902    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88648903    break;
    88658904
    8866   case 713:
    8867 
    8868 /* Line 1806 of yacc.c  */
    8869 #line 2663 "parser.yy"
     8905  case 714:
     8906
     8907/* Line 1806 of yacc.c  */
     8908#line 2665 "parser.yy"
    88708909    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88718910    break;
    88728911
    8873   case 714:
    8874 
    8875 /* Line 1806 of yacc.c  */
    8876 #line 2665 "parser.yy"
     8912  case 715:
     8913
     8914/* Line 1806 of yacc.c  */
     8915#line 2667 "parser.yy"
    88778916    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    88788917    break;
    88798918
    8880   case 715:
    8881 
    8882 /* Line 1806 of yacc.c  */
    8883 #line 2667 "parser.yy"
     8919  case 716:
     8920
     8921/* Line 1806 of yacc.c  */
     8922#line 2669 "parser.yy"
    88848923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88858924    break;
    88868925
    8887   case 716:
    8888 
    8889 /* Line 1806 of yacc.c  */
    8890 #line 2669 "parser.yy"
     8926  case 717:
     8927
     8928/* Line 1806 of yacc.c  */
     8929#line 2671 "parser.yy"
    88918930    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88928931    break;
    88938932
    8894   case 717:
    8895 
    8896 /* Line 1806 of yacc.c  */
    8897 #line 2671 "parser.yy"
     8933  case 718:
     8934
     8935/* Line 1806 of yacc.c  */
     8936#line 2673 "parser.yy"
    88988937    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88998938    break;
    89008939
    8901   case 718:
    8902 
    8903 /* Line 1806 of yacc.c  */
    8904 #line 2673 "parser.yy"
     8940  case 719:
     8941
     8942/* Line 1806 of yacc.c  */
     8943#line 2675 "parser.yy"
    89058944    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89068945    break;
    89078946
    8908   case 719:
    8909 
    8910 /* Line 1806 of yacc.c  */
    8911 #line 2675 "parser.yy"
     8947  case 720:
     8948
     8949/* Line 1806 of yacc.c  */
     8950#line 2677 "parser.yy"
    89128951    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89138952    break;
    89148953
    8915   case 720:
    8916 
    8917 /* Line 1806 of yacc.c  */
    8918 #line 2677 "parser.yy"
     8954  case 721:
     8955
     8956/* Line 1806 of yacc.c  */
     8957#line 2679 "parser.yy"
    89198958    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89208959    break;
    89218960
    8922   case 721:
    8923 
    8924 /* Line 1806 of yacc.c  */
    8925 #line 2682 "parser.yy"
     8961  case 722:
     8962
     8963/* Line 1806 of yacc.c  */
     8964#line 2684 "parser.yy"
    89268965    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89278966    break;
    89288967
    8929   case 722:
    8930 
    8931 /* Line 1806 of yacc.c  */
    8932 #line 2684 "parser.yy"
     8968  case 723:
     8969
     8970/* Line 1806 of yacc.c  */
     8971#line 2686 "parser.yy"
    89338972    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89348973    break;
    89358974
    8936   case 723:
    8937 
    8938 /* Line 1806 of yacc.c  */
    8939 #line 2689 "parser.yy"
     8975  case 724:
     8976
     8977/* Line 1806 of yacc.c  */
     8978#line 2691 "parser.yy"
    89408979    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    89418980    break;
    89428981
    8943   case 724:
    8944 
    8945 /* Line 1806 of yacc.c  */
    8946 #line 2691 "parser.yy"
     8982  case 725:
     8983
     8984/* Line 1806 of yacc.c  */
     8985#line 2693 "parser.yy"
    89478986    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    89488987    break;
    89498988
    8950   case 726:
    8951 
    8952 /* Line 1806 of yacc.c  */
    8953 #line 2718 "parser.yy"
     8989  case 727:
     8990
     8991/* Line 1806 of yacc.c  */
     8992#line 2720 "parser.yy"
    89548993    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89558994    break;
    89568995
    8957   case 730:
    8958 
    8959 /* Line 1806 of yacc.c  */
    8960 #line 2729 "parser.yy"
     8996  case 731:
     8997
     8998/* Line 1806 of yacc.c  */
     8999#line 2731 "parser.yy"
    89619000    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89629001    break;
    89639002
    8964   case 731:
    8965 
    8966 /* Line 1806 of yacc.c  */
    8967 #line 2731 "parser.yy"
     9003  case 732:
     9004
     9005/* Line 1806 of yacc.c  */
     9006#line 2733 "parser.yy"
    89689007    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89699008    break;
    89709009
    8971   case 732:
    8972 
    8973 /* Line 1806 of yacc.c  */
    8974 #line 2733 "parser.yy"
     9010  case 733:
     9011
     9012/* Line 1806 of yacc.c  */
     9013#line 2735 "parser.yy"
    89759014    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89769015    break;
    89779016
    8978   case 733:
    8979 
    8980 /* Line 1806 of yacc.c  */
    8981 #line 2735 "parser.yy"
     9017  case 734:
     9018
     9019/* Line 1806 of yacc.c  */
     9020#line 2737 "parser.yy"
    89829021    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89839022    break;
    89849023
    8985   case 734:
    8986 
    8987 /* Line 1806 of yacc.c  */
    8988 #line 2737 "parser.yy"
     9024  case 735:
     9025
     9026/* Line 1806 of yacc.c  */
     9027#line 2739 "parser.yy"
    89899028    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89909029    break;
    89919030
    8992   case 735:
    8993 
    8994 /* Line 1806 of yacc.c  */
    8995 #line 2739 "parser.yy"
     9031  case 736:
     9032
     9033/* Line 1806 of yacc.c  */
     9034#line 2741 "parser.yy"
    89969035    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89979036    break;
    89989037
    8999   case 736:
    9000 
    9001 /* Line 1806 of yacc.c  */
    9002 #line 2746 "parser.yy"
     9038  case 737:
     9039
     9040/* Line 1806 of yacc.c  */
     9041#line 2748 "parser.yy"
    90039042    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90049043    break;
    90059044
    9006   case 737:
    9007 
    9008 /* Line 1806 of yacc.c  */
    9009 #line 2748 "parser.yy"
     9045  case 738:
     9046
     9047/* Line 1806 of yacc.c  */
     9048#line 2750 "parser.yy"
    90109049    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90119050    break;
    90129051
    9013   case 738:
    9014 
    9015 /* Line 1806 of yacc.c  */
    9016 #line 2750 "parser.yy"
     9052  case 739:
     9053
     9054/* Line 1806 of yacc.c  */
     9055#line 2752 "parser.yy"
    90179056    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90189057    break;
    90199058
    9020   case 739:
    9021 
    9022 /* Line 1806 of yacc.c  */
    9023 #line 2752 "parser.yy"
     9059  case 740:
     9060
     9061/* Line 1806 of yacc.c  */
     9062#line 2754 "parser.yy"
    90249063    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90259064    break;
    90269065
    9027   case 740:
    9028 
    9029 /* Line 1806 of yacc.c  */
    9030 #line 2754 "parser.yy"
     9066  case 741:
     9067
     9068/* Line 1806 of yacc.c  */
     9069#line 2756 "parser.yy"
    90319070    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90329071    break;
    90339072
    9034   case 741:
    9035 
    9036 /* Line 1806 of yacc.c  */
    9037 #line 2756 "parser.yy"
     9073  case 742:
     9074
     9075/* Line 1806 of yacc.c  */
     9076#line 2758 "parser.yy"
    90389077    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90399078    break;
    90409079
    9041   case 742:
    9042 
    9043 /* Line 1806 of yacc.c  */
    9044 #line 2761 "parser.yy"
     9080  case 743:
     9081
     9082/* Line 1806 of yacc.c  */
     9083#line 2763 "parser.yy"
    90459084    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90469085    break;
    90479086
    9048   case 743:
    9049 
    9050 /* Line 1806 of yacc.c  */
    9051 #line 2766 "parser.yy"
     9087  case 744:
     9088
     9089/* Line 1806 of yacc.c  */
     9090#line 2768 "parser.yy"
    90529091    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9053     break;
    9054 
    9055   case 744:
    9056 
    9057 /* Line 1806 of yacc.c  */
    9058 #line 2768 "parser.yy"
    9059     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90609092    break;
    90619093
     
    90679099    break;
    90689100
    9069   case 748:
    9070 
    9071 /* Line 1806 of yacc.c  */
    9072 #line 2794 "parser.yy"
     9101  case 746:
     9102
     9103/* Line 1806 of yacc.c  */
     9104#line 2772 "parser.yy"
     9105    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9106    break;
     9107
     9108  case 749:
     9109
     9110/* Line 1806 of yacc.c  */
     9111#line 2796 "parser.yy"
    90739112    { (yyval.en) = 0; }
    90749113    break;
    90759114
    9076   case 749:
    9077 
    9078 /* Line 1806 of yacc.c  */
    9079 #line 2796 "parser.yy"
     9115  case 750:
     9116
     9117/* Line 1806 of yacc.c  */
     9118#line 2798 "parser.yy"
    90809119    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90819120    break;
     
    90849123
    90859124/* Line 1806 of yacc.c  */
    9086 #line 9087 "Parser/parser.cc"
     9125#line 9126 "Parser/parser.cc"
    90879126      default: break;
    90889127    }
     
    93159354
    93169355/* Line 2067 of yacc.c  */
    9317 #line 2799 "parser.yy"
     9356#line 2801 "parser.yy"
    93189357
    93199358// ----end of grammar----
  • src/Parser/parser.h

    rae8b942 r5721a6d  
    7272     CONTEXT = 290,
    7373     SIZEOF = 291,
    74      ATTRIBUTE = 292,
    75      EXTENSION = 293,
    76      IF = 294,
    77      ELSE = 295,
    78      SWITCH = 296,
    79      CASE = 297,
    80      DEFAULT = 298,
    81      DO = 299,
    82      WHILE = 300,
    83      FOR = 301,
    84      BREAK = 302,
    85      CONTINUE = 303,
    86      GOTO = 304,
    87      RETURN = 305,
    88      CHOOSE = 306,
    89      DISABLE = 307,
    90      ENABLE = 308,
    91      FALLTHRU = 309,
    92      TRY = 310,
    93      CATCH = 311,
    94      CATCHRESUME = 312,
    95      FINALLY = 313,
    96      THROW = 314,
    97      THROWRESUME = 315,
    98      AT = 316,
    99      ASM = 317,
    100      ALIGNAS = 318,
    101      ALIGNOF = 319,
    102      ATOMIC = 320,
    103      GENERIC = 321,
    104      NORETURN = 322,
    105      STATICASSERT = 323,
    106      THREADLOCAL = 324,
    107      IDENTIFIER = 325,
    108      QUOTED_IDENTIFIER = 326,
    109      TYPEDEFname = 327,
    110      TYPEGENname = 328,
    111      ATTR_IDENTIFIER = 329,
    112      ATTR_TYPEDEFname = 330,
    113      ATTR_TYPEGENname = 331,
    114      INTEGERconstant = 332,
    115      FLOATINGconstant = 333,
    116      CHARACTERconstant = 334,
    117      STRINGliteral = 335,
    118      ZERO = 336,
    119      ONE = 337,
    120      ARROW = 338,
    121      ICR = 339,
    122      DECR = 340,
    123      LS = 341,
    124      RS = 342,
    125      LE = 343,
    126      GE = 344,
    127      EQ = 345,
    128      NE = 346,
    129      ANDAND = 347,
    130      OROR = 348,
    131      ELLIPSIS = 349,
    132      MULTassign = 350,
    133      DIVassign = 351,
    134      MODassign = 352,
    135      PLUSassign = 353,
    136      MINUSassign = 354,
    137      LSassign = 355,
    138      RSassign = 356,
    139      ANDassign = 357,
    140      ERassign = 358,
    141      ORassign = 359,
    142      ATassign = 360,
    143      THEN = 361
     74     OFFSETOF = 292,
     75     ATTRIBUTE = 293,
     76     EXTENSION = 294,
     77     IF = 295,
     78     ELSE = 296,
     79     SWITCH = 297,
     80     CASE = 298,
     81     DEFAULT = 299,
     82     DO = 300,
     83     WHILE = 301,
     84     FOR = 302,
     85     BREAK = 303,
     86     CONTINUE = 304,
     87     GOTO = 305,
     88     RETURN = 306,
     89     CHOOSE = 307,
     90     DISABLE = 308,
     91     ENABLE = 309,
     92     FALLTHRU = 310,
     93     TRY = 311,
     94     CATCH = 312,
     95     CATCHRESUME = 313,
     96     FINALLY = 314,
     97     THROW = 315,
     98     THROWRESUME = 316,
     99     AT = 317,
     100     ASM = 318,
     101     ALIGNAS = 319,
     102     ALIGNOF = 320,
     103     ATOMIC = 321,
     104     GENERIC = 322,
     105     NORETURN = 323,
     106     STATICASSERT = 324,
     107     THREADLOCAL = 325,
     108     IDENTIFIER = 326,
     109     QUOTED_IDENTIFIER = 327,
     110     TYPEDEFname = 328,
     111     TYPEGENname = 329,
     112     ATTR_IDENTIFIER = 330,
     113     ATTR_TYPEDEFname = 331,
     114     ATTR_TYPEGENname = 332,
     115     INTEGERconstant = 333,
     116     FLOATINGconstant = 334,
     117     CHARACTERconstant = 335,
     118     STRINGliteral = 336,
     119     ZERO = 337,
     120     ONE = 338,
     121     ARROW = 339,
     122     ICR = 340,
     123     DECR = 341,
     124     LS = 342,
     125     RS = 343,
     126     LE = 344,
     127     GE = 345,
     128     EQ = 346,
     129     NE = 347,
     130     ANDAND = 348,
     131     OROR = 349,
     132     ELLIPSIS = 350,
     133     MULTassign = 351,
     134     DIVassign = 352,
     135     MODassign = 353,
     136     PLUSassign = 354,
     137     MINUSassign = 355,
     138     LSassign = 356,
     139     RSassign = 357,
     140     ANDassign = 358,
     141     ERassign = 359,
     142     ORassign = 360,
     143     ATassign = 361,
     144     THEN = 362
    144145   };
    145146#endif
     
    179180#define CONTEXT 290
    180181#define SIZEOF 291
    181 #define ATTRIBUTE 292
    182 #define EXTENSION 293
    183 #define IF 294
    184 #define ELSE 295
    185 #define SWITCH 296
    186 #define CASE 297
    187 #define DEFAULT 298
    188 #define DO 299
    189 #define WHILE 300
    190 #define FOR 301
    191 #define BREAK 302
    192 #define CONTINUE 303
    193 #define GOTO 304
    194 #define RETURN 305
    195 #define CHOOSE 306
    196 #define DISABLE 307
    197 #define ENABLE 308
    198 #define FALLTHRU 309
    199 #define TRY 310
    200 #define CATCH 311
    201 #define CATCHRESUME 312
    202 #define FINALLY 313
    203 #define THROW 314
    204 #define THROWRESUME 315
    205 #define AT 316
    206 #define ASM 317
    207 #define ALIGNAS 318
    208 #define ALIGNOF 319
    209 #define ATOMIC 320
    210 #define GENERIC 321
    211 #define NORETURN 322
    212 #define STATICASSERT 323
    213 #define THREADLOCAL 324
    214 #define IDENTIFIER 325
    215 #define QUOTED_IDENTIFIER 326
    216 #define TYPEDEFname 327
    217 #define TYPEGENname 328
    218 #define ATTR_IDENTIFIER 329
    219 #define ATTR_TYPEDEFname 330
    220 #define ATTR_TYPEGENname 331
    221 #define INTEGERconstant 332
    222 #define FLOATINGconstant 333
    223 #define CHARACTERconstant 334
    224 #define STRINGliteral 335
    225 #define ZERO 336
    226 #define ONE 337
    227 #define ARROW 338
    228 #define ICR 339
    229 #define DECR 340
    230 #define LS 341
    231 #define RS 342
    232 #define LE 343
    233 #define GE 344
    234 #define EQ 345
    235 #define NE 346
    236 #define ANDAND 347
    237 #define OROR 348
    238 #define ELLIPSIS 349
    239 #define MULTassign 350
    240 #define DIVassign 351
    241 #define MODassign 352
    242 #define PLUSassign 353
    243 #define MINUSassign 354
    244 #define LSassign 355
    245 #define RSassign 356
    246 #define ANDassign 357
    247 #define ERassign 358
    248 #define ORassign 359
    249 #define ATassign 360
    250 #define THEN 361
     182#define OFFSETOF 292
     183#define ATTRIBUTE 293
     184#define EXTENSION 294
     185#define IF 295
     186#define ELSE 296
     187#define SWITCH 297
     188#define CASE 298
     189#define DEFAULT 299
     190#define DO 300
     191#define WHILE 301
     192#define FOR 302
     193#define BREAK 303
     194#define CONTINUE 304
     195#define GOTO 305
     196#define RETURN 306
     197#define CHOOSE 307
     198#define DISABLE 308
     199#define ENABLE 309
     200#define FALLTHRU 310
     201#define TRY 311
     202#define CATCH 312
     203#define CATCHRESUME 313
     204#define FINALLY 314
     205#define THROW 315
     206#define THROWRESUME 316
     207#define AT 317
     208#define ASM 318
     209#define ALIGNAS 319
     210#define ALIGNOF 320
     211#define ATOMIC 321
     212#define GENERIC 322
     213#define NORETURN 323
     214#define STATICASSERT 324
     215#define THREADLOCAL 325
     216#define IDENTIFIER 326
     217#define QUOTED_IDENTIFIER 327
     218#define TYPEDEFname 328
     219#define TYPEGENname 329
     220#define ATTR_IDENTIFIER 330
     221#define ATTR_TYPEDEFname 331
     222#define ATTR_TYPEGENname 332
     223#define INTEGERconstant 333
     224#define FLOATINGconstant 334
     225#define CHARACTERconstant 335
     226#define STRINGliteral 336
     227#define ZERO 337
     228#define ONE 338
     229#define ARROW 339
     230#define ICR 340
     231#define DECR 341
     232#define LS 342
     233#define RS 343
     234#define LE 344
     235#define GE 345
     236#define EQ 346
     237#define NE 347
     238#define ANDAND 348
     239#define OROR 349
     240#define ELLIPSIS 350
     241#define MULTassign 351
     242#define DIVassign 352
     243#define MODassign 353
     244#define PLUSassign 354
     245#define MINUSassign 355
     246#define LSassign 356
     247#define RSassign 357
     248#define ANDassign 358
     249#define ERassign 359
     250#define ORassign 360
     251#define ATassign 361
     252#define THEN 362
    251253
    252254
     
    275277
    276278/* Line 2068 of yacc.c  */
    277 #line 278 "Parser/parser.h"
     279#line 280 "Parser/parser.h"
    278280} YYSTYPE;
    279281# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    rae8b942 r5721a6d  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Oct  8 17:17:54 2015
    13 // Update Count     : 1473
     12// Last Modified On : Mon Feb  1 13:51:20 2016
     13// Update Count     : 1481
    1414//
    1515
     
    7878%token ENUM STRUCT UNION
    7979%token TYPE FTYPE DTYPE CONTEXT                                                 // CFA
    80 %token SIZEOF
     80%token SIZEOF OFFSETOF
    8181%token ATTRIBUTE EXTENSION                                                              // GCC
    8282%token IF ELSE SWITCH CASE DEFAULT DO WHILE FOR BREAK CONTINUE GOTO RETURN
     
    443443        | SIZEOF '(' type_name_no_function ')'
    444444                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( $3 )); }
     445        | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')'
     446        { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( $3 ), new VarRefNode( $5 )); }
    445447        | ATTR_IDENTIFIER
    446448                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 )); }
  • src/examples/abs.c

    rae8b942 r5721a6d  
    1010// Created On       : Thu Jan 28 18:26:16 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 29 15:44:41 2016
    13 // Update Count     : 20
     12// Last Modified On : Sun Jan 31 09:24:45 2016
     13// Update Count     : 41
    1414//
    1515
    16 extern "C" {
    17 #include <complex.h>
    18 } // extern
    1916#include <fstream>
    2017#include <algorithm>
     
    2421
    2522        char ch = -65;
    26         sout | "char\t\t\t"                                     | -65    | "\tabs " | abs( ch ) | endl;
     23        sout | "char\t\t\t"                                     | ch     | "\tabs " | abs( ch ) | endl;
    2724        sout | "signed int\t\t"                         | -65    | "\tabs " | abs( -65 ) | endl;
    2825        sout | "signed long int\t\t"            | -65l   | "\tabs " | abs( -65l ) | endl;
     
    3128        sout | "double\t\t\t"                           | -65.0  | "\tabs " | abs( -65.0 ) | endl;
    3229        sout | "long double\t\t"                        | -65.0l | "\tabs " | abs( -65.0l ) | endl;
    33         double _Complex c = -65.0+2.0 * I;
    34         sout | "double _Complex\t\t"            | c | "\tabs " | abs( c ) | endl;
     30        sout | "float _Complex\t\t"                     | -65.0F-2.0iF | "\tabs " | abs( -65.0F-2.0iF ) | endl;
     31        sout | "double _Complex\t\t"            | -65.0D-2.0iD | "\tabs " | abs( -65.0D-2.0iD ) | endl;
     32        sout | "long double _Complex\t"         | -65.0L-2.0iL | "\tabs " | abs( -65.0L-2.0iL ) | endl;
    3533} // main
    3634
  • src/examples/minmax.c

    rae8b942 r5721a6d  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // min.c --
     7// minmax.c --
    88//
    99// Author           : Richard C. Bilson
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jan 28 22:15:14 2016
    13 // Update Count     : 42
     12// Last Modified On : Mon Feb  1 11:35:53 2016
     13// Update Count     : 44
    1414//
    1515
     
    3333        sout | "double\t\t\t"                           | 4.0 | ' ' | 3.1 | "\tmin " | min( 4.0, 3.1 ) | endl;
    3434        sout | "long double\t\t"                        | 4.0l | ' ' | 3.1l | "\tmin " | min( 4.0l, 3.1l ) | endl;
     35
    3536        sout | endl;
     37
    3638        sout | "char\t\t\t"                                     | 'z' | ' ' | 'a' | "\tmax " | max( 'z', 'a' ) | endl;
    3739        sout | "signed int\t\t"                         | 4 | ' ' | 3 | "\tmax " | max( 4, 3 ) | endl;
  • src/examples/swap.c

    rae8b942 r5721a6d  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jan 26 16:49:41 2016
    13 // Update Count     : 7
     12// Last Modified On : Mon Feb  1 12:30:15 2016
     13// Update Count     : 61
    1414//
    1515
    1616#include <fstream>
    17 
    18 forall( type T )
    19 void swap( T *left, T *right ) {
    20         T temp = *left;
    21         *left = *right;
    22         *right = temp;
    23 }
     17#include <algorithm>
    2418
    2519int main( void ) {
    26         int x = 1, y = 2;
    2720        ofstream *sout = ofstream_stdout();
    28         sout | x | ' ' | y | endl;
    29         swap( &x, &y );
    30         sout | x | ' ' | y | endl;
    31 }
     21
     22        char c1 = 'a', c2 = 'b';
     23        sout | "char\t\t\t" | c1 | ' ' | c2 | "\t\t\tswap ";
     24        swap( &c1, &c2 );
     25        sout | '\t' | c1 | ' ' | c2 | endl;
     26
     27        signed int i1 = -1, i2 = -2;
     28        sout | "signed int\t\t" | i1 | ' ' | i2 | "\t\t\tswap ";
     29        swap( &i1, &i2 );
     30        sout | '\t' | i1 | ' ' | i2 | endl;
     31
     32        unsigned int ui1 = 1, ui2 = 2;
     33        sout | "unsigned int\t\t" | ui1 | ' ' | ui2 | "\t\t\tswap ";
     34        swap( &ui1, &ui2 );
     35        sout | '\t' | ui1 | ' ' | ui2 | endl;
     36
     37        signed long int li1 = -1, li2 = -2;
     38        sout | "signed long int\t\t" | li1 | ' ' | li2 | "\t\t\tswap ";
     39        swap( &li1, &li2 );
     40        sout | '\t' | li1 | ' ' | li2 | endl;
     41
     42        unsigned long int uli1 = 1, uli2 = 2;
     43        sout | "unsigned long int\t" | uli1 | ' ' | uli2 | "\t\t\tswap ";
     44        swap( &uli1, &uli2 );
     45        sout | '\t' | uli1 | ' ' | uli2 | endl;
     46
     47        signed long long int lli1 = -1, lli2 = -2;
     48        sout | "signed long long int\t" | lli1 | ' ' | lli2 | "\t\t\tswap ";
     49        swap( &lli1, &lli2 );
     50        sout | '\t' | lli1 | ' ' | lli2 | endl;
     51
     52        unsigned long long int ulli1 = 1, ulli2 = 2;
     53        sout | "unsigned long long int\t" | ulli1 | ' ' | ulli2 | "\t\t\tswap ";
     54        swap( &ulli1, &ulli2 );
     55        sout | '\t' | ulli1 | ' ' | ulli2 | endl;
     56
     57        float f1 = 1.5, f2 = 2.5;
     58        sout | "float\t\t\t" | f1 | ' ' | f2 | "\t\t\tswap ";
     59        swap( &f1, &f2 );
     60        sout | '\t' | f1 | ' ' | f2 | endl;
     61
     62        double d1 = 1.5, d2 = 2.5;
     63        sout | "double\t\t\t" | d1 | ' ' | d2 | "\t\t\tswap ";
     64        swap( &d1, &d2 );
     65        sout | '\t' | d1 | ' ' | d2 | endl;
     66
     67        long double ld1 = 1.5, ld2 = 2.5;
     68        sout | "long double\t\t" | ld1 | ' ' | ld2 | "\t\t\tswap ";
     69        swap( &ld1, &ld2 );
     70        sout | '\t' | ld1 | ' ' | ld2 | endl;
     71
     72        float _Complex fc1 = 1.5f+1.5if, fc2 = 2.5f+2.5if;
     73        sout | "float _Complex\t\t" | fc1 | ' ' | fc2 | "\tswap ";
     74        swap( &fc1, &fc2 );
     75        sout | '\t' | fc1 | ' ' | fc2 | endl;
     76
     77        double _Complex dc1 = 1.5d+1.5id, dc2 = 2.5d+2.5id;
     78        sout | "double _Complex\t\t" | dc1 | ' ' | dc2 | "\tswap ";
     79        swap( &dc1, &dc2 );
     80        sout | '\t' | dc1 | ' ' | dc2 | endl;
     81
     82        long double _Complex ldc1 = 1.5d+1.5il, ldc2 = 2.5d+2.5il;
     83        sout | "long double _Complex\t" | ldc1 | ' ' | ldc2 | "\tswap ";
     84        swap( &ldc1, &ldc2 );
     85        sout | '\t' | ldc1 | ' ' | ldc2 | endl;
     86
     87        struct S { int i, j; } s1 = { 1, 2 }, s2 = { 2, 1 };
     88        ofstream * ?|?( ofstream * os, S s ) { return os | s.i | ' ' | s.j; }
     89        sout | "struct S\t\t" | s1 | "  " | s2 | "\t\tswap ";
     90        swap( &s1, &s2 );
     91        sout | '\t' | s1 | "  " | s2 | endl;
     92} // main
    3293
    3394// Local Variables: //
  • src/libcfa/Makefile.am

    rae8b942 r5721a6d  
    1111## Created On       : Sun May 31 08:54:01 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Fri Jan 29 11:39:09 2016
    14 ## Update Count     : 108
     13## Last Modified On : Sat Jan 30 18:56:45 2016
     14## Update Count     : 110
    1515###############################################################################
    1616
     
    5454
    5555# extension-less header files are overridden by default make rules => explicitly override rule
    56 % : %.c
     56% : %.c ${abs_top_srcdir}/src/driver/cfa-cpp
    5757        true
    5858
  • src/libcfa/Makefile.in

    rae8b942 r5721a6d  
    585585
    586586# extension-less header files are overridden by default make rules => explicitly override rule
    587 % : %.c
     587% : %.c ${abs_top_srcdir}/src/driver/cfa-cpp
    588588        true
    589589
  • src/libcfa/algorithm

    rae8b942 r5721a6d  
    1010// Created On       : Thu Jan 28 17:12:35 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 29 14:57:51 2016
    13 // Update Count     : 20
     12// Last Modified On : Mon Feb  1 13:41:51 2016
     13// Update Count     : 26
    1414//
     15
     16//---------------------------------------
    1517
    1618forall( type T | { int ?<?( T, T ); } )
     
    1921forall( type T | { int ?>?( T, T ); } )
    2022T max( const T t1, const T t2 );
     23
     24//---------------------------------------
     25
     26forall( type T )
     27void swap( T * t1, T * t2 );
     28
     29//---------------------------------------
    2130
    2231char abs( char );
     
    3342long double _Complex abs( long double _Complex );
    3443
     44//---------------------------------------
     45
     46void randseed( long int s );
     47char random();
     48int random();
     49unsigned int random();
     50long int random();
     51unsigned long int random();
     52float random();
     53double random();
     54float _Complex random();
     55double _Complex random();
     56long double _Complex random();
     57
    3558// Local Variables: //
    3659// mode: c //
  • src/libcfa/algorithm.c

    rae8b942 r5721a6d  
    1010// Created On       : Thu Jan 28 17:10:29 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 29 15:49:59 2016
    13 // Update Count     : 29
     12// Last Modified On : Mon Feb  1 13:42:05 2016
     13// Update Count     : 52
    1414//
    1515
     
    2626} // max
    2727
     28//---------------------------------------
     29
     30forall( type T )
     31void swap( T * t1, T * t2 ) {
     32        T temp = *t1;
     33        *t1 = *t2;
     34        *t2 = temp;
     35} // swap
     36
     37//---------------------------------------
    2838
    2939extern "C" {
     40#define _XOPEN_SOURCE                                                                   // required to access "rand48" routines
    3041#include <stdlib.h>                                                                             // abs, labs, llabs
    3142#include <math.h>                                                                               // fabsf, fabs, fabsl
    3243#include <complex.h>                                                                    // cabsf, cabs, cabsl
     44#undef I                                                                                                // free name
    3345} // extern
    3446
     
    4355long double _Complex abs( long double _Complex v ) { return cabsl( v ); }
    4456
     57//---------------------------------------
     58
     59void randseed( long int s ) { srand48( s ); }
     60char random() { return lrand48(); }
     61int random() { return mrand48(); }
     62unsigned int random() { return lrand48(); }
     63long int random() { return mrand48(); }
     64unsigned long int random() { return lrand48(); }
     65float random() { return (float)drand48(); }                             // otherwise float uses lrand48
     66double random() { return drand48(); }
     67float _Complex random() { return (float)drand48() + (float _Complex)(drand48() * _Complex_I); }
     68double _Complex random() { return drand48() + (double _Complex)(drand48() * _Complex_I); }
     69long double _Complex random() { return (long double)drand48() + (long double _Complex)(drand48() * _Complex_I); }
    4570
    4671// Local Variables: //
  • src/libcfa/iostream.c

    rae8b942 r5721a6d  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 29 15:38:34 2016
    13 // Update Count     : 47
     12// Last Modified On : Mon Feb  1 14:20:30 2016
     13// Update Count     : 60
    1414//
    1515
     
    8383forall( dtype ostype | ostream( ostype ) )
    8484ostype * ?|?( ostype *os, float _Complex c ) {
    85         char buffer[64];
    86         return write( os, buffer, sprintf( buffer, "%g+i%g", crealf( c ), cimagf( c ) ) );
     85        return os | crealf( c ) | (cimagf( c ) < 0 ? "" : "+") | cimagf( c ) | 'i';
    8786} // ?|?
    8887
    8988forall( dtype ostype | ostream( ostype ) )
    9089ostype * ?|?( ostype *os, double _Complex c ) {
    91         char buffer[64];
    92         return write( os, buffer, sprintf( buffer, "%g+i%g", creal( c ), cimag( c ) ) );
     90        return os | creal( c ) | (cimag( c ) < 0 ? "" : "+") | cimag( c ) | 'i';
    9391} // ?|?
    9492
    9593forall( dtype ostype | ostream( ostype ) )
    9694ostype * ?|?( ostype *os, long double _Complex c ) {
    97         char buffer[64];
    98         return write( os, buffer, sprintf( buffer, "%Lg+i%Lg", creall( c ), cimagl( c ) ) );
     95        return os | creall( c ) | (cimagl( c ) < 0 ? "" : "+") | cimagl( c ) | 'i';
    9996} // ?|?
    10097
Note: See TracChangeset for help on using the changeset viewer.