Changeset 5721a6d


Ignore:
Timestamp:
Feb 1, 2016, 2:24:50 PM (7 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, 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,&