Changeset d3bc0ad


Ignore:
Timestamp:
Mar 9, 2017, 10:36:58 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
6152c81
Parents:
c3396e0
Message:

add _Coroutine, _Monitor, _Thread keywords

Location:
src/Parser
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.cc

    rc3396e0 rd3bc0ad  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 187
    385 #define YY_END_OF_BUFFER 188
     384#define YY_NUM_RULES 190
     385#define YY_END_OF_BUFFER 191
    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[914] =
     393static yyconst flex_int16_t yy_accept[928] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  122,  122,  125,  125,
    396       188,  186,    7,    9,    8,  145,  124,  107,  150,  153,
    397       121,  132,  133,  148,  146,  136,  147,  139,  149,  112,
    398       113,  114,  137,  138,  155,  157,  156,  158,  186,  107,
    399       130,  186,  131,  151,  107,  109,  107,  107,  107,  107,
    400       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    401       107,  107,  107,  107,  134,  154,  135,  152,    7,  186,
    402         4,    4,  187,  110,  187,  111,  122,  123,  129,  125,
    403       126,    7,    9,    0,    8,  162,  181,  107,    0,  174,
    404       144,  167,  175,  172,  159,  170,  160,  171,  169,    0,
    405 
    406       118,    3,    0,  173,  117,  115,    0,    0,  115,  115,
    407         0,    0,  115,  114,  114,  114,    0,  114,  142,  143,
    408       141,  163,  165,  161,  166,  164,    0,    0,    0,    0,
     395        0,    0,    0,    0,    0,    0,  125,  125,  128,  128,
     396      191,  189,    7,    9,    8,  148,  127,  110,  153,  156,
     397      124,  135,  136,  151,  149,  139,  150,  142,  152,  115,
     398      116,  117,  140,  141,  158,  160,  159,  161,  189,  110,
     399      133,  189,  134,  154,  110,  112,  110,  110,  110,  110,
     400      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     401      110,  110,  110,  110,  137,  157,  138,  155,    7,  189,
     402        4,    4,  190,  113,  190,  114,  125,  126,  132,  128,
     403      129,    7,    9,    0,    8,  165,  184,  110,    0,  177,
     404      147,  170,  178,  175,  162,  173,  163,  174,  172,    0,
     405
     406      121,    3,    0,  176,  120,  118,    0,    0,  118,  118,
     407        0,    0,  118,  117,  117,  117,    0,  117,  145,  146,
     408      144,  166,  168,  164,  169,  167,    0,    0,    0,    0,
    409409        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    410         0,  108,  180,    0,  124,  121,  107,    0,    0,  177,
    411         0,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    412       107,  107,  107,  107,  107,  107,  107,  107,   38,  107,
    413       107,  107,  107,  107,  107,  107,  107,  107,  107,   57,
    414       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    415       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    416 
    417       176,  168,    7,    0,    0,    0,    2,    0,    5,  110,
    418         0,    0,    0,  122,    0,  128,  127,  127,    0,    0,
    419         0,  125,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,    0,    0,    0,    0,    0,    0,  140,  118,  119,
    421         0,  119,  119,    0,    0,    6,  119,  115,    0,    0,
    422         0,  119,    0,  115,  115,  115,  115,    0,  116,    0,
    423         0,  114,  114,  114,  114,    0,  178,  179,    0,  184,
    424       182,    0,    0,    0,  108,    0,    0,    0,    0,    0,
    425         0,    0,    0,  107,   17,  107,  107,  107,  107,  107,
    426       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    427 
    428       107,  107,  107,   14,  107,  107,  107,  107,  107,  107,
    429       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    430       107,  107,   51,  107,  107,  107,   64,  107,  107,  107,
    431       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    432       107,  107,  107,   92,  107,  107,  107,  107,  107,  107,
    433       107,  107,  107,    0,    0,    0,    0,    0,    0,    0,
    434         0,  127,    0,    0,    0,    0,    0,  127,    0,    0,
    435       185,    0,    0,    0,    0,    0,    0,    0,  119,    0,
    436       119,    0,  119,    0,  119,    0,    0,  119,    0,  115,
    437       115,    0,    0,  116,  116,    0,  116,    0,  116,  114,
    438 
    439       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    440         0,  183,  107,  107,  107,  107,  107,  107,  107,  107,
    441       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    442       107,  107,  107,  107,  107,   21,  107,   24,  107,   27,
    443       107,  107,  107,  107,  107,  107,  107,   41,  107,   43,
    444       107,  107,  107,  107,  107,  107,  107,   56,  107,   67,
    445       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    446       107,  107,  107,  107,  107,  107,  107,  107,  107,  101,
    447       107,  107,  107,    0,    0,    0,    0,    0,    0,    0,
    448         0,    0,    0,    0,    0,    0,    0,  127,    0,    0,
    449 
    450         0,    0,    0,  119,    0,    0,    0,    0,    0,    0,
    451         0,  116,  116,    0,  120,    0,  116,  116,    0,    0,
     410        0,  111,  183,    0,  127,  124,  110,    0,    0,  180,
     411        0,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     412      110,  110,  110,  110,  110,  110,  110,  110,  110,   39,
     413      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     414       58,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     415      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     416
     417      110,  179,  171,    7,    0,    0,    0,    2,    0,    5,
     418      113,    0,    0,    0,  125,    0,  131,  130,  130,    0,
     419        0,    0,  128,    0,    0,    0,    0,    0,    0,    0,
     420        0,    0,    0,    0,    0,    0,    0,    0,  143,  121,
     421      122,    0,  122,  122,    0,    0,    6,  122,  118,    0,
     422        0,    0,  122,    0,  118,  118,  118,  118,    0,  119,
     423        0,    0,  117,  117,  117,  117,    0,  181,  182,    0,
     424      187,  185,    0,    0,    0,  111,    0,    0,    0,    0,
     425        0,    0,    0,    0,  110,   17,  110,  110,  110,  110,
     426      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     427
     428      110,  110,  110,  110,  110,   14,  110,  110,  110,  110,
     429      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     430      110,  110,  110,  110,   52,  110,  110,  110,   65,  110,
     431      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     432      110,  110,  110,  110,  110,   95,  110,  110,  110,  110,
     433      110,  110,  110,  110,  110,    0,    0,    0,    0,    0,
     434        0,    0,    0,  130,    0,    0,    0,    0,    0,  130,
     435        0,    0,  188,    0,    0,    0,    0,    0,    0,    0,
     436      122,    0,  122,    0,  122,    0,  122,    0,    0,  122,
     437        0,  118,  118,    0,    0,  119,  119,    0,  119,    0,
     438
     439      119,  117,  117,    0,    0,    0,    0,    0,    0,    0,
     440        0,    0,    0,  186,  110,  110,  110,  110,  110,  110,
     441      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     442      110,  110,  110,  110,  110,  110,  110,  110,  110,   21,
     443      110,   24,  110,   27,  110,  110,  110,  110,  110,  110,
     444      110,   42,  110,   44,  110,  110,  110,  110,  110,  110,
     445      110,   57,  110,   68,  110,  110,  110,  110,  110,  110,
     446      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     447      110,  110,  110,  104,  110,  110,  110,    0,    0,    0,
    452448        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    453         0,  107,  107,   22,  107,  107,  107,  107,  107,  107,
    454       107,   15,  107,  107,  107,  107,  107,  107,  107,  107,
    455       107,  107,  107,  107,  107,  107,   23,   25,  107,   32,
    456       107,  107,  107,  107,   40,  107,  107,  107,  107,   49,
    457       107,  107,   54,  107,  107,   69,   72,   73,  107,  107,
    458       107,   79,  107,  107,  107,  107,  107,   89,   91,   93,
    459       107,  107,   98,  107,  107,  105,  107,    0,    0,    0,
    460 
     449
     450        0,  130,    0,    0,    0,    0,    0,  122,    0,    0,
     451        0,    0,    0,    0,    0,  119,  119,    0,  123,    0,
     452      119,  119,    0,    0,    0,    0,    0,    0,    0,    0,
     453        0,    0,    0,    0,    0,  110,  110,   22,  110,  110,
     454      110,  110,  110,  110,  110,  110,  110,   15,  110,  110,
     455      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     456      110,  110,   23,   25,  110,   32,  110,  110,  110,  110,
     457       41,  110,  110,  110,  110,   50,  110,  110,   55,  110,
     458      110,   71,   74,   75,  110,  110,  110,   81,  110,  110,
     459      110,  110,  110,   92,   94,   96,  110,  110,  101,  110,
     460
     461      110,  108,  110,    0,    0,    0,    0,    0,    0,    0,
    461462        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    462         0,    0,    0,    0,    0,    0,  120,    0,    0,  116,
    463       120,  120,  120,  120,    0,  116,    0,    0,    0,    0,
    464         0,    0,    0,    0,    0,    0,  107,    0,  107,  107,
    465       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    466       107,  107,  107,  107,   59,  107,  107,  107,  107,  107,
    467       107,  107,  107,   28,  107,  107,  107,   39,   42,   45,
    468       107,  107,   52,  107,   61,   68,  107,  107,   78,   80,
    469        83,   84,   86,   87,  107,  107,   95,  107,  107,  106,
    470         0,    1,    0,    0,    0,    0,    0,    0,  110,    0,
    471 
    472         0,    0,  127,    0,    0,    0,    0,  120,    0,  120,
    473       120,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    474       107,  107,   18,  107,  107,  107,  107,  107,  107,  107,
    475        16,  107,  107,  107,   33,  107,  107,  107,  107,  107,
    476       107,  107,  107,  107,  107,  107,  107,   36,   37,  107,
    477        48,   53,  107,  107,  107,   94,  107,  107,    0,    0,
     463        0,    0,  123,    0,    0,  119,  123,  123,  123,  123,
     464        0,  119,    0,    0,    0,    0,    0,    0,    0,    0,
     465        0,    0,  110,    0,  110,  110,  110,  110,  110,  110,
     466      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     467      110,  110,   60,  110,  110,  110,  110,  110,  110,  110,
     468      110,   28,  110,  110,  110,   40,   43,   46,  110,  110,
     469       53,  110,   62,   69,  110,  110,   80,   82,   85,   86,
     470       88,   89,  110,  110,   98,  110,  110,  109,    0,    1,
     471
     472        0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
     473      130,    0,    0,    0,    0,  123,    0,  123,  123,    0,
     474        0,    0,    0,    0,    0,    0,    0,    0,  110,  110,
     475       18,  110,  110,  110,  110,  110,  110,  110,   90,  110,
     476       16,  110,  110,  110,   33,  110,  110,  110,  110,  110,
     477      110,  110,  110,  110,  110,  110,  110,   37,   38,  110,
     478       49,   54,  110,  110,  110,   97,  110,  110,    0,    0,
    478479        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    479         0,   10,   11,   29,   55,  107,  107,  107,  107,  107,
    480       107,  107,  107,  107,  107,  107,   60,   62,   65,  107,
    481       107,   81,   96,  107,  107,   35,  107,   47,   74,   75,
    482 
    483       107,   99,  102,    0,    0,    0,    0,    0,    0,    0,
    484         0,    0,    0,    0,    0,  107,   70,  107,  107,   12,
    485       107,  107,   30,   34,  107,  107,  107,   66,  107,  107,
    486       107,  107,  107,  107,  107,    0,    0,    0,    0,    0,
    487         0,    0,    0,    0,    0,    0,    0,    0,   58,  107,
    488       107,  107,  107,  107,  107,  107,   50,   63,   76,   82,
    489        97,  103,  107,  107,  107,    0,    0,    0,    0,    0,
    490         0,    0,    0,  107,  107,   13,   19,  107,  107,   31,
    491       107,  107,  107,   26,   46,   90,    0,    0,  107,  107,
    492       107,  107,  107,  107,   77,  104,  107,   88,   20,  107,
    493 
    494       107,   44,   85,  107,  107,  107,  107,  107,  107,  107,
    495       100,   71,    0
     480        0,   10,   11,   29,  110,   56,  110,   70,  110,  110,
     481      110,  110,  110,  110,  110,  110,  110,  110,   61,   63,
     482
     483       66,  110,  110,   83,   99,  110,  110,   35,  110,   48,
     484       76,   77,  110,  102,  105,    0,    0,    0,    0,    0,
     485        0,    0,    0,    0,    0,    0,    0,  110,  110,   72,
     486      110,  110,   12,  110,  110,   30,   34,  110,  110,  110,
     487       67,  110,  110,  110,  110,  110,  110,  110,    0,    0,
     488        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     489        0,   36,   59,  110,  110,  110,  110,  110,  110,  110,
     490       51,   64,   78,   84,  100,  106,  110,  110,  110,    0,
     491        0,    0,    0,    0,    0,    0,    0,  110,  110,   13,
     492       19,  110,  110,   31,  110,  110,  110,   26,   47,   93,
     493
     494        0,    0,  110,  110,  110,  110,  110,  110,   79,  107,
     495      110,   91,   20,  110,  110,   45,   87,  110,  110,  110,
     496      110,  110,  110,  110,  103,   73,    0
    496497    } ;
    497498
     
    505506       26,   26,   26,   26,   26,   27,   28,   29,   30,   31,
    506507       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
    507        42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
    508        11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
    509        52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
    510 
    511        62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
    512        71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
    513        80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
     508       42,   11,   43,   11,   11,   44,   45,   46,   11,   47,
     509       11,   48,   49,   50,   51,   11,   11,   52,   11,   11,
     510       53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
     511
     512       63,   64,   65,   66,   67,   11,   68,   69,   70,   71,
     513       72,   73,   11,   74,   75,   76,   77,   78,   79,   80,
     514       81,   82,   83,   84,   85,   86,    1,    1,    1,    1,
    514515        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    515516        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    528529    } ;
    529530
    530 static yyconst flex_int32_t yy_meta[86] =
     531static yyconst flex_int32_t yy_meta[87] =
    531532    {   0,
    532533        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    534535        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    535536        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
    536         9,    4,    4,   10,    4,   11,    4,    4,    4,   10,
    537         4,    1,   12,    1,    1,   13,    1,    9,    9,    9,
    538         9,    9,    9,    4,    4,    4,    4,   10,    4,    4,
    539         4,   11,    4,    4,    4,   10,    4,    4,    4,    4,
    540         4,    1,    1,    1,    1
     537        9,    4,    4,   10,    4,    4,   11,    4,    4,    4,
     538       10,    4,    1,   12,    1,    1,   13,    1,    9,    9,
     539        9,    9,    9,    9,    4,    4,    4,    4,   10,    4,
     540        4,    4,   11,    4,    4,    4,   10,    4,    4,    4,
     541        4,    4,    1,    1,    1,    1
    541542    } ;
    542543
    543 static yyconst flex_int16_t yy_base[1088] =
     544static yyconst flex_int16_t yy_base[1102] =
    544545    {   0,
    545         0,   84, 2340, 2339,   94,    0,  177,  178,  179,  180,
    546      2355, 2883,  191, 2883,  197,   55, 2883, 2300,   60,  173,
    547      2883, 2883, 2883,   56,  188, 2883,  191,  189,  204,  216,
    548       275,    0, 2317, 2883,  216, 2315,  152,  344,  155,  220,
    549      2883,  159, 2883,  217,  226, 2883,  185,  154,  212,  251,
    550       237,  270,  235,  257,  241,  204,  279,  193,  305,  314,
    551       351,  238,  228,  268, 2883,  257, 2883, 2312,  406,  412,
    552      2883, 2323, 2883, 2290,  235, 2883,    0, 2883,  439,    0,
    553      2883,  426, 2883,  452,  464, 2883,  511, 2287,  258, 2883,
    554      2883, 2883, 2883, 2883, 2303, 2883, 2302, 2883, 2883, 2314,
    555 
    556       572, 2883, 2330, 2883,  451,  457,  524,  547,  298,  285,
    557       197,  312,  305,    0,  342,  325,  198,  322, 2883, 2883,
    558      2883, 2298, 2883, 2883, 2883, 2295, 2294,  218,  312, 2309,
    559       350,  388,  368,  363,  413,  369,  391, 2289,  417, 2236,
    560       418, 2264, 2883,  274, 2883, 2883,  477, 2260, 2259, 2883,
    561      2231,  419,  390,  432,  431,  435,  446,  447,  282,  583,
    562       437,  452,  458,  479,  468,  244,  472,  481,  484,  488,
    563       485,  503,  487,  442,  364,  505,  332,  504,  516, 2257,
    564       534,  535,  524,  532,  528,  530,  555,  551,  525,  574,
    565       548,  564,  568,  540,  572,  609,  597,  586,  600,  602,
    566 
    567      2883, 2883,  674,  665, 2304,  680, 2883,  692, 2883, 2253,
    568       609, 2249, 2247,    0,  667, 2883, 2883,  686, 2244, 2241,
    569      2240,    0, 2263,  664,  668,  689,  695,  694,  690,  699,
    570       700,  703, 2259,  706,  707, 2217, 2215, 2883,    0,  700,
    571       727,  682,  717, 2214, 2264, 2883,  744,  739,  725,  763,
    572       781,  803,  825,  699, 2883, 2220, 2195,    0,  811, 2241,
    573       812,  723, 2883, 2216, 2189,  849, 2883, 2883, 2220, 2883,
    574      2883,  725,  742, 2199, 2199,  734, 2194, 2191, 2188,    0,
    575      2187,    0, 2158,  620,  726,  740,  729,  724,  743,  739,
    576       760,  749,  788,  805,  762,  781,  812,  825,  763,  761,
    577 
    578       831,  829,  817, 2187,  832,  833,  836,  571,  837,  840,
    579       839,  843,  846,  847,  849,  854,  859,  855,  864,  862,
    580       867,  869,  870,  866,  876,  878, 2184,  443,  880,  879,
    581       608,  881,  883,  882,  884,  886,  893,  889,  887,  890,
    582       897,  899,  901, 2181,  902,  903,  949,  908,  911,  915,
    583       920,  916,  918,  978,  979, 2177, 2176, 2174,    0, 2171,
    584         0,  967,  971, 2170,    0, 2169,    0, 2167,    0, 2186,
    585      2883,  966,  967, 2165, 2162,    0, 2160,    0, 2883,  980,
    586      1001,  991, 2883, 1007, 1047, 2157, 1023, 1069, 2153, 2883,
    587      2883,  964,  966, 1055, 1008, 1094,  969, 1086, 1009, 2883,
    588 
    589      2883, 2149, 2147, 2145,    0, 2142,    0, 2140,    0, 2138,
    590         0, 2883,  922,  986,  988, 1008, 1036,  990, 1071, 1007,
    591      1073, 1000, 1012, 1025, 1063, 1075, 1081, 1084, 1085, 1093,
    592      1088, 1030, 1087, 1095, 1096, 2138, 1086, 2135, 1104, 2134,
    593      1099, 1106, 1110, 1107, 1112, 1117, 1113, 2133, 1119, 2131,
    594      1121, 1124, 1125, 1126, 1127, 1129, 1135, 2128, 1133, 2125,
    595      1131, 1136, 1137, 1138, 1139, 1143, 1145, 1151, 1152, 1153,
    596      1155,  764, 1157, 1156, 1158, 1166, 1169, 1167, 1172, 2124,
    597      1170, 1176, 1179, 1238, 2120,    0, 2118,    0, 2115,    0,
    598      2112,    0, 1225, 2111,    0, 2110,    0, 2108, 2105, 2102,
    599 
    600         0, 2101,    0, 1229, 2100, 1235, 1251, 1237, 1276, 1242,
    601      1193, 1193, 2883, 1292, 1310, 1303, 2110, 2083, 2092, 2091,
    602         0, 2090,    0, 2088,    0, 2085,    0, 2082,    0, 2081,
    603         0, 1174, 1214, 2083, 1178, 1211, 1258, 1233, 1259, 1213,
    604      1286, 1257, 1269, 1287, 1234, 1288, 1290, 1303, 1293, 1292,
    605       234, 1306, 1294, 1295, 1310, 1317, 2081, 1327, 1324, 2078,
    606      1311, 1314, 1326, 1330, 2075, 1331, 1332, 1334, 1335, 2074,
    607      1336, 1337, 2073, 1338, 1343, 2071, 2068, 2067, 1344, 1345,
    608      1348, 2066, 1228, 1353, 1354, 1355, 1356, 1370, 2064, 2061,
    609      1360, 1357, 2060, 1359, 1362, 2059, 1371, 2107, 2021,    0,
    610 
    611      2019,    0, 2018,    0, 2015,    0, 2012,    0, 2011,    0,
    612      2010,    0, 2008,    0, 1408, 1414, 1442, 1425, 2005, 2883,
    613      1431, 1418, 1239, 1432, 2002, 2883, 2001,    0, 2000,    0,
    614      1998,    0, 1995,    0,    0,    0, 1997,    0, 1419, 1422,
    615      1426, 1394, 1374, 1421, 1436, 1438, 1410, 1448, 1441, 1439,
    616      1449, 1453, 1456, 1458, 1459, 1460, 1491, 1466, 1465, 1467,
    617      1468, 1470, 1469, 1996, 1471, 1474, 1479, 1994, 1991, 1990,
    618      1482, 1472, 1989, 1483, 1987, 1980, 1484, 1490, 1978, 1977,
    619      1974, 1970, 1966, 1962, 1489, 1495, 1959, 1501, 1503, 1958,
    620      2007, 2883, 1952,    0, 1949,    0,    0,    0, 1951,    0,
    621 
    622         0,    0, 2883,    0,    0,    0,    0, 1549, 1947, 2883,
    623      2883, 1541, 1945,    0, 1942,    0,    0,    0,    0, 1941,
    624      1487, 1507, 1943, 1504, 1525, 1526, 1509, 1533, 1538, 1527,
    625      1941, 1528, 1542, 1547, 1543, 1548, 1578, 1550, 1551, 1580,
    626      1558, 1563, 1565, 1567, 1566, 1568, 1572, 1938, 1937, 1570,
    627      1936, 1934, 1571, 1574, 1582, 1931, 1575, 1585,    0,    0,
    628         0, 1927, 1926, 1924, 1627,    0, 1921, 1920, 1919, 1917,
    629      1914, 1916, 1915, 1913, 1910, 1584, 1590, 1587, 1595, 1605,
    630      1586, 1606, 1608, 1611, 1612, 1641, 1909, 1616, 1908, 1617,
    631      1621, 1624, 1626, 1618, 1622, 1906, 1631, 1903, 1902, 1901,
    632 
    633      1632, 1899, 1892, 1887, 1886, 1883, 1882, 1881, 1879, 1862,
    634      1853, 1852, 1849, 1842, 1839, 1635, 1835, 1636, 1638, 1637,
    635      1639, 1643, 1644, 1833, 1642, 1674, 1649, 1832, 1650, 1663,
    636      1664, 1659, 1291, 1658, 1665, 1808, 1807, 1806, 1799, 1797,
    637      1796, 1754, 1751, 1750, 1748, 1747, 1746, 1741, 1742, 1670,
    638      1671, 1673, 1675, 1677, 1679, 1680, 1741, 1739, 1683, 1737,
    639      1693, 1685, 1687, 1690, 1689, 1689, 1650, 1648, 1503, 1422,
    640      1370, 1369, 1186, 1694, 1699, 1053, 1705, 1700, 1706, 1049,
    641      1709, 1713, 1714, 1015,  968,  930,  798,  764, 1707, 1715,
    642      1718, 1719, 1720, 1722,  644,  570, 1724,  539,  493, 1726,
    643 
    644      1728,  407,  286, 1731, 1732, 1733, 1735, 1734, 1736, 1738,
    645       233,  137, 2883, 1811, 1824, 1837, 1847, 1857, 1870, 1880,
    646      1893, 1906, 1919, 1927, 1937, 1944, 1951, 1958, 1965, 1972,
    647      1979, 1986, 1993, 2000, 2007, 2011, 2019, 2025, 2032, 2039,
    648      2046, 2053, 2056, 2063, 2069, 2082, 2095, 2102, 2109, 2116,
    649      2123, 2126, 2133, 2136, 2143, 2146, 2153, 2156, 2163, 2166,
    650      2173, 2176, 2183, 2186, 2193, 2201, 2208, 2215, 2222, 2229,
    651      2232, 2239, 2242, 2249, 2252, 2259, 2265, 2278, 2285, 2292,
    652      2295, 2302, 2305, 2312, 2315, 2322, 2325, 2332, 2335, 2342,
    653      2345, 2352, 2359, 2362, 2369, 2372, 2379, 2386, 2393, 2396,
    654 
    655      2403, 2406, 2413, 2416, 2423, 2426, 2433, 2436, 2443, 2449,
    656      2462, 2469, 2476, 2479, 2486, 2489, 2496, 2499, 2506, 2509,
    657      2516, 2519, 2526, 2529, 2536, 2539, 2546, 2549, 2556, 2563,
    658      2566, 2573, 2576, 2583, 2586, 2593, 2596, 2599, 2605, 2612,
    659      2621, 2628, 2635, 2638, 2645, 2648, 2651, 2657, 2664, 2667,
    660      2670, 2673, 2676, 2679, 2682, 2685, 2692, 2695, 2702, 2705,
    661      2708, 2711, 2714, 2724, 2731, 2734, 2737, 2740, 2747, 2754,
    662      2761, 2764, 2771, 2778, 2785, 2792, 2799, 2806, 2813, 2820,
    663      2827, 2834, 2841, 2848, 2855, 2862, 2869
     546        0,   85, 2373, 2371,   95,    0,  179,  180,  181,  182,
     547     2385, 2911,  193, 2911,  199,   56, 2911, 2330,   61,  175,
     548     2911, 2911, 2911,   57,  190, 2911,  193,  191,  206,  218,
     549      278,    0, 2350, 2911,  218, 2349,  154,  348,  157,  223,
     550     2911,  178, 2911,  219,  271, 2911,  177,  166,  202,  270,
     551      213,  295,  138,  212,  218,  194,  256,  210,  272,  318,
     552      331,  206,  155,  225, 2911,  227, 2911, 2344,  403,  350,
     553     2911, 2353, 2911, 2320,  212, 2911,    0, 2911,  431,    0,
     554     2911,  412, 2911,  418,  444, 2911,  504, 2319,  214, 2911,
     555     2911, 2911, 2911, 2911, 2337, 2911, 2334, 2911, 2911, 2344,
     556
     557      566, 2911, 2361, 2911,  435,  418,  504,  453,  292,  250,
     558      302,  462,  360,    0,  349,  343,  329,  415, 2911, 2911,
     559     2911, 2331, 2911, 2911, 2911, 2329, 2326,  357,  363, 2339,
     560      364,  435,  454,  396,  465,  455,  506, 2320,  469, 2268,
     561      472, 2297, 2911,  235, 2911, 2911,  504, 2291, 2288, 2911,
     562     2261,  479,  243,  469,  373,  398,  480,  491,  439,  493,
     563      577,  492,  489,  510,  495,  497,  512,  280,  328,  499,
     564      496,  500,  520,  524,  231,  514,  526,  446,  518,  527,
     565     2289,  532,  533,  557,  541,  558,  561,  585,  530,  580,
     566      573,  559,  589,  595,  594,  604,  610,  603,  602,  605,
     567
     568      611, 2911, 2911,  677,  686, 2338,  692, 2911,  698, 2911,
     569     2284,  545, 2278, 2277,    0,  689, 2911, 2911,  704, 2276,
     570     2274, 2271,    0, 2293,  586,  634,  670,  713,  712,  674,
     571      702,  703,  706, 2290,  709,  716, 2266, 2264, 2911,    0,
     572      630,  731,  699,  721, 2244, 2296, 2911,  744,  752,  732,
     573      768,  779,  809,  792,  723, 2911, 2254, 2226,    0,  817,
     574     2271,  818,  736, 2911, 2247, 2221,  831, 2911, 2911, 2254,
     575     2911, 2911,  747,  748, 2230, 2228,  746, 2224, 2223, 2221,
     576        0, 2218,    0, 2187,  636,  757,  767,  793,  806,  768,
     577      808,  710,  811,  795,  826,  709,  827,  744,  745,  833,
     578
     579      830,  828,  818,  829,  839, 2217,  842,  838,  844,  329,
     580      846,  851,  852,  854,  858,  855,  862,  867,  864,  868,
     581      871,  872,  877,  878,  885,  875,  879,  886, 2216,  560,
     582      888,  889,  892,  891,  893,  896,  774,  900,  902,  904,
     583      901,  905,  908,  909,  911, 2214,  912,  916,  959,  915,
     584      921,  410,  917,  926,  929,  987,  983, 2208, 2205, 2204,
     585        0, 2203,    0,  974,  979, 2201,    0, 2198,    0, 2197,
     586        0, 2219, 2911,  959,  974, 2196, 2191,    0, 2190,    0,
     587     2911,  991, 1009, 1002, 2911, 1015, 1056, 2189, 1031, 1037,
     588     2187, 2911, 2911, 1020, 1028, 1065, 1047, 1121,  977, 1086,
     589
     590     1052, 2911, 2911, 2184, 2180, 2176,    0, 2174,    0, 2172,
     591        0, 2169,    0, 2911,  958, 1020,  955,  995,  997, 1048,
     592     1050, 1038, 1054, 1052, 1072, 1060, 1082, 1056, 1086, 1096,
     593     1097, 1100, 1102, 1106, 1104, 1108, 1103, 1016, 1111, 2170,
     594      772, 2168,  632, 2165, 1115, 1116, 1117, 1120, 1125, 1122,
     595     1123, 2162, 1127, 2161, 1133, 1134, 1135, 1139, 1140, 1144,
     596     1145, 2160, 1141, 2158, 1146, 1147, 1148, 1151, 1157, 1152,
     597     1159, 1149, 1165, 1162, 1163, 1168, 1177, 1166, 1167, 1181,
     598     1185, 1182, 1183, 2155, 1186, 1187,  953, 1243, 2149,    0,
     599     2148,    0, 2147,    0, 2145,    0, 1235, 2142,    0, 2139,
     600
     601        0, 2138, 2137, 2135,    0, 2132,    0, 1240, 2129, 1246,
     602     1262, 1235, 1297, 1253, 1202, 1200, 2911, 1304, 1332, 1315,
     603     2141, 2115, 2125, 2122,    0, 2119,    0, 2118,    0, 2117,
     604        0, 2115,    0, 2112,    0, 1222, 1188, 2112, 1226, 1224,
     605     1237, 1245, 1240, 1242, 1280, 1290, 1283,  990, 1291, 1244,
     606     1296, 1292, 1251, 1307, 1297, 1310, 1282, 1309, 1298, 1299,
     607     1324, 1325, 2111, 1332, 1327, 2110, 1314, 1328, 1329, 1337,
     608     2108, 1339, 1334, 1338, 1341, 2105, 1349, 1352, 2102, 1353,
     609     1354, 2101, 2100, 2098, 1355, 1358, 1359, 2095, 1360, 1365,
     610     1366, 1361, 1367, 1378, 2094, 2093, 1380, 1374, 2091, 1369,
     611
     612     1381, 2088, 1370, 2138, 2083,    0, 2081,    0, 2048,    0,
     613     2046,    0, 2045,    0, 2042,    0, 2039,    0, 2038,    0,
     614     1426, 1432, 1461, 1443, 2037, 2911, 1449, 1398, 1436, 1451,
     615     2035, 2911, 2032,    0, 2029,    0, 2028,    0, 2027,    0,
     616        0,    0, 2028,    0, 1437, 1440, 1382, 1443, 1426, 1393,
     617     1390, 1444, 1453, 1454, 1428, 1424, 1457, 1456, 1458, 1463,
     618     1472, 1468, 1477, 1475, 1508, 1481, 1482, 1484, 1483, 1487,
     619     1486, 2025, 1488, 1491, 1494, 2024, 2023, 2021, 1497, 1498,
     620     2018, 1499, 2017, 2016, 1505, 1500, 2014, 2007, 2005, 2004,
     621     2001, 1997, 1506, 1510, 1993, 1512, 1504, 1989, 2037, 2911,
     622
     623     1982,    0, 1981,    0,    0,    0, 1982,    0,    0,    0,
     624     2911,    0,    0,    0,    0, 1557, 1976, 2911, 2911, 1563,
     625     1975,    0, 1974,    0,    0,    0,    0, 1972, 1518, 1538,
     626     1972, 1523, 1540, 1543, 1551, 1541, 1554, 1552, 1559, 1545,
     627     1971, 1558, 1568, 1569, 1573, 1571, 1587, 1577, 1575, 1606,
     628     1582, 1583, 1586, 1588, 1589, 1590, 1591, 1970, 1968, 1595,
     629     1965, 1964, 1597, 1593, 1599, 1963, 1601, 1603,    0,    0,
     630        0, 1958, 1955, 1954, 1652,    0, 1953, 1951, 1948, 1947,
     631     1946, 1947, 1944, 1943, 1610, 1942, 1608, 1940, 1614, 1629,
     632     1604, 1630, 1616, 1632, 1607, 1635, 1637, 1665, 1937, 1641,
     633
     634     1936, 1642, 1646, 1648, 1654, 1643, 1647, 1935, 1652, 1933,
     635     1930, 1929, 1656, 1928, 1926, 1916, 1914, 1913, 1910, 1909,
     636     1908, 1906, 1889, 1880, 1879, 1876, 1869, 1659, 1660, 1869,
     637     1661, 1662, 1663, 1664, 1669, 1671, 1862, 1667, 1700, 1678,
     638     1860, 1676, 1688, 1689, 1684, 1683, 1690, 1694, 1856, 1835,
     639     1834, 1833, 1826, 1824, 1823, 1781, 1778, 1777, 1775, 1774,
     640     1773, 1774, 1772, 1695, 1696, 1702, 1697, 1704, 1708, 1707,
     641     1771, 1767, 1709, 1766, 1719, 1714, 1718, 1713, 1720, 1712,
     642     1674, 1602, 1521, 1519, 1382, 1199, 1197, 1721, 1726, 1077,
     643     1732, 1723, 1734, 1033, 1737, 1738, 1742,  991,  957,  865,
     644
     645      773,  695, 1736, 1743, 1744, 1749, 1748, 1750,  570,  528,
     646     1746,  385,  381, 1752, 1754,  277,  276, 1755, 1757, 1760,
     647     1762, 1761, 1763, 1765,  238,  203, 2911, 1839, 1852, 1865,
     648     1875, 1885, 1898, 1908, 1921, 1934, 1947, 1955, 1965, 1972,
     649     1979, 1986, 1993, 2000, 2007, 2014, 2021, 2028, 2035, 2039,
     650     2047, 2053, 2060, 2067, 2074, 2081, 2084, 2091, 2097, 2110,
     651     2123, 2130, 2137, 2144, 2151, 2154, 2161, 2164, 2171, 2174,
     652     2181, 2184, 2191, 2194, 2201, 2204, 2211, 2214, 2221, 2229,
     653     2236, 2243, 2250, 2257, 2260, 2267, 2270, 2277, 2280, 2287,
     654     2293, 2306, 2313, 2320, 2323, 2330, 2333, 2340, 2343, 2350,
     655
     656     2353, 2360, 2363, 2370, 2373, 2380, 2387, 2390, 2397, 2400,
     657     2407, 2414, 2421, 2424, 2431, 2434, 2441, 2444, 2451, 2454,
     658     2461, 2464, 2471, 2477, 2490, 2497, 2504, 2507, 2514, 2517,
     659     2524, 2527, 2534, 2537, 2544, 2547, 2554, 2557, 2564, 2567,
     660     2574, 2577, 2584, 2591, 2594, 2601, 2604, 2611, 2614, 2621,
     661     2624, 2627, 2633, 2640, 2649, 2656, 2663, 2666, 2673, 2676,
     662     2679, 2685, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713,
     663     2720, 2723, 2730, 2733, 2736, 2739, 2742, 2752, 2759, 2762,
     664     2765, 2768, 2775, 2782, 2789, 2792, 2799, 2806, 2813, 2820,
     665     2827, 2834, 2841, 2848, 2855, 2862, 2869, 2876, 2883, 2890,
     666
     667     2897
    664668    } ;
    665669
    666 static yyconst flex_int16_t yy_def[1088] =
     670static yyconst flex_int16_t yy_def[1102] =
    667671    {   0,
    668       913,    1,  914,  914,  913,    5,  915,  915,  916,  916,
    669       913,  913,  913,  913,  913,  913,  913,  917,  913,  913,
    670       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    671       913,   31,  913,  913,  913,  913,  913,  913,  918,  917,
    672       913,  913,  913,  913,  917,  913,  917,  917,  917,  917,
    673       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    674       917,  917,  917,  917,  913,  913,  913,  913,  913,  919,
    675       913,  913,  913,  920,  913,  913,  921,  913,  913,  922,
    676       913,  913,  913,  913,  913,  913,  913,  917,  913,  913,
    677       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    678 
    679       913,  913,  923,  913,  913,   30,  913,  913,  913,  913,
    680       924,   30,  913,   31,  913,  913,   31,  913,  913,  913,
    681       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    682       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    683       913,  925,  913,  913,  913,  913,  917,  926,  927,  913,
    684       913,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    685       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    686       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    687       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    688       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    689 
    690       913,  913,  913,  919,  919,  919,  913,  919,  913,  920,
    691       913,  928,  929,  921,  913,  913,  913,  913,  930,  931,
    692       932,  922,  913,  913,  913,  913,  913,  913,  913,  913,
    693       913,  913,  913,  913,  913,  933,  934,  913,  101,  913,
    694       913,  913,  913,  101,  923,  913,  101,  112,  248,  913,
    695       913,  913,  913,  913,  913,  913,  913,  935,  936,  937,
    696       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    697       913,  913,  913,  913,  938,  913,  939,  940,  941,  942,
    698       943,  944,  913,  945,  945,  945,  945,  945,  945,  945,
    699       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    700 
    701       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    702       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    703       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    704       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    705       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    706       945,  945,  945,  946,  947,  948,  949,  950,  951,  952,
    707       953,  913,  913,  954,  955,  956,  957,  958,  959,  913,
    708       913,  913,  913,  913,  960,  961,  962,  963,  913,  913,
    709       913,  913,  913,  913,  913,  385,  913,  381,  388,  913,
    710       913,  964,  965,  966,  913,  913,  913,  966,  913,  913,
    711 
    712       913,  967,  968,  969,  970,  971,  972,  973,  974,  975,
    713       976,  913,  977,  977,  977,  977,  977,  977,  977,  977,
    714       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    715       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    716       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    717       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    718       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    719       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    720       977,  977,  977,  978,  979,  980,  981,  982,  983,  984,
    721       985,  986,  913,  987,  988,  989,  990,  991,  991,  992,
    722 
    723       993,  994,  995,  913,  504,  913,  913,  996,  913,  996,
    724       913,  913,  913,  913,  913,  913,  913,  913,  997,  998,
    725       999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
    726      1009, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    727      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    728      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    729      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    730      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    731      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    732      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1012, 1013,
    733 
    734      1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
    735      1024, 1025, 1026, 1027,  913,  913,  913,  913, 1028,  913,
    736       617,  913,  913,  913,  621,  913, 1029, 1030, 1031, 1032,
    737      1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1039, 1039,
    738      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    739      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    740      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    741      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    742      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    743      1041,  913, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
    744 
    745      1050, 1051,  913, 1052, 1053, 1054, 1055,  913,  708,  913,
    746       913,  913, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
    747      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    748      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    749      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    750      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1066,
    751      1067, 1068, 1069, 1070,  913, 1071, 1056, 1058, 1072, 1073,
    752      1063, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    753      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    754      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    755 
    756      1064, 1064, 1064, 1074, 1075, 1068, 1076, 1069, 1077, 1070,
    757      1078, 1079, 1072, 1080, 1073, 1064, 1064, 1064, 1064, 1064,
    758      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    759      1064, 1064, 1064, 1064, 1064, 1081, 1074, 1082, 1075, 1083,
    760      1076, 1084, 1077, 1085, 1078, 1086, 1079, 1080, 1064, 1064,
    761      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    762      1064, 1064, 1064, 1064, 1064, 1087, 1081, 1082, 1083, 1084,
    763      1058, 1085, 1086, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    764      1064, 1064, 1064, 1064, 1064, 1064, 1087, 1058, 1064, 1064,
    765      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    766 
    767      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    768      1064, 1064,    0,  913,  913,  913,  913,  913,  913,  913,
    769       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    770       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    771       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    772       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    773       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    774       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    775       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    776       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    777 
    778       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    779       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    780       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    781       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    782       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    783       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    784       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    785       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    786       913,  913,  913,  913,  913,  913,  913
     672      927,    1,  928,  928,  927,    5,  929,  929,  930,  930,
     673      927,  927,  927,  927,  927,  927,  927,  931,  927,  927,
     674      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     675      927,   31,  927,  927,  927,  927,  927,  927,  932,  931,
     676      927,  927,  927,  927,  931,  927,  931,  931,  931,  931,
     677      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     678      931,  931,  931,  931,  927,  927,  927,  927,  927,  933,
     679      927,  927,  927,  934,  927,  927,  935,  927,  927,  936,
     680      927,  927,  927,  927,  927,  927,  927,  931,  927,  927,
     681      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     682
     683      927,  927,  937,  927,  927,   30,  927,  927,  927,  927,
     684      938,   30,  927,   31,  927,  927,   31,  927,  927,  927,
     685      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     686      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     687      927,  939,  927,  927,  927,  927,  931,  940,  941,  927,
     688      927,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     689      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     690      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     691      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     692      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     693
     694      931,  927,  927,  927,  933,  933,  933,  927,  933,  927,
     695      934,  927,  942,  943,  935,  927,  927,  927,  927,  944,
     696      945,  946,  936,  927,  927,  927,  927,  927,  927,  927,
     697      927,  927,  927,  927,  927,  927,  947,  948,  927,  101,
     698      927,  927,  927,  927,  101,  937,  927,  101,  112,  249,
     699      927,  927,  927,  927,  927,  927,  927,  927,  949,  950,
     700      951,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     701      927,  927,  927,  927,  927,  952,  927,  953,  954,  955,
     702      956,  957,  958,  927,  959,  959,  959,  959,  959,  959,
     703      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     704
     705      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     706      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     707      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     708      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     709      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     710      959,  959,  959,  959,  959,  960,  961,  962,  963,  964,
     711      965,  966,  967,  927,  927,  968,  969,  970,  971,  972,
     712      973,  927,  927,  927,  927,  927,  974,  975,  976,  977,
     713      927,  927,  927,  927,  927,  927,  927,  387,  927,  383,
     714      390,  927,  927,  978,  979,  980,  927,  927,  927,  980,
     715
     716      927,  927,  927,  981,  982,  983,  984,  985,  986,  987,
     717      988,  989,  990,  927,  991,  991,  991,  991,  991,  991,
     718      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     719      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     720      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     721      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     722      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     723      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     724      991,  991,  991,  991,  991,  991,  991,  992,  993,  994,
     725      995,  996,  997,  998,  999, 1000,  927, 1001, 1002, 1003,
     726
     727     1004, 1005, 1005, 1006, 1007, 1008, 1009,  927,  508,  927,
     728      927, 1010,  927, 1010,  927,  927,  927,  927,  927,  927,
     729      927,  927, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
     730     1019, 1020, 1021, 1022, 1023, 1024, 1024, 1024, 1024, 1024,
     731     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     732     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     733     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     734     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     735     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     736     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     737
     738     1024, 1024, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
     739     1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
     740      927,  927,  927,  927, 1042,  927,  623,  927,  927,  927,
     741      627,  927, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
     742     1051, 1052, 1053, 1054, 1053, 1053, 1053, 1053, 1053, 1053,
     743     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     744     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     745     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     746     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     747     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,  927,
     748
     749     1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
     750      927, 1066, 1067, 1068, 1069,  927,  716,  927,  927,  927,
     751     1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1078,
     752     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     753     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     754     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     755     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1079, 1080,
     756     1081, 1082, 1083, 1084,  927, 1085, 1070, 1072, 1086, 1087,
     757     1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     758     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     759
     760     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     761     1078, 1078, 1078, 1078, 1078, 1088, 1089, 1082, 1090, 1083,
     762     1091, 1084, 1092, 1093, 1086, 1094, 1087, 1078, 1078, 1078,
     763     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     764     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1095, 1088,
     765     1096, 1089, 1097, 1090, 1098, 1091, 1099, 1092, 1100, 1093,
     766     1094, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     767     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1101,
     768     1095, 1096, 1097, 1098, 1072, 1099, 1100, 1078, 1078, 1078,
     769     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     770
     771     1101, 1072, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     772     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     773     1078, 1078, 1078, 1078, 1078, 1078,    0,  927,  927,  927,
     774      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     775      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     776      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     777      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     778      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     779      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     780      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     781
     782      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     783      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     784      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     785      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     786      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     787      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     788      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     789      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     790      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     791      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     792
     793      927
    787794    } ;
    788795
    789 static yyconst flex_int16_t yy_nxt[2969] =
     796static yyconst flex_int16_t yy_nxt[2998] =
    790797    {   0,
    791798       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    793800       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    794801       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    795        18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
    796        18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
    797        50,   51,   52,   53,   18,   54,   18,   55,   56,   18,
    798        57,   18,   58,   59,   60,   61,   62,   63,   18,   18,
    799        64,   65,   66,   67,   68,   69,   86,   94,   87,   87,
    800        69,   90,   91,   70,   73,   73,   73,   73,   73,   73,
    801 
    802        73,   73,   73,   73,   74,   73,   73,   73,   73,   73,
     802       18,   18,   18,   40,   18,   18,   18,   18,   18,   18,
     803       40,   18,   41,   42,   43,   44,   45,   46,   47,   48,
     804       49,   50,   51,   52,   53,   18,   54,   18,   55,   56,
     805       18,   57,   18,   58,   59,   60,   61,   62,   63,   18,
     806       18,   64,   65,   66,   67,   68,   69,   86,   94,   87,
     807       87,   69,   90,   91,   70,   73,   73,   73,   73,   73,
     808
     809       73,   73,   73,   73,   73,   74,   73,   73,   73,   73,
    803810       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
    804        73,   73,   73,   73,   73,   73,   73,   73,   73,   74,
     811       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
    805812       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    806        74,   74,   74,   74,   74,   73,   75,   73,   73,   74,
    807        76,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     813       74,   74,   74,   74,   74,   74,   74,   73,   75,   73,
     814       73,   74,   76,   74,   74,   74,   74,   74,   74,   74,
    808815       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    809        74,   74,   74,   74,   74,   73,   73,   73,   73,   78,
    810        78,   81,   81,  125,  126,   92,  143,   81,   81,   89,
    811        78,   78,   82,   83,   84,   84,   84,   82,   84,   83,
    812 
    813        85,   85,   85,   84,   93,   95,   89,  144,  148,  100,
    814        97,  101,  101,  101,  101,  101,  101,  258,  913,   96,
    815       102,   87,   98,   99,   87,  103,  163,  120,  145,   79,
    816        79,   79,   79,  146,  149,  104,  105,   89,  106,  106,
    817       106,  106,  107,  107,  121,   89,  122,  123,  150,  269,
    818       151,  270,  260,  266,  187,  108,   89,  657,  161,  109,
    819       162,  152,  153,  154,   89,  110,  111,  155,  156,  164,
    820       157,  112,   89,  158,  159,  147,  165,  108,   89,  184,
    821        89,  160,  166,  113,  212,   89,   89,   89,  201,   89,
    822        89,  110,  199,   89,  111,  105,   89,  114,  114,  114,
    823 
    824       114,  114,  114,   89,  171,  179,  172,  236,  198,   89,
    825       213,  182,  167,  311,  108,  173,  168,  183,  115,  180,
    826        89,  169,   89,  277,  116,  170,  181,  174,  256,  200,
    827       117,   89,  913,  237,   89,  175,  108,  176,   89,  202,
    828       177,  254,  118,  269,  178,  270,  292,  255,  185,  278,
    829       116,  127,  257,  186,  255,  128,  129,   89,  130,  145,
    830       131,  132,  913,  133,  146,  134,   89,  261,  264,  188,
    831       189,  263,  254,  255,  135,  136,  137,  196,  192,  190,
    832       255,  269,  191,  270,   89,  262,  193,  271,  194,  262,
    833       913,  263,  265,  195,  269,  138,  270,  263,  139,  269,
    834 
    835       269,  270,  270,   89,  323,  271,  147,  203,   83,   84,
    836        84,   84,  203,  206,  207,  204,   89,  263,  206,  269,
    837       197,  270,  269,  273,  270,  140,  141,   82,   83,   84,
    838        84,   84,   82,  321,  208,  208,  208,  208,  208,  208,
    839       215,  216,   89,  272,  269,  215,  270,  217,  269,  269,
    840       270,  270,  217,   84,   83,   84,   84,   84,   84,   89,
    841       286,  218,  218,  218,  218,   84,   83,   85,   85,   85,
    842        84,   89,  217,  247,  247,  247,  247,  247,  247,  248,
    843       248,  248,  248,   89,   89,  145,  284,   89,  219,   89,
    844       146,  217,  288,  285,   89,   89,  217,  217,   89,   89,
    845 
    846       217,  217,  287,  289,   89,  304,  460,  913,  217,  320,
    847        89,  217,  249,  217,  220,  217,  290,  221,  223,  306,
    848        89,  291,  224,  225,   89,  309,  305,  226,  227,   89,
    849       228,   89,  229,   89,  312,  913,   89,   89,  310,   89,
    850        89,  230,  231,  232,  105,   89,  107,  107,  107,  107,
    851       107,  107,  307,  308,  313,   89,   89,   89,  316,  314,
    852       317,  319,  233,  108,  251,  234,  251,  315,   89,  252,
    853       252,  252,  252,  252,  252,  322,   89,   89,  318,  250,
    854        89,  329,   89,  324,   89,  108,   89,   89,  337,  331,
    855       325,   89,   89,  235,  239,  239,  239,  239,  239,  239,
    856 
    857        89,  326,  253,   89,  328,  338,  330,   89,  327,  332,
    858       240,  241,  242,  341,  243,  242,   89,  145,  333,  345,
    859        89,  336,   89,   89,   89,  343,   89,  244,  334,  335,
    860       439,  339,  242,  241,  242,   89,  342,  243,   89,  242,
    861       293,  294,  295,  346,  296,  297,  340,  344,  298,   89,
    862       299,  350,   89,  351,   89,  300,  301,  302,  356,  303,
    863        89,   89,  348,  463,  347,  352,  206,  207,  215,  216,
    864       349,  206,   89,  215,  353,  203,   83,   84,   84,   84,
    865       203,  206,  207,  204,  357,  413,  206,  208,  208,  208,
    866       208,  208,  208,  354,  207,  370,   89,  371,  354,  370,
    867 
    868       355,  371,  208,  208,  208,  208,  208,  208,  362,  362,
    869       362,  362,  371,  371,  208,  208,  208,  208,  208,  208,
    870       370,  370,  371,  371,  379,  370,  370,  371,  371,  372,
    871       370,  370,  371,  371,  370,  373,  371,  370,  370,  371,
    872       371,  363,  379,  379,  380,  913,  380,  379,  390,  381,
    873       381,  381,  381,  381,  381,  383,  269,  383,  270,  105,
    874       383,  248,  248,  248,  248,  379,  385,  385,  385,  385,
    875       385,  385,  400,  269,  390,  270,   89,  383,   89,  383,
    876       387,   89,  382,  402,  383,  107,  107,  107,  107,  107,
    877       107,   89,   89,  417,  249,   89,  414,  416,  400,  386,
    878 
    879       418,   89,  108,  252,  252,  252,  252,  252,  252,  403,
    880       415,  419,   89,   89,   89,   89,   89,  420,  261,  913,
    881       431,  421,  432,  586,  108,  388,  388,  388,  388,  388,
    882       388,  393,  426,   89,  107,  107,  107,  107,  107,  107,
    883        89,  240,  251,  242,  251,  243,  242,  252,  252,  252,
    884       252,  252,  252,  913,  395,  422,  396,   89,  389,  427,
    885       397,  423,  424,  242,   89,  242,  398,  261,  243,   89,
    886       242,  114,  114,  114,  114,  114,  114,   89,  399,  428,
    887       425,   89,  396,   89,   89,   89,  397,  435,   89,   89,
    888       437,   89,   89,  429,  430,   89,  433,  438,   89,   89,
    889 
    890       444,   89,  436,  445,  266,  446,   89,   89,  434,  440,
    891       441,   89,  442,  443,   89,  448,   89,  449,   89,   89,
    892       447,   89,   89,  450,  453,  451,  454,  455,   89,  452,
    893        89,   89,   89,   89,   89,   89,   89,  457,   89,   89,
    894       462,   89,   89,  459,  456,   89,  458,  461,  465,   89,
    895       470,   89,  464,   89,   89,   89,  466,  145,  468,  467,
    896        89,  471,  469,   89,  477,  472,  475,   89,   89,  474,
    897        89,  473,   89,  476,   89,  480,  479,  481,  478,  354,
    898       207,  207,   89,  482,  354,  532,  355,  205,  483,  217,
    899       217,  217,  217,  362,  362,  362,  362,  370,  370,  371,
    900 
    901       371,   89,  381,  381,  381,  381,  381,  381,  380,  509,
    902       380,  509,  517,  381,  381,  381,  381,  381,  381,  510,
    903        89,  511,  493,  504,  504,  504,  504,  504,  504,  239,
    904       239,  239,  239,  239,  239,  509,  518,  509,   89,  240,
    905        89,  242,   89,  243,  242,  248,  248,  248,  248,  107,
    906       107,  512,   89,  537,  533,  534,  505,  513,  513,   89,
    907        89,  242,  384,  242,   89,  541,  243,   89,  242,  385,
    908       385,  385,  385,  385,  385,  393,  512,   89,  387,  535,
    909       542,  539,   89,  513,  513,  240,  241,  242,   89,  243,
    910       242,  388,  388,  388,  388,  388,  388,  536,  395,  543,
    911 
    912       396,   89,  386,  553,  397,   89,  913,  242,  241,  242,
    913       398,  514,  243,  514,  242,   89,  515,  515,  515,  515,
    914       515,  515,  399,   89,  389,   89,  396,   89,  544,  395,
    915       397,  396,  538,   89,  540,  397,   89,   89,   89,   89,
    916        89,  519,  549,  545,  546,   89,  552,   89,   89,  516,
    917       554,   89,  557,  399,  548,  547,   89,  396,   89,   89,
    918       550,  397,   89,  556,   89,   89,  555,  551,  558,   89,
    919       563,   89,  559,   89,  565,  561,   89,   89,   89,   89,
    920       560,   89,  562,   89,  564,   89,  566,   89,   89,   89,
    921        89,   89,  569,  567,  571,   89,  573,   89,  568,  578,
    922 
    923       570,  572,  574,   89,   89,   89,  575,   89,   89,   89,
    924        89,  577,  579,  583,  576,  580,  587,  581,   89,   89,
    925       585,   89,   89,  584,   89,  582,   89,  590,   89,  591,
    926        89,   89,  589,  588,  597,  594,  593,  596,  509,  592,
    927       207,  913,  620,  639,  595,  641,  598,  217,  217,  217,
    928       217,  504,  504,  504,  504,  504,  504,  385,  385,  385,
    929       385,  385,  385,   89,  509,   89,   89,  240,  620,  242,
    930       646,  243,  242,  388,  388,  388,  388,  388,  388,  640,
    931        89,  710,  509,  642,  505,   89,   89,  509,  680,  242,
    932       506,  242,  510,  616,  243,  616,  242,  619,  617,  617,
    933 
    934       617,  617,  617,  617,  710,  651,  507,  644,  509,   89,
    935        89,   89,  648,  509,  515,  515,  515,  515,  515,  515,
    936       514,   89,  514,  643,  645,  515,  515,  515,  515,  515,
    937       515,  618,  621,  621,  621,  621,  621,  621,   89,   89,
    938        89,  649,   89,   89,   89,   89,   89,   89,  622,  647,
    939       623,  653,  624,  623,  650,   89,  655,  656,   89,  863,
    940       654,  652,   89,   89,  660,  625,   89,  658,  659,   89,
    941       623,  661,  623,  663,  662,  624,   89,  623,   89,   89,
    942       665,  666,   89,   89,   89,  664,   89,   89,   89,   89,
    943        89,  668,  669,  667,  674,   89,   89,   89,  671,  675,
    944 
    945        89,  670,  672,  673,  676,   89,   89,   89,   89,   89,
    946       678,   89,   89,  682,   89,  681,  685,  679,  677,  687,
    947       684,  686,   89,   89,  913,  888,   89,  689,  688,  683,
    948       504,  504,  504,  504,  504,  504,  617,  617,  617,  617,
    949       617,  617,  616,  726,  616,  690,   89,  617,  617,  617,
    950       617,  617,  617,  621,  621,  621,  621,  621,  621,  725,
    951       710,  710,   89,  615,  708,  708,  708,  708,  708,  708,
    952       711,   89,  711,   89,   89,  711,  721,  913,   89,  730,
    953       622,  723,  623,  710,  624,  623,  625,  724,   89,  722,
    954        89,   89,  711,   89,  711,  728,  727,  709,  729,  711,
    955 
    956        89,   89,  623,  731,  623,   89,  732,  624,   89,  623,
    957        89,   89,   89,  733,  738,  740,  734,   89,   89,   89,
    958        89,   89,   89,   89,   89,  736,   89,  735,  743,  739,
    959       746,   89,  737,  741,   89,   89,   89,  742,  744,   89,
    960       749,   89,   89,   89,  745,  753,  747,   89,  748,  754,
    961       755,  751,  752,   89,  750,   89,   89,  756,  913,   89,
    962       772,   89,  757,  621,  621,  621,  621,  621,  621,  773,
    963       758,  708,  708,  708,  708,  708,  708,   89,   89,   89,
    964        89,  777,  774,  776,  775,   89,  781,  622,  778,  623,
    965        89,  624,  623,  779,   89,   89,  712,  780,  784,   89,
    966 
    967        89,  786,   89,   89,  709,  787,  789,  782,  783,  623,
    968        89,  623,  788,  790,  624,   89,  623,   89,   89,   89,
    969        89,  785,   89,   89,   89,  792,   89,   89,  791,  793,
    970        89,  794,   89,  796,   89,  802,   89,   89,   89,   89,
    971       797,  795,   89,  799,  818,  798,  803,   89,  800,  708,
    972       708,  708,  708,  708,  708,  801,  816,   89,   89,  817,
    973        89,  821,  819,   89,   89,  826,  824,  820,   89,   89,
    974        89,  827,  828,   89,   89,  822,   89,  825,   89,  830,
    975       829,  831,  765,   89,   89,  832,  823,   89,   89,   89,
    976        89,   89,  852,   89,   89,   89,   89,  833,  854,  855,
    977 
    978       857,   89,   89,  913,  858,  913,  834,  835,  851,  850,
    979        89,   89,  856,  853,  849,   89,   89,   89,  860,  861,
    980       862,  864,   89,   89,  859,   89,   89,   89,  876,   89,
    981       875,   89,   89,  865,  880,   89,  877,   89,  882,   89,
    982       883,   89,   89,  874,  887,   89,   89,  878,  884,  881,
    983       886,   89,   89,  879,  885,  889,  890,   89,   89,   89,
    984       891,   89,  892,  893,  894,   89,   89,   89,  895,  896,
    985        89,   89,   89,  899,   89,  901,   89,  902,   89,  897,
    986        89,  900,  898,   89,   89,   89,   89,   89,   89,   89,
    987        89,   89,  906,   89,   89,  905,  913,  907,  903,  904,
    988 
    989       912,  913,  873,  913,  910,  872,  913,  908,  909,  870,
    990       911,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    991        71,   71,   71,   71,   77,   77,   77,   77,   77,   77,
    992        77,   77,   77,   77,   77,   77,   77,   80,   80,   80,
    993        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
    994        88,  913,  869,   88,  913,   88,   88,   88,   88,   88,
    995       142,  868,  913,  867,  142,  142,  142,  142,  142,  142,
    996       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
    997       205,  205,  205,  210,   89,   89,  210,   89,  210,  210,
    998       210,  210,  210,  214,  913,  214,  214,  848,  214,  214,
    999 
    1000       214,  214,  214,  214,  913,  214,  222,  847,  845,  222,
    1001       222,  222,  222,  222,  222,  222,  222,  913,  222,  245,
    1002       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
    1003       245,  245,  259,  259,  843,  259,  913,  841,  913,  259,
    1004       275,  839,  837,  275,   89,  275,  275,  275,  275,  275,
    1005       279,   89,  279,   89,   89,   89,  279,  281,   89,  281,
    1006        89,   89,   89,  281,  358,   89,  358,   89,   89,  913,
    1007       358,  360,  815,  360,  813,  913,  913,  360,  364,  810,
    1008       364,  808,  806,   89,  364,  366,   89,  366,   89,   89,
    1009        89,  366,  368,   89,  368,   89,  771,  768,  368,  375,
    1010 
    1011       767,  375,  765,  211,  761,  375,  377,  760,  377,  692,
    1012        89,   89,  377,  392,   89,  392,  394,  394,   89,  394,
    1013       394,  394,   89,  394,  259,  259,   89,  259,  275,   89,
    1014        89,  275,   89,  275,  275,  275,  275,  275,  404,   89,
    1015       404,   89,   89,   89,  404,  406,   89,  406,   89,   89,
    1016       719,  406,  408,  718,  408,  716,  714,  712,  408,  279,
    1017       619,  279,  410,  707,  410,  706,  704,  702,  410,  281,
    1018       700,  281,   88,  698,  696,   88,  694,   88,   88,   88,
    1019        88,   88,  205,  205,  205,  205,  205,  205,  205,  205,
    1020       205,  205,  205,  205,  205,  484,  484,  484,  484,  484,
    1021 
    1022       484,  484,  484,  484,  484,  484,  484,  484,  485,  692,
    1023       485,   89,   89,   89,  485,  487,   89,  487,   89,   89,
    1024        89,  487,  489,   89,  489,   89,   89,   89,  489,  358,
    1025        89,  358,  491,   89,  491,   89,  638,  636,  491,  360,
    1026       634,  360,  494,  632,  494,  630,  628,  519,  494,  364,
    1027       626,  364,  496,  626,  496,  615,  614,  612,  496,  366,
    1028       499,  366,  498,  499,  498,  610,  608,  606,  498,  368,
    1029       604,  368,  500,  602,  500,  600,   89,   89,  500,  375,
    1030        89,  375,  502,   89,  502,   89,   89,   89,  502,  377,
    1031        89,  377,  508,  531,  508,  529,  508,  527,  508,  392,
    1032 
    1033       525,  392,  523,  392,  521,  392,  394,  394,  507,  394,
    1034       394,  394,  506,  394,  520,  503,  520,  501,  371,  371,
    1035       520,  522,  499,  522,  497,  495,  492,  522,  524,  490,
    1036       524,  488,  486,   89,  524,  404,   89,  404,  526,   89,
    1037       526,  412,  411,  409,  526,  406,  407,  406,  528,  405,
    1038       528,  276,  271,  270,  528,  408,  401,  408,  530,  401,
    1039       530,  258,  391,  391,  530,  410,  246,  410,   88,  384,
    1040       378,   88,  376,   88,   88,   88,   88,   88,  484,  484,
    1041       484,  484,  484,  484,  484,  484,  484,  484,  484,  484,
    1042       484,  599,  374,  599,  370,  369,  367,  599,  485,  365,
    1043 
    1044       485,  601,  361,  601,  359,  211,  207,  601,  487,   89,
    1045       487,  603,  283,  603,  282,  280,  276,  603,  489,  271,
    1046       489,  605,  274,  605,  271,  269,  268,  605,  491,  267,
    1047       491,  607,  246,  607,  238,   87,   87,  607,  494,   89,
    1048       494,  609,  211,  609,  209,   87,  124,  609,  496,  119,
    1049       496,  498,   89,  498,  913,   72,   72,  498,  611,  913,
    1050       611,  913,  913,  913,  611,  500,  913,  500,  613,  913,
    1051       613,  913,  913,  913,  613,  502,  913,  502,  508,  913,
    1052       508,  913,  508,  913,  508,  394,  913,  394,  913,  913,
    1053       913,  394,  627,  913,  627,  913,  913,  913,  627,  520,
    1054 
    1055       913,  520,  629,  913,  629,  913,  913,  913,  629,  522,
    1056       913,  522,  631,  913,  631,  913,  913,  913,  631,  524,
    1057       913,  524,  633,  913,  633,  913,  913,  913,  633,  526,
    1058       913,  526,  635,  913,  635,  913,  913,  913,  635,  528,
    1059       913,  528,  637,  913,  637,  913,  913,  913,  637,  530,
    1060       913,  530,   88,  913,  913,   88,  913,   88,   88,   88,
    1061        88,   88,  691,  691,  691,  691,  691,  691,  691,  691,
    1062       691,  691,  691,  691,  691,  693,  913,  693,  913,  913,
    1063       913,  693,  599,  913,  599,  695,  913,  695,  913,  913,
    1064       913,  695,  601,  913,  601,  697,  913,  697,  913,  913,
    1065 
    1066       913,  697,  603,  913,  603,  699,  913,  699,  913,  913,
    1067       913,  699,  605,  913,  605,  701,  913,  701,  913,  913,
    1068       913,  701,  607,  913,  607,  703,  913,  703,  913,  913,
    1069       913,  703,  609,  913,  609,  705,  913,  705,  913,  913,
    1070       913,  705,  611,  913,  611,   88,  913,   88,  913,  913,
    1071       913,   88,  613,  913,  613,  508,  913,  508,  913,  913,
    1072       913,  508,  713,  913,  713,  913,  913,  913,  713,  627,
    1073       913,  627,  715,  913,  715,  913,  913,  913,  715,  629,
    1074       913,  629,  717,  913,  717,  913,  913,  913,  717,  631,
    1075       913,  631,  142,  913,  142,  913,  913,  913,  142,  633,
    1076 
    1077       913,  633,  720,  913,  720,  635,  913,  635,   88,  913,
    1078       913,   88,  913,   88,   88,   88,   88,   88,  637,  913,
    1079       637,  691,  691,  691,  691,  691,  691,  691,  691,  691,
    1080       691,  691,  691,  691,  759,  913,  759,  913,  913,  913,
    1081       759,  693,  913,  693,  210,  913,  210,  913,  913,  913,
    1082       210,  695,  913,  695,  762,  913,  762,  697,  913,  697,
    1083       210,  913,  913,  210,  913,  210,  210,  210,  210,  210,
    1084       699,  913,  699,  763,  913,  763,  701,  913,  701,  703,
    1085       913,  703,  764,  913,  764,  705,  913,  705,   88,  913,
    1086        88,  766,  913,  766,  913,  913,  913,  766,  713,  913,
    1087 
    1088       713,  275,  913,  275,  913,  913,  913,  275,  715,  913,
    1089       715,  769,  913,  769,  717,  913,  717,  142,  913,  142,
    1090       770,  913,  770,  913,  913,  913,  770,   88,  913,  913,
    1091        88,  913,   88,   88,   88,   88,   88,  804,  913,  804,
    1092       759,  913,  759,  210,  913,  210,  805,  913,  805,  913,
    1093       913,  913,  805,  807,  913,  807,  913,  913,  913,  807,
    1094       809,  913,  809,  913,  913,  913,  809,  811,  913,  811,
    1095       812,  913,  812,  913,  913,  913,  812,  814,  913,  814,
    1096       913,  913,  913,  814,  836,  913,  836,  913,  913,  913,
    1097       836,  838,  913,  838,  913,  913,  913,  838,  840,  913,
    1098 
    1099       840,  913,  913,  913,  840,  842,  913,  842,  913,  913,
    1100       913,  842,  844,  913,  844,  913,  913,  913,  844,  846,
    1101       913,  846,  913,  913,  913,  846,  637,  913,  637,  913,
    1102       913,  913,  637,  866,  913,  866,  913,  913,  913,  866,
    1103       699,  913,  699,  913,  913,  913,  699,  703,  913,  703,
    1104       913,  913,  913,  703,   88,  913,   88,  913,  913,  913,
    1105        88,  871,  913,  871,  913,  913,  913,  871,  142,  913,
    1106       142,  913,  913,  913,  142,  210,  913,  210,  913,  913,
    1107       913,  210,   11,  913,  913,  913,  913,  913,  913,  913,
    1108       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1109 
    1110       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1111       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1112       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1113       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1114       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1115       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1116       913,  913,  913,  913,  913,  913,  913,  913
     816       74,   74,   74,   74,   74,   74,   74,   73,   73,   73,
     817       73,   78,   78,   81,   81,  125,  126,   92,  143,   81,
     818       81,   89,   78,   78,   82,   83,   84,   84,   84,   82,
     819
     820       84,   83,   85,   85,   85,   84,   93,   95,   89,  180,
     821      144,  100,   97,  101,  101,  101,  101,  101,  101,   89,
     822      200,   96,  102,   87,   98,   99,   87,  103,  148,  120,
     823       89,  145,   79,   79,   79,   79,  146,  104,  105,  164,
     824      106,  106,  106,  106,  107,  107,  121,   89,  122,  123,
     825      150,  162,  151,  163,  149,   89,   89,  108,  202,   89,
     826      165,  109,  213,   89,  237,   89,   89,  166,  110,  111,
     827      185,   89,  188,  167,  112,  181,   89,  199,   89,  147,
     828      108,  172,  182,  173,   89,  278,  113,  201,  214,  183,
     829      238,   89,  174,  257,  110,  184,   89,  111,  105,  322,
     830
     831      114,  114,  114,  114,  114,  114,  152,  153,  154,   89,
     832      203,  279,  155,  156,  287,  157,  158,  108,  258,  159,
     833      160,  115,  259,   89,   89,   89,  186,  161,  116,   89,
     834       89,  187,  168,   89,  117,  255,  169,  189,  190,  145,
     835      108,  170,  256,  314,  146,  171,  118,  191,   89,  927,
     836      192,  207,  208,  175,  116,  127,  207,  197,  261,  128,
     837      129,  176,  130,  177,  131,  132,  178,  133,  256,  134,
     838      179,   89,  209,  209,  209,  209,  209,  209,  135,  136,
     839      137,   89,   89,  193,   89,  267,  265,  147,  270,  443,
     840      271,  194,  263,  195,  270,  270,  271,  271,  196,  264,
     841
     842      138,  198,  315,  139,  204,   83,   84,   84,   84,  204,
     843      256,  266,  205,   82,   83,   84,   84,   84,   82,   84,
     844       83,   84,   84,   84,   84,  264,   89,  270,  255,  271,
     845      140,  141,  216,  217,   89,  289,  256,  216,   89,  218,
     846      249,  249,  249,  249,  218,   84,   83,   85,   85,   85,
     847       84,   89,  272,  219,  219,  219,  219,  248,  248,  248,
     848      248,  248,  248,   89,  218,  264,  270,  290,  271,  927,
     849      252,  484,  252,  272,  250,  253,  253,  253,  253,  253,
     850      253,  220,  927,  263,  218,  270,  270,  271,  271,  218,
     851      218,  264,   89,  218,  218,  273,  270,  927,  271,   89,
     852
     853      270,  218,  271,  270,  218,  271,  218,  221,  218,  254,
     854      222,  224,  145,  927,  293,  225,  226,  146,  262,  325,
     855      227,  228,   89,  229,  105,  230,  107,  107,  107,  107,
     856      107,  107,   89,   89,  231,  232,  233,  270,  274,  271,
     857      288,  927,   89,  108,   89,   89,   89,  285,   89,   89,
     858       89,  291,   89,   89,  286,  311,  234,   89,  294,  235,
     859      251,  306,  292,   89,  307,   89,  108,   89,  312,  309,
     860      310,   89,  308,   89,  318,  316,  317,   89,  319,   89,
     861       89,   89,  313,   89,  323,   89,   89,  236,  240,  240,
     862      240,  240,  240,  240,   89,  358,  320,  324,  326,  321,
     863
     864      328,  338,  327,  330,  241,  242,  243,  329,  244,  243,
     865       89,   89,   89,   89,   89,  331,  332,  372,  145,  373,
     866      333,  359,  245,   89,  464,  343,   89,  243,  242,  243,
     867       89,  341,  244,   89,  243,  295,  296,  297,   89,  298,
     868      299,  334,   89,  300,  339,  301,  342,   89,   89,  335,
     869      302,  303,  304,  345,  305,   89,   89,   89,   89,  336,
     870      337,  340,  344,   89,   89,  372,  349,  373,  352,  350,
     871      353,  354,  381,  381,  347,  346,  348,  351,  204,   83,
     872       84,   84,   84,  204,  355,   89,  205,  207,  208,   89,
     873      216,  217,  207,  207,  208,  216,  381,  564,  207,  356,
     874
     875      208,  372,  415,  373,  356,  372,  357,  373,  209,  209,
     876      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
     877      209,  209,  209,  209,  209,  209,  364,  364,  364,  364,
     878      373,  373,  374,  372,  372,  373,  373,  372,  375,  373,
     879      372,  381,  373,  372,  372,  373,  373,  372,  382,  373,
     880      382,  927,  927,  383,  383,  383,  383,  383,  383,  385,
     881      365,  385,   89,   89,  385,  381,  387,  387,  387,  387,
     882      387,  387,  105,  392,  249,  249,  249,  249,  270,  270,
     883      271,  271,  385,  423,  385,  429,  402,  384,  389,  385,
     884      107,  107,  107,  107,  107,  107,  404,   89,   89,  392,
     885
     886      388,  253,  253,  253,  253,  253,  253,  108,  250,  252,
     887       89,  252,  402,  432,  253,  253,  253,  253,  253,  253,
     888       89,   89,  405,  431,  262,   89,  421,   89,  416,  927,
     889      108,  390,  390,  390,  390,  390,  390,  395,  417,  563,
     890      107,  107,  107,  107,  107,  107,   89,  241,   89,  243,
     891      471,  244,  243,  114,  114,  114,  114,  114,  114,   89,
     892      397,   89,  418,  398,   89,  391,  419,  399,  425,  424,
     893      243,   89,  243,  400,  262,  244,  420,  243,  422,   89,
     894       89,   89,   89,   89,  437,  401,   89,  267,  435,  398,
     895      436,   89,   89,  399,  426,   89,  441,   89,  430,   89,
     896
     897      427,  428,  433,  434,   89,   89,  442,   89,   89,  438,
     898      439,   89,  448,  440,  450,   89,  449,   89,   89,  444,
     899       89,   89,  445,  453,   89,   89,  446,  447,   89,  452,
     900       89,   89,   89,  455,  451,  457,  458,  454,   89,   89,
     901      456,   89,   89,  459,   89,   89,   89,  461,  467,   89,
     902      462,  466,  463,   89,   89,   89,  465,   89,   89,  469,
     903      460,   89,   89,  468,   89,   89,  474,  145,   89,   89,
     904       89,  470,  473,  472,   89,  485,  475,  479,  481,   89,
     905      478,  476,   89,  477,  480,  208,  482,  483,  356,  208,
     906      372,  206,  373,  356,  486,  357,  218,  218,  218,  218,
     907
     908      487,  364,  364,  364,  364,  372,   89,  373,   89,  603,
     909       89,   89,   89,  383,  383,  383,  383,  383,  383,  382,
     910      521,  382,  536,  538,  383,  383,  383,  383,  383,  383,
     911      497,  508,  508,  508,  508,  508,  508,  240,  240,  240,
     912      240,  240,  240,   89,   89,  522,  656,  241,   89,  243,
     913       89,  244,  243,  249,  249,  249,  249,  107,  107,  390,
     914      390,  390,  390,  390,  390,  509,  513,  539,  540,   89,
     915      243,  386,  243,   89,  513,  244,  514,  243,  387,  387,
     916      387,  387,  387,  387,  515,  395,   89,  389,  561,  537,
     917      516,   89,  513,  391,  241,  242,  243,  517,  244,  243,
     918
     919      513,   89,  517,   89,  543,   89,  927,   89,  397,   89,
     920      541,  398,  388,   89,  542,  399,  544,  243,  242,  243,
     921      516,  400,  244,  517,  243,   89,  547,  545,  517,  397,
     922       89,  549,  398,  401,  546,   89,  399,  398,  518,   89,
     923      518,  399,  523,  519,  519,  519,  519,  519,  519,   89,
     924       89,  548,  550,   89,  401,   89,   89,   89,  398,   89,
     925      555,   89,  399,  558,   89,  551,  552,  560,   89,   89,
     926       89,  554,  553,   89,  556,   89,   89,  520,   89,  562,
     927       89,  557,  559,  567,  569,  571,   89,   89,   89,  565,
     928      570,  566,   89,   89,   89,  572,  568,   89,   89,   89,
     929
     930       89,   89,   89,  575,   89,   89,  573,  579,  577,  574,
     931       89,  580,   89,  584,  576,   89,   89,  578,   89,   89,
     932       89,   89,  581,  583,  588,  586,  582,  589,  592,  591,
     933       89,  585,  587,  590,   89,   89,   89,  593,   89,   89,
     934       89,   89,  595,  596,  594,  208,  597,  600,  513,  602,
     935      626,  604,  599,  927,  646,  927,  598,  218,  218,  218,
     936      218,  601,  508,  508,  508,  508,  508,  508,  387,  387,
     937      387,  387,  387,  387,  513,   89,  626,   89,  241,   89,
     938      243,  513,  244,  243,  390,  390,  390,  390,  390,  390,
     939       89,  514,  645,   89,  647,   89,  509,   89,   89,  513,
     940
     941      648,  243,  510,  243,   89,  665,  244,  513,  243,  625,
     942      649,  650,  658,  661,  622,  651,  622,  652,  511,  623,
     943      623,  623,  623,  623,  623,  513,  519,  519,  519,  519,
     944      519,  519,  518,   89,  518,   89,   89,  519,  519,  519,
     945      519,  519,  519,   89,   89,   89,  653,  655,  654,   89,
     946       89,   89,   89,  624,  627,  627,  627,  627,  627,  627,
     947       89,  663,   89,   89,  657,  662,  660,   89,  659,  668,
     948      628,  666,  629,  667,  630,  629,  664,   89,   89,  671,
     949       89,   89,   89,  670,  673,   89,  669,   89,  631,  672,
     950       89,   89,   89,  629,   89,  629,  674,  675,  630,  676,
     951
     952      629,  677,   89,  679,  678,   89,   89,   89,   89,  680,
     953      682,   89,   89,   89,   89,  683,  684,  681,   89,   89,
     954       89,  688,   89,   89,  686,  693,  690,   89,  689,  687,
     955      685,   89,  692,   89,   89,   89,  691,  695,  902,  696,
     956      718,  718,  694,   89,  732,  698,   89,  697,  508,  508,
     957      508,  508,  508,  508,  623,  623,  623,  623,  623,  623,
     958      622,  736,  622,  735,  718,  623,  623,  623,  623,  623,
     959      623,  627,  627,  627,  627,  627,  627,   89,  718,   89,
     960      741,   89,  621,  716,  716,  716,  716,  716,  716,  719,
     961       89,  719,  734,   89,  719,  729,   89,   89,  740,  628,
     962
     963      731,  629,  718,  630,  629,  631,   89,   89,  730,   89,
     964       89,   89,  719,  738,  719,  739,   89,  717,  733,  719,
     965      737,   89,  629,  742,  629,   89,  744,  630,   89,  629,
     966       89,  743,  750,  748,   89,   89,   89,   89,  745,   89,
     967       89,   89,  746,  747,   89,  749,  753,   89,  756,  751,
     968       89,   89,   89,   89,  754,  752,  759,   89,   89,   89,
     969      764,   89,  755,   89,  757,   89,  758,  763,  765,  762,
     970      760,   89,  768,  766,  767,  927,   89,  927,  761,  716,
     971      716,  716,  716,  716,  716,  627,  627,  627,  627,  627,
     972      627,   89,  782,   89,   89,  628,   89,  629,   89,  630,
     973
     974      629,  783,  784,  786,   89,   89,  785,   89,  790,  787,
     975      798,   89,   89,  717,  788,  791,  792,  793,  629,  720,
     976      629,   89,   89,  630,   89,  629,   89,  789,   89,  796,
     977       89,  795,  801,  799,  794,   89,   89,  800,  802,   89,
     978       89,   89,   89,   89,   89,  797,   89,  804,   89,  803,
     979       89,  805,   89,  808,   89,  806,   89,   89,  927,   89,
     980       89,   89,  814,   89,  807,  815,  809,   89,  812,   89,
     981      811,  810,  832,  813,  716,  716,  716,  716,  716,  716,
     982      828,  829,   89,   89,  830,   89,  836,  831,   89,  839,
     983       89,  837,  834,  833,   89,   89,   89,  840,  841,   89,
     984
     985       89,   89,  835,  838,  843,   89,  842,   89,  775,   89,
     986      844,  845,   89,   89,   89,   89,   89,   89,   89,  866,
     987       89,  862,   89,  846,   89,  868,  871,  869,  847,   89,
     988      927,   89,  848,  865,  872,  864,   89,   89,  870,  867,
     989      863,   89,   89,   89,  874,  875,  876,   89,   89,   89,
     990       89,  873,  877,   89,  878,   89,  889,   89,  890,  891,
     991       89,   89,   89,  879,  894,  896,   89,   89,  901,  888,
     992      897,   89,   89,   89,   89,  892,   89,  895,  899,   89,
     993      898,  893,  900,  903,  904,   89,  906,   89,  905,   89,
     994       89,   89,  907,  908,  909,   89,   89,   89,  910,   89,
     995
     996      913,   89,   89,   89,  915,   89,  916,   89,   89,  911,
     997       89,  912,  914,   89,   89,   89,   89,  920,   89,   89,
     998       89,  917,  919,  921,   89,   89,  918,   89,  926,  927,
     999      927,  887,  924,  927,  886,  922,  923,  927,  925,   71,
     1000       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     1001       71,   71,   77,   77,   77,   77,   77,   77,   77,   77,
     1002       77,   77,   77,   77,   77,   80,   80,   80,   80,   80,
     1003       80,   80,   80,   80,   80,   80,   80,   80,   88,  884,
     1004      927,   88,  883,   88,   88,   88,   88,   88,  142,  927,
     1005      882,  927,  142,  142,  142,  142,  142,  142,  206,  206,
     1006
     1007      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
     1008      206,  211,  881,   89,  211,   89,  211,  211,  211,  211,
     1009      211,  215,   89,  215,  215,  927,  215,  215,  215,  215,
     1010      215,  215,  861,  215,  223,  927,  860,  223,  223,  223,
     1011      223,  223,  223,  223,  223,  858,  223,  246,  246,  246,
     1012      246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
     1013      260,  260,  927,  260,  856,  927,  854,  260,  276,  927,
     1014      852,  276,  850,  276,  276,  276,  276,  276,  280,   89,
     1015      280,   89,   89,   89,  280,  282,   89,  282,   89,   89,
     1016       89,  282,  360,   89,  360,   89,   89,   89,  360,  362,
     1017
     1018       89,  362,  927,  827,  825,  362,  366,  927,  366,  927,
     1019      822,  820,  366,  368,  818,  368,   89,   89,   89,  368,
     1020      370,   89,  370,   89,   89,   89,  370,  377,  781,  377,
     1021      778,  777,  775,  377,  379,  212,  379,  771,  770,  700,
     1022      379,  394,   89,  394,  396,  396,   89,  396,  396,  396,
     1023       89,  396,  260,  260,   89,  260,  276,   89,   89,  276,
     1024       89,  276,  276,  276,  276,  276,  406,   89,  406,   89,
     1025       89,   89,  406,  408,   89,  408,   89,   89,   89,  408,
     1026      410,   89,  410,  727,  726,  724,  410,  280,  722,  280,
     1027      412,  720,  412,  625,  715,  714,  412,  282,  712,  282,
     1028
     1029       88,  710,  708,   88,  706,   88,   88,   88,   88,   88,
     1030      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
     1031      206,  206,  206,  488,  488,  488,  488,  488,  488,  488,
     1032      488,  488,  488,  488,  488,  488,  489,  704,  489,  702,
     1033      700,   89,  489,  491,   89,  491,   89,   89,   89,  491,
     1034      493,   89,  493,   89,   89,   89,  493,  360,   89,  360,
     1035      495,   89,  495,   89,   89,   89,  495,  362,  644,  362,
     1036      498,  642,  498,  640,  638,  636,  498,  366,  634,  366,
     1037      500,  523,  500,  632,  632,  621,  500,  368,  620,  368,
     1038      502,  618,  502,  503,  503,  616,  502,  370,  614,  370,
     1039
     1040      504,  612,  504,  610,  608,  606,  504,  377,   89,  377,
     1041      506,   89,  506,   89,   89,   89,  506,  379,   89,  379,
     1042      512,   89,  512,   89,  512,  535,  512,  394,  533,  394,
     1043      531,  394,  529,  394,  396,  396,  527,  396,  396,  396,
     1044      525,  396,  524,  511,  524,  510,  507,  505,  524,  526,
     1045      373,  526,  373,  503,  501,  526,  528,  499,  528,  496,
     1046      494,  492,  528,  406,  490,  406,  530,   89,  530,   89,
     1047       89,  414,  530,  408,  413,  408,  532,  411,  532,  409,
     1048      407,  277,  532,  410,  272,  410,  534,  271,  534,  403,
     1049      403,  259,  534,  412,  393,  412,   88,  393,  247,   88,
     1050
     1051      386,   88,   88,   88,   88,   88,  488,  488,  488,  488,
     1052      488,  488,  488,  488,  488,  488,  488,  488,  488,  605,
     1053      380,  605,  378,  376,  372,  605,  489,  371,  489,  607,
     1054      369,  607,  367,  363,  361,  607,  491,  212,  491,  609,
     1055      208,  609,   89,  284,  283,  609,  493,  281,  493,  611,
     1056      277,  611,  272,  275,  272,  611,  495,  270,  495,  613,
     1057      269,  613,  268,  247,  239,  613,  498,   87,  498,  615,
     1058       87,  615,   89,  212,  210,  615,  500,   87,  500,  502,
     1059      124,  502,  119,   89,  927,  502,  617,   72,  617,   72,
     1060      927,  927,  617,  504,  927,  504,  619,  927,  619,  927,
     1061
     1062      927,  927,  619,  506,  927,  506,  512,  927,  512,  927,
     1063      512,  927,  512,  396,  927,  396,  927,  927,  927,  396,
     1064      633,  927,  633,  927,  927,  927,  633,  524,  927,  524,
     1065      635,  927,  635,  927,  927,  927,  635,  526,  927,  526,
     1066      637,  927,  637,  927,  927,  927,  637,  528,  927,  528,
     1067      639,  927,  639,  927,  927,  927,  639,  530,  927,  530,
     1068      641,  927,  641,  927,  927,  927,  641,  532,  927,  532,
     1069      643,  927,  643,  927,  927,  927,  643,  534,  927,  534,
     1070       88,  927,  927,   88,  927,   88,   88,   88,   88,   88,
     1071      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
     1072
     1073      699,  699,  699,  701,  927,  701,  927,  927,  927,  701,
     1074      605,  927,  605,  703,  927,  703,  927,  927,  927,  703,
     1075      607,  927,  607,  705,  927,  705,  927,  927,  927,  705,
     1076      609,  927,  609,  707,  927,  707,  927,  927,  927,  707,
     1077      611,  927,  611,  709,  927,  709,  927,  927,  927,  709,
     1078      613,  927,  613,  711,  927,  711,  927,  927,  927,  711,
     1079      615,  927,  615,  713,  927,  713,  927,  927,  927,  713,
     1080      617,  927,  617,   88,  927,   88,  927,  927,  927,   88,
     1081      619,  927,  619,  512,  927,  512,  927,  927,  927,  512,
     1082      721,  927,  721,  927,  927,  927,  721,  633,  927,  633,
     1083
     1084      723,  927,  723,  927,  927,  927,  723,  635,  927,  635,
     1085      725,  927,  725,  927,  927,  927,  725,  637,  927,  637,
     1086      142,  927,  142,  927,  927,  927,  142,  639,  927,  639,
     1087      728,  927,  728,  641,  927,  641,   88,  927,  927,   88,
     1088      927,   88,   88,   88,   88,   88,  643,  927,  643,  699,
     1089      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
     1090      699,  699,  769,  927,  769,  927,  927,  927,  769,  701,
     1091      927,  701,  211,  927,  211,  927,  927,  927,  211,  703,
     1092      927,  703,  772,  927,  772,  705,  927,  705,  211,  927,
     1093      927,  211,  927,  211,  211,  211,  211,  211,  707,  927,
     1094
     1095      707,  773,  927,  773,  709,  927,  709,  711,  927,  711,
     1096      774,  927,  774,  713,  927,  713,   88,  927,   88,  776,
     1097      927,  776,  927,  927,  927,  776,  721,  927,  721,  276,
     1098      927,  276,  927,  927,  927,  276,  723,  927,  723,  779,
     1099      927,  779,  725,  927,  725,  142,  927,  142,  780,  927,
     1100      780,  927,  927,  927,  780,   88,  927,  927,   88,  927,
     1101       88,   88,   88,   88,   88,  816,  927,  816,  769,  927,
     1102      769,  211,  927,  211,  817,  927,  817,  927,  927,  927,
     1103      817,  819,  927,  819,  927,  927,  927,  819,  821,  927,
     1104      821,  927,  927,  927,  821,  823,  927,  823,  824,  927,
     1105
     1106      824,  927,  927,  927,  824,  826,  927,  826,  927,  927,
     1107      927,  826,  849,  927,  849,  927,  927,  927,  849,  851,
     1108      927,  851,  927,  927,  927,  851,  853,  927,  853,  927,
     1109      927,  927,  853,  855,  927,  855,  927,  927,  927,  855,
     1110      857,  927,  857,  927,  927,  927,  857,  859,  927,  859,
     1111      927,  927,  927,  859,  643,  927,  643,  927,  927,  927,
     1112      643,  880,  927,  880,  927,  927,  927,  880,  707,  927,
     1113      707,  927,  927,  927,  707,  711,  927,  711,  927,  927,
     1114      927,  711,   88,  927,   88,  927,  927,  927,   88,  885,
     1115      927,  885,  927,  927,  927,  885,  142,  927,  142,  927,
     1116
     1117      927,  927,  142,  211,  927,  211,  927,  927,  927,  211,
     1118       11,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1119      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1120      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1121      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1122      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1123      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1124      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1125      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1126      927,  927,  927,  927,  927,  927,  927
     1127
    11171128    } ;
    11181129
    1119 static yyconst flex_int16_t yy_chk[2969] =
     1130static yyconst flex_int16_t yy_chk[2998] =
    11201131    {   0,
    11211132        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11271138        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    11281139        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1129         1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
    1130         2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
     1140        1,    1,    1,    1,    1,    1,    2,   16,   24,   16,
     1141       24,    2,   19,   19,    2,    5,    5,    5,    5,    5,
    11311142
    11321143        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    11371148        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11381149        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1139         5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1140         8,    9,   10,   37,   37,   20,   39,    9,   10,  912,
    1141         7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    1142 
    1143        15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
    1144        27,   28,   28,   28,   28,   28,   28,  111,  117,   25,
    1145        29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
    1146         8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    1147        30,   30,   30,   30,   35,   58,   35,   35,   44,  128,
    1148        44,  128,  111,  117,   58,   30,   56,  551,   47,   30,
    1149        47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    1150        45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
    1151        63,   45,   49,   30,   75,  911,  551,   53,   66,   51,
    1152        62,   30,   63,   55,   30,   31,  166,   31,   31,   31,
    1153 
    1154        31,   31,   31,   50,   51,   53,   51,   89,   62,   54,
    1155        75,   55,   50,  166,   31,   51,   50,   55,   31,   54,
    1156        64,   50,   52,  144,   31,   50,   54,   52,  110,   64,
    1157        31,   57,  112,   89,  159,   52,   31,   52,  903,   66,
    1158        52,  109,   31,  129,   52,  129,  159,  109,   57,  144,
    1159        31,   38,  110,   57,  113,   38,   38,   59,   38,   61,
    1160        38,   38,  112,   38,   61,   38,   60,  112,  116,   59,
    1161        59,  118,  113,  109,   38,   38,   38,   61,   60,   59,
    1162       113,  131,   59,  131,  177,  115,   60,  133,   60,  118,
    1163       112,  115,  116,   60,  134,   38,  134,  118,   38,  133,
    1164 
    1165       136,  133,  136,   61,  177,  132,   61,   69,   69,   69,
    1166        69,   69,   69,   70,   70,   69,  175,  115,   70,  132,
    1167        61,  132,  137,  137,  137,   38,   38,   82,   82,   82,
    1168        82,   82,   82,  175,   70,   70,   70,   70,   70,   70,
    1169        79,   79,  153,  135,  135,   79,  135,   79,  139,  141,
    1170       139,  141,   79,   84,   84,   84,   84,   84,   84,  902,
    1171       153,   79,   79,   79,   79,   85,   85,   85,   85,   85,
    1172        85,  152,   79,  105,  105,  105,  105,  105,  105,  106,
    1173       106,  106,  106,  155,  154,  147,  152,  156,   79,  161,
    1174       147,   79,  155,  152,  174,  328,   79,   79,  157,  158,
    1175 
    1176        79,   79,  154,  156,  162,  161,  328,  106,   79,  174,
    1177       163,   79,  106,   79,   79,   79,  157,   79,   87,  163,
    1178       165,  158,   87,   87,  167,  165,  162,   87,   87,  147,
    1179        87,  164,   87,  168,  167,  106,  169,  171,  165,  173,
    1180       170,   87,   87,   87,  107,  899,  107,  107,  107,  107,
    1181       107,  107,  164,  164,  168,  172,  178,  176,  171,  169,
    1182       172,  173,   87,  107,  108,   87,  108,  170,  179,  108,
    1183       108,  108,  108,  108,  108,  176,  183,  189,  172,  107,
    1184       185,  183,  186,  178,  184,  107,  181,  182,  189,  185,
    1185       179,  898,  194,   87,  101,  101,  101,  101,  101,  101,
    1186 
    1187       191,  181,  108,  188,  182,  189,  184,  187,  181,  186,
    1188       101,  101,  101,  191,  101,  101,  192,  196,  187,  194,
    1189       193,  188,  896,  308,  195,  193,  190,  101,  187,  187,
    1190       308,  190,  101,  101,  101,  160,  192,  101,  198,  101,
    1191       160,  160,  160,  195,  160,  160,  190,  193,  160,  197,
    1192       160,  198,  199,  198,  200,  160,  160,  160,  211,  160,
    1193       331,  196,  197,  331,  196,  199,  204,  204,  215,  215,
    1194       197,  204,  284,  215,  200,  203,  203,  203,  203,  203,
    1195       203,  206,  206,  203,  211,  284,  206,  204,  204,  204,
    1196       204,  204,  204,  208,  208,  224,  895,  224,  208,  225,
    1197 
    1198       208,  225,  206,  206,  206,  206,  206,  206,  218,  218,
    1199       218,  218,  227,  228,  208,  208,  208,  208,  208,  208,
    1200       226,  229,  226,  229,  242,  228,  227,  228,  227,  230,
    1201       230,  231,  230,  231,  232,  232,  232,  234,  235,  234,
    1202       235,  218,  240,  240,  241,  249,  241,  242,  254,  241,
    1203       241,  241,  241,  241,  241,  243,  272,  243,  272,  248,
    1204       243,  248,  248,  248,  248,  240,  247,  247,  247,  247,
    1205       247,  247,  262,  273,  254,  273,  288,  243,  285,  243,
    1206       249,  287,  241,  276,  243,  250,  250,  250,  250,  250,
    1207       250,  290,  286,  288,  248,  289,  285,  287,  262,  247,
    1208 
    1209       289,  292,  250,  251,  251,  251,  251,  251,  251,  276,
    1210       286,  290,  291,  300,  295,  299,  472,  291,  250,  888,
    1211       299,  292,  300,  472,  250,  252,  252,  252,  252,  252,
    1212       252,  259,  295,  296,  261,  261,  261,  261,  261,  261,
    1213       293,  252,  253,  252,  253,  252,  252,  253,  253,  253,
    1214       253,  253,  253,  887,  259,  293,  259,  294,  252,  296,
    1215       259,  293,  293,  252,  297,  252,  259,  261,  252,  303,
    1216       252,  266,  266,  266,  266,  266,  266,  298,  259,  297,
    1217       294,  302,  259,  301,  305,  306,  259,  303,  307,  309,
    1218       306,  311,  310,  298,  298,  312,  301,  307,  313,  314,
    1219 
    1220       312,  315,  305,  313,  266,  314,  316,  318,  302,  309,
    1221       310,  317,  311,  311,  320,  316,  319,  317,  324,  321,
    1222       315,  322,  323,  318,  321,  319,  322,  323,  325,  320,
    1223       326,  330,  329,  332,  334,  333,  335,  324,  336,  339,
    1224       330,  338,  340,  326,  323,  337,  325,  329,  333,  341,
    1225       338,  342,  332,  343,  345,  346,  334,  347,  336,  335,
    1226       348,  339,  337,  349,  346,  340,  343,  350,  352,  342,
    1227       353,  341,  351,  345,  413,  350,  349,  351,  348,  354,
    1228       354,  355,  886,  352,  354,  413,  354,  355,  353,  362,
    1229       362,  362,  362,  363,  363,  363,  363,  372,  373,  372,
    1230 
    1231       373,  347,  380,  380,  380,  380,  380,  380,  382,  392,
    1232       382,  393,  397,  382,  382,  382,  382,  382,  382,  392,
    1233       885,  393,  362,  381,  381,  381,  381,  381,  381,  384,
    1234       384,  384,  384,  384,  384,  392,  397,  393,  414,  381,
    1235       415,  381,  418,  381,  381,  387,  387,  387,  387,  387,
    1236       387,  395,  422,  418,  414,  415,  381,  395,  399,  420,
    1237       416,  381,  384,  381,  423,  422,  381,  884,  381,  385,
    1238       385,  385,  385,  385,  385,  394,  399,  424,  387,  416,
    1239       423,  420,  432,  395,  399,  385,  385,  385,  417,  385,
    1240       385,  388,  388,  388,  388,  388,  388,  417,  394,  424,
    1241 
    1242       394,  880,  385,  432,  394,  876,  398,  385,  385,  385,
    1243       394,  396,  385,  396,  385,  425,  396,  396,  396,  396,
    1244       396,  396,  394,  419,  388,  421,  394,  426,  425,  398,
    1245       394,  398,  419,  427,  421,  398,  428,  429,  437,  433,
    1246       431,  398,  429,  426,  426,  430,  431,  434,  435,  396,
    1247       433,  441,  437,  398,  428,  427,  439,  398,  442,  444,
    1248       430,  398,  443,  435,  445,  447,  434,  430,  439,  446,
    1249       445,  449,  441,  451,  447,  443,  452,  453,  454,  455,
    1250       442,  456,  444,  461,  446,  459,  449,  457,  462,  463,
    1251       464,  465,  453,  451,  455,  466,  457,  467,  452,  464,
    1252 
    1253       454,  456,  459,  468,  469,  470,  461,  471,  474,  473,
    1254       475,  463,  465,  469,  462,  466,  473,  467,  476,  478,
    1255       471,  477,  481,  470,  479,  468,  532,  476,  482,  477,
    1256       535,  483,  475,  474,  483,  479,  478,  482,  511,  477,
    1257       484,  873,  512,  532,  481,  535,  484,  493,  493,  493,
    1258       493,  504,  504,  504,  504,  504,  504,  506,  506,  506,
    1259       506,  506,  506,  536,  511,  540,  533,  504,  512,  504,
    1260       540,  504,  504,  507,  507,  507,  507,  507,  507,  533,
    1261       583,  623,  508,  536,  504,  538,  545,  510,  583,  504,
    1262       506,  504,  508,  509,  504,  509,  504,  510,  509,  509,
    1263 
    1264       509,  509,  509,  509,  623,  545,  507,  538,  508,  542,
    1265       537,  539,  542,  510,  514,  514,  514,  514,  514,  514,
    1266       516,  543,  516,  537,  539,  516,  516,  516,  516,  516,
    1267       516,  509,  515,  515,  515,  515,  515,  515,  541,  544,
    1268       546,  543,  547,  833,  550,  549,  553,  554,  515,  541,
    1269       515,  547,  515,  515,  544,  548,  549,  550,  552,  833,
    1270       548,  546,  555,  561,  554,  515,  562,  552,  553,  556,
    1271       515,  555,  515,  558,  556,  515,  559,  515,  563,  558,
    1272       561,  562,  564,  566,  567,  559,  568,  569,  571,  572,
    1273       574,  564,  566,  563,  572,  575,  579,  580,  568,  574,
    1274 
    1275       581,  567,  569,  571,  575,  584,  585,  586,  587,  592,
    1276       580,  594,  591,  585,  595,  584,  588,  581,  579,  592,
    1277       587,  591,  588,  597,  872,  871,  643,  595,  594,  586,
    1278       615,  615,  615,  615,  615,  615,  616,  616,  616,  616,
    1279       616,  616,  618,  643,  618,  597,  642,  618,  618,  618,
    1280       618,  618,  618,  621,  621,  621,  621,  621,  621,  642,
    1281       622,  622,  647,  615,  617,  617,  617,  617,  617,  617,
    1282       624,  639,  624,  644,  640,  624,  639,  870,  641,  647,
    1283       617,  640,  617,  622,  617,  617,  621,  641,  645,  639,
    1284       646,  650,  624,  649,  624,  645,  644,  617,  646,  624,
    1285 
    1286       648,  651,  617,  648,  617,  652,  649,  617,  653,  617,
    1287       654,  655,  656,  650,  655,  657,  651,  659,  658,  660,
    1288       661,  663,  662,  665,  672,  653,  666,  652,  660,  656,
    1289       663,  667,  654,  658,  671,  674,  677,  659,  661,  721,
    1290       667,  685,  678,  657,  662,  677,  665,  686,  666,  678,
    1291       685,  672,  674,  688,  671,  689,  724,  686,  869,  722,
    1292       721,  727,  688,  712,  712,  712,  712,  712,  712,  722,
    1293       689,  708,  708,  708,  708,  708,  708,  725,  726,  730,
    1294       732,  727,  724,  726,  725,  728,  732,  708,  728,  708,
    1295       729,  708,  708,  729,  733,  735,  712,  730,  735,  734,
    1296 
    1297       736,  737,  738,  739,  708,  738,  740,  733,  734,  708,
    1298       741,  708,  739,  741,  708,  742,  708,  743,  745,  744,
    1299       746,  736,  750,  753,  747,  743,  754,  757,  742,  744,
    1300       737,  745,  740,  747,  755,  757,  776,  758,  781,  778,
    1301       750,  746,  777,  753,  778,  750,  758,  779,  754,  765,
    1302       765,  765,  765,  765,  765,  755,  776,  780,  782,  777,
    1303       783,  781,  779,  784,  785,  786,  784,  780,  788,  790,
    1304       794,  788,  790,  791,  795,  782,  792,  785,  793,  792,
    1305       791,  793,  765,  797,  801,  794,  783,  816,  818,  820,
    1306       819,  821,  820,  786,  825,  822,  823,  795,  822,  823,
    1307 
    1308       826,  827,  829,  868,  827,  867,  797,  801,  819,  818,
    1309       834,  832,  825,  821,  816,  830,  831,  835,  830,  831,
    1310       832,  834,  850,  851,  829,  852,  826,  853,  852,  854,
    1311       851,  855,  856,  835,  855,  859,  853,  862,  859,  863,
    1312       862,  865,  864,  850,  866,  861,  874,  854,  863,  856,
    1313       865,  875,  878,  854,  864,  874,  875,  877,  879,  889,
    1314       877,  881,  878,  879,  881,  882,  883,  890,  882,  883,
    1315       891,  892,  893,  891,  894,  893,  897,  894,  900,  889,
    1316       901,  892,  890,  904,  905,  906,  908,  907,  909,  860,
    1317       910,  858,  904,  857,  849,  901,  848,  905,  897,  900,
    1318 
    1319       910,  847,  846,  845,  908,  844,  843,  906,  907,  842,
    1320       909,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    1321       914,  914,  914,  914,  915,  915,  915,  915,  915,  915,
    1322       915,  915,  915,  915,  915,  915,  915,  916,  916,  916,
    1323       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
    1324       917,  841,  840,  917,  839,  917,  917,  917,  917,  917,
    1325       918,  838,  837,  836,  918,  918,  918,  918,  918,  918,
    1326       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    1327       919,  919,  919,  920,  828,  824,  920,  817,  920,  920,
    1328       920,  920,  920,  921,  815,  921,  921,  814,  921,  921,
    1329 
    1330       921,  921,  921,  921,  813,  921,  922,  812,  811,  922,
    1331       922,  922,  922,  922,  922,  922,  922,  810,  922,  923,
    1332       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    1333       923,  923,  924,  924,  809,  924,  808,  807,  806,  924,
    1334       925,  805,  804,  925,  803,  925,  925,  925,  925,  925,
    1335       926,  802,  926,  800,  799,  798,  926,  927,  796,  927,
    1336       789,  787,  775,  927,  928,  774,  928,  773,  772,  771,
    1337       928,  929,  770,  929,  769,  768,  767,  929,  930,  764,
    1338       930,  763,  762,  756,  930,  931,  752,  931,  751,  749,
    1339       748,  931,  932,  731,  932,  723,  720,  715,  932,  933,
    1340 
    1341       713,  933,  709,  699,  695,  933,  934,  693,  934,  691,
    1342       690,  687,  934,  935,  684,  935,  936,  936,  683,  936,
    1343       936,  936,  682,  936,  937,  937,  681,  937,  938,  680,
    1344       679,  938,  676,  938,  938,  938,  938,  938,  939,  675,
    1345       939,  673,  670,  669,  939,  940,  668,  940,  664,  637,
    1346       633,  940,  941,  631,  941,  629,  627,  625,  941,  942,
    1347       619,  942,  943,  613,  943,  611,  609,  607,  943,  944,
    1348       605,  944,  945,  603,  601,  945,  599,  945,  945,  945,
    1349       945,  945,  946,  946,  946,  946,  946,  946,  946,  946,
    1350       946,  946,  946,  946,  946,  947,  947,  947,  947,  947,
    1351 
    1352       947,  947,  947,  947,  947,  947,  947,  947,  948,  598,
    1353       948,  596,  593,  590,  948,  949,  589,  949,  582,  578,
    1354       577,  949,  950,  576,  950,  573,  570,  565,  950,  951,
    1355       560,  951,  952,  557,  952,  534,  530,  528,  952,  953,
    1356       526,  953,  954,  524,  954,  522,  520,  519,  954,  955,
    1357       518,  955,  956,  517,  956,  505,  502,  500,  956,  957,
    1358       499,  957,  958,  498,  958,  496,  494,  491,  958,  959,
    1359       489,  959,  960,  487,  960,  485,  480,  460,  960,  961,
    1360       458,  961,  962,  450,  962,  448,  440,  438,  962,  963,
    1361       436,  963,  964,  410,  964,  408,  964,  406,  964,  965,
    1362 
    1363       404,  965,  403,  965,  402,  965,  966,  966,  389,  966,
    1364       966,  966,  386,  966,  967,  377,  967,  375,  374,  370,
    1365       967,  968,  368,  968,  366,  364,  360,  968,  969,  358,
    1366       969,  357,  356,  344,  969,  970,  327,  970,  971,  304,
    1367       971,  283,  281,  279,  971,  972,  278,  972,  973,  277,
    1368       973,  275,  274,  269,  973,  974,  265,  974,  975,  264,
    1369       975,  260,  257,  256,  975,  976,  245,  976,  977,  244,
    1370       237,  977,  236,  977,  977,  977,  977,  977,  978,  978,
    1371       978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
    1372       978,  979,  233,  979,  223,  221,  220,  979,  980,  219,
    1373 
    1374       980,  981,  213,  981,  212,  210,  205,  981,  982,  180,
    1375       982,  983,  151,  983,  149,  148,  142,  983,  984,  140,
    1376       984,  985,  138,  985,  130,  127,  126,  985,  986,  122,
    1377       986,  987,  103,  987,  100,   97,   95,  987,  988,   88,
    1378       988,  989,   74,  989,   72,   68,   36,  989,  990,   33,
    1379       990,  991,   18,  991,   11,    4,    3,  991,  992,    0,
    1380       992,    0,    0,    0,  992,  993,    0,  993,  994,    0,
    1381       994,    0,    0,    0,  994,  995,    0,  995,  996,    0,
    1382       996,    0,  996,    0,  996,  997,    0,  997,    0,    0,
    1383         0,  997,  998,    0,  998,    0,    0,    0,  998,  999,
    1384 
    1385         0,  999, 1000,    0, 1000,    0,    0,    0, 1000, 1001,
    1386         0, 1001, 1002,    0, 1002,    0,    0,    0, 1002, 1003,
    1387         0, 1003, 1004,    0, 1004,    0,    0,    0, 1004, 1005,
    1388         0, 1005, 1006,    0, 1006,    0,    0,    0, 1006, 1007,
    1389         0, 1007, 1008,    0, 1008,    0,    0,    0, 1008, 1009,
    1390         0, 1009, 1010,    0,    0, 1010,    0, 1010, 1010, 1010,
    1391      1010, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
    1392      1011, 1011, 1011, 1011, 1011, 1012,    0, 1012,    0,    0,
    1393         0, 1012, 1013,    0, 1013, 1014,    0, 1014,    0,    0,
    1394         0, 1014, 1015,    0, 1015, 1016,    0, 1016,    0,    0,
    1395 
    1396         0, 1016, 1017,    0, 1017, 1018,    0, 1018,    0,    0,
    1397         0, 1018, 1019,    0, 1019, 1020,    0, 1020,    0,    0,
    1398         0, 1020, 1021,    0, 1021, 1022,    0, 1022,    0,    0,
    1399         0, 1022, 1023,    0, 1023, 1024,    0, 1024,    0,    0,
    1400         0, 1024, 1025,    0, 1025, 1026,    0, 1026,    0,    0,
    1401         0, 1026, 1027,    0, 1027, 1028,    0, 1028,    0,    0,
    1402         0, 1028, 1029,    0, 1029,    0,    0,    0, 1029, 1030,
    1403         0, 1030, 1031,    0, 1031,    0,    0,    0, 1031, 1032,
    1404         0, 1032, 1033,    0, 1033,    0,    0,    0, 1033, 1034,
    1405         0, 1034, 1035,    0, 1035,    0,    0,    0, 1035, 1036,
    1406 
    1407         0, 1036, 1037,    0, 1037, 1038,    0, 1038, 1039,    0,
    1408         0, 1039,    0, 1039, 1039, 1039, 1039, 1039, 1040,    0,
    1409      1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
    1410      1041, 1041, 1041, 1041, 1042,    0, 1042,    0,    0,    0,
    1411      1042, 1043,    0, 1043, 1044,    0, 1044,    0,    0,    0,
    1412      1044, 1045,    0, 1045, 1046,    0, 1046, 1047,    0, 1047,
    1413      1048,    0,    0, 1048,    0, 1048, 1048, 1048, 1048, 1048,
    1414      1049,    0, 1049, 1050,    0, 1050, 1051,    0, 1051, 1052,
    1415         0, 1052, 1053,    0, 1053, 1054,    0, 1054, 1055,    0,
    1416      1055, 1056,    0, 1056,    0,    0,    0, 1056, 1057,    0,
    1417 
    1418      1057, 1058,    0, 1058,    0,    0,    0, 1058, 1059,    0,
    1419      1059, 1060,    0, 1060, 1061,    0, 1061, 1062,    0, 1062,
    1420      1063,    0, 1063,    0,    0,    0, 1063, 1064,    0,    0,
    1421      1064,    0, 1064, 1064, 1064, 1064, 1064, 1065,    0, 1065,
    1422      1066,    0, 1066, 1067,    0, 1067, 1068,    0, 1068,    0,
    1423         0,    0, 1068, 1069,    0, 1069,    0,    0,    0, 1069,
    1424      1070,    0, 1070,    0,    0,    0, 1070, 1071,    0, 1071,
    1425      1072,    0, 1072,    0,    0,    0, 1072, 1073,    0, 1073,
    1426         0,    0,    0, 1073, 1074,    0, 1074,    0,    0,    0,
    1427      1074, 1075,    0, 1075,    0,    0,    0, 1075, 1076,    0,
    1428 
    1429      1076,    0,    0,    0, 1076, 1077,    0, 1077,    0,    0,
    1430         0, 1077, 1078,    0, 1078,    0,    0,    0, 1078, 1079,
    1431         0, 1079,    0,    0,    0, 1079, 1080,    0, 1080,    0,
    1432         0,    0, 1080, 1081,    0, 1081,    0,    0,    0, 1081,
    1433      1082,    0, 1082,    0,    0,    0, 1082, 1083,    0, 1083,
    1434         0,    0,    0, 1083, 1084,    0, 1084,    0,    0,    0,
    1435      1084, 1085,    0, 1085,    0,    0,    0, 1085, 1086,    0,
     1150        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     1151        5,    7,    8,    9,   10,   37,   37,   20,   39,    9,
     1152       10,   53,    7,    8,   13,   13,   13,   13,   13,   13,
     1153
     1154       15,   15,   15,   15,   15,   15,   20,   25,   63,   53,
     1155       39,   28,   27,   28,   28,   28,   28,   28,   28,   48,
     1156       63,   25,   29,   25,   27,   27,   27,   29,   42,   35,
     1157       47,   40,    7,    8,    9,   10,   40,   29,   30,   48,
     1158       30,   30,   30,   30,   30,   30,   35,   56,   35,   35,
     1159       44,   47,   44,   47,   42,   49,  926,   30,   66,   62,
     1160       49,   30,   75,   58,   89,   54,   51,   49,   30,   30,
     1161       56,   55,   58,   49,   30,   54,   40,   62,   64,   40,
     1162       30,   51,   54,   51,  175,  144,   30,   64,   75,   55,
     1163       89,  925,   51,  110,   30,   55,  153,   30,   31,  175,
     1164
     1165       31,   31,   31,   31,   31,   31,   45,   45,   45,   57,
     1166       66,  144,   45,   45,  153,   45,   45,   31,  110,   45,
     1167       45,   31,  111,   50,   45,   59,   57,   45,   31,  917,
     1168      916,   57,   50,  168,   31,  109,   50,   59,   59,   61,
     1169       31,   50,  109,  168,   61,   50,   31,   59,   52,  117,
     1170       59,   70,   70,   52,   31,   38,   70,   61,  111,   38,
     1171       38,   52,   38,   52,   38,   38,   52,   38,  109,   38,
     1172       52,   60,   70,   70,   70,   70,   70,   70,   38,   38,
     1173       38,  169,  310,   60,   61,  117,  116,   61,  128,  310,
     1174      128,   60,  115,   60,  129,  131,  129,  131,   60,  115,
     1175
     1176       38,   61,  169,   38,   69,   69,   69,   69,   69,   69,
     1177      113,  116,   69,   82,   82,   82,   82,   82,   82,   84,
     1178       84,   84,   84,   84,   84,  115,  155,  134,  113,  134,
     1179       38,   38,   79,   79,  913,  155,  113,   79,  912,   79,
     1180      106,  106,  106,  106,   79,   85,   85,   85,   85,   85,
     1181       85,  156,  132,   79,   79,   79,   79,  105,  105,  105,
     1182      105,  105,  105,  352,   79,  118,  132,  156,  132,  106,
     1183      108,  352,  108,  133,  106,  108,  108,  108,  108,  108,
     1184      108,   79,  112,  118,   79,  133,  136,  133,  136,   79,
     1185       79,  118,  159,   79,   79,  135,  135,  106,  135,  178,
     1186
     1187      139,   79,  139,  141,   79,  141,   79,   79,   79,  108,
     1188       79,   87,  147,  112,  159,   87,   87,  147,  112,  178,
     1189       87,   87,  154,   87,  107,   87,  107,  107,  107,  107,
     1190      107,  107,  152,  157,   87,   87,   87,  137,  137,  137,
     1191      154,  112,  163,  107,  158,  162,  160,  152,  165,  171,
     1192      166,  157,  170,  172,  152,  166,   87,  147,  160,   87,
     1193      107,  162,  158,  164,  163,  167,  107,  176,  166,  165,
     1194      165,  179,  164,  173,  172,  170,  171,  174,  173,  177,
     1195      180,  910,  167,  189,  176,  182,  183,   87,  101,  101,
     1196      101,  101,  101,  101,  185,  212,  173,  177,  179,  174,
     1197
     1198      182,  189,  180,  183,  101,  101,  101,  182,  101,  101,
     1199      184,  186,  192,  330,  187,  184,  185,  225,  197,  225,
     1200      186,  212,  101,  909,  330,  192,  191,  101,  101,  101,
     1201      161,  191,  101,  190,  101,  161,  161,  161,  188,  161,
     1202      161,  187,  193,  161,  190,  161,  191,  195,  194,  188,
     1203      161,  161,  161,  194,  161,  199,  198,  196,  200,  188,
     1204      188,  190,  193,  197,  201,  226,  197,  226,  199,  198,
     1205      199,  200,  241,  241,  195,  194,  196,  198,  204,  204,
     1206      204,  204,  204,  204,  201,  443,  204,  205,  205,  285,
     1207      216,  216,  205,  207,  207,  216,  241,  443,  207,  209,
     1208
     1209      209,  227,  285,  227,  209,  230,  209,  230,  205,  205,
     1210      205,  205,  205,  205,  207,  207,  207,  207,  207,  207,
     1211      209,  209,  209,  209,  209,  209,  219,  219,  219,  219,
     1212      228,  229,  231,  231,  232,  231,  232,  233,  233,  233,
     1213      235,  243,  235,  229,  228,  229,  228,  236,  242,  236,
     1214      242,  902,  250,  242,  242,  242,  242,  242,  242,  244,
     1215      219,  244,  296,  292,  244,  243,  248,  248,  248,  248,
     1216      248,  248,  249,  255,  249,  249,  249,  249,  273,  274,
     1217      273,  274,  244,  292,  244,  296,  263,  242,  250,  244,
     1218      251,  251,  251,  251,  251,  251,  277,  298,  299,  255,
     1219
     1220      248,  252,  252,  252,  252,  252,  252,  251,  249,  254,
     1221      286,  254,  263,  299,  254,  254,  254,  254,  254,  254,
     1222      287,  290,  277,  298,  251,  441,  290,  337,  286,  901,
     1223      251,  253,  253,  253,  253,  253,  253,  260,  287,  441,
     1224      262,  262,  262,  262,  262,  262,  288,  253,  294,  253,
     1225      337,  253,  253,  267,  267,  267,  267,  267,  267,  289,
     1226      260,  291,  288,  260,  293,  253,  288,  260,  294,  293,
     1227      253,  303,  253,  260,  262,  253,  289,  253,  291,  295,
     1228      297,  302,  304,  301,  303,  260,  300,  267,  301,  260,
     1229      302,  308,  305,  260,  295,  307,  308,  309,  297,  311,
     1230
     1231      295,  295,  300,  300,  312,  313,  309,  314,  316,  304,
     1232      305,  315,  314,  307,  316,  317,  315,  319,  900,  311,
     1233      318,  320,  312,  319,  321,  322,  313,  313,  326,  318,
     1234      323,  324,  327,  321,  317,  323,  324,  320,  325,  328,
     1235      322,  331,  332,  325,  334,  333,  335,  326,  333,  336,
     1236      327,  332,  328,  338,  341,  339,  331,  340,  342,  335,
     1237      325,  343,  344,  334,  345,  347,  340,  349,  350,  348,
     1238      353,  336,  339,  338,  351,  353,  341,  345,  348,  354,
     1239      344,  342,  355,  343,  347,  357,  350,  351,  356,  356,
     1240      374,  357,  374,  356,  354,  356,  364,  364,  364,  364,
     1241
     1242      355,  365,  365,  365,  365,  375,  487,  375,  417,  487,
     1243      899,  415,  349,  382,  382,  382,  382,  382,  382,  384,
     1244      399,  384,  415,  417,  384,  384,  384,  384,  384,  384,
     1245      364,  383,  383,  383,  383,  383,  383,  386,  386,  386,
     1246      386,  386,  386,  548,  898,  399,  548,  383,  418,  383,
     1247      419,  383,  383,  389,  389,  389,  389,  389,  389,  390,
     1248      390,  390,  390,  390,  390,  383,  394,  418,  419,  438,
     1249      383,  386,  383,  416,  395,  383,  394,  383,  387,  387,
     1250      387,  387,  387,  387,  395,  396,  894,  389,  438,  416,
     1251      397,  422,  394,  390,  387,  387,  387,  397,  387,  387,
     1252
     1253      395,  420,  401,  421,  422,  424,  400,  423,  396,  428,
     1254      420,  396,  387,  426,  421,  396,  423,  387,  387,  387,
     1255      401,  396,  387,  397,  387,  425,  426,  424,  401,  400,
     1256      890,  428,  400,  396,  425,  427,  400,  396,  398,  429,
     1257      398,  396,  400,  398,  398,  398,  398,  398,  398,  430,
     1258      431,  427,  429,  432,  400,  433,  437,  435,  400,  434,
     1259      433,  436,  400,  435,  439,  430,  430,  437,  445,  446,
     1260      447,  432,  431,  448,  434,  450,  451,  398,  449,  439,
     1261      453,  434,  436,  447,  449,  451,  455,  456,  457,  445,
     1262      450,  446,  458,  459,  463,  453,  448,  460,  461,  465,
     1263
     1264      466,  467,  472,  457,  468,  470,  455,  461,  459,  456,
     1265      469,  463,  471,  468,  458,  474,  475,  460,  473,  478,
     1266      479,  476,  465,  467,  472,  470,  466,  473,  476,  475,
     1267      477,  469,  471,  474,  480,  482,  483,  477,  481,  485,
     1268      486,  537,  479,  480,  478,  488,  481,  483,  515,  486,
     1269      516,  488,  482,  887,  537,  886,  481,  497,  497,  497,
     1270      497,  485,  508,  508,  508,  508,  508,  508,  510,  510,
     1271      510,  510,  510,  510,  515,  536,  516,  540,  508,  539,
     1272      508,  512,  508,  508,  511,  511,  511,  511,  511,  511,
     1273      541,  512,  536,  543,  539,  544,  508,  550,  542,  514,
     1274
     1275      540,  508,  510,  508,  553,  557,  508,  512,  508,  514,
     1276      541,  542,  550,  553,  513,  543,  513,  544,  511,  513,
     1277      513,  513,  513,  513,  513,  514,  518,  518,  518,  518,
     1278      518,  518,  520,  545,  520,  557,  547,  520,  520,  520,
     1279      520,  520,  520,  546,  549,  552,  545,  547,  546,  551,
     1280      555,  559,  560,  513,  519,  519,  519,  519,  519,  519,
     1281      554,  555,  558,  556,  549,  554,  552,  567,  551,  560,
     1282      519,  558,  519,  559,  519,  519,  556,  561,  562,  564,
     1283      565,  568,  569,  562,  567,  564,  561,  573,  519,  565,
     1284      570,  574,  572,  519,  575,  519,  568,  569,  519,  570,
     1285
     1286      519,  572,  577,  574,  573,  578,  580,  581,  585,  575,
     1287      578,  586,  587,  589,  592,  580,  581,  577,  590,  591,
     1288      593,  589,  600,  603,  586,  594,  591,  598,  590,  587,
     1289      585,  594,  593,  597,  601,  647,  592,  598,  885,  600,
     1290      628,  628,  597,  651,  647,  603,  650,  601,  621,  621,
     1291      621,  621,  621,  621,  622,  622,  622,  622,  622,  622,
     1292      624,  651,  624,  650,  628,  624,  624,  624,  624,  624,
     1293      624,  627,  627,  627,  627,  627,  627,  656,  629,  649,
     1294      656,  655,  621,  623,  623,  623,  623,  623,  623,  630,
     1295      645,  630,  649,  646,  630,  645,  648,  652,  655,  623,
     1296
     1297      646,  623,  629,  623,  623,  627,  653,  654,  645,  658,
     1298      657,  659,  630,  653,  630,  654,  660,  623,  648,  630,
     1299      652,  662,  623,  657,  623,  661,  659,  623,  664,  623,
     1300      663,  658,  665,  663,  666,  667,  669,  668,  660,  671,
     1301      670,  673,  661,  662,  674,  664,  668,  675,  671,  666,
     1302      679,  680,  682,  686,  669,  667,  675,  697,  685,  693,
     1303      686,  665,  670,  694,  673,  696,  674,  685,  693,  682,
     1304      679,  729,  697,  694,  696,  884,  732,  883,  680,  716,
     1305      716,  716,  716,  716,  716,  720,  720,  720,  720,  720,
     1306      720,  730,  729,  733,  736,  716,  734,  716,  740,  716,
     1307
     1308      716,  730,  732,  734,  735,  738,  733,  737,  738,  735,
     1309      747,  742,  739,  716,  736,  739,  740,  742,  716,  720,
     1310      716,  743,  744,  716,  746,  716,  745,  737,  749,  745,
     1311      748,  744,  750,  748,  743,  751,  752,  749,  751,  753,
     1312      747,  754,  755,  756,  757,  746,  764,  753,  760,  752,
     1313      763,  754,  765,  757,  767,  755,  768,  791,  882,  750,
     1314      795,  787,  767,  785,  756,  768,  760,  789,  764,  793,
     1315      763,  760,  791,  765,  775,  775,  775,  775,  775,  775,
     1316      785,  787,  790,  792,  789,  794,  795,  790,  796,  798,
     1317      797,  796,  793,  792,  800,  802,  806,  800,  802,  803,
     1318
     1319      807,  804,  794,  797,  804,  809,  803,  805,  775,  813,
     1320      805,  806,  828,  829,  831,  832,  833,  834,  798,  833,
     1321      838,  828,  835,  807,  836,  835,  839,  836,  809,  842,
     1322      881,  840,  813,  832,  840,  831,  846,  845,  838,  834,
     1323      829,  843,  844,  847,  843,  844,  845,  848,  864,  865,
     1324      867,  842,  846,  839,  847,  866,  865,  868,  866,  867,
     1325      870,  869,  873,  848,  869,  873,  878,  876,  880,  864,
     1326      876,  877,  875,  879,  888,  868,  892,  870,  878,  889,
     1327      877,  868,  879,  888,  889,  891,  892,  893,  891,  903,
     1328      895,  896,  893,  895,  896,  897,  904,  905,  897,  911,
     1329
     1330      905,  907,  906,  908,  907,  914,  908,  915,  918,  903,
     1331      919,  904,  906,  920,  922,  921,  923,  918,  924,  874,
     1332      872,  911,  915,  919,  871,  863,  914,  862,  924,  861,
     1333      860,  859,  922,  858,  857,  920,  921,  856,  923,  928,
     1334      928,  928,  928,  928,  928,  928,  928,  928,  928,  928,
     1335      928,  928,  929,  929,  929,  929,  929,  929,  929,  929,
     1336      929,  929,  929,  929,  929,  930,  930,  930,  930,  930,
     1337      930,  930,  930,  930,  930,  930,  930,  930,  931,  855,
     1338      854,  931,  853,  931,  931,  931,  931,  931,  932,  852,
     1339      851,  850,  932,  932,  932,  932,  932,  932,  933,  933,
     1340
     1341      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
     1342      933,  934,  849,  841,  934,  837,  934,  934,  934,  934,
     1343      934,  935,  830,  935,  935,  827,  935,  935,  935,  935,
     1344      935,  935,  826,  935,  936,  825,  824,  936,  936,  936,
     1345      936,  936,  936,  936,  936,  823,  936,  937,  937,  937,
     1346      937,  937,  937,  937,  937,  937,  937,  937,  937,  937,
     1347      938,  938,  822,  938,  821,  820,  819,  938,  939,  818,
     1348      817,  939,  816,  939,  939,  939,  939,  939,  940,  815,
     1349      940,  814,  812,  811,  940,  941,  810,  941,  808,  801,
     1350      799,  941,  942,  788,  942,  786,  784,  783,  942,  943,
     1351
     1352      782,  943,  781,  780,  779,  943,  944,  778,  944,  777,
     1353      774,  773,  944,  945,  772,  945,  766,  762,  761,  945,
     1354      946,  759,  946,  758,  741,  731,  946,  947,  728,  947,
     1355      723,  721,  717,  947,  948,  707,  948,  703,  701,  699,
     1356      948,  949,  698,  949,  950,  950,  695,  950,  950,  950,
     1357      692,  950,  951,  951,  691,  951,  952,  690,  689,  952,
     1358      688,  952,  952,  952,  952,  952,  953,  687,  953,  684,
     1359      683,  681,  953,  954,  678,  954,  677,  676,  672,  954,
     1360      955,  643,  955,  639,  637,  635,  955,  956,  633,  956,
     1361      957,  631,  957,  625,  619,  617,  957,  958,  615,  958,
     1362
     1363      959,  613,  611,  959,  609,  959,  959,  959,  959,  959,
     1364      960,  960,  960,  960,  960,  960,  960,  960,  960,  960,
     1365      960,  960,  960,  961,  961,  961,  961,  961,  961,  961,
     1366      961,  961,  961,  961,  961,  961,  962,  607,  962,  605,
     1367      604,  602,  962,  963,  599,  963,  596,  595,  588,  963,
     1368      964,  584,  964,  583,  582,  579,  964,  965,  576,  965,
     1369      966,  571,  966,  566,  563,  538,  966,  967,  534,  967,
     1370      968,  532,  968,  530,  528,  526,  968,  969,  524,  969,
     1371      970,  523,  970,  522,  521,  509,  970,  971,  506,  971,
     1372      972,  504,  972,  503,  502,  500,  972,  973,  498,  973,
     1373
     1374      974,  495,  974,  493,  491,  489,  974,  975,  484,  975,
     1375      976,  464,  976,  462,  454,  452,  976,  977,  444,  977,
     1376      978,  442,  978,  440,  978,  412,  978,  979,  410,  979,
     1377      408,  979,  406,  979,  980,  980,  405,  980,  980,  980,
     1378      404,  980,  981,  391,  981,  388,  379,  377,  981,  982,
     1379      376,  982,  372,  370,  368,  982,  983,  366,  983,  362,
     1380      360,  359,  983,  984,  358,  984,  985,  346,  985,  329,
     1381      306,  284,  985,  986,  282,  986,  987,  280,  987,  279,
     1382      278,  276,  987,  988,  275,  988,  989,  270,  989,  266,
     1383      265,  261,  989,  990,  258,  990,  991,  257,  246,  991,
     1384
     1385      245,  991,  991,  991,  991,  991,  992,  992,  992,  992,
     1386      992,  992,  992,  992,  992,  992,  992,  992,  992,  993,
     1387      238,  993,  237,  234,  224,  993,  994,  222,  994,  995,
     1388      221,  995,  220,  214,  213,  995,  996,  211,  996,  997,
     1389      206,  997,  181,  151,  149,  997,  998,  148,  998,  999,
     1390      142,  999,  140,  138,  130,  999, 1000,  127, 1000, 1001,
     1391      126, 1001,  122,  103,  100, 1001, 1002,   97, 1002, 1003,
     1392       95, 1003,   88,   74,   72, 1003, 1004,   68, 1004, 1005,
     1393       36, 1005,   33,   18,   11, 1005, 1006,    4, 1006,    3,
     1394        0,    0, 1006, 1007,    0, 1007, 1008,    0, 1008,    0,
     1395
     1396        0,    0, 1008, 1009,    0, 1009, 1010,    0, 1010,    0,
     1397     1010,    0, 1010, 1011,    0, 1011,    0,    0,    0, 1011,
     1398     1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
     1399     1014,    0, 1014,    0,    0,    0, 1014, 1015,    0, 1015,
     1400     1016,    0, 1016,    0,    0,    0, 1016, 1017,    0, 1017,
     1401     1018,    0, 1018,    0,    0,    0, 1018, 1019,    0, 1019,
     1402     1020,    0, 1020,    0,    0,    0, 1020, 1021,    0, 1021,
     1403     1022,    0, 1022,    0,    0,    0, 1022, 1023,    0, 1023,
     1404     1024,    0,    0, 1024,    0, 1024, 1024, 1024, 1024, 1024,
     1405     1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
     1406
     1407     1025, 1025, 1025, 1026,    0, 1026,    0,    0,    0, 1026,
     1408     1027,    0, 1027, 1028,    0, 1028,    0,    0,    0, 1028,
     1409     1029,    0, 1029, 1030,    0, 1030,    0,    0,    0, 1030,
     1410     1031,    0, 1031, 1032,    0, 1032,    0,    0,    0, 1032,
     1411     1033,    0, 1033, 1034,    0, 1034,    0,    0,    0, 1034,
     1412     1035,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
     1413     1037,    0, 1037, 1038,    0, 1038,    0,    0,    0, 1038,
     1414     1039,    0, 1039, 1040,    0, 1040,    0,    0,    0, 1040,
     1415     1041,    0, 1041, 1042,    0, 1042,    0,    0,    0, 1042,
     1416     1043,    0, 1043,    0,    0,    0, 1043, 1044,    0, 1044,
     1417
     1418     1045,    0, 1045,    0,    0,    0, 1045, 1046,    0, 1046,
     1419     1047,    0, 1047,    0,    0,    0, 1047, 1048,    0, 1048,
     1420     1049,    0, 1049,    0,    0,    0, 1049, 1050,    0, 1050,
     1421     1051,    0, 1051, 1052,    0, 1052, 1053,    0,    0, 1053,
     1422        0, 1053, 1053, 1053, 1053, 1053, 1054,    0, 1054, 1055,
     1423     1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
     1424     1055, 1055, 1056,    0, 1056,    0,    0,    0, 1056, 1057,
     1425        0, 1057, 1058,    0, 1058,    0,    0,    0, 1058, 1059,
     1426        0, 1059, 1060,    0, 1060, 1061,    0, 1061, 1062,    0,
     1427        0, 1062,    0, 1062, 1062, 1062, 1062, 1062, 1063,    0,
     1428
     1429     1063, 1064,    0, 1064, 1065,    0, 1065, 1066,    0, 1066,
     1430     1067,    0, 1067, 1068,    0, 1068, 1069,    0, 1069, 1070,
     1431        0, 1070,    0,    0,    0, 1070, 1071,    0, 1071, 1072,
     1432        0, 1072,    0,    0,    0, 1072, 1073,    0, 1073, 1074,
     1433        0, 1074, 1075,    0, 1075, 1076,    0, 1076, 1077,    0,
     1434     1077,    0,    0,    0, 1077, 1078,    0,    0, 1078,    0,
     1435     1078, 1078, 1078, 1078, 1078, 1079,    0, 1079, 1080,    0,
     1436     1080, 1081,    0, 1081, 1082,    0, 1082,    0,    0,    0,
     1437     1082, 1083,    0, 1083,    0,    0,    0, 1083, 1084,    0,
     1438     1084,    0,    0,    0, 1084, 1085,    0, 1085, 1086,    0,
     1439
    14361440     1086,    0,    0,    0, 1086, 1087,    0, 1087,    0,    0,
    1437         0, 1087,  913,  913,  913,  913,  913,  913,  913,  913,
    1438       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1439 
    1440       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1441       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1442       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1443       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1444       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1445       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1446       913,  913,  913,  913,  913,  913,  913,  913
     1441        0, 1087, 1088,    0, 1088,    0,    0,    0, 1088, 1089,
     1442        0, 1089,    0,    0,    0, 1089, 1090,    0, 1090,    0,
     1443        0,    0, 1090, 1091,    0, 1091,    0,    0,    0, 1091,
     1444     1092,    0, 1092,    0,    0,    0, 1092, 1093,    0, 1093,
     1445        0,    0,    0, 1093, 1094,    0, 1094,    0,    0,    0,
     1446     1094, 1095,    0, 1095,    0,    0,    0, 1095, 1096,    0,
     1447     1096,    0,    0,    0, 1096, 1097,    0, 1097,    0,    0,
     1448        0, 1097, 1098,    0, 1098,    0,    0,    0, 1098, 1099,
     1449        0, 1099,    0,    0,    0, 1099, 1100,    0, 1100,    0,
     1450
     1451        0,    0, 1100, 1101,    0, 1101,    0,    0,    0, 1101,
     1452      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1453      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1454      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1455      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1456      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1457      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1458      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1459      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1460      927,  927,  927,  927,  927,  927,  927
     1461
    14471462    } ;
    14481463
    14491464/* Table of booleans, true if rule could match eol. */
    1450 static yyconst flex_int32_t yy_rule_can_match_eol[188] =
     1465static yyconst flex_int32_t yy_rule_can_match_eol[191] =
    14511466    {   0,
    145214671, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14561471    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14571472    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1458     0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1473    0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    14591474    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14601475    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1461     0, 0, 0, 0, 0, 0, 0, 0,     };
     1476    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
    14621477
    14631478static yy_state_type yy_last_accepting_state;
     
    14871502 * Created On       : Sat Sep 22 08:58:10 2001
    14881503 * Last Modified By : Peter A. Buhr
    1489  * Last Modified On : Fri Mar  3 22:18:00 2017
    1490  * Update Count     : 502
     1504 * Last Modified On : Thu Mar  9 21:38:26 2017
     1505 * Update Count     : 505
    14911506 */
    14921507#line 20 "lex.ll"
     
    15491564
    15501565
    1551 #line 1552 "Parser/lex.cc"
     1566#line 1567 "Parser/lex.cc"
    15521567
    15531568#define INITIAL 0
     
    17441759
    17451760                                   /* line directives */
    1746 #line 1747 "Parser/lex.cc"
     1761#line 1762 "Parser/lex.cc"
    17471762
    17481763        if ( !(yy_init) )
     
    17981813                                {
    17991814                                yy_current_state = (int) yy_def[yy_current_state];
    1800                                 if ( yy_current_state >= 914 )
     1815                                if ( yy_current_state >= 928 )
    18011816                                        yy_c = yy_meta[(unsigned int) yy_c];
    18021817                                }
     
    18041819                        ++yy_cp;
    18051820                        }
    1806                 while ( yy_base[yy_current_state] != 2883 );
     1821                while ( yy_base[yy_current_state] != 2911 );
    18071822
    18081823yy_find_action:
     
    20452060YY_RULE_SETUP
    20462061#line 204 "lex.ll"
     2062{ KEYWORD_RETURN(COROUTINE); }                  // CFA
     2063        YY_BREAK
     2064case 37:
     2065YY_RULE_SETUP
     2066#line 205 "lex.ll"
    20472067{ KEYWORD_RETURN(DEFAULT); }
    20482068        YY_BREAK
    2049 case 37:
    2050 YY_RULE_SETUP
    2051 #line 205 "lex.ll"
     2069case 38:
     2070YY_RULE_SETUP
     2071#line 206 "lex.ll"
    20522072{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20532073        YY_BREAK
    2054 case 38:
    2055 YY_RULE_SETUP
    2056 #line 206 "lex.ll"
     2074case 39:
     2075YY_RULE_SETUP
     2076#line 207 "lex.ll"
    20572077{ KEYWORD_RETURN(DO); }
    20582078        YY_BREAK
    2059 case 39:
    2060 YY_RULE_SETUP
    2061 #line 207 "lex.ll"
     2079case 40:
     2080YY_RULE_SETUP
     2081#line 208 "lex.ll"
    20622082{ KEYWORD_RETURN(DOUBLE); }
    20632083        YY_BREAK
    2064 case 40:
    2065 YY_RULE_SETUP
    2066 #line 208 "lex.ll"
     2084case 41:
     2085YY_RULE_SETUP
     2086#line 209 "lex.ll"
    20672087{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20682088        YY_BREAK
    2069 case 41:
    2070 YY_RULE_SETUP
    2071 #line 209 "lex.ll"
     2089case 42:
     2090YY_RULE_SETUP
     2091#line 210 "lex.ll"
    20722092{ KEYWORD_RETURN(ELSE); }
    20732093        YY_BREAK
    2074 case 42:
    2075 YY_RULE_SETUP
    2076 #line 210 "lex.ll"
     2094case 43:
     2095YY_RULE_SETUP
     2096#line 211 "lex.ll"
    20772097{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20782098        YY_BREAK
    2079 case 43:
    2080 YY_RULE_SETUP
    2081 #line 211 "lex.ll"
     2099case 44:
     2100YY_RULE_SETUP
     2101#line 212 "lex.ll"
    20822102{ KEYWORD_RETURN(ENUM); }
    20832103        YY_BREAK
    2084 case 44:
    2085 YY_RULE_SETUP
    2086 #line 212 "lex.ll"
     2104case 45:
     2105YY_RULE_SETUP
     2106#line 213 "lex.ll"
    20872107{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20882108        YY_BREAK
    2089 case 45:
    2090 YY_RULE_SETUP
    2091 #line 213 "lex.ll"
     2109case 46:
     2110YY_RULE_SETUP
     2111#line 214 "lex.ll"
    20922112{ KEYWORD_RETURN(EXTERN); }
    2093         YY_BREAK
    2094 case 46:
    2095 YY_RULE_SETUP
    2096 #line 214 "lex.ll"
    2097 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20982113        YY_BREAK
    20992114case 47:
     
    21052120YY_RULE_SETUP
    21062121#line 216 "lex.ll"
     2122{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2123        YY_BREAK
     2124case 49:
     2125YY_RULE_SETUP
     2126#line 217 "lex.ll"
    21072127{ KEYWORD_RETURN(FINALLY); }                    // CFA
    21082128        YY_BREAK
    2109 case 49:
    2110 YY_RULE_SETUP
    2111 #line 217 "lex.ll"
     2129case 50:
     2130YY_RULE_SETUP
     2131#line 218 "lex.ll"
    21122132{ KEYWORD_RETURN(FLOAT); }
    21132133        YY_BREAK
    2114 case 50:
    2115 YY_RULE_SETUP
    2116 #line 218 "lex.ll"
     2134case 51:
     2135YY_RULE_SETUP
     2136#line 219 "lex.ll"
    21172137{ KEYWORD_RETURN(FLOAT); }                              // GCC
    21182138        YY_BREAK
    2119 case 51:
    2120 YY_RULE_SETUP
    2121 #line 219 "lex.ll"
     2139case 52:
     2140YY_RULE_SETUP
     2141#line 220 "lex.ll"
    21222142{ KEYWORD_RETURN(FOR); }
    21232143        YY_BREAK
    2124 case 52:
    2125 YY_RULE_SETUP
    2126 #line 220 "lex.ll"
     2144case 53:
     2145YY_RULE_SETUP
     2146#line 221 "lex.ll"
    21272147{ KEYWORD_RETURN(FORALL); }                             // CFA
    21282148        YY_BREAK
    2129 case 53:
    2130 YY_RULE_SETUP
    2131 #line 221 "lex.ll"
     2149case 54:
     2150YY_RULE_SETUP
     2151#line 222 "lex.ll"
    21322152{ KEYWORD_RETURN(FORTRAN); }
    21332153        YY_BREAK
    2134 case 54:
    2135 YY_RULE_SETUP
    2136 #line 222 "lex.ll"
     2154case 55:
     2155YY_RULE_SETUP
     2156#line 223 "lex.ll"
    21372157{ KEYWORD_RETURN(FTYPE); }                              // CFA
    21382158        YY_BREAK
    2139 case 55:
    2140 YY_RULE_SETUP
    2141 #line 223 "lex.ll"
     2159case 56:
     2160YY_RULE_SETUP
     2161#line 224 "lex.ll"
    21422162{ KEYWORD_RETURN(GENERIC); }                    // C11
    21432163        YY_BREAK
    2144 case 56:
    2145 YY_RULE_SETUP
    2146 #line 224 "lex.ll"
     2164case 57:
     2165YY_RULE_SETUP
     2166#line 225 "lex.ll"
    21472167{ KEYWORD_RETURN(GOTO); }
    21482168        YY_BREAK
    2149 case 57:
    2150 YY_RULE_SETUP
    2151 #line 225 "lex.ll"
     2169case 58:
     2170YY_RULE_SETUP
     2171#line 226 "lex.ll"
    21522172{ KEYWORD_RETURN(IF); }
    21532173        YY_BREAK
    2154 case 58:
    2155 YY_RULE_SETUP
    2156 #line 226 "lex.ll"
     2174case 59:
     2175YY_RULE_SETUP
     2176#line 227 "lex.ll"
    21572177{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    2158         YY_BREAK
    2159 case 59:
    2160 YY_RULE_SETUP
    2161 #line 227 "lex.ll"
    2162 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21632178        YY_BREAK
    21642179case 60:
     
    21702185YY_RULE_SETUP
    21712186#line 229 "lex.ll"
     2187{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2188        YY_BREAK
     2189case 62:
     2190YY_RULE_SETUP
     2191#line 230 "lex.ll"
    21722192{ KEYWORD_RETURN(INLINE); }                             // C99
    2173         YY_BREAK
    2174 case 62:
    2175 YY_RULE_SETUP
    2176 #line 230 "lex.ll"
    2177 { KEYWORD_RETURN(INLINE); }                             // GCC
    21782193        YY_BREAK
    21792194case 63:
     
    21852200YY_RULE_SETUP
    21862201#line 232 "lex.ll"
     2202{ KEYWORD_RETURN(INLINE); }                             // GCC
     2203        YY_BREAK
     2204case 65:
     2205YY_RULE_SETUP
     2206#line 233 "lex.ll"
    21872207{ KEYWORD_RETURN(INT); }
    21882208        YY_BREAK
    2189 case 65:
    2190 YY_RULE_SETUP
    2191 #line 233 "lex.ll"
     2209case 66:
     2210YY_RULE_SETUP
     2211#line 234 "lex.ll"
    21922212{ KEYWORD_RETURN(INT); }                                // GCC
    21932213        YY_BREAK
    2194 case 66:
    2195 YY_RULE_SETUP
    2196 #line 234 "lex.ll"
     2214case 67:
     2215YY_RULE_SETUP
     2216#line 235 "lex.ll"
    21972217{ KEYWORD_RETURN(LABEL); }                              // GCC
    21982218        YY_BREAK
    2199 case 67:
    2200 YY_RULE_SETUP
    2201 #line 235 "lex.ll"
     2219case 68:
     2220YY_RULE_SETUP
     2221#line 236 "lex.ll"
    22022222{ KEYWORD_RETURN(LONG); }
    22032223        YY_BREAK
    2204 case 68:
    2205 YY_RULE_SETUP
    2206 #line 236 "lex.ll"
     2224case 69:
     2225YY_RULE_SETUP
     2226#line 237 "lex.ll"
    22072227{ KEYWORD_RETURN(LVALUE); }                             // CFA
    22082228        YY_BREAK
    2209 case 69:
    2210 YY_RULE_SETUP
    2211 #line 237 "lex.ll"
     2229case 70:
     2230YY_RULE_SETUP
     2231#line 238 "lex.ll"
     2232{ KEYWORD_RETURN(MONITOR); }                    // CFA
     2233        YY_BREAK
     2234case 71:
     2235YY_RULE_SETUP
     2236#line 239 "lex.ll"
    22122237{ KEYWORD_RETURN(MUTEX); }                              // CFA
    22132238        YY_BREAK
    2214 case 70:
    2215 YY_RULE_SETUP
    2216 #line 238 "lex.ll"
     2239case 72:
     2240YY_RULE_SETUP
     2241#line 240 "lex.ll"
    22172242{ KEYWORD_RETURN(NORETURN); }                   // C11
    22182243        YY_BREAK
    2219 case 71:
    2220 YY_RULE_SETUP
    2221 #line 239 "lex.ll"
     2244case 73:
     2245YY_RULE_SETUP
     2246#line 241 "lex.ll"
    22222247{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    22232248        YY_BREAK
    2224 case 72:
    2225 YY_RULE_SETUP
    2226 #line 240 "lex.ll"
     2249case 74:
     2250YY_RULE_SETUP
     2251#line 242 "lex.ll"
    22272252{ NUMERIC_RETURN(ONE_T); }                              // CFA
    22282253        YY_BREAK
    2229 case 73:
    2230 YY_RULE_SETUP
    2231 #line 241 "lex.ll"
     2254case 75:
     2255YY_RULE_SETUP
     2256#line 243 "lex.ll"
    22322257{ KEYWORD_RETURN(OTYPE); }                              // CFA
    22332258        YY_BREAK
    2234 case 74:
    2235 YY_RULE_SETUP
    2236 #line 242 "lex.ll"
     2259case 76:
     2260YY_RULE_SETUP
     2261#line 244 "lex.ll"
    22372262{ KEYWORD_RETURN(REGISTER); }
    22382263        YY_BREAK
    2239 case 75:
    2240 YY_RULE_SETUP
    2241 #line 243 "lex.ll"
     2264case 77:
     2265YY_RULE_SETUP
     2266#line 245 "lex.ll"
    22422267{ KEYWORD_RETURN(RESTRICT); }                   // C99
    22432268        YY_BREAK
    2244 case 76:
    2245 YY_RULE_SETUP
    2246 #line 244 "lex.ll"
     2269case 78:
     2270YY_RULE_SETUP
     2271#line 246 "lex.ll"
    22472272{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22482273        YY_BREAK
    2249 case 77:
    2250 YY_RULE_SETUP
    2251 #line 245 "lex.ll"
     2274case 79:
     2275YY_RULE_SETUP
     2276#line 247 "lex.ll"
    22522277{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22532278        YY_BREAK
    2254 case 78:
    2255 YY_RULE_SETUP
    2256 #line 246 "lex.ll"
     2279case 80:
     2280YY_RULE_SETUP
     2281#line 248 "lex.ll"
    22572282{ KEYWORD_RETURN(RETURN); }
    22582283        YY_BREAK
    2259 case 79:
    2260 YY_RULE_SETUP
    2261 #line 247 "lex.ll"
     2284case 81:
     2285YY_RULE_SETUP
     2286#line 249 "lex.ll"
    22622287{ KEYWORD_RETURN(SHORT); }
    22632288        YY_BREAK
    2264 case 80:
    2265 YY_RULE_SETUP
    2266 #line 248 "lex.ll"
     2289case 82:
     2290YY_RULE_SETUP
     2291#line 250 "lex.ll"
    22672292{ KEYWORD_RETURN(SIGNED); }
    22682293        YY_BREAK
    2269 case 81:
    2270 YY_RULE_SETUP
    2271 #line 249 "lex.ll"
     2294case 83:
     2295YY_RULE_SETUP
     2296#line 251 "lex.ll"
    22722297{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22732298        YY_BREAK
    2274 case 82:
    2275 YY_RULE_SETUP
    2276 #line 250 "lex.ll"
     2299case 84:
     2300YY_RULE_SETUP
     2301#line 252 "lex.ll"
    22772302{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22782303        YY_BREAK
    2279 case 83:
    2280 YY_RULE_SETUP
    2281 #line 251 "lex.ll"
     2304case 85:
     2305YY_RULE_SETUP
     2306#line 253 "lex.ll"
    22822307{ KEYWORD_RETURN(SIZEOF); }
    22832308        YY_BREAK
    2284 case 84:
    2285 YY_RULE_SETUP
    2286 #line 252 "lex.ll"
     2309case 86:
     2310YY_RULE_SETUP
     2311#line 254 "lex.ll"
    22872312{ KEYWORD_RETURN(STATIC); }
    22882313        YY_BREAK
    2289 case 85:
    2290 YY_RULE_SETUP
    2291 #line 253 "lex.ll"
     2314case 87:
     2315YY_RULE_SETUP
     2316#line 255 "lex.ll"
    22922317{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22932318        YY_BREAK
    2294 case 86:
    2295 YY_RULE_SETUP
    2296 #line 254 "lex.ll"
     2319case 88:
     2320YY_RULE_SETUP
     2321#line 256 "lex.ll"
    22972322{ KEYWORD_RETURN(STRUCT); }
    22982323        YY_BREAK
    2299 case 87:
    2300 YY_RULE_SETUP
    2301 #line 255 "lex.ll"
     2324case 89:
     2325YY_RULE_SETUP
     2326#line 257 "lex.ll"
    23022327{ KEYWORD_RETURN(SWITCH); }
    23032328        YY_BREAK
    2304 case 88:
    2305 YY_RULE_SETUP
    2306 #line 256 "lex.ll"
     2329case 90:
     2330YY_RULE_SETUP
     2331#line 258 "lex.ll"
     2332{ KEYWORD_RETURN(THREAD); }                             // C11
     2333        YY_BREAK
     2334case 91:
     2335YY_RULE_SETUP
     2336#line 259 "lex.ll"
    23072337{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    23082338        YY_BREAK
    2309 case 89:
    2310 YY_RULE_SETUP
    2311 #line 257 "lex.ll"
     2339case 92:
     2340YY_RULE_SETUP
     2341#line 260 "lex.ll"
    23122342{ KEYWORD_RETURN(THROW); }                              // CFA
    23132343        YY_BREAK
    2314 case 90:
    2315 YY_RULE_SETUP
    2316 #line 258 "lex.ll"
     2344case 93:
     2345YY_RULE_SETUP
     2346#line 261 "lex.ll"
    23172347{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    23182348        YY_BREAK
    2319 case 91:
    2320 YY_RULE_SETUP
    2321 #line 259 "lex.ll"
     2349case 94:
     2350YY_RULE_SETUP
     2351#line 262 "lex.ll"
    23222352{ KEYWORD_RETURN(TRAIT); }                              // CFA
    23232353        YY_BREAK
    2324 case 92:
    2325 YY_RULE_SETUP
    2326 #line 260 "lex.ll"
     2354case 95:
     2355YY_RULE_SETUP
     2356#line 263 "lex.ll"
    23272357{ KEYWORD_RETURN(TRY); }                                // CFA
    23282358        YY_BREAK
    2329 case 93:
    2330 YY_RULE_SETUP
    2331 #line 261 "lex.ll"
     2359case 96:
     2360YY_RULE_SETUP
     2361#line 264 "lex.ll"
    23322362{ KEYWORD_RETURN(TTYPE); }                              // CFA
    23332363        YY_BREAK
    2334 case 94:
    2335 YY_RULE_SETUP
    2336 #line 262 "lex.ll"
     2364case 97:
     2365YY_RULE_SETUP
     2366#line 265 "lex.ll"
    23372367{ KEYWORD_RETURN(TYPEDEF); }
    23382368        YY_BREAK
    2339 case 95:
    2340 YY_RULE_SETUP
    2341 #line 263 "lex.ll"
     2369case 98:
     2370YY_RULE_SETUP
     2371#line 266 "lex.ll"
    23422372{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23432373        YY_BREAK
    2344 case 96:
    2345 YY_RULE_SETUP
    2346 #line 264 "lex.ll"
     2374case 99:
     2375YY_RULE_SETUP
     2376#line 267 "lex.ll"
    23472377{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23482378        YY_BREAK
    2349 case 97:
    2350 YY_RULE_SETUP
    2351 #line 265 "lex.ll"
     2379case 100:
     2380YY_RULE_SETUP
     2381#line 268 "lex.ll"
    23522382{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23532383        YY_BREAK
    2354 case 98:
    2355 YY_RULE_SETUP
    2356 #line 266 "lex.ll"
     2384case 101:
     2385YY_RULE_SETUP
     2386#line 269 "lex.ll"
    23572387{ KEYWORD_RETURN(UNION); }
    23582388        YY_BREAK
    2359 case 99:
    2360 YY_RULE_SETUP
    2361 #line 267 "lex.ll"
     2389case 102:
     2390YY_RULE_SETUP
     2391#line 270 "lex.ll"
    23622392{ KEYWORD_RETURN(UNSIGNED); }
    23632393        YY_BREAK
    2364 case 100:
    2365 YY_RULE_SETUP
    2366 #line 268 "lex.ll"
     2394case 103:
     2395YY_RULE_SETUP
     2396#line 271 "lex.ll"
    23672397{ KEYWORD_RETURN(VALIST); }                     // GCC
    23682398        YY_BREAK
    2369 case 101:
    2370 YY_RULE_SETUP
    2371 #line 269 "lex.ll"
     2399case 104:
     2400YY_RULE_SETUP
     2401#line 272 "lex.ll"
    23722402{ KEYWORD_RETURN(VOID); }
    23732403        YY_BREAK
    2374 case 102:
    2375 YY_RULE_SETUP
    2376 #line 270 "lex.ll"
     2404case 105:
     2405YY_RULE_SETUP
     2406#line 273 "lex.ll"
    23772407{ KEYWORD_RETURN(VOLATILE); }
    23782408        YY_BREAK
    2379 case 103:
    2380 YY_RULE_SETUP
    2381 #line 271 "lex.ll"
     2409case 106:
     2410YY_RULE_SETUP
     2411#line 274 "lex.ll"
    23822412{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23832413        YY_BREAK
    2384 case 104:
    2385 YY_RULE_SETUP
    2386 #line 272 "lex.ll"
     2414case 107:
     2415YY_RULE_SETUP
     2416#line 275 "lex.ll"
    23872417{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23882418        YY_BREAK
    2389 case 105:
    2390 YY_RULE_SETUP
    2391 #line 273 "lex.ll"
     2419case 108:
     2420YY_RULE_SETUP
     2421#line 276 "lex.ll"
    23922422{ KEYWORD_RETURN(WHILE); }
    23932423        YY_BREAK
    2394 case 106:
    2395 YY_RULE_SETUP
    2396 #line 274 "lex.ll"
     2424case 109:
     2425YY_RULE_SETUP
     2426#line 277 "lex.ll"
    23972427{ NUMERIC_RETURN(ZERO_T); }                             // CFA
    23982428        YY_BREAK
    23992429/* identifier */
    2400 case 107:
    2401 YY_RULE_SETUP
    2402 #line 277 "lex.ll"
    2403 { IDENTIFIER_RETURN(); }
    2404         YY_BREAK
    2405 case 108:
    2406 YY_RULE_SETUP
    2407 #line 278 "lex.ll"
    2408 { ATTRIBUTE_RETURN(); }
    2409         YY_BREAK
    2410 case 109:
    2411 YY_RULE_SETUP
    2412 #line 279 "lex.ll"
    2413 { BEGIN BKQUOTE; }
    2414         YY_BREAK
    24152430case 110:
    24162431YY_RULE_SETUP
     
    24212436YY_RULE_SETUP
    24222437#line 281 "lex.ll"
     2438{ ATTRIBUTE_RETURN(); }
     2439        YY_BREAK
     2440case 112:
     2441YY_RULE_SETUP
     2442#line 282 "lex.ll"
     2443{ BEGIN BKQUOTE; }
     2444        YY_BREAK
     2445case 113:
     2446YY_RULE_SETUP
     2447#line 283 "lex.ll"
     2448{ IDENTIFIER_RETURN(); }
     2449        YY_BREAK
     2450case 114:
     2451YY_RULE_SETUP
     2452#line 284 "lex.ll"
    24232453{ BEGIN 0; }
    24242454        YY_BREAK
    24252455/* numeric constants */
    2426 case 112:
    2427 YY_RULE_SETUP
    2428 #line 284 "lex.ll"
     2456case 115:
     2457YY_RULE_SETUP
     2458#line 287 "lex.ll"
    24292459{ NUMERIC_RETURN(ZERO); }                               // CFA
    24302460        YY_BREAK
    2431 case 113:
    2432 YY_RULE_SETUP
    2433 #line 285 "lex.ll"
     2461case 116:
     2462YY_RULE_SETUP
     2463#line 288 "lex.ll"
    24342464{ NUMERIC_RETURN(ONE); }                                // CFA
    24352465        YY_BREAK
    2436 case 114:
    2437 YY_RULE_SETUP
    2438 #line 286 "lex.ll"
     2466case 117:
     2467YY_RULE_SETUP
     2468#line 289 "lex.ll"
    24392469{ NUMERIC_RETURN(INTEGERconstant); }
    24402470        YY_BREAK
    2441 case 115:
    2442 YY_RULE_SETUP
    2443 #line 287 "lex.ll"
     2471case 118:
     2472YY_RULE_SETUP
     2473#line 290 "lex.ll"
    24442474{ NUMERIC_RETURN(INTEGERconstant); }
    24452475        YY_BREAK
    2446 case 116:
    2447 YY_RULE_SETUP
    2448 #line 288 "lex.ll"
     2476case 119:
     2477YY_RULE_SETUP
     2478#line 291 "lex.ll"
    24492479{ NUMERIC_RETURN(INTEGERconstant); }
    24502480        YY_BREAK
    2451 case 117:
    2452 YY_RULE_SETUP
    2453 #line 289 "lex.ll"
     2481case 120:
     2482YY_RULE_SETUP
     2483#line 292 "lex.ll"
    24542484{ NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
    24552485        YY_BREAK
    2456 case 118:
    2457 YY_RULE_SETUP
    2458 #line 290 "lex.ll"
     2486case 121:
     2487YY_RULE_SETUP
     2488#line 293 "lex.ll"
    24592489{ NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
    24602490        YY_BREAK
    2461 case 119:
    2462 YY_RULE_SETUP
    2463 #line 291 "lex.ll"
     2491case 122:
     2492YY_RULE_SETUP
     2493#line 294 "lex.ll"
    24642494{ NUMERIC_RETURN(FLOATINGconstant); }
    24652495        YY_BREAK
    2466 case 120:
    2467 YY_RULE_SETUP
    2468 #line 292 "lex.ll"
     2496case 123:
     2497YY_RULE_SETUP
     2498#line 295 "lex.ll"
    24692499{ NUMERIC_RETURN(FLOATINGconstant); }
    24702500        YY_BREAK
    24712501/* character constant, allows empty value */
    2472 case 121:
    2473 YY_RULE_SETUP
    2474 #line 295 "lex.ll"
     2502case 124:
     2503YY_RULE_SETUP
     2504#line 298 "lex.ll"
    24752505{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24762506        YY_BREAK
    2477 case 122:
    2478 YY_RULE_SETUP
    2479 #line 296 "lex.ll"
     2507case 125:
     2508YY_RULE_SETUP
     2509#line 299 "lex.ll"
    24802510{ strtext->append( yytext, yyleng ); }
    24812511        YY_BREAK
    2482 case 123:
    2483 /* rule 123 can match eol */
    2484 YY_RULE_SETUP
    2485 #line 297 "lex.ll"
     2512case 126:
     2513/* rule 126 can match eol */
     2514YY_RULE_SETUP
     2515#line 300 "lex.ll"
    24862516{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24872517        YY_BREAK
    24882518/* ' stop highlighting */
    24892519/* string constant */
    2490 case 124:
    2491 YY_RULE_SETUP
    2492 #line 301 "lex.ll"
     2520case 127:
     2521YY_RULE_SETUP
     2522#line 304 "lex.ll"
    24932523{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24942524        YY_BREAK
    2495 case 125:
    2496 YY_RULE_SETUP
    2497 #line 302 "lex.ll"
     2525case 128:
     2526YY_RULE_SETUP
     2527#line 305 "lex.ll"
    24982528{ strtext->append( yytext, yyleng ); }
    24992529        YY_BREAK
    2500 case 126:
    2501 /* rule 126 can match eol */
    2502 YY_RULE_SETUP
    2503 #line 303 "lex.ll"
     2530case 129:
     2531/* rule 129 can match eol */
     2532YY_RULE_SETUP
     2533#line 306 "lex.ll"
    25042534{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    25052535        YY_BREAK
    25062536/* " stop highlighting */
    25072537/* common character/string constant */
    2508 case 127:
    2509 YY_RULE_SETUP
    2510 #line 307 "lex.ll"
     2538case 130:
     2539YY_RULE_SETUP
     2540#line 310 "lex.ll"
    25112541{ rm_underscore(); strtext->append( yytext, yyleng ); }
    25122542        YY_BREAK
    2513 case 128:
    2514 /* rule 128 can match eol */
    2515 YY_RULE_SETUP
    2516 #line 308 "lex.ll"
     2543case 131:
     2544/* rule 131 can match eol */
     2545YY_RULE_SETUP
     2546#line 311 "lex.ll"
    25172547{}                                              // continuation (ALSO HANDLED BY CPP)
    25182548        YY_BREAK
    2519 case 129:
    2520 YY_RULE_SETUP
    2521 #line 309 "lex.ll"
     2549case 132:
     2550YY_RULE_SETUP
     2551#line 312 "lex.ll"
    25222552{ strtext->append( yytext, yyleng ); } // unknown escape character
    25232553        YY_BREAK
    25242554/* punctuation */
    2525 case 130:
    2526 YY_RULE_SETUP
    2527 #line 312 "lex.ll"
    2528 { ASCIIOP_RETURN(); }
    2529         YY_BREAK
    2530 case 131:
    2531 YY_RULE_SETUP
    2532 #line 313 "lex.ll"
    2533 { ASCIIOP_RETURN(); }
    2534         YY_BREAK
    2535 case 132:
    2536 YY_RULE_SETUP
    2537 #line 314 "lex.ll"
    2538 { ASCIIOP_RETURN(); }
    2539         YY_BREAK
    25402555case 133:
    25412556YY_RULE_SETUP
     
    25562571YY_RULE_SETUP
    25572572#line 318 "lex.ll"
    2558 { ASCIIOP_RETURN(); }                                   // also operator
     2573{ ASCIIOP_RETURN(); }
    25592574        YY_BREAK
    25602575case 137:
     
    25762591YY_RULE_SETUP
    25772592#line 322 "lex.ll"
     2593{ ASCIIOP_RETURN(); }
     2594        YY_BREAK
     2595case 141:
     2596YY_RULE_SETUP
     2597#line 323 "lex.ll"
     2598{ ASCIIOP_RETURN(); }
     2599        YY_BREAK
     2600case 142:
     2601YY_RULE_SETUP
     2602#line 324 "lex.ll"
     2603{ ASCIIOP_RETURN(); }                                   // also operator
     2604        YY_BREAK
     2605case 143:
     2606YY_RULE_SETUP
     2607#line 325 "lex.ll"
    25782608{ NAMEDOP_RETURN(ELLIPSIS); }
    25792609        YY_BREAK
    25802610/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2581 case 141:
    2582 YY_RULE_SETUP
    2583 #line 325 "lex.ll"
     2611case 144:
     2612YY_RULE_SETUP
     2613#line 328 "lex.ll"
    25842614{ RETURN_VAL('['); }
    25852615        YY_BREAK
    2586 case 142:
    2587 YY_RULE_SETUP
    2588 #line 326 "lex.ll"
     2616case 145:
     2617YY_RULE_SETUP
     2618#line 329 "lex.ll"
    25892619{ RETURN_VAL(']'); }
    25902620        YY_BREAK
    2591 case 143:
    2592 YY_RULE_SETUP
    2593 #line 327 "lex.ll"
     2621case 146:
     2622YY_RULE_SETUP
     2623#line 330 "lex.ll"
    25942624{ RETURN_VAL('{'); }
    25952625        YY_BREAK
    2596 case 144:
    2597 YY_RULE_SETUP
    2598 #line 328 "lex.ll"
     2626case 147:
     2627YY_RULE_SETUP
     2628#line 331 "lex.ll"
    25992629{ RETURN_VAL('}'); }
    26002630        YY_BREAK
    26012631/* operators */
    2602 case 145:
    2603 YY_RULE_SETUP
    2604 #line 331 "lex.ll"
    2605 { ASCIIOP_RETURN(); }
    2606         YY_BREAK
    2607 case 146:
    2608 YY_RULE_SETUP
    2609 #line 332 "lex.ll"
    2610 { ASCIIOP_RETURN(); }
    2611         YY_BREAK
    2612 case 147:
    2613 YY_RULE_SETUP
    2614 #line 333 "lex.ll"
    2615 { ASCIIOP_RETURN(); }
    2616         YY_BREAK
    26172632case 148:
    26182633YY_RULE_SETUP
     
    26722687case 159:
    26732688YY_RULE_SETUP
     2689#line 345 "lex.ll"
     2690{ ASCIIOP_RETURN(); }
     2691        YY_BREAK
     2692case 160:
     2693YY_RULE_SETUP
    26742694#line 346 "lex.ll"
     2695{ ASCIIOP_RETURN(); }
     2696        YY_BREAK
     2697case 161:
     2698YY_RULE_SETUP
     2699#line 347 "lex.ll"
     2700{ ASCIIOP_RETURN(); }
     2701        YY_BREAK
     2702case 162:
     2703YY_RULE_SETUP
     2704#line 349 "lex.ll"
    26752705{ NAMEDOP_RETURN(ICR); }
    26762706        YY_BREAK
    2677 case 160:
    2678 YY_RULE_SETUP
    2679 #line 347 "lex.ll"
     2707case 163:
     2708YY_RULE_SETUP
     2709#line 350 "lex.ll"
    26802710{ NAMEDOP_RETURN(DECR); }
    26812711        YY_BREAK
    2682 case 161:
    2683 YY_RULE_SETUP
    2684 #line 348 "lex.ll"
     2712case 164:
     2713YY_RULE_SETUP
     2714#line 351 "lex.ll"
    26852715{ NAMEDOP_RETURN(EQ); }
    26862716        YY_BREAK
    2687 case 162:
    2688 YY_RULE_SETUP
    2689 #line 349 "lex.ll"
     2717case 165:
     2718YY_RULE_SETUP
     2719#line 352 "lex.ll"
    26902720{ NAMEDOP_RETURN(NE); }
    26912721        YY_BREAK
    2692 case 163:
    2693 YY_RULE_SETUP
    2694 #line 350 "lex.ll"
     2722case 166:
     2723YY_RULE_SETUP
     2724#line 353 "lex.ll"
    26952725{ NAMEDOP_RETURN(LS); }
    26962726        YY_BREAK
    2697 case 164:
    2698 YY_RULE_SETUP
    2699 #line 351 "lex.ll"
     2727case 167:
     2728YY_RULE_SETUP
     2729#line 354 "lex.ll"
    27002730{ NAMEDOP_RETURN(RS); }
    27012731        YY_BREAK
    2702 case 165:
    2703 YY_RULE_SETUP
    2704 #line 352 "lex.ll"
     2732case 168:
     2733YY_RULE_SETUP
     2734#line 355 "lex.ll"
    27052735{ NAMEDOP_RETURN(LE); }
    27062736        YY_BREAK
    2707 case 166:
    2708 YY_RULE_SETUP
    2709 #line 353 "lex.ll"
     2737case 169:
     2738YY_RULE_SETUP
     2739#line 356 "lex.ll"
    27102740{ NAMEDOP_RETURN(GE); }
    27112741        YY_BREAK
    2712 case 167:
    2713 YY_RULE_SETUP
    2714 #line 354 "lex.ll"
     2742case 170:
     2743YY_RULE_SETUP
     2744#line 357 "lex.ll"
    27152745{ NAMEDOP_RETURN(ANDAND); }
    27162746        YY_BREAK
    2717 case 168:
    2718 YY_RULE_SETUP
    2719 #line 355 "lex.ll"
     2747case 171:
     2748YY_RULE_SETUP
     2749#line 358 "lex.ll"
    27202750{ NAMEDOP_RETURN(OROR); }
    27212751        YY_BREAK
    2722 case 169:
    2723 YY_RULE_SETUP
    2724 #line 356 "lex.ll"
     2752case 172:
     2753YY_RULE_SETUP
     2754#line 359 "lex.ll"
    27252755{ NAMEDOP_RETURN(ARROW); }
    27262756        YY_BREAK
    2727 case 170:
    2728 YY_RULE_SETUP
    2729 #line 357 "lex.ll"
     2757case 173:
     2758YY_RULE_SETUP
     2759#line 360 "lex.ll"
    27302760{ NAMEDOP_RETURN(PLUSassign); }
    27312761        YY_BREAK
    2732 case 171:
    2733 YY_RULE_SETUP
    2734 #line 358 "lex.ll"
     2762case 174:
     2763YY_RULE_SETUP
     2764#line 361 "lex.ll"
    27352765{ NAMEDOP_RETURN(MINUSassign); }
    27362766        YY_BREAK
    2737 case 172:
    2738 YY_RULE_SETUP
    2739 #line 359 "lex.ll"
     2767case 175:
     2768YY_RULE_SETUP
     2769#line 362 "lex.ll"
    27402770{ NAMEDOP_RETURN(MULTassign); }
    27412771        YY_BREAK
    2742 case 173:
    2743 YY_RULE_SETUP
    2744 #line 360 "lex.ll"
     2772case 176:
     2773YY_RULE_SETUP
     2774#line 363 "lex.ll"
    27452775{ NAMEDOP_RETURN(DIVassign); }
    27462776        YY_BREAK
    2747 case 174:
    2748 YY_RULE_SETUP
    2749 #line 361 "lex.ll"
     2777case 177:
     2778YY_RULE_SETUP
     2779#line 364 "lex.ll"
    27502780{ NAMEDOP_RETURN(MODassign); }
    27512781        YY_BREAK
    2752 case 175:
    2753 YY_RULE_SETUP
    2754 #line 362 "lex.ll"
     2782case 178:
     2783YY_RULE_SETUP
     2784#line 365 "lex.ll"
    27552785{ NAMEDOP_RETURN(ANDassign); }
    27562786        YY_BREAK
    2757 case 176:
    2758 YY_RULE_SETUP
    2759 #line 363 "lex.ll"
     2787case 179:
     2788YY_RULE_SETUP
     2789#line 366 "lex.ll"
    27602790{ NAMEDOP_RETURN(ORassign); }
    27612791        YY_BREAK
    2762 case 177:
    2763 YY_RULE_SETUP
    2764 #line 364 "lex.ll"
     2792case 180:
     2793YY_RULE_SETUP
     2794#line 367 "lex.ll"
    27652795{ NAMEDOP_RETURN(ERassign); }
    27662796        YY_BREAK
    2767 case 178:
    2768 YY_RULE_SETUP
    2769 #line 365 "lex.ll"
     2797case 181:
     2798YY_RULE_SETUP
     2799#line 368 "lex.ll"
    27702800{ NAMEDOP_RETURN(LSassign); }
    27712801        YY_BREAK
    2772 case 179:
    2773 YY_RULE_SETUP
    2774 #line 366 "lex.ll"
     2802case 182:
     2803YY_RULE_SETUP
     2804#line 369 "lex.ll"
    27752805{ NAMEDOP_RETURN(RSassign); }
    27762806        YY_BREAK
    2777 case 180:
    2778 YY_RULE_SETUP
    2779 #line 368 "lex.ll"
     2807case 183:
     2808YY_RULE_SETUP
     2809#line 371 "lex.ll"
    27802810{ NAMEDOP_RETURN(ATassign); }                   // CFA
    27812811        YY_BREAK
    27822812/* CFA, operator identifier */
    2783 case 181:
    2784 YY_RULE_SETUP
    2785 #line 371 "lex.ll"
     2813case 184:
     2814YY_RULE_SETUP
     2815#line 374 "lex.ll"
    27862816{ IDENTIFIER_RETURN(); }                                // unary
    27872817        YY_BREAK
    2788 case 182:
    2789 YY_RULE_SETUP
    2790 #line 372 "lex.ll"
     2818case 185:
     2819YY_RULE_SETUP
     2820#line 375 "lex.ll"
    27912821{ IDENTIFIER_RETURN(); }
    27922822        YY_BREAK
    2793 case 183:
    2794 YY_RULE_SETUP
    2795 #line 373 "lex.ll"
     2823case 186:
     2824YY_RULE_SETUP
     2825#line 376 "lex.ll"
    27962826{ IDENTIFIER_RETURN(); }
    27972827        YY_BREAK
    2798 case 184:
    2799 YY_RULE_SETUP
    2800 #line 374 "lex.ll"
     2828case 187:
     2829YY_RULE_SETUP
     2830#line 377 "lex.ll"
    28012831{ IDENTIFIER_RETURN(); }                // binary
    28022832        YY_BREAK
     
    28272857          an argument list.
    28282858        */
    2829 case 185:
    2830 YY_RULE_SETUP
    2831 #line 401 "lex.ll"
     2859case 188:
     2860YY_RULE_SETUP
     2861#line 404 "lex.ll"
    28322862{
    28332863        // 1 or 2 character unary operator ?
     
    28422872        YY_BREAK
    28432873/* unknown characters */
    2844 case 186:
    2845 YY_RULE_SETUP
    2846 #line 413 "lex.ll"
     2874case 189:
     2875YY_RULE_SETUP
     2876#line 416 "lex.ll"
    28472877{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    28482878        YY_BREAK
    2849 case 187:
    2850 YY_RULE_SETUP
    2851 #line 415 "lex.ll"
     2879case 190:
     2880YY_RULE_SETUP
     2881#line 418 "lex.ll"
    28522882ECHO;
    28532883        YY_BREAK
    2854 #line 2855 "Parser/lex.cc"
     2884#line 2885 "Parser/lex.cc"
    28552885case YY_STATE_EOF(INITIAL):
    28562886case YY_STATE_EOF(COMMENT):
     
    31493179                        {
    31503180                        yy_current_state = (int) yy_def[yy_current_state];
    3151                         if ( yy_current_state >= 914 )
     3181                        if ( yy_current_state >= 928 )
    31523182                                yy_c = yy_meta[(unsigned int) yy_c];
    31533183                        }
     
    31773207                {
    31783208                yy_current_state = (int) yy_def[yy_current_state];
    3179                 if ( yy_current_state >= 914 )
     3209                if ( yy_current_state >= 928 )
    31803210                        yy_c = yy_meta[(unsigned int) yy_c];
    31813211                }
    31823212        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3183         yy_is_jam = (yy_current_state == 913);
     3213        yy_is_jam = (yy_current_state == 927);
    31843214
    31853215        return yy_is_jam ? 0 : yy_current_state;
     
    38273857#define YYTABLES_NAME "yytables"
    38283858
    3829 #line 415 "lex.ll"
     3859#line 418 "lex.ll"
    38303860
    38313861
  • src/Parser/lex.ll

    rc3396e0 rd3bc0ad  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Fri Mar  3 22:18:00 2017
    13  * Update Count     : 502
     12 * Last Modified On : Thu Mar  9 21:38:26 2017
     13 * Update Count     : 505
    1414 */
    1515
     
    202202__const__               { KEYWORD_RETURN(CONST); }                              // GCC
    203203continue                { KEYWORD_RETURN(CONTINUE); }
     204_Coroutine              { KEYWORD_RETURN(COROUTINE); }                  // CFA
    204205default                 { KEYWORD_RETURN(DEFAULT); }
    205206disable                 { KEYWORD_RETURN(DISABLE); }                    // CFA
     
    235236long                    { KEYWORD_RETURN(LONG); }
    236237lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
     238_Monitor                { KEYWORD_RETURN(MONITOR); }                    // CFA
    237239mutex                   { KEYWORD_RETURN(MUTEX); }                              // CFA
    238240_Noreturn               { KEYWORD_RETURN(NORETURN); }                   // C11
     
    254256struct                  { KEYWORD_RETURN(STRUCT); }
    255257switch                  { KEYWORD_RETURN(SWITCH); }
     258_Thread                 { KEYWORD_RETURN(THREAD); }                             // C11
    256259_Thread_local   { KEYWORD_RETURN(THREADLOCAL); }                // C11
    257260throw                   { KEYWORD_RETURN(THROW); }                              // CFA
  • src/Parser/parser.cc

    rc3396e0 rd3bc0ad  
    179179     STRUCT = 292,
    180180     UNION = 293,
    181      OTYPE = 294,
    182      FTYPE = 295,
    183      DTYPE = 296,
    184      TTYPE = 297,
    185      TRAIT = 298,
    186      SIZEOF = 299,
    187      OFFSETOF = 300,
    188      ATTRIBUTE = 301,
    189      EXTENSION = 302,
    190      IF = 303,
    191      ELSE = 304,
    192      SWITCH = 305,
    193      CASE = 306,
    194      DEFAULT = 307,
    195      DO = 308,
    196      WHILE = 309,
    197      FOR = 310,
    198      BREAK = 311,
    199      CONTINUE = 312,
    200      GOTO = 313,
    201      RETURN = 314,
    202      CHOOSE = 315,
    203      DISABLE = 316,
    204      ENABLE = 317,
    205      FALLTHRU = 318,
    206      TRY = 319,
    207      CATCH = 320,
    208      CATCHRESUME = 321,
    209      FINALLY = 322,
    210      THROW = 323,
    211      THROWRESUME = 324,
    212      AT = 325,
    213      ASM = 326,
    214      ALIGNAS = 327,
    215      ALIGNOF = 328,
    216      GENERIC = 329,
    217      STATICASSERT = 330,
    218      IDENTIFIER = 331,
    219      QUOTED_IDENTIFIER = 332,
    220      TYPEDEFname = 333,
    221      TYPEGENname = 334,
    222      ATTR_IDENTIFIER = 335,
    223      ATTR_TYPEDEFname = 336,
    224      ATTR_TYPEGENname = 337,
    225      INTEGERconstant = 338,
    226      CHARACTERconstant = 339,
    227      STRINGliteral = 340,
    228      REALDECIMALconstant = 341,
    229      REALFRACTIONconstant = 342,
    230      FLOATINGconstant = 343,
    231      ZERO = 344,
    232      ONE = 345,
    233      ARROW = 346,
    234      ICR = 347,
    235      DECR = 348,
    236      LS = 349,
    237      RS = 350,
    238      LE = 351,
    239      GE = 352,
    240      EQ = 353,
    241      NE = 354,
    242      ANDAND = 355,
    243      OROR = 356,
    244      ELLIPSIS = 357,
    245      MULTassign = 358,
    246      DIVassign = 359,
    247      MODassign = 360,
    248      PLUSassign = 361,
    249      MINUSassign = 362,
    250      LSassign = 363,
    251      RSassign = 364,
    252      ANDassign = 365,
    253      ERassign = 366,
    254      ORassign = 367,
    255      ATassign = 368,
    256      THEN = 369
     181     COROUTINE = 294,
     182     MONITOR = 295,
     183     THREAD = 296,
     184     OTYPE = 297,
     185     FTYPE = 298,
     186     DTYPE = 299,
     187     TTYPE = 300,
     188     TRAIT = 301,
     189     SIZEOF = 302,
     190     OFFSETOF = 303,
     191     ATTRIBUTE = 304,
     192     EXTENSION = 305,
     193     IF = 306,
     194     ELSE = 307,
     195     SWITCH = 308,
     196     CASE = 309,
     197     DEFAULT = 310,
     198     DO = 311,
     199     WHILE = 312,
     200     FOR = 313,
     201     BREAK = 314,
     202     CONTINUE = 315,
     203     GOTO = 316,
     204     RETURN = 317,
     205     CHOOSE = 318,
     206     DISABLE = 319,
     207     ENABLE = 320,
     208     FALLTHRU = 321,
     209     TRY = 322,
     210     CATCH = 323,
     211     CATCHRESUME = 324,
     212     FINALLY = 325,
     213     THROW = 326,
     214     THROWRESUME = 327,
     215     AT = 328,
     216     ASM = 329,
     217     ALIGNAS = 330,
     218     ALIGNOF = 331,
     219     GENERIC = 332,
     220     STATICASSERT = 333,
     221     IDENTIFIER = 334,
     222     QUOTED_IDENTIFIER = 335,
     223     TYPEDEFname = 336,
     224     TYPEGENname = 337,
     225     ATTR_IDENTIFIER = 338,
     226     ATTR_TYPEDEFname = 339,
     227     ATTR_TYPEGENname = 340,
     228     INTEGERconstant = 341,
     229     CHARACTERconstant = 342,
     230     STRINGliteral = 343,
     231     REALDECIMALconstant = 344,
     232     REALFRACTIONconstant = 345,
     233     FLOATINGconstant = 346,
     234     ZERO = 347,
     235     ONE = 348,
     236     ARROW = 349,
     237     ICR = 350,
     238     DECR = 351,
     239     LS = 352,
     240     RS = 353,
     241     LE = 354,
     242     GE = 355,
     243     EQ = 356,
     244     NE = 357,
     245     ANDAND = 358,
     246     OROR = 359,
     247     ELLIPSIS = 360,
     248     MULTassign = 361,
     249     DIVassign = 362,
     250     MODassign = 363,
     251     PLUSassign = 364,
     252     MINUSassign = 365,
     253     LSassign = 366,
     254     RSassign = 367,
     255     ANDassign = 368,
     256     ERassign = 369,
     257     ORassign = 370,
     258     ATassign = 371,
     259     THEN = 372
    257260   };
    258261#endif
     
    294297#define STRUCT 292
    295298#define UNION 293
    296 #define OTYPE 294
    297 #define FTYPE 295
    298 #define DTYPE 296
    299 #define TTYPE 297
    300 #define TRAIT 298
    301 #define SIZEOF 299
    302 #define OFFSETOF 300
    303 #define ATTRIBUTE 301
    304 #define EXTENSION 302
    305 #define IF 303
    306 #define ELSE 304
    307 #define SWITCH 305
    308 #define CASE 306
    309 #define DEFAULT 307
    310 #define DO 308
    311 #define WHILE 309
    312 #define FOR 310
    313 #define BREAK 311
    314 #define CONTINUE 312
    315 #define GOTO 313
    316 #define RETURN 314
    317 #define CHOOSE 315
    318 #define DISABLE 316
    319 #define ENABLE 317
    320 #define FALLTHRU 318
    321 #define TRY 319
    322 #define CATCH 320
    323 #define CATCHRESUME 321
    324 #define FINALLY 322
    325 #define THROW 323
    326 #define THROWRESUME 324
    327 #define AT 325
    328 #define ASM 326
    329 #define ALIGNAS 327
    330 #define ALIGNOF 328
    331 #define GENERIC 329
    332 #define STATICASSERT 330
    333 #define IDENTIFIER 331
    334 #define QUOTED_IDENTIFIER 332
    335 #define TYPEDEFname 333
    336 #define TYPEGENname 334
    337 #define ATTR_IDENTIFIER 335
    338 #define ATTR_TYPEDEFname 336
    339 #define ATTR_TYPEGENname 337
    340 #define INTEGERconstant 338
    341 #define CHARACTERconstant 339
    342 #define STRINGliteral 340
    343 #define REALDECIMALconstant 341
    344 #define REALFRACTIONconstant 342
    345 #define FLOATINGconstant 343
    346 #define ZERO 344
    347 #define ONE 345
    348 #define ARROW 346
    349 #define ICR 347
    350 #define DECR 348
    351 #define LS 349
    352 #define RS 350
    353 #define LE 351
    354 #define GE 352
    355 #define EQ 353
    356 #define NE 354
    357 #define ANDAND 355
    358 #define OROR 356
    359 #define ELLIPSIS 357
    360 #define MULTassign 358
    361 #define DIVassign 359
    362 #define MODassign 360
    363 #define PLUSassign 361
    364 #define MINUSassign 362
    365 #define LSassign 363
    366 #define RSassign 364
    367 #define ANDassign 365
    368 #define ERassign 366
    369 #define ORassign 367
    370 #define ATassign 368
    371 #define THEN 369
     299#define COROUTINE 294
     300#define MONITOR 295
     301#define THREAD 296
     302#define OTYPE 297
     303#define FTYPE 298
     304#define DTYPE 299
     305#define TTYPE 300
     306#define TRAIT 301
     307#define SIZEOF 302
     308#define OFFSETOF 303
     309#define ATTRIBUTE 304
     310#define EXTENSION 305
     311#define IF 306
     312#define ELSE 307
     313#define SWITCH 308
     314#define CASE 309
     315#define DEFAULT 310
     316#define DO 311
     317#define WHILE 312
     318#define FOR 313
     319#define BREAK 314
     320#define CONTINUE 315
     321#define GOTO 316
     322#define RETURN 317
     323#define CHOOSE 318
     324#define DISABLE 319
     325#define ENABLE 320
     326#define FALLTHRU 321
     327#define TRY 322
     328#define CATCH 323
     329#define CATCHRESUME 324
     330#define FINALLY 325
     331#define THROW 326
     332#define THROWRESUME 327
     333#define AT 328
     334#define ASM 329
     335#define ALIGNAS 330
     336#define ALIGNOF 331
     337#define GENERIC 332
     338#define STATICASSERT 333
     339#define IDENTIFIER 334
     340#define QUOTED_IDENTIFIER 335
     341#define TYPEDEFname 336
     342#define TYPEGENname 337
     343#define ATTR_IDENTIFIER 338
     344#define ATTR_TYPEDEFname 339
     345#define ATTR_TYPEGENname 340
     346#define INTEGERconstant 341
     347#define CHARACTERconstant 342
     348#define STRINGliteral 343
     349#define REALDECIMALconstant 344
     350#define REALFRACTIONconstant 345
     351#define FLOATINGconstant 346
     352#define ZERO 347
     353#define ONE 348
     354#define ARROW 349
     355#define ICR 350
     356#define DECR 351
     357#define LS 352
     358#define RS 353
     359#define LE 354
     360#define GE 355
     361#define EQ 356
     362#define NE 357
     363#define ANDAND 358
     364#define OROR 359
     365#define ELLIPSIS 360
     366#define MULTassign 361
     367#define DIVassign 362
     368#define MODassign 363
     369#define PLUSassign 364
     370#define MINUSassign 365
     371#define LSassign 366
     372#define RSassign 367
     373#define ANDassign 368
     374#define ERassign 369
     375#define ORassign 370
     376#define ATassign 371
     377#define THEN 372
    372378
    373379
     
    379385
    380386/* Line 293 of yacc.c  */
    381 #line 141 "parser.yy"
     387#line 142 "parser.yy"
    382388
    383389        Token tok;
     
    399405
    400406/* Line 293 of yacc.c  */
    401 #line 402 "Parser/parser.cc"
     407#line 408 "Parser/parser.cc"
    402408} YYSTYPE;
    403409# define YYSTYPE_IS_TRIVIAL 1
     
    411417
    412418/* Line 343 of yacc.c  */
    413 #line 414 "Parser/parser.cc"
     419#line 420 "Parser/parser.cc"
    414420
    415421#ifdef short
     
    628634
    629635/* YYFINAL -- State number of the termination state.  */
    630 #define YYFINAL  241
     636#define YYFINAL  244
    631637/* YYLAST -- Last index in YYTABLE.  */
    632 #define YYLAST   11830
     638#define YYLAST   12347
    633639
    634640/* YYNTOKENS -- Number of terminals.  */
    635 #define YYNTOKENS  139
     641#define YYNTOKENS  142
    636642/* YYNNTS -- Number of nonterminals.  */
    637643#define YYNNTS  249
    638644/* YYNRULES -- Number of rules.  */
    639 #define YYNRULES  776
     645#define YYNRULES  779
    640646/* YYNRULES -- Number of states.  */
    641 #define YYNSTATES  1583
     647#define YYNSTATES  1586
    642648
    643649/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    644650#define YYUNDEFTOK  2
    645 #define YYMAXUTOK   369
     651#define YYMAXUTOK   372
    646652
    647653#define YYTRANSLATE(YYX)                                                \
     
    654660       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    655661       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    656        2,     2,     2,   127,     2,     2,     2,   130,   124,     2,
    657      115,   116,   123,   125,   122,   126,   119,   129,     2,     2,
    658        2,     2,     2,     2,     2,     2,     2,     2,   136,   138,
    659      131,   137,   132,   135,     2,     2,     2,     2,     2,     2,
     662       2,     2,     2,   130,     2,     2,     2,   133,   127,     2,
     663     118,   119,   126,   128,   125,   129,   122,   132,     2,     2,
     664       2,     2,     2,     2,     2,     2,     2,     2,   139,   141,
     665     134,   140,   135,   138,     2,     2,     2,     2,     2,     2,
    660666       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    661667       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    662        2,   117,     2,   118,   133,     2,     2,     2,     2,     2,
     668       2,   120,     2,   121,   136,     2,     2,     2,     2,     2,
    663669       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    664670       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    665        2,     2,     2,   120,   134,   121,   128,     2,     2,     2,
     671       2,     2,     2,   123,   137,   124,   131,     2,     2,     2,
    666672       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    667673       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    687693      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    688694      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    689      105,   106,   107,   108,   109,   110,   111,   112,   113,   114
     695     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     696     115,   116,   117
    690697};
    691698
     
    734741    1276,  1279,  1281,  1284,  1287,  1291,  1293,  1296,  1299,  1301,
    735742    1304,  1307,  1311,  1313,  1316,  1319,  1321,  1323,  1325,  1327,
    736     1333,  1334,  1342,  1351,  1353,  1357,  1361,  1363,  1365,  1366,
    737     1369,  1372,  1376,  1380,  1385,  1387,  1390,  1394,  1397,  1399,
    738     1404,  1405,  1407,  1410,  1413,  1415,  1416,  1418,  1421,  1428,
    739     1429,  1438,  1440,  1444,  1447,  1452,  1453,  1456,  1457,  1459,
    740     1461,  1463,  1469,  1475,  1481,  1483,  1489,  1495,  1505,  1507,
    741     1513,  1514,  1516,  1518,  1524,  1526,  1528,  1534,  1540,  1542,
    742     1546,  1550,  1555,  1557,  1559,  1561,  1563,  1566,  1568,  1572,
    743     1576,  1579,  1583,  1585,  1589,  1591,  1593,  1595,  1597,  1599,
    744     1601,  1603,  1605,  1607,  1609,  1611,  1614,  1616,  1618,  1619,
    745     1622,  1625,  1627,  1632,  1633,  1635,  1638,  1642,  1647,  1650,
    746     1653,  1655,  1658,  1661,  1667,  1673,  1681,  1688,  1690,  1693,
    747     1696,  1700,  1702,  1705,  1708,  1713,  1716,  1721,  1722,  1727,
    748     1730,  1732,  1734,  1736,  1738,  1739,  1742,  1748,  1754,  1768,
    749     1770,  1772,  1776,  1780,  1783,  1787,  1791,  1794,  1799,  1801,
    750     1808,  1818,  1819,  1831,  1833,  1837,  1841,  1845,  1847,  1849,
    751     1855,  1858,  1864,  1865,  1867,  1869,  1873,  1874,  1876,  1878,
    752     1880,  1886,  1887,  1894,  1897,  1899,  1902,  1907,  1910,  1914,
    753     1918,  1922,  1927,  1933,  1939,  1945,  1952,  1954,  1956,  1958,
    754     1962,  1963,  1969,  1970,  1972,  1974,  1977,  1984,  1986,  1990,
    755     1991,  1993,  1998,  2000,  2002,  2004,  2006,  2009,  2011,  2014,
    756     2017,  2019,  2023,  2026,  2030,  2035,  2038,  2043,  2048,  2052,
    757     2061,  2065,  2068,  2070,  2073,  2080,  2089,  2093,  2096,  2100,
    758     2104,  2109,  2114,  2118,  2120,  2122,  2124,  2129,  2138,  2142,
    759     2145,  2149,  2153,  2158,  2163,  2167,  2170,  2172,  2175,  2178,
    760     2180,  2184,  2187,  2191,  2196,  2199,  2204,  2209,  2213,  2220,
    761     2229,  2233,  2236,  2238,  2241,  2244,  2247,  2251,  2256,  2259,
    762     2264,  2269,  2273,  2280,  2289,  2293,  2296,  2298,  2301,  2304,
    763     2306,  2308,  2311,  2315,  2320,  2323,  2328,  2335,  2344,  2346,
    764     2349,  2352,  2354,  2357,  2360,  2364,  2369,  2371,  2376,  2381,
    765     2385,  2391,  2400,  2404,  2407,  2411,  2413,  2419,  2425,  2432,
    766     2439,  2441,  2444,  2447,  2449,  2452,  2455,  2459,  2464,  2466,
    767     2471,  2476,  2480,  2486,  2495,  2499,  2501,  2504,  2506,  2509,
    768     2516,  2522,  2529,  2537,  2545,  2547,  2550,  2553,  2555,  2558,
    769     2561,  2565,  2570,  2572,  2577,  2582,  2586,  2595,  2599,  2601,
    770     2603,  2606,  2608,  2610,  2613,  2617,  2620,  2624,  2627,  2631,
    771     2635,  2638,  2643,  2647,  2650,  2654,  2657,  2662,  2666,  2669,
    772     2676,  2683,  2690,  2698,  2700,  2703,  2705,  2707,  2709,  2712,
    773     2716,  2719,  2723,  2726,  2730,  2734,  2739,  2742,  2746,  2751,
    774     2754,  2760,  2767,  2774,  2775,  2777,  2778
     743    1333,  1334,  1342,  1351,  1353,  1357,  1361,  1363,  1365,  1367,
     744    1369,  1371,  1372,  1375,  1378,  1382,  1386,  1391,  1393,  1396,
     745    1400,  1403,  1405,  1410,  1411,  1413,  1416,  1419,  1421,  1422,
     746    1424,  1427,  1434,  1435,  1444,  1446,  1450,  1453,  1458,  1459,
     747    1462,  1463,  1465,  1467,  1469,  1475,  1481,  1487,  1489,  1495,
     748    1501,  1511,  1513,  1519,  1520,  1522,  1524,  1530,  1532,  1534,
     749    1540,  1546,  1548,  1552,  1556,  1561,  1563,  1565,  1567,  1569,
     750    1572,  1574,  1578,  1582,  1585,  1589,  1591,  1595,  1597,  1599,
     751    1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1620,
     752    1622,  1624,  1625,  1628,  1631,  1633,  1638,  1639,  1641,  1644,
     753    1648,  1653,  1656,  1659,  1661,  1664,  1667,  1673,  1679,  1687,
     754    1694,  1696,  1699,  1702,  1706,  1708,  1711,  1714,  1719,  1722,
     755    1727,  1728,  1733,  1736,  1738,  1740,  1742,  1744,  1745,  1748,
     756    1754,  1760,  1774,  1776,  1778,  1782,  1786,  1789,  1793,  1797,
     757    1800,  1805,  1807,  1814,  1824,  1825,  1837,  1839,  1843,  1847,
     758    1851,  1853,  1855,  1861,  1864,  1870,  1871,  1873,  1875,  1879,
     759    1880,  1882,  1884,  1886,  1892,  1893,  1900,  1903,  1905,  1908,
     760    1913,  1916,  1920,  1924,  1928,  1933,  1939,  1945,  1951,  1958,
     761    1960,  1962,  1964,  1968,  1969,  1975,  1976,  1978,  1980,  1983,
     762    1990,  1992,  1996,  1997,  1999,  2004,  2006,  2008,  2010,  2012,
     763    2015,  2017,  2020,  2023,  2025,  2029,  2032,  2036,  2041,  2044,
     764    2049,  2054,  2058,  2067,  2071,  2074,  2076,  2079,  2086,  2095,
     765    2099,  2102,  2106,  2110,  2115,  2120,  2124,  2126,  2128,  2130,
     766    2135,  2144,  2148,  2151,  2155,  2159,  2164,  2169,  2173,  2176,
     767    2178,  2181,  2184,  2186,  2190,  2193,  2197,  2202,  2205,  2210,
     768    2215,  2219,  2226,  2235,  2239,  2242,  2244,  2247,  2250,  2253,
     769    2257,  2262,  2265,  2270,  2275,  2279,  2286,  2295,  2299,  2302,
     770    2304,  2307,  2310,  2312,  2314,  2317,  2321,  2326,  2329,  2334,
     771    2341,  2350,  2352,  2355,  2358,  2360,  2363,  2366,  2370,  2375,
     772    2377,  2382,  2387,  2391,  2397,  2406,  2410,  2413,  2417,  2419,
     773    2425,  2431,  2438,  2445,  2447,  2450,  2453,  2455,  2458,  2461,
     774    2465,  2470,  2472,  2477,  2482,  2486,  2492,  2501,  2505,  2507,
     775    2510,  2512,  2515,  2522,  2528,  2535,  2543,  2551,  2553,  2556,
     776    2559,  2561,  2564,  2567,  2571,  2576,  2578,  2583,  2588,  2592,
     777    2601,  2605,  2607,  2609,  2612,  2614,  2616,  2619,  2623,  2626,
     778    2630,  2633,  2637,  2641,  2644,  2649,  2653,  2656,  2660,  2663,
     779    2668,  2672,  2675,  2682,  2689,  2696,  2704,  2706,  2709,  2711,
     780    2713,  2715,  2718,  2722,  2725,  2729,  2732,  2736,  2740,  2745,
     781    2748,  2752,  2757,  2760,  2766,  2773,  2780,  2781,  2783,  2784
    775782};
    776783
     
    778785static const yytype_int16 yyrhs[] =
    779786{
    780      316,     0,    -1,    -1,    -1,    83,    -1,    86,    -1,    87,
    781       -1,    88,    -1,    84,    -1,    76,    -1,    80,    -1,   146,
    782       -1,    76,    -1,    80,    -1,    76,    -1,   146,    -1,    89,
    783       -1,    90,    -1,   148,    -1,    85,    -1,   148,    85,    -1,
    784       76,    -1,   146,    -1,   176,    -1,   115,   178,   116,    -1,
    785      115,   182,   116,    -1,   149,    -1,   150,   117,   140,   173,
    786      141,   118,    -1,   150,   115,   151,   116,    -1,   150,   119,
    787      145,    -1,   150,   119,   117,   140,   153,   141,   118,    -1,
    788      150,    87,    -1,   150,    91,   145,    -1,   150,    91,   117,
    789      140,   153,   141,   118,    -1,   150,    92,    -1,   150,    93,
    790       -1,   115,   289,   116,   120,   293,   386,   121,    -1,   150,
    791      120,   151,   121,    -1,   152,    -1,   151,   122,   152,    -1,
    792       -1,   173,    -1,   154,    -1,   153,   122,   154,    -1,   155,
    793       -1,    86,   154,    -1,    86,   117,   140,   153,   141,   118,
    794       -1,   155,   119,   154,    -1,   155,   119,   117,   140,   153,
    795      141,   118,    -1,   155,    91,   154,    -1,   155,    91,   117,
    796      140,   153,   141,   118,    -1,    83,   156,    -1,    88,   156,
    797       -1,   145,   156,    -1,    -1,   156,    87,    -1,   150,    -1,
    798      142,    -1,   147,    -1,    47,   160,    -1,   158,   160,    -1,
    799      159,   160,    -1,    92,   157,    -1,    93,   157,    -1,    44,
    800      157,    -1,    44,   115,   289,   116,    -1,    73,   157,    -1,
    801       73,   115,   289,   116,    -1,    45,   115,   289,   122,   145,
    802      116,    -1,    80,    -1,    80,   115,   152,   116,    -1,    80,
    803      115,   290,   116,    -1,   123,    -1,   124,    -1,   125,    -1,
    804      126,    -1,   127,    -1,   128,    -1,   157,    -1,   115,   289,
    805      116,   160,    -1,   160,    -1,   161,   123,   160,    -1,   161,
    806      129,   160,    -1,   161,   130,   160,    -1,   161,    -1,   162,
    807      125,   161,    -1,   162,   126,   161,    -1,   162,    -1,   163,
    808       94,   162,    -1,   163,    95,   162,    -1,   163,    -1,   164,
    809      131,   163,    -1,   164,   132,   163,    -1,   164,    96,   163,
    810       -1,   164,    97,   163,    -1,   164,    -1,   165,    98,   164,
    811       -1,   165,    99,   164,    -1,   165,    -1,   166,   124,   165,
    812       -1,   166,    -1,   167,   133,   166,    -1,   167,    -1,   168,
    813      134,   167,    -1,   168,    -1,   169,   100,   168,    -1,   169,
    814       -1,   170,   101,   169,    -1,   170,    -1,   170,   135,   178,
    815      136,   171,    -1,   170,   135,   136,   171,    -1,   171,    -1,
    816      171,    -1,   157,   175,   173,    -1,    -1,   173,    -1,   137,
    817       -1,   113,    -1,   103,    -1,   104,    -1,   105,    -1,   106,
    818       -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,   111,
    819       -1,   112,    -1,   117,   140,   122,   177,   141,   118,    -1,
    820      117,   140,   173,   122,   177,   141,   118,    -1,   174,    -1,
    821      177,   122,   174,    -1,   173,    -1,   178,   122,   173,    -1,
    822       -1,   178,    -1,   181,    -1,   182,    -1,   186,    -1,   187,
    823       -1,   199,    -1,   201,    -1,   202,    -1,   207,    -1,   133,
    824      150,   120,   151,   121,   138,    -1,   286,   136,   326,   180,
    825       -1,   120,   121,    -1,   120,   140,   140,   218,   183,   141,
    826      121,    -1,   184,    -1,   183,   140,   184,    -1,   221,    -1,
    827       47,   221,    -1,   322,    -1,    47,   322,    -1,   180,   141,
    828       -1,   180,    -1,   185,   180,    -1,   179,   138,    -1,    48,
    829      115,   178,   116,   180,    -1,    48,   115,   178,   116,   180,
    830       49,   180,    -1,    50,   115,   178,   116,   192,    -1,    50,
    831      115,   178,   116,   120,   140,   214,   193,   121,    -1,    60,
    832      115,   178,   116,   192,    -1,    60,   115,   178,   116,   120,
    833      140,   214,   195,   121,    -1,   172,    -1,   172,   102,   172,
    834       -1,   324,    -1,   188,    -1,   189,   122,   188,    -1,    51,
    835      189,   136,    -1,    52,   136,    -1,   190,    -1,   191,   190,
    836       -1,   191,   180,    -1,    -1,   194,    -1,   191,   185,    -1,
    837      194,   191,   185,    -1,    -1,   196,    -1,   191,   198,    -1,
    838      191,   185,   197,    -1,   196,   191,   198,    -1,   196,   191,
    839      185,   197,    -1,    -1,   198,    -1,    63,    -1,    63,   138,
    840       -1,    54,   115,   178,   116,   180,    -1,    53,   180,    54,
    841      115,   178,   116,   138,    -1,    55,   115,   140,   200,   116,
    842      180,    -1,   179,   141,   138,   179,   138,   179,    -1,   221,
    843      179,   138,   179,    -1,    58,   286,   138,    -1,    58,   123,
    844      178,   138,    -1,    57,   138,    -1,    57,   286,   138,    -1,
    845       56,   138,    -1,    56,   286,   138,    -1,    59,   179,   138,
    846       -1,    68,   174,   138,    -1,    69,   174,   138,    -1,    69,
    847      174,    70,   173,   138,    -1,    64,   182,   203,    -1,    64,
    848      182,   205,    -1,    64,   182,   203,   205,    -1,   204,    -1,
    849       65,   115,   102,   116,   182,    -1,   204,    65,   115,   102,
    850      116,   182,    -1,    66,   115,   102,   116,   182,    -1,   204,
    851       66,   115,   102,   116,   182,    -1,    65,   115,   140,   140,
    852      206,   141,   116,   182,   141,    -1,   204,    65,   115,   140,
    853      140,   206,   141,   116,   182,   141,    -1,    66,   115,   140,
    854      140,   206,   141,   116,   182,   141,    -1,   204,    66,   115,
    855      140,   140,   206,   141,   116,   182,   141,    -1,    67,   182,
    856       -1,   236,    -1,   236,   323,    -1,   236,   371,    -1,   380,
    857      145,    -1,   380,    -1,    71,   208,   115,   147,   116,   138,
    858       -1,    71,   208,   115,   147,   136,   209,   116,   138,    -1,
    859       71,   208,   115,   147,   136,   209,   136,   209,   116,   138,
    860       -1,    71,   208,   115,   147,   136,   209,   136,   209,   136,
    861      212,   116,   138,    -1,    71,   208,    58,   115,   147,   136,
    862      136,   209,   136,   212,   136,   213,   116,   138,    -1,    -1,
    863       13,    -1,    -1,   210,    -1,   211,    -1,   210,   122,   211,
    864       -1,   147,   115,   172,   116,    -1,   117,   172,   118,   147,
    865      115,   172,   116,    -1,    -1,   147,    -1,   212,   122,   147,
    866       -1,   145,    -1,   213,   122,   145,    -1,   141,    -1,   215,
    867       -1,   221,    -1,   215,   140,   221,    -1,   141,    -1,   217,
    868       -1,   231,    -1,   217,   140,   231,    -1,    -1,   219,    -1,
    869       35,   220,   138,    -1,   219,    35,   220,   138,    -1,   288,
    870       -1,   220,   122,   288,    -1,   222,    -1,   231,    -1,   223,
    871      141,   138,    -1,   228,   141,   138,    -1,   225,   141,   138,
    872       -1,   307,   141,   138,    -1,   310,   141,   138,    -1,   224,
    873      291,    -1,   242,   224,   291,    -1,   223,   141,   122,   140,
    874      286,   291,    -1,   381,   286,   325,    -1,   384,   286,   325,
    875       -1,   238,   384,   286,   325,    -1,   226,    -1,   238,   226,
    876       -1,   242,   226,    -1,   242,   238,   226,    -1,   225,   141,
    877      122,   140,   286,    -1,   384,   286,   115,   140,   274,   141,
    878      116,    -1,   227,   286,   115,   140,   274,   141,   116,    -1,
    879      117,   140,   276,   141,   118,    -1,   117,   140,   276,   141,
    880      122,   140,   277,   141,   118,    -1,     3,   224,    -1,     3,
    881      226,    -1,   228,   141,   122,   140,   145,    -1,     3,   235,
    882      323,    -1,   229,   141,   122,   140,   323,    -1,   238,     3,
    883      235,   323,    -1,   235,     3,   323,    -1,   235,     3,   238,
    884      323,    -1,     3,   145,   137,   173,    -1,   230,   141,   122,
    885      140,   145,   137,   173,    -1,   233,   232,   141,   138,    -1,
    886      229,   141,   138,    -1,   230,   141,   138,    -1,   250,   141,
    887      138,    -1,   323,   325,   291,    -1,   232,   122,   326,   323,
    888      325,   291,    -1,   246,    -1,   250,    -1,   254,    -1,   297,
    889       -1,   246,    -1,   252,    -1,   254,    -1,   297,    -1,   247,
    890       -1,   251,    -1,   255,    -1,   298,    -1,   247,    -1,   253,
    891       -1,   255,    -1,   298,    -1,    -1,   238,    -1,   239,    -1,
    892      238,   239,    -1,   240,    -1,   328,    -1,    12,    -1,    14,
     787     319,     0,    -1,    -1,    -1,    86,    -1,    89,    -1,    90,
     788      -1,    91,    -1,    87,    -1,    79,    -1,    83,    -1,   149,
     789      -1,    79,    -1,    83,    -1,    79,    -1,   149,    -1,    92,
     790      -1,    93,    -1,   151,    -1,    88,    -1,   151,    88,    -1,
     791      79,    -1,   149,    -1,   179,    -1,   118,   181,   119,    -1,
     792     118,   185,   119,    -1,   152,    -1,   153,   120,   143,   176,
     793     144,   121,    -1,   153,   118,   154,   119,    -1,   153,   122,
     794     148,    -1,   153,   122,   120,   143,   156,   144,   121,    -1,
     795     153,    90,    -1,   153,    94,   148,    -1,   153,    94,   120,
     796     143,   156,   144,   121,    -1,   153,    95,    -1,   153,    96,
     797      -1,   118,   292,   119,   123,   296,   389,   124,    -1,   153,
     798     123,   154,   124,    -1,   155,    -1,   154,   125,   155,    -1,
     799      -1,   176,    -1,   157,    -1,   156,   125,   157,    -1,   158,
     800      -1,    89,   157,    -1,    89,   120,   143,   156,   144,   121,
     801      -1,   158,   122,   157,    -1,   158,   122,   120,   143,   156,
     802     144,   121,    -1,   158,    94,   157,    -1,   158,    94,   120,
     803     143,   156,   144,   121,    -1,    86,   159,    -1,    91,   159,
     804      -1,   148,   159,    -1,    -1,   159,    90,    -1,   153,    -1,
     805     145,    -1,   150,    -1,    50,   163,    -1,   161,   163,    -1,
     806     162,   163,    -1,    95,   160,    -1,    96,   160,    -1,    47,
     807     160,    -1,    47,   118,   292,   119,    -1,    76,   160,    -1,
     808      76,   118,   292,   119,    -1,    48,   118,   292,   125,   148,
     809     119,    -1,    83,    -1,    83,   118,   155,   119,    -1,    83,
     810     118,   293,   119,    -1,   126,    -1,   127,    -1,   128,    -1,
     811     129,    -1,   130,    -1,   131,    -1,   160,    -1,   118,   292,
     812     119,   163,    -1,   163,    -1,   164,   126,   163,    -1,   164,
     813     132,   163,    -1,   164,   133,   163,    -1,   164,    -1,   165,
     814     128,   164,    -1,   165,   129,   164,    -1,   165,    -1,   166,
     815      97,   165,    -1,   166,    98,   165,    -1,   166,    -1,   167,
     816     134,   166,    -1,   167,   135,   166,    -1,   167,    99,   166,
     817      -1,   167,   100,   166,    -1,   167,    -1,   168,   101,   167,
     818      -1,   168,   102,   167,    -1,   168,    -1,   169,   127,   168,
     819      -1,   169,    -1,   170,   136,   169,    -1,   170,    -1,   171,
     820     137,   170,    -1,   171,    -1,   172,   103,   171,    -1,   172,
     821      -1,   173,   104,   172,    -1,   173,    -1,   173,   138,   181,
     822     139,   174,    -1,   173,   138,   139,   174,    -1,   174,    -1,
     823     174,    -1,   160,   178,   176,    -1,    -1,   176,    -1,   140,
     824      -1,   116,    -1,   106,    -1,   107,    -1,   108,    -1,   109,
     825      -1,   110,    -1,   111,    -1,   112,    -1,   113,    -1,   114,
     826      -1,   115,    -1,   120,   143,   125,   180,   144,   121,    -1,
     827     120,   143,   176,   125,   180,   144,   121,    -1,   177,    -1,
     828     180,   125,   177,    -1,   176,    -1,   181,   125,   176,    -1,
     829      -1,   181,    -1,   184,    -1,   185,    -1,   189,    -1,   190,
     830      -1,   202,    -1,   204,    -1,   205,    -1,   210,    -1,   136,
     831     153,   123,   154,   124,   141,    -1,   289,   139,   329,   183,
     832      -1,   123,   124,    -1,   123,   143,   143,   221,   186,   144,
     833     124,    -1,   187,    -1,   186,   143,   187,    -1,   224,    -1,
     834      50,   224,    -1,   325,    -1,    50,   325,    -1,   183,   144,
     835      -1,   183,    -1,   188,   183,    -1,   182,   141,    -1,    51,
     836     118,   181,   119,   183,    -1,    51,   118,   181,   119,   183,
     837      52,   183,    -1,    53,   118,   181,   119,   195,    -1,    53,
     838     118,   181,   119,   123,   143,   217,   196,   124,    -1,    63,
     839     118,   181,   119,   195,    -1,    63,   118,   181,   119,   123,
     840     143,   217,   198,   124,    -1,   175,    -1,   175,   105,   175,
     841      -1,   327,    -1,   191,    -1,   192,   125,   191,    -1,    54,
     842     192,   139,    -1,    55,   139,    -1,   193,    -1,   194,   193,
     843      -1,   194,   183,    -1,    -1,   197,    -1,   194,   188,    -1,
     844     197,   194,   188,    -1,    -1,   199,    -1,   194,   201,    -1,
     845     194,   188,   200,    -1,   199,   194,   201,    -1,   199,   194,
     846     188,   200,    -1,    -1,   201,    -1,    66,    -1,    66,   141,
     847      -1,    57,   118,   181,   119,   183,    -1,    56,   183,    57,
     848     118,   181,   119,   141,    -1,    58,   118,   143,   203,   119,
     849     183,    -1,   182,   144,   141,   182,   141,   182,    -1,   224,
     850     182,   141,   182,    -1,    61,   289,   141,    -1,    61,   126,
     851     181,   141,    -1,    60,   141,    -1,    60,   289,   141,    -1,
     852      59,   141,    -1,    59,   289,   141,    -1,    62,   182,   141,
     853      -1,    71,   177,   141,    -1,    72,   177,   141,    -1,    72,
     854     177,    73,   176,   141,    -1,    67,   185,   206,    -1,    67,
     855     185,   208,    -1,    67,   185,   206,   208,    -1,   207,    -1,
     856      68,   118,   105,   119,   185,    -1,   207,    68,   118,   105,
     857     119,   185,    -1,    69,   118,   105,   119,   185,    -1,   207,
     858      69,   118,   105,   119,   185,    -1,    68,   118,   143,   143,
     859     209,   144,   119,   185,   144,    -1,   207,    68,   118,   143,
     860     143,   209,   144,   119,   185,   144,    -1,    69,   118,   143,
     861     143,   209,   144,   119,   185,   144,    -1,   207,    69,   118,
     862     143,   143,   209,   144,   119,   185,   144,    -1,    70,   185,
     863      -1,   239,    -1,   239,   326,    -1,   239,   374,    -1,   383,
     864     148,    -1,   383,    -1,    74,   211,   118,   150,   119,   141,
     865      -1,    74,   211,   118,   150,   139,   212,   119,   141,    -1,
     866      74,   211,   118,   150,   139,   212,   139,   212,   119,   141,
     867      -1,    74,   211,   118,   150,   139,   212,   139,   212,   139,
     868     215,   119,   141,    -1,    74,   211,    61,   118,   150,   139,
     869     139,   212,   139,   215,   139,   216,   119,   141,    -1,    -1,
     870      13,    -1,    -1,   213,    -1,   214,    -1,   213,   125,   214,
     871      -1,   150,   118,   175,   119,    -1,   120,   175,   121,   150,
     872     118,   175,   119,    -1,    -1,   150,    -1,   215,   125,   150,
     873      -1,   148,    -1,   216,   125,   148,    -1,   144,    -1,   218,
     874      -1,   224,    -1,   218,   143,   224,    -1,   144,    -1,   220,
     875      -1,   234,    -1,   220,   143,   234,    -1,    -1,   222,    -1,
     876      35,   223,   141,    -1,   222,    35,   223,   141,    -1,   291,
     877      -1,   223,   125,   291,    -1,   225,    -1,   234,    -1,   226,
     878     144,   141,    -1,   231,   144,   141,    -1,   228,   144,   141,
     879      -1,   310,   144,   141,    -1,   313,   144,   141,    -1,   227,
     880     294,    -1,   245,   227,   294,    -1,   226,   144,   125,   143,
     881     289,   294,    -1,   384,   289,   328,    -1,   387,   289,   328,
     882      -1,   241,   387,   289,   328,    -1,   229,    -1,   241,   229,
     883      -1,   245,   229,    -1,   245,   241,   229,    -1,   228,   144,
     884     125,   143,   289,    -1,   387,   289,   118,   143,   277,   144,
     885     119,    -1,   230,   289,   118,   143,   277,   144,   119,    -1,
     886     120,   143,   279,   144,   121,    -1,   120,   143,   279,   144,
     887     125,   143,   280,   144,   121,    -1,     3,   227,    -1,     3,
     888     229,    -1,   231,   144,   125,   143,   148,    -1,     3,   238,
     889     326,    -1,   232,   144,   125,   143,   326,    -1,   241,     3,
     890     238,   326,    -1,   238,     3,   326,    -1,   238,     3,   241,
     891     326,    -1,     3,   148,   140,   176,    -1,   233,   144,   125,
     892     143,   148,   140,   176,    -1,   236,   235,   144,   141,    -1,
     893     232,   144,   141,    -1,   233,   144,   141,    -1,   253,   144,
     894     141,    -1,   326,   328,   294,    -1,   235,   125,   329,   326,
     895     328,   294,    -1,   249,    -1,   253,    -1,   257,    -1,   300,
     896      -1,   249,    -1,   255,    -1,   257,    -1,   300,    -1,   250,
     897      -1,   254,    -1,   258,    -1,   301,    -1,   250,    -1,   256,
     898      -1,   258,    -1,   301,    -1,    -1,   241,    -1,   242,    -1,
     899     241,   242,    -1,   243,    -1,   331,    -1,    12,    -1,    14,
    893900      -1,    13,    -1,    17,    -1,    18,    -1,    15,    -1,    -1,
    894       16,   115,   241,   300,   116,    -1,   243,    -1,   238,   243,
    895       -1,   242,   238,   243,    -1,   244,    -1,   243,   244,    -1,
     901      16,   118,   244,   303,   119,    -1,   246,    -1,   241,   246,
     902      -1,   245,   241,   246,    -1,   247,    -1,   246,   247,    -1,
    896903       4,    -1,     5,    -1,     6,    -1,     7,    -1,     8,    -1,
    897904       9,    -1,    10,    -1,    11,    -1,    20,    -1,    25,    -1,
    898905      24,    -1,    22,    -1,    23,    -1,    21,    -1,    26,    -1,
    899906      27,    -1,    19,    -1,    31,    -1,    32,    -1,    33,    -1,
    900       30,    -1,    28,    -1,    29,    -1,   247,    -1,   242,   247,
    901       -1,   246,   244,    -1,   246,   244,   238,    -1,   246,   244,
    902      247,    -1,   248,    -1,   237,   249,   237,    -1,   245,    -1,
    903      238,   245,    -1,   248,   239,    -1,   248,   245,    -1,    34,
    904      115,   290,   116,    -1,    34,   115,   178,   116,    -1,    82,
    905      115,   290,   116,    -1,    82,   115,   178,   116,    -1,   251,
    906       -1,   242,   251,    -1,   250,   244,    -1,   250,   244,   238,
    907       -1,   256,    -1,   238,   256,    -1,   251,   239,    -1,   253,
    908       -1,   242,   253,    -1,   252,   244,    -1,   252,   244,   238,
    909       -1,   257,    -1,   238,   257,    -1,   253,   239,    -1,   255,
    910       -1,   242,   255,    -1,   254,   244,    -1,   254,   244,   238,
    911       -1,    78,    -1,   238,    78,    -1,   255,   239,    -1,   258,
    912       -1,   269,    -1,   260,    -1,   271,    -1,   261,   326,   120,
    913      262,   121,    -1,    -1,   261,   326,   288,   259,   120,   262,
    914      121,    -1,   261,   326,   115,   306,   116,   120,   262,   121,
    915       -1,   260,    -1,   261,   326,   288,    -1,   261,   326,   299,
    916       -1,    37,    -1,    38,    -1,    -1,   262,   263,    -1,   264,
    917      138,    -1,    47,   264,   138,    -1,   235,   265,   138,    -1,
    918       47,   235,   265,   138,    -1,   380,    -1,   380,   288,    -1,
    919      264,   122,   288,    -1,   264,   122,    -1,   266,    -1,   265,
    920      122,   326,   266,    -1,    -1,   268,    -1,   332,   267,    -1,
    921      345,   267,    -1,   371,    -1,    -1,   268,    -1,   136,   172,
    922       -1,    36,   326,   120,   272,   386,   121,    -1,    -1,    36,
    923      326,   288,   270,   120,   272,   386,   121,    -1,   271,    -1,
    924       36,   326,   288,    -1,   288,   273,    -1,   272,   122,   288,
    925      273,    -1,    -1,   137,   172,    -1,    -1,   275,    -1,   277,
    926       -1,   276,    -1,   276,   141,   122,   140,   277,    -1,   277,
    927      141,   122,   140,   102,    -1,   276,   141,   122,   140,   102,
    928       -1,   281,    -1,   277,   141,   122,   140,   281,    -1,   276,
    929      141,   122,   140,   281,    -1,   276,   141,   122,   140,   277,
    930      141,   122,   140,   281,    -1,   282,    -1,   277,   141,   122,
    931      140,   282,    -1,    -1,   279,    -1,   280,    -1,   280,   141,
    932      122,   140,   102,    -1,   284,    -1,   283,    -1,   280,   141,
    933      122,   140,   284,    -1,   280,   141,   122,   140,   283,    -1,
    934      283,    -1,   376,   286,   387,    -1,   384,   286,   387,    -1,
    935      238,   384,   286,   387,    -1,   226,    -1,   284,    -1,   376,
    936       -1,   384,    -1,   238,   384,    -1,   385,    -1,   234,   350,
    937      387,    -1,   234,   354,   387,    -1,   234,   387,    -1,   234,
    938      365,   387,    -1,   145,    -1,   285,   122,   145,    -1,   143,
    939       -1,    78,    -1,    79,    -1,   144,    -1,    78,    -1,    79,
    940       -1,   145,    -1,    78,    -1,    79,    -1,   380,    -1,   235,
    941       -1,   235,   359,    -1,   289,    -1,   385,    -1,    -1,   137,
    942      292,    -1,   113,   292,    -1,   173,    -1,   120,   293,   386,
    943      121,    -1,    -1,   292,    -1,   294,   292,    -1,   293,   122,
    944      292,    -1,   293,   122,   294,   292,    -1,   295,   136,    -1,
    945      288,   136,    -1,   296,    -1,   295,   296,    -1,   119,   288,
    946       -1,   117,   140,   173,   141,   118,    -1,   117,   140,   324,
    947      141,   118,    -1,   117,   140,   172,   102,   172,   141,   118,
    948       -1,   119,   117,   140,   153,   141,   118,    -1,   298,    -1,
    949      242,   298,    -1,   297,   244,    -1,   297,   244,   238,    -1,
    950      299,    -1,   238,   299,    -1,   298,   239,    -1,    79,   115,
    951      306,   116,    -1,   301,   387,    -1,   300,   122,   301,   387,
    952       -1,    -1,   303,   288,   302,   304,    -1,   235,   350,    -1,
    953       39,    -1,    41,    -1,    40,    -1,    42,    -1,    -1,   304,
    954      305,    -1,   134,   288,   115,   306,   116,    -1,   134,   120,
    955      140,   312,   121,    -1,   134,   115,   140,   300,   141,   116,
    956      120,   140,   312,   121,   115,   306,   116,    -1,   290,    -1,
    957      173,    -1,   306,   122,   290,    -1,   306,   122,   173,    -1,
    958       39,   308,    -1,   243,    39,   308,    -1,   307,   122,   308,
    959       -1,   309,   304,    -1,   309,   304,   137,   290,    -1,   288,
    960       -1,   287,   115,   140,   300,   141,   116,    -1,    43,   288,
    961      115,   140,   300,   141,   116,   120,   121,    -1,    -1,    43,
    962      288,   115,   140,   300,   141,   116,   120,   311,   312,   121,
    963       -1,   313,    -1,   312,   140,   313,    -1,   314,   141,   138,
    964       -1,   315,   141,   138,    -1,   224,    -1,   226,    -1,   314,
    965      141,   122,   140,   286,    -1,   235,   323,    -1,   315,   141,
    966      122,   140,   323,    -1,    -1,   317,    -1,   319,    -1,   317,
    967      140,   319,    -1,    -1,   317,    -1,   221,    -1,   321,    -1,
    968       71,   115,   147,   116,   138,    -1,    -1,     4,    85,   320,
    969      120,   318,   121,    -1,    47,   319,    -1,   322,    -1,   337,
    970      182,    -1,   341,   140,   216,   182,    -1,   225,   182,    -1,
    971      233,   337,   182,    -1,   238,   337,   182,    -1,   242,   337,
    972      182,    -1,   242,   238,   337,   182,    -1,   233,   341,   140,
    973      216,   182,    -1,   238,   341,   140,   216,   182,    -1,   242,
    974      341,   140,   216,   182,    -1,   242,   238,   341,   140,   216,
    975      182,    -1,   332,    -1,   345,    -1,   337,    -1,   172,   128,
    976      172,    -1,    -1,    71,   115,   147,   116,   326,    -1,    -1,
    977      327,    -1,   328,    -1,   327,   328,    -1,    46,   115,   115,
    978      329,   116,   116,    -1,   330,    -1,   329,   122,   330,    -1,
    979       -1,   331,    -1,   331,   115,   151,   116,    -1,    76,    -1,
    980       78,    -1,    79,    -1,    12,    -1,   333,   326,    -1,   334,
    981       -1,   335,   326,    -1,   336,   326,    -1,   143,    -1,   115,
    982      333,   116,    -1,   158,   332,    -1,   158,   238,   332,    -1,
    983      115,   334,   116,   326,    -1,   333,   363,    -1,   115,   334,
    984      116,   363,    -1,   115,   335,   116,   364,    -1,   115,   335,
    985      116,    -1,   115,   334,   116,   115,   140,   278,   141,   116,
    986       -1,   115,   336,   116,    -1,   338,   326,    -1,   339,    -1,
    987      340,   326,    -1,   333,   115,   140,   278,   141,   116,    -1,
    988      115,   339,   116,   115,   140,   278,   141,   116,    -1,   115,
    989      338,   116,    -1,   158,   337,    -1,   158,   238,   337,    -1,
    990      115,   339,   116,    -1,   115,   339,   116,   363,    -1,   115,
    991      340,   116,   364,    -1,   115,   340,   116,    -1,   342,    -1,
    992      343,    -1,   344,    -1,   333,   115,   285,   116,    -1,   115,
    993      343,   116,   115,   140,   278,   141,   116,    -1,   115,   342,
    994      116,    -1,   158,   341,    -1,   158,   238,   341,    -1,   115,
    995      343,   116,    -1,   115,   343,   116,   363,    -1,   115,   344,
    996      116,   364,    -1,   115,   344,   116,    -1,   346,   326,    -1,
    997      347,    -1,   348,   326,    -1,   349,   326,    -1,   355,    -1,
    998      115,   346,   116,    -1,   158,   345,    -1,   158,   238,   345,
    999       -1,   115,   347,   116,   326,    -1,   346,   363,    -1,   115,
    1000      347,   116,   363,    -1,   115,   348,   116,   364,    -1,   115,
    1001      348,   116,    -1,   346,   115,   140,   278,   141,   116,    -1,
    1002      115,   347,   116,   115,   140,   278,   141,   116,    -1,   115,
    1003      349,   116,    -1,   333,   326,    -1,   351,    -1,   352,   326,
    1004       -1,   353,   326,    -1,   158,   350,    -1,   158,   238,   350,
    1005       -1,   115,   351,   116,   326,    -1,   333,   369,    -1,   115,
    1006      351,   116,   363,    -1,   115,   352,   116,   364,    -1,   115,
    1007      352,   116,    -1,   333,   115,   140,   278,   141,   116,    -1,
    1008      115,   351,   116,   115,   140,   278,   141,   116,    -1,   115,
    1009      353,   116,    -1,   355,   326,    -1,   356,    -1,   357,   326,
    1010       -1,   358,   326,    -1,    78,    -1,    79,    -1,   158,   354,
    1011       -1,   158,   238,   354,    -1,   115,   356,   116,   326,    -1,
    1012      355,   369,    -1,   115,   356,   116,   369,    -1,   355,   115,
    1013      140,   278,   141,   116,    -1,   115,   356,   116,   115,   140,
    1014      278,   141,   116,    -1,   360,    -1,   361,   326,    -1,   362,
    1015      326,    -1,   158,    -1,   158,   238,    -1,   158,   359,    -1,
    1016      158,   238,   359,    -1,   115,   360,   116,   326,    -1,   363,
    1017       -1,   115,   360,   116,   363,    -1,   115,   361,   116,   364,
    1018       -1,   115,   361,   116,    -1,   115,   140,   278,   141,   116,
    1019       -1,   115,   360,   116,   115,   140,   278,   141,   116,    -1,
    1020      115,   362,   116,    -1,   117,   118,    -1,   117,   118,   364,
    1021       -1,   364,    -1,   117,   140,   173,   141,   118,    -1,   117,
    1022      140,   123,   141,   118,    -1,   364,   117,   140,   173,   141,
    1023      118,    -1,   364,   117,   140,   123,   141,   118,    -1,   366,
    1024       -1,   367,   326,    -1,   368,   326,    -1,   158,    -1,   158,
    1025      238,    -1,   158,   365,    -1,   158,   238,   365,    -1,   115,
    1026      366,   116,   326,    -1,   369,    -1,   115,   366,   116,   369,
    1027       -1,   115,   367,   116,   364,    -1,   115,   367,   116,    -1,
    1028      115,   140,   278,   141,   116,    -1,   115,   366,   116,   115,
    1029      140,   278,   141,   116,    -1,   115,   368,   116,    -1,   370,
    1030       -1,   370,   364,    -1,   364,    -1,   117,   118,    -1,   117,
    1031      140,   238,   123,   141,   118,    -1,   117,   140,   238,   141,
    1032      118,    -1,   117,   140,   238,   173,   141,   118,    -1,   117,
    1033      140,     5,   237,   173,   141,   118,    -1,   117,   140,   238,
    1034        5,   173,   141,   118,    -1,   372,    -1,   373,   326,    -1,
    1035      374,   326,    -1,   158,    -1,   158,   238,    -1,   158,   371,
    1036       -1,   158,   238,   371,    -1,   115,   372,   116,   326,    -1,
    1037      363,    -1,   115,   372,   116,   363,    -1,   115,   373,   116,
    1038      364,    -1,   115,   373,   116,    -1,   115,   372,   116,   115,
    1039      140,   278,   141,   116,    -1,   115,   374,   116,    -1,   376,
    1040       -1,   384,    -1,   238,   384,    -1,   377,    -1,   378,    -1,
    1041      158,   236,    -1,   238,   158,   236,    -1,   158,   385,    -1,
    1042      238,   158,   385,    -1,   158,   375,    -1,   238,   158,   375,
    1043       -1,   117,   118,   236,    -1,   379,   236,    -1,   117,   118,
    1044      364,   236,    -1,   379,   364,   236,    -1,   364,   236,    -1,
    1045      117,   118,   377,    -1,   379,   377,    -1,   117,   118,   364,
    1046      377,    -1,   379,   364,   377,    -1,   364,   377,    -1,   117,
    1047      140,   238,   123,   141,   118,    -1,   117,   140,   238,   173,
    1048      141,   118,    -1,   117,   140,   242,   173,   141,   118,    -1,
    1049      117,   140,   242,   238,   173,   141,   118,    -1,   384,    -1,
    1050      238,   384,    -1,   381,    -1,   382,    -1,   383,    -1,   158,
    1051      235,    -1,   238,   158,   235,    -1,   158,   385,    -1,   238,
    1052      158,   385,    -1,   158,   380,    -1,   238,   158,   380,    -1,
    1053      117,   118,   235,    -1,   117,   118,   364,   235,    -1,   364,
    1054      235,    -1,   117,   118,   382,    -1,   117,   118,   364,   382,
    1055       -1,   364,   382,    -1,   117,   140,   277,   141,   118,    -1,
    1056      384,   115,   140,   274,   141,   116,    -1,   227,   115,   140,
    1057      274,   141,   116,    -1,    -1,   122,    -1,    -1,   137,   173,
    1058       -1
     907      30,    -1,    28,    -1,    29,    -1,   250,    -1,   245,   250,
     908      -1,   249,   247,    -1,   249,   247,   241,    -1,   249,   247,
     909     250,    -1,   251,    -1,   240,   252,   240,    -1,   248,    -1,
     910     241,   248,    -1,   251,   242,    -1,   251,   248,    -1,    34,
     911     118,   293,   119,    -1,    34,   118,   181,   119,    -1,    85,
     912     118,   293,   119,    -1,    85,   118,   181,   119,    -1,   254,
     913      -1,   245,   254,    -1,   253,   247,    -1,   253,   247,   241,
     914      -1,   259,    -1,   241,   259,    -1,   254,   242,    -1,   256,
     915      -1,   245,   256,    -1,   255,   247,    -1,   255,   247,   241,
     916      -1,   260,    -1,   241,   260,    -1,   256,   242,    -1,   258,
     917      -1,   245,   258,    -1,   257,   247,    -1,   257,   247,   241,
     918      -1,    81,    -1,   241,    81,    -1,   258,   242,    -1,   261,
     919      -1,   272,    -1,   263,    -1,   274,    -1,   264,   329,   123,
     920     265,   124,    -1,    -1,   264,   329,   291,   262,   123,   265,
     921     124,    -1,   264,   329,   118,   309,   119,   123,   265,   124,
     922      -1,   263,    -1,   264,   329,   291,    -1,   264,   329,   302,
     923      -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,    41,
     924      -1,    -1,   265,   266,    -1,   267,   141,    -1,    50,   267,
     925     141,    -1,   238,   268,   141,    -1,    50,   238,   268,   141,
     926      -1,   383,    -1,   383,   291,    -1,   267,   125,   291,    -1,
     927     267,   125,    -1,   269,    -1,   268,   125,   329,   269,    -1,
     928      -1,   271,    -1,   335,   270,    -1,   348,   270,    -1,   374,
     929      -1,    -1,   271,    -1,   139,   175,    -1,    36,   329,   123,
     930     275,   389,   124,    -1,    -1,    36,   329,   291,   273,   123,
     931     275,   389,   124,    -1,   274,    -1,    36,   329,   291,    -1,
     932     291,   276,    -1,   275,   125,   291,   276,    -1,    -1,   140,
     933     175,    -1,    -1,   278,    -1,   280,    -1,   279,    -1,   279,
     934     144,   125,   143,   280,    -1,   280,   144,   125,   143,   105,
     935      -1,   279,   144,   125,   143,   105,    -1,   284,    -1,   280,
     936     144,   125,   143,   284,    -1,   279,   144,   125,   143,   284,
     937      -1,   279,   144,   125,   143,   280,   144,   125,   143,   284,
     938      -1,   285,    -1,   280,   144,   125,   143,   285,    -1,    -1,
     939     282,    -1,   283,    -1,   283,   144,   125,   143,   105,    -1,
     940     287,    -1,   286,    -1,   283,   144,   125,   143,   287,    -1,
     941     283,   144,   125,   143,   286,    -1,   286,    -1,   379,   289,
     942     390,    -1,   387,   289,   390,    -1,   241,   387,   289,   390,
     943      -1,   229,    -1,   287,    -1,   379,    -1,   387,    -1,   241,
     944     387,    -1,   388,    -1,   237,   353,   390,    -1,   237,   357,
     945     390,    -1,   237,   390,    -1,   237,   368,   390,    -1,   148,
     946      -1,   288,   125,   148,    -1,   146,    -1,    81,    -1,    82,
     947      -1,   147,    -1,    81,    -1,    82,    -1,   148,    -1,    81,
     948      -1,    82,    -1,   383,    -1,   238,    -1,   238,   362,    -1,
     949     292,    -1,   388,    -1,    -1,   140,   295,    -1,   116,   295,
     950      -1,   176,    -1,   123,   296,   389,   124,    -1,    -1,   295,
     951      -1,   297,   295,    -1,   296,   125,   295,    -1,   296,   125,
     952     297,   295,    -1,   298,   139,    -1,   291,   139,    -1,   299,
     953      -1,   298,   299,    -1,   122,   291,    -1,   120,   143,   176,
     954     144,   121,    -1,   120,   143,   327,   144,   121,    -1,   120,
     955     143,   175,   105,   175,   144,   121,    -1,   122,   120,   143,
     956     156,   144,   121,    -1,   301,    -1,   245,   301,    -1,   300,
     957     247,    -1,   300,   247,   241,    -1,   302,    -1,   241,   302,
     958      -1,   301,   242,    -1,    82,   118,   309,   119,    -1,   304,
     959     390,    -1,   303,   125,   304,   390,    -1,    -1,   306,   291,
     960     305,   307,    -1,   238,   353,    -1,    42,    -1,    44,    -1,
     961      43,    -1,    45,    -1,    -1,   307,   308,    -1,   137,   291,
     962     118,   309,   119,    -1,   137,   123,   143,   315,   124,    -1,
     963     137,   118,   143,   303,   144,   119,   123,   143,   315,   124,
     964     118,   309,   119,    -1,   293,    -1,   176,    -1,   309,   125,
     965     293,    -1,   309,   125,   176,    -1,    42,   311,    -1,   246,
     966      42,   311,    -1,   310,   125,   311,    -1,   312,   307,    -1,
     967     312,   307,   140,   293,    -1,   291,    -1,   290,   118,   143,
     968     303,   144,   119,    -1,    46,   291,   118,   143,   303,   144,
     969     119,   123,   124,    -1,    -1,    46,   291,   118,   143,   303,
     970     144,   119,   123,   314,   315,   124,    -1,   316,    -1,   315,
     971     143,   316,    -1,   317,   144,   141,    -1,   318,   144,   141,
     972      -1,   227,    -1,   229,    -1,   317,   144,   125,   143,   289,
     973      -1,   238,   326,    -1,   318,   144,   125,   143,   326,    -1,
     974      -1,   320,    -1,   322,    -1,   320,   143,   322,    -1,    -1,
     975     320,    -1,   224,    -1,   324,    -1,    74,   118,   150,   119,
     976     141,    -1,    -1,     4,    88,   323,   123,   321,   124,    -1,
     977      50,   322,    -1,   325,    -1,   340,   185,    -1,   344,   143,
     978     219,   185,    -1,   228,   185,    -1,   236,   340,   185,    -1,
     979     241,   340,   185,    -1,   245,   340,   185,    -1,   245,   241,
     980     340,   185,    -1,   236,   344,   143,   219,   185,    -1,   241,
     981     344,   143,   219,   185,    -1,   245,   344,   143,   219,   185,
     982      -1,   245,   241,   344,   143,   219,   185,    -1,   335,    -1,
     983     348,    -1,   340,    -1,   175,   131,   175,    -1,    -1,    74,
     984     118,   150,   119,   329,    -1,    -1,   330,    -1,   331,    -1,
     985     330,   331,    -1,    49,   118,   118,   332,   119,   119,    -1,
     986     333,    -1,   332,   125,   333,    -1,    -1,   334,    -1,   334,
     987     118,   154,   119,    -1,    79,    -1,    81,    -1,    82,    -1,
     988      12,    -1,   336,   329,    -1,   337,    -1,   338,   329,    -1,
     989     339,   329,    -1,   146,    -1,   118,   336,   119,    -1,   161,
     990     335,    -1,   161,   241,   335,    -1,   118,   337,   119,   329,
     991      -1,   336,   366,    -1,   118,   337,   119,   366,    -1,   118,
     992     338,   119,   367,    -1,   118,   338,   119,    -1,   118,   337,
     993     119,   118,   143,   281,   144,   119,    -1,   118,   339,   119,
     994      -1,   341,   329,    -1,   342,    -1,   343,   329,    -1,   336,
     995     118,   143,   281,   144,   119,    -1,   118,   342,   119,   118,
     996     143,   281,   144,   119,    -1,   118,   341,   119,    -1,   161,
     997     340,    -1,   161,   241,   340,    -1,   118,   342,   119,    -1,
     998     118,   342,   119,   366,    -1,   118,   343,   119,   367,    -1,
     999     118,   343,   119,    -1,   345,    -1,   346,    -1,   347,    -1,
     1000     336,   118,   288,   119,    -1,   118,   346,   119,   118,   143,
     1001     281,   144,   119,    -1,   118,   345,   119,    -1,   161,   344,
     1002      -1,   161,   241,   344,    -1,   118,   346,   119,    -1,   118,
     1003     346,   119,   366,    -1,   118,   347,   119,   367,    -1,   118,
     1004     347,   119,    -1,   349,   329,    -1,   350,    -1,   351,   329,
     1005      -1,   352,   329,    -1,   358,    -1,   118,   349,   119,    -1,
     1006     161,   348,    -1,   161,   241,   348,    -1,   118,   350,   119,
     1007     329,    -1,   349,   366,    -1,   118,   350,   119,   366,    -1,
     1008     118,   351,   119,   367,    -1,   118,   351,   119,    -1,   349,
     1009     118,   143,   281,   144,   119,    -1,   118,   350,   119,   118,
     1010     143,   281,   144,   119,    -1,   118,   352,   119,    -1,   336,
     1011     329,    -1,   354,    -1,   355,   329,    -1,   356,   329,    -1,
     1012     161,   353,    -1,   161,   241,   353,    -1,   118,   354,   119,
     1013     329,    -1,   336,   372,    -1,   118,   354,   119,   366,    -1,
     1014     118,   355,   119,   367,    -1,   118,   355,   119,    -1,   336,
     1015     118,   143,   281,   144,   119,    -1,   118,   354,   119,   118,
     1016     143,   281,   144,   119,    -1,   118,   356,   119,    -1,   358,
     1017     329,    -1,   359,    -1,   360,   329,    -1,   361,   329,    -1,
     1018      81,    -1,    82,    -1,   161,   357,    -1,   161,   241,   357,
     1019      -1,   118,   359,   119,   329,    -1,   358,   372,    -1,   118,
     1020     359,   119,   372,    -1,   358,   118,   143,   281,   144,   119,
     1021      -1,   118,   359,   119,   118,   143,   281,   144,   119,    -1,
     1022     363,    -1,   364,   329,    -1,   365,   329,    -1,   161,    -1,
     1023     161,   241,    -1,   161,   362,    -1,   161,   241,   362,    -1,
     1024     118,   363,   119,   329,    -1,   366,    -1,   118,   363,   119,
     1025     366,    -1,   118,   364,   119,   367,    -1,   118,   364,   119,
     1026      -1,   118,   143,   281,   144,   119,    -1,   118,   363,   119,
     1027     118,   143,   281,   144,   119,    -1,   118,   365,   119,    -1,
     1028     120,   121,    -1,   120,   121,   367,    -1,   367,    -1,   120,
     1029     143,   176,   144,   121,    -1,   120,   143,   126,   144,   121,
     1030      -1,   367,   120,   143,   176,   144,   121,    -1,   367,   120,
     1031     143,   126,   144,   121,    -1,   369,    -1,   370,   329,    -1,
     1032     371,   329,    -1,   161,    -1,   161,   241,    -1,   161,   368,
     1033      -1,   161,   241,   368,    -1,   118,   369,   119,   329,    -1,
     1034     372,    -1,   118,   369,   119,   372,    -1,   118,   370,   119,
     1035     367,    -1,   118,   370,   119,    -1,   118,   143,   281,   144,
     1036     119,    -1,   118,   369,   119,   118,   143,   281,   144,   119,
     1037      -1,   118,   371,   119,    -1,   373,    -1,   373,   367,    -1,
     1038     367,    -1,   120,   121,    -1,   120,   143,   241,   126,   144,
     1039     121,    -1,   120,   143,   241,   144,   121,    -1,   120,   143,
     1040     241,   176,   144,   121,    -1,   120,   143,     5,   240,   176,
     1041     144,   121,    -1,   120,   143,   241,     5,   176,   144,   121,
     1042      -1,   375,    -1,   376,   329,    -1,   377,   329,    -1,   161,
     1043      -1,   161,   241,    -1,   161,   374,    -1,   161,   241,   374,
     1044      -1,   118,   375,   119,   329,    -1,   366,    -1,   118,   375,
     1045     119,   366,    -1,   118,   376,   119,   367,    -1,   118,   376,
     1046     119,    -1,   118,   375,   119,   118,   143,   281,   144,   119,
     1047      -1,   118,   377,   119,    -1,   379,    -1,   387,    -1,   241,
     1048     387,    -1,   380,    -1,   381,    -1,   161,   239,    -1,   241,
     1049     161,   239,    -1,   161,   388,    -1,   241,   161,   388,    -1,
     1050     161,   378,    -1,   241,   161,   378,    -1,   120,   121,   239,
     1051      -1,   382,   239,    -1,   120,   121,   367,   239,    -1,   382,
     1052     367,   239,    -1,   367,   239,    -1,   120,   121,   380,    -1,
     1053     382,   380,    -1,   120,   121,   367,   380,    -1,   382,   367,
     1054     380,    -1,   367,   380,    -1,   120,   143,   241,   126,   144,
     1055     121,    -1,   120,   143,   241,   176,   144,   121,    -1,   120,
     1056     143,   245,   176,   144,   121,    -1,   120,   143,   245,   241,
     1057     176,   144,   121,    -1,   387,    -1,   241,   387,    -1,   384,
     1058      -1,   385,    -1,   386,    -1,   161,   238,    -1,   241,   161,
     1059     238,    -1,   161,   388,    -1,   241,   161,   388,    -1,   161,
     1060     383,    -1,   241,   161,   383,    -1,   120,   121,   238,    -1,
     1061     120,   121,   367,   238,    -1,   367,   238,    -1,   120,   121,
     1062     385,    -1,   120,   121,   367,   385,    -1,   367,   385,    -1,
     1063     120,   143,   280,   144,   121,    -1,   387,   118,   143,   277,
     1064     144,   119,    -1,   230,   118,   143,   277,   144,   119,    -1,
     1065      -1,   125,    -1,    -1,   140,   176,    -1
    10591066};
    10601067
     
    10621069static const yytype_uint16 yyrline[] =
    10631070{
    1064        0,   328,   328,   332,   339,   340,   341,   342,   343,   347,
    1065      348,   349,   353,   354,   358,   359,   363,   364,   368,   372,
    1066      373,   384,   386,   388,   389,   391,   396,   397,   403,   405,
    1067      407,   409,   411,   413,   415,   417,   419,   421,   430,   431,
    1068      437,   438,   442,   443,   447,   448,   450,   452,   454,   456,
    1069      458,   463,   465,   467,   479,   480,   488,   491,   493,   495,
    1070      500,   513,   515,   517,   519,   521,   523,   525,   527,   529,
    1071      531,   533,   540,   541,   547,   548,   549,   550,   554,   555,
    1072      562,   563,   565,   567,   572,   573,   575,   580,   581,   583,
    1073      588,   589,   591,   593,   595,   600,   601,   603,   608,   609,
    1074      614,   615,   620,   621,   626,   627,   632,   633,   638,   639,
    1075      642,   649,   654,   655,   663,   664,   668,   669,   670,   671,
    1076      672,   673,   674,   675,   676,   677,   678,   679,   689,   691,
    1077      696,   697,   702,   703,   709,   710,   716,   717,   718,   719,
    1078      720,   721,   722,   723,   724,   734,   741,   743,   754,   755,
    1079      760,   762,   767,   769,   774,   778,   779,   784,   789,   792,
    1080      794,   796,   806,   808,   819,   820,   822,   826,   828,   832,
    1081      833,   838,   839,   843,   848,   849,   853,   855,   861,   862,
    1082      866,   868,   870,   872,   878,   879,   883,   885,   890,   892,
    1083      894,   899,   901,   906,   908,   912,   915,   919,   922,   926,
    1084      928,   930,   932,   937,   939,   941,   946,   948,   950,   952,
    1085      954,   959,   961,   963,   965,   970,   978,   979,   984,   986,
    1086      991,   995,   997,   999,  1001,  1003,  1009,  1010,  1016,  1017,
    1087     1021,  1022,  1027,  1029,  1035,  1036,  1038,  1044,  1049,  1059,
    1088     1061,  1065,  1066,  1071,  1073,  1077,  1078,  1082,  1084,  1088,
    1089     1089,  1093,  1094,  1098,  1099,  1114,  1115,  1116,  1117,  1118,
    1090     1122,  1127,  1134,  1144,  1149,  1154,  1162,  1167,  1172,  1177,
    1091     1182,  1212,  1217,  1224,  1226,  1233,  1238,  1243,  1254,  1259,
    1092     1264,  1269,  1274,  1283,  1288,  1318,  1322,  1323,  1324,  1330,
    1093     1335,  1343,  1344,  1345,  1346,  1355,  1356,  1357,  1358,  1362,
    1094     1363,  1364,  1365,  1374,  1375,  1376,  1377,  1382,  1383,  1392,
    1095     1393,  1398,  1399,  1403,  1405,  1407,  1409,  1411,  1413,  1416,
    1096     1415,  1427,  1428,  1430,  1440,  1441,  1446,  1448,  1450,  1452,
    1097     1454,  1457,  1459,  1461,  1466,  1468,  1470,  1472,  1474,  1476,
    1098     1478,  1480,  1482,  1484,  1486,  1488,  1490,  1492,  1494,  1500,
    1099     1501,  1503,  1505,  1507,  1512,  1513,  1519,  1520,  1522,  1524,
    1100     1529,  1531,  1533,  1535,  1540,  1541,  1543,  1545,  1550,  1551,
    1101     1553,  1558,  1559,  1561,  1563,  1568,  1569,  1571,  1576,  1577,
    1102     1579,  1581,  1586,  1588,  1590,  1595,  1596,  1600,  1601,  1605,
    1103     1608,  1607,  1611,  1613,  1617,  1622,  1627,  1629,  1635,  1636,
    1104     1641,  1642,  1647,  1650,  1658,  1659,  1661,  1663,  1668,  1669,
    1105     1675,  1676,  1678,  1681,  1684,  1689,  1690,  1695,  1700,  1703,
    1106     1702,  1706,  1710,  1718,  1720,  1726,  1727,  1735,  1736,  1740,
    1107     1741,  1742,  1744,  1746,  1753,  1754,  1756,  1758,  1763,  1764,
    1108     1770,  1771,  1775,  1776,  1781,  1782,  1783,  1785,  1793,  1794,
    1109     1796,  1799,  1801,  1805,  1806,  1807,  1809,  1811,  1816,  1821,
    1110     1829,  1831,  1840,  1842,  1847,  1848,  1849,  1853,  1854,  1855,
    1111     1859,  1860,  1861,  1865,  1866,  1867,  1872,  1873,  1878,  1879,
    1112     1881,  1886,  1887,  1892,  1893,  1894,  1895,  1896,  1911,  1912,
    1113     1917,  1918,  1924,  1926,  1929,  1931,  1933,  1956,  1957,  1959,
    1114     1961,  1966,  1967,  1969,  1974,  1979,  1980,  1986,  1985,  1989,
    1115     1993,  1995,  1997,  1999,  2005,  2006,  2011,  2016,  2018,  2023,
    1116     2025,  2026,  2028,  2033,  2035,  2037,  2042,  2044,  2049,  2054,
    1117     2062,  2068,  2067,  2081,  2082,  2087,  2088,  2092,  2097,  2102,
    1118     2110,  2115,  2126,  2127,  2132,  2133,  2139,  2140,  2144,  2145,
    1119     2146,  2151,  2150,  2161,  2169,  2175,  2181,  2190,  2196,  2202,
    1120     2208,  2214,  2222,  2228,  2236,  2242,  2251,  2252,  2253,  2257,
    1121     2263,  2264,  2274,  2275,  2279,  2280,  2285,  2290,  2291,  2297,
    1122     2298,  2300,  2305,  2306,  2307,  2308,  2343,  2345,  2346,  2348,
    1123     2353,  2358,  2363,  2365,  2367,  2372,  2374,  2376,  2378,  2383,
    1124     2385,  2394,  2396,  2397,  2402,  2404,  2406,  2411,  2413,  2415,
    1125     2420,  2422,  2424,  2436,  2437,  2438,  2442,  2444,  2446,  2451,
    1126     2453,  2455,  2460,  2462,  2464,  2479,  2481,  2482,  2484,  2489,
    1127     2490,  2495,  2497,  2499,  2504,  2506,  2508,  2510,  2515,  2517,
    1128     2519,  2529,  2531,  2532,  2534,  2539,  2541,  2543,  2548,  2550,
    1129     2552,  2554,  2559,  2561,  2563,  2576,  2578,  2579,  2581,  2586,
    1130     2591,  2599,  2601,  2603,  2608,  2610,  2615,  2617,  2634,  2635,
    1131     2637,  2642,  2644,  2646,  2648,  2650,  2655,  2656,  2658,  2660,
    1132     2665,  2667,  2669,  2675,  2677,  2679,  2683,  2685,  2687,  2689,
    1133     2723,  2724,  2726,  2731,  2733,  2735,  2737,  2739,  2744,  2745,
    1134     2747,  2749,  2754,  2756,  2758,  2764,  2765,  2767,  2776,  2779,
    1135     2781,  2784,  2786,  2788,  2802,  2803,  2805,  2810,  2812,  2814,
    1136     2816,  2818,  2823,  2824,  2826,  2828,  2833,  2835,  2843,  2844,
    1137     2845,  2850,  2851,  2856,  2858,  2860,  2862,  2864,  2866,  2873,
    1138     2875,  2877,  2879,  2881,  2884,  2886,  2888,  2890,  2892,  2897,
    1139     2899,  2901,  2906,  2932,  2933,  2935,  2939,  2940,  2944,  2946,
    1140     2948,  2950,  2952,  2954,  2961,  2963,  2965,  2967,  2969,  2971,
    1141     2976,  2983,  2985,  3003,  3005,  3010,  3011
     1071       0,   330,   330,   334,   341,   342,   343,   344,   345,   349,
     1072     350,   351,   355,   356,   360,   361,   365,   366,   370,   374,
     1073     375,   386,   388,   390,   391,   393,   398,   399,   405,   407,
     1074     409,   411,   413,   415,   417,   419,   421,   423,   432,   433,
     1075     439,   440,   444,   445,   449,   450,   452,   454,   456,   458,
     1076     460,   465,   467,   469,   481,   482,   490,   493,   495,   497,
     1077     502,   515,   517,   519,   521,   523,   525,   527,   529,   531,
     1078     533,   535,   542,   543,   549,   550,   551,   552,   556,   557,
     1079     564,   565,   567,   569,   574,   575,   577,   582,   583,   585,
     1080     590,   591,   593,   595,   597,   602,   603,   605,   610,   611,
     1081     616,   617,   622,   623,   628,   629,   634,   635,   640,   641,
     1082     644,   651,   656,   657,   665,   666,   670,   671,   672,   673,
     1083     674,   675,   676,   677,   678,   679,   680,   681,   691,   693,
     1084     698,   699,   704,   705,   711,   712,   718,   719,   720,   721,
     1085     722,   723,   724,   725,   726,   736,   743,   745,   756,   757,
     1086     762,   764,   769,   771,   776,   780,   781,   786,   791,   794,
     1087     796,   798,   808,   810,   821,   822,   824,   828,   830,   834,
     1088     835,   840,   841,   845,   850,   851,   855,   857,   863,   864,
     1089     868,   870,   872,   874,   880,   881,   885,   887,   892,   894,
     1090     896,   901,   903,   908,   910,   914,   917,   921,   924,   928,
     1091     930,   932,   934,   939,   941,   943,   948,   950,   952,   954,
     1092     956,   961,   963,   965,   967,   972,   980,   981,   986,   988,
     1093     993,   997,   999,  1001,  1003,  1005,  1011,  1012,  1018,  1019,
     1094    1023,  1024,  1029,  1031,  1037,  1038,  1040,  1046,  1051,  1061,
     1095    1063,  1067,  1068,  1073,  1075,  1079,  1080,  1084,  1086,  1090,
     1096    1091,  1095,  1096,  1100,  1101,  1116,  1117,  1118,  1119,  1120,
     1097    1124,  1129,  1136,  1146,  1151,  1156,  1164,  1169,  1174,  1179,
     1098    1184,  1214,  1219,  1226,  1228,  1235,  1240,  1245,  1256,  1261,
     1099    1266,  1271,  1276,  1285,  1290,  1320,  1324,  1325,  1326,  1332,
     1100    1337,  1345,  1346,  1347,  1348,  1357,  1358,  1359,  1360,  1364,
     1101    1365,  1366,  1367,  1376,  1377,  1378,  1379,  1384,  1385,  1394,
     1102    1395,  1400,  1401,  1405,  1407,  1409,  1411,  1413,  1415,  1418,
     1103    1417,  1429,  1430,  1432,  1442,  1443,  1448,  1450,  1452,  1454,
     1104    1456,  1459,  1461,  1463,  1468,  1470,  1472,  1474,  1476,  1478,
     1105    1480,  1482,  1484,  1486,  1488,  1490,  1492,  1494,  1496,  1502,
     1106    1503,  1505,  1507,  1509,  1514,  1515,  1521,  1522,  1524,  1526,
     1107    1531,  1533,  1535,  1537,  1542,  1543,  1545,  1547,  1552,  1553,
     1108    1555,  1560,  1561,  1563,  1565,  1570,  1571,  1573,  1578,  1579,
     1109    1581,  1583,  1588,  1590,  1592,  1597,  1598,  1602,  1603,  1607,
     1110    1610,  1609,  1613,  1615,  1619,  1624,  1629,  1631,  1633,  1635,
     1111    1637,  1643,  1644,  1649,  1650,  1655,  1658,  1666,  1667,  1669,
     1112    1671,  1676,  1677,  1683,  1684,  1686,  1689,  1692,  1697,  1698,
     1113    1703,  1708,  1711,  1710,  1714,  1718,  1726,  1728,  1734,  1735,
     1114    1743,  1744,  1748,  1749,  1750,  1752,  1754,  1761,  1762,  1764,
     1115    1766,  1771,  1772,  1778,  1779,  1783,  1784,  1789,  1790,  1791,
     1116    1793,  1801,  1802,  1804,  1807,  1809,  1813,  1814,  1815,  1817,
     1117    1819,  1824,  1829,  1837,  1839,  1848,  1850,  1855,  1856,  1857,
     1118    1861,  1862,  1863,  1867,  1868,  1869,  1873,  1874,  1875,  1880,
     1119    1881,  1886,  1887,  1889,  1894,  1895,  1900,  1901,  1902,  1903,
     1120    1904,  1919,  1920,  1925,  1926,  1932,  1934,  1937,  1939,  1941,
     1121    1964,  1965,  1967,  1969,  1974,  1975,  1977,  1982,  1987,  1988,
     1122    1994,  1993,  1997,  2001,  2003,  2005,  2007,  2013,  2014,  2019,
     1123    2024,  2026,  2031,  2033,  2034,  2036,  2041,  2043,  2045,  2050,
     1124    2052,  2057,  2062,  2070,  2076,  2075,  2089,  2090,  2095,  2096,
     1125    2100,  2105,  2110,  2118,  2123,  2134,  2135,  2140,  2141,  2147,
     1126    2148,  2152,  2153,  2154,  2159,  2158,  2169,  2177,  2183,  2189,
     1127    2198,  2204,  2210,  2216,  2222,  2230,  2236,  2244,  2250,  2259,
     1128    2260,  2261,  2265,  2271,  2272,  2282,  2283,  2287,  2288,  2293,
     1129    2298,  2299,  2305,  2306,  2308,  2313,  2314,  2315,  2316,  2351,
     1130    2353,  2354,  2356,  2361,  2366,  2371,  2373,  2375,  2380,  2382,
     1131    2384,  2386,  2391,  2393,  2402,  2404,  2405,  2410,  2412,  2414,
     1132    2419,  2421,  2423,  2428,  2430,  2432,  2444,  2445,  2446,  2450,
     1133    2452,  2454,  2459,  2461,  2463,  2468,  2470,  2472,  2487,  2489,
     1134    2490,  2492,  2497,  2498,  2503,  2505,  2507,  2512,  2514,  2516,
     1135    2518,  2523,  2525,  2527,  2537,  2539,  2540,  2542,  2547,  2549,
     1136    2551,  2556,  2558,  2560,  2562,  2567,  2569,  2571,  2584,  2586,
     1137    2587,  2589,  2594,  2599,  2607,  2609,  2611,  2616,  2618,  2623,
     1138    2625,  2642,  2643,  2645,  2650,  2652,  2654,  2656,  2658,  2663,
     1139    2664,  2666,  2668,  2673,  2675,  2677,  2683,  2685,  2687,  2691,
     1140    2693,  2695,  2697,  2731,  2732,  2734,  2739,  2741,  2743,  2745,
     1141    2747,  2752,  2753,  2755,  2757,  2762,  2764,  2766,  2772,  2773,
     1142    2775,  2784,  2787,  2789,  2792,  2794,  2796,  2810,  2811,  2813,
     1143    2818,  2820,  2822,  2824,  2826,  2831,  2832,  2834,  2836,  2841,
     1144    2843,  2851,  2852,  2853,  2858,  2859,  2864,  2866,  2868,  2870,
     1145    2872,  2874,  2881,  2883,  2885,  2887,  2889,  2892,  2894,  2896,
     1146    2898,  2900,  2905,  2907,  2909,  2914,  2940,  2941,  2943,  2947,
     1147    2948,  2952,  2954,  2956,  2958,  2960,  2962,  2969,  2971,  2973,
     1148    2975,  2977,  2979,  2984,  2991,  2993,  3011,  3013,  3018,  3019
    11421149};
    11431150#endif
     
    11531160  "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE", "SIGNED", "UNSIGNED",
    11541161  "ZERO_T", "ONE_T", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF",
    1155   "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", "FTYPE", "DTYPE", "TTYPE",
    1156   "TRAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE",
    1157   "SWITCH", "CASE", "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE",
    1158   "GOTO", "RETURN", "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY",
    1159   "CATCH", "CATCHRESUME", "FINALLY", "THROW", "THROWRESUME", "AT", "ASM",
    1160   "ALIGNAS", "ALIGNOF", "GENERIC", "STATICASSERT", "IDENTIFIER",
    1161   "QUOTED_IDENTIFIER", "TYPEDEFname", "TYPEGENname", "ATTR_IDENTIFIER",
    1162   "ATTR_TYPEDEFname", "ATTR_TYPEGENname", "INTEGERconstant",
    1163   "CHARACTERconstant", "STRINGliteral", "REALDECIMALconstant",
    1164   "REALFRACTIONconstant", "FLOATINGconstant", "ZERO", "ONE", "ARROW",
    1165   "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ", "NE", "ANDAND", "OROR",
    1166   "ELLIPSIS", "MULTassign", "DIVassign", "MODassign", "PLUSassign",
    1167   "MINUSassign", "LSassign", "RSassign", "ANDassign", "ERassign",
    1168   "ORassign", "ATassign", "THEN", "'('", "')'", "'['", "']'", "'.'", "'{'",
    1169   "'}'", "','", "'*'", "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'",
    1170   "'<'", "'>'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "$accept",
    1171   "push", "pop", "constant", "identifier", "no_01_identifier",
    1172   "no_attr_identifier", "zero_one", "string_literal",
    1173   "string_literal_list", "primary_expression", "postfix_expression",
    1174   "argument_expression_list", "argument_expression", "field_list", "field",
    1175   "field_name", "fraction_constants", "unary_expression",
    1176   "ptrref_operator", "unary_operator", "cast_expression",
    1177   "multiplicative_expression", "additive_expression", "shift_expression",
    1178   "relational_expression", "equality_expression", "AND_expression",
    1179   "exclusive_OR_expression", "inclusive_OR_expression",
     1162  "LABEL", "ENUM", "STRUCT", "UNION", "COROUTINE", "MONITOR", "THREAD",
     1163  "OTYPE", "FTYPE", "DTYPE", "TTYPE", "TRAIT", "SIZEOF", "OFFSETOF",
     1164  "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT",
     1165  "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE",
     1166  "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
     1167  "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
     1168  "GENERIC", "STATICASSERT", "IDENTIFIER", "QUOTED_IDENTIFIER",
     1169  "TYPEDEFname", "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname",
     1170  "ATTR_TYPEGENname", "INTEGERconstant", "CHARACTERconstant",
     1171  "STRINGliteral", "REALDECIMALconstant", "REALFRACTIONconstant",
     1172  "FLOATINGconstant", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS",
     1173  "LE", "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
     1174  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
     1175  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
     1176  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
     1177  "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
     1178  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
     1179  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
     1180  "string_literal", "string_literal_list", "primary_expression",
     1181  "postfix_expression", "argument_expression_list", "argument_expression",
     1182  "field_list", "field", "field_name", "fraction_constants",
     1183  "unary_expression", "ptrref_operator", "unary_operator",
     1184  "cast_expression", "multiplicative_expression", "additive_expression",
     1185  "shift_expression", "relational_expression", "equality_expression",
     1186  "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",
    11801187  "logical_AND_expression", "logical_OR_expression",
    11811188  "conditional_expression", "constant_expression", "assignment_expression",
     
    12771284     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    12781285     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    1279      365,   366,   367,   368,   369,    40,    41,    91,    93,    46,
    1280      123,   125,    44,    42,    38,    43,    45,    33,   126,    47,
    1281       37,    60,    62,    94,   124,    63,    58,    61,    59
     1286     365,   366,   367,   368,   369,   370,   371,   372,    40,    41,
     1287      91,    93,    46,   123,   125,    44,    42,    38,    43,    45,
     1288      33,   126,    47,    37,    60,    62,    94,   124,    63,    58,
     1289      61,    59
    12821290};
    12831291# endif
     
    12861294static const yytype_uint16 yyr1[] =
    12871295{
    1288        0,   139,   140,   141,   142,   142,   142,   142,   142,   143,
    1289      143,   143,   144,   144,   145,   145,   146,   146,   147,   148,
    1290      148,   149,   149,   149,   149,   149,   150,   150,   150,   150,
    1291      150,   150,   150,   150,   150,   150,   150,   150,   151,   151,
    1292      152,   152,   153,   153,   154,   154,   154,   154,   154,   154,
    1293      154,   155,   155,   155,   156,   156,   157,   157,   157,   157,
    1294      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
    1295      157,   157,   158,   158,   159,   159,   159,   159,   160,   160,
    1296      161,   161,   161,   161,   162,   162,   162,   163,   163,   163,
    1297      164,   164,   164,   164,   164,   165,   165,   165,   166,   166,
    1298      167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
    1299      171,   172,   173,   173,   174,   174,   175,   175,   175,   175,
    1300      175,   175,   175,   175,   175,   175,   175,   175,   176,   176,
    1301      177,   177,   178,   178,   179,   179,   180,   180,   180,   180,
    1302      180,   180,   180,   180,   180,   181,   182,   182,   183,   183,
    1303      184,   184,   184,   184,   184,   185,   185,   186,   187,   187,
    1304      187,   187,   187,   187,   188,   188,   188,   189,   189,   190,
    1305      190,   191,   191,   192,   193,   193,   194,   194,   195,   195,
    1306      196,   196,   196,   196,   197,   197,   198,   198,   199,   199,
    1307      199,   200,   200,   201,   201,   201,   201,   201,   201,   201,
    1308      201,   201,   201,   202,   202,   202,   203,   203,   203,   203,
    1309      203,   204,   204,   204,   204,   205,   206,   206,   206,   206,
    1310      206,   207,   207,   207,   207,   207,   208,   208,   209,   209,
    1311      210,   210,   211,   211,   212,   212,   212,   213,   213,   214,
    1312      214,   215,   215,   216,   216,   217,   217,   218,   218,   219,
    1313      219,   220,   220,   221,   221,   222,   222,   222,   222,   222,
    1314      223,   223,   223,   224,   224,   224,   225,   225,   225,   225,
    1315      225,   226,   226,   227,   227,   228,   228,   228,   229,   229,
    1316      229,   229,   229,   230,   230,   231,   231,   231,   231,   232,
    1317      232,   233,   233,   233,   233,   234,   234,   234,   234,   235,
    1318      235,   235,   235,   236,   236,   236,   236,   237,   237,   238,
    1319      238,   239,   239,   240,   240,   240,   240,   240,   240,   241,
    1320      240,   242,   242,   242,   243,   243,   244,   244,   244,   244,
    1321      244,   244,   244,   244,   245,   245,   245,   245,   245,   245,
    1322      245,   245,   245,   245,   245,   245,   245,   245,   245,   246,
    1323      246,   246,   246,   246,   247,   247,   248,   248,   248,   248,
    1324      249,   249,   249,   249,   250,   250,   250,   250,   251,   251,
    1325      251,   252,   252,   252,   252,   253,   253,   253,   254,   254,
    1326      254,   254,   255,   255,   255,   256,   256,   257,   257,   258,
    1327      259,   258,   258,   258,   260,   260,   261,   261,   262,   262,
    1328      263,   263,   263,   263,   264,   264,   264,   264,   265,   265,
    1329      266,   266,   266,   266,   266,   267,   267,   268,   269,   270,
    1330      269,   269,   271,   272,   272,   273,   273,   274,   274,   275,
    1331      275,   275,   275,   275,   276,   276,   276,   276,   277,   277,
    1332      278,   278,   279,   279,   280,   280,   280,   280,   281,   281,
    1333      281,   281,   281,   282,   282,   282,   282,   282,   283,   283,
    1334      284,   284,   285,   285,   286,   286,   286,   287,   287,   287,
    1335      288,   288,   288,   289,   289,   289,   290,   290,   291,   291,
    1336      291,   292,   292,   293,   293,   293,   293,   293,   294,   294,
    1337      295,   295,   296,   296,   296,   296,   296,   297,   297,   297,
    1338      297,   298,   298,   298,   299,   300,   300,   302,   301,   301,
    1339      303,   303,   303,   303,   304,   304,   305,   305,   305,   306,
    1340      306,   306,   306,   307,   307,   307,   308,   308,   309,   309,
    1341      310,   311,   310,   312,   312,   313,   313,   314,   314,   314,
    1342      315,   315,   316,   316,   317,   317,   318,   318,   319,   319,
    1343      319,   320,   319,   319,   321,   321,   321,   322,   322,   322,
    1344      322,   322,   322,   322,   322,   322,   323,   323,   323,   324,
    1345      325,   325,   326,   326,   327,   327,   328,   329,   329,   330,
    1346      330,   330,   331,   331,   331,   331,   332,   332,   332,   332,
    1347      333,   333,   334,   334,   334,   335,   335,   335,   335,   336,
    1348      336,   337,   337,   337,   338,   338,   338,   339,   339,   339,
    1349      340,   340,   340,   341,   341,   341,   342,   342,   342,   343,
    1350      343,   343,   344,   344,   344,   345,   345,   345,   345,   346,
    1351      346,   347,   347,   347,   348,   348,   348,   348,   349,   349,
    1352      349,   350,   350,   350,   350,   351,   351,   351,   352,   352,
    1353      352,   352,   353,   353,   353,   354,   354,   354,   354,   355,
    1354      355,   356,   356,   356,   357,   357,   358,   358,   359,   359,
    1355      359,   360,   360,   360,   360,   360,   361,   361,   361,   361,
    1356      362,   362,   362,   363,   363,   363,   364,   364,   364,   364,
    1357      365,   365,   365,   366,   366,   366,   366,   366,   367,   367,
    1358      367,   367,   368,   368,   368,   369,   369,   369,   370,   370,
    1359      370,   370,   370,   370,   371,   371,   371,   372,   372,   372,
    1360      372,   372,   373,   373,   373,   373,   374,   374,   375,   375,
    1361      375,   376,   376,   377,   377,   377,   377,   377,   377,   378,
    1362      378,   378,   378,   378,   378,   378,   378,   378,   378,   379,
    1363      379,   379,   379,   380,   380,   380,   381,   381,   382,   382,
    1364      382,   382,   382,   382,   383,   383,   383,   383,   383,   383,
    1365      384,   385,   385,   386,   386,   387,   387
     1296       0,   142,   143,   144,   145,   145,   145,   145,   145,   146,
     1297     146,   146,   147,   147,   148,   148,   149,   149,   150,   151,
     1298     151,   152,   152,   152,   152,   152,   153,   153,   153,   153,
     1299     153,   153,   153,   153,   153,   153,   153,   153,   154,   154,
     1300     155,   155,   156,   156,   157,   157,   157,   157,   157,   157,
     1301     157,   158,   158,   158,   159,   159,   160,   160,   160,   160,
     1302     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
     1303     160,   160,   161,   161,   162,   162,   162,   162,   163,   163,
     1304     164,   164,   164,   164,   165,   165,   165,   166,   166,   166,
     1305     167,   167,   167,   167,   167,   168,   168,   168,   169,   169,
     1306     170,   170,   171,   171,   172,   172,   173,   173,   174,   174,
     1307     174,   175,   176,   176,   177,   177,   178,   178,   178,   178,
     1308     178,   178,   178,   178,   178,   178,   178,   178,   179,   179,
     1309     180,   180,   181,   181,   182,   182,   183,   183,   183,   183,
     1310     183,   183,   183,   183,   183,   184,   185,   185,   186,   186,
     1311     187,   187,   187,   187,   187,   188,   188,   189,   190,   190,
     1312     190,   190,   190,   190,   191,   191,   191,   192,   192,   193,
     1313     193,   194,   194,   195,   196,   196,   197,   197,   198,   198,
     1314     199,   199,   199,   199,   200,   200,   201,   201,   202,   202,
     1315     202,   203,   203,   204,   204,   204,   204,   204,   204,   204,
     1316     204,   204,   204,   205,   205,   205,   206,   206,   206,   206,
     1317     206,   207,   207,   207,   207,   208,   209,   209,   209,   209,
     1318     209,   210,   210,   210,   210,   210,   211,   211,   212,   212,
     1319     213,   213,   214,   214,   215,   215,   215,   216,   216,   217,
     1320     217,   218,   218,   219,   219,   220,   220,   221,   221,   222,
     1321     222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
     1322     226,   226,   226,   227,   227,   227,   228,   228,   228,   228,
     1323     228,   229,   229,   230,   230,   231,   231,   231,   232,   232,
     1324     232,   232,   232,   233,   233,   234,   234,   234,   234,   235,
     1325     235,   236,   236,   236,   236,   237,   237,   237,   237,   238,
     1326     238,   238,   238,   239,   239,   239,   239,   240,   240,   241,
     1327     241,   242,   242,   243,   243,   243,   243,   243,   243,   244,
     1328     243,   245,   245,   245,   246,   246,   247,   247,   247,   247,
     1329     247,   247,   247,   247,   248,   248,   248,   248,   248,   248,
     1330     248,   248,   248,   248,   248,   248,   248,   248,   248,   249,
     1331     249,   249,   249,   249,   250,   250,   251,   251,   251,   251,
     1332     252,   252,   252,   252,   253,   253,   253,   253,   254,   254,
     1333     254,   255,   255,   255,   255,   256,   256,   256,   257,   257,
     1334     257,   257,   258,   258,   258,   259,   259,   260,   260,   261,
     1335     262,   261,   261,   261,   263,   263,   264,   264,   264,   264,
     1336     264,   265,   265,   266,   266,   266,   266,   267,   267,   267,
     1337     267,   268,   268,   269,   269,   269,   269,   269,   270,   270,
     1338     271,   272,   273,   272,   272,   274,   275,   275,   276,   276,
     1339     277,   277,   278,   278,   278,   278,   278,   279,   279,   279,
     1340     279,   280,   280,   281,   281,   282,   282,   283,   283,   283,
     1341     283,   284,   284,   284,   284,   284,   285,   285,   285,   285,
     1342     285,   286,   286,   287,   287,   288,   288,   289,   289,   289,
     1343     290,   290,   290,   291,   291,   291,   292,   292,   292,   293,
     1344     293,   294,   294,   294,   295,   295,   296,   296,   296,   296,
     1345     296,   297,   297,   298,   298,   299,   299,   299,   299,   299,
     1346     300,   300,   300,   300,   301,   301,   301,   302,   303,   303,
     1347     305,   304,   304,   306,   306,   306,   306,   307,   307,   308,
     1348     308,   308,   309,   309,   309,   309,   310,   310,   310,   311,
     1349     311,   312,   312,   313,   314,   313,   315,   315,   316,   316,
     1350     317,   317,   317,   318,   318,   319,   319,   320,   320,   321,
     1351     321,   322,   322,   322,   323,   322,   322,   324,   324,   324,
     1352     325,   325,   325,   325,   325,   325,   325,   325,   325,   326,
     1353     326,   326,   327,   328,   328,   329,   329,   330,   330,   331,
     1354     332,   332,   333,   333,   333,   334,   334,   334,   334,   335,
     1355     335,   335,   335,   336,   336,   337,   337,   337,   338,   338,
     1356     338,   338,   339,   339,   340,   340,   340,   341,   341,   341,
     1357     342,   342,   342,   343,   343,   343,   344,   344,   344,   345,
     1358     345,   345,   346,   346,   346,   347,   347,   347,   348,   348,
     1359     348,   348,   349,   349,   350,   350,   350,   351,   351,   351,
     1360    &n