Changeset e7aed49


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

small lex/parsing updates and remove := operator as it is unnecessary

Location:
src/Parser
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.cc

    r8b52686 re7aed49  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 181
    385 #define YY_END_OF_BUFFER 182
     384#define YY_NUM_RULES 180
     385#define YY_END_OF_BUFFER 181
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[889] =
     393static yyconst flex_int16_t yy_accept[888] =
    394394    {   0,
    395395        0,    0,    0,    0,    0,    0,  115,  115,  118,  118,
    396       182,  180,    7,    9,    8,  138,  117,  102,  143,  146,
     396      181,  179,    7,    9,    8,  138,  117,  102,  143,  146,
    397397      114,  125,  126,  141,  139,  129,  140,  132,  142,  107,
    398       108,  109,  130,  131,  148,  150,  149,  151,  180,  102,
    399       123,  180,  124,  144,  102,  104,  102,  102,  102,  102,
     398      108,  109,  130,  131,  148,  150,  149,  151,  179,  102,
     399      123,  179,  124,  144,  102,  104,  102,  102,  102,  102,
    400400      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    401       102,  102,  127,  147,  128,  145,    7,  180,    4,    4,
    402       181,  105,  181,  106,  115,  116,  122,  118,  119,    7,
    403         9,    0,    8,  155,  175,  102,    0,  167,  137,  160,
     401      102,  102,  127,  147,  128,  145,    7,  179,    4,    4,
     402      180,  105,  180,  106,  115,  116,  122,  118,  119,    7,
     403        9,    0,    8,  155,  174,  102,    0,  167,  137,  160,
    404404      168,  165,  152,  163,  153,  164,  162,    0,  112,    3,
    405405
    406406        0,  166,  112,  110,    0,    0,  110,  110,    0,    0,
    407       110,  109,  109,  109,    0,  109,  174,  135,  136,  134,
    408       156,  158,  154,  159,  157,    0,    0,    0,    0,    0,
     407      110,  109,  109,  109,    0,  109,  135,  136,  134,  156,
     408      158,  154,  159,  157,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
     410      173,    0,  117,  114,  102,    0,    0,  170,    0,  102,
     411      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     412      102,  102,  102,  102,  102,  102,   38,  102,  102,  102,
     413      102,  102,  102,  102,  102,  102,  102,   56,  102,  102,
     414      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     415      102,  102,  102,  102,  169,  161,    7,    0,    0,    0,
     416
     417        2,    0,    5,  105,    0,    0,    0,  115,    0,  121,
     418      120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
    409419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    410       103,  173,    0,  117,  114,  102,    0,    0,  170,    0,
     420        0,  133,  112,  112,    0,  112,  112,    0,    0,    6,
     421        0,  110,    0,    0,    0,  112,    0,  110,  110,  110,
     422      110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
     423      171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
     424        0,    0,    0,    0,    0,    0,    0,  102,   17,  102,
    411425      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    412       102,  102,  102,  102,  102,  102,  102,   38,  102,  102,
    413       102,  102,  102,  102,  102,  102,  102,  102,   56,  102,
     426      102,  102,  102,  102,  102,  102,  102,   14,  102,  102,
     427
    414428      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    415       102,  102,  102,  102,  102,  169,  161,    7,    0,    0,
    416 
    417         0,    2,    0,    5,  105,    0,    0,    0,  115,    0,
    418       121,  120,  120,    0,    0,    0,  118,    0,    0,    0,
     429      102,  102,  102,  102,  102,  102,   50,  102,  102,  102,
     430       63,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     431      102,  102,  102,  102,  102,   89,  102,  102,  102,  102,
     432      102,  102,  102,    0,    0,    0,    0,    0,    0,    0,
     433        0,  120,    0,    0,    0,    0,    0,  120,    0,    0,
     434      178,    0,    0,    0,    0,    0,    0,    0,  112,    0,
     435      112,    0,  112,    0,    0,  112,    0,  110,  110,    0,
     436        0,  111,  111,    0,  111,    0,  111,  109,  109,    0,
     437        0,    0,    0,    0,    0,    0,    0,    0,    0,  176,
     438
     439      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     440      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     441      102,  102,  102,   21,  102,   24,  102,   27,  102,  102,
     442      102,  102,  102,  102,  102,   41,  102,   43,  102,  102,
     443      102,  102,  102,  102,  102,   55,  102,   66,  102,  102,
     444      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     445      102,  102,  102,  102,   97,  102,  102,    0,    0,    0,
    419446        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,    0,  133,  112,  112,    0,  112,  112,    0,    0,
    421         6,    0,  110,    0,    0,    0,  112,    0,  110,  110,
    422       110,  110,    0,  111,    0,    0,  109,  109,  109,  109,
    423         0,  171,  172,    0,  178,  176,    0,    0,    0,  103,
    424         0,    0,    0,    0,    0,    0,    0,    0,  102,   17,
     447        0,  120,    0,    0,    0,    0,    0,  112,    0,    0,
     448        0,    0,    0,    0,  111,  111,    0,  113,    0,  111,
     449
     450      111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     451        0,    0,    0,    0,  102,  102,   22,  102,  102,  102,
     452      102,  102,  102,  102,   15,  102,  102,  102,  102,  102,
     453      102,  102,  102,  102,  102,  102,  102,  102,  102,   23,
     454       25,  102,   32,  102,  102,  102,  102,   40,  102,  102,
     455      102,  102,   48,  102,  102,   53,  102,  102,   70,  102,
     456      102,  102,   76,  102,  102,  102,  102,  102,   86,   88,
     457      102,  102,   94,  102,  102,  101,    0,    0,    0,    0,
     458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     459        0,    0,    0,    0,    0,  113,    0,    0,  111,  113,
     460
     461      113,  113,  113,    0,  111,    0,    0,    0,    0,    0,
     462        0,    0,    0,    0,    0,  102,    0,  102,  102,  102,
    425463      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    426       102,  102,  102,  102,  102,  102,  102,  102,   14,  102,
    427 
    428       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    429       102,  102,  102,  102,  102,  102,  102,   50,  102,  102,
    430       102,   63,  102,  102,  102,  102,  102,  102,  102,  102,
    431       102,  102,  102,  102,  102,  102,   89,  102,  102,  102,
    432       102,  102,  102,  102,    0,    0,    0,    0,    0,    0,
    433         0,    0,  120,    0,    0,    0,    0,    0,  120,    0,
    434         0,  179,    0,    0,    0,    0,    0,    0,    0,  112,
    435         0,  112,    0,  112,    0,    0,  112,    0,  110,  110,
    436         0,    0,  111,  111,    0,  111,    0,  111,  109,  109,
     464      102,  102,  102,   58,  102,  102,  102,  102,  102,  102,
     465      102,  102,   28,  102,  102,  102,   39,   42,   45,  102,
     466      102,   51,  102,   60,   67,  102,  102,   75,   77,   80,
     467       81,   83,   84,  102,  102,   91,  102,  102,    0,    1,
     468        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     469      120,    0,    0,    0,    0,  113,    0,  113,  113,    0,
     470        0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
     471
     472       18,  102,  102,  102,  102,  102,  102,  102,   16,  102,
     473      102,  102,   33,  102,  102,  102,  102,  102,  102,  102,
     474      102,  102,  102,  102,  102,   36,   37,  102,   47,   52,
     475      102,  102,  102,   90,  102,  102,    0,    0,    0,    0,
     476        0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
     477       11,   29,   54,  102,  102,  102,  102,  102,  102,  102,
     478      102,  102,  102,  102,   59,   61,   64,  102,  102,   78,
     479       92,  102,  102,   35,   46,   71,   72,  102,   95,   98,
    437480        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    438 
    439       177,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    440       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    441       102,  102,  102,  102,   21,  102,   24,  102,   27,  102,
    442       102,  102,  102,  102,  102,  102,   41,  102,   43,  102,
    443       102,  102,  102,  102,  102,  102,   55,  102,   66,  102,
    444       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    445       102,  102,  102,  102,  102,   97,  102,  102,    0,    0,
    446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    447         0,    0,  120,    0,    0,    0,    0,    0,  112,    0,
    448         0,    0,    0,    0,    0,  111,  111,    0,  113,    0,
    449 
    450       111,  111,    0,    0,    0,    0,    0,    0,    0,    0,
    451         0,    0,    0,    0,    0,  102,  102,   22,  102,  102,
    452       102,  102,  102,  102,  102,   15,  102,  102,  102,  102,
    453       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    454        23,   25,  102,   32,  102,  102,  102,  102,   40,  102,
    455       102,  102,  102,   48,  102,  102,   53,  102,  102,   70,
    456       102,  102,  102,   76,  102,  102,  102,  102,  102,   86,
    457        88,  102,  102,   94,  102,  102,  101,    0,    0,    0,
    458         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    459         0,    0,    0,    0,    0,    0,  113,    0,    0,  111,
    460 
    461       113,  113,  113,  113,    0,  111,    0,    0,    0,    0,
    462         0,    0,    0,    0,    0,    0,  102,    0,  102,  102,
    463       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    464       102,  102,  102,  102,   58,  102,  102,  102,  102,  102,
    465       102,  102,  102,   28,  102,  102,  102,   39,   42,   45,
    466       102,  102,   51,  102,   60,   67,  102,  102,   75,   77,
    467        80,   81,   83,   84,  102,  102,   91,  102,  102,    0,
    468         1,    0,    0,    0,    0,    0,    0,  105,    0,    0,
    469         0,  120,    0,    0,    0,    0,  113,    0,  113,  113,
    470         0,    0,    0,    0,    0,    0,    0,    0,    0,  102,
    471 
    472       102,   18,  102,  102,  102,  102,  102,  102,  102,   16,
    473       102,  102,  102,   33,  102,  102,  102,  102,  102,  102,
    474       102,  102,  102,  102,  102,  102,   36,   37,  102,   47,
    475        52,  102,  102,  102,   90,  102,  102,    0,    0,    0,
    476         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    477        10,   11,   29,   54,  102,  102,  102,  102,  102,  102,
    478       102,  102,  102,  102,  102,   59,   61,   64,  102,  102,
    479        78,   92,  102,  102,   35,   46,   71,   72,  102,   95,
    480        98,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    481         0,    0,    0,  102,   68,  102,  102,   12,  102,  102,
    482 
    483        30,   34,  102,  102,  102,   65,  102,  102,  102,  102,
    484       102,  102,    0,    0,    0,    0,    0,    0,    0,    0,
    485         0,    0,    0,    0,    0,   57,  102,  102,  102,  102,
    486       102,  102,  102,   49,   62,   73,   79,   93,   99,  102,
    487       102,    0,    0,    0,    0,    0,    0,    0,    0,  102,
    488       102,   13,   19,  102,  102,   31,  102,  102,  102,   26,
    489        87,    0,    0,  102,  102,  102,  102,  102,  102,   74,
    490       100,  102,   85,   20,  102,  102,   44,   82,  102,  102,
    491       102,  102,  102,  102,  102,   96,   69,    0
     481        0,    0,  102,   68,  102,  102,   12,  102,  102,   30,
     482
     483       34,  102,  102,  102,   65,  102,  102,  102,  102,  102,
     484      102,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     485        0,    0,    0,    0,   57,  102,  102,  102,  102,  102,
     486      102,  102,   49,   62,   73,   79,   93,   99,  102,  102,
     487        0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
     488       13,   19,  102,  102,   31,  102,  102,  102,   26,   87,
     489        0,    0,  102,  102,  102,  102,  102,  102,   74,  100,
     490      102,   85,   20,  102,  102,   44,   82,  102,  102,  102,
     491      102,  102,  102,  102,   96,   69,    0
    492492    } ;
    493493
     
    537537    } ;
    538538
    539 static yyconst flex_int16_t yy_base[1063] =
     539static yyconst flex_int16_t yy_base[1062] =
    540540    {   0,
    541         0,   84, 2279, 2277,   94,    0,  177,  178,  179,  180,
    542      2291, 2817,  191, 2817,  197,   55, 2817, 2237,   60,  173,
    543      2817, 2817, 2817,   56,  188, 2817,  191,  189,  204,  216,
    544       275,    0,  152, 2817,  216, 2257,  175,  344,  197,  237,
    545      2817,  159, 2817,  220,  226, 2817,  181,  165,  212,  251,
    546       241,  270,  205,  244,  235,  174,  227,  305,  274,  341,
    547       220,  265, 2817,  227, 2817, 2253,  382,  405, 2817, 2262,
    548      2817, 2228,  211, 2817,    0, 2817,  432,    0, 2817,  398,
    549      2817,  411,  417, 2817,  504, 2227,  258, 2817, 2817, 2817,
    550      2817, 2817, 2245, 2817, 2243, 2817, 2817, 2253,  565, 2817,
    551 
    552      2268, 2817,  424,  419,  504,  522,  296,  237,  265,  417,
    553       386,    0,  298,  285,  311,  403, 2817, 2817, 2817, 2817,
    554      2238, 2817, 2817, 2817, 2237, 2235,  301,  331, 2248,  347,
    555       442,  449,  359,  433,  427,  454, 2227,  465, 2176,  469,
    556      2206, 2817,  319, 2817, 2817,  501, 2201, 2198, 2817, 2169,
    557       425,  307,  467,  320,  337,  470,  431,  345,  509,  356,
    558       439,  410,  490,  481,  500,  498,  502,  504,  424,  505,
    559       541,  510,  465,  528,  542,  271,  520,  521, 2197,  544,
    560       548,  549,  550,  561,  558,  570,  579,  587,  569,  585,
    561       567,  601,  592,  593,  594, 2817, 2817,  665,  671, 2246,
    562 
    563       677, 2817,  683, 2817, 2194,  565, 2188, 2185,    0,  674,
    564      2817, 2817,  689, 2184, 2183, 2181,    0, 2202,  616,  630,
    565       655,  698,  697,  659,  687,  688,  691, 2197,  694,  701,
    566      2174, 2173, 2817,    0,  693,  723,  691,  714, 2171, 2204,
    567      2817,  722,    0,  717,  768,  744,  808,  779,  606, 2817,
    568      2161, 2136,    0,  794, 2180,  786,  702, 2817, 2154, 2129,
    569       830, 2817, 2817, 2162, 2817, 2817,  708,  722, 2140, 2138,
    570       710, 2132, 2131, 2130,    0, 2128,    0, 2097,  721,  727,
    571       747,  748,  674,  591,  610,  723,  766,  793,  767,  770,
    572       769,  792,  810,  763,  775,  806,  812,  820, 2125,  822,
    573 
    574       824,  825,  828,  830,  831,  832,  836,  837,  460,  843,
    575       846,  845,  844,  847,  848,  852,  859,  861,  858,  867,
    576       865, 2124,  868,  869,  870,  873,  871,  872,  874,  875,
    577       881,  876,  880,  882,  887,  888, 2123,  891,  940,  897,
    578       899,  563,  902,  906,  960,  961, 2118, 2115, 2112,    0,
    579      2111,    0,  952,  956, 2110,    0, 2108,    0, 2105,    0,
    580      2126, 2817,  793,  939, 2105, 2101,    0, 2098,    0, 2817,
    581       960,  986,  971, 2817,  977,  992, 1011, 2097, 2817, 2817,
    582       985,  994, 1024,  982, 1058,  922, 1043,  993, 2817, 2817,
    583      2096, 2094, 2091,    0, 2087,    0, 2083,    0, 2081,    0,
    584 
    585      2817,  908,  953,  939,  991,  993,  998, 1003, 1000, 1026,
    586      1006, 1037, 1020, 1038, 1048, 1041, 1049,  970, 1054, 1018,
    587      1050, 1044, 1056, 1045, 2082, 1059, 2079, 1068, 2077, 1057,
    588      1052, 1070, 1072, 1079, 1077, 1081, 2075, 1082, 2072, 1084,
    589      1086, 1087, 1088, 1091, 1089, 1094, 2069, 1096, 2068, 1093,
    590      1098, 1099, 1101, 1105, 1100, 1114, 1111, 1115, 1112, 1117,
    591       686, 1118, 1126, 1130, 1127, 2067, 1131, 1132, 1183, 2062,
    592         0, 2059,    0, 2056,    0, 2055,    0, 1178, 2054,    0,
    593      2052,    0, 2049, 2046, 2045,    0, 2044,    0, 1184, 2042,
    594      1190, 1149, 1206, 1192, 1150, 1185, 2817, 1230, 1242, 1264,
    595 
    596      2051, 2024, 2035, 2034,    0, 2032,    0, 2029,    0, 2026,
    597         0, 2025,    0, 2024,    0, 1166, 1206, 2025, 1207, 1190,
    598      1227, 1145, 1241, 1184, 1135,  134, 1198, 1243, 1223, 1225,
    599      1244, 1186, 1248, 1247, 1249, 1256, 1251, 1261, 1262, 1221,
    600      2022, 1269, 1266, 2019, 1264, 1267, 1268, 1270, 2018, 1276,
    601      1272, 1274, 1277, 2017, 1280, 1288, 2015, 1287, 1290, 2012,
    602      1284, 1291, 1294, 2009, 1188, 1297, 1298, 1300, 1301, 1308,
    603      2008, 1303, 1309, 2007, 1310, 1315, 2005, 2052, 1998,    0,
    604      1997,    0, 1995,    0, 1992,    0, 1991,    0, 1990,    0,
    605      1988,    0, 1955,    0, 1359, 1365, 1393, 1376, 1953, 2817,
    606 
    607      1382, 1369, 1331, 1383, 1952, 2817, 1949,    0, 1946,    0,
    608      1945,    0, 1944,    0,    0,    0, 1945,    0, 1370, 1316,
    609      1317, 1345, 1325, 1372, 1373, 1378, 1377,  384, 1376, 1387,
    610      1390, 1392, 1399, 1397,  773, 1400, 1430, 1407, 1404, 1411,
    611      1410, 1412, 1418, 1942, 1413, 1415, 1423, 1939, 1938, 1937,
    612      1421, 1425, 1935, 1426, 1932, 1931, 1429, 1433, 1930, 1928,
    613      1925, 1924, 1923, 1921, 1435, 1314, 1918, 1439, 1431, 1964,
    614      2817, 1907,    0, 1903,    0,    0,    0, 1890,    0,    0,
    615         0, 2817,    0,    0,    0,    0, 1483, 1886, 2817, 2817,
    616      1489, 1885,    0, 1883,    0,    0,    0,    0, 1880, 1445,
    617 
    618      1465, 1882, 1442, 1470, 1467, 1479,  968, 1447, 1476, 1881,
    619      1478, 1482, 1480, 1485, 1481, 1512, 1487, 1497, 1526, 1501,
    620      1503, 1505, 1507, 1508, 1509, 1510, 1879, 1876, 1511, 1875,
    621      1874, 1515, 1514, 1518, 1872, 1520, 1522,    0,    0,    0,
    622      1866, 1865, 1864, 1570,    0, 1862, 1859, 1858, 1857, 1855,
    623      1855, 1854, 1853, 1851, 1527, 1529, 1532, 1523, 1548, 1533,
    624      1549, 1524, 1551, 1552, 1553, 1848, 1557, 1847, 1559, 1561,
    625      1564, 1569, 1555, 1563, 1846, 1844, 1841, 1840, 1571, 1839,
    626      1837, 1831, 1830, 1829, 1827, 1820, 1818, 1817, 1814, 1813,
    627      1812, 1810, 1793, 1574, 1787, 1575, 1577, 1576, 1578, 1580,
    628 
    629      1581, 1786, 1585, 1608, 1587, 1783, 1588, 1589, 1599, 1597,
    630      1591, 1593, 1773, 1770, 1763, 1761, 1760, 1739, 1738, 1737,
    631      1730, 1728, 1727, 1685, 1684, 1683, 1598, 1604, 1612, 1605,
    632      1613, 1617, 1616, 1682, 1681, 1618, 1677, 1676, 1622, 1623,
    633      1626, 1670, 1669, 1668, 1665, 1448, 1446, 1358, 1317, 1627,
    634      1624, 1318, 1638, 1630, 1634, 1224, 1642, 1643, 1644, 1137,
    635      1136, 1004,  733, 1628, 1649, 1650, 1651, 1652, 1654,  635,
    636       602, 1656,  436,  296, 1658, 1659,  263,  232, 1660, 1662,
    637      1663, 1665, 1666, 1667, 1670,  200,  166, 2817, 1742, 1755,
    638      1768, 1778, 1788, 1801, 1811, 1824, 1837, 1850, 1858, 1868,
    639 
    640      1875, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931, 1944,
    641      1951, 1955, 1963, 1966, 1973, 1980, 1987, 1990, 1997, 2003,
    642      2016, 2029, 2036, 2043, 2050, 2057, 2060, 2067, 2070, 2077,
    643      2080, 2087, 2090, 2097, 2100, 2107, 2110, 2117, 2120, 2127,
    644      2135, 2142, 2149, 2156, 2163, 2166, 2173, 2176, 2183, 2186,
    645      2193, 2199, 2212, 2219, 2226, 2229, 2236, 2239, 2246, 2249,
    646      2256, 2259, 2266, 2269, 2276, 2279, 2286, 2293, 2296, 2303,
    647      2306, 2313, 2320, 2327, 2330, 2337, 2340, 2347, 2350, 2357,
    648      2360, 2367, 2370, 2377, 2383, 2396, 2403, 2410, 2413, 2420,
    649      2423, 2430, 2433, 2440, 2443, 2450, 2453, 2460, 2463, 2470,
    650 
    651      2473, 2480, 2483, 2490, 2497, 2500, 2507, 2510, 2517, 2520,
    652      2527, 2530, 2533, 2539, 2546, 2555, 2562, 2569, 2572, 2579,
    653      2582, 2585, 2591, 2598, 2601, 2604, 2607, 2610, 2613, 2616,
    654      2619, 2626, 2629, 2636, 2639, 2642, 2645, 2648, 2658, 2665,
    655      2668, 2671, 2674, 2681, 2688, 2695, 2698, 2705, 2712, 2719,
    656      2726, 2733, 2740, 2747, 2754, 2761, 2768, 2775, 2782, 2789,
    657      2796, 2803
     541        0,   84, 2272, 2269,   94,    0,  177,  178,  179,  180,
     542     2285, 2822,  191, 2822,  197,   55, 2822, 2231,   60,  173,
     543     2822, 2822, 2822,   56,  188, 2822,  191,  189,  204,  216,
     544      275,    0, 2249, 2822,  216, 2247,  152,  344,  155,  220,
     545     2822,  159, 2822,  217,  226, 2822,  185,  154,  212,  251,
     546      237,  270,  235,  257,  241,  205,  193,  305,  314,  333,
     547      238,  228, 2822,  225, 2822, 2242,  402,  390, 2822, 2253,
     548     2822, 2221,  235, 2822,    0, 2822,  426,    0, 2822,  417,
     549     2822,  439,  451, 2822,  498, 2219,  264, 2822, 2822, 2822,
     550     2822, 2822, 2235, 2822, 2232, 2822, 2822, 2244,  559, 2822,
     551
     552     2261, 2822,  438,  444,  511,  534,  289,  253,  197,  380,
     553      305,    0,  319,  280,  198,  322, 2822, 2822, 2822, 2230,
     554     2822, 2822, 2822, 2227, 2224,  218,  255, 2239,  298,  350,
     555      368,  312,  440,  398,  405, 2220,  441, 2168,  446, 2196,
     556     2822,  335, 2822, 2822,  468, 2190, 2189, 2822, 2162,  439,
     557      282,  433,  372,  281,  437,  434,  428,  570,  444,  466,
     558      464,  469,  475,  321,  492,  438,  471,  445,  474,  512,
     559      489,  503,  496,  521,  276,  515,  516, 2189,  526,  510,
     560      519,  525,  543,  522,  560,  553,  523,  561,  551,  544,
     561      599,  582,  593,  584, 2822, 2822,  660,  651, 2236,  666,
     562
     563     2822,  678, 2822, 2183,  607, 2179, 2178,    0,  693, 2822,
     564     2822,  684, 2176, 2156, 2154,    0, 2177,  578,  608,  617,
     565      654,  679,  650,  683,  684,  687, 2172,  690,  691, 2147,
     566     2146, 2822,    0,  683,  710,  686,  700, 2145, 2196, 2822,
     567      714,    0,  427,  746,  764,  786,  808,  621, 2822, 2152,
     568     2125,    0,  794, 2171,  795,  709, 2822, 2147, 2121,  832,
     569     2822, 2822, 2152, 2822, 2822,  711,  714, 2129, 2129,  717,
     570     2125, 2123, 2120,    0, 2117,    0, 2088,  694,  679,  712,
     571      709,  711,  698,  566,  726,  743,  771,  741,  790,  784,
     572      800,  795,  742,  744,  814,  816,  818, 2118,  819,  745,
     573
     574      820,  821,  822,  823,  824,  746,  825,  748,  659,  831,
     575      826,  833,  838,  839,  848,  850,  851,  844,  834,  857,
     576     2116,  858,  859,  860,  862,  861,  864,  865,  867,  868,
     577      866,  871,  876,  872,  878, 2113,  880,  689,  881,  882,
     578      892,  896,  893,  953,  954, 2109, 2108, 2106,    0, 2103,
     579        0,  941,  945, 2102,    0, 2101,    0, 2099,    0, 2118,
     580     2822,  940,  941, 2094, 2088,    0, 2086,    0, 2822,  953,
     581      975,  964, 2822,  981,  997, 1021, 2084, 2822, 2822,  939,
     582      940, 1006,  982, 1041,  310, 1039, 1004, 2822, 2822, 2081,
     583     2079, 2077,    0, 2074,    0, 2071,    0, 2070,    0, 2822,
     584
     585      886,  941,  960,  962,  977,  976,  980,  982, 1017, 1010,
     586     1002,  998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043,
     587     1038, 1041, 1053, 2072, 1055, 2070, 1045, 2067, 1056, 1061,
     588     1063, 1065, 1066, 1067, 1070, 2064, 1071, 2063, 1073, 1074,
     589     1075, 1078, 1080, 1081, 1085, 2062, 1087, 2060, 1084, 1089,
     590     1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108,  905,
     591     1109, 1116, 1110, 1122, 2057, 1120, 1123, 1179, 2051,    0,
     592     2050,    0, 2049,    0, 2047,    0, 1166, 2044,    0, 2041,
     593        0, 2040, 2039, 2037,    0, 2034,    0, 1173, 2031, 1179,
     594     1137, 1195, 1181, 1178, 1176, 2822, 1219, 1231, 1253, 2042,
     595
     596     2017, 2027, 2024,    0, 2021,    0, 2020,    0, 2019,    0,
     597     2017,    0, 2014,    0, 1141, 1172, 2014, 1180, 1155, 1196,
     598     1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236,
     599     1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2013,
     600     1261, 1256, 2012, 1260, 1263, 1264, 1257, 2010, 1271, 1268,
     601     1269, 1273, 2007, 1275, 1282, 2006, 1283, 1284, 2005, 1276,
     602     1286, 1289, 2003, 1294, 1291, 1296, 1295, 1297, 1310, 2000,
     603     1305, 1308, 1999, 1307, 1300, 1998, 2046, 1960,    0, 1958,
     604        0, 1957,    0, 1954,    0, 1951,    0, 1950,    0, 1949,
     605        0, 1947,    0, 1355, 1361, 1389, 1372, 1944, 2822, 1378,
     606
     607     1325, 1365, 1379, 1941, 2822, 1940,    0, 1939,    0, 1937,
     608        0, 1934,    0,    0,    0, 1936,    0, 1366, 1312, 1311,
     609     1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390,
     610     1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408,
     611     1413, 1414, 1935, 1409, 1416, 1419, 1933, 1930, 1929, 1422,
     612     1424, 1928, 1429, 1926, 1923, 1425, 1430, 1919, 1915, 1911,
     613     1895, 1894, 1893, 1436, 1433, 1891, 1439, 1440, 1938, 2822,
     614     1884,    0, 1883,    0,    0,    0, 1884,    0,    0,    0,
     615     2822,    0,    0,    0,    0, 1486, 1878, 2822, 2822, 1492,
     616     1877,    0, 1876,    0,    0,    0,    0, 1874, 1447, 1444,
     617
     618     1874, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1873, 1486,
     619     1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498,
     620     1508, 1512, 1513, 1514, 1515, 1872, 1870, 1517, 1867, 1866,
     621     1518, 1520, 1523, 1865, 1521, 1525,    0,    0,    0, 1860,
     622     1857, 1856, 1575,    0, 1855, 1853, 1850, 1849, 1848, 1849,
     623     1846, 1845, 1844, 1531, 1536, 1527, 1528, 1552, 1533, 1537,
     624     1539, 1555, 1557, 1569, 1842, 1560, 1839, 1561, 1559, 1568,
     625     1572, 1567, 1573, 1838, 1837, 1835, 1828, 1574, 1826, 1825,
     626     1819, 1818, 1817, 1815, 1798, 1789, 1788, 1785, 1778, 1775,
     627     1768, 1766, 1576, 1768, 1577, 1581, 1580, 1579, 1584, 1585,
     628
     629     1747, 1586, 1615, 1590, 1746, 1591, 1592, 1602, 1600, 1594,
     630     1606, 1742, 1735, 1733, 1732, 1690, 1689, 1686, 1685, 1683,
     631     1682, 1678, 1677, 1674, 1676, 1607, 1611, 1614, 1612, 1608,
     632     1616, 1620, 1675, 1623, 1624, 1530, 1453, 1630, 1625, 1629,
     633     1438, 1354, 1319, 1318, 1267, 1212, 1210, 1208, 1631, 1636,
     634     1178, 1639, 1635, 1643, 1177, 1644, 1646, 1650, 1126,  964,
     635      937,  903, 1651, 1652, 1654, 1655, 1656, 1658,  788,  752,
     636     1660,  607,  487, 1662, 1663,  394,  357, 1664, 1666, 1668,
     637     1670, 1669, 1672, 1674,  233,  137, 2822, 1747, 1760, 1773,
     638     1783, 1793, 1806, 1816, 1829, 1842, 1855, 1863, 1873, 1880,
     639
     640     1887, 1894, 1901, 1908, 1915, 1922, 1929, 1936, 1949, 1956,
     641     1960, 1968, 1971, 1978, 1985, 1992, 1995, 2002, 2008, 2021,
     642     2034, 2041, 2048, 2055, 2062, 2065, 2072, 2075, 2082, 2085,
     643     2092, 2095, 2102, 2105, 2112, 2115, 2122, 2125, 2132, 2140,
     644     2147, 2154, 2161, 2168, 2171, 2178, 2181, 2188, 2191, 2198,
     645     2204, 2217, 2224, 2231, 2234, 2241, 2244, 2251, 2254, 2261,
     646     2264, 2271, 2274, 2281, 2284, 2291, 2298, 2301, 2308, 2311,
     647     2318, 2325, 2332, 2335, 2342, 2345, 2352, 2355, 2362, 2365,
     648     2372, 2375, 2382, 2388, 2401, 2408, 2415, 2418, 2425, 2428,
     649     2435, 2438, 2445, 2448, 2455, 2458, 2465, 2468, 2475, 2478,
     650
     651     2485, 2488, 2495, 2502, 2505, 2512, 2515, 2522, 2525, 2532,
     652     2535, 2538, 2544, 2551, 2560, 2567, 2574, 2577, 2584, 2587,
     653     2590, 2596, 2603, 2606, 2609, 2612, 2615, 2618, 2621, 2624,
     654     2631, 2634, 2641, 2644, 2647, 2650, 2653, 2663, 2670, 2673,
     655     2676, 2679, 2686, 2693, 2700, 2703, 2710, 2717, 2724, 2731,
     656     2738, 2745, 2752, 2759, 2766, 2773, 2780, 2787, 2794, 2801,
     657     2808
    658658    } ;
    659659
    660 static yyconst flex_int16_t yy_def[1063] =
     660static yyconst flex_int16_t yy_def[1062] =
    661661    {   0,
    662       888,    1,  889,  889,  888,    5,  890,  890,  891,  891,
    663       888,  888,  888,  888,  888,  888,  888,  892,  888,  888,
    664       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    665       888,   31,  888,  888,  888,  888,  888,  888,  893,  892,
    666       888,  888,  888,  888,  892,  888,  892,  892,  892,  892,
    667       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    668       892,  892,  888,  888,  888,  888,  888,  894,  888,  888,
    669       888,  895,  888,  888,  896,  888,  888,  897,  888,  888,
    670       888,  888,  888,  888,  888,  892,  888,  888,  888,  888,
    671       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    672 
    673       898,  888,   99,   30,  888,  888,  888,  888,  899,   30,
    674       888,   31,  888,  888,   31,  888,  888,  888,  888,  888,
    675       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    676       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    677       900,  888,  888,  888,  888,  892,  901,  902,  888,  888,
    678       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    679       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    680       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    681       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    682       892,  892,  892,  892,  892,  888,  888,  888,  894,  894,
    683 
    684       894,  888,  894,  888,  895,  888,  903,  904,  896,  888,
    685       888,  888,  888,  905,  906,  907,  897,  888,  888,  888,
    686       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    687       908,  909,  888,   99,  888,  888,  888,  888,   99,  910,
    688       888,  888,  104,  104,  888,  888,  888,  888,  888,  888,
    689       888,  888,  911,  912,  913,  888,  888,  888,  888,  888,
    690       888,  888,  888,  888,  888,  888,  888,  888,  888,  900,
    691       888,  914,  915,  916,  917,  918,  919,  888,  920,  920,
    692       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    693       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    694 
    695       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    696       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    697       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    698       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    699       920,  920,  920,  920,  921,  922,  923,  924,  925,  926,
    700       927,  928,  888,  888,  929,  930,  931,  932,  933,  934,
    701       888,  888,  888,  888,  888,  935,  936,  937,  938,  888,
    702       888,  888,  888,  888,  888,  888,  372,  377,  888,  888,
    703       939,  940,  941,  888,  888,  888,  941,  888,  888,  888,
    704       942,  943,  944,  945,  946,  947,  948,  949,  950,  951,
    705 
    706       888,  952,  952,  952,  952,  952,  952,  952,  952,  952,
    707       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
    708       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
    709       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
    710       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
    711       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
    712       952,  952,  952,  952,  952,  952,  952,  952,  953,  954,
    713       955,  956,  957,  958,  959,  960,  961,  888,  962,  963,
    714       964,  965,  966,  966,  967,  968,  969,  970,  888,  489,
    715       888,  971,  888,  971,  888,  888,  888,  888,  888,  888,
    716 
    717       888,  888,  972,  973,  974,  975,  976,  977,  978,  979,
    718       980,  981,  982,  983,  984,  985,  985,  985,  985,  985,
    719       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
    720       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
    721       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
    722       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
    723       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
    724       985,  985,  985,  985,  985,  985,  985,  986,  987,  988,
     662      887,    1,  888,  888,  887,    5,  889,  889,  890,  890,
     663      887,  887,  887,  887,  887,  887,  887,  891,  887,  887,
     664      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     665      887,   31,  887,  887,  887,  887,  887,  887,  892,  891,
     666      887,  887,  887,  887,  891,  887,  891,  891,  891,  891,
     667      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     668      891,  891,  887,  887,  887,  887,  887,  893,  887,  887,
     669      887,  894,  887,  887,  895,  887,  887,  896,  887,  887,
     670      887,  887,  887,  887,  887,  891,  887,  887,  887,  887,
     671      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     672
     673      897,  887,   99,   30,  887,  887,  887,  887,  898,   30,
     674      887,   31,  887,  887,   31,  887,  887,  887,  887,  887,
     675      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     676      887,  887,  887,  887,  887,  887,  887,  887,  887,  899,
     677      887,  887,  887,  887,  891,  900,  901,  887,  887,  891,
     678      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     679      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     680      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     681      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     682      891,  891,  891,  891,  887,  887,  887,  893,  893,  893,
     683
     684      887,  893,  887,  894,  887,  902,  903,  895,  887,  887,
     685      887,  887,  904,  905,  906,  896,  887,  887,  887,  887,
     686      887,  887,  887,  887,  887,  887,  887,  887,  887,  907,
     687      908,  887,   99,  887,  887,  887,  887,   99,  909,  887,
     688      887,  104,  104,  887,  887,  887,  887,  887,  887,  887,
     689      887,  910,  911,  912,  887,  887,  887,  887,  887,  887,
     690      887,  887,  887,  887,  887,  887,  887,  887,  899,  887,
     691      913,  914,  915,  916,  917,  918,  887,  919,  919,  919,
     692      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     693      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     694
     695      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     696      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     697      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     698      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     699      919,  919,  919,  920,  921,  922,  923,  924,  925,  926,
     700      927,  887,  887,  928,  929,  930,  931,  932,  933,  887,
     701      887,  887,  887,  887,  934,  935,  936,  937,  887,  887,
     702      887,  887,  887,  887,  887,  371,  376,  887,  887,  938,
     703      939,  940,  887,  887,  887,  940,  887,  887,  887,  941,
     704      942,  943,  944,  945,  946,  947,  948,  949,  950,  887,
     705
     706      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     707      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     708      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     709      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     710      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     711      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     712      951,  951,  951,  951,  951,  951,  951,  952,  953,  954,
     713      955,  956,  957,  958,  959,  960,  887,  961,  962,  963,
     714      964,  965,  965,  966,  967,  968,  969,  887,  488,  887,
     715      970,  887,  970,  887,  887,  887,  887,  887,  887,  887,
     716
     717      887,  971,  972,  973,  974,  975,  976,  977,  978,  979,
     718      980,  981,  982,  983,  984,  984,  984,  984,  984,  984,
     719      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     720      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     721      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     722      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     723      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     724      984,  984,  984,  984,  984,  984,  985,  986,  987,  988,
    725725      989,  990,  991,  992,  993,  994,  995,  996,  997,  998,
    726       999, 1000, 1001, 1002,  888,  888,  888,  888, 1003,  888,
    727 
    728       597,  888,  888,  888,  601,  888, 1004, 1005, 1006, 1007,
    729      1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1014, 1014,
    730      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
    731      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
    732      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
    733      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
    734      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1016,
    735       888, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
    736      1026,  888, 1027, 1028, 1029, 1030,  888,  687,  888,  888,
    737       888, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
    738 
    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, 1040, 1041, 1042,
    743      1043, 1044, 1045,  888, 1046, 1031, 1033, 1047, 1048, 1038,
    744      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    745      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    746      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    747      1039, 1049, 1050, 1043, 1051, 1044, 1052, 1045, 1053, 1054,
    748      1047, 1055, 1048, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    749 
    750      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    751      1039, 1039, 1056, 1049, 1057, 1050, 1058, 1051, 1059, 1052,
    752      1060, 1053, 1061, 1054, 1055, 1039, 1039, 1039, 1039, 1039,
    753      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    754      1039, 1062, 1056, 1057, 1058, 1059, 1033, 1060, 1061, 1039,
    755      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    756      1039, 1062, 1033, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    757      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    758      1039, 1039, 1039, 1039, 1039, 1039, 1039,    0,  888,  888,
    759       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    760 
    761       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    762       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    763       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    764       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    765       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    766       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    767       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    768       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    769       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    770       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    771 
    772       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    773       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    774       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    775       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    776       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    777       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    778       888,  888
     726      999, 1000, 1001,  887,  887,  887,  887, 1002,  887,  596,
     727
     728      887,  887,  887,  600,  887, 1003, 1004, 1005, 1006, 1007,
     729     1008, 1009, 1010, 1011, 1012, 1013, 1014, 1013, 1013, 1013,
     730     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     731     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     732     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     733     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     734     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015,  887,
     735     1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
     736      887, 1026, 1027, 1028, 1029,  887,  686,  887,  887,  887,
     737     1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1038,
     738
     739     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     740     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     741     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     742     1038, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1041, 1042,
     743     1043, 1044,  887, 1045, 1030, 1032, 1046, 1047, 1037, 1038,
     744     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     745     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     746     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     747     1048, 1049, 1042, 1050, 1043, 1051, 1044, 1052, 1053, 1046,
     748     1054, 1047, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     749
     750     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     751     1038, 1055, 1048, 1056, 1049, 1057, 1050, 1058, 1051, 1059,
     752     1052, 1060, 1053, 1054, 1038, 1038, 1038, 1038, 1038, 1038,
     753     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     754     1061, 1055, 1056, 1057, 1058, 1032, 1059, 1060, 1038, 1038,
     755     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     756     1061, 1032, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     757     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     758     1038, 1038, 1038, 1038, 1038, 1038,    0,  887,  887,  887,
     759      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     760
     761      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     762      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     763      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     764      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     765      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     766      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     767      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     768      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     769      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     770      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     771
     772      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     773      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     774      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     775      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     776      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     777      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     778      887
    779779    } ;
    780780
    781 static yyconst flex_int16_t yy_nxt[2903] =
     781static yyconst flex_int16_t yy_nxt[2908] =
    782782    {   0,
    783783       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    800800       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    801801       72,   72,   72,   72,   72,   71,   71,   71,   71,   76,
    802        76,   79,   79,  117,  118,   90,   87,   79,   79,  628,
     802       76,   79,   79,  123,  124,   90,  141,   79,   79,   87,
    803803       76,   76,   80,   81,   82,   82,   82,   80,   82,   81,
    804804
    805        83,   83,   83,   82,   91,   93,  124,  125,  147,   98,
    806        95,   99,   99,   99,   99,   99,   99,   87,   87,   94,
    807       100,   85,   96,   97,   85,  101,   87,  119,  142,   77,
    808        77,   77,   77,   87,  148,  102,  103,  162,  104,  104,
    809       104,  104,  105,  105,  120,  144,  121,  122,  183,  143,
    810       145,  149,   87,  150,  160,  106,  161,   87,  196,  107,
    811       207,  151,  152,  153,   87,  108,  109,  154,  155,  163,
    812       156,  110,   87,  157,  158,  178,  164,  106,   87,   87,
    813       251,  159,  165,  111,   87,  253,  208,   87,  184,   87,
    814       194,  108,  146,   87,  109,  103,   87,  112,  112,  112,
    815 
    816       112,  112,  112,   87,  252,  181,  179,  231,  170,  197,
    817       171,  182,  166,  180,  106,   87,  167,   87,  113,  172,
    818       255,  168,   87,   87,  114,  169,   87,  173,  259,  195,
    819       115,  888,  264,  232,  265,  174,  106,  175,  189,  249,
    820       176,  257,  116,  318,  177,  250,  190,  258,   87,  144,
    821       114,  126,  260,  191,  145,  127,  128,   87,  129,   87,
    822       130,  131,  264,  132,  265,  133,  261,  192,  272,  185,
    823       186,  250,   87,  258,  134,  135,  136,  281,  264,  187,
    824       265,  283,  188,  198,   81,   82,   82,   82,  198,   87,
    825       264,  199,  265,   87,  273,  137,  146,   87,  138,   80,
    826 
    827        81,   82,   82,   82,   80,  284,  201,  202,   87,  287,
    828       193,  201,   82,   81,   82,   82,   82,   82,   82,   81,
    829        83,   83,   83,   82,  299,  139,  140,  203,  203,  203,
    830       203,  203,  203,  210,  211,  250,   87,  888,  210,  710,
    831       212,  243,  243,  243,  243,  212,   99,   99,   99,   99,
    832        99,   99,  258,  249,  213,  213,  213,  213,  264,  266,
    833       265,  250,   87,  267,  264,  212,  265,  888,  266,  888,
    834       257,  301,  256,  264,  244,  265,   87,   87,  258,  242,
    835       264,  214,  265,   87,  212,  264,  268,  265,   87,  212,
    836       212,   87,  279,  212,  212,  888,  264,  888,  265,  280,
    837 
    838       264,  212,  265,  310,  212,  286,  212,  215,  212,  144,
    839       216,  218,   87,  300,  145,  219,  220,   87,  435,   87,
    840       221,  222,   87,  223,  103,  224,  105,  105,  105,  105,
    841       105,  105,  315,   87,  225,  226,  227,  282,  304,  246,
    842       285,  246,   87,  106,  247,  247,  247,  247,  247,  247,
    843        87,  305,   87,   87,   87,  228,   87,   87,  229,  245,
    844       307,   87,   87,  302,  303,  106,  288,  289,  290,  306,
    845       291,  292,   87,   87,  293,  308,  294,  248,  311,  309,
    846        87,  295,  296,  297,  314,  298,  230,  234,  234,  234,
    847       234,  234,  234,   87,   87,  320,   87,  316,  312,  319,
    848 
    849        87,   87,   87,  235,  236,  237,  324,  238,  237,  144,
    850        87,  321,  317,   87,  347,   87,  313,  323,  322,   87,
    851       239,   87,   87,  466,  326,  237,  236,  237,  329,  325,
    852       238,   87,  237,  330,  327,  328,  332,   87,  338,   87,
    853       348,  335,  336,   87,   87,   87,   87,  361,  407,  362,
    854       331,  333,  334,   87,   87,  379,  339,  340,  342,  344,
    855       343,  361,   87,  362,  337,  341,  198,   81,   82,   82,
    856        82,  198,  201,  202,  199,  210,  211,  201,  201,  202,
    857       210,  379,  408,  201,  345,  202,  361,   87,  362,  345,
    858       361,  346,  362,  203,  203,  203,  203,  203,  203,  203,
    859 
    860       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
    861       203,  353,  353,  353,  353,  362,  362,  363,  361,  361,
    862       362,  362,  361,  364,  362,  361,   87,  362,  361,  361,
    863       362,  362,  361,  370,  362,  370,  370,  888,   87,  264,
    864       371,  265,  371,  406,  354,  372,  372,  372,  372,  372,
    865       372,  389,  374,  264,  374,  265,  370,  374,  370,  391,
    866       235,  236,  237,  570,  238,  237,  247,  247,  247,  247,
    867       247,  247,  376,   87,  374,   87,  374,  389,  373,   87,
    868       409,  374,  237,  236,  237,  392,  402,  238,  888,  237,
    869       105,  105,  105,  105,  105,  105,  246,  403,  246,   87,
    870 
    871        87,  247,  247,  247,  247,  247,  247,  106,  105,  105,
    872       105,  105,  105,  105,  382,   87,  405,  404,   87,   87,
    873       420,   87,   87,  256,  361,   87,  362,   87,  717,  106,
    874       377,  377,  377,  377,  377,  377,  421,  384,  410,  385,
    875       415,  256,  414,  386,   87,   87,  235,  416,  237,  387,
    876       238,  237,  112,  112,  112,  112,  112,  112,   87,  417,
    877       411,  388,   87,  378,   87,  385,  412,  413,  237,  386,
    878       237,  422,   87,  238,   87,  237,   87,   87,  418,  419,
    879        87,  426,   87,   87,   87,  261,  427,  428,   87,   87,
    880       424,  423,  425,  433,  434,   87,   87,   87,   87,   87,
    881 
    882        87,  430,  429,  438,   87,  431,  432,  437,  440,  442,
    883        87,   87,  439,   87,  436,  441,  443,   87,  444,   87,
    884        87,   87,   87,   87,   87,   87,   87,   87,   87,  446,
    885       448,  449,   87,   87,   87,  445,  450,  447,  452,   87,
    886        87,  451,  457,   87,  456,  453,  455,  454,  144,   87,
    887       458,   87,  463,  462,   87,  459,  460,  461,   87,  467,
    888        87,  345,  202,  202,  465,  501,  345,  464,  346,  200,
    889       361,  516,  362,  468,  212,  212,  212,  212,  353,  353,
    890       353,  353,  372,  372,  372,  372,  372,  372,  371,  502,
    891       371,   87,   87,  372,  372,  372,  372,  372,  372,  234,
    892 
    893       234,  234,  234,  234,  234,   87,  518,  478,  489,  489,
    894       489,  489,  489,  489,  243,  243,  243,  243,  105,  105,
    895        87,  517,   87,  757,  235,  496,  237,  533,  238,  237,
    896       493,  497,  375,  377,  377,  377,  377,  377,  377,  493,
    897       494,  490,  497,   87,  382,   87,  237,  376,  237,  495,
    898        87,  238,   87,  237,  520,   87,  493,  497,   87,  888,
    899       496,  521,  519,  888,  522,  493,  378,  384,  497,  385,
    900        87,  525,   87,  386,  523,  498,  536,  498,   87,  387,
    901       499,  499,  499,  499,  499,  499,  384,  524,  385,   87,
    902        87,  388,  386,   87,  527,  385,   87,   87,  503,  386,
    903 
    904        87,   87,   87,  528,   87,  526,   87,  538,   87,   87,
    905       388,   87,  540,  500,  385,  531,  529,  530,  386,  532,
    906        87,  534,   87,  537,   87,  541,  544,  539,  535,   87,
    907       543,   87,  542,   87,   87,  545,   87,  547,   87,   87,
    908        87,   87,  549,   87,  548,   87,   87,  546,   87,  550,
    909        87,   87,   87,   87,  553,  557,  551,   87,  555,  560,
    910       552,  556,  554,   87,   87,  558,   87,   87,  559,   87,
    911        87,  568,  561,  562,  564,  565,  569,  563,   87,   87,
    912       567,  566,   87,   87,   87,  202,  572,   87,   87,   87,
    913       575,  578,  571,  577,  493,  493,  573,   87,  627,  574,
    914 
    915       212,  212,  212,  212,  494,  576,  489,  489,  489,  489,
    916       489,  489,  377,  377,  377,  377,  377,  377,   87,  624,
    917       493,  493,  235,  596,  237,  596,  238,  237,  597,  597,
    918       597,  597,  597,  597,  600,  619,   87,  493,   87,  490,
    919        87,  626,   87,  634,  237,  491,  237,  599,  660,  238,
    920        87,  237,  499,  499,  499,  499,  499,  499,   87,   87,
    921       600,  598,  622,  493,  601,  601,  601,  601,  601,  601,
    922       629,  620,  637,   87,  621,   87,   87,   87,  642,   87,
    923       602,  498,  603,  498,  604,  603,  499,  499,  499,  499,
    924       499,  499,  623,   87,  631,   87,   87,  605,  632,   87,
    925 
    926        87,   87,  603,   87,  603,  633,  625,  604,   87,  603,
    927       630,  635,  636,   87,   87,  643,   87,  638,   87,   87,
    928        87,   87,   87,  641,   87,  639,   87,  644,   87,   87,
    929       640,  648,   87,  645,  646,  647,   87,  649,  651,   87,
    930        87,  650,   87,   87,  652,  654,   87,  653,  655,   87,
    931        87,  656,   87,   87,  665,   87,  658,  662,  657,  661,
    932        87,   87,   87,  659,  666,  664,   87,   87,   87,   87,
    933        87,  667,  888,  689,  663,  702,  735,   87,  703,  668,
    934       669,  489,  489,  489,  489,  489,  489,  597,  597,  597,
    935       597,  597,  597,  596,  705,  596,  689,   87,  597,  597,
    936 
    937       597,  597,  597,  597,  601,  601,  601,  601,  601,  601,
    938       704,  689,  689,  888,  595,  687,  687,  687,  687,  687,
    939       687,  690,   87,  690,   87,   87,  690,  700,   87,   87,
    940        87,  602,  707,  603,  689,  604,  603,  605,  708,   87,
    941       701,  711,   87,  690,   87,  690,  709,  706,  688,   87,
    942       690,   87,   87,  603,  719,  603,   87,  713,  604,   87,
    943       603,  712,   87,   87,   87,   87,  714,   87,  715,  718,
    944        87,  716,  722,   87,  720,   87,  721,   87,   87,  725,
    945       723,   87,   87,   87,  728,   87,  724,   87,  726,  727,
    946       732,   87,  733,  729,   87,  731,  734,   87,  737,   87,
    947 
    948       736,  863,  758,  888,  730,  687,  687,  687,  687,  687,
    949       687,  601,  601,  601,  601,  601,  601,   87,  751,   87,
    950       753,  602,   87,  603,  755,  604,  603,  752,   87,  754,
    951        87,   87,   87,   87,   87,  765,  760,   87,  688,   87,
    952       763,  762,  766,  603,  691,  603,  759,  761,  604,   87,
    953       603,  756,  768,   87,  764,   87,  769,   87,  767,   87,
    954        87,   87,   87,   87,   87,  771,   87,   87,  770,  772,
    955        87,  775,   87,  773,   87,   87,   87,  804,   87,   87,
    956       780,   87,  774,  781,   87,   87,  776,  777,  778,  796,
    957       797,  779,  687,  687,  687,  687,  687,  687,  795,  794,
    958 
    959        87,   87,  801,   87,   87,   87,  802,   87,  799,   87,
    960       798,   87,  805,   87,  806,   87,   87,  803,  800,  808,
    961       807,   87,  810,   87,  809,  744,   87,   87,   87,   87,
    962        87,  829,   87,   87,  834,  831,  832,   87,  811,   87,
    963        87,   87,  835,   87,  837,   87,  812,  828,  827,   87,
    964        87,   87,  830,  826,  838,  833,   87,   87,  839,  840,
    965        87,  841,  836,  851,   87,   87,  853,  852,   87,   87,
    966        87,  850,  856,  858,   87,   87,   87,  859,   87,   87,
    967        87,  865,   87,  854,  860,  857,   87,  861,  864,  855,
    968        87,  868,  867,  866,   87,   87,   87,  869,  870,  871,
    969 
    970       872,   87,   87,   87,   87,  874,   87,  876,   87,  877,
    971        87,   87,   87,  875,   87,   87,  873,   87,   87,   87,
    972       888,  881,   87,  888,  888,  862,  880,  882,   87,   87,
    973       878,  879,  887,   87,   87,   87,  885,  883,  884,  888,
    974       888,  886,   69,   69,   69,   69,   69,   69,   69,   69,
    975        69,   69,   69,   69,   69,   75,   75,   75,   75,   75,
    976        75,   75,   75,   75,   75,   75,   75,   75,   78,   78,
    977        78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
    978        78,   86,  849,  888,   86,  848,   86,   86,   86,   86,
    979        86,  141,  888,  846,  888,  141,  141,  141,  141,  141,
    980 
    981       141,  200,  200,  200,  200,  200,  200,  200,  200,  200,
    982       200,  200,  200,  200,  205,  845,  888,  205,  844,  205,
    983       205,  205,  205,  205,  209,  888,  209,  209,  843,  209,
    984       209,  209,  209,  209,  209,   87,  209,  217,   87,   87,
    985       217,  217,  217,  217,  217,  217,  217,  217,  888,  217,
    986       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
    987       240,  240,  240,  254,  254,  825,  254,  888,  824,  822,
    988       254,  270,  888,  820,  270,  888,  270,  270,  270,  270,
    989       270,  274,  818,  274,  888,  816,  814,  274,  276,   87,
    990       276,   87,   87,   87,  276,  349,   87,  349,   87,   87,
    991 
    992        87,  349,  351,   87,  351,   87,   87,   87,  351,  355,
    993       888,  355,  793,  791,  888,  355,  357,  888,  357,  788,
    994       786,  784,  357,  359,   87,  359,   87,   87,   87,  359,
    995       366,   87,  366,   87,   87,  750,  366,  368,  747,  368,
    996       746,  744,  206,  368,  240,  240,  240,  240,  240,  240,
    997       240,  240,  240,  240,  240,  240,  240,  381,  740,  381,
    998       383,  383,  739,  383,  383,  383,  671,  383,  254,  254,
    999        87,  254,  393,   87,  393,   87,   87,   87,  393,  395,
    1000        87,  395,   87,   87,   87,  395,  397,   87,  397,   87,
    1001        87,   87,  397,  274,   87,  274,  399,   87,  399,  698,
    1002 
    1003       697,  695,  399,  276,  693,  276,   86,  691,  599,   86,
    1004       686,   86,   86,   86,   86,   86,  200,  200,  200,  200,
    1005       200,  200,  200,  200,  200,  200,  200,  200,  200,  469,
    1006       469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
    1007       469,  469,  470,  685,  470,  683,  681,  679,  470,  472,
    1008       677,  472,  675,  673,  671,  472,  474,   87,  474,   87,
    1009        87,   87,  474,  349,   87,  349,  476,   87,  476,   87,
    1010        87,   87,  476,  351,   87,  351,  479,   87,  479,  618,
    1011       616,  614,  479,  355,  612,  355,  481,  610,  481,  608,
    1012       503,  606,  481,  357,  606,  357,  483,  595,  483,  594,
    1013 
    1014       592,  484,  483,  359,  484,  359,  485,  590,  485,  588,
    1015       586,  584,  485,  366,  582,  366,  487,  580,  487,   87,
    1016        87,   87,  487,  368,   87,  368,  492,   87,  492,   87,
    1017       492,   87,  492,  381,   87,  381,  515,  381,  513,  381,
    1018       383,  383,  511,  383,  383,  383,  509,  383,  504,  507,
    1019       504,  505,  491,  488,  504,  506,  486,  506,  362,  362,
    1020       484,  506,  508,  482,  508,  480,  477,  475,  508,  393,
    1021       473,  393,  510,  471,  510,   87,   87,   87,  510,  395,
    1022       401,  395,  512,  400,  512,  398,  396,  394,  512,  397,
    1023       271,  397,  514,  266,  514,  265,  390,  390,  514,  399,
    1024 
    1025       253,  399,   86,  380,  380,   86,  241,   86,   86,   86,
    1026        86,   86,  469,  469,  469,  469,  469,  469,  469,  469,
    1027       469,  469,  469,  469,  469,  579,  375,  579,  369,  367,
    1028       365,  579,  470,  361,  470,  581,  360,  581,  358,  356,
    1029       352,  581,  472,  350,  472,  583,  206,  583,  202,   87,
    1030       278,  583,  474,  277,  474,  585,  275,  585,  271,  266,
    1031       269,  585,  476,  266,  476,  587,  264,  587,  263,  262,
    1032       241,  587,  479,  233,  479,  589,   85,  589,   85,   87,
    1033       206,  589,  481,  204,  481,  483,   85,  483,  123,   87,
    1034       888,  483,  591,   70,  591,   70,  888,  888,  591,  485,
    1035 
    1036       888,  485,  593,  888,  593,  888,  888,  888,  593,  487,
    1037       888,  487,  492,  888,  492,  888,  492,  888,  492,  383,
    1038       888,  383,  888,  888,  888,  383,  607,  888,  607,  888,
    1039       888,  888,  607,  504,  888,  504,  609,  888,  609,  888,
    1040       888,  888,  609,  506,  888,  506,  611,  888,  611,  888,
    1041       888,  888,  611,  508,  888,  508,  613,  888,  613,  888,
    1042       888,  888,  613,  510,  888,  510,  615,  888,  615,  888,
    1043       888,  888,  615,  512,  888,  512,  617,  888,  617,  888,
    1044       888,  888,  617,  514,  888,  514,   86,  888,  888,   86,
    1045       888,   86,   86,   86,   86,   86,  670,  670,  670,  670,
    1046 
    1047       670,  670,  670,  670,  670,  670,  670,  670,  670,  672,
    1048       888,  672,  888,  888,  888,  672,  579,  888,  579,  674,
    1049       888,  674,  888,  888,  888,  674,  581,  888,  581,  676,
    1050       888,  676,  888,  888,  888,  676,  583,  888,  583,  678,
    1051       888,  678,  888,  888,  888,  678,  585,  888,  585,  680,
    1052       888,  680,  888,  888,  888,  680,  587,  888,  587,  682,
    1053       888,  682,  888,  888,  888,  682,  589,  888,  589,  684,
    1054       888,  684,  888,  888,  888,  684,  591,  888,  591,   86,
    1055       888,   86,  888,  888,  888,   86,  593,  888,  593,  492,
    1056       888,  492,  888,  888,  888,  492,  692,  888,  692,  888,
    1057 
    1058       888,  888,  692,  607,  888,  607,  694,  888,  694,  888,
    1059       888,  888,  694,  609,  888,  609,  696,  888,  696,  888,
    1060       888,  888,  696,  611,  888,  611,  141,  888,  141,  888,
    1061       888,  888,  141,  613,  888,  613,  699,  888,  699,  615,
    1062       888,  615,   86,  888,  888,   86,  888,   86,   86,   86,
    1063        86,   86,  617,  888,  617,  670,  670,  670,  670,  670,
    1064       670,  670,  670,  670,  670,  670,  670,  670,  738,  888,
    1065       738,  888,  888,  888,  738,  672,  888,  672,  205,  888,
    1066       205,  888,  888,  888,  205,  674,  888,  674,  741,  888,
    1067       741,  676,  888,  676,  205,  888,  888,  205,  888,  205,
    1068 
    1069       205,  205,  205,  205,  678,  888,  678,  742,  888,  742,
    1070       680,  888,  680,  682,  888,  682,  743,  888,  743,  684,
    1071       888,  684,   86,  888,   86,  745,  888,  745,  888,  888,
    1072       888,  745,  692,  888,  692,  270,  888,  270,  888,  888,
    1073       888,  270,  694,  888,  694,  748,  888,  748,  696,  888,
    1074       696,  141,  888,  141,  749,  888,  749,  888,  888,  888,
    1075       749,   86,  888,  888,   86,  888,   86,   86,   86,   86,
    1076        86,  782,  888,  782,  738,  888,  738,  205,  888,  205,
    1077       783,  888,  783,  888,  888,  888,  783,  785,  888,  785,
    1078       888,  888,  888,  785,  787,  888,  787,  888,  888,  888,
    1079 
    1080       787,  789,  888,  789,  790,  888,  790,  888,  888,  888,
    1081       790,  792,  888,  792,  888,  888,  888,  792,  813,  888,
    1082       813,  888,  888,  888,  813,  815,  888,  815,  888,  888,
    1083       888,  815,  817,  888,  817,  888,  888,  888,  817,  819,
    1084       888,  819,  888,  888,  888,  819,  821,  888,  821,  888,
    1085       888,  888,  821,  823,  888,  823,  888,  888,  888,  823,
    1086       617,  888,  617,  888,  888,  888,  617,  842,  888,  842,
    1087       888,  888,  888,  842,  678,  888,  678,  888,  888,  888,
    1088       678,  682,  888,  682,  888,  888,  888,  682,   86,  888,
    1089        86,  888,  888,  888,   86,  847,  888,  847,  888,  888,
    1090 
    1091       888,  847,  141,  888,  141,  888,  888,  888,  141,  205,
    1092       888,  205,  888,  888,  888,  205,   11,  888,  888,  888,
    1093       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1094       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1095       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1096       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1097       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1098       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1099       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1100       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1101 
    1102       888,  888
     805       83,   83,   83,   82,   91,   93,   87,  142,  146,   98,
     806       95,   99,   99,   99,   99,   99,   99,  252,  887,   94,
     807      100,   85,   96,   97,   85,  101,  161,  118,  143,   77,
     808       77,   77,   77,  144,  147,  102,  103,   87,  104,  104,
     809      104,  104,  105,  105,  119,   87,  120,  121,  148,  263,
     810      149,  264,  254,  260,  183,  106,  195,   87,  159,  107,
     811      160,  150,  151,  152,   87,  108,  109,  153,  154,  162,
     812      155,  110,   87,  156,  157,  145,  163,  106,   87,  182,
     813       87,  158,  164,  111,  206,   87,  263,   87,  264,   87,
     814       87,  108,  194,   87,  109,  103,  250,  112,  112,  112,
     815
     816      112,  112,  112,   87,  169,  177,  170,  196,  193,   87,
     817      207,  180,  165,  230,  106,  171,  166,  181,  113,  178,
     818      251,  167,   87,  258,  114,  168,  179,  172,   87,  263,
     819      115,  264,  248,   87,   87,  173,  106,  174,  249,  231,
     820      175,  143,  116,  263,  176,  264,  144,  259,  317,  283,
     821      114,  125,  280,  500,  249,  126,  127,   87,  128,  191,
     822      129,  130,  256,  131,  249,  132,   87,  265,  257,  184,
     823      185,  257,  248,   87,  133,  134,  135,  501,  188,  186,
     824      249,  263,  187,  264,  271,   87,  189,  265,  145,  256,
     825      305,  200,  201,  190,  257,  136,  200,  257,  137,  263,
     826
     827      887,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     828      272,  198,  202,  202,  202,  202,  202,  202,   80,   81,
     829       82,   82,   82,   80,   87,  138,  139,  209,  210,  263,
     830      887,  264,  209,  282,  211,  255,  263,  267,  264,  211,
     831       82,   81,   82,   82,   82,   82,   87,  887,  212,  212,
     832      212,  212,   82,   81,   83,   83,   83,   82,  887,  211,
     833       99,   99,   99,   99,   99,   99,  242,  242,  242,  242,
     834      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
     835       87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
     836       87,   87,  286,  241,  887,  211,   87,   87,  211,  243,
     837
     838      211,  214,  211,  281,  215,  217,  278,  284,  285,  218,
     839      219,  307,  298,  279,  220,  221,   87,  222,   87,  223,
     840       87,   87,  887,   87,  309,  300,   87,   87,  224,  225,
     841      226,  103,  303,  105,  105,  105,  105,  105,  105,   87,
     842      299,   87,  301,  302,   87,  304,  308,  310,   87,  227,
     843      106,  245,  228,  245,  306,   87,  246,  246,  246,  246,
     844      246,  246,   87,  313,   87,  315,  244,   87,   87,  311,
     845      314,   87,  106,   87,   87,   87,  323,   87,   87,  322,
     846      229,  233,  233,  233,  233,  233,  233,  312,  333,  247,
     847      319,  316,  328,  320,  318,   87,   87,  234,  235,  236,
     848
     849      321,  237,  236,   87,  324,   87,  325,  143,  335,  360,
     850      331,  361,   87,   87,  238,  337,  326,  327,   87,  236,
     851      235,  236,   87,  329,  237,  332,  236,  287,  288,  289,
     852      336,  290,  291,  334,   87,  292,   87,  293,  407,  360,
     853      330,  361,  294,  295,  296,   87,  297,  339,  360,  343,
     854      361,   87,  200,  201,  338,  340,  346,  200,  341,   87,
     855      342,  197,   81,   82,   82,   82,  197,  200,  201,  198,
     856      378,  361,  200,  202,  202,  202,  202,  202,  202,  344,
     857      201,  360,  347,  361,  344,  360,  345,  361,  202,  202,
     858      202,  202,  202,  202,  209,  210,  378,  143,  361,  209,
     859
     860      202,  202,  202,  202,  202,  202,  352,  352,  352,  352,
     861      360,   87,  361,  362,  360,  360,  361,  361,  360,  363,
     862      361,  360,  360,  361,  361,  369,  369,  370,  369,  370,
     863      435,   87,  371,  371,  371,  371,  371,  371,  373,  353,
     864      373,   87,  263,  373,  264,  263,   87,  264,  369,  402,
     865       87,  369,  234,  235,  236,  406,  237,  236,  388,  401,
     866      373,   87,  373,   87,   87,  372,  390,  373,  105,  105,
     867      105,  105,  105,  105,  236,  235,  236,  404,   87,  237,
     868      405,  236,  403,  408,  388,  106,  246,  246,  246,  246,
     869      246,  246,  391,   87,   87,   87,   87,   87,   87,  419,
     870
     871       87,  255,  425,  432,   87,  420,  434,  106,  376,  376,
     872      376,  376,  376,  376,  381,  409,  413,  105,  105,  105,
     873      105,  105,  105,   87,  234,  245,  236,  245,  237,  236,
     874      246,  246,  246,  246,  246,  246,   87,  383,  410,  384,
     875       87,  377,   87,  385,  411,  412,  236,   87,  236,  386,
     876      255,  237,   87,  236,  112,  112,  112,  112,  112,  112,
     877      414,  387,  415,  417,  418,  384,   87,  416,   87,  385,
     878       87,   87,   87,   87,   87,   87,   87,   87,   87,  421,
     879      427,  426,  433,   87,  437,   87,   87,  260,  423,  424,
     880       87,   87,  436,  429,  428,  422,   87,  430,  431,  439,
     881
     882       87,  438,   87,   87,  446,  441,  440,  442,  443,   87,
     883       87,   87,   87,   87,   87,  445,   87,   87,   87,   87,
     884       87,  448,  447,   87,   87,  444,  449,  451,   87,  456,
     885       87,  450,   87,   87,   87,  452,  455,  454,   87,  453,
     886      457,  462,  460,  461,   87,   87,  458,  464,   87,  515,
     887      459,  463,  465,  466,  344,  201,  201,   87,  887,  344,
     888      467,  345,  199,  211,  211,  211,  211,  352,  352,  352,
     889      352,  360,  360,  361,  361,  371,  371,  371,  371,  371,
     890      371,  370,  569,  370,  492,  492,  371,  371,  371,  371,
     891      371,  371,  887,   87,  493,  494,  477,  488,  488,  488,
     892
     893      488,  488,  488,  233,  233,  233,  233,  233,  233,  516,
     894      492,  492,   87,  234,   87,  236,   87,  237,  236,  242,
     895      242,  242,  242,  105,  105,  495,  381,  517,   87,   87,
     896      489,  496,   87,  518,   87,  236,  374,  236,  519,  520,
     897      237,  521,  236,  376,  376,  376,  376,  376,  376,  383,
     898       87,  384,  375,  496,   87,  385,  522,  496,  497,  887,
     899      497,  386,   87,  498,  498,  498,  498,  498,  498,   87,
     900      525,  495,  526,  387,   87,  524,  377,  384,  523,  496,
     901       87,  385,  383,   87,  384,   87,   87,  527,  385,   87,
     902       87,  532,   87,   87,  502,   87,  499,   87,  535,  528,
     903
     904      529,  537,  530,  531,  533,   87,  387,   87,   87,  541,
     905      384,  534,  538,   87,  385,   87,  536,   87,   87,   87,
     906      539,  540,   87,   87,  546,   87,   87,   87,  544,  542,
     907       87,  548,   87,   87,  547,  543,   87,   87,  549,   87,
     908      545,   87,  552,   87,   87,  550,  556,  554,  551,   87,
     909      559,   87,  553,  555,   87,   87,  557,   87,   87,  558,
     910       87,   87,   87,  564,  560,  567,  563,  568,   87,  561,
     911      566,  562,   87,  565,   87,   87,  571,   87,   87,  573,
     912      627,  201,  492,  570,  576,  574,  572,  577,  211,  211,
     913      211,  211,  493,   87,  575,  488,  488,  488,  488,  488,
     914
     915      488,  376,  376,  376,  376,  376,  376,   87,  492,   87,
     916      618,  234,  595,  236,  595,  237,  236,  596,  596,  596,
     917      596,  596,  596,  492,   87,  599,  492,  621,  489,   87,
     918       87,  623,   87,  236,  490,  236,  598,  619,  237,   87,
     919      236,  498,  498,  498,  498,  498,  498,  620,   87,  492,
     920      597,  599,  492,  600,  600,  600,  600,  600,  600,   87,
     921      631,  622,   87,  887,  625,  887,   87,  862,   87,  601,
     922      497,  602,  497,  603,  602,  498,  498,  498,  498,  498,
     923      498,  624,  628,   87,   87,  630,  604,   87,   87,   87,
     924       87,  602,  633,  602,  626,  636,  603,  632,  602,  629,
     925
     926      634,   87,   87,  635,   87,   87,   87,  642,   87,   87,
     927      637,  641,   87,   87,  640,   87,   87,  643,  647,  639,
     928       87,   87,  887,   87,   87,   87,  638,   87,   87,  644,
     929      645,  646,  648,  650,   87,   87,   87,  649,   87,  653,
     930      651,   87,  652,   87,  654,  655,   87,   87,   87,   87,
     931      656,  657,   87,  660,  659,  661,  664,   87,  658,   87,
     932       87,  663,   87,   87,   87,  668,  665,  688,  688,  662,
     933      666,  701,  702,  887,  887,   87,  667,  488,  488,  488,
     934      488,  488,  488,  596,  596,  596,  596,  596,  596,  595,
     935      688,  595,  704,   87,  596,  596,  596,  596,  596,  596,
     936
     937      600,  600,  600,  600,  600,  600,  703,  688,   87,  887,
     938      594,  686,  686,  686,  686,  686,  686,  689,   87,  689,
     939       87,   87,  689,  699,   87,  708,   87,  601,  706,  602,
     940      688,  603,  602,  604,  707,   87,  700,  710,  709,  689,
     941       87,  689,   87,  705,  687,   87,  689,   87,   87,  602,
     942       87,  602,   87,  716,  603,  718,  602,  712,   87,   87,
     943       87,   87,  711,   87,  714,   87,   87,  713,   87,  717,
     944      715,   87,  721,  719,   87,  724,   87,   87,  722,  720,
     945      727,   87,   87,   87,  725,   87,  731,  723,   87,  732,
     946      726,   87,   87,  861,  728,  734,   87,  733,  730,   87,
     947
     948      735,   87,   87,  729,   87,   87,  751,  736,  686,  686,
     949      686,  686,  686,  686,  600,  600,  600,  600,  600,  600,
     950      750,   87,  755,   87,  601,  763,  602,  752,  603,  602,
     951      753,   87,   87,  764,   87,  756,  754,  757,   87,  758,
     952       87,  687,   87,   87,  759,  767,  602,  690,  602,  761,
     953       87,  603,  766,  602,   87,  760,   87,  762,   87,  765,
     954       87,  768,   87,  769,   87,   87,   87,   87,  770,   87,
     955       87,   87,   87,   87,  771,   87,  774,   87,  772,   87,
     956       87,  779,   87,   87,  795,   87,  780,  773,   87,   87,
     957      776,   87,  775,  803,  777,  796,  778,  686,  686,  686,
     958
     959      686,  686,  686,  793,   87,  794,  799,   87,  798,   87,
     960      801,   87,   87,   87,  797,  804,  805,  800,  806,   87,
     961       87,   87,  802,  807,   87,   87,   87,  808,   87,   87,
     962      743,   87,   87,   87,  809,  828,   87,   87,   87,  830,
     963      831,  833,   87,   87,   87,  834,   87,  836,  810,  811,
     964      826,  827,   87,  829,   87,  825,  832,  837,   87,   87,
     965       87,  838,  839,   87,   87,  835,   87,   87,   87,  851,
     966      850,  855,   87,  852,  840,   87,   87,   87,  853,  857,
     967      849,   87,   87,   87,  854,  858,  859,   87,   87,  856,
     968      860,   87,  863,  864,  865,   87,   87,  866,   87,  868,
     969
     970      867,  869,   87,   87,   87,  870,   87,   87,   87,  873,
     971       87,  875,   87,  876,   87,   87,   87,  874,   87,  872,
     972       87,   87,   87,  871,   87,  880,   87,   87,   87,  887,
     973      879,  881,  887,  848,  877,  878,  886,  887,  847,  884,
     974      887,  845,  882,  883,  887,  844,  885,   69,   69,   69,
     975       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
     976       75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
     977       75,   75,   75,   78,   78,   78,   78,   78,   78,   78,
     978       78,   78,   78,   78,   78,   78,   86,  887,  843,   86,
     979      887,   86,   86,   86,   86,   86,  140,  842,   87,   87,
     980
     981      140,  140,  140,  140,  140,  140,  199,  199,  199,  199,
     982      199,  199,  199,  199,  199,  199,  199,  199,  199,  204,
     983       87,  887,  204,  824,  204,  204,  204,  204,  204,  208,
     984      887,  208,  208,  823,  208,  208,  208,  208,  208,  208,
     985      821,  208,  216,  887,  819,  216,  216,  216,  216,  216,
     986      216,  216,  216,  887,  216,  239,  239,  239,  239,  239,
     987      239,  239,  239,  239,  239,  239,  239,  239,  253,  253,
     988      817,  253,  887,  815,  813,  253,  269,   87,   87,  269,
     989       87,  269,  269,  269,  269,  269,  273,   87,  273,   87,
     990       87,   87,  273,  275,   87,  275,   87,   87,   87,  275,
     991
     992      348,   87,  348,  887,  792,  790,  348,  350,  887,  350,
     993      887,  787,  785,  350,  354,  783,  354,   87,   87,   87,
     994      354,  356,   87,  356,   87,   87,   87,  356,  358,  749,
     995      358,  746,  745,  743,  358,  365,  205,  365,  739,  738,
     996      670,  365,  367,   87,  367,   87,   87,   87,  367,  239,
     997      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
     998      239,  239,  380,   87,  380,  382,  382,   87,  382,  382,
     999      382,   87,  382,  253,  253,   87,  253,  392,   87,  392,
     1000       87,   87,   87,  392,  394,   87,  394,   87,   87,  697,
     1001      394,  396,  696,  396,  694,  692,  690,  396,  273,  598,
     1002
     1003      273,  398,  685,  398,  684,  682,  680,  398,  275,  678,
     1004      275,   86,  676,  674,   86,  672,   86,   86,   86,   86,
     1005       86,  199,  199,  199,  199,  199,  199,  199,  199,  199,
     1006      199,  199,  199,  199,  468,  468,  468,  468,  468,  468,
     1007      468,  468,  468,  468,  468,  468,  468,  469,  670,  469,
     1008       87,   87,   87,  469,  471,   87,  471,   87,   87,   87,
     1009      471,  473,   87,  473,   87,   87,   87,  473,  348,  617,
     1010      348,  475,  615,  475,  613,  611,  609,  475,  350,  607,
     1011      350,  478,  502,  478,  605,  605,  594,  478,  354,  593,
     1012      354,  480,  591,  480,  483,  483,  589,  480,  356,  587,
     1013
     1014      356,  482,  585,  482,  583,  581,  579,  482,  358,   87,
     1015      358,  484,   87,  484,   87,   87,   87,  484,  365,   87,
     1016      365,  486,   87,  486,   87,  514,  512,  486,  367,  510,
     1017      367,  491,  508,  491,  506,  491,  504,  491,  380,  490,
     1018      380,  487,  380,  485,  380,  382,  382,  361,  382,  382,
     1019      382,  361,  382,  503,  483,  503,  481,  479,  476,  503,
     1020      505,  474,  505,  472,  470,   87,  505,  507,   87,  507,
     1021       87,  400,  399,  507,  392,  397,  392,  509,  395,  509,
     1022      393,  270,  265,  509,  394,  264,  394,  511,  389,  511,
     1023      389,  252,  379,  511,  396,  379,  396,  513,  240,  513,
     1024
     1025      374,  368,  366,  513,  398,  364,  398,   86,  360,  359,
     1026       86,  357,   86,   86,   86,   86,   86,  468,  468,  468,
     1027      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
     1028      578,  355,  578,  351,  349,  205,  578,  469,  201,  469,
     1029      580,   87,  580,  277,  276,  274,  580,  471,  270,  471,
     1030      582,  265,  582,  268,  265,  263,  582,  473,  262,  473,
     1031      584,  261,  584,  240,  232,   85,  584,  475,   85,  475,
     1032      586,   87,  586,  205,  203,   85,  586,  478,  122,  478,
     1033      588,  117,  588,   87,  887,   70,  588,  480,   70,  480,
     1034      482,  887,  482,  887,  887,  887,  482,  590,  887,  590,
     1035
     1036      887,  887,  887,  590,  484,  887,  484,  592,  887,  592,
     1037      887,  887,  887,  592,  486,  887,  486,  491,  887,  491,
     1038      887,  491,  887,  491,  382,  887,  382,  887,  887,  887,
     1039      382,  606,  887,  606,  887,  887,  887,  606,  503,  887,
     1040      503,  608,  887,  608,  887,  887,  887,  608,  505,  887,
     1041      505,  610,  887,  610,  887,  887,  887,  610,  507,  887,
     1042      507,  612,  887,  612,  887,  887,  887,  612,  509,  887,
     1043      509,  614,  887,  614,  887,  887,  887,  614,  511,  887,
     1044      511,  616,  887,  616,  887,  887,  887,  616,  513,  887,
     1045      513,   86,  887,  887,   86,  887,   86,   86,   86,   86,
     1046
     1047       86,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1048      669,  669,  669,  669,  671,  887,  671,  887,  887,  887,
     1049      671,  578,  887,  578,  673,  887,  673,  887,  887,  887,
     1050      673,  580,  887,  580,  675,  887,  675,  887,  887,  887,
     1051      675,  582,  887,  582,  677,  887,  677,  887,  887,  887,
     1052      677,  584,  887,  584,  679,  887,  679,  887,  887,  887,
     1053      679,  586,  887,  586,  681,  887,  681,  887,  887,  887,
     1054      681,  588,  887,  588,  683,  887,  683,  887,  887,  887,
     1055      683,  590,  887,  590,   86,  887,   86,  887,  887,  887,
     1056       86,  592,  887,  592,  491,  887,  491,  887,  887,  887,
     1057
     1058      491,  691,  887,  691,  887,  887,  887,  691,  606,  887,
     1059      606,  693,  887,  693,  887,  887,  887,  693,  608,  887,
     1060      608,  695,  887,  695,  887,  887,  887,  695,  610,  887,
     1061      610,  140,  887,  140,  887,  887,  887,  140,  612,  887,
     1062      612,  698,  887,  698,  614,  887,  614,   86,  887,  887,
     1063       86,  887,   86,   86,   86,   86,   86,  616,  887,  616,
     1064      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1065      669,  669,  669,  737,  887,  737,  887,  887,  887,  737,
     1066      671,  887,  671,  204,  887,  204,  887,  887,  887,  204,
     1067      673,  887,  673,  740,  887,  740,  675,  887,  675,  204,
     1068
     1069      887,  887,  204,  887,  204,  204,  204,  204,  204,  677,
     1070      887,  677,  741,  887,  741,  679,  887,  679,  681,  887,
     1071      681,  742,  887,  742,  683,  887,  683,   86,  887,   86,
     1072      744,  887,  744,  887,  887,  887,  744,  691,  887,  691,
     1073      269,  887,  269,  887,  887,  887,  269,  693,  887,  693,
     1074      747,  887,  747,  695,  887,  695,  140,  887,  140,  748,
     1075      887,  748,  887,  887,  887,  748,   86,  887,  887,   86,
     1076      887,   86,   86,   86,   86,   86,  781,  887,  781,  737,
     1077      887,  737,  204,  887,  204,  782,  887,  782,  887,  887,
     1078      887,  782,  784,  887,  784,  887,  887,  887,  784,  786,
     1079
     1080      887,  786,  887,  887,  887,  786,  788,  887,  788,  789,
     1081      887,  789,  887,  887,  887,  789,  791,  887,  791,  887,
     1082      887,  887,  791,  812,  887,  812,  887,  887,  887,  812,
     1083      814,  887,  814,  887,  887,  887,  814,  816,  887,  816,
     1084      887,  887,  887,  816,  818,  887,  818,  887,  887,  887,
     1085      818,  820,  887,  820,  887,  887,  887,  820,  822,  887,
     1086      822,  887,  887,  887,  822,  616,  887,  616,  887,  887,
     1087      887,  616,  841,  887,  841,  887,  887,  887,  841,  677,
     1088      887,  677,  887,  887,  887,  677,  681,  887,  681,  887,
     1089      887,  887,  681,   86,  887,   86,  887,  887,  887,   86,
     1090
     1091      846,  887,  846,  887,  887,  887,  846,  140,  887,  140,
     1092      887,  887,  887,  140,  204,  887,  204,  887,  887,  887,
     1093      204,   11,  887,  887,  887,  887,  887,  887,  887,  887,
     1094      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1095      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1096      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1097      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1098      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1099      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1100      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1101
     1102      887,  887,  887,  887,  887,  887,  887
    11031103    } ;
    11041104
    1105 static yyconst flex_int16_t yy_chk[2903] =
     1105static yyconst flex_int16_t yy_chk[2908] =
    11061106    {   0,
    11071107        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11241124        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11251125        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1126         8,    9,   10,   33,   33,   20,  526,    9,   10,  526,
     1126        8,    9,   10,   37,   37,   20,   39,    9,   10,  886,
    11271127        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    11281128
    1129        15,   15,   15,   15,   20,   25,   37,   37,   42,   28,
    1130        27,   28,   28,   28,   28,   28,   28,   48,  887,   25,
    1131        29,   25,   27,   27,   27,   29,   56,   35,   39,    7,
    1132         8,    9,   10,   47,   42,   29,   30,   48,   30,   30,
    1133        30,   30,   30,   30,   35,   40,   35,   35,   56,   39,
    1134        40,   44,  886,   44,   47,   30,   47,   53,   64,   30,
    1135        73,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    1136        45,   30,   61,   45,   45,   53,   49,   30,   45,   57,
    1137       108,   45,   49,   30,  878,  109,   73,   55,   57,   40,
    1138        61,   30,   40,   51,   30,   31,   54,   31,   31,   31,
    1139 
    1140        31,   31,   31,   50,  108,   55,   54,   87,   51,   64,
    1141        51,   55,   50,   54,   31,  877,   50,   62,   31,   51,
    1142       109,   50,   52,  176,   31,   50,   59,   52,  114,   62,
    1143        31,  115,  127,   87,  127,   52,   31,   52,   59,  107,
    1144        52,  113,   31,  176,   52,  107,   59,  113,  874,   60,
    1145        31,   38,  114,   59,   60,   38,   38,   58,   38,  152,
    1146        38,   38,  128,   38,  128,   38,  115,   60,  143,   58,
    1147        58,  107,  154,  113,   38,   38,   38,  152,  130,   58,
    1148       130,  154,   58,   67,   67,   67,   67,   67,   67,  155,
    1149       133,   67,  133,   60,  143,   38,   60,  158,   38,   80,
    1150 
    1151        80,   80,   80,   80,   80,  155,   68,   68,  160,  158,
    1152        60,   68,   82,   82,   82,   82,   82,   82,   83,   83,
    1153        83,   83,   83,   83,  160,   38,   38,   68,   68,   68,
    1154        68,   68,   68,   77,   77,  111,  628,  110,   77,  628,
    1155        77,  104,  104,  104,  104,   77,  103,  103,  103,  103,
    1156       103,  103,  116,  111,   77,   77,   77,   77,  135,  131,
    1157       135,  111,  162,  134,  134,   77,  134,  110,  132,  104,
    1158       116,  162,  110,  131,  104,  131,  169,  151,  116,  103,
    1159       132,   77,  132,  157,   77,  136,  136,  136,  873,   77,
    1160        77,  161,  151,   77,   77,  110,  138,  104,  138,  151,
    1161 
    1162       140,   77,  140,  169,   77,  157,   77,   77,   77,  146,
    1163        77,   85,  309,  161,  146,   85,   85,  173,  309,  153,
    1164        85,   85,  156,   85,  105,   85,  105,  105,  105,  105,
    1165       105,  105,  173,  164,   85,   85,   85,  153,  164,  106,
    1166       156,  106,  163,  105,  106,  106,  106,  106,  106,  106,
    1167       166,  164,  165,  146,  167,   85,  168,  170,   85,  105,
    1168       166,  159,  172,  163,  163,  105,  159,  159,  159,  165,
    1169       159,  159,  177,  178,  159,  167,  159,  106,  170,  168,
    1170       174,  159,  159,  159,  172,  159,   85,   99,   99,   99,
    1171        99,   99,   99,  171,  175,  178,  180,  174,  171,  177,
    1172 
    1173       181,  182,  183,   99,   99,   99,  182,   99,   99,  192,
    1174       185,  180,  175,  184,  206,  342,  171,  181,  180,  191,
    1175        99,  189,  186,  342,  184,   99,   99,   99,  185,  183,
    1176        99,  187,   99,  186,  184,  184,  187,  190,  191,  188,
    1177       206,  189,  190,  284,  193,  194,  195,  219,  284,  219,
    1178       186,  187,  188,  192,  871,  249,  192,  193,  194,  195,
    1179       194,  220,  285,  220,  190,  193,  198,  198,  198,  198,
    1180       198,  198,  199,  199,  198,  210,  210,  199,  201,  201,
    1181       210,  249,  285,  201,  203,  203,  221,  870,  221,  203,
    1182       224,  203,  224,  199,  199,  199,  199,  199,  199,  201,
    1183 
    1184       201,  201,  201,  201,  201,  203,  203,  203,  203,  203,
    1185       203,  213,  213,  213,  213,  222,  223,  225,  225,  226,
    1186       225,  226,  227,  227,  227,  229,  283,  229,  223,  222,
    1187       223,  222,  230,  237,  230,  235,  235,  244,  461,  267,
    1188       236,  267,  236,  283,  213,  236,  236,  236,  236,  236,
    1189       236,  257,  238,  268,  238,  268,  237,  238,  235,  271,
    1190       242,  242,  242,  461,  242,  242,  246,  246,  246,  246,
    1191       246,  246,  244,  279,  238,  286,  238,  257,  236,  280,
    1192       286,  238,  242,  242,  242,  271,  279,  242,  863,  242,
    1193       245,  245,  245,  245,  245,  245,  248,  280,  248,  281,
    1194 
    1195       282,  248,  248,  248,  248,  248,  248,  245,  256,  256,
    1196       256,  256,  256,  256,  254,  294,  282,  281,  287,  289,
    1197       294,  291,  290,  245,  363,  635,  363,  295,  635,  245,
    1198       247,  247,  247,  247,  247,  247,  295,  254,  287,  254,
    1199       290,  256,  289,  254,  292,  288,  247,  291,  247,  254,
    1200       247,  247,  261,  261,  261,  261,  261,  261,  296,  292,
    1201       288,  254,  293,  247,  297,  254,  288,  288,  247,  254,
    1202       247,  296,  298,  247,  300,  247,  301,  302,  293,  293,
    1203       303,  301,  304,  305,  306,  261,  302,  303,  307,  308,
    1204       298,  297,  300,  307,  308,  310,  313,  312,  311,  314,
    1205 
    1206       315,  305,  304,  312,  316,  306,  306,  311,  314,  316,
    1207       319,  317,  313,  318,  310,  315,  317,  321,  318,  320,
    1208       323,  324,  325,  327,  328,  326,  329,  330,  332,  319,
    1209       321,  323,  333,  331,  334,  318,  324,  320,  326,  335,
    1210       336,  325,  331,  338,  330,  327,  329,  328,  339,  340,
    1211       332,  341,  338,  336,  343,  333,  334,  335,  344,  343,
    1212       402,  345,  345,  346,  341,  386,  345,  340,  345,  346,
    1213       364,  402,  364,  344,  353,  353,  353,  353,  354,  354,
    1214       354,  354,  371,  371,  371,  371,  371,  371,  373,  386,
    1215       373,  404,  339,  373,  373,  373,  373,  373,  373,  375,
    1216 
    1217       375,  375,  375,  375,  375,  403,  404,  353,  372,  372,
    1218       372,  372,  372,  372,  376,  376,  376,  376,  376,  376,
    1219       707,  403,  418,  707,  372,  384,  372,  418,  372,  372,
    1220       381,  384,  375,  377,  377,  377,  377,  377,  377,  382,
    1221       381,  372,  388,  405,  383,  406,  372,  376,  372,  382,
    1222       407,  372,  409,  372,  406,  408,  381,  384,  411,  862,
    1223       388,  407,  405,  387,  408,  382,  377,  383,  388,  383,
    1224       420,  411,  413,  383,  409,  385,  420,  385,  410,  383,
    1225       385,  385,  385,  385,  385,  385,  387,  410,  387,  412,
    1226       414,  383,  387,  416,  413,  383,  422,  424,  387,  383,
    1227 
    1228       415,  417,  421,  414,  431,  412,  419,  422,  423,  430,
    1229       387,  426,  424,  385,  387,  416,  415,  415,  387,  417,
    1230       428,  419,  432,  421,  433,  426,  431,  423,  419,  435,
    1231       430,  434,  428,  436,  438,  432,  440,  434,  441,  442,
    1232       443,  445,  436,  444,  435,  450,  446,  433,  448,  438,
    1233       451,  452,  455,  453,  442,  446,  440,  454,  444,  451,
    1234       441,  445,  443,  457,  459,  448,  456,  458,  450,  460,
    1235       462,  459,  452,  453,  455,  456,  460,  454,  463,  465,
    1236       458,  457,  464,  467,  468,  469,  463,  525,  861,  860,
    1237       465,  469,  462,  468,  492,  495,  463,  522,  525,  464,
    1238 
    1239       478,  478,  478,  478,  492,  467,  489,  489,  489,  489,
    1240       489,  489,  491,  491,  491,  491,  491,  491,  516,  522,
    1241       492,  495,  489,  493,  489,  493,  489,  489,  493,  493,
    1242       493,  493,  493,  493,  496,  516,  524,  494,  532,  489,
    1243       565,  524,  520,  532,  489,  491,  489,  494,  565,  489,
    1244       527,  489,  498,  498,  498,  498,  498,  498,  517,  519,
    1245       496,  493,  520,  494,  499,  499,  499,  499,  499,  499,
    1246       527,  517,  535,  540,  519,  529,  856,  530,  540,  521,
    1247       499,  500,  499,  500,  499,  499,  500,  500,  500,  500,
    1248       500,  500,  521,  523,  529,  528,  531,  499,  530,  534,
    1249 
    1250       533,  535,  499,  537,  499,  531,  523,  499,  536,  499,
    1251       528,  533,  534,  538,  539,  542,  545,  536,  543,  546,
    1252       547,  542,  548,  539,  551,  537,  552,  543,  550,  553,
    1253       538,  548,  555,  545,  546,  547,  561,  550,  552,  558,
    1254       556,  551,  559,  562,  553,  556,  563,  555,  558,  566,
    1255       567,  559,  568,  569,  570,  572,  562,  567,  561,  566,
    1256       570,  573,  575,  563,  572,  569,  666,  576,  620,  621,
    1257       852,  573,  849,  603,  568,  620,  666,  623,  621,  575,
    1258       576,  595,  595,  595,  595,  595,  595,  596,  596,  596,
    1259       596,  596,  596,  598,  623,  598,  603,  622,  598,  598,
    1260 
    1261       598,  598,  598,  598,  601,  601,  601,  601,  601,  601,
    1262       622,  602,  602,  848,  595,  597,  597,  597,  597,  597,
    1263       597,  604,  619,  604,  624,  625,  604,  619,  629,  627,
    1264       626,  597,  625,  597,  602,  597,  597,  601,  626,  630,
    1265       619,  629,  631,  604,  632,  604,  627,  624,  597,  634,
    1266       604,  633,  636,  597,  637,  597,  639,  631,  597,  638,
    1267       597,  630,  641,  640,  642,  645,  632,  646,  633,  636,
    1268       643,  634,  640,  651,  638,  647,  639,  652,  654,  643,
    1269       641,  657,  637,  669,  647,  658,  642,  665,  645,  646,
    1270       657,  668,  658,  651,  703,  654,  665,  700,  669,  708,
    1271 
    1272       668,  847,  708,  846,  652,  687,  687,  687,  687,  687,
    1273       687,  691,  691,  691,  691,  691,  691,  701,  700,  705,
    1274       703,  687,  704,  687,  705,  687,  687,  701,  709,  704,
    1275       711,  706,  713,  715,  712,  716,  711,  714,  687,  717,
    1276       714,  713,  717,  687,  691,  687,  709,  712,  687,  718,
    1277       687,  706,  719,  720,  715,  721,  720,  722,  718,  723,
    1278       724,  725,  726,  729,  716,  722,  733,  732,  721,  723,
    1279       734,  726,  736,  724,  737,  758,  762,  765,  719,  755,
    1280       736,  756,  725,  737,  757,  760,  729,  732,  733,  757,
    1281       758,  734,  744,  744,  744,  744,  744,  744,  756,  755,
    1282 
    1283       759,  761,  762,  763,  764,  765,  763,  773,  760,  767,
    1284       759,  769,  767,  770,  769,  774,  771,  764,  761,  771,
    1285       770,  772,  773,  779,  772,  744,  794,  796,  798,  797,
    1286       799,  798,  800,  801,  804,  800,  801,  803,  774,  805,
    1287       807,  808,  805,  811,  808,  812,  779,  797,  796,  810,
    1288       827,  809,  799,  794,  809,  803,  828,  830,  810,  811,
    1289       804,  812,  807,  828,  829,  831,  830,  829,  833,  832,
    1290       836,  827,  832,  836,  839,  840,  851,  839,  841,  850,
    1291       864,  851,  854,  831,  840,  833,  855,  841,  850,  831,
    1292       853,  855,  854,  853,  857,  858,  859,  857,  858,  859,
    1293 
    1294       864,  865,  866,  867,  868,  866,  869,  868,  872,  869,
    1295       875,  876,  879,  867,  880,  881,  865,  882,  883,  884,
    1296       845,  879,  885,  844,  843,  842,  876,  880,  838,  837,
    1297       872,  875,  885,  835,  834,  826,  883,  881,  882,  825,
    1298       824,  884,  889,  889,  889,  889,  889,  889,  889,  889,
    1299       889,  889,  889,  889,  889,  890,  890,  890,  890,  890,
    1300       890,  890,  890,  890,  890,  890,  890,  890,  891,  891,
    1301       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1302       891,  892,  823,  822,  892,  821,  892,  892,  892,  892,
    1303       892,  893,  820,  819,  818,  893,  893,  893,  893,  893,
    1304 
    1305       893,  894,  894,  894,  894,  894,  894,  894,  894,  894,
    1306       894,  894,  894,  894,  895,  817,  816,  895,  815,  895,
    1307       895,  895,  895,  895,  896,  814,  896,  896,  813,  896,
    1308       896,  896,  896,  896,  896,  806,  896,  897,  802,  795,
    1309       897,  897,  897,  897,  897,  897,  897,  897,  793,  897,
    1310       898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
    1311       898,  898,  898,  899,  899,  792,  899,  791,  790,  789,
    1312       899,  900,  788,  787,  900,  786,  900,  900,  900,  900,
    1313       900,  901,  785,  901,  784,  783,  782,  901,  902,  781,
    1314       902,  780,  778,  777,  902,  903,  776,  903,  775,  768,
    1315 
    1316       766,  903,  904,  754,  904,  753,  752,  751,  904,  905,
    1317       750,  905,  749,  748,  747,  905,  906,  746,  906,  743,
    1318       742,  741,  906,  907,  735,  907,  731,  730,  728,  907,
    1319       908,  727,  908,  710,  702,  699,  908,  909,  694,  909,
    1320       692,  688,  678,  909,  910,  910,  910,  910,  910,  910,
    1321       910,  910,  910,  910,  910,  910,  910,  911,  674,  911,
    1322       912,  912,  672,  912,  912,  912,  670,  912,  913,  913,
    1323       667,  913,  914,  664,  914,  663,  662,  661,  914,  915,
    1324       660,  915,  659,  656,  655,  915,  916,  653,  916,  650,
    1325       649,  648,  916,  917,  644,  917,  918,  617,  918,  613,
    1326 
    1327       611,  609,  918,  919,  607,  919,  920,  605,  599,  920,
    1328       593,  920,  920,  920,  920,  920,  921,  921,  921,  921,
    1329       921,  921,  921,  921,  921,  921,  921,  921,  921,  922,
    1330       922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
    1331       922,  922,  923,  591,  923,  589,  587,  585,  923,  924,
    1332       583,  924,  581,  579,  578,  924,  925,  577,  925,  574,
    1333       571,  564,  925,  926,  560,  926,  927,  557,  927,  554,
    1334       549,  544,  927,  928,  541,  928,  929,  518,  929,  514,
    1335       512,  510,  929,  930,  508,  930,  931,  506,  931,  504,
    1336       503,  502,  931,  932,  501,  932,  933,  490,  933,  487,
    1337 
    1338       485,  484,  933,  934,  483,  934,  935,  481,  935,  479,
    1339       476,  474,  935,  936,  472,  936,  937,  470,  937,  466,
    1340       449,  447,  937,  938,  439,  938,  939,  437,  939,  429,
    1341       939,  427,  939,  940,  425,  940,  399,  940,  397,  940,
    1342       941,  941,  395,  941,  941,  941,  393,  941,  942,  392,
    1343       942,  391,  378,  368,  942,  943,  366,  943,  365,  361,
    1344       359,  943,  944,  357,  944,  355,  351,  349,  944,  945,
    1345       348,  945,  946,  347,  946,  337,  322,  299,  946,  947,
    1346       278,  947,  948,  276,  948,  274,  273,  272,  948,  949,
    1347       270,  949,  950,  269,  950,  264,  260,  259,  950,  951,
    1348 
    1349       255,  951,  952,  252,  251,  952,  240,  952,  952,  952,
    1350       952,  952,  953,  953,  953,  953,  953,  953,  953,  953,
    1351       953,  953,  953,  953,  953,  954,  239,  954,  232,  231,
    1352       228,  954,  955,  218,  955,  956,  216,  956,  215,  214,
    1353       208,  956,  957,  207,  957,  958,  205,  958,  200,  179,
    1354       150,  958,  959,  148,  959,  960,  147,  960,  141,  139,
    1355       137,  960,  961,  129,  961,  962,  126,  962,  125,  121,
    1356       101,  962,  963,   98,  963,  964,   95,  964,   93,   86,
    1357        72,  964,  965,   70,  965,  966,   66,  966,   36,   18,
    1358        11,  966,  967,    4,  967,    3,    0,    0,  967,  968,
    1359 
    1360         0,  968,  969,    0,  969,    0,    0,    0,  969,  970,
    1361         0,  970,  971,    0,  971,    0,  971,    0,  971,  972,
    1362         0,  972,    0,    0,    0,  972,  973,    0,  973,    0,
    1363         0,    0,  973,  974,    0,  974,  975,    0,  975,    0,
    1364         0,    0,  975,  976,    0,  976,  977,    0,  977,    0,
    1365         0,    0,  977,  978,    0,  978,  979,    0,  979,    0,
    1366         0,    0,  979,  980,    0,  980,  981,    0,  981,    0,
    1367         0,    0,  981,  982,    0,  982,  983,    0,  983,    0,
    1368         0,    0,  983,  984,    0,  984,  985,    0,    0,  985,
    1369         0,  985,  985,  985,  985,  985,  986,  986,  986,  986,
    1370 
    1371       986,  986,  986,  986,  986,  986,  986,  986,  986,  987,
    1372         0,  987,    0,    0,    0,  987,  988,    0,  988,  989,
    1373         0,  989,    0,    0,    0,  989,  990,    0,  990,  991,
    1374         0,  991,    0,    0,    0,  991,  992,    0,  992,  993,
    1375         0,  993,    0,    0,    0,  993,  994,    0,  994,  995,
    1376         0,  995,    0,    0,    0,  995,  996,    0,  996,  997,
    1377         0,  997,    0,    0,    0,  997,  998,    0,  998,  999,
    1378         0,  999,    0,    0,    0,  999, 1000,    0, 1000, 1001,
    1379         0, 1001,    0,    0,    0, 1001, 1002,    0, 1002, 1003,
    1380         0, 1003,    0,    0,    0, 1003, 1004,    0, 1004,    0,
    1381 
    1382         0,    0, 1004, 1005,    0, 1005, 1006,    0, 1006,    0,
    1383         0,    0, 1006, 1007,    0, 1007, 1008,    0, 1008,    0,
    1384         0,    0, 1008, 1009,    0, 1009, 1010,    0, 1010,    0,
    1385         0,    0, 1010, 1011,    0, 1011, 1012,    0, 1012, 1013,
    1386         0, 1013, 1014,    0,    0, 1014,    0, 1014, 1014, 1014,
    1387      1014, 1014, 1015,    0, 1015, 1016, 1016, 1016, 1016, 1016,
    1388      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1017,    0,
    1389      1017,    0,    0,    0, 1017, 1018,    0, 1018, 1019,    0,
    1390      1019,    0,    0,    0, 1019, 1020,    0, 1020, 1021,    0,
    1391      1021, 1022,    0, 1022, 1023,    0,    0, 1023,    0, 1023,
    1392 
    1393      1023, 1023, 1023, 1023, 1024,    0, 1024, 1025,    0, 1025,
    1394      1026,    0, 1026, 1027,    0, 1027, 1028,    0, 1028, 1029,
    1395         0, 1029, 1030,    0, 1030, 1031,    0, 1031,    0,    0,
    1396         0, 1031, 1032,    0, 1032, 1033,    0, 1033,    0,    0,
    1397         0, 1033, 1034,    0, 1034, 1035,    0, 1035, 1036,    0,
    1398      1036, 1037,    0, 1037, 1038,    0, 1038,    0,    0,    0,
    1399      1038, 1039,    0,    0, 1039,    0, 1039, 1039, 1039, 1039,
    1400      1039, 1040,    0, 1040, 1041,    0, 1041, 1042,    0, 1042,
    1401      1043,    0, 1043,    0,    0,    0, 1043, 1044,    0, 1044,
    1402         0,    0,    0, 1044, 1045,    0, 1045,    0,    0,    0,
    1403 
    1404      1045, 1046,    0, 1046, 1047,    0, 1047,    0,    0,    0,
    1405      1047, 1048,    0, 1048,    0,    0,    0, 1048, 1049,    0,
    1406      1049,    0,    0,    0, 1049, 1050,    0, 1050,    0,    0,
    1407         0, 1050, 1051,    0, 1051,    0,    0,    0, 1051, 1052,
    1408         0, 1052,    0,    0,    0, 1052, 1053,    0, 1053,    0,
    1409         0,    0, 1053, 1054,    0, 1054,    0,    0,    0, 1054,
    1410      1055,    0, 1055,    0,    0,    0, 1055, 1056,    0, 1056,
    1411         0,    0,    0, 1056, 1057,    0, 1057,    0,    0,    0,
    1412      1057, 1058,    0, 1058,    0,    0,    0, 1058, 1059,    0,
    1413      1059,    0,    0,    0, 1059, 1060,    0, 1060,    0,    0,
    1414 
    1415         0, 1060, 1061,    0, 1061,    0,    0,    0, 1061, 1062,
    1416         0, 1062,    0,    0,    0, 1062,  888,  888,  888,  888,
     1129       15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
     1130       27,   28,   28,   28,   28,   28,   28,  109,  115,   25,
     1131       29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
     1132        8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
     1133       30,   30,   30,   30,   35,   57,   35,   35,   44,  126,
     1134       44,  126,  109,  115,   57,   30,   64,   56,   47,   30,
     1135       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
     1136       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
     1137       62,   45,   49,   30,   73,  885,  127,   53,  127,   51,
     1138       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
     1139
     1140       31,   31,   31,   50,   51,   53,   51,   64,   61,   54,
     1141       73,   55,   50,   87,   31,   51,   50,   55,   31,   54,
     1142      108,   50,   52,  114,   31,   50,   54,   52,  175,  129,
     1143       31,  129,  107,  154,  151,   52,   31,   52,  107,   87,
     1144       52,   60,   31,  132,   52,  132,   60,  114,  175,  154,
     1145       31,   38,  151,  385,  111,   38,   38,   58,   38,   60,
     1146       38,   38,  113,   38,  107,   38,   59,  130,  113,   58,
     1147       58,  116,  111,  164,   38,   38,   38,  385,   59,   58,
     1148      111,  130,   58,  130,  142,   60,   59,  131,   60,  116,
     1149      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
     1150
     1151      110,  131,   60,   67,   67,   67,   67,   67,   67,  877,
     1152      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
     1153       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
     1154      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
     1155       82,   82,   82,   82,   82,   82,  876,  243,   77,   77,
     1156       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
     1157      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
     1158      133,  133,  137,  133,  137,   77,  145,  139,   77,  139,
     1159      157,  145,  243,   77,   77,  152,  156,   77,   77,  155,
     1160      166,  150,  157,  103,  104,   77,  159,  168,   77,  104,
     1161
     1162       77,   77,   77,  152,   77,   85,  150,  155,  156,   85,
     1163       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
     1164      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
     1165       85,  105,  163,  105,  105,  105,  105,  105,  105,  873,
     1166      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
     1167      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     1168      106,  106,  180,  171,  170,  173,  105,  176,  177,  170,
     1169      172,  181,  105,  174,  184,  187,  181,  182,  179,  180,
     1170       85,   99,   99,   99,   99,   99,   99,  170,  187,  106,
     1171      177,  174,  184,  179,  176,  183,  190,   99,   99,   99,
     1172
     1173      179,   99,   99,  189,  182,  186,  183,  191,  189,  218,
     1174      186,  218,  185,  188,   99,  190,  183,  183,  284,   99,
     1175       99,   99,  158,  185,   99,  186,   99,  158,  158,  158,
     1176      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
     1177      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
     1178      220,  191,  198,  198,  191,  192,  205,  198,  193,  872,
     1179      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
     1180      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
     1181      202,  223,  205,  223,  202,  221,  202,  221,  200,  200,
     1182      200,  200,  200,  200,  209,  209,  248,  338,  222,  209,
     1183
     1184      202,  202,  202,  202,  202,  202,  212,  212,  212,  212,
     1185      222,  309,  222,  224,  224,  225,  224,  225,  226,  226,
     1186      226,  228,  229,  228,  229,  234,  234,  235,  236,  235,
     1187      309,  279,  235,  235,  235,  235,  235,  235,  237,  212,
     1188      237,  338,  266,  237,  266,  267,  278,  267,  234,  279,
     1189      283,  236,  241,  241,  241,  283,  241,  241,  256,  278,
     1190      237,  281,  237,  282,  280,  235,  270,  237,  244,  244,
     1191      244,  244,  244,  244,  241,  241,  241,  281,  285,  241,
     1192      282,  241,  280,  285,  256,  244,  245,  245,  245,  245,
     1193      245,  245,  270,  288,  293,  286,  294,  300,  306,  293,
     1194
     1195      308,  244,  300,  306,  870,  294,  308,  244,  246,  246,
     1196      246,  246,  246,  246,  253,  286,  288,  255,  255,  255,
     1197      255,  255,  255,  287,  246,  247,  246,  247,  246,  246,
     1198      247,  247,  247,  247,  247,  247,  290,  253,  287,  253,
     1199      869,  246,  289,  253,  287,  287,  246,  292,  246,  253,
     1200      255,  246,  291,  246,  260,  260,  260,  260,  260,  260,
     1201      289,  253,  290,  292,  292,  253,  295,  291,  296,  253,
     1202      297,  299,  301,  302,  303,  304,  305,  307,  311,  295,
     1203      302,  301,  307,  310,  311,  312,  319,  260,  297,  299,
     1204      313,  314,  310,  304,  303,  296,  318,  305,  305,  313,
     1205
     1206      315,  312,  316,  317,  319,  315,  314,  316,  317,  320,
     1207      322,  323,  324,  326,  325,  318,  327,  328,  331,  329,
     1208      330,  322,  320,  332,  334,  317,  323,  325,  333,  330,
     1209      335,  324,  337,  339,  340,  326,  329,  328,  401,  327,
     1210      331,  337,  334,  335,  341,  343,  332,  340,  342,  401,
     1211      333,  339,  341,  342,  344,  344,  345,  460,  862,  344,
     1212      343,  344,  345,  352,  352,  352,  352,  353,  353,  353,
     1213      353,  362,  363,  362,  363,  370,  370,  370,  370,  370,
     1214      370,  372,  460,  372,  380,  381,  372,  372,  372,  372,
     1215      372,  372,  861,  402,  380,  381,  352,  371,  371,  371,
     1216
     1217      371,  371,  371,  374,  374,  374,  374,  374,  374,  402,
     1218      380,  381,  403,  371,  404,  371,  860,  371,  371,  375,
     1219      375,  375,  375,  375,  375,  383,  382,  403,  406,  405,
     1220      371,  383,  407,  404,  408,  371,  374,  371,  405,  406,
     1221      371,  407,  371,  376,  376,  376,  376,  376,  376,  382,
     1222      412,  382,  375,  387,  411,  382,  408,  383,  384,  386,
     1223      384,  382,  410,  384,  384,  384,  384,  384,  384,  409,
     1224      411,  387,  412,  382,  413,  410,  376,  382,  409,  387,
     1225      415,  382,  386,  414,  386,  416,  417,  413,  386,  418,
     1226      421,  417,  419,  422,  386,  420,  384,  427,  419,  414,
     1227
     1228      414,  421,  415,  416,  418,  423,  386,  425,  429,  427,
     1229      386,  418,  422,  430,  386,  431,  420,  432,  433,  434,
     1230      423,  425,  435,  437,  433,  439,  440,  441,  431,  429,
     1231      442,  435,  443,  444,  434,  430,  449,  445,  437,  447,
     1232      432,  450,  441,  451,  454,  439,  445,  443,  440,  452,
     1233      450,  453,  442,  444,  455,  456,  447,  457,  458,  449,
     1234      459,  461,  463,  455,  451,  458,  454,  459,  462,  452,
     1235      457,  453,  466,  456,  464,  467,  462,  525,  859,  463,
     1236      525,  468,  491,  461,  467,  464,  462,  468,  477,  477,
     1237      477,  477,  491,  515,  466,  488,  488,  488,  488,  488,
     1238
     1239      488,  490,  490,  490,  490,  490,  490,  519,  491,  521,
     1240      515,  488,  492,  488,  492,  488,  488,  492,  492,  492,
     1241      492,  492,  492,  494,  516,  495,  493,  519,  488,  855,
     1242      851,  521,  518,  488,  490,  488,  493,  516,  488,  529,
     1243      488,  497,  497,  497,  497,  497,  497,  518,  520,  494,
     1244      492,  495,  493,  498,  498,  498,  498,  498,  498,  523,
     1245      529,  520,  526,  848,  523,  847,  528,  846,  522,  498,
     1246      499,  498,  499,  498,  498,  499,  499,  499,  499,  499,
     1247      499,  522,  526,  524,  527,  528,  498,  531,  530,  532,
     1248      533,  498,  531,  498,  524,  534,  498,  530,  498,  527,
     1249
     1250      532,  535,  537,  533,  536,  538,  539,  541,  542,  547,
     1251      535,  539,  544,  541,  538,  545,  546,  542,  547,  537,
     1252      550,  551,  845,  549,  534,  552,  536,  554,  560,  544,
     1253      545,  546,  549,  551,  555,  557,  558,  550,  561,  555,
     1254      552,  562,  554,  565,  557,  558,  564,  567,  566,  568,
     1255      560,  561,  575,  565,  564,  566,  569,  571,  562,  574,
     1256      572,  568,  569,  620,  619,  575,  571,  601,  601,  567,
     1257      572,  619,  620,  844,  843,  622,  574,  594,  594,  594,
     1258      594,  594,  594,  595,  595,  595,  595,  595,  595,  597,
     1259      601,  597,  622,  621,  597,  597,  597,  597,  597,  597,
     1260
     1261      600,  600,  600,  600,  600,  600,  621,  602,  626,  842,
     1262      594,  596,  596,  596,  596,  596,  596,  603,  618,  603,
     1263      623,  624,  603,  618,  628,  626,  625,  596,  624,  596,
     1264      602,  596,  596,  600,  625,  627,  618,  628,  627,  603,
     1265      629,  603,  630,  623,  596,  631,  603,  632,  633,  596,
     1266      634,  596,  635,  634,  596,  636,  596,  630,  637,  638,
     1267      640,  644,  629,  639,  632,  641,  642,  631,  645,  635,
     1268      633,  646,  639,  637,  650,  642,  651,  656,  640,  638,
     1269      646,  653,  657,  636,  644,  665,  656,  641,  664,  657,
     1270      645,  667,  668,  841,  650,  665,  700,  664,  653,  699,
     1271
     1272      667,  702,  705,  651,  714,  837,  700,  668,  686,  686,
     1273      686,  686,  686,  686,  690,  690,  690,  690,  690,  690,
     1274      699,  708,  705,  703,  686,  714,  686,  702,  686,  686,
     1275      703,  704,  706,  715,  707,  706,  704,  707,  710,  708,
     1276      712,  686,  711,  717,  710,  718,  686,  690,  686,  712,
     1277      720,  686,  717,  686,  713,  711,  716,  713,  719,  716,
     1278      721,  719,  715,  720,  722,  723,  724,  725,  721,  728,
     1279      731,  718,  732,  735,  722,  733,  725,  736,  723,  756,
     1280      757,  735,  836,  754,  756,  759,  736,  724,  755,  760,
     1281      731,  761,  728,  764,  732,  757,  733,  743,  743,  743,
     1282
     1283      743,  743,  743,  754,  758,  755,  760,  762,  759,  763,
     1284      762,  769,  766,  768,  758,  766,  768,  761,  769,  772,
     1285      770,  764,  763,  770,  771,  773,  778,  771,  793,  795,
     1286      743,  798,  797,  796,  772,  797,  799,  800,  802,  799,
     1287      800,  803,  804,  806,  807,  804,  810,  807,  773,  778,
     1288      795,  796,  809,  798,  808,  793,  802,  808,  811,  826,
     1289      830,  809,  810,  827,  829,  806,  828,  803,  831,  828,
     1290      827,  831,  832,  829,  811,  834,  835,  839,  830,  835,
     1291      826,  840,  838,  849,  830,  838,  839,  853,  850,  832,
     1292      840,  852,  849,  850,  852,  854,  856,  853,  857,  856,
     1293
     1294      854,  857,  858,  863,  864,  858,  865,  866,  867,  865,
     1295      868,  867,  871,  868,  874,  875,  878,  866,  879,  864,
     1296      880,  882,  881,  863,  883,  878,  884,  833,  825,  824,
     1297      875,  879,  823,  822,  871,  874,  884,  821,  820,  882,
     1298      819,  818,  880,  881,  817,  816,  883,  888,  888,  888,
    14171299      888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1418       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1419       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1420       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1421       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1422       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1423       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1424       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1425 
    1426       888,  888
     1300      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     1301      889,  889,  889,  890,  890,  890,  890,  890,  890,  890,
     1302      890,  890,  890,  890,  890,  890,  891,  815,  814,  891,
     1303      813,  891,  891,  891,  891,  891,  892,  812,  805,  801,
     1304
     1305      892,  892,  892,  892,  892,  892,  893,  893,  893,  893,
     1306      893,  893,  893,  893,  893,  893,  893,  893,  893,  894,
     1307      794,  792,  894,  791,  894,  894,  894,  894,  894,  895,
     1308      790,  895,  895,  789,  895,  895,  895,  895,  895,  895,
     1309      788,  895,  896,  787,  786,  896,  896,  896,  896,  896,
     1310      896,  896,  896,  785,  896,  897,  897,  897,  897,  897,
     1311      897,  897,  897,  897,  897,  897,  897,  897,  898,  898,
     1312      784,  898,  783,  782,  781,  898,  899,  780,  779,  899,
     1313      777,  899,  899,  899,  899,  899,  900,  776,  900,  775,
     1314      774,  767,  900,  901,  765,  901,  753,  752,  751,  901,
     1315
     1316      902,  750,  902,  749,  748,  747,  902,  903,  746,  903,
     1317      745,  742,  741,  903,  904,  740,  904,  734,  730,  729,
     1318      904,  905,  727,  905,  726,  709,  701,  905,  906,  698,
     1319      906,  693,  691,  687,  906,  907,  677,  907,  673,  671,
     1320      669,  907,  908,  666,  908,  663,  662,  661,  908,  909,
     1321      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
     1322      909,  909,  910,  660,  910,  911,  911,  659,  911,  911,
     1323      911,  658,  911,  912,  912,  655,  912,  913,  654,  913,
     1324      652,  649,  648,  913,  914,  647,  914,  643,  616,  612,
     1325      914,  915,  610,  915,  608,  606,  604,  915,  916,  598,
     1326
     1327      916,  917,  592,  917,  590,  588,  586,  917,  918,  584,
     1328      918,  919,  582,  580,  919,  578,  919,  919,  919,  919,
     1329      919,  920,  920,  920,  920,  920,  920,  920,  920,  920,
     1330      920,  920,  920,  920,  921,  921,  921,  921,  921,  921,
     1331      921,  921,  921,  921,  921,  921,  921,  922,  577,  922,
     1332      576,  573,  570,  922,  923,  563,  923,  559,  556,  553,
     1333      923,  924,  548,  924,  543,  540,  517,  924,  925,  513,
     1334      925,  926,  511,  926,  509,  507,  505,  926,  927,  503,
     1335      927,  928,  502,  928,  501,  500,  489,  928,  929,  486,
     1336      929,  930,  484,  930,  483,  482,  480,  930,  931,  478,
     1337
     1338      931,  932,  475,  932,  473,  471,  469,  932,  933,  465,
     1339      933,  934,  448,  934,  446,  438,  436,  934,  935,  428,
     1340      935,  936,  426,  936,  424,  398,  396,  936,  937,  394,
     1341      937,  938,  392,  938,  391,  938,  390,  938,  939,  377,
     1342      939,  367,  939,  365,  939,  940,  940,  364,  940,  940,
     1343      940,  360,  940,  941,  358,  941,  356,  354,  350,  941,
     1344      942,  348,  942,  347,  346,  336,  942,  943,  321,  943,
     1345      298,  277,  275,  943,  944,  273,  944,  945,  272,  945,
     1346      271,  269,  268,  945,  946,  263,  946,  947,  259,  947,
     1347      258,  254,  251,  947,  948,  250,  948,  949,  239,  949,
     1348
     1349      238,  231,  230,  949,  950,  227,  950,  951,  217,  215,
     1350      951,  214,  951,  951,  951,  951,  951,  952,  952,  952,
     1351      952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
     1352      953,  213,  953,  207,  206,  204,  953,  954,  199,  954,
     1353      955,  178,  955,  149,  147,  146,  955,  956,  140,  956,
     1354      957,  138,  957,  136,  128,  125,  957,  958,  124,  958,
     1355      959,  120,  959,  101,   98,   95,  959,  960,   93,  960,
     1356      961,   86,  961,   72,   70,   66,  961,  962,   36,  962,
     1357      963,   33,  963,   18,   11,    4,  963,  964,    3,  964,
     1358      965,    0,  965,    0,    0,    0,  965,  966,    0,  966,
     1359
     1360        0,    0,    0,  966,  967,    0,  967,  968,    0,  968,
     1361        0,    0,    0,  968,  969,    0,  969,  970,    0,  970,
     1362        0,  970,    0,  970,  971,    0,  971,    0,    0,    0,
     1363      971,  972,    0,  972,    0,    0,    0,  972,  973,    0,
     1364      973,  974,    0,  974,    0,    0,    0,  974,  975,    0,
     1365      975,  976,    0,  976,    0,    0,    0,  976,  977,    0,
     1366      977,  978,    0,  978,    0,    0,    0,  978,  979,    0,
     1367      979,  980,    0,  980,    0,    0,    0,  980,  981,    0,
     1368      981,  982,    0,  982,    0,    0,    0,  982,  983,    0,
     1369      983,  984,    0,    0,  984,    0,  984,  984,  984,  984,
     1370
     1371      984,  985,  985,  985,  985,  985,  985,  985,  985,  985,
     1372      985,  985,  985,  985,  986,    0,  986,    0,    0,    0,
     1373      986,  987,    0,  987,  988,    0,  988,    0,    0,    0,
     1374      988,  989,    0,  989,  990,    0,  990,    0,    0,    0,
     1375      990,  991,    0,  991,  992,    0,  992,    0,    0,    0,
     1376      992,  993,    0,  993,  994,    0,  994,    0,    0,    0,
     1377      994,  995,    0,  995,  996,    0,  996,    0,    0,    0,
     1378      996,  997,    0,  997,  998,    0,  998,    0,    0,    0,
     1379      998,  999,    0,  999, 1000,    0, 1000,    0,    0,    0,
     1380     1000, 1001,    0, 1001, 1002,    0, 1002,    0,    0,    0,
     1381
     1382     1002, 1003,    0, 1003,    0,    0,    0, 1003, 1004,    0,
     1383     1004, 1005,    0, 1005,    0,    0,    0, 1005, 1006,    0,
     1384     1006, 1007,    0, 1007,    0,    0,    0, 1007, 1008,    0,
     1385     1008, 1009,    0, 1009,    0,    0,    0, 1009, 1010,    0,
     1386     1010, 1011,    0, 1011, 1012,    0, 1012, 1013,    0,    0,
     1387     1013,    0, 1013, 1013, 1013, 1013, 1013, 1014,    0, 1014,
     1388     1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
     1389     1015, 1015, 1015, 1016,    0, 1016,    0,    0,    0, 1016,
     1390     1017,    0, 1017, 1018,    0, 1018,    0,    0,    0, 1018,
     1391     1019,    0, 1019, 1020,    0, 1020, 1021,    0, 1021, 1022,
     1392
     1393        0,    0, 1022,    0, 1022, 1022, 1022, 1022, 1022, 1023,
     1394        0, 1023, 1024,    0, 1024, 1025,    0, 1025, 1026,    0,
     1395     1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0, 1029,
     1396     1030,    0, 1030,    0,    0,    0, 1030, 1031,    0, 1031,
     1397     1032,    0, 1032,    0,    0,    0, 1032, 1033,    0, 1033,
     1398     1034,    0, 1034, 1035,    0, 1035, 1036,    0, 1036, 1037,
     1399        0, 1037,    0,    0,    0, 1037, 1038,    0,    0, 1038,
     1400        0, 1038, 1038, 1038, 1038, 1038, 1039,    0, 1039, 1040,
     1401        0, 1040, 1041,    0, 1041, 1042,    0, 1042,    0,    0,
     1402        0, 1042, 1043,    0, 1043,    0,    0,    0, 1043, 1044,
     1403
     1404        0, 1044,    0,    0,    0, 1044, 1045,    0, 1045, 1046,
     1405        0, 1046,    0,    0,    0, 1046, 1047,    0, 1047,    0,
     1406        0,    0, 1047, 1048,    0, 1048,    0,    0,    0, 1048,
     1407     1049,    0, 1049,    0,    0,    0, 1049, 1050,    0, 1050,
     1408        0,    0,    0, 1050, 1051,    0, 1051,    0,    0,    0,
     1409     1051, 1052,    0, 1052,    0,    0,    0, 1052, 1053,    0,
     1410     1053,    0,    0,    0, 1053, 1054,    0, 1054,    0,    0,
     1411        0, 1054, 1055,    0, 1055,    0,    0,    0, 1055, 1056,
     1412        0, 1056,    0,    0,    0, 1056, 1057,    0, 1057,    0,
     1413        0,    0, 1057, 1058,    0, 1058,    0,    0,    0, 1058,
     1414
     1415     1059,    0, 1059,    0,    0,    0, 1059, 1060,    0, 1060,
     1416        0,    0,    0, 1060, 1061,    0, 1061,    0,    0,    0,
     1417     1061,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1418      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1419      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1420      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1421      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1422      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1423      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1424      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1425
     1426      887,  887,  887,  887,  887,  887,  887
    14271427    } ;
    14281428
    14291429/* Table of booleans, true if rule could match eol. */
    1430 static yyconst flex_int32_t yy_rule_can_match_eol[182] =
     1430static yyconst flex_int32_t yy_rule_can_match_eol[181] =
    14311431    {   0,
    143214321, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14391439    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14401440    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1441     0, 0,     };
     1441    0,     };
    14421442
    14431443static yy_state_type yy_last_accepting_state;
     
    14671467 * Created On       : Sat Sep 22 08:58:10 2001
    14681468 * Last Modified By : Peter A. Buhr
    1469  * Last Modified On : Mon Jun  6 18:08:27 2016
    1470  * Update Count     : 451
     1469 * Last Modified On : Wed Jun 22 21:20:18 2016
     1470 * Update Count     : 456
    14711471 */
    14721472#line 20 "lex.ll"
     
    15021502
    15031503void rm_underscore() {
    1504         // remove underscores in numeric constant
    1505         int j = 0;
     1504        // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string.
     1505        yyleng = 0;
    15061506        for ( int i = 0; yytext[i] != '\0'; i += 1 ) {
    15071507                if ( yytext[i] != '_' ) {
    1508                         yytext[j] = yytext[i];
    1509                         j += 1;
     1508                        yytext[yyleng] = yytext[i];
     1509                        yyleng += 1;
    15101510                } // if
    15111511        } // for
    1512         yyleng = j;
    15131512        yytext[yyleng] = '\0';
    15141513}
     
    15231522// ' stop highlighting
    15241523// display/white-space characters
    1525 // operators
    1526 
    1527 
    1528 
    1529 
    1530 #line 1531 "Parser/lex.cc"
     1524// overloadable operators
     1525// op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@="
     1526// operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}
     1527
     1528
     1529
     1530
     1531#line 1532 "Parser/lex.cc"
    15311532
    15321533#define INITIAL 0
     
    17201721        register int yy_act;
    17211722   
    1722 #line 139 "lex.ll"
     1723#line 138 "lex.ll"
    17231724
    17241725                                   /* line directives */
    1725 #line 1726 "Parser/lex.cc"
     1726#line 1727 "Parser/lex.cc"
    17261727
    17271728        if ( !(yy_init) )
     
    17771778                                {
    17781779                                yy_current_state = (int) yy_def[yy_current_state];
    1779                                 if ( yy_current_state >= 889 )
     1780                                if ( yy_current_state >= 888 )
    17801781                                        yy_c = yy_meta[(unsigned int) yy_c];
    17811782                                }
     
    17831784                        ++yy_cp;
    17841785                        }
    1785                 while ( yy_base[yy_current_state] != 2817 );
     1786                while ( yy_base[yy_current_state] != 2822 );
    17861787
    17871788yy_find_action:
     
    18201821/* rule 1 can match eol */
    18211822YY_RULE_SETUP
    1822 #line 141 "lex.ll"
     1823#line 140 "lex.ll"
    18231824{
    18241825        /* " stop highlighting */
     
    18471848/* rule 2 can match eol */
    18481849YY_RULE_SETUP
    1849 #line 164 "lex.ll"
     1850#line 163 "lex.ll"
    18501851;
    18511852        YY_BREAK
     
    18531854case 3:
    18541855YY_RULE_SETUP
    1855 #line 167 "lex.ll"
     1856#line 166 "lex.ll"
    18561857{ BEGIN COMMENT; }
    18571858        YY_BREAK
     
    18591860/* rule 4 can match eol */
    18601861YY_RULE_SETUP
     1862#line 167 "lex.ll"
     1863;
     1864        YY_BREAK
     1865case 5:
     1866YY_RULE_SETUP
    18611867#line 168 "lex.ll"
    1862 ;
    1863         YY_BREAK
    1864 case 5:
    1865 YY_RULE_SETUP
    1866 #line 169 "lex.ll"
    18671868{ BEGIN 0; }
    18681869        YY_BREAK
     
    18711872/* rule 6 can match eol */
    18721873YY_RULE_SETUP
    1873 #line 172 "lex.ll"
     1874#line 171 "lex.ll"
    18741875;
    18751876        YY_BREAK
     
    18771878case 7:
    18781879YY_RULE_SETUP
     1880#line 174 "lex.ll"
     1881{ WHITE_RETURN(' '); }
     1882        YY_BREAK
     1883case 8:
     1884YY_RULE_SETUP
    18791885#line 175 "lex.ll"
    18801886{ WHITE_RETURN(' '); }
    18811887        YY_BREAK
    1882 case 8:
    1883 YY_RULE_SETUP
    1884 #line 176 "lex.ll"
    1885 { WHITE_RETURN(' '); }
    1886         YY_BREAK
    18871888case 9:
    18881889/* rule 9 can match eol */
    18891890YY_RULE_SETUP
    1890 #line 177 "lex.ll"
     1891#line 176 "lex.ll"
    18911892{ NEWLINE_RETURN(); }
    18921893        YY_BREAK
     
    18941895case 10:
    18951896YY_RULE_SETUP
     1897#line 179 "lex.ll"
     1898{ KEYWORD_RETURN(ALIGNAS); }                    // C11
     1899        YY_BREAK
     1900case 11:
     1901YY_RULE_SETUP
    18961902#line 180 "lex.ll"
    1897 { KEYWORD_RETURN(ALIGNAS); }                    // C11
    1898         YY_BREAK
    1899 case 11:
     1903{ KEYWORD_RETURN(ALIGNOF); }                    // C11
     1904        YY_BREAK
     1905case 12:
    19001906YY_RULE_SETUP
    19011907#line 181 "lex.ll"
    1902 { KEYWORD_RETURN(ALIGNOF); }                    // C11
    1903         YY_BREAK
    1904 case 12:
     1908{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
     1909        YY_BREAK
     1910case 13:
    19051911YY_RULE_SETUP
    19061912#line 182 "lex.ll"
    19071913{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19081914        YY_BREAK
    1909 case 13:
     1915case 14:
    19101916YY_RULE_SETUP
    19111917#line 183 "lex.ll"
    1912 { KEYWORD_RETURN(ALIGNOF); }                    // GCC
    1913         YY_BREAK
    1914 case 14:
     1918{ KEYWORD_RETURN(ASM); }
     1919        YY_BREAK
     1920case 15:
    19151921YY_RULE_SETUP
    19161922#line 184 "lex.ll"
    1917 { KEYWORD_RETURN(ASM); }
    1918         YY_BREAK
    1919 case 15:
     1923{ KEYWORD_RETURN(ASM); }                                // GCC
     1924        YY_BREAK
     1925case 16:
    19201926YY_RULE_SETUP
    19211927#line 185 "lex.ll"
    19221928{ KEYWORD_RETURN(ASM); }                                // GCC
    19231929        YY_BREAK
    1924 case 16:
     1930case 17:
    19251931YY_RULE_SETUP
    19261932#line 186 "lex.ll"
    1927 { KEYWORD_RETURN(ASM); }                                // GCC
    1928         YY_BREAK
    1929 case 17:
     1933{ KEYWORD_RETURN(AT); }                                 // CFA
     1934        YY_BREAK
     1935case 18:
    19301936YY_RULE_SETUP
    19311937#line 187 "lex.ll"
    1932 { KEYWORD_RETURN(AT); }                                 // CFA
    1933         YY_BREAK
    1934 case 18:
     1938{ KEYWORD_RETURN(ATOMIC); }                             // C11
     1939        YY_BREAK
     1940case 19:
    19351941YY_RULE_SETUP
    19361942#line 188 "lex.ll"
    1937 { KEYWORD_RETURN(ATOMIC); }                             // C11
    1938         YY_BREAK
    1939 case 19:
     1943{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1944        YY_BREAK
     1945case 20:
    19401946YY_RULE_SETUP
    19411947#line 189 "lex.ll"
    19421948{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19431949        YY_BREAK
    1944 case 20:
     1950case 21:
    19451951YY_RULE_SETUP
    19461952#line 190 "lex.ll"
    1947 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    1948         YY_BREAK
    1949 case 21:
     1953{ KEYWORD_RETURN(AUTO); }
     1954        YY_BREAK
     1955case 22:
    19501956YY_RULE_SETUP
    19511957#line 191 "lex.ll"
    1952 { KEYWORD_RETURN(AUTO); }
    1953         YY_BREAK
    1954 case 22:
     1958{ KEYWORD_RETURN(BOOL); }                               // C99
     1959        YY_BREAK
     1960case 23:
    19551961YY_RULE_SETUP
    19561962#line 192 "lex.ll"
    1957 { KEYWORD_RETURN(BOOL); }                               // C99
    1958         YY_BREAK
    1959 case 23:
     1963{ KEYWORD_RETURN(BREAK); }
     1964        YY_BREAK
     1965case 24:
    19601966YY_RULE_SETUP
    19611967#line 193 "lex.ll"
    1962 { KEYWORD_RETURN(BREAK); }
    1963         YY_BREAK
    1964 case 24:
     1968{ KEYWORD_RETURN(CASE); }
     1969        YY_BREAK
     1970case 25:
    19651971YY_RULE_SETUP
    19661972#line 194 "lex.ll"
    1967 { KEYWORD_RETURN(CASE); }
    1968         YY_BREAK
    1969 case 25:
     1973{ KEYWORD_RETURN(CATCH); }                              // CFA
     1974        YY_BREAK
     1975case 26:
    19701976YY_RULE_SETUP
    19711977#line 195 "lex.ll"
    1972 { KEYWORD_RETURN(CATCH); }                              // CFA
    1973         YY_BREAK
    1974 case 26:
     1978{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
     1979        YY_BREAK
     1980case 27:
    19751981YY_RULE_SETUP
    19761982#line 196 "lex.ll"
    1977 { KEYWORD_RETURN(CATCHRESUME); }                // CFA
    1978         YY_BREAK
    1979 case 27:
     1983{ KEYWORD_RETURN(CHAR); }
     1984        YY_BREAK
     1985case 28:
    19801986YY_RULE_SETUP
    19811987#line 197 "lex.ll"
    1982 { KEYWORD_RETURN(CHAR); }
    1983         YY_BREAK
    1984 case 28:
     1988{ KEYWORD_RETURN(CHOOSE); }                             // CFA
     1989        YY_BREAK
     1990case 29:
    19851991YY_RULE_SETUP
    19861992#line 198 "lex.ll"
    1987 { KEYWORD_RETURN(CHOOSE); }                             // CFA
    1988         YY_BREAK
    1989 case 29:
     1993{ KEYWORD_RETURN(COMPLEX); }                    // C99
     1994        YY_BREAK
     1995case 30:
    19901996YY_RULE_SETUP
    19911997#line 199 "lex.ll"
    1992 { KEYWORD_RETURN(COMPLEX); }                    // C99
    1993         YY_BREAK
    1994 case 30:
     1998{ KEYWORD_RETURN(COMPLEX); }                    // GCC
     1999        YY_BREAK
     2000case 31:
    19952001YY_RULE_SETUP
    19962002#line 200 "lex.ll"
    19972003{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19982004        YY_BREAK
    1999 case 31:
     2005case 32:
    20002006YY_RULE_SETUP
    20012007#line 201 "lex.ll"
    2002 { KEYWORD_RETURN(COMPLEX); }                    // GCC
    2003         YY_BREAK
    2004 case 32:
     2008{ KEYWORD_RETURN(CONST); }
     2009        YY_BREAK
     2010case 33:
    20052011YY_RULE_SETUP
    20062012#line 202 "lex.ll"
    2007 { KEYWORD_RETURN(CONST); }
    2008         YY_BREAK
    2009 case 33:
     2013{ KEYWORD_RETURN(CONST); }                              // GCC
     2014        YY_BREAK
     2015case 34:
    20102016YY_RULE_SETUP
    20112017#line 203 "lex.ll"
    20122018{ KEYWORD_RETURN(CONST); }                              // GCC
    20132019        YY_BREAK
    2014 case 34:
     2020case 35:
    20152021YY_RULE_SETUP
    20162022#line 204 "lex.ll"
    2017 { KEYWORD_RETURN(CONST); }                              // GCC
    2018         YY_BREAK
    2019 case 35:
     2023{ KEYWORD_RETURN(CONTINUE); }
     2024        YY_BREAK
     2025case 36:
    20202026YY_RULE_SETUP
    20212027#line 205 "lex.ll"
    2022 { KEYWORD_RETURN(CONTINUE); }
    2023         YY_BREAK
    2024 case 36:
     2028{ KEYWORD_RETURN(DEFAULT); }
     2029        YY_BREAK
     2030case 37:
    20252031YY_RULE_SETUP
    20262032#line 206 "lex.ll"
    2027 { KEYWORD_RETURN(DEFAULT); }
    2028         YY_BREAK
    2029 case 37:
     2033{ KEYWORD_RETURN(DISABLE); }                    // CFA
     2034        YY_BREAK
     2035case 38:
    20302036YY_RULE_SETUP
    20312037#line 207 "lex.ll"
    2032 { KEYWORD_RETURN(DISABLE); }                    // CFA
    2033         YY_BREAK
    2034 case 38:
     2038{ KEYWORD_RETURN(DO); }
     2039        YY_BREAK
     2040case 39:
    20352041YY_RULE_SETUP
    20362042#line 208 "lex.ll"
    2037 { KEYWORD_RETURN(DO); }
    2038         YY_BREAK
    2039 case 39:
     2043{ KEYWORD_RETURN(DOUBLE); }
     2044        YY_BREAK
     2045case 40:
    20402046YY_RULE_SETUP
    20412047#line 209 "lex.ll"
    2042 { KEYWORD_RETURN(DOUBLE); }
    2043         YY_BREAK
    2044 case 40:
     2048{ KEYWORD_RETURN(DTYPE); }                              // CFA
     2049        YY_BREAK
     2050case 41:
    20452051YY_RULE_SETUP
    20462052#line 210 "lex.ll"
    2047 { KEYWORD_RETURN(DTYPE); }                              // CFA
    2048         YY_BREAK
    2049 case 41:
     2053{ KEYWORD_RETURN(ELSE); }
     2054        YY_BREAK
     2055case 42:
    20502056YY_RULE_SETUP
    20512057#line 211 "lex.ll"
    2052 { KEYWORD_RETURN(ELSE); }
    2053         YY_BREAK
    2054 case 42:
     2058{ KEYWORD_RETURN(ENABLE); }                             // CFA
     2059        YY_BREAK
     2060case 43:
    20552061YY_RULE_SETUP
    20562062#line 212 "lex.ll"
    2057 { KEYWORD_RETURN(ENABLE); }                             // CFA
    2058         YY_BREAK
    2059 case 43:
     2063{ KEYWORD_RETURN(ENUM); }
     2064        YY_BREAK
     2065case 44:
    20602066YY_RULE_SETUP
    20612067#line 213 "lex.ll"
    2062 { KEYWORD_RETURN(ENUM); }
    2063         YY_BREAK
    2064 case 44:
     2068{ KEYWORD_RETURN(EXTENSION); }                  // GCC
     2069        YY_BREAK
     2070case 45:
    20652071YY_RULE_SETUP
    20662072#line 214 "lex.ll"
    2067 { KEYWORD_RETURN(EXTENSION); }                  // GCC
    2068         YY_BREAK
    2069 case 45:
     2073{ KEYWORD_RETURN(EXTERN); }
     2074        YY_BREAK
     2075case 46:
    20702076YY_RULE_SETUP
    20712077#line 215 "lex.ll"
    2072 { KEYWORD_RETURN(EXTERN); }
    2073         YY_BREAK
    2074 case 46:
     2078{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2079        YY_BREAK
     2080case 47:
    20752081YY_RULE_SETUP
    20762082#line 216 "lex.ll"
    2077 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    2078         YY_BREAK
    2079 case 47:
     2083{ KEYWORD_RETURN(FINALLY); }                    // CFA
     2084        YY_BREAK
     2085case 48:
    20802086YY_RULE_SETUP
    20812087#line 217 "lex.ll"
    2082 { KEYWORD_RETURN(FINALLY); }                    // CFA
    2083         YY_BREAK
    2084 case 48:
     2088{ KEYWORD_RETURN(FLOAT); }
     2089        YY_BREAK
     2090case 49:
    20852091YY_RULE_SETUP
    20862092#line 218 "lex.ll"
    2087 { KEYWORD_RETURN(FLOAT); }
    2088         YY_BREAK
    2089 case 49:
     2093{ KEYWORD_RETURN(FLOAT); }                              // GCC
     2094        YY_BREAK
     2095case 50:
    20902096YY_RULE_SETUP
    20912097#line 219 "lex.ll"
    2092 { KEYWORD_RETURN(FLOAT); }                              // GCC
    2093         YY_BREAK
    2094 case 50:
     2098{ KEYWORD_RETURN(FOR); }
     2099        YY_BREAK
     2100case 51:
    20952101YY_RULE_SETUP
    20962102#line 220 "lex.ll"
    2097 { KEYWORD_RETURN(FOR); }
    2098         YY_BREAK
    2099 case 51:
     2103{ KEYWORD_RETURN(FORALL); }                             // CFA
     2104        YY_BREAK
     2105case 52:
    21002106YY_RULE_SETUP
    21012107#line 221 "lex.ll"
    2102 { KEYWORD_RETURN(FORALL); }                             // CFA
    2103         YY_BREAK
    2104 case 52:
     2108{ KEYWORD_RETURN(FORTRAN); }
     2109        YY_BREAK
     2110case 53:
    21052111YY_RULE_SETUP
    21062112#line 222 "lex.ll"
    2107 { KEYWORD_RETURN(FORTRAN); }
    2108         YY_BREAK
    2109 case 53:
     2113{ KEYWORD_RETURN(FTYPE); }                              // CFA
     2114        YY_BREAK
     2115case 54:
    21102116YY_RULE_SETUP
    21112117#line 223 "lex.ll"
    2112 { KEYWORD_RETURN(FTYPE); }                              // CFA
    2113         YY_BREAK
    2114 case 54:
     2118{ KEYWORD_RETURN(GENERIC); }                    // C11
     2119        YY_BREAK
     2120case 55:
    21152121YY_RULE_SETUP
    21162122#line 224 "lex.ll"
    2117 { KEYWORD_RETURN(GENERIC); }                    // C11
    2118         YY_BREAK
    2119 case 55:
     2123{ KEYWORD_RETURN(GOTO); }
     2124        YY_BREAK
     2125case 56:
    21202126YY_RULE_SETUP
    21212127#line 225 "lex.ll"
    2122 { KEYWORD_RETURN(GOTO); }
    2123         YY_BREAK
    2124 case 56:
     2128{ KEYWORD_RETURN(IF); }
     2129        YY_BREAK
     2130case 57:
    21252131YY_RULE_SETUP
    21262132#line 226 "lex.ll"
    2127 { KEYWORD_RETURN(IF); }
    2128         YY_BREAK
    2129 case 57:
     2133{ KEYWORD_RETURN(IMAGINARY); }                  // C99
     2134        YY_BREAK
     2135case 58:
    21302136YY_RULE_SETUP
    21312137#line 227 "lex.ll"
    2132 { KEYWORD_RETURN(IMAGINARY); }                  // C99
    2133         YY_BREAK
    2134 case 58:
     2138{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2139        YY_BREAK
     2140case 59:
    21352141YY_RULE_SETUP
    21362142#line 228 "lex.ll"
    21372143{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21382144        YY_BREAK
    2139 case 59:
     2145case 60:
    21402146YY_RULE_SETUP
    21412147#line 229 "lex.ll"
    2142 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2143         YY_BREAK
    2144 case 60:
     2148{ KEYWORD_RETURN(INLINE); }                             // C99
     2149        YY_BREAK
     2150case 61:
    21452151YY_RULE_SETUP
    21462152#line 230 "lex.ll"
    2147 { KEYWORD_RETURN(INLINE); }                             // C99
    2148         YY_BREAK
    2149 case 61:
     2153{ KEYWORD_RETURN(INLINE); }                             // GCC
     2154        YY_BREAK
     2155case 62:
    21502156YY_RULE_SETUP
    21512157#line 231 "lex.ll"
    21522158{ KEYWORD_RETURN(INLINE); }                             // GCC
    21532159        YY_BREAK
    2154 case 62:
     2160case 63:
    21552161YY_RULE_SETUP
    21562162#line 232 "lex.ll"
    2157 { KEYWORD_RETURN(INLINE); }                             // GCC
    2158         YY_BREAK
    2159 case 63:
     2163{ KEYWORD_RETURN(INT); }
     2164        YY_BREAK
     2165case 64:
    21602166YY_RULE_SETUP
    21612167#line 233 "lex.ll"
    2162 { KEYWORD_RETURN(INT); }
    2163         YY_BREAK
    2164 case 64:
     2168{ KEYWORD_RETURN(INT); }                                // GCC
     2169        YY_BREAK
     2170case 65:
    21652171YY_RULE_SETUP
    21662172#line 234 "lex.ll"
    2167 { KEYWORD_RETURN(INT); }                                // GCC
    2168         YY_BREAK
    2169 case 65:
     2173{ KEYWORD_RETURN(LABEL); }                              // GCC
     2174        YY_BREAK
     2175case 66:
    21702176YY_RULE_SETUP
    21712177#line 235 "lex.ll"
    2172 { KEYWORD_RETURN(LABEL); }                              // GCC
    2173         YY_BREAK
    2174 case 66:
     2178{ KEYWORD_RETURN(LONG); }
     2179        YY_BREAK
     2180case 67:
    21752181YY_RULE_SETUP
    21762182#line 236 "lex.ll"
    2177 { KEYWORD_RETURN(LONG); }
    2178         YY_BREAK
    2179 case 67:
     2183{ KEYWORD_RETURN(LVALUE); }                             // CFA
     2184        YY_BREAK
     2185case 68:
    21802186YY_RULE_SETUP
    21812187#line 237 "lex.ll"
    2182 { KEYWORD_RETURN(LVALUE); }                             // CFA
    2183         YY_BREAK
    2184 case 68:
     2188{ KEYWORD_RETURN(NORETURN); }                   // C11
     2189        YY_BREAK
     2190case 69:
    21852191YY_RULE_SETUP
    21862192#line 238 "lex.ll"
    2187 { KEYWORD_RETURN(NORETURN); }                   // C11
    2188         YY_BREAK
    2189 case 69:
     2193{ KEYWORD_RETURN(OFFSETOF); }           // GCC
     2194        YY_BREAK
     2195case 70:
    21902196YY_RULE_SETUP
    21912197#line 239 "lex.ll"
    2192 { KEYWORD_RETURN(OFFSETOF); }           // GCC
    2193         YY_BREAK
    2194 case 70:
     2198{ KEYWORD_RETURN(OTYPE); }                              // CFA
     2199        YY_BREAK
     2200case 71:
    21952201YY_RULE_SETUP
    21962202#line 240 "lex.ll"
    2197 { KEYWORD_RETURN(OTYPE); }                              // CFA
    2198         YY_BREAK
    2199 case 71:
     2203{ KEYWORD_RETURN(REGISTER); }
     2204        YY_BREAK
     2205case 72:
    22002206YY_RULE_SETUP
    22012207#line 241 "lex.ll"
    2202 { KEYWORD_RETURN(REGISTER); }
    2203         YY_BREAK
    2204 case 72:
     2208{ KEYWORD_RETURN(RESTRICT); }                   // C99
     2209        YY_BREAK
     2210case 73:
    22052211YY_RULE_SETUP
    22062212#line 242 "lex.ll"
    2207 { KEYWORD_RETURN(RESTRICT); }                   // C99
    2208         YY_BREAK
    2209 case 73:
     2213{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2214        YY_BREAK
     2215case 74:
    22102216YY_RULE_SETUP
    22112217#line 243 "lex.ll"
    22122218{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22132219        YY_BREAK
    2214 case 74:
     2220case 75:
    22152221YY_RULE_SETUP
    22162222#line 244 "lex.ll"
    2217 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    2218         YY_BREAK
    2219 case 75:
     2223{ KEYWORD_RETURN(RETURN); }
     2224        YY_BREAK
     2225case 76:
    22202226YY_RULE_SETUP
    22212227#line 245 "lex.ll"
    2222 { KEYWORD_RETURN(RETURN); }
    2223         YY_BREAK
    2224 case 76:
     2228{ KEYWORD_RETURN(SHORT); }
     2229        YY_BREAK
     2230case 77:
    22252231YY_RULE_SETUP
    22262232#line 246 "lex.ll"
    2227 { KEYWORD_RETURN(SHORT); }
    2228         YY_BREAK
    2229 case 77:
     2233{ KEYWORD_RETURN(SIGNED); }
     2234        YY_BREAK
     2235case 78:
    22302236YY_RULE_SETUP
    22312237#line 247 "lex.ll"
    2232 { KEYWORD_RETURN(SIGNED); }
    2233         YY_BREAK
    2234 case 78:
     2238{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2239        YY_BREAK
     2240case 79:
    22352241YY_RULE_SETUP
    22362242#line 248 "lex.ll"
    22372243{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22382244        YY_BREAK
    2239 case 79:
     2245case 80:
    22402246YY_RULE_SETUP
    22412247#line 249 "lex.ll"
    2242 { KEYWORD_RETURN(SIGNED); }                             // GCC
    2243         YY_BREAK
    2244 case 80:
     2248{ KEYWORD_RETURN(SIZEOF); }
     2249        YY_BREAK
     2250case 81:
    22452251YY_RULE_SETUP
    22462252#line 250 "lex.ll"
    2247 { KEYWORD_RETURN(SIZEOF); }
    2248         YY_BREAK
    2249 case 81:
     2253{ KEYWORD_RETURN(STATIC); }
     2254        YY_BREAK
     2255case 82:
    22502256YY_RULE_SETUP
    22512257#line 251 "lex.ll"
    2252 { KEYWORD_RETURN(STATIC); }
    2253         YY_BREAK
    2254 case 82:
     2258{ KEYWORD_RETURN(STATICASSERT); }               // C11
     2259        YY_BREAK
     2260case 83:
    22552261YY_RULE_SETUP
    22562262#line 252 "lex.ll"
    2257 { KEYWORD_RETURN(STATICASSERT); }               // C11
    2258         YY_BREAK
    2259 case 83:
     2263{ KEYWORD_RETURN(STRUCT); }
     2264        YY_BREAK
     2265case 84:
    22602266YY_RULE_SETUP
    22612267#line 253 "lex.ll"
    2262 { KEYWORD_RETURN(STRUCT); }
    2263         YY_BREAK
    2264 case 84:
     2268{ KEYWORD_RETURN(SWITCH); }
     2269        YY_BREAK
     2270case 85:
    22652271YY_RULE_SETUP
    22662272#line 254 "lex.ll"
    2267 { KEYWORD_RETURN(SWITCH); }
    2268         YY_BREAK
    2269 case 85:
     2273{ KEYWORD_RETURN(THREADLOCAL); }                // C11
     2274        YY_BREAK
     2275case 86:
    22702276YY_RULE_SETUP
    22712277#line 255 "lex.ll"
    2272 { KEYWORD_RETURN(THREADLOCAL); }                // C11
    2273         YY_BREAK
    2274 case 86:
     2278{ KEYWORD_RETURN(THROW); }                              // CFA
     2279        YY_BREAK
     2280case 87:
    22752281YY_RULE_SETUP
    22762282#line 256 "lex.ll"
    2277 { KEYWORD_RETURN(THROW); }                              // CFA
    2278         YY_BREAK
    2279 case 87:
     2283{ KEYWORD_RETURN(THROWRESUME); }                // CFA
     2284        YY_BREAK
     2285case 88:
    22802286YY_RULE_SETUP
    22812287#line 257 "lex.ll"
    2282 { KEYWORD_RETURN(THROWRESUME); }                // CFA
    2283         YY_BREAK
    2284 case 88:
     2288{ KEYWORD_RETURN(TRAIT); }                              // CFA
     2289        YY_BREAK
     2290case 89:
    22852291YY_RULE_SETUP
    22862292#line 258 "lex.ll"
    2287 { KEYWORD_RETURN(TRAIT); }                              // CFA
    2288         YY_BREAK
    2289 case 89:
     2293{ KEYWORD_RETURN(TRY); }                                // CFA
     2294        YY_BREAK
     2295case 90:
    22902296YY_RULE_SETUP
    22912297#line 259 "lex.ll"
    2292 { KEYWORD_RETURN(TRY); }                                // CFA
    2293         YY_BREAK
    2294 case 90:
     2298{ KEYWORD_RETURN(TYPEDEF); }
     2299        YY_BREAK
     2300case 91:
    22952301YY_RULE_SETUP
    22962302#line 260 "lex.ll"
    2297 { KEYWORD_RETURN(TYPEDEF); }
    2298         YY_BREAK
    2299 case 91:
     2303{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2304        YY_BREAK
     2305case 92:
    23002306YY_RULE_SETUP
    23012307#line 261 "lex.ll"
    23022308{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23032309        YY_BREAK
    2304 case 92:
     2310case 93:
    23052311YY_RULE_SETUP
    23062312#line 262 "lex.ll"
    23072313{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23082314        YY_BREAK
    2309 case 93:
     2315case 94:
    23102316YY_RULE_SETUP
    23112317#line 263 "lex.ll"
    2312 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2313         YY_BREAK
    2314 case 94:
     2318{ KEYWORD_RETURN(UNION); }
     2319        YY_BREAK
     2320case 95:
    23152321YY_RULE_SETUP
    23162322#line 264 "lex.ll"
    2317 { KEYWORD_RETURN(UNION); }
    2318         YY_BREAK
    2319 case 95:
     2323{ KEYWORD_RETURN(UNSIGNED); }
     2324        YY_BREAK
     2325case 96:
    23202326YY_RULE_SETUP
    23212327#line 265 "lex.ll"
    2322 { KEYWORD_RETURN(UNSIGNED); }
    2323         YY_BREAK
    2324 case 96:
     2328{ KEYWORD_RETURN(VALIST); }                     // GCC
     2329        YY_BREAK
     2330case 97:
    23252331YY_RULE_SETUP
    23262332#line 266 "lex.ll"
    2327 { KEYWORD_RETURN(VALIST); }                     // GCC
    2328         YY_BREAK
    2329 case 97:
     2333{ KEYWORD_RETURN(VOID); }
     2334        YY_BREAK
     2335case 98:
    23302336YY_RULE_SETUP
    23312337#line 267 "lex.ll"
    2332 { KEYWORD_RETURN(VOID); }
    2333         YY_BREAK
    2334 case 98:
     2338{ KEYWORD_RETURN(VOLATILE); }
     2339        YY_BREAK
     2340case 99:
    23352341YY_RULE_SETUP
    23362342#line 268 "lex.ll"
    2337 { KEYWORD_RETURN(VOLATILE); }
    2338         YY_BREAK
    2339 case 99:
     2343{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2344        YY_BREAK
     2345case 100:
    23402346YY_RULE_SETUP
    23412347#line 269 "lex.ll"
    23422348{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23432349        YY_BREAK
    2344 case 100:
     2350case 101:
    23452351YY_RULE_SETUP
    23462352#line 270 "lex.ll"
    2347 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2348         YY_BREAK
    2349 case 101:
    2350 YY_RULE_SETUP
    2351 #line 271 "lex.ll"
    23522353{ KEYWORD_RETURN(WHILE); }
    23532354        YY_BREAK
     
    23552356case 102:
    23562357YY_RULE_SETUP
     2358#line 273 "lex.ll"
     2359{ IDENTIFIER_RETURN(); }
     2360        YY_BREAK
     2361case 103:
     2362YY_RULE_SETUP
    23572363#line 274 "lex.ll"
     2364{ ATTRIBUTE_RETURN(); }
     2365        YY_BREAK
     2366case 104:
     2367YY_RULE_SETUP
     2368#line 275 "lex.ll"
     2369{ BEGIN BKQUOTE; }
     2370        YY_BREAK
     2371case 105:
     2372YY_RULE_SETUP
     2373#line 276 "lex.ll"
    23582374{ IDENTIFIER_RETURN(); }
    23592375        YY_BREAK
    2360 case 103:
    2361 YY_RULE_SETUP
    2362 #line 275 "lex.ll"
    2363 { ATTRIBUTE_RETURN(); }
    2364         YY_BREAK
    2365 case 104:
    2366 YY_RULE_SETUP
    2367 #line 276 "lex.ll"
    2368 { BEGIN BKQUOTE; }
    2369         YY_BREAK
    2370 case 105:
     2376case 106:
    23712377YY_RULE_SETUP
    23722378#line 277 "lex.ll"
    2373 { IDENTIFIER_RETURN(); }
    2374         YY_BREAK
    2375 case 106:
    2376 YY_RULE_SETUP
    2377 #line 278 "lex.ll"
    23782379{ BEGIN 0; }
    23792380        YY_BREAK
     
    23812382case 107:
    23822383YY_RULE_SETUP
     2384#line 280 "lex.ll"
     2385{ NUMERIC_RETURN(ZERO); }                               // CFA
     2386        YY_BREAK
     2387case 108:
     2388YY_RULE_SETUP
    23832389#line 281 "lex.ll"
    2384 { NUMERIC_RETURN(ZERO); }                               // CFA
    2385         YY_BREAK
    2386 case 108:
     2390{ NUMERIC_RETURN(ONE); }                                // CFA
     2391        YY_BREAK
     2392case 109:
    23872393YY_RULE_SETUP
    23882394#line 282 "lex.ll"
    2389 { NUMERIC_RETURN(ONE); }                                // CFA
    2390         YY_BREAK
    2391 case 109:
     2395{ NUMERIC_RETURN(INTEGERconstant); }
     2396        YY_BREAK
     2397case 110:
    23922398YY_RULE_SETUP
    23932399#line 283 "lex.ll"
    23942400{ NUMERIC_RETURN(INTEGERconstant); }
    23952401        YY_BREAK
    2396 case 110:
     2402case 111:
    23972403YY_RULE_SETUP
    23982404#line 284 "lex.ll"
    23992405{ NUMERIC_RETURN(INTEGERconstant); }
    24002406        YY_BREAK
    2401 case 111:
     2407case 112:
    24022408YY_RULE_SETUP
    24032409#line 285 "lex.ll"
    2404 { NUMERIC_RETURN(INTEGERconstant); }
    2405         YY_BREAK
    2406 case 112:
     2410{ NUMERIC_RETURN(FLOATINGconstant); }
     2411        YY_BREAK
     2412case 113:
    24072413YY_RULE_SETUP
    24082414#line 286 "lex.ll"
    24092415{ NUMERIC_RETURN(FLOATINGconstant); }
    24102416        YY_BREAK
    2411 case 113:
    2412 YY_RULE_SETUP
    2413 #line 287 "lex.ll"
    2414 { NUMERIC_RETURN(FLOATINGconstant); }
    2415         YY_BREAK
    24162417/* character constant, allows empty value */
    24172418case 114:
    24182419YY_RULE_SETUP
     2420#line 289 "lex.ll"
     2421{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2422        YY_BREAK
     2423case 115:
     2424YY_RULE_SETUP
    24192425#line 290 "lex.ll"
    2420 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    2421         YY_BREAK
    2422 case 115:
    2423 YY_RULE_SETUP
    2424 #line 291 "lex.ll"
    24252426{ *strtext += std::string( yytext ); }
    24262427        YY_BREAK
     
    24282429/* rule 116 can match eol */
    24292430YY_RULE_SETUP
    2430 #line 292 "lex.ll"
     2431#line 291 "lex.ll"
    24312432{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    24322433        YY_BREAK
     
    24352436case 117:
    24362437YY_RULE_SETUP
     2438#line 295 "lex.ll"
     2439{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2440        YY_BREAK
     2441case 118:
     2442YY_RULE_SETUP
    24372443#line 296 "lex.ll"
    2438 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    2439         YY_BREAK
    2440 case 118:
    2441 YY_RULE_SETUP
    2442 #line 297 "lex.ll"
    24432444{ *strtext += std::string( yytext ); }
    24442445        YY_BREAK
     
    24462447/* rule 119 can match eol */
    24472448YY_RULE_SETUP
    2448 #line 298 "lex.ll"
     2449#line 297 "lex.ll"
    24492450{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24502451        YY_BREAK
     
    24532454case 120:
    24542455YY_RULE_SETUP
    2455 #line 302 "lex.ll"
     2456#line 301 "lex.ll"
    24562457{ rm_underscore(); *strtext += std::string( yytext ); }
    24572458        YY_BREAK
     
    24592460/* rule 121 can match eol */
    24602461YY_RULE_SETUP
     2462#line 302 "lex.ll"
     2463{}                                              // continuation (ALSO HANDLED BY CPP)
     2464        YY_BREAK
     2465case 122:
     2466YY_RULE_SETUP
    24612467#line 303 "lex.ll"
    2462 {}                                              // continuation (ALSO HANDLED BY CPP)
    2463         YY_BREAK
    2464 case 122:
    2465 YY_RULE_SETUP
    2466 #line 304 "lex.ll"
    24672468{ *strtext += std::string( yytext ); } // unknown escape character
    24682469        YY_BREAK
     
    24702471case 123:
    24712472YY_RULE_SETUP
     2473#line 306 "lex.ll"
     2474{ ASCIIOP_RETURN(); }
     2475        YY_BREAK
     2476case 124:
     2477YY_RULE_SETUP
    24722478#line 307 "lex.ll"
    24732479{ ASCIIOP_RETURN(); }
    24742480        YY_BREAK
    2475 case 124:
     2481case 125:
    24762482YY_RULE_SETUP
    24772483#line 308 "lex.ll"
    24782484{ ASCIIOP_RETURN(); }
    24792485        YY_BREAK
    2480 case 125:
     2486case 126:
    24812487YY_RULE_SETUP
    24822488#line 309 "lex.ll"
    24832489{ ASCIIOP_RETURN(); }
    24842490        YY_BREAK
    2485 case 126:
     2491case 127:
    24862492YY_RULE_SETUP
    24872493#line 310 "lex.ll"
    24882494{ ASCIIOP_RETURN(); }
    24892495        YY_BREAK
    2490 case 127:
     2496case 128:
    24912497YY_RULE_SETUP
    24922498#line 311 "lex.ll"
    24932499{ ASCIIOP_RETURN(); }
    24942500        YY_BREAK
    2495 case 128:
     2501case 129:
    24962502YY_RULE_SETUP
    24972503#line 312 "lex.ll"
     2504{ ASCIIOP_RETURN(); }                                   // also operator
     2505        YY_BREAK
     2506case 130:
     2507YY_RULE_SETUP
     2508#line 313 "lex.ll"
    24982509{ ASCIIOP_RETURN(); }
    24992510        YY_BREAK
    2500 case 129:
    2501 YY_RULE_SETUP
    2502 #line 313 "lex.ll"
    2503 { ASCIIOP_RETURN(); }                                   // also operator
    2504         YY_BREAK
    2505 case 130:
     2511case 131:
    25062512YY_RULE_SETUP
    25072513#line 314 "lex.ll"
    25082514{ ASCIIOP_RETURN(); }
    25092515        YY_BREAK
    2510 case 131:
     2516case 132:
    25112517YY_RULE_SETUP
    25122518#line 315 "lex.ll"
    2513 { ASCIIOP_RETURN(); }
    2514         YY_BREAK
    2515 case 132:
     2519{ ASCIIOP_RETURN(); }                                   // also operator
     2520        YY_BREAK
     2521case 133:
    25162522YY_RULE_SETUP
    25172523#line 316 "lex.ll"
    2518 { ASCIIOP_RETURN(); }                                   // also operator
    2519         YY_BREAK
    2520 case 133:
    2521 YY_RULE_SETUP
    2522 #line 317 "lex.ll"
    25232524{ NAMEDOP_RETURN(ELLIPSIS); }
    25242525        YY_BREAK
     
    25262527case 134:
    25272528YY_RULE_SETUP
     2529#line 319 "lex.ll"
     2530{ RETURN_VAL('['); }
     2531        YY_BREAK
     2532case 135:
     2533YY_RULE_SETUP
    25282534#line 320 "lex.ll"
    2529 { RETURN_VAL('['); }
    2530         YY_BREAK
    2531 case 135:
     2535{ RETURN_VAL(']'); }
     2536        YY_BREAK
     2537case 136:
    25322538YY_RULE_SETUP
    25332539#line 321 "lex.ll"
    2534 { RETURN_VAL(']'); }
    2535         YY_BREAK
    2536 case 136:
     2540{ RETURN_VAL('{'); }
     2541        YY_BREAK
     2542case 137:
    25372543YY_RULE_SETUP
    25382544#line 322 "lex.ll"
    2539 { RETURN_VAL('{'); }
    2540         YY_BREAK
    2541 case 137:
    2542 YY_RULE_SETUP
    2543 #line 323 "lex.ll"
    25442545{ RETURN_VAL('}'); }
    25452546        YY_BREAK
     
    25472548case 138:
    25482549YY_RULE_SETUP
     2550#line 325 "lex.ll"
     2551{ ASCIIOP_RETURN(); }
     2552        YY_BREAK
     2553case 139:
     2554YY_RULE_SETUP
    25492555#line 326 "lex.ll"
    25502556{ ASCIIOP_RETURN(); }
    25512557        YY_BREAK
    2552 case 139:
     2558case 140:
    25532559YY_RULE_SETUP
    25542560#line 327 "lex.ll"
    25552561{ ASCIIOP_RETURN(); }
    25562562        YY_BREAK
    2557 case 140:
     2563case 141:
    25582564YY_RULE_SETUP
    25592565#line 328 "lex.ll"
    25602566{ ASCIIOP_RETURN(); }
    25612567        YY_BREAK
    2562 case 141:
     2568case 142:
    25632569YY_RULE_SETUP
    25642570#line 329 "lex.ll"
    25652571{ ASCIIOP_RETURN(); }
    25662572        YY_BREAK
    2567 case 142:
     2573case 143:
    25682574YY_RULE_SETUP
    25692575#line 330 "lex.ll"
    25702576{ ASCIIOP_RETURN(); }
    25712577        YY_BREAK
    2572 case 143:
     2578case 144:
    25732579YY_RULE_SETUP
    25742580#line 331 "lex.ll"
    25752581{ ASCIIOP_RETURN(); }
    25762582        YY_BREAK
    2577 case 144:
     2583case 145:
    25782584YY_RULE_SETUP
    25792585#line 332 "lex.ll"
    25802586{ ASCIIOP_RETURN(); }
    25812587        YY_BREAK
    2582 case 145:
     2588case 146:
    25832589YY_RULE_SETUP
    25842590#line 333 "lex.ll"
    25852591{ ASCIIOP_RETURN(); }
    25862592        YY_BREAK
    2587 case 146:
     2593case 147:
    25882594YY_RULE_SETUP
    25892595#line 334 "lex.ll"
    25902596{ ASCIIOP_RETURN(); }
    25912597        YY_BREAK
    2592 case 147:
     2598case 148:
    25932599YY_RULE_SETUP
    25942600#line 335 "lex.ll"
    25952601{ ASCIIOP_RETURN(); }
    25962602        YY_BREAK
    2597 case 148:
     2603case 149:
    25982604YY_RULE_SETUP
    25992605#line 336 "lex.ll"
    26002606{ ASCIIOP_RETURN(); }
    26012607        YY_BREAK
    2602 case 149:
     2608case 150:
    26032609YY_RULE_SETUP
    26042610#line 337 "lex.ll"
    26052611{ ASCIIOP_RETURN(); }
    26062612        YY_BREAK
    2607 case 150:
     2613case 151:
    26082614YY_RULE_SETUP
    26092615#line 338 "lex.ll"
    26102616{ ASCIIOP_RETURN(); }
    26112617        YY_BREAK
    2612 case 151:
    2613 YY_RULE_SETUP
    2614 #line 339 "lex.ll"
    2615 { ASCIIOP_RETURN(); }
    2616         YY_BREAK
    26172618case 152:
    26182619YY_RULE_SETUP
     2620#line 340 "lex.ll"
     2621{ NAMEDOP_RETURN(ICR); }
     2622        YY_BREAK
     2623case 153:
     2624YY_RULE_SETUP
    26192625#line 341 "lex.ll"
    2620 { NAMEDOP_RETURN(ICR); }
    2621         YY_BREAK
    2622 case 153:
     2626{ NAMEDOP_RETURN(DECR); }
     2627        YY_BREAK
     2628case 154:
    26232629YY_RULE_SETUP
    26242630#line 342 "lex.ll"
    2625 { NAMEDOP_RETURN(DECR); }
    2626         YY_BREAK
    2627 case 154:
     2631{ NAMEDOP_RETURN(EQ); }
     2632        YY_BREAK
     2633case 155:
    26282634YY_RULE_SETUP
    26292635#line 343 "lex.ll"
    2630 { NAMEDOP_RETURN(EQ); }
    2631         YY_BREAK
    2632 case 155:
     2636{ NAMEDOP_RETURN(NE); }
     2637        YY_BREAK
     2638case 156:
    26332639YY_RULE_SETUP
    26342640#line 344 "lex.ll"
    2635 { NAMEDOP_RETURN(NE); }
    2636         YY_BREAK
    2637 case 156:
     2641{ NAMEDOP_RETURN(LS); }
     2642        YY_BREAK
     2643case 157:
    26382644YY_RULE_SETUP
    26392645#line 345 "lex.ll"
    2640 { NAMEDOP_RETURN(LS); }
    2641         YY_BREAK
    2642 case 157:
     2646{ NAMEDOP_RETURN(RS); }
     2647        YY_BREAK
     2648case 158:
    26432649YY_RULE_SETUP
    26442650#line 346 "lex.ll"
    2645 { NAMEDOP_RETURN(RS); }
    2646         YY_BREAK
    2647 case 158:
     2651{ NAMEDOP_RETURN(LE); }
     2652        YY_BREAK
     2653case 159:
    26482654YY_RULE_SETUP
    26492655#line 347 "lex.ll"
    2650 { NAMEDOP_RETURN(LE); }
    2651         YY_BREAK
    2652 case 159:
     2656{ NAMEDOP_RETURN(GE); }
     2657        YY_BREAK
     2658case 160:
    26532659YY_RULE_SETUP
    26542660#line 348 "lex.ll"
    2655 { NAMEDOP_RETURN(GE); }
    2656         YY_BREAK
    2657 case 160:
     2661{ NAMEDOP_RETURN(ANDAND); }
     2662        YY_BREAK
     2663case 161:
    26582664YY_RULE_SETUP
    26592665#line 349 "lex.ll"
    2660 { NAMEDOP_RETURN(ANDAND); }
    2661         YY_BREAK
    2662 case 161:
     2666{ NAMEDOP_RETURN(OROR); }
     2667        YY_BREAK
     2668case 162:
    26632669YY_RULE_SETUP
    26642670#line 350 "lex.ll"
    2665 { NAMEDOP_RETURN(OROR); }
    2666         YY_BREAK
    2667 case 162:
     2671{ NAMEDOP_RETURN(ARROW); }
     2672        YY_BREAK
     2673case 163:
    26682674YY_RULE_SETUP
    26692675#line 351 "lex.ll"
    2670 { NAMEDOP_RETURN(ARROW); }
    2671         YY_BREAK
    2672 case 163:
     2676{ NAMEDOP_RETURN(PLUSassign); }
     2677        YY_BREAK
     2678case 164:
    26732679YY_RULE_SETUP
    26742680#line 352 "lex.ll"
    2675 { NAMEDOP_RETURN(PLUSassign); }
    2676         YY_BREAK
    2677 case 164:
     2681{ NAMEDOP_RETURN(MINUSassign); }
     2682        YY_BREAK
     2683case 165:
    26782684YY_RULE_SETUP
    26792685#line 353 "lex.ll"
    2680 { NAMEDOP_RETURN(MINUSassign); }
    2681         YY_BREAK
    2682 case 165:
     2686{ NAMEDOP_RETURN(MULTassign); }
     2687        YY_BREAK
     2688case 166:
    26832689YY_RULE_SETUP
    26842690#line 354 "lex.ll"
    2685 { NAMEDOP_RETURN(MULTassign); }
    2686         YY_BREAK
    2687 case 166:
     2691{ NAMEDOP_RETURN(DIVassign); }
     2692        YY_BREAK
     2693case 167:
    26882694YY_RULE_SETUP
    26892695#line 355 "lex.ll"
    2690 { NAMEDOP_RETURN(DIVassign); }
    2691         YY_BREAK
    2692 case 167:
     2696{ NAMEDOP_RETURN(MODassign); }
     2697        YY_BREAK
     2698case 168:
    26932699YY_RULE_SETUP
    26942700#line 356 "lex.ll"
    2695 { NAMEDOP_RETURN(MODassign); }
    2696         YY_BREAK
    2697 case 168:
     2701{ NAMEDOP_RETURN(ANDassign); }
     2702        YY_BREAK
     2703case 169:
    26982704YY_RULE_SETUP
    26992705#line 357 "lex.ll"
    2700 { NAMEDOP_RETURN(ANDassign); }
    2701         YY_BREAK
    2702 case 169:
     2706{ NAMEDOP_RETURN(ORassign); }
     2707        YY_BREAK
     2708case 170:
    27032709YY_RULE_SETUP
    27042710#line 358 "lex.ll"
    2705 { NAMEDOP_RETURN(ORassign); }
    2706         YY_BREAK
    2707 case 170:
     2711{ NAMEDOP_RETURN(ERassign); }
     2712        YY_BREAK
     2713case 171:
    27082714YY_RULE_SETUP
    27092715#line 359 "lex.ll"
    2710 { NAMEDOP_RETURN(ERassign); }
    2711         YY_BREAK
    2712 case 171:
     2716{ NAMEDOP_RETURN(LSassign); }
     2717        YY_BREAK
     2718case 172:
    27132719YY_RULE_SETUP
    27142720#line 360 "lex.ll"
    2715 { NAMEDOP_RETURN(LSassign); }
    2716         YY_BREAK
    2717 case 172:
    2718 YY_RULE_SETUP
    2719 #line 361 "lex.ll"
    27202721{ NAMEDOP_RETURN(RSassign); }
    27212722        YY_BREAK
    27222723case 173:
    27232724YY_RULE_SETUP
    2724 #line 363 "lex.ll"
     2725#line 362 "lex.ll"
    27252726{ NAMEDOP_RETURN(ATassign); }
    27262727        YY_BREAK
     2728/* CFA, operator identifier */
    27272729case 174:
    27282730YY_RULE_SETUP
    2729 #line 364 "lex.ll"
    2730 { NAMEDOP_RETURN(REFassign); }
    2731         YY_BREAK
    2732 /* CFA, operator identifier */
     2731#line 365 "lex.ll"
     2732{ IDENTIFIER_RETURN(); }                                // unary
     2733        YY_BREAK
    27332734case 175:
    27342735YY_RULE_SETUP
     2736#line 366 "lex.ll"
     2737{ IDENTIFIER_RETURN(); }
     2738        YY_BREAK
     2739case 176:
     2740YY_RULE_SETUP
    27352741#line 367 "lex.ll"
    2736 { IDENTIFIER_RETURN(); }                                // unary
    2737         YY_BREAK
    2738 case 176:
     2742{ IDENTIFIER_RETURN(); }
     2743        YY_BREAK
     2744case 177:
    27392745YY_RULE_SETUP
    27402746#line 368 "lex.ll"
    2741 { IDENTIFIER_RETURN(); }
    2742         YY_BREAK
    2743 case 177:
    2744 YY_RULE_SETUP
    2745 #line 369 "lex.ll"
    2746 { IDENTIFIER_RETURN(); }
    2747         YY_BREAK
    2748 case 178:
    2749 YY_RULE_SETUP
    2750 #line 370 "lex.ll"
    27512747{ IDENTIFIER_RETURN(); }                // binary
    27522748        YY_BREAK
     
    27772773          an argument list.
    27782774        */
    2779 case 179:
    2780 YY_RULE_SETUP
    2781 #line 397 "lex.ll"
     2775case 178:
     2776YY_RULE_SETUP
     2777#line 395 "lex.ll"
    27822778{
    27832779        // 1 or 2 character unary operator ?
     
    27922788        YY_BREAK
    27932789/* unknown characters */
     2790case 179:
     2791YY_RULE_SETUP
     2792#line 407 "lex.ll"
     2793{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
     2794        YY_BREAK
    27942795case 180:
    27952796YY_RULE_SETUP
    27962797#line 409 "lex.ll"
    2797 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    2798         YY_BREAK
    2799 case 181:
    2800 YY_RULE_SETUP
    2801 #line 411 "lex.ll"
    28022798ECHO;
    28032799        YY_BREAK
    2804 #line 2805 "Parser/lex.cc"
     2800#line 2801 "Parser/lex.cc"
    28052801case YY_STATE_EOF(INITIAL):
    28062802case YY_STATE_EOF(COMMENT):
     
    30993095                        {
    31003096                        yy_current_state = (int) yy_def[yy_current_state];
    3101                         if ( yy_current_state >= 889 )
     3097                        if ( yy_current_state >= 888 )
    31023098                                yy_c = yy_meta[(unsigned int) yy_c];
    31033099                        }
     
    31273123                {
    31283124                yy_current_state = (int) yy_def[yy_current_state];
    3129                 if ( yy_current_state >= 889 )
     3125                if ( yy_current_state >= 888 )
    31303126                        yy_c = yy_meta[(unsigned int) yy_c];
    31313127                }
    31323128        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3133         yy_is_jam = (yy_current_state == 888);
     3129        yy_is_jam = (yy_current_state == 887);
    31343130
    31353131        return yy_is_jam ? 0 : yy_current_state;
     
    37773773#define YYTABLES_NAME "yytables"
    37783774
    3779 #line 411 "lex.ll"
     3775#line 409 "lex.ll"
    37803776
    37813777
  • src/Parser/lex.ll

    r8b52686 re7aed49  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Mon Jun  6 18:08:27 2016
    13  * Update Count     : 451
     12 * Last Modified On : Wed Jun 22 21:20:18 2016
     13 * Update Count     : 456
    1414 */
    1515
     
    4949
    5050void rm_underscore() {
    51         // remove underscores in numeric constant
    52         int j = 0;
     51        // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string.
     52        yyleng = 0;
    5353        for ( int i = 0; yytext[i] != '\0'; i += 1 ) {
    5454                if ( yytext[i] != '_' ) {
    55                         yytext[j] = yytext[i];
    56                         j += 1;
     55                        yytext[yyleng] = yytext[i];
     56                        yyleng += 1;
    5757                } // if
    5858        } // for
    59         yyleng = j;
    6059        yytext[yyleng] = '\0';
    6160}
     
    121120h_white [ ]|{h_tab}
    122121
    123                                 // operators
     122                                // overloadable operators
    124123op_unary_only "~"|"!"
    125124op_unary_binary "+"|"-"|"*"
     
    129128op_binary_only "/"|"%"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>="
    130129op_binary_over {op_unary_binary}|{op_binary_only}
    131 op_binary_not_over "?"|"->"|"&&"|"||"
    132 operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}
     130                                // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@="
     131                                // operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}
    133132
    134133%x COMMENT
     
    362361
    363362"@="                    { NAMEDOP_RETURN(ATassign); }
    364 ":="                    { NAMEDOP_RETURN(REFassign); }
    365363
    366364                                /* CFA, operator identifier */
  • src/Parser/parser.cc

    r8b52686 re7aed49  
    6767
    6868/* Line 268 of yacc.c  */
    69 #line 44 "parser.yy"
     69#line 42 "parser.yy"
    7070
    7171#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    223223     ORassign = 361,
    224224     ATassign = 362,
    225      REFassign = 363,
    226      THEN = 364
     225     THEN = 363
    227226   };
    228227#endif
     
    333332#define ORassign 361
    334333#define ATassign 362
    335 #define REFassign 363
    336 #define THEN 364
     334#define THEN 363
    337335
    338336
     
    344342
    345343/* Line 293 of yacc.c  */
    346 #line 112 "parser.yy"
     344#line 110 "parser.yy"
    347345
    348346        Token tok;
     
    361359
    362360/* Line 293 of yacc.c  */
    363 #line 364 "Parser/parser.cc"
     361#line 362 "Parser/parser.cc"
    364362} YYSTYPE;
    365363# define YYSTYPE_IS_TRIVIAL 1
     
    373371
    374372/* Line 343 of yacc.c  */
    375 #line 376 "Parser/parser.cc"
     373#line 374 "Parser/parser.cc"
    376374
    377375#ifdef short
     
    592590#define YYFINAL  251
    593591/* YYLAST -- Last index in YYTABLE.  */
    594 #define YYLAST   11311
     592#define YYLAST   11428
    595593
    596594/* YYNTOKENS -- Number of terminals.  */
    597 #define YYNTOKENS  134
     595#define YYNTOKENS  133
    598596/* YYNNTS -- Number of nonterminals.  */
    599597#define YYNNTS  241
    600598/* YYNRULES -- Number of rules.  */
    601 #define YYNRULES  756
     599#define YYNRULES  755
    602600/* YYNRULES -- Number of states.  */
    603 #define YYNSTATES  1583
     601#define YYNSTATES  1581
    604602
    605603/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    606604#define YYUNDEFTOK  2
    607 #define YYMAXUTOK   364
     605#define YYMAXUTOK   363
    608606
    609607#define YYTRANSLATE(YYX)                                                \
     
    616614       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    617615       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    618        2,     2,     2,   123,     2,     2,     2,   126,   120,     2,
    619      110,   111,   119,   121,   117,   122,   114,   125,     2,     2,
    620        2,     2,     2,     2,     2,     2,     2,     2,   118,   133,
    621      127,   132,   128,   131,     2,     2,     2,     2,     2,     2,
     616       2,     2,     2,   122,     2,     2,     2,   125,   119,     2,
     617     109,   110,   118,   120,   116,   121,   113,   124,     2,     2,
     618       2,     2,     2,     2,     2,     2,     2,     2,   117,   132,
     619     126,   131,   127,   130,     2,     2,     2,     2,     2,     2,
    622620       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    623621       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    624        2,   112,     2,   113,   129,     2,     2,     2,     2,     2,
     622       2,   111,     2,   112,   128,     2,     2,     2,     2,     2,
    625623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    626624       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    627        2,     2,     2,   115,   130,   116,   124,     2,     2,     2,
     625       2,     2,     2,   114,   129,   115,   123,     2,     2,     2,
    628626       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    629627       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    649647      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    650648      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    651      105,   106,   107,   108,   109
     649     105,   106,   107,   108
    652650};
    653651
     
    668666     307,   311,   313,   317,   319,   323,   325,   329,   331,   335,
    669667     337,   341,   343,   349,   354,   360,   362,   364,   368,   372,
    670      376,   379,   380,   382,   385,   391,   398,   406,   408,   412,
    671      414,   416,   418,   420,   422,   424,   426,   428,   430,   432,
    672      434,   438,   439,   441,   443,   445,   447,   449,   451,   453,
    673      455,   457,   464,   469,   472,   480,   482,   486,   488,   491,
    674      493,   496,   498,   501,   504,   510,   518,   524,   534,   540,
    675      550,   552,   556,   558,   560,   564,   568,   571,   573,   576,
    676      579,   580,   582,   585,   589,   590,   592,   595,   599,   603,
    677      608,   609,   611,   613,   616,   622,   630,   637,   644,   649,
    678      653,   658,   661,   665,   668,   672,   676,   680,   684,   690,
    679      694,   698,   703,   705,   711,   718,   724,   731,   741,   752,
    680      762,   773,   776,   778,   781,   784,   787,   789,   796,   805,
    681      816,   829,   844,   845,   847,   848,   850,   852,   856,   861,
    682      869,   870,   872,   876,   878,   882,   884,   886,   888,   892,
    683      894,   896,   898,   902,   903,   905,   909,   914,   916,   920,
    684      922,   924,   928,   932,   936,   940,   944,   947,   951,   958,
    685      962,   966,   971,   973,   976,   979,   983,   989,   998,  1006,
    686     1014,  1020,  1030,  1033,  1036,  1042,  1046,  1052,  1057,  1061,
    687     1066,  1071,  1079,  1083,  1087,  1091,  1095,  1100,  1107,  1109,
    688     1111,  1113,  1115,  1117,  1119,  1121,  1123,  1124,  1126,  1128,
    689     1131,  1133,  1135,  1137,  1139,  1141,  1143,  1145,  1146,  1152,
    690     1154,  1157,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,
    691     1178,  1180,  1182,  1184,  1186,  1188,  1190,  1192,  1194,  1196,
    692     1198,  1200,  1202,  1204,  1206,  1208,  1210,  1212,  1215,  1218,
    693     1222,  1226,  1228,  1232,  1234,  1237,  1240,  1243,  1248,  1253,
    694     1258,  1263,  1265,  1268,  1271,  1275,  1277,  1280,  1283,  1285,
    695     1288,  1291,  1295,  1297,  1300,  1303,  1305,  1307,  1312,  1315,
    696     1316,  1323,  1331,  1334,  1337,  1340,  1342,  1345,  1348,  1352,
    697     1355,  1359,  1361,  1364,  1368,  1371,  1374,  1379,  1380,  1382,
    698     1385,  1388,  1390,  1391,  1393,  1396,  1399,  1405,  1408,  1409,
    699     1417,  1420,  1425,  1426,  1429,  1430,  1432,  1434,  1436,  1442,
    700     1448,  1454,  1456,  1462,  1468,  1478,  1480,  1486,  1487,  1489,
    701     1491,  1497,  1499,  1501,  1507,  1513,  1515,  1519,  1523,  1528,
    702     1530,  1532,  1534,  1536,  1539,  1541,  1545,  1549,  1551,  1554,
    703     1556,  1560,  1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,
    704     1578,  1580,  1582,  1585,  1587,  1589,  1591,  1594,  1595,  1598,
    705     1601,  1603,  1608,  1609,  1611,  1614,  1618,  1623,  1626,  1629,
    706     1631,  1634,  1636,  1639,  1645,  1651,  1659,  1666,  1668,  1671,
    707     1674,  1678,  1680,  1683,  1686,  1691,  1694,  1699,  1700,  1705,
    708     1708,  1710,  1712,  1714,  1715,  1718,  1724,  1730,  1744,  1746,
    709     1748,  1752,  1756,  1759,  1763,  1767,  1770,  1775,  1777,  1784,
    710     1794,  1795,  1807,  1809,  1813,  1817,  1821,  1823,  1825,  1831,
    711     1834,  1840,  1841,  1843,  1845,  1849,  1850,  1852,  1854,  1856,
    712     1858,  1859,  1866,  1869,  1871,  1874,  1879,  1882,  1886,  1890,
    713     1894,  1899,  1905,  1911,  1917,  1924,  1926,  1928,  1930,  1934,
    714     1935,  1941,  1942,  1944,  1946,  1949,  1956,  1958,  1962,  1963,
    715     1965,  1970,  1972,  1974,  1976,  1978,  1981,  1983,  1986,  1989,
    716     1991,  1995,  1998,  2002,  2006,  2009,  2014,  2019,  2023,  2032,
    717     2036,  2039,  2041,  2044,  2051,  2060,  2064,  2067,  2071,  2075,
    718     2080,  2085,  2089,  2091,  2093,  2095,  2100,  2107,  2111,  2114,
    719     2118,  2122,  2127,  2132,  2136,  2139,  2141,  2144,  2147,  2149,
    720     2153,  2156,  2160,  2164,  2167,  2172,  2177,  2181,  2188,  2197,
    721     2201,  2204,  2206,  2209,  2212,  2215,  2219,  2223,  2226,  2231,
    722     2236,  2240,  2247,  2256,  2260,  2263,  2265,  2268,  2271,  2273,
    723     2275,  2278,  2282,  2286,  2289,  2294,  2301,  2310,  2312,  2315,
    724     2318,  2320,  2323,  2326,  2330,  2334,  2336,  2341,  2346,  2350,
    725     2356,  2365,  2369,  2372,  2376,  2378,  2384,  2390,  2397,  2404,
    726     2406,  2409,  2412,  2414,  2417,  2420,  2424,  2428,  2430,  2435,
    727     2440,  2444,  2450,  2459,  2463,  2465,  2468,  2470,  2473,  2480,
    728     2486,  2493,  2501,  2509,  2511,  2514,  2517,  2519,  2522,  2525,
    729     2529,  2533,  2535,  2540,  2545,  2549,  2558,  2562,  2564,  2566,
    730     2569,  2571,  2573,  2576,  2580,  2583,  2587,  2590,  2594,  2598,
    731     2601,  2606,  2610,  2613,  2617,  2620,  2625,  2629,  2632,  2639,
    732     2646,  2653,  2661,  2663,  2666,  2668,  2670,  2672,  2675,  2679,
    733     2682,  2686,  2689,  2693,  2697,  2702,  2705,  2709,  2714,  2717,
    734     2723,  2729,  2736,  2743,  2744,  2746,  2747
     668     375,   376,   378,   381,   387,   394,   402,   404,   408,   410,
     669     412,   414,   416,   418,   420,   422,   424,   426,   428,   430,
     670     434,   435,   437,   439,   441,   443,   445,   447,   449,   451,
     671     453,   460,   465,   468,   476,   478,   482,   484,   487,   489,
     672     492,   494,   497,   500,   506,   514,   520,   530,   536,   546,
     673     548,   552,   554,   556,   560,   564,   567,   569,   572,   575,
     674     576,   578,   581,   585,   586,   588,   591,   595,   599,   604,
     675     605,   607,   609,   612,   618,   626,   633,   640,   645,   649,
     676     654,   657,   661,   664,   668,   672,   676,   680,   686,   690,
     677     694,   699,   701,   707,   714,   720,   727,   737,   748,   758,
     678     769,   772,   774,   777,   780,   783,   785,   792,   801,   812,
     679     825,   840,   841,   843,   844,   846,   848,   852,   857,   865,
     680     866,   868,   872,   874,   878,   880,   882,   884,   888,   890,
     681     892,   894,   898,   899,   901,   905,   910,   912,   916,   918,
     682     920,   924,   928,   932,   936,   940,   943,   947,   954,   958,
     683     962,   967,   969,   972,   975,   979,   985,   994,  1002,  1010,
     684    1016,  1026,  1029,  1032,  1038,  1042,  1048,  1053,  1057,  1062,
     685    1067,  1075,  1079,  1083,  1087,  1091,  1096,  1103,  1105,  1107,
     686    1109,  1111,  1113,  1115,  1117,  1119,  1120,  1122,  1124,  1127,
     687    1129,  1131,  1133,  1135,  1137,  1139,  1141,  1142,  1148,  1150,
     688    1153,  1157,  1159,  1162,  1164,  1166,  1168,  1170,  1172,  1174,
     689    1176,  1178,  1180,  1182,  1184,  1186,  1188,  1190,  1192,  1194,
     690    1196,  1198,  1200,  1202,  1204,  1206,  1208,  1211,  1214,  1218,
     691    1222,  1224,  1228,  1230,  1233,  1236,  1239,  1244,  1249,  1254,
     692    1259,  1261,  1264,  1267,  1271,  1273,  1276,  1279,  1281,  1284,
     693    1287,  1291,  1293,  1296,  1299,  1301,  1303,  1308,  1311,  1312,
     694    1319,  1327,  1330,  1333,  1336,  1338,  1341,  1344,  1348,  1351,
     695    1355,  1357,  1360,  1364,  1367,  1370,  1375,  1376,  1378,  1381,
     696    1384,  1386,  1387,  1389,  1392,  1395,  1401,  1404,  1405,  1413,
     697    1416,  1421,  1422,  1425,  1426,  1428,  1430,  1432,  1438,  1444,
     698    1450,  1452,  1458,  1464,  1474,  1476,  1482,  1483,  1485,  1487,
     699    1493,  1495,  1497,  1503,  1509,  1511,  1515,  1519,  1524,  1526,
     700    1528,  1530,  1532,  1535,  1537,  1541,  1545,  1547,  1550,  1552,
     701    1556,  1558,  1560,  1562,  1564,  1566,  1568,  1570,  1572,  1574,
     702    1576,  1578,  1581,  1583,  1585,  1587,  1590,  1591,  1594,  1597,
     703    1599,  1604,  1605,  1607,  1610,  1614,  1619,  1622,  1625,  1627,
     704    1630,  1632,  1635,  1641,  1647,  1655,  1662,  1664,  1667,  1670,
     705    1674,  1676,  1679,  1682,  1687,  1690,  1695,  1696,  1701,  1704,
     706    1706,  1708,  1710,  1711,  1714,  1720,  1726,  1740,  1742,  1744,
     707    1748,  1752,  1755,  1759,  1763,  1766,  1771,  1773,  1780,  1790,
     708    1791,  1803,  1805,  1809,  1813,  1817,  1819,  1821,  1827,  1830,
     709    1836,  1837,  1839,  1841,  1845,  1846,  1848,  1850,  1852,  1854,
     710    1855,  1862,  1865,  1867,  1870,  1875,  1878,  1882,  1886,  1890,
     711    1895,  1901,  1907,  1913,  1920,  1922,  1924,  1926,  1930,  1931,
     712    1937,  1938,  1940,  1942,  1945,  1952,  1954,  1958,  1959,  1961,
     713    1966,  1968,  1970,  1972,  1974,  1977,  1979,  1982,  1985,  1987,
     714    1991,  1994,  1998,  2002,  2005,  2010,  2015,  2019,  2028,  2032,
     715    2035,  2037,  2040,  2047,  2056,  2060,  2063,  2067,  2071,  2076,
     716    2081,  2085,  2087,  2089,  2091,  2096,  2103,  2107,  2110,  2114,
     717    2118,  2123,  2128,  2132,  2135,  2137,  2140,  2143,  2145,  2149,
     718    2152,  2156,  2160,  2163,  2168,  2173,  2177,  2184,  2193,  2197,
     719    2200,  2202,  2205,  2208,  2211,  2215,  2219,  2222,  2227,  2232,
     720    2236,  2243,  2252,  2256,  2259,  2261,  2264,  2267,  2269,  2271,
     721    2274,  2278,  2282,  2285,  2290,  2297,  2306,  2308,  2311,  2314,
     722    2316,  2319,  2322,  2326,  2330,  2332,  2337,  2342,  2346,  2352,
     723    2361,  2365,  2368,  2372,  2374,  2380,  2386,  2393,  2400,  2402,
     724    2405,  2408,  2410,  2413,  2416,  2420,  2424,  2426,  2431,  2436,
     725    2440,  2446,  2455,  2459,  2461,  2464,  2466,  2469,  2476,  2482,
     726    2489,  2497,  2505,  2507,  2510,  2513,  2515,  2518,  2521,  2525,
     727    2529,  2531,  2536,  2541,  2545,  2554,  2558,  2560,  2562,  2565,
     728    2567,  2569,  2572,  2576,  2579,  2583,  2586,  2590,  2594,  2597,
     729    2602,  2606,  2609,  2613,  2616,  2621,  2625,  2628,  2635,  2642,
     730    2649,  2657,  2659,  2662,  2664,  2666,  2668,  2671,  2675,  2678,
     731    2682,  2685,  2689,  2693,  2698,  2701,  2705,  2710,  2713,  2719,
     732    2725,  2732,  2739,  2740,  2742,  2743
    735733};
    736734
     
    738736static const yytype_int16 yyrhs[] =
    739737{
    740      303,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    741       -1,    72,    -1,    76,    -1,   141,    -1,    72,    -1,    76,
    742       -1,    72,    -1,   141,    -1,    83,    -1,    84,    -1,    82,
    743       -1,   142,    82,    -1,    72,    -1,   141,    -1,   110,   170,
    744      111,    -1,   110,   174,   111,    -1,   143,    -1,   144,   112,
    745      135,   165,   136,   113,    -1,   144,   110,   145,   111,    -1,
    746      144,   114,   140,    -1,   144,   114,   112,   135,   147,   136,
    747      113,    -1,   144,    85,   140,    -1,   144,    85,   112,   135,
    748      147,   136,   113,    -1,   144,    86,    -1,   144,    87,    -1,
    749      110,   276,   111,   115,   280,   373,   116,    -1,   144,   115,
    750      145,   116,    -1,   146,    -1,   145,   117,   146,    -1,    -1,
    751      165,    -1,   140,   118,   165,    -1,   112,   135,   165,   136,
    752      113,   118,   165,    -1,   112,   135,   165,   117,   168,   136,
    753      113,   118,   165,    -1,   148,    -1,   147,   117,   148,    -1,
    754      140,    -1,   140,   114,   148,    -1,   140,   114,   112,   135,
    755      147,   136,   113,    -1,   140,    85,   148,    -1,   140,    85,
    756      112,   135,   147,   136,   113,    -1,   144,    -1,   137,    -1,
    757      142,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
    758       -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
    759       37,   110,   276,   111,    -1,    38,   110,   276,   117,   140,
    760      111,    -1,    76,    -1,    76,   110,   277,   111,    -1,    76,
    761      110,   146,   111,    -1,    66,   149,    -1,    66,   110,   276,
    762      111,    -1,    94,   140,    -1,   119,    -1,   120,    -1,   121,
    763       -1,   122,    -1,   123,    -1,   124,    -1,   149,    -1,   110,
    764      276,   111,   152,    -1,   110,   276,   111,   167,    -1,   152,
    765       -1,   153,   119,   152,    -1,   153,   125,   152,    -1,   153,
    766      126,   152,    -1,   153,    -1,   154,   121,   153,    -1,   154,
    767      122,   153,    -1,   154,    -1,   155,    88,   154,    -1,   155,
    768       89,   154,    -1,   155,    -1,   156,   127,   155,    -1,   156,
    769      128,   155,    -1,   156,    90,   155,    -1,   156,    91,   155,
    770       -1,   156,    -1,   157,    92,   156,    -1,   157,    93,   156,
    771       -1,   157,    -1,   158,   120,   157,    -1,   158,    -1,   159,
    772      129,   158,    -1,   159,    -1,   160,   130,   159,    -1,   160,
    773       -1,   161,    94,   160,    -1,   161,    -1,   162,    95,   161,
    774       -1,   162,    -1,   162,   131,   170,   118,   163,    -1,   162,
    775      131,   118,   163,    -1,   162,   131,   170,   118,   167,    -1,
    776      163,    -1,   163,    -1,   149,   132,   165,    -1,   149,   108,
    777      165,    -1,   149,   169,   165,    -1,   167,   374,    -1,    -1,
    778      165,    -1,   112,   113,    -1,   112,   135,   165,   136,   113,
    779       -1,   112,   135,   117,   168,   136,   113,    -1,   112,   135,
    780      165,   117,   168,   136,   113,    -1,   166,    -1,   168,   117,
    781      166,    -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,
    782      101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,
    783      106,    -1,   165,    -1,   170,   117,   165,    -1,    -1,   170,
    784       -1,   173,    -1,   174,    -1,   178,    -1,   179,    -1,   191,
    785       -1,   193,    -1,   194,    -1,   199,    -1,   129,   144,   115,
    786      145,   116,   133,    -1,   140,   118,   313,   172,    -1,   115,
    787      116,    -1,   115,   135,   135,   210,   175,   136,   116,    -1,
    788      176,    -1,   175,   135,   176,    -1,   213,    -1,    40,   213,
    789       -1,   309,    -1,   172,   136,    -1,   172,    -1,   177,   172,
    790       -1,   171,   133,    -1,    41,   110,   170,   111,   172,    -1,
    791       41,   110,   170,   111,   172,    42,   172,    -1,    43,   110,
    792      170,   111,   184,    -1,    43,   110,   170,   111,   115,   135,
    793      206,   185,   116,    -1,    53,   110,   170,   111,   184,    -1,
    794       53,   110,   170,   111,   115,   135,   206,   187,   116,    -1,
    795      164,    -1,   164,    96,   164,    -1,   311,    -1,   180,    -1,
    796      181,   117,   180,    -1,    44,   181,   118,    -1,    45,   118,
    797       -1,   182,    -1,   183,   182,    -1,   183,   172,    -1,    -1,
    798      186,    -1,   183,   177,    -1,   186,   183,   177,    -1,    -1,
    799      188,    -1,   183,   190,    -1,   183,   177,   189,    -1,   188,
    800      183,   190,    -1,   188,   183,   177,   189,    -1,    -1,   190,
    801       -1,    56,    -1,    56,   133,    -1,    47,   110,   170,   111,
    802      172,    -1,    46,   172,    47,   110,   170,   111,   133,    -1,
    803       48,   110,   135,   192,   111,   172,    -1,   171,   136,   133,
    804      171,   133,   171,    -1,   213,   171,   133,   171,    -1,    51,
    805      140,   133,    -1,    51,   119,   170,   133,    -1,    50,   133,
    806       -1,    50,   140,   133,    -1,    49,   133,    -1,    49,   140,
    807      133,    -1,    52,   171,   133,    -1,    61,   166,   133,    -1,
    808       62,   166,   133,    -1,    62,   166,    63,   165,   133,    -1,
    809       57,   174,   195,    -1,    57,   174,   197,    -1,    57,   174,
    810      195,   197,    -1,   196,    -1,    58,   110,    96,   111,   174,
    811       -1,   196,    58,   110,    96,   111,   174,    -1,    59,   110,
    812       96,   111,   174,    -1,   196,    59,   110,    96,   111,   174,
    813       -1,    58,   110,   135,   135,   198,   136,   111,   174,   136,
    814       -1,   196,    58,   110,   135,   135,   198,   136,   111,   174,
    815      136,    -1,    59,   110,   135,   135,   198,   136,   111,   174,
    816      136,    -1,   196,    59,   110,   135,   135,   198,   136,   111,
    817      174,   136,    -1,    60,   174,    -1,   226,    -1,   226,   310,
    818       -1,   226,   358,    -1,   367,   140,    -1,   367,    -1,    64,
    819      200,   110,   142,   111,   133,    -1,    64,   200,   110,   142,
    820      118,   201,   111,   133,    -1,    64,   200,   110,   142,   118,
    821      201,   118,   201,   111,   133,    -1,    64,   200,   110,   142,
    822      118,   201,   118,   201,   118,   204,   111,   133,    -1,    64,
    823      200,    51,   110,   142,   118,   118,   201,   118,   204,   118,
    824      205,   111,   133,    -1,    -1,    11,    -1,    -1,   202,    -1,
    825      203,    -1,   202,   117,   203,    -1,   142,   110,   164,   111,
    826       -1,   112,   164,   113,   142,   110,   164,   111,    -1,    -1,
    827      142,    -1,   204,   117,   142,    -1,   140,    -1,   205,   117,
    828      140,    -1,   136,    -1,   207,    -1,   213,    -1,   207,   135,
    829      213,    -1,   136,    -1,   209,    -1,   223,    -1,   209,   135,
    830      223,    -1,    -1,   211,    -1,    29,   212,   133,    -1,   211,
    831       29,   212,   133,    -1,   275,    -1,   212,   117,   275,    -1,
    832      214,    -1,   223,    -1,   215,   136,   133,    -1,   220,   136,
    833      133,    -1,   217,   136,   133,    -1,   294,   136,   133,    -1,
    834      297,   136,   133,    -1,   216,   278,    -1,   232,   216,   278,
    835       -1,   215,   136,   117,   135,   273,   278,    -1,   368,   273,
    836      312,    -1,   371,   273,   312,    -1,   228,   371,   273,   312,
    837       -1,   218,    -1,   228,   218,    -1,   232,   218,    -1,   232,
    838      228,   218,    -1,   217,   136,   117,   135,   273,    -1,   112,
    839      113,   273,   110,   135,   261,   136,   111,    -1,   371,   273,
    840      110,   135,   261,   136,   111,    -1,   219,   273,   110,   135,
    841      261,   136,   111,    -1,   112,   135,   263,   136,   113,    -1,
    842      112,   135,   263,   136,   117,   135,   264,   136,   113,    -1,
    843        3,   216,    -1,     3,   218,    -1,   220,   136,   117,   135,
    844      140,    -1,     3,   226,   310,    -1,   221,   136,   117,   135,
    845      310,    -1,   228,     3,   226,   310,    -1,   226,     3,   310,
    846       -1,   226,     3,   228,   310,    -1,     3,   140,   132,   165,
    847       -1,   222,   136,   117,   135,   140,   132,   165,    -1,   224,
    848      136,   133,    -1,   221,   136,   133,    -1,   222,   136,   133,
    849       -1,   241,   136,   133,    -1,   225,   310,   312,   278,    -1,
    850      224,   117,   313,   310,   312,   278,    -1,   237,    -1,   241,
    851       -1,   243,    -1,   284,    -1,   238,    -1,   242,    -1,   244,
    852       -1,   285,    -1,    -1,   228,    -1,   229,    -1,   228,   229,
    853       -1,   230,    -1,   315,    -1,    10,    -1,    12,    -1,    11,
    854       -1,    14,    -1,    67,    -1,    -1,    13,   110,   231,   287,
    855      111,    -1,   233,    -1,   228,   233,    -1,   232,   228,   233,
    856       -1,   234,    -1,   233,   234,    -1,   235,    -1,     5,    -1,
    857        7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,
    858       69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,
    859       18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,
    860       15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,
    861      238,    -1,   232,   238,    -1,   237,   234,    -1,   237,   234,
    862      228,    -1,   237,   234,   238,    -1,   239,    -1,   227,   240,
    863      227,    -1,   236,    -1,   228,   236,    -1,   239,   229,    -1,
    864      239,   236,    -1,    28,   110,   277,   111,    -1,    28,   110,
    865      170,   111,    -1,    78,   110,   277,   111,    -1,    78,   110,
    866      170,   111,    -1,   242,    -1,   232,   242,    -1,   241,   234,
    867       -1,   241,   234,   228,    -1,   245,    -1,   228,   245,    -1,
    868      242,   229,    -1,   244,    -1,   232,   244,    -1,   243,   234,
    869       -1,   243,   234,   228,    -1,    74,    -1,   228,    74,    -1,
    870      244,   229,    -1,   246,    -1,   257,    -1,   248,   115,   249,
    871      116,    -1,   248,   275,    -1,    -1,   248,   275,   247,   115,
    872      249,   116,    -1,   248,   110,   293,   111,   115,   249,   116,
    873       -1,   248,   286,    -1,    31,   313,    -1,    32,   313,    -1,
    874      250,    -1,   249,   250,    -1,   251,   133,    -1,    40,   251,
    875      133,    -1,   252,   133,    -1,    40,   252,   133,    -1,   367,
    876       -1,   367,   275,    -1,   251,   117,   275,    -1,   251,   117,
    877       -1,   226,   253,    -1,   252,   117,   313,   253,    -1,    -1,
    878      255,    -1,   319,   254,    -1,   332,   254,    -1,   358,    -1,
    879       -1,   255,    -1,   118,   164,    -1,    30,   313,    -1,   256,
    880      115,   259,   373,   116,    -1,   256,   275,    -1,    -1,   256,
    881      275,   258,   115,   259,   373,   116,    -1,   275,   260,    -1,
    882      259,   117,   275,   260,    -1,    -1,   132,   164,    -1,    -1,
    883      262,    -1,   264,    -1,   263,    -1,   263,   136,   117,   135,
    884      264,    -1,   264,   136,   117,   135,    96,    -1,   263,   136,
    885      117,   135,    96,    -1,   268,    -1,   264,   136,   117,   135,
    886      268,    -1,   263,   136,   117,   135,   268,    -1,   263,   136,
    887      117,   135,   264,   136,   117,   135,   268,    -1,   269,    -1,
    888      264,   136,   117,   135,   269,    -1,    -1,   266,    -1,   267,
    889       -1,   267,   136,   117,   135,    96,    -1,   271,    -1,   270,
    890       -1,   267,   136,   117,   135,   271,    -1,   267,   136,   117,
    891      135,   270,    -1,   270,    -1,   363,   273,   374,    -1,   371,
    892      273,   374,    -1,   228,   371,   273,   374,    -1,   218,    -1,
    893      271,    -1,   363,    -1,   371,    -1,   228,   371,    -1,   372,
    894       -1,   225,   337,   374,    -1,   225,   341,   374,    -1,   225,
    895       -1,   225,   352,    -1,   140,    -1,   272,   117,   140,    -1,
    896      138,    -1,    74,    -1,    75,    -1,   139,    -1,    74,    -1,
    897       75,    -1,   140,    -1,    74,    -1,    75,    -1,   367,    -1,
    898      226,    -1,   226,   358,    -1,   367,    -1,   372,    -1,   226,
    899       -1,   226,   346,    -1,    -1,   132,   279,    -1,   107,   279,
    900       -1,   165,    -1,   115,   280,   373,   116,    -1,    -1,   279,
    901       -1,   281,   279,    -1,   280,   117,   279,    -1,   280,   117,
    902      281,   279,    -1,   282,   118,    -1,   275,   118,    -1,   283,
    903       -1,   282,   283,    -1,    80,    -1,   114,   275,    -1,   112,
    904      135,   165,   136,   113,    -1,   112,   135,   311,   136,   113,
    905       -1,   112,   135,   164,    96,   164,   136,   113,    -1,   114,
    906      112,   135,   147,   136,   113,    -1,   285,    -1,   232,   285,
    907       -1,   284,   234,    -1,   284,   234,   228,    -1,   286,    -1,
    908      228,   286,    -1,   285,   229,    -1,    75,   110,   293,   111,
    909       -1,   288,   374,    -1,   287,   117,   288,   374,    -1,    -1,
    910      290,   275,   289,   291,    -1,   226,   337,    -1,    33,    -1,
    911       35,    -1,    34,    -1,    -1,   291,   292,    -1,   130,   275,
    912      110,   293,   111,    -1,   130,   115,   135,   299,   116,    -1,
    913      130,   110,   135,   287,   136,   111,   115,   135,   299,   116,
    914      110,   293,   111,    -1,   277,    -1,   165,    -1,   293,   117,
    915      277,    -1,   293,   117,   165,    -1,    33,   295,    -1,   233,
    916       33,   295,    -1,   294,   117,   295,    -1,   296,   291,    -1,
    917      296,   291,   132,   277,    -1,   275,    -1,   274,   110,   135,
    918      287,   136,   111,    -1,    36,   275,   110,   135,   287,   136,
    919      111,   115,   116,    -1,    -1,    36,   275,   110,   135,   287,
    920      136,   111,   115,   298,   299,   116,    -1,   300,    -1,   299,
    921      135,   300,    -1,   301,   136,   133,    -1,   302,   136,   133,
    922       -1,   216,    -1,   218,    -1,   301,   136,   117,   135,   273,
    923       -1,   226,   310,    -1,   302,   136,   117,   135,   310,    -1,
    924       -1,   304,    -1,   306,    -1,   304,   135,   306,    -1,    -1,
    925      304,    -1,   213,    -1,   308,    -1,   199,    -1,    -1,     5,
    926       82,   307,   115,   305,   116,    -1,    40,   306,    -1,   309,
    927       -1,   324,   174,    -1,   328,   135,   208,   174,    -1,   217,
    928      174,    -1,   225,   324,   174,    -1,   228,   324,   174,    -1,
    929      232,   324,   174,    -1,   232,   228,   324,   174,    -1,   225,
    930      328,   135,   208,   174,    -1,   228,   328,   135,   208,   174,
    931       -1,   232,   328,   135,   208,   174,    -1,   232,   228,   328,
    932      135,   208,   174,    -1,   319,    -1,   324,    -1,   332,    -1,
    933      164,   124,   164,    -1,    -1,    64,   110,   142,   111,   313,
    934       -1,    -1,   314,    -1,   315,    -1,   314,   315,    -1,    39,
    935      110,   110,   316,   111,   111,    -1,   317,    -1,   316,   117,
    936      317,    -1,    -1,   318,    -1,   318,   110,   171,   111,    -1,
    937      273,    -1,   235,    -1,   236,    -1,   229,    -1,   320,   313,
    938       -1,   321,    -1,   322,   313,    -1,   323,   313,    -1,   138,
    939       -1,   110,   320,   111,    -1,   150,   319,    -1,   150,   228,
    940      319,    -1,   110,   321,   111,    -1,   320,   350,    -1,   110,
    941      321,   111,   350,    -1,   110,   322,   111,   351,    -1,   110,
    942      322,   111,    -1,   110,   321,   111,   110,   135,   265,   136,
    943      111,    -1,   110,   323,   111,    -1,   325,   313,    -1,   326,
    944       -1,   327,   313,    -1,   320,   110,   135,   265,   136,   111,
    945       -1,   110,   326,   111,   110,   135,   265,   136,   111,    -1,
    946      110,   325,   111,    -1,   150,   324,    -1,   150,   228,   324,
    947       -1,   110,   326,   111,    -1,   110,   326,   111,   350,    -1,
    948      110,   327,   111,   351,    -1,   110,   327,   111,    -1,   329,
    949       -1,   330,    -1,   331,    -1,   320,   110,   272,   111,    -1,
    950      110,   330,   111,   110,   272,   111,    -1,   110,   329,   111,
    951       -1,   150,   328,    -1,   150,   228,   328,    -1,   110,   330,
    952      111,    -1,   110,   330,   111,   350,    -1,   110,   331,   111,
    953      351,    -1,   110,   331,   111,    -1,   333,   313,    -1,   334,
    954       -1,   335,   313,    -1,   336,   313,    -1,   342,    -1,   110,
    955      333,   111,    -1,   150,   332,    -1,   150,   228,   332,    -1,
    956      110,   334,   111,    -1,   333,   350,    -1,   110,   334,   111,
    957      350,    -1,   110,   335,   111,   351,    -1,   110,   335,   111,
    958       -1,   333,   110,   135,   265,   136,   111,    -1,   110,   334,
    959      111,   110,   135,   265,   136,   111,    -1,   110,   336,   111,
    960       -1,   320,   313,    -1,   338,    -1,   339,   313,    -1,   340,
    961      313,    -1,   150,   337,    -1,   150,   228,   337,    -1,   110,
    962      338,   111,    -1,   320,   356,    -1,   110,   338,   111,   350,
    963       -1,   110,   339,   111,   351,    -1,   110,   339,   111,    -1,
    964      320,   110,   135,   265,   136,   111,    -1,   110,   338,   111,
    965      110,   135,   265,   136,   111,    -1,   110,   340,   111,    -1,
    966      342,   313,    -1,   343,    -1,   344,   313,    -1,   345,   313,
    967       -1,    74,    -1,    75,    -1,   150,   341,    -1,   150,   228,
    968      341,    -1,   110,   343,   111,    -1,   342,   356,    -1,   110,
    969      343,   111,   356,    -1,   342,   110,   135,   265,   136,   111,
    970       -1,   110,   343,   111,   110,   135,   265,   136,   111,    -1,
    971      347,    -1,   348,   313,    -1,   349,   313,    -1,   150,    -1,
    972      150,   228,    -1,   150,   346,    -1,   150,   228,   346,    -1,
    973      110,   347,   111,    -1,   350,    -1,   110,   347,   111,   350,
    974       -1,   110,   348,   111,   351,    -1,   110,   348,   111,    -1,
    975      110,   135,   265,   136,   111,    -1,   110,   347,   111,   110,
    976      135,   265,   136,   111,    -1,   110,   349,   111,    -1,   112,
    977      113,    -1,   112,   113,   351,    -1,   351,    -1,   112,   135,
    978      165,   136,   113,    -1,   112,   135,   119,   136,   113,    -1,
    979      351,   112,   135,   165,   136,   113,    -1,   351,   112,   135,
    980      119,   136,   113,    -1,   353,    -1,   354,   313,    -1,   355,
    981      313,    -1,   150,    -1,   150,   228,    -1,   150,   352,    -1,
    982      150,   228,   352,    -1,   110,   353,   111,    -1,   356,    -1,
    983      110,   353,   111,   356,    -1,   110,   354,   111,   351,    -1,
    984      110,   354,   111,    -1,   110,   135,   265,   136,   111,    -1,
    985      110,   353,   111,   110,   135,   265,   136,   111,    -1,   110,
    986      355,   111,    -1,   357,    -1,   357,   351,    -1,   351,    -1,
    987      112,   113,    -1,   112,   135,   228,   119,   136,   113,    -1,
    988      112,   135,   228,   136,   113,    -1,   112,   135,   228,   165,
    989      136,   113,    -1,   112,   135,     7,   227,   165,   136,   113,
    990       -1,   112,   135,   228,     7,   165,   136,   113,    -1,   359,
    991       -1,   360,   313,    -1,   361,   313,    -1,   150,    -1,   150,
    992      228,    -1,   150,   358,    -1,   150,   228,   358,    -1,   110,
    993      359,   111,    -1,   350,    -1,   110,   359,   111,   350,    -1,
    994      110,   360,   111,   351,    -1,   110,   360,   111,    -1,   110,
    995      359,   111,   110,   135,   265,   136,   111,    -1,   110,   361,
    996      111,    -1,   363,    -1,   371,    -1,   228,   371,    -1,   364,
    997       -1,   365,    -1,   150,   226,    -1,   228,   150,   226,    -1,
    998      150,   372,    -1,   228,   150,   372,    -1,   150,   362,    -1,
    999      228,   150,   362,    -1,   112,   113,   226,    -1,   366,   226,
    1000       -1,   112,   113,   351,   226,    -1,   366,   351,   226,    -1,
    1001      351,   226,    -1,   112,   113,   364,    -1,   366,   364,    -1,
    1002      112,   113,   351,   364,    -1,   366,   351,   364,    -1,   351,
    1003      364,    -1,   112,   135,   228,   119,   136,   113,    -1,   112,
    1004      135,   228,   165,   136,   113,    -1,   112,   135,   232,   165,
    1005      136,   113,    -1,   112,   135,   232,   228,   165,   136,   113,
    1006       -1,   371,    -1,   228,   371,    -1,   368,    -1,   369,    -1,
    1007      370,    -1,   150,   226,    -1,   228,   150,   226,    -1,   150,
    1008      372,    -1,   228,   150,   372,    -1,   150,   367,    -1,   228,
    1009      150,   367,    -1,   112,   113,   226,    -1,   112,   113,   351,
    1010      226,    -1,   351,   226,    -1,   112,   113,   369,    -1,   112,
    1011      113,   351,   369,    -1,   351,   369,    -1,   112,   135,   264,
    1012      136,   113,    -1,   112,   113,   110,   261,   111,    -1,   371,
    1013      110,   135,   261,   136,   111,    -1,   219,   110,   135,   261,
    1014      136,   111,    -1,    -1,   117,    -1,    -1,   132,   165,    -1
     738     302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     739      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     740      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,    82,
     741      -1,   141,    82,    -1,    72,    -1,   140,    -1,   109,   169,
     742     110,    -1,   109,   173,   110,    -1,   142,    -1,   143,   111,
     743     134,   164,   135,   112,    -1,   143,   109,   144,   110,    -1,
     744     143,   113,   139,    -1,   143,   113,   111,   134,   146,   135,
     745     112,    -1,   143,    85,   139,    -1,   143,    85,   111,   134,
     746     146,   135,   112,    -1,   143,    86,    -1,   143,    87,    -1,
     747     109,   275,   110,   114,   279,   372,   115,    -1,   143,   114,
     748     144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
     749     164,    -1,   139,   117,   164,    -1,   111,   134,   164,   135,
     750     112,   117,   164,    -1,   111,   134,   164,   116,   167,   135,
     751     112,   117,   164,    -1,   147,    -1,   146,   116,   147,    -1,
     752     139,    -1,   139,   113,   147,    -1,   139,   113,   111,   134,
     753     146,   135,   112,    -1,   139,    85,   147,    -1,   139,    85,
     754     111,   134,   146,   135,   112,    -1,   143,    -1,   136,    -1,
     755     141,    -1,    40,   151,    -1,   149,   151,    -1,   150,   151,
     756      -1,    86,   148,    -1,    87,   148,    -1,    37,   148,    -1,
     757      37,   109,   275,   110,    -1,    38,   109,   275,   116,   139,
     758     110,    -1,    76,    -1,    76,   109,   276,   110,    -1,    76,
     759     109,   145,   110,    -1,    66,   148,    -1,    66,   109,   275,
     760     110,    -1,    94,   139,    -1,   118,    -1,   119,    -1,   120,
     761      -1,   121,    -1,   122,    -1,   123,    -1,   148,    -1,   109,
     762     275,   110,   151,    -1,   109,   275,   110,   166,    -1,   151,
     763      -1,   152,   118,   151,    -1,   152,   124,   151,    -1,   152,
     764     125,   151,    -1,   152,    -1,   153,   120,   152,    -1,   153,
     765     121,   152,    -1,   153,    -1,   154,    88,   153,    -1,   154,
     766      89,   153,    -1,   154,    -1,   155,   126,   154,    -1,   155,
     767     127,   154,    -1,   155,    90,   154,    -1,   155,    91,   154,
     768      -1,   155,    -1,   156,    92,   155,    -1,   156,    93,   155,
     769      -1,   156,    -1,   157,   119,   156,    -1,   157,    -1,   158,
     770     128,   157,    -1,   158,    -1,   159,   129,   158,    -1,   159,
     771      -1,   160,    94,   159,    -1,   160,    -1,   161,    95,   160,
     772      -1,   161,    -1,   161,   130,   169,   117,   162,    -1,   161,
     773     130,   117,   162,    -1,   161,   130,   169,   117,   166,    -1,
     774     162,    -1,   162,    -1,   148,   131,   164,    -1,   148,   168,
     775     164,    -1,   166,   373,    -1,    -1,   164,    -1,   111,   112,
     776      -1,   111,   134,   164,   135,   112,    -1,   111,   134,   116,
     777     167,   135,   112,    -1,   111,   134,   164,   116,   167,   135,
     778     112,    -1,   165,    -1,   167,   116,   165,    -1,    97,    -1,
     779      98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,
     780     103,    -1,   104,    -1,   105,    -1,   106,    -1,   164,    -1,
     781     169,   116,   164,    -1,    -1,   169,    -1,   172,    -1,   173,
     782      -1,   177,    -1,   178,    -1,   190,    -1,   192,    -1,   193,
     783      -1,   198,    -1,   128,   143,   114,   144,   115,   132,    -1,
     784     139,   117,   312,   171,    -1,   114,   115,    -1,   114,   134,
     785     134,   209,   174,   135,   115,    -1,   175,    -1,   174,   134,
     786     175,    -1,   212,    -1,    40,   212,    -1,   308,    -1,   171,
     787     135,    -1,   171,    -1,   176,   171,    -1,   170,   132,    -1,
     788      41,   109,   169,   110,   171,    -1,    41,   109,   169,   110,
     789     171,    42,   171,    -1,    43,   109,   169,   110,   183,    -1,
     790      43,   109,   169,   110,   114,   134,   205,   184,   115,    -1,
     791      53,   109,   169,   110,   183,    -1,    53,   109,   169,   110,
     792     114,   134,   205,   186,   115,    -1,   163,    -1,   163,    96,
     793     163,    -1,   310,    -1,   179,    -1,   180,   116,   179,    -1,
     794      44,   180,   117,    -1,    45,   117,    -1,   181,    -1,   182,
     795     181,    -1,   182,   171,    -1,    -1,   185,    -1,   182,   176,
     796      -1,   185,   182,   176,    -1,    -1,   187,    -1,   182,   189,
     797      -1,   182,   176,   188,    -1,   187,   182,   189,    -1,   187,
     798     182,   176,   188,    -1,    -1,   189,    -1,    56,    -1,    56,
     799     132,    -1,    47,   109,   169,   110,   171,    -1,    46,   171,
     800      47,   109,   169,   110,   132,    -1,    48,   109,   134,   191,
     801     110,   171,    -1,   170,   135,   132,   170,   132,   170,    -1,
     802     212,   170,   132,   170,    -1,    51,   139,   132,    -1,    51,
     803     118,   169,   132,    -1,    50,   132,    -1,    50,   139,   132,
     804      -1,    49,   132,    -1,    49,   139,   132,    -1,    52,   170,
     805     132,    -1,    61,   165,   132,    -1,    62,   165,   132,    -1,
     806      62,   165,    63,   164,   132,    -1,    57,   173,   194,    -1,
     807      57,   173,   196,    -1,    57,   173,   194,   196,    -1,   195,
     808      -1,    58,   109,    96,   110,   173,    -1,   195,    58,   109,
     809      96,   110,   173,    -1,    59,   109,    96,   110,   173,    -1,
     810     195,    59,   109,    96,   110,   173,    -1,    58,   109,   134,
     811     134,   197,   135,   110,   173,   135,    -1,   195,    58,   109,
     812     134,   134,   197,   135,   110,   173,   135,    -1,    59,   109,
     813     134,   134,   197,   135,   110,   173,   135,    -1,   195,    59,
     814     109,   134,   134,   197,   135,   110,   173,   135,    -1,    60,
     815     173,    -1,   225,    -1,   225,   309,    -1,   225,   357,    -1,
     816     366,   139,    -1,   366,    -1,    64,   199,   109,   141,   110,
     817     132,    -1,    64,   199,   109,   141,   117,   200,   110,   132,
     818      -1,    64,   199,   109,   141,   117,   200,   117,   200,   110,
     819     132,    -1,    64,   199,   109,   141,   117,   200,   117,   200,
     820     117,   203,   110,   132,    -1,    64,   199,    51,   109,   141,
     821     117,   117,   200,   117,   203,   117,   204,   110,   132,    -1,
     822      -1,    11,    -1,    -1,   201,    -1,   202,    -1,   201,   116,
     823     202,    -1,   141,   109,   163,   110,    -1,   111,   163,   112,
     824     141,   109,   163,   110,    -1,    -1,   141,    -1,   203,   116,
     825     141,    -1,   139,    -1,   204,   116,   139,    -1,   135,    -1,
     826     206,    -1,   212,    -1,   206,   134,   212,    -1,   135,    -1,
     827     208,    -1,   222,    -1,   208,   134,   222,    -1,    -1,   210,
     828      -1,    29,   211,   132,    -1,   210,    29,   211,   132,    -1,
     829     274,    -1,   211,   116,   274,    -1,   213,    -1,   222,    -1,
     830     214,   135,   132,    -1,   219,   135,   132,    -1,   216,   135,
     831     132,    -1,   293,   135,   132,    -1,   296,   135,   132,    -1,
     832     215,   277,    -1,   231,   215,   277,    -1,   214,   135,   116,
     833     134,   272,   277,    -1,   367,   272,   311,    -1,   370,   272,
     834     311,    -1,   227,   370,   272,   311,    -1,   217,    -1,   227,
     835     217,    -1,   231,   217,    -1,   231,   227,   217,    -1,   216,
     836     135,   116,   134,   272,    -1,   111,   112,   272,   109,   134,
     837     260,   135,   110,    -1,   370,   272,   109,   134,   260,   135,
     838     110,    -1,   218,   272,   109,   134,   260,   135,   110,    -1,
     839     111,   134,   262,   135,   112,    -1,   111,   134,   262,   135,
     840     116,   134,   263,   135,   112,    -1,     3,   215,    -1,     3,
     841     217,    -1,   219,   135,   116,   134,   139,    -1,     3,   225,
     842     309,    -1,   220,   135,   116,   134,   309,    -1,   227,     3,
     843     225,   309,    -1,   225,     3,   309,    -1,   225,     3,   227,
     844     309,    -1,     3,   139,   131,   164,    -1,   221,   135,   116,
     845     134,   139,   131,   164,    -1,   223,   135,   132,    -1,   220,
     846     135,   132,    -1,   221,   135,   132,    -1,   240,   135,   132,
     847      -1,   224,   309,   311,   277,    -1,   223,   116,   312,   309,
     848     311,   277,    -1,   236,    -1,   240,    -1,   242,    -1,   283,
     849      -1,   237,    -1,   241,    -1,   243,    -1,   284,    -1,    -1,
     850     227,    -1,   228,    -1,   227,   228,    -1,   229,    -1,   314,
     851      -1,    10,    -1,    12,    -1,    11,    -1,    14,    -1,    67,
     852      -1,    -1,    13,   109,   230,   286,   110,    -1,   232,    -1,
     853     227,   232,    -1,   231,   227,   232,    -1,   233,    -1,   232,
     854     233,    -1,   234,    -1,     5,    -1,     7,    -1,     4,    -1,
     855       6,    -1,     8,    -1,     9,    -1,    69,    -1,    71,    -1,
     856      16,    -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,
     857      17,    -1,    22,    -1,    23,    -1,    15,    -1,    25,    -1,
     858      26,    -1,    27,    -1,    24,    -1,   237,    -1,   231,   237,
     859      -1,   236,   233,    -1,   236,   233,   227,    -1,   236,   233,
     860     237,    -1,   238,    -1,   226,   239,   226,    -1,   235,    -1,
     861     227,   235,    -1,   238,   228,    -1,   238,   235,    -1,    28,
     862     109,   276,   110,    -1,    28,   109,   169,   110,    -1,    78,
     863     109,   276,   110,    -1,    78,   109,   169,   110,    -1,   241,
     864      -1,   231,   241,    -1,   240,   233,    -1,   240,   233,   227,
     865      -1,   244,    -1,   227,   244,    -1,   241,   228,    -1,   243,
     866      -1,   231,   243,    -1,   242,   233,    -1,   242,   233,   227,
     867      -1,    74,    -1,   227,    74,    -1,   243,   228,    -1,   245,
     868      -1,   256,    -1,   247,   114,   248,   115,    -1,   247,   274,
     869      -1,    -1,   247,   274,   246,   114,   248,   115,    -1,   247,
     870     109,   292,   110,   114,   248,   115,    -1,   247,   285,    -1,
     871      31,   312,    -1,    32,   312,    -1,   249,    -1,   248,   249,
     872      -1,   250,   132,    -1,    40,   250,   132,    -1,   251,   132,
     873      -1,    40,   251,   132,    -1,   366,    -1,   366,   274,    -1,
     874     250,   116,   274,    -1,   250,   116,    -1,   225,   252,    -1,
     875     251,   116,   312,   252,    -1,    -1,   254,    -1,   318,   253,
     876      -1,   331,   253,    -1,   357,    -1,    -1,   254,    -1,   117,
     877     163,    -1,    30,   312,    -1,   255,   114,   258,   372,   115,
     878      -1,   255,   274,    -1,    -1,   255,   274,   257,   114,   258,
     879     372,   115,    -1,   274,   259,    -1,   258,   116,   274,   259,
     880      -1,    -1,   131,   163,    -1,    -1,   261,    -1,   263,    -1,
     881     262,    -1,   262,   135,   116,   134,   263,    -1,   263,   135,
     882     116,   134,    96,    -1,   262,   135,   116,   134,    96,    -1,
     883     267,    -1,   263,   135,   116,   134,   267,    -1,   262,   135,
     884     116,   134,   267,    -1,   262,   135,   116,   134,   263,   135,
     885     116,   134,   267,    -1,   268,    -1,   263,   135,   116,   134,
     886     268,    -1,    -1,   265,    -1,   266,    -1,   266,   135,   116,
     887     134,    96,    -1,   270,    -1,   269,    -1,   266,   135,   116,
     888     134,   270,    -1,   266,   135,   116,   134,   269,    -1,   269,
     889      -1,   362,   272,   373,    -1,   370,   272,   373,    -1,   227,
     890     370,   272,   373,    -1,   217,    -1,   270,    -1,   362,    -1,
     891     370,    -1,   227,   370,    -1,   371,    -1,   224,   336,   373,
     892      -1,   224,   340,   373,    -1,   224,    -1,   224,   351,    -1,
     893     139,    -1,   271,   116,   139,    -1,   137,    -1,    74,    -1,
     894      75,    -1,   138,    -1,    74,    -1,    75,    -1,   139,    -1,
     895      74,    -1,    75,    -1,   366,    -1,   225,    -1,   225,   357,
     896      -1,   366,    -1,   371,    -1,   225,    -1,   225,   345,    -1,
     897      -1,   131,   278,    -1,   107,   278,    -1,   164,    -1,   114,
     898     279,   372,   115,    -1,    -1,   278,    -1,   280,   278,    -1,
     899     279,   116,   278,    -1,   279,   116,   280,   278,    -1,   281,
     900     117,    -1,   274,   117,    -1,   282,    -1,   281,   282,    -1,
     901      80,    -1,   113,   274,    -1,   111,   134,   164,   135,   112,
     902      -1,   111,   134,   310,   135,   112,    -1,   111,   134,   163,
     903      96,   163,   135,   112,    -1,   113,   111,   134,   146,   135,
     904     112,    -1,   284,    -1,   231,   284,    -1,   283,   233,    -1,
     905     283,   233,   227,    -1,   285,    -1,   227,   285,    -1,   284,
     906     228,    -1,    75,   109,   292,   110,    -1,   287,   373,    -1,
     907     286,   116,   287,   373,    -1,    -1,   289,   274,   288,   290,
     908      -1,   225,   336,    -1,    33,    -1,    35,    -1,    34,    -1,
     909      -1,   290,   291,    -1,   129,   274,   109,   292,   110,    -1,
     910     129,   114,   134,   298,   115,    -1,   129,   109,   134,   286,
     911     135,   110,   114,   134,   298,   115,   109,   292,   110,    -1,
     912     276,    -1,   164,    -1,   292,   116,   276,    -1,   292,   116,
     913     164,    -1,    33,   294,    -1,   232,    33,   294,    -1,   293,
     914     116,   294,    -1,   295,   290,    -1,   295,   290,   131,   276,
     915      -1,   274,    -1,   273,   109,   134,   286,   135,   110,    -1,
     916      36,   274,   109,   134,   286,   135,   110,   114,   115,    -1,
     917      -1,    36,   274,   109,   134,   286,   135,   110,   114,   297,
     918     298,   115,    -1,   299,    -1,   298,   134,   299,    -1,   300,
     919     135,   132,    -1,   301,   135,   132,    -1,   215,    -1,   217,
     920      -1,   300,   135,   116,   134,   272,    -1,   225,   309,    -1,
     921     301,   135,   116,   134,   309,    -1,    -1,   303,    -1,   305,
     922      -1,   303,   134,   305,    -1,    -1,   303,    -1,   212,    -1,
     923     307,    -1,   198,    -1,    -1,     5,    82,   306,   114,   304,
     924     115,    -1,    40,   305,    -1,   308,    -1,   323,   173,    -1,
     925     327,   134,   207,   173,    -1,   216,   173,    -1,   224,   323,
     926     173,    -1,   227,   323,   173,    -1,   231,   323,   173,    -1,
     927     231,   227,   323,   173,    -1,   224,   327,   134,   207,   173,
     928      -1,   227,   327,   134,   207,   173,    -1,   231,   327,   134,
     929     207,   173,    -1,   231,   227,   327,   134,   207,   173,    -1,
     930     318,    -1,   323,    -1,   331,    -1,   163,   123,   163,    -1,
     931      -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
     932     314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
     933     110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
     934      -1,   317,   109,   170,   110,    -1,   272,    -1,   234,    -1,
     935     235,    -1,   228,    -1,   319,   312,    -1,   320,    -1,   321,
     936     312,    -1,   322,   312,    -1,   137,    -1,   109,   319,   110,
     937      -1,   149,   318,    -1,   149,   227,   318,    -1,   109,   320,
     938     110,    -1,   319,   349,    -1,   109,   320,   110,   349,    -1,
     939     109,   321,   110,   350,    -1,   109,   321,   110,    -1,   109,
     940     320,   110,   109,   134,   264,   135,   110,    -1,   109,   322,
     941     110,    -1,   324,   312,    -1,   325,    -1,   326,   312,    -1,
     942     319,   109,   134,   264,   135,   110,    -1,   109,   325,   110,
     943     109,   134,   264,   135,   110,    -1,   109,   324,   110,    -1,
     944     149,   323,    -1,   149,   227,   323,    -1,   109,   325,   110,
     945      -1,   109,   325,   110,   349,    -1,   109,   326,   110,   350,
     946      -1,   109,   326,   110,    -1,   328,    -1,   329,    -1,   330,
     947      -1,   319,   109,   271,   110,    -1,   109,   329,   110,   109,
     948     271,   110,    -1,   109,   328,   110,    -1,   149,   327,    -1,
     949     149,   227,   327,    -1,   109,   329,   110,    -1,   109,   329,
     950     110,   349,    -1,   109,   330,   110,   350,    -1,   109,   330,
     951     110,    -1,   332,   312,    -1,   333,    -1,   334,   312,    -1,
     952     335,   312,    -1,   341,    -1,   109,   332,   110,    -1,   149,
     953     331,    -1,   149,   227,   331,    -1,   109,   333,   110,    -1,
     954     332,   349,    -1,   109,   333,   110,   349,    -1,   109,   334,
     955     110,   350,    -1,   109,   334,   110,    -1,   332,   109,   134,
     956     264,   135,   110,    -1,   109,   333,   110,   109,   134,   264,
     957     135,   110,    -1,   109,   335,   110,    -1,   319,   312,    -1,
     958     337,    -1,   338,   312,    -1,   339,   312,    -1,   149,   336,
     959      -1,   149,   227,   336,    -1,   109,   337,   110,    -1,   319,
     960     355,    -1,   109,   337,   110,   349,    -1,   109,   338,   110,
     961     350,    -1,   109,   338,   110,    -1,   319,   109,   134,   264,
     962     135,   110,    -1,   109,   337,   110,   109,   134,   264,   135,
     963     110,    -1,   109,   339,   110,    -1,   341,   312,    -1,   342,
     964      -1,   343,   312,    -1,   344,   312,    -1,    74,    -1,    75,
     965      -1,   149,   340,    -1,   149,   227,   340,    -1,   109,   342,
     966     110,    -1,   341,   355,    -1,   109,   342,   110,   355,    -1,
     967     341,   109,   134,   264,   135,   110,    -1,   109,   342,   110,
     968     109,   134,   264,   135,   110,    -1,   346,    -1,   347,   312,
     969      -1,   348,   312,    -1,   149,    -1,   149,   227,    -1,   149,
     970     345,    -1,   149,   227,   345,    -1,   109,   346,   110,    -1,
     971     349,    -1,   109,   346,   110,   349,    -1,   109,   347,   110,
     972     350,    -1,   109,   347,   110,    -1,   109,   134,   264,   135,
     973     110,    -1,   109,   346,   110,   109,   134,   264,   135,   110,
     974      -1,   109,   348,   110,    -1,   111,   112,    -1,   111,   112,
     975     350,    -1,   350,    -1,   111,   134,   164,   135,   112,    -1,
     976     111,   134,   118,   135,   112,    -1,   350,   111,   134,   164,
     977     135,   112,    -1,   350,   111,   134,   118,   135,   112,    -1,
     978     352,    -1,   353,   312,    -1,   354,   312,    -1,   149,    -1,
     979     149,   227,    -1,   149,   351,    -1,   149,   227,   351,    -1,
     980     109,   352,   110,    -1,   355,    -1,   109,   352,   110,   355,
     981      -1,   109,   353,   110,   350,    -1,   109,   353,   110,    -1,
     982     109,   134,   264,   135,   110,    -1,   109,   352,   110,   109,
     983     134,   264,   135,   110,    -1,   109,   354,   110,    -1,   356,
     984      -1,   356,   350,    -1,   350,    -1,   111,   112,    -1,   111,
     985     134,   227,   118,   135,   112,    -1,   111,   134,   227,   135,
     986     112,    -1,   111,   134,   227,   164,   135,   112,    -1,   111,
     987     134,     7,   226,   164,   135,   112,    -1,   111,   134,   227,
     988       7,   164,   135,   112,    -1,   358,    -1,   359,   312,    -1,
     989     360,   312,    -1,   149,    -1,   149,   227,    -1,   149,   357,
     990      -1,   149,   227,   357,    -1,   109,   358,   110,    -1,   349,
     991      -1,   109,   358,   110,   349,    -1,   109,   359,   110,   350,
     992      -1,   109,   359,   110,    -1,   109,   358,   110,   109,   134,
     993     264,   135,   110,    -1,   109,   360,   110,    -1,   362,    -1,
     994     370,    -1,   227,   370,    -1,   363,    -1,   364,    -1,   149,
     995     225,    -1,   227,   149,   225,    -1,   149,   371,    -1,   227,
     996     149,   371,    -1,   149,   361,    -1,   227,   149,   361,    -1,
     997     111,   112,   225,    -1,   365,   225,    -1,   111,   112,   350,
     998     225,    -1,   365,   350,   225,    -1,   350,   225,    -1,   111,
     999     112,   363,    -1,   365,   363,    -1,   111,   112,   350,   363,
     1000      -1,   365,   350,   363,    -1,   350,   363,    -1,   111,   134,
     1001     227,   118,   135,   112,    -1,   111,   134,   227,   164,   135,
     1002     112,    -1,   111,   134,   231,   164,   135,   112,    -1,   111,
     1003     134,   231,   227,   164,   135,   112,    -1,   370,    -1,   227,
     1004     370,    -1,   367,    -1,   368,    -1,   369,    -1,   149,   225,
     1005      -1,   227,   149,   225,    -1,   149,   371,    -1,   227,   149,
     1006     371,    -1,   149,   366,    -1,   227,   149,   366,    -1,   111,
     1007     112,   225,    -1,   111,   112,   350,   225,    -1,   350,   225,
     1008      -1,   111,   112,   368,    -1,   111,   112,   350,   368,    -1,
     1009     350,   368,    -1,   111,   134,   263,   135,   112,    -1,   111,
     1010     112,   109,   260,   110,    -1,   370,   109,   134,   260,   135,
     1011     110,    -1,   218,   109,   134,   260,   135,   110,    -1,    -1,
     1012     116,    -1,    -1,   131,   164,    -1
    10151013};
    10161014
     
    10181016static const yytype_uint16 yyrline[] =
    10191017{
    1020        0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
    1021      319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
    1022      345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
    1023      371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
    1024      404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
    1025      431,   433,   438,   440,   442,   444,   446,   448,   450,   452,
    1026      454,   456,   458,   460,   465,   466,   470,   471,   472,   473,
    1027      477,   478,   480,   485,   486,   488,   490,   495,   496,   498,
    1028      503,   504,   506,   511,   512,   514,   516,   518,   523,   524,
    1029      526,   531,   532,   537,   538,   543,   544,   549,   550,   555,
    1030      556,   561,   562,   564,   566,   571,   576,   577,   579,   581,
    1031      583,   589,   590,   596,   598,   600,   602,   607,   608,   613,
    1032      614,   615,   616,   617,   618,   619,   620,   621,   622,   626,
    1033      627,   633,   634,   640,   641,   642,   643,   644,   645,   646,
    1034      647,   648,   657,   664,   666,   676,   677,   682,   684,   686,
    1035      688,   692,   693,   698,   703,   706,   708,   710,   715,   717,
    1036      725,   726,   728,   732,   733,   738,   739,   744,   745,   749,
    1037      754,   755,   759,   761,   767,   768,   772,   774,   776,   778,
    1038      784,   785,   789,   790,   794,   796,   798,   803,   805,   810,
    1039      812,   816,   819,   823,   826,   830,   832,   836,   838,   845,
    1040      847,   849,   858,   860,   862,   864,   866,   871,   873,   875,
    1041      877,   882,   895,   896,   901,   903,   908,   912,   914,   916,
    1042      918,   920,   926,   927,   933,   934,   938,   939,   944,   946,
    1043      952,   953,   955,   960,   962,   969,   971,   975,   976,   981,
    1044      983,   987,   988,   992,   994,   998,   999,  1003,  1004,  1008,
    1045     1009,  1024,  1025,  1026,  1027,  1028,  1032,  1037,  1044,  1054,
    1046     1059,  1064,  1072,  1077,  1082,  1087,  1092,  1100,  1122,  1127,
    1047     1134,  1136,  1143,  1148,  1153,  1164,  1169,  1174,  1179,  1184,
    1048     1193,  1198,  1206,  1207,  1208,  1209,  1215,  1220,  1228,  1229,
    1049     1230,  1231,  1235,  1236,  1237,  1238,  1243,  1244,  1253,  1254,
    1050     1259,  1260,  1265,  1267,  1269,  1271,  1273,  1276,  1275,  1287,
    1051     1288,  1290,  1300,  1301,  1306,  1310,  1312,  1314,  1316,  1318,
    1052     1320,  1322,  1324,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
    1053     1343,  1345,  1347,  1349,  1351,  1353,  1359,  1360,  1362,  1364,
    1054     1366,  1371,  1372,  1378,  1379,  1381,  1383,  1388,  1390,  1392,
    1055     1394,  1399,  1400,  1402,  1404,  1409,  1410,  1412,  1417,  1418,
    1056     1420,  1422,  1427,  1429,  1431,  1436,  1437,  1441,  1443,  1449,
    1057     1448,  1452,  1454,  1459,  1461,  1466,  1468,  1473,  1474,  1476,
    1058     1477,  1482,  1483,  1485,  1487,  1492,  1494,  1500,  1501,  1503,
    1059     1506,  1509,  1514,  1515,  1520,  1525,  1529,  1531,  1537,  1536,
    1060     1543,  1545,  1551,  1552,  1560,  1561,  1565,  1566,  1567,  1569,
    1061     1571,  1578,  1579,  1581,  1583,  1588,  1589,  1595,  1596,  1600,
    1062     1601,  1606,  1607,  1608,  1610,  1618,  1619,  1621,  1624,  1626,
    1063     1630,  1631,  1632,  1634,  1636,  1640,  1645,  1653,  1654,  1663,
    1064     1665,  1670,  1671,  1672,  1676,  1677,  1678,  1682,  1683,  1684,
    1065     1688,  1689,  1690,  1695,  1696,  1697,  1698,  1704,  1705,  1707,
    1066     1712,  1713,  1718,  1719,  1720,  1721,  1722,  1737,  1738,  1743,
    1067     1744,  1752,  1754,  1756,  1759,  1761,  1763,  1786,  1787,  1789,
    1068     1791,  1796,  1797,  1799,  1804,  1809,  1810,  1816,  1815,  1819,
    1069     1823,  1825,  1827,  1833,  1834,  1839,  1844,  1846,  1851,  1853,
    1070     1854,  1856,  1861,  1863,  1865,  1870,  1872,  1877,  1882,  1890,
    1071     1896,  1895,  1909,  1910,  1915,  1916,  1920,  1925,  1930,  1938,
    1072     1943,  1954,  1955,  1966,  1967,  1973,  1974,  1978,  1979,  1980,
    1073     1983,  1982,  1993,  1998,  2003,  2009,  2018,  2024,  2030,  2036,
    1074     2042,  2050,  2056,  2064,  2070,  2079,  2080,  2081,  2085,  2089,
    1075     2091,  2096,  2097,  2101,  2102,  2107,  2113,  2114,  2117,  2119,
    1076     2120,  2124,  2125,  2126,  2127,  2161,  2163,  2164,  2166,  2171,
    1077     2176,  2181,  2183,  2185,  2190,  2192,  2194,  2196,  2201,  2203,
    1078     2213,  2215,  2216,  2221,  2223,  2225,  2230,  2232,  2234,  2239,
    1079     2241,  2243,  2252,  2253,  2254,  2258,  2260,  2262,  2267,  2269,
    1080     2271,  2276,  2278,  2280,  2295,  2297,  2298,  2300,  2305,  2306,
    1081     2311,  2313,  2315,  2320,  2322,  2324,  2326,  2331,  2333,  2335,
    1082     2345,  2347,  2348,  2350,  2355,  2357,  2359,  2364,  2366,  2368,
    1083     2370,  2375,  2377,  2379,  2410,  2412,  2413,  2415,  2420,  2425,
    1084     2433,  2435,  2437,  2442,  2444,  2449,  2451,  2465,  2466,  2468,
    1085     2473,  2475,  2477,  2479,  2481,  2486,  2487,  2489,  2491,  2496,
    1086     2498,  2500,  2506,  2508,  2510,  2514,  2516,  2518,  2520,  2534,
    1087     2535,  2537,  2542,  2544,  2546,  2548,  2550,  2555,  2556,  2558,
    1088     2560,  2565,  2567,  2569,  2575,  2576,  2578,  2587,  2590,  2592,
    1089     2595,  2597,  2599,  2612,  2613,  2615,  2620,  2622,  2624,  2626,
    1090     2628,  2633,  2634,  2636,  2638,  2643,  2645,  2653,  2654,  2655,
    1091     2660,  2661,  2665,  2667,  2669,  2671,  2673,  2675,  2682,  2684,
    1092     2686,  2688,  2690,  2692,  2694,  2696,  2698,  2700,  2705,  2707,
    1093     2709,  2714,  2740,  2741,  2743,  2747,  2748,  2752,  2754,  2756,
    1094     2758,  2760,  2762,  2769,  2771,  2773,  2775,  2777,  2779,  2784,
    1095     2789,  2791,  2793,  2811,  2813,  2818,  2819
     1018       0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
     1019     317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
     1020     343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
     1021     369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
     1022     402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
     1023     429,   431,   436,   438,   440,   442,   444,   446,   448,   450,
     1024     452,   454,   456,   458,   463,   464,   468,   469,   470,   471,
     1025     475,   476,   478,   483,   484,   486,   488,   493,   494,   496,
     1026     501,   502,   504,   509,   510,   512,   514,   516,   521,   522,
     1027     524,   529,   530,   535,   536,   541,   542,   547,   548,   553,
     1028     554,   559,   560,   562,   564,   569,   574,   575,   577,   579,
     1029     585,   586,   592,   594,   596,   598,   603,   604,   609,   610,
     1030     611,   612,   613,   614,   615,   616,   617,   618,   622,   623,
     1031     629,   630,   636,   637,   638,   639,   640,   641,   642,   643,
     1032     644,   653,   660,   662,   672,   673,   678,   680,   682,   684,
     1033     688,   689,   694,   699,   702,   704,   706,   711,   713,   721,
     1034     722,   724,   728,   729,   734,   735,   740,   741,   745,   750,
     1035     751,   755,   757,   763,   764,   768,   770,   772,   774,   780,
     1036     781,   785,   786,   790,   792,   794,   799,   801,   806,   808,
     1037     812,   815,   819,   822,   826,   828,   832,   834,   841,   843,
     1038     845,   854,   856,   858,   860,   862,   867,   869,   871,   873,
     1039     878,   891,   892,   897,   899,   904,   908,   910,   912,   914,
     1040     916,   922,   923,   929,   930,   934,   935,   940,   942,   948,
     1041     949,   951,   956,   958,   965,   967,   971,   972,   977,   979,
     1042     983,   984,   988,   990,   994,   995,   999,  1000,  1004,  1005,
     1043    1020,  1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,
     1044    1060,  1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,
     1045    1132,  1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,
     1046    1194,  1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,
     1047    1227,  1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,
     1048    1256,  1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,
     1049    1286,  1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,
     1050    1318,  1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
     1051    1341,  1343,  1345,  1347,  1349,  1355,  1356,  1358,  1360,  1362,
     1052    1367,  1368,  1374,  1375,  1377,  1379,  1384,  1386,  1388,  1390,
     1053    1395,  1396,  1398,  1400,  1405,  1406,  1408,  1413,  1414,  1416,
     1054    1418,  1423,  1425,  1427,  1432,  1433,  1437,  1439,  1445,  1444,
     1055    1448,  1450,  1455,  1457,  1462,  1464,  1469,  1470,  1472,  1473,
     1056    1478,  1479,  1481,  1483,  1488,  1490,  1496,  1497,  1499,  1502,
     1057    1505,  1510,  1511,  1516,  1521,  1525,  1527,  1533,  1532,  1539,
     1058    1541,  1547,  1548,  1556,  1557,  1561,  1562,  1563,  1565,  1567,
     1059    1574,  1575,  1577,  1579,  1584,  1585,  1591,  1592,  1596,  1597,
     1060    1602,  1603,  1604,  1606,  1614,  1615,  1617,  1620,  1622,  1626,
     1061    1627,  1628,  1630,  1632,  1636,  1641,  1649,  1650,  1659,  1661,
     1062    1666,  1667,  1668,  1672,  1673,  1674,  1678,  1679,  1680,  1684,
     1063    1685,  1686,  1691,  1692,  1693,  1694,  1700,  1701,  1703,  1708,
     1064    1709,  1714,  1715,  1716,  1717,  1718,  1733,  1734,  1739,  1740,
     1065    1748,  1750,  1752,  1755,  1757,  1759,  1782,  1783,  1785,  1787,
     1066    1792,  1793,  1795,  1800,  1805,  1806,  1812,  1811,  1815,  1819,
     1067    1821,  1823,  1829,  1830,  1835,  1840,  1842,  1847,  1849,  1850,
     1068    1852,  1857,  1859,  1861,  1866,  1868,  1873,  1878,  1886,  1892,
     1069    1891,  1905,  1906,  1911,  1912,  1916,  1921,  1926,  1934,  1939,
     1070    1950,  1951,  1962,  1963,  1969,  1970,  1974,  1975,  1976,  1979,
     1071    1978,  1989,  1994,  1999,  2005,  2014,  2020,  2026,  2032,  2038,
     1072    2046,  2052,  2060,  2066,  2075,  2076,  2077,  2081,  2085,  2087,
     1073    2092,  2093,  2097,  2098,  2103,  2109,  2110,  2113,  2115,  2116,
     1074    2120,  2121,  2122,  2123,  2157,  2159,  2160,  2162,  2167,  2172,
     1075    2177,  2179,  2181,  2186,  2188,  2190,  2192,  2197,  2199,  2209,
     1076    2211,  2212,  2217,  2219,  2221,  2226,  2228,  2230,  2235,  2237,
     1077    2239,  2248,  2249,  2250,  2254,  2256,  2258,  2263,  2265,  2267,
     1078    2272,  2274,  2276,  2291,  2293,  2294,  2296,  2301,  2302,  2307,
     1079    2309,  2311,  2316,  2318,  2320,  2322,  2327,  2329,  2331,  2341,
     1080    2343,  2344,  2346,  2351,  2353,  2355,  2360,  2362,  2364,  2366,
     1081    2371,  2373,  2375,  2406,  2408,  2409,  2411,  2416,  2421,  2429,
     1082    2431,  2433,  2438,  2440,  2445,  2447,  2461,  2462,  2464,  2469,
     1083    2471,  2473,  2475,  2477,  2482,  2483,  2485,  2487,  2492,  2494,
     1084    2496,  2502,  2504,  2506,  2510,  2512,  2514,  2516,  2530,  2531,
     1085    2533,  2538,  2540,  2542,  2544,  2546,  2551,  2552,  2554,  2556,
     1086    2561,  2563,  2565,  2571,  2572,  2574,  2583,  2586,  2588,  2591,
     1087    2593,  2595,  2608,  2609,  2611,  2616,  2618,  2620,  2622,  2624,
     1088    2629,  2630,  2632,  2634,  2639,  2641,  2649,  2650,  2651,  2656,
     1089    2657,  2661,  2663,  2665,  2667,  2669,  2671,  2678,  2680,  2682,
     1090    2684,  2686,  2688,  2690,  2692,  2694,  2696,  2701,  2703,  2705,
     1091    2710,  2736,  2737,  2739,  2743,  2744,  2748,  2750,  2752,  2754,
     1092    2756,  2758,  2765,  2767,  2769,  2771,  2773,  2775,  2780,  2785,
     1093    2787,  2789,  2807,  2809,  2814,  2815
    10961094};
    10971095#endif
     
    11181116  "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
    11191117  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
    1120   "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "REFassign",
    1121   "THEN", "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'",
    1122   "'*'", "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'",
    1123   "'^'", "'|'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant",
     1118  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
     1119  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "'*'",
     1120  "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",
     1121  "'|'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant",
    11241122  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
    11251123  "string_literal_list", "primary_expression", "postfix_expression",
     
    12251223     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12261224     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1227      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    1228       40,    41,    91,    93,    46,   123,   125,    44,    58,    42,
    1229       38,    43,    45,    33,   126,    47,    37,    60,    62,    94,
    1230      124,    63,    61,    59
     1225     355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
     1226      41,    91,    93,    46,   123,   125,    44,    58,    42,    38,
     1227      43,    45,    33,   126,    47,    37,    60,    62,    94,   124,
     1228      63,    61,    59
    12311229};
    12321230# endif
     
    12351233static const yytype_uint16 yyr1[] =
    12361234{
    1237        0,   134,   135,   136,   137,   137,   137,   138,   138,   138,
    1238      139,   139,   140,   140,   141,   141,   142,   142,   143,   143,
    1239      143,   143,   144,   144,   144,   144,   144,   144,   144,   144,
    1240      144,   144,   144,   145,   145,   146,   146,   146,   146,   146,
    1241      147,   147,   148,   148,   148,   148,   148,   149,   149,   149,
    1242      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
    1243      149,   149,   149,   149,   150,   150,   151,   151,   151,   151,
    1244      152,   152,   152,   153,   153,   153,   153,   154,   154,   154,
    1245      155,   155,   155,   156,   156,   156,   156,   156,   157,   157,
    1246      157,   158,   158,   159,   159,   160,   160,   161,   161,   162,
    1247      162,   163,   163,   163,   163,   164,   165,   165,   165,   165,
    1248      165,   166,   166,   167,   167,   167,   167,   168,   168,   169,
    1249      169,   169,   169,   169,   169,   169,   169,   169,   169,   170,
    1250      170,   171,   171,   172,   172,   172,   172,   172,   172,   172,
    1251      172,   172,   173,   174,   174,   175,   175,   176,   176,   176,
    1252      176,   177,   177,   178,   179,   179,   179,   179,   179,   179,
    1253      180,   180,   180,   181,   181,   182,   182,   183,   183,   184,
    1254      185,   185,   186,   186,   187,   187,   188,   188,   188,   188,
    1255      189,   189,   190,   190,   191,   191,   191,   192,   192,   193,
    1256      193,   193,   193,   193,   193,   193,   193,   193,   193,   194,
    1257      194,   194,   195,   195,   195,   195,   195,   196,   196,   196,
    1258      196,   197,   198,   198,   198,   198,   198,   199,   199,   199,
    1259      199,   199,   200,   200,   201,   201,   202,   202,   203,   203,
    1260      204,   204,   204,   205,   205,   206,   206,   207,   207,   208,
    1261      208,   209,   209,   210,   210,   211,   211,   212,   212,   213,
    1262      213,   214,   214,   214,   214,   214,   215,   215,   215,   216,
    1263      216,   216,   217,   217,   217,   217,   217,   218,   218,   218,
    1264      219,   219,   220,   220,   220,   221,   221,   221,   221,   221,
    1265      222,   222,   223,   223,   223,   223,   224,   224,   225,   225,
    1266      225,   225,   226,   226,   226,   226,   227,   227,   228,   228,
    1267      229,   229,   230,   230,   230,   230,   230,   231,   230,   232,
    1268      232,   232,   233,   233,   234,   235,   235,   235,   235,   235,
    1269      235,   235,   235,   236,   236,   236,   236,   236,   236,   236,
    1270      236,   236,   236,   236,   236,   236,   237,   237,   237,   237,
    1271      237,   238,   238,   239,   239,   239,   239,   240,   240,   240,
    1272      240,   241,   241,   241,   241,   242,   242,   242,   243,   243,
    1273      243,   243,   244,   244,   244,   245,   245,   246,   246,   247,
    1274      246,   246,   246,   248,   248,   249,   249,   250,   250,   250,
    1275      250,   251,   251,   251,   251,   252,   252,   253,   253,   253,
    1276      253,   253,   254,   254,   255,   256,   257,   257,   258,   257,
    1277      259,   259,   260,   260,   261,   261,   262,   262,   262,   262,
    1278      262,   263,   263,   263,   263,   264,   264,   265,   265,   266,
    1279      266,   267,   267,   267,   267,   268,   268,   268,   268,   268,
    1280      269,   269,   269,   269,   269,   270,   270,   271,   271,   272,
    1281      272,   273,   273,   273,   274,   274,   274,   275,   275,   275,
    1282      276,   276,   276,   277,   277,   277,   277,   278,   278,   278,
    1283      279,   279,   280,   280,   280,   280,   280,   281,   281,   282,
    1284      282,   283,   283,   283,   283,   283,   283,   284,   284,   284,
    1285      284,   285,   285,   285,   286,   287,   287,   289,   288,   288,
    1286      290,   290,   290,   291,   291,   292,   292,   292,   293,   293,
    1287      293,   293,   294,   294,   294,   295,   295,   296,   296,   297,
    1288      298,   297,   299,   299,   300,   300,   301,   301,   301,   302,
    1289      302,   303,   303,   304,   304,   305,   305,   306,   306,   306,
    1290      307,   306,   306,   308,   308,   308,   309,   309,   309,   309,
    1291      309,   309,   309,   309,   309,   310,   310,   310,   311,   312,
    1292      312,   313,   313,   314,   314,   315,   316,   316,   317,   317,
    1293      317,   318,   318,   318,   318,   319,   319,   319,   319,   320,
    1294      320,   321,   321,   321,   322,   322,   322,   322,   323,   323,
    1295      324,   324,   324,   325,   325,   325,   326,   326,   326,   327,
    1296      327,   327,   328,   328,   328,   329,   329,   329,   330,   330,
    1297      330,   331,   331,   331,   332,   332,   332,   332,   333,   333,
    1298      334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
    1299      337,   337,   337,   337,   338,   338,   338,   339,   339,   339,
    1300      339,   340,   340,   340,   341,   341,   341,   341,   342,   342,
    1301      343,   343,   343,   344,   344,   345,   345,   346,   346,   346,
    1302      347,   347,   347,   347,   347,   348,   348,   348,   348,   349,
    1303      349,   349,   350,   350,   350,   351,   351,   351,   351,   352,
    1304      352,   352,   353,   353,   353,   353,   353,   354,   354,   354,
    1305      354,   355,   355,   355,   356,   356,   356,   357,   357,   357,
    1306      357,   357,   357,   358,   358,   358,   359,   359,   359,   359,
    1307      359,   360,   360,   360,   360,   361,   361,   362,   362,   362,
    1308      363,   363,   364,   364,   364,   364,   364,   364,   365,   365,
    1309      365,   365,   365,   365,   365,   365,   365,   365,   366,   366,
    1310      366,   366,   367,   367,   367,   368,   368,   369,   369,   369,
    1311      369,   369,   369,   370,   370,   370,   370,   370,   370,   371,
    1312      372,   372,   372,   373,   373,   374,   374
     1235       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1236     138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
     1237     142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
     1238     143,   143,   143,   144,   144,   145,   145,   145,   145,   145,
     1239     146,   146,   147,   147,   147,   147,   147,   148,   148,   148,
     1240     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
     1241     148,   148,   148,   148,   149,   149,   150,   150,   150,   150,
     1242     151,   151,   151,   152,   152,   152,   152,   153,   153,   153,
     1243     154,   154,   154,   155,   155,   155,   155,   155,   156,   156,
     1244     156,   157,   157,   158,   158,   159,   159,   160,   160,   161,
     1245     161,   162,   162,   162,   162,   163,   164,   164,   164,   164,
     1246     165,   165,   166,   166,   166,   166,   167,   167,   168,   168,
     1247     168,   168,   168,   168,   168,   168,   168,   168,   169,   169,
     1248     170,   170,   171,   171,   171,   171,   171,   171,   171,   171,
     1249     171,   172,   173,   173,   174,   174,   175,   175,   175,   175,
     1250     176,   176,   177,   178,   178,   178,   178,   178,   178,   179,
     1251     179,   179,   180,   180,   181,   181,   182,   182,   183,   184,
     1252     184,   185,   185,   186,   186,   187,   187,   187,   187,   188,
     1253     188,   189,   189,   190,   190,   190,   191,   191,   192,   192,
     1254     192,   192,   192,   192,   192,   192,   192,   192,   193,   193,
     1255     193,   194,   194,   194,   194,   194,   195,   195,   195,   195,
     1256     196,   197,   197,   197,   197,   197,   198,   198,   198,   198,
     1257     198,   199,   199,   200,   200,   201,   201,   202,   202,   203,
     1258     203,   203,   204,   204,   205,   205,   206,   206,   207,   207,
     1259     208,   208,   209,   209,   210,   210,   211,   211,   212,   212,
     1260     213,   213,   213,   213,   213,   214,   214,   214,   215,   215,
     1261     215,   216,   216,   216,   216,   216,   217,   217,   217,   218,
     1262     218,   219,   219,   219,   220,   220,   220,   220,   220,   221,
     1263     221,   222,   222,   222,   222,   223,   223,   224,   224,   224,
     1264     224,   225,   225,   225,   225,   226,   226,   227,   227,   228,
     1265     228,   229,   229,   229,   229,   229,   230,   229,   231,   231,
     1266     231,   232,   232,   233,   234,   234,   234,   234,   234,   234,
     1267     234,   234,   235,   235,   235,   235,   235,   235,   235,   235,
     1268     235,   235,   235,   235,   235,   236,   236,   236,   236,   236,
     1269     237,   237,   238,   238,   238,   238,   239,   239,   239,   239,
     1270     240,   240,   240,   240,   241,   241,   241,   242,   242,   242,
     1271     242,   243,   243,   243,   244,   244,   245,   245,   246,   245,
     1272     245,   245,   247,   247,   248,   248,   249,   249,   249,   249,
     1273     250,   250,   250,   250,   251,   251,   252,   252,   252,   252,
     1274     252,   253,   253,   254,   255,   256,   256,   257,   256,   258,
     1275     258,   259,   259,   260,   260,   261,   261,   261,   261,   261,
     1276     262,   262,   262,   262,   263,   263,   264,   264,   265,   265,
     1277     266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
     1278     268,   268,   268,   268,   269,   269,   270,   270,   271,   271,
     1279     272,   272,   272,   273,   273,   273,   274,   274,   274,   275,
     1280     275,   275,   276,   276,   276,   276,   277,   277,   277,   278,
     1281     278,   279,   279,   279,   279,   279,   280,   280,   281,   281,
     1282     282,   282,   282,   282,   282,   282,   283,   283,   283,   283,
     1283     284,   284,   284,   285,   286,   286,   288,   287,   287,   289,
     1284     289,   289,   290,   290,   291,   291,   291,   292,   292,   292,
     1285     292,   293,   293,   293,   294,   294,   295,   295,   296,   297,
     1286     296,   298,   298,   299,   299,   300,   300,   300,   301,   301,
     1287     302,   302,   303,   303,   304,   304,   305,   305,   305,   306,
     1288     305,   305,   307,   307,   307,   308,   308,   308,   308,   308,
     1289     308,   308,   308,   308,   309,   309,   309,   310,   311,   311,
     1290     312,   312,   313,   313,   314,   315,   315,   316,   316,   316,
     1291     317,   317,   317,   317,   318,   318,   318,   318,   319,   319,
     1292     320,   320,   320,   321,   321,   321,   321,   322,   322,   323,
     1293     323,   323,   324,   324,   324,   325,   325,   325,   326,   326,
     1294     326,   327,   327,   327,   328,   328,   328,   329,   329,   329,
     1295     330,   330,   330,   331,   331,   331,   331,   332,   332,   333,
     1296     333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
     1297     336,   336,   336,   337,   337,   337,   338,   338,   338,   338,
     1298     339,   339,   339,   340,   340,   340,   340,   341,   341,   342,
     1299     342,   342,   343,   343,   344,   344,   345,   345,   345,   346,
     1300     346,   346,   346,   346,   347,   347,   347,   347,   348,   348,
     1301     348,   349,   349,   349,   350,   350,   350,   350,   351,   351,
     1302     351,   352,   352,   352,   352,   352,   353,   353,   353,   353,
     1303     354,   354,   354,   355,   355,   355,   356,   356,   356,   356,
     1304     356,   356,   357,   357,   357,   358,   358,   358,   358,   358,
     1305     359,   359,   359,   359,   360,   360,   361,   361,   361,   362,
     1306     362,   363,   363,   363,   363,   363,   363,   364,   364,   364,
     1307     364,   364,   364,   364,   364,   364,   364,   365,   365,   365,
     1308     365,   366,   366,   366,   367,   367,   368,   368,   368,   368,
     1309     368,   368,   369,   369,   369,   369,   369,   369,   370,   371,
     1310     371,   371,   372,   372,   373,   373
    13131311};
    13141312
     
    13261324       1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
    13271325       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1328        3,     1,     5,     4,     5,     1,     1,     3,     3,     3,
    1329        2,     0,     1,     2,     5,     6,     7,     1,     3,     1,
     1326       3,     1,     5,     4,     5,     1,     1,     3,     3,     2,
     1327       0,     1,     2,     5,     6,     7,     1,     3,     1,     1,
     1328       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
     1329       0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1330       6,     4,     2,     7,     1,     3,     1,     2,     1,     2,
     1331       1,     2,     2,     5,     7,     5,     9,     5,     9,     1,
     1332       3,     1,     1,     3,     3,     2,     1,     2,     2,     0,
     1333       1,     2,     3,     0,     1,     2,     3,     3,     4,     0,
     1334       1,     1,     2,     5,     7,     6,     6,     4,     3,     4,
     1335       2,     3,     2,     3,     3,     3,     3,     5,     3,     3,
     1336       4,     1,     5,     6,     5,     6,     9,    10,     9,    10,
     1337       2,     1,     2,     2,     2,     1,     6,     8,    10,    12,
     1338      14,     0,     1,     0,     1,     1,     3,     4,     7,     0,
     1339       1,     3,     1,     3,     1,     1,     1,     3,     1,     1,
     1340       1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
     1341       3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
     1342       4,     1,     2,     2,     3,     5,     8,     7,     7,     5,
     1343       9,     2,     2,     5,     3,     5,     4,     3,     4,     4,
     1344       7,     3,     3,     3,     3,     4,     6,     1,     1,     1,
     1345       1,     1,     1,     1,     1,     0,     1,     1,     2,     1,
     1346       1,     1,     1,     1,     1,     1,     0,     5,     1,     2,
     1347       3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
    13301348       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1331        3,     0,     1,     1,     1,     1,     1,     1,     1,     1,
    1332        1,     6,     4,     2,     7,     1,     3,     1,     2,     1,
    1333        2,     1,     2,     2,     5,     7,     5,     9,     5,     9,
    1334        1,     3,     1,     1,     3,     3,     2,     1,     2,     2,
    1335        0,     1,     2,     3,     0,     1,     2,     3,     3,     4,
    1336        0,     1,     1,     2,     5,     7,     6,     6,     4,     3,
    1337        4,     2,     3,     2,     3,     3,     3,     3,     5,     3,
    1338        3,     4,     1,     5,     6,     5,     6,     9,    10,     9,
    1339       10,     2,     1,     2,     2,     2,     1,     6,     8,    10,
    1340       12,    14,     0,     1,     0,     1,     1,     3,     4,     7,
    1341        0,     1,     3,     1,     3,     1,     1,     1,     3,     1,
    1342        1,     1,     3,     0,     1,     3,     4,     1,     3,     1,
    1343        1,     3,     3,     3,     3,     3,     2,     3,     6,     3,
    1344        3,     4,     1,     2,     2,     3,     5,     8,     7,     7,
    1345        5,     9,     2,     2,     5,     3,     5,     4,     3,     4,
    1346        4,     7,     3,     3,     3,     3,     4,     6,     1,     1,
    1347        1,     1,     1,     1,     1,     1,     0,     1,     1,     2,
    1348        1,     1,     1,     1,     1,     1,     1,     0,     5,     1,
    1349        2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
     1349       1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
     1350       1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
     1351       1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
     1352       3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
     1353       7,     2,     2,     2,     1,     2,     2,     3,     2,     3,
     1354       1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
     1355       1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
     1356       4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
     1357       1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
     1358       1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
     1359       1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
    13501360       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1351        1,     1,     1,     1,     1,     1,     1,     2,     2,     3,
    1352        3,     1,     3,     1,     2,     2,     2,     4,     4,     4,
    1353        4,     1,     2,     2,     3,     1,     2,     2,     1,     2,
    1354        2,     3,     1,     2,     2,     1,     1,     4,     2,     0,
    1355        6,     7,     2,     2,     2,     1,     2,     2,     3,     2,
    1356        3,     1,     2,     3,     2,     2,     4,     0,     1,     2,
    1357        2,     1,     0,     1,     2,     2,     5,     2,     0,     7,
    1358        2,     4,     0,     2,     0,     1,     1,     1,     5,     5,
    1359        5,     1,     5,     5,     9,     1,     5,     0,     1,     1,
    1360        5,     1,     1,     5,     5,     1,     3,     3,     4,     1,
    1361        1,     1,     1,     2,     1,     3,     3,     1,     2,     1,
    1362        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1363        1,     1,     2,     1,     1,     1,     2,     0,     2,     2,
    1364        1,     4,     0,     1,     2,     3,     4,     2,     2,     1,
    1365        2,     1,     2,     5,     5,     7,     6,     1,     2,     2,
    1366        3,     1,     2,     2,     4,     2,     4,     0,     4,     2,
    1367        1,     1,     1,     0,     2,     5,     5,    13,     1,     1,
    1368        3,     3,     2,     3,     3,     2,     4,     1,     6,     9,
    1369        0,    11,     1,     3,     3,     3,     1,     1,     5,     2,
    1370        5,     0,     1,     1,     3,     0,     1,     1,     1,     1,
    1371        0,     6,     2,     1,     2,     4,     2,     3,     3,     3,
    1372        4,     5,     5,     5,     6,     1,     1,     1,     3,     0,
    1373        5,     0,     1,     1,     2,     6,     1,     3,     0,     1,
    1374        4,     1,     1,     1,     1,     2,     1,     2,     2,     1,
    1375        3,     2,     3,     3,     2,     4,     4,     3,     8,     3,
    1376        2,     1,     2,     6,     8,     3,     2,     3,     3,     4,
    1377        4,     3,     1,     1,     1,     4,     6,     3,     2,     3,
    1378        3,     4,     4,     3,     2,     1,     2,     2,     1,     3,
    1379        2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1380        2,     1,     2,     2,     2,     3,     3,     2,     4,     4,
    1381        3,     6,     8,     3,     2,     1,     2,     2,     1,     1,
    1382        2,     3,     3,     2,     4,     6,     8,     1,     2,     2,
    1383        1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
    1384        8,     3,     2,     3,     1,     5,     5,     6,     6,     1,
    1385        2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
    1386        3,     5,     8,     3,     1,     2,     1,     2,     6,     5,
    1387        6,     7,     7,     1,     2,     2,     1,     2,     2,     3,
    1388        3,     1,     4,     4,     3,     8,     3,     1,     1,     2,
    1389        1,     1,     2,     3,     2,     3,     2,     3,     3,     2,
    1390        4,     3,     2,     3,     2,     4,     3,     2,     6,     6,
    1391        6,     7,     1,     2,     1,     1,     1,     2,     3,     2,
    1392        3,     2,     3,     3,     4,     2,     3,     4,     2,     5,
    1393        5,     6,     6,     0,     1,     0,     2
     1361       1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
     1362       4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
     1363       1,     2,     5,     5,     7,     6,     1,     2,     2,     3,
     1364       1,     2,     2,     4,     2,     4,     0,     4,     2,     1,
     1365       1,     1,     0,     2,     5,     5,    13,     1,     1,     3,
     1366       3,     2,     3,     3,     2,     4,     1,     6,     9,     0,
     1367      11,     1,     3,     3,     3,     1,     1,     5,     2,     5,
     1368       0,     1,     1,     3,     0,     1,     1,     1,     1,     0,
     1369       6,     2,     1,     2,     4,     2,     3,     3,     3,     4,
     1370       5,     5,     5,     6,     1,     1,     1,     3,     0,     5,
     1371       0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
     1372       1,     1,     1,     1,     2,     1,     2,     2,     1,     3,
     1373       2,     3,     3,     2,     4,     4,     3,     8,     3,     2,
     1374       1,     2,     6,     8,     3,     2,     3,     3,     4,     4,
     1375       3,     1,     1,     1,     4,     6,     3,     2,     3,     3,
     1376       4,     4,     3,     2,     1,     2,     2,     1,     3,     2,
     1377       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1378       1,     2,     2,     2,     3,     3,     2,     4,     4,     3,
     1379       6,     8,     3,     2,     1,     2,     2,     1,     1,     2,
     1380       3,     3,     2,     4,     6,     8,     1,     2,     2,     1,
     1381       2,     2,     3,     3,     1,     4,     4,     3,     5,     8,
     1382       3,     2,     3,     1,     5,     5,     6,     6,     1,     2,
     1383       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1384       5,     8,     3,     1,     2,     1,     2,     6,     5,     6,
     1385       7,     7,     1,     2,     2,     1,     2,     2,     3,     3,
     1386       1,     4,     4,     3,     8,     3,     1,     1,     2,     1,
     1387       1,     2,     3,     2,     3,     2,     3,     3,     2,     4,
     1388       3,     2,     3,     2,     4,     3,     2,     6,     6,     6,
     1389       7,     1,     2,     1,     1,     1,     2,     3,     2,     3,
     1390       2,     3,     3,     4,     2,     3,     4,     2,     5,     5,
     1391       6,     6,     0,     1,     0,     2
    13941392};
    13951393
     
    13991397static const yytype_uint16 yydefact[] =
    14001398{
    1401      296,   296,   317,   315,   318,   316,   319,   320,   302,   304,
    1402      303,     0,   305,   331,   323,   328,   326,   327,   325,   324,
    1403      329,   330,   335,   332,   333,   334,   551,   551,   551,     0,
    1404        0,     0,   296,   222,   306,   321,   322,     7,   362,     0,
    1405        8,    14,    15,     0,     2,    64,    65,   569,     9,   296,
    1406      529,   527,   249,     3,   457,     3,   262,     0,     3,     3,
    1407        3,   250,     3,     0,     0,     0,   297,   298,   300,   296,
    1408      309,   312,   314,   343,   288,   336,   341,   289,   351,   290,
    1409      358,   355,   365,     0,     0,   366,   291,   477,   481,     3,
    1410        3,     0,     2,   523,   528,   533,   301,     0,     0,   551,
    1411      581,   551,     2,   592,   593,   594,   296,     0,   735,   736,
    1412        0,    12,     0,    13,   296,   272,   273,     0,   297,   292,
    1413      293,   294,   295,   530,   307,   395,   552,   553,   373,   374,
    1414       12,   448,   449,    11,   444,   447,     0,   507,   502,   493,
    1415      448,   449,     0,     0,   532,   223,     0,   296,     0,     0,
    1416        0,     0,     0,     0,     0,     0,   296,   296,     2,     0,
    1417      737,   297,   586,   598,   741,   734,   732,   739,     0,     0,
    1418        0,   256,     2,     0,   536,   442,   443,   441,     0,     0,
    1419        0,     0,   551,     0,   638,   639,     0,     0,   549,   545,
    1420      551,   566,   551,   551,   546,     2,   547,   551,   605,   551,
    1421      551,   608,     0,     0,     0,   296,   296,   315,   363,     2,
    1422      296,   263,   299,   310,   344,   356,   482,     0,     2,     0,
    1423      457,   264,   297,   337,   352,   359,   478,     0,     2,     0,
    1424      313,   338,   345,   346,     0,   353,   357,   360,   364,   449,
    1425      296,   296,   368,   372,     0,   397,   479,   483,     0,     0,
    1426        0,     1,   296,     2,   534,   580,   582,   296,     2,   745,
    1427      297,   748,   549,   549,     0,   297,     0,     0,   275,   551,
    1428      546,     2,   296,     0,     0,   296,   554,     2,   505,     2,
    1429      558,     0,     0,     0,     0,     0,     0,    18,    58,     4,
    1430        5,     6,    16,     0,     0,     0,   296,     2,    66,    67,
    1431       68,    69,    48,    19,    49,    22,    47,    70,   296,     0,
     1399     295,   295,   316,   314,   317,   315,   318,   319,   301,   303,
     1400     302,     0,   304,   330,   322,   327,   325,   326,   324,   323,
     1401     328,   329,   334,   331,   332,   333,   550,   550,   550,     0,
     1402       0,     0,   295,   221,   305,   320,   321,     7,   361,     0,
     1403       8,    14,    15,     0,     2,    64,    65,   568,     9,   295,
     1404     528,   526,   248,     3,   456,     3,   261,     0,     3,     3,
     1405       3,   249,     3,     0,     0,     0,   296,   297,   299,   295,
     1406     308,   311,   313,   342,   287,   335,   340,   288,   350,   289,
     1407     357,   354,   364,     0,     0,   365,   290,   476,   480,     3,
     1408       3,     0,     2,   522,   527,   532,   300,     0,     0,   550,
     1409     580,   550,     2,   591,   592,   593,   295,     0,   734,   735,
     1410       0,    12,     0,    13,   295,   271,   272,     0,   296,   291,
     1411     292,   293,   294,   529,   306,   394,   551,   552,   372,   373,
     1412      12,   447,   448,    11,   443,   446,     0,   506,   501,   492,
     1413     447,   448,     0,     0,   531,   222,     0,   295,     0,     0,
     1414       0,     0,     0,     0,     0,     0,   295,   295,     2,     0,
     1415     736,   296,   585,   597,   740,   733,   731,   738,     0,     0,
     1416       0,   255,     2,     0,   535,   441,   442,   440,     0,     0,
     1417       0,     0,   550,     0,   637,   638,     0,     0,   548,   544,
     1418     550,   565,   550,   550,   545,     2,   546,   550,   604,   550,
     1419     550,   607,     0,     0,     0,   295,   295,   314,   362,     2,
     1420     295,   262,   298,   309,   343,   355,   481,     0,     2,     0,
     1421     456,   263,   296,   336,   351,   358,   477,     0,     2,     0,
     1422     312,   337,   344,   345,     0,   352,   356,   359,   363,   448,
     1423     295,   295,   367,   371,     0,   396,   478,   482,     0,     0,
     1424       0,     1,   295,     2,   533,   579,   581,   295,     2,   744,
     1425     296,   747,   548,   548,     0,   296,     0,     0,   274,   550,
     1426     545,     2,   295,     0,     0,   295,   553,     2,   504,     2,
     1427     557,     0,     0,     0,     0,     0,     0,    18,    58,     4,
     1428       5,     6,    16,     0,     0,     0,   295,     2,    66,    67,
     1429      68,    69,    48,    19,    49,    22,    47,    70,   295,     0,
    14321430      73,    77,    80,    83,    88,    91,    93,    95,    97,    99,
    1433      101,   106,   499,   755,   455,   498,     0,   453,   454,     0,
    1434      570,   585,   588,   591,   597,   600,   603,   362,     0,     2,
    1435      743,     0,   296,   746,     2,    64,   296,     3,   429,     0,
    1436      437,   297,   296,   309,   336,   289,   351,   358,     3,     3,
    1437      411,   415,   425,   430,   477,   296,   431,   710,   711,   296,
    1438      432,   434,   296,     2,   587,   599,   733,     2,     2,   251,
    1439        2,   462,     0,   460,   459,   458,   143,     2,     2,   253,
    1440        2,     2,   252,     2,   283,     2,   284,     0,   282,     0,
    1441        0,     0,     0,     0,     0,     0,     0,     0,   571,   610,
    1442        0,   457,     2,   565,   574,   664,   567,   568,   537,   296,
    1443        2,   604,   613,   606,   607,     0,   278,   296,   296,   342,
    1444      297,     0,   297,     0,   296,   738,   742,   740,   538,   296,
    1445      549,   257,   265,   311,     0,     2,   539,   296,   503,   339,
    1446      340,   285,   354,   361,     0,   296,     2,   387,   296,   375,
    1447        0,     0,   381,   732,     0,   753,   402,     0,   480,   504,
    1448      254,   255,   524,   296,   439,     0,   296,   239,     0,     2,
    1449      241,     0,   297,     0,   259,     2,   260,   280,     0,     0,
    1450        2,   296,   549,   296,   490,   492,   491,     0,     0,   755,
    1451        0,   296,     0,   296,   494,   296,   564,   562,   563,   561,
    1452        0,   556,   559,     0,     0,   296,    55,   296,    70,    50,
    1453      296,    61,   296,   296,    53,    54,    63,     2,   129,     0,
    1454        0,   451,     0,   450,   113,   296,    17,     0,    29,    30,
    1455       35,     2,     0,    35,   119,   120,   121,   122,   123,   124,
    1456      125,   126,   127,   128,     0,     0,     0,    51,    52,     0,
     1431     101,   106,   498,   754,   454,   497,     0,   452,   453,     0,
     1432     569,   584,   587,   590,   596,   599,   602,   361,     0,     2,
     1433     742,     0,   295,   745,     2,    64,   295,     3,   428,     0,
     1434     436,   296,   295,   308,   335,   288,   350,   357,     3,     3,
     1435     410,   414,   424,   429,   476,   295,   430,   709,   710,   295,
     1436     431,   433,   295,     2,   586,   598,   732,     2,     2,   250,
     1437       2,   461,     0,   459,   458,   457,   142,     2,     2,   252,
     1438       2,     2,   251,     2,   282,     2,   283,     0,   281,     0,
     1439       0,     0,     0,     0,     0,     0,     0,     0,   570,   609,
     1440       0,   456,     2,   564,   573,   663,   566,   567,   536,   295,
     1441       2,   603,   612,   605,   606,     0,   277,   295,   295,   341,
     1442     296,     0,   296,     0,   295,   737,   741,   739,   537,   295,
     1443     548,   256,   264,   310,     0,     2,   538,   295,   502,   338,
     1444     339,   284,   353,   360,     0,   295,     2,   386,   295,   374,
     1445       0,     0,   380,   731,     0,   752,   401,     0,   479,   503,
     1446     253,   254,   523,   295,   438,     0,   295,   238,     0,     2,
     1447     240,     0,   296,     0,   258,     2,   259,   279,     0,     0,
     1448       2,   295,   548,   295,   489,   491,   490,     0,     0,   754,
     1449       0,   295,     0,   295,   493,   295,   563,   561,   562,   560,
     1450       0,   555,   558,     0,     0,   295,    55,   295,    70,    50,
     1451     295,    61,   295,   295,    53,    54,    63,     2,   128,     0,
     1452       0,   450,     0,   449,   112,   295,    17,     0,    29,    30,
     1453      35,     2,     0,    35,   118,   119,   120,   121,   122,   123,
     1454     124,   125,   126,   127,     0,     0,    51,    52,     0,     0,
    14571455       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1458        0,     0,     0,     0,     0,     0,     0,     0,     0,   110,
    1459        2,   650,   456,   647,   551,   551,   655,   484,   296,     2,
    1460      589,   590,     0,   601,   602,     0,     2,   744,   747,   113,
    1461      296,     0,     2,   712,   297,   716,   707,   708,   714,     0,
    1462        2,     2,   672,   551,   755,   621,   551,   551,   755,   551,
    1463      635,   551,   551,   686,   438,   669,   551,   551,   677,   684,
    1464      296,   433,   297,     0,     0,   296,   722,   297,   727,   755,
    1465      719,   296,   724,   755,   296,   296,   296,     0,   113,     0,
    1466       18,     5,     2,     0,    19,     0,   463,   753,     0,     0,
    1467      469,   243,     0,   296,     0,     0,     0,   549,   573,   577,
    1468      579,   609,   612,   616,   619,   572,   611,     0,   286,   662,
    1469        0,   296,   279,     0,     0,     0,     0,   277,     2,     0,
    1470      261,   540,   296,     0,     0,     0,     0,   296,   296,     0,
    1471        0,   696,   385,   388,   392,   551,   392,   701,   391,   693,
    1472      551,   551,   367,   376,   384,   377,   551,   379,   382,   296,
    1473      754,     0,     0,   400,     0,   297,     3,   418,     3,   422,
    1474      421,   595,     0,   535,   296,    64,     3,   296,   437,   297,
    1475        3,   431,   432,     2,     0,     0,     0,   489,   308,   296,
    1476      485,   487,     3,     2,     2,     0,   506,     3,     0,   558,
    1477      131,     0,     0,   224,     0,     0,     0,     2,     0,     0,
    1478       36,     0,     0,   113,   296,    20,     0,    21,     0,   696,
    1479      452,     0,   111,     3,     2,    27,     2,     0,    33,     0,
    1480        2,    25,     0,   108,   107,   109,    74,    75,    76,    78,
    1481       79,    81,    82,    86,    87,    84,    85,    89,    90,    92,
    1482       94,    96,    98,   100,     0,     0,   756,   296,     0,     0,
    1483        0,   651,   652,   648,   649,   501,   500,   296,     0,   296,
    1484      718,   296,   723,   297,   296,   666,   296,   296,   709,   665,
    1485        2,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    1486      687,     0,   673,   624,   640,   674,     2,   620,   627,   435,
    1487      622,   623,   436,     2,   634,   643,   636,   637,   670,   671,
    1488      685,   713,   717,   715,   755,   270,     2,   749,     2,   426,
    1489      721,   726,   427,     0,   405,     3,     3,     3,     3,   457,
    1490        3,     0,     2,   472,   468,   754,     0,   464,   471,     2,
    1491      467,   470,     0,   296,   244,   266,     3,   274,   276,     0,
    1492      457,     2,   575,   576,     2,   614,   615,     0,   663,   541,
    1493        3,   348,   347,   350,   349,   296,   542,     0,   543,   296,
    1494      378,   380,     2,     0,     0,     0,     0,   105,   394,   697,
    1495      698,   389,   393,   390,   694,   695,   383,   387,   296,   402,
    1496      396,   403,   753,     0,     0,   440,   242,     0,     0,     3,
    1497        2,   672,   433,     0,   531,     0,   755,   493,     0,   296,
    1498      296,   296,     0,   555,   557,   132,     0,     0,   217,     0,
    1499        0,     0,   225,   226,    56,     0,    62,   296,     0,    60,
    1500       59,     0,   130,   697,   462,    71,    72,   112,   117,     3,
    1501      111,     0,     0,     0,    24,    35,     3,     0,    32,   103,
    1502        0,     3,   654,   658,   661,   653,     3,   596,     3,   720,
    1503      725,     2,    64,   296,     3,     3,   297,     0,     3,   626,
    1504      630,   633,   642,   676,   680,   683,   296,     3,   625,   641,
    1505      675,   296,   296,   428,   296,   296,   750,     0,     0,     0,
    1506        0,   258,     0,   105,     0,     3,     3,     0,   465,     0,
    1507      461,     0,     0,   247,   296,     0,     0,   131,     0,     0,
    1508        0,     0,     0,   131,     0,     0,   111,   111,     2,     0,
    1509        0,     0,     3,   133,   134,     2,   145,   135,   136,   137,
    1510      138,   139,   140,   147,   149,     0,     0,     0,   287,   296,
    1511      296,   551,     0,   544,   296,   113,   700,   704,   706,   699,
    1512      386,   370,   401,     0,   583,     2,   668,   667,     0,   673,
    1513        2,   486,   488,   508,     3,   516,   517,     0,     2,   512,
    1514        3,     3,     0,     0,   560,   224,     0,     0,     0,   224,
    1515        0,     0,     3,    37,   753,   111,     0,     3,   665,    42,
    1516        3,    40,     3,    34,     0,     3,   102,   104,     0,     2,
    1517      656,   657,     0,     0,   296,     0,     0,     0,     3,   642,
    1518        0,     2,   628,   629,     2,   644,     2,   678,   679,     0,
    1519        0,    64,     0,     3,     3,     3,     3,   413,   412,   416,
    1520        2,     2,   752,   751,   114,     0,     0,     0,     0,     3,
    1521      466,     3,     0,   245,   148,     3,   297,   296,     0,     0,
    1522        0,     0,     2,   193,     0,   191,     0,     0,     0,     0,
    1523        0,     0,     0,     0,   113,     0,   551,   153,   150,   296,
    1524        0,     0,   269,   281,     3,     3,   550,   617,   371,     2,
    1525      702,   703,   399,   296,   268,   296,     0,   519,   496,   296,
    1526        0,     0,   495,   510,     0,     0,     0,   218,     0,   227,
    1527       57,   111,     0,     0,   118,   115,     0,     0,     0,     0,
    1528        0,     0,    23,     0,   659,   296,   584,   267,   728,   729,
    1529      730,     0,   681,   296,   296,   296,     3,     3,     0,   689,
    1530        0,     0,     0,     0,   296,   296,     3,   548,   473,   474,
    1531        0,     0,   248,   297,     0,     0,     0,     0,   296,   194,
    1532      192,     0,   189,   195,     0,     0,     0,     0,   199,   202,
    1533      200,   196,     0,   197,    35,   131,   146,   144,   246,     0,
    1534        0,   296,   420,   424,   423,     0,   513,     2,   514,     2,
    1535      515,   509,   296,   230,     0,   228,     0,   230,     3,   665,
    1536       31,   116,     2,    45,     2,    43,    41,    28,   114,    26,
    1537        3,   731,     3,     3,     3,     0,     0,   688,   690,   631,
    1538      645,   271,     2,   410,     3,   409,     0,   476,   473,   131,
    1539        0,     0,   131,     3,     0,   131,   190,     0,     2,     2,
    1540      211,   201,     0,     0,     0,     0,   142,   578,   618,     3,
    1541        2,     0,     0,     2,   231,     0,     0,   219,     0,     0,
    1542        0,     0,     0,     0,     0,     0,     0,   691,   692,   296,
    1543        0,   475,   154,     0,     0,     2,   167,   131,   156,     0,
    1544      184,     0,   131,     0,     2,   158,     0,     2,     0,     2,
    1545        2,     2,   198,    32,     0,   296,   518,   520,   511,     0,
    1546        0,     0,     0,   116,    38,     3,     3,   660,   632,   646,
    1547      682,   414,   131,   160,   163,     0,   162,   166,     3,   169,
    1548      168,     0,   131,   186,   131,     3,     0,   296,     0,   296,
    1549        0,     2,     0,     2,   141,   705,     2,   232,   233,     0,
    1550      229,   220,     0,     0,     0,   155,     0,     0,   165,   235,
    1551      170,     2,   237,   185,     0,   188,   174,   203,     3,   212,
    1552      216,   205,     3,     0,   296,     0,   296,     0,     0,     0,
    1553       39,    46,    44,   161,   164,   131,     0,   171,   296,   131,
    1554      131,     0,   175,     0,     0,   696,   213,   214,   215,     0,
    1555      204,     3,   206,     3,   296,   221,   234,   151,   172,   157,
    1556      131,   238,   187,   182,   180,   176,   159,   131,     0,   697,
    1557        0,     0,     0,     0,   152,   173,   183,   177,   181,   180,
    1558      178,     3,     3,     0,     0,   497,   179,   207,   209,     3,
    1559        3,   208,   210
     1456       0,     0,     0,     0,     0,     0,     0,     0,   109,     2,
     1457     649,   455,   646,   550,   550,   654,   483,   295,     2,   588,
     1458     589,     0,   600,   601,     0,     2,   743,   746,   112,   295,
     1459       0,     2,   711,   296,   715,   706,   707,   713,     0,     2,
     1460       2,   671,   550,   754,   620,   550,   550,   754,   550,   634,
     1461     550,   550,   685,   437,   668,   550,   550,   676,   683,   295,
     1462     432,   296,     0,     0,   295,   721,   296,   726,   754,   718,
     1463     295,   723,   754,   295,   295,   295,     0,   112,     0,    18,
     1464       5,     2,     0,    19,     0,   462,   752,     0,     0,   468,
     1465     242,     0,   295,     0,     0,     0,   548,   572,   576,   578,
     1466     608,   611,   615,   618,   571,   610,     0,   285,   661,     0,
     1467     295,   278,     0,     0,     0,     0,   276,     2,     0,   260,
     1468     539,   295,     0,     0,     0,     0,   295,   295,     0,     0,
     1469     695,   384,   387,   391,   550,   391,   700,   390,   692,   550,
     1470     550,   366,   375,   383,   376,   550,   378,   381,   295,   753,
     1471       0,     0,   399,     0,   296,     3,   417,     3,   421,   420,
     1472     594,     0,   534,   295,    64,     3,   295,   436,   296,     3,
     1473     430,   431,     2,     0,     0,     0,   488,   307,   295,   484,
     1474     486,     3,     2,     2,     0,   505,     3,     0,   557,   130,
     1475       0,     0,   223,     0,     0,     0,     2,     0,     0,    36,
     1476       0,     0,   112,   295,    20,     0,    21,     0,   695,   451,
     1477       0,   110,     3,     2,    27,     2,     0,    33,     0,     2,
     1478      25,     0,   107,   108,    74,    75,    76,    78,    79,    81,
     1479      82,    86,    87,    84,    85,    89,    90,    92,    94,    96,
     1480      98,   100,     0,     0,   755,   295,     0,     0,     0,   650,
     1481     651,   647,   648,   500,   499,   295,     0,   295,   717,   295,
     1482     722,   296,   295,   665,   295,   295,   708,   664,     2,   295,
     1483       0,     0,     0,     0,     0,     0,     0,     0,   686,     0,
     1484     672,   623,   639,   673,     2,   619,   626,   434,   621,   622,
     1485     435,     2,   633,   642,   635,   636,   669,   670,   684,   712,
     1486     716,   714,   754,   269,     2,   748,     2,   425,   720,   725,
     1487     426,     0,   404,     3,     3,     3,     3,   456,     3,     0,
     1488       2,   471,   467,   753,     0,   463,   470,     2,   466,   469,
     1489       0,   295,   243,   265,     3,   273,   275,     0,   456,     2,
     1490     574,   575,     2,   613,   614,     0,   662,   540,     3,   347,
     1491     346,   349,   348,   295,   541,     0,   542,   295,   377,   379,
     1492       2,     0,     0,     0,     0,   105,   393,   696,   697,   388,
     1493     392,   389,   693,   694,   382,   386,   295,   401,   395,   402,
     1494     752,     0,     0,   439,   241,     0,     0,     3,     2,   671,
     1495     432,     0,   530,     0,   754,   492,     0,   295,   295,   295,
     1496       0,   554,   556,   131,     0,     0,   216,     0,     0,     0,
     1497     224,   225,    56,     0,    62,   295,     0,    60,    59,     0,
     1498     129,   696,   461,    71,    72,   111,   116,     3,   110,     0,
     1499       0,     0,    24,    35,     3,     0,    32,   103,     0,     3,
     1500     653,   657,   660,   652,     3,   595,     3,   719,   724,     2,
     1501      64,   295,     3,     3,   296,     0,     3,   625,   629,   632,
     1502     641,   675,   679,   682,   295,     3,   624,   640,   674,   295,
     1503     295,   427,   295,   295,   749,     0,     0,     0,     0,   257,
     1504       0,   105,     0,     3,     3,     0,   464,     0,   460,     0,
     1505       0,   246,   295,     0,     0,   130,     0,     0,     0,     0,
     1506       0,   130,     0,     0,   110,   110,     2,     0,     0,     0,
     1507       3,   132,   133,     2,   144,   134,   135,   136,   137,   138,
     1508     139,   146,   148,     0,     0,     0,   286,   295,   295,   550,
     1509       0,   543,   295,   112,   699,   703,   705,   698,   385,   369,
     1510     400,     0,   582,     2,   667,   666,     0,   672,     2,   485,
     1511     487,   507,     3,   515,   516,     0,     2,   511,     3,     3,
     1512       0,     0,   559,   223,     0,     0,     0,   223,     0,     0,
     1513       3,    37,   752,   110,     0,     3,   664,    42,     3,    40,
     1514       3,    34,     0,     3,   102,   104,     0,     2,   655,   656,
     1515       0,     0,   295,     0,     0,     0,     3,   641,     0,     2,
     1516     627,   628,     2,   643,     2,   677,   678,     0,     0,    64,
     1517       0,     3,     3,     3,     3,   412,   411,   415,     2,     2,
     1518     751,   750,   113,     0,     0,     0,     0,     3,   465,     3,
     1519       0,   244,   147,     3,   296,   295,     0,     0,     0,     0,
     1520       2,   192,     0,   190,     0,     0,     0,     0,     0,     0,
     1521       0,     0,   112,     0,   550,   152,   149,   295,     0,     0,
     1522     268,   280,     3,     3,   549,   616,   370,     2,   701,   702,
     1523     398,   295,   267,   295,     0,   518,   495,   295,     0,     0,
     1524     494,   509,     0,     0,     0,   217,     0,   226,    57,   110,
     1525       0,     0,   117,   114,     0,     0,     0,     0,     0,     0,
     1526      23,     0,   658,   295,   583,   266,   727,   728,   729,     0,
     1527     680,   295,   295,   295,     3,     3,     0,   688,     0,     0,
     1528       0,     0,   295,   295,     3,   547,   472,   473,     0,     0,
     1529     247,   296,     0,     0,     0,     0,   295,   193,   191,     0,
     1530     188,   194,     0,     0,     0,     0,   198,   201,   199,   195,
     1531       0,   196,    35,   130,   145,   143,   245,     0,     0,   295,
     1532     419,   423,   422,     0,   512,     2,   513,     2,   514,   508,
     1533     295,   229,     0,   227,     0,   229,     3,   664,    31,   115,
     1534       2,    45,     2,    43,    41,    28,   113,    26,     3,   730,
     1535       3,     3,     3,     0,     0,   687,   689,   630,   644,   270,
     1536       2,   409,     3,   408,     0,   475,   472,   130,     0,     0,
     1537     130,     3,     0,   130,   189,     0,     2,     2,   210,   200,
     1538       0,     0,     0,     0,   141,   577,   617,     3,     2,     0,
     1539       0,     2,   230,     0,     0,   218,     0,     0,     0,     0,
     1540       0,     0,     0,     0,     0,   690,   691,   295,     0,   474,
     1541     153,     0,     0,     2,   166,   130,   155,     0,   183,     0,
     1542     130,     0,     2,   157,     0,     2,     0,     2,     2,     2,
     1543     197,    32,     0,   295,   517,   519,   510,     0,     0,     0,
     1544       0,   115,    38,     3,     3,   659,   631,   645,   681,   413,
     1545     130,   159,   162,     0,   161,   165,     3,   168,   167,     0,
     1546     130,   185,   130,     3,     0,   295,     0,   295,     0,     2,
     1547       0,     2,   140,   704,     2,   231,   232,     0,   228,   219,
     1548       0,     0,     0,   154,     0,     0,   164,   234,   169,     2,
     1549     236,   184,     0,   187,   173,   202,     3,   211,   215,   204,
     1550       3,     0,   295,     0,   295,     0,     0,     0,    39,    46,
     1551      44,   160,   163,   130,     0,   170,   295,   130,   130,     0,
     1552     174,     0,     0,   695,   212,   213,   214,     0,   203,     3,
     1553     205,     3,   295,   220,   233,   150,   171,   156,   130,   237,
     1554     186,   181,   179,   175,   158,   130,     0,   696,     0,     0,
     1555       0,     0,   151,   172,   182,   176,   180,   179,   177,     3,
     1556       3,     0,     0,   496,   178,   206,   208,     3,     3,   207,
     1557     209
    15601558};
    15611559
     
    15631561static const yytype_int16 yydefgoto[] =
    15641562{
    1565       -1,   841,   477,   302,    47,   134,   135,   303,   304,   305,
    1566      306,   787,   788,  1150,  1151,   307,   382,   309,   310,   311,
     1563      -1,   839,   477,   302,    47,   134,   135,   303,   304,   305,
     1564     306,   786,   787,  1148,  1149,   307,   382,   309,   310,   311,
    15671565     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
    1568     1054,   528,   998,   323,   999,   556,   975,  1081,  1547,  1083,
    1569     1084,  1085,  1086,  1548,  1087,  1088,  1464,  1465,  1426,  1427,
    1570     1428,  1526,  1527,  1531,  1532,  1567,  1568,  1089,  1384,  1090,
    1571     1091,  1318,  1319,  1320,  1508,  1092,   146,   981,   982,   983,
    1572     1405,  1489,  1500,  1501,   478,   479,   903,   904,  1062,    51,
     1566    1052,   528,   996,   323,   997,   555,   973,  1079,  1545,  1081,
     1567    1082,  1083,  1084,  1546,  1085,  1086,  1462,  1463,  1424,  1425,
     1568    1426,  1524,  1525,  1529,  1530,  1565,  1566,  1087,  1382,  1088,
     1569    1089,  1316,  1317,  1318,  1506,  1090,   146,   979,   980,   981,
     1570    1403,  1487,  1498,  1499,   478,   479,   901,   902,  1060,    51,
    15731571      52,    53,    54,    55,   348,   159,    58,    59,    60,    61,
    15741572      62,   350,    64,    65,   265,    67,    68,   275,   352,   353,
    15751573      71,    72,    73,    74,   119,    76,   205,   355,   120,    79,
    1576      121,    81,    82,   464,    83,   458,   459,   460,   461,   702,
    1577      941,   703,    84,    85,   467,   465,   723,   883,   884,   358,
    1578      359,   726,   727,   728,   360,   361,   362,   363,   475,   341,
    1579      136,   137,   532,   325,   171,   656,   657,   658,   659,   660,
    1580       86,   122,    88,   498,   499,   967,   500,   278,   504,   326,
    1581       89,   138,   139,    90,  1342,  1128,  1129,  1130,  1131,    91,
    1582       92,   744,    93,   274,    94,    95,   188,  1056,   690,   413,
     1574     121,    81,    82,   464,    83,   458,   459,   460,   461,   701,
     1575     939,   702,    84,    85,   467,   465,   722,   881,   882,   358,
     1576     359,   725,   726,   727,   360,   361,   362,   363,   475,   341,
     1577     136,   137,   532,   325,   171,   655,   656,   657,   658,   659,
     1578      86,   122,    88,   498,   499,   965,   500,   278,   504,   326,
     1579      89,   138,   139,    90,  1340,  1126,  1127,  1128,  1129,    91,
     1580      92,   743,    93,   274,    94,    95,   188,  1054,   689,   413,
    15831581     126,    96,   510,   511,   512,   189,   269,   191,   192,   193,
    15841582     270,    99,   100,   101,   102,   103,   104,   105,   196,   197,
    1585      198,   199,   200,   853,   615,   616,   617,   618,   201,   620,
    1586      621,   622,   582,   583,   584,   585,   707,   106,   624,   625,
    1587      626,   627,   628,   629,   940,   709,   710,   711,   605,   366,
    1588      367,   368,   369,   327,   165,   108,   109,   110,   371,   721,
    1589      579
     1583     198,   199,   200,   851,   614,   615,   616,   617,   201,   619,
     1584     620,   621,   581,   582,   583,   584,   706,   106,   623,   624,
     1585     625,   626,   627,   628,   938,   708,   709,   710,   604,   366,
     1586     367,   368,   369,   327,   165,   108,   109,   110,   371,   720,
     1587     578
    15901588};
    15911589
    15921590/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15931591   STATE-NUM.  */
    1594 #define YYPACT_NINF -1415
     1592#define YYPACT_NINF -1328
    15951593static const yytype_int16 yypact[] =
    15961594{
    1597     5982,  2486, -1415,    39, -1415, -1415, -1415, -1415, -1415, -1415,
    1598    -1415,    37, -1415, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1599    -1415, -1415, -1415, -1415, -1415, -1415,   150,   150,   150,   883,
    1600     1004,    94,  7768,   226, -1415, -1415, -1415, -1415, -1415,   190,
    1601    -1415, -1415, -1415,   566,   197, -1415, -1415, -1415, -1415,  4778,
    1602    -1415, -1415, -1415, -1415,    71,   218, -1415,  1795, -1415, -1415,
    1603    -1415, -1415,   159,  1502,   356,    95,  7886, -1415, -1415,  9651,
    1604     1452, -1415, -1415, -1415,  1148,   382,  7314,   127,  1277,  1148,
    1605     1282, -1415, -1415,   835,   743, -1415,  1148,  1425, -1415,   224,
    1606    -1415,   372,   420, -1415, -1415, -1415, -1415,   355,   218,   150,
    1607    -1415,   150, -1415, -1415, -1415, -1415,  9310,  1795, -1415, -1415,
    1608     1795, -1415,   381, -1415,  9425, -1415, -1415,  1673,  9936, -1415,
    1609      857,   857,   857, -1415, -1415, -1415,   150, -1415, -1415, -1415,
    1610      415,   434,   442, -1415, -1415, -1415,   445, -1415, -1415, -1415,
    1611    -1415, -1415,   469,   472, -1415, -1415,    60,  9164,  1776,   548,
    1612      459,   483,   513,   516,   523,   558,  3516,  7283,   478,   562,
    1613    -1415,  9681, -1415, -1415, -1415, -1415,   571, -1415,   166,  5118,
    1614     5118, -1415,   568,   235, -1415, -1415, -1415, -1415,   582,   294,
    1615      296,   337,   150,   593, -1415, -1415,  1502,  3173,   651, -1415,
    1616       85, -1415,   150,   150,   218, -1415, -1415,   129, -1415,   150,
    1617      150, -1415,  3441,   621,   639,   857,  7072, -1415, -1415,   658,
    1618     4778, -1415, -1415,  1148, -1415, -1415, -1415,   218, -1415,  1795,
    1619       71, -1415,  8227, -1415,   857,   857,   857,   218, -1415,   883,
    1620    -1415,  6824, -1415, -1415,   643,   857, -1415,   857, -1415,   190,
    1621     9164,  9195,   664, -1415,  1004,   669,   857, -1415,   883,   656,
    1622      665, -1415,  7768,   626, -1415, -1415, -1415,  3929, -1415, -1415,
    1623     7677, -1415,   651,    75, 10735,  9936,  1673,  3441, -1415,   133,
    1624    -1415, -1415,  9425,  1795,   704,  7917, -1415, -1415,   104, -1415,
    1625     6175,   719,   768,  3584,   749, 10891, 10910, -1415,   754, -1415,
    1626    -1415, -1415, -1415, 10969, 10969,   626,  8934,   759, -1415, -1415,
    1627    -1415, -1415, -1415, -1415,   804, -1415,  1188,  2145,  9279, 10891,
    1628    -1415,   608,   362,   902,   264,   848,   769,   765,   771,   811,
    1629       86, -1415, -1415,   791,   655, -1415,   265, -1415, -1415,  1776,
    1630    -1415, -1415,   646,   816, -1415,   733,   816,   827,   190, -1415,
    1631    -1415,   843,  9310, -1415,   863,   867,  9394, -1415, -1415,  1543,
    1632     1631,  8652,  7072,  1148, -1415,  1148,   857,   857, -1415, -1415,
    1633    -1415, -1415, -1415, -1415,   857,  9310,  1795, -1415, -1415,  9975,
    1634     1690, -1415,  5551, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1635      871,  4213, 10891, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1636    -1415, -1415, -1415, -1415, -1415, -1415, -1415,  1673, -1415,   858,
    1637      876,   889,   910,   923,   913,   926,   930,  3173, -1415, -1415,
    1638      935,    71,   934, -1415, -1415,   943, -1415, -1415, -1415,  3929,
    1639    -1415, -1415, -1415, -1415, -1415,  3441, -1415,  9164,  9164, -1415,
    1640      857,  1673,  7193,  1795,  8724, -1415, -1415, -1415, -1415,  3929,
    1641       75, -1415, -1415,  1148,   218, -1415, -1415,  3929, -1415,  6951,
    1642    -1415, -1415,   857,   857,   307, 10047,   953,  1611,  5340, -1415,
    1643      373,   433,  1004, -1415,   969,   990,   978,   999,   857, -1415,
    1644    -1415, -1415, -1415, 10233, -1415,   344,  3302, -1415,   218,  1003,
    1645    -1415,  1673, 11091, 10754, -1415, -1415, -1415, -1415,   940,  3441,
    1646    -1415,  8796,   651,  6477, -1415, -1415, -1415,   671,   369,   791,
    1647     1004,  7917,  1090,  9425, -1415,  7917, -1415, -1415, -1415, -1415,
    1648      371, -1415,  1010,   768,   164,  8934, -1415, 10047, -1415, -1415,
    1649     8934, -1415,  9049,  8934, -1415, -1415, -1415,  1015, -1415,   578,
    1650     1019,   823,  1029, -1415,  4588,  6920, -1415,   492, -1415, -1415,
    1651    10813, -1415,   517, 10813, -1415, -1415, -1415, -1415, -1415, -1415,
    1652    -1415, -1415, -1415, -1415, 10735, 10735, 10735, -1415, -1415, 10891,
    1653    10891, 10891, 10891, 10891, 10891, 10891, 10891, 10891, 10891, 10891,
    1654    10891, 10891, 10891, 10891, 10891, 10891, 10891,  5748, 10735, -1415,
    1655      655,  1111, -1415, -1415,   150,   150, -1415, -1415,  9164, -1415,
    1656    -1415,   943,   626, -1415,   943, 10832, -1415, -1415, -1415,  9540,
    1657     6920,  1035,  1047, -1415,  9936, -1415, -1415,   571, -1415,  1050,
    1658     1305,  1059,  1931,   251,   791, -1415,   150,   150,   791,   292,
    1659    -1415,   150,   150,   943, -1415, -1415,   150,   150, -1415,   816,
    1660    10086,  1795, 11236,   599,   625, 10086, -1415,  7677, -1415,   791,
    1661    -1415,  9310, -1415,   313,  8344,  8344,  8344,  1795, -1415,  6348,
    1662     1064,   505,   871,   956,  1071,  1072, -1415,  1076,  5118,   527,
    1663    -1415,  1165,  1795,  8344,   626,  1673,   626,   651,   796,   816,
    1664    -1415, -1415,   839,   816, -1415, -1415, -1415,   768, -1415,   816,
    1665      218, 10233, -1415,   600,  1092,   612,  1093, -1415,  1088,   218,
    1666    -1415, -1415,  3929,   218,  1091,   460,   480,  9975,  7404,  1925,
    1667    10891,  2323, -1415, -1415,  1089,    48,  1089, -1415, -1415, -1415,
    1668      150,   150, -1415, -1415,  1004, -1415,   150, -1415, -1415,  9195,
    1669     1004,  1094, 10891, -1415,  1004, 11236, -1415, -1415,  1098, -1415,
    1670    -1415, -1415,   626, -1415, 11164,   867, -1415,  8344,   869,  8652,
    1671    -1415, -1415,   571,  1096,  1097,   671,  1911, -1415, -1415,  7917,
    1672    -1415, -1415,  1099, -1415, -1415,  1105, -1415,  1099,  1107,  6175,
    1673    10735,   180,  1106,    43,  1115,  1110,  1127,   759,  1104,  1130,
    1674    -1415,  1134,  1135,  9080,  7041, -1415, 10735, -1415,   823,  1132,
    1675    -1415,  6491, 10735,  1131, -1415, -1415,   871,   652, -1415, 10735,
    1676    -1415, -1415,   893, -1415, -1415, -1415, -1415, -1415, -1415,   608,
    1677      608,   362,   362,   902,   902,   902,   902,   264,   264,   848,
    1678      769,   765,   771,   811, 10891,   942, -1415, 10233,  1142,  1143,
    1679     1144,  1111, -1415, -1415, -1415, -1415, -1415, 10233,   677,  8344,
    1680    -1415,  9310, -1415,  7525,  9509, -1415,  5551,  7283, -1415, -1415,
    1681     1305, 10233,   963,  1150,  1152,  1153,  1155,  1160,  1167,  1170,
    1682    -1415,  2993,  1931, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1683    -1415, -1415, -1415, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1684      943, -1415, -1415, -1415,   791, -1415, -1415, -1415, -1415, -1415,
    1685    -1415, -1415, -1415,  1172, -1415,  1173,  1190, -1415, -1415,    71,
    1686     1131,  6348, -1415, -1415, -1415,  4213,  1183, -1415, -1415, -1415,
    1687    -1415, -1415,  1004,  6659,  1230, -1415, -1415, -1415, -1415,  1174,
    1688       71, -1415, -1415,   943, -1415, -1415,   943,    58,   943, -1415,
    1689    -1415, -1415, -1415, -1415, -1415,  9792, -1415,   218, -1415,  9195,
    1690    -1415, -1415,  1163,   951,  1193,  1194,  1201, -1415, -1415,  2323,
    1691    -1415, -1415, -1415, -1415, -1415, -1415, -1415,  1611,  9822,   978,
    1692    -1415, -1415,   990,  1204,  1200, -1415, -1415,  1205,  1209, -1415,
    1693      869,  2648, -1415,   707, -1415,  1911,   791, -1415,  1212,  7917,
    1694    10116,  9164,  1218, -1415, -1415,  1213,  1220,  1214, -1415, 10891,
    1695      237,   326,  1216, -1415,  1222,   626,  1222,  6920, 10735, -1415,
    1696    -1415,  1222, -1415,  1132,  4213, -1415, -1415, -1415, -1415,  1221,
    1697    10735,  1226,   626,  6348, -1415, 10813, -1415,   626, -1415, -1415,
    1698    10735, -1415,   852,   816, -1415, -1415, -1415, -1415, -1415, -1415,
    1699    -1415,   871,   867,  9394, -1415, -1415,  7646,  1229, -1415,   894,
    1700      816, -1415,   903,   908,   816, -1415,   857,  5019, -1415, -1415,
    1701    -1415, 10233, 10233, -1415,  8724,  8724, -1415,  1228,  1231,  1236,
    1702     1239, -1415,  1240,   725,   279,  1131, -1415,   626, -1415,  5118,
    1703    -1415, 10735,   497, -1415,  6793,  1242,  1246, 10605,  1250,  1251,
    1704      375,   388,   366, 10735,  1262,   218, 10735, 10735,  1260,   395,
    1705     1266,  1245, -1415, -1415, -1415,  1271, -1415, -1415, -1415, -1415,
    1706    -1415, -1415, -1415, -1415, -1415,  1004,  1280, 10735, -1415, 10233,
    1707    10233,   150,  1281, -1415,  9905,  4588,   917,   816, -1415, -1415,
    1708    -1415, -1415, -1415,  1279, -1415, -1415, -1415, -1415,  1286,  2648,
    1709    -1415, -1415,  1269, -1415,  1099, -1415, -1415,  1673,  1284, -1415,
    1710    -1415, -1415,   685,  1288, -1415,    43,  1292, 10891,  1276,    43,
    1711       43,  1299,  1297, -1415,  1076, 10735,  1306,  1221,   699,   135,
    1712     1301, -1415,  1297, -1415,  1316,  1301, -1415, -1415,  1320, -1415,
    1713    -1415,   943,  1329,  1336,  7162,  1335,  1338,  1341, -1415, -1415,
    1714     1352, -1415, -1415,   943, -1415, -1415, -1415, -1415,   943, 10735,
    1715    10735,   867,  1354, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1716    -1415, -1415, -1415, -1415, -1415, 10891, 10891,  1356,  1358,  1301,
    1717    -1415, -1415,  1004, -1415, -1415, -1415,  8155, 10116, 10735, 10735,
    1718     1402, 10735, -1415, -1415,  1339, -1415,  1343, 10735,  1344,  1346,
    1719    10735,  1138,  1347,    66,  8568,  1818,   150, -1415, -1415,  6659,
    1720     1365,   503, -1415, -1415, -1415, -1415, -1415, -1415, -1415, -1415,
    1721    -1415,   943, -1415, 10731, -1415,  8796,  1371, -1415, -1415, 10116,
    1722      534,   544, -1415,  1374,  1378,   768,  1386, -1415,   485, -1415,
    1723    -1415, 10735,  1387,  1388, -1415, -1415,  1392,   596,   610,   626,
    1724     1393,  1398, -1415,  1403, -1415, 10233, -1415, -1415, -1415, -1415,
    1725    -1415,  1404, -1415, 10233, 10233, 10233, -1415, -1415,  1405, -1415,
    1726     1407,  1413,  1415,   744,  8418,  8535, -1415, -1415,   267, -1415,
    1727     1414,  1418, -1415,  8868,   688,   717,  1422,   722,  6277, -1415,
    1728    -1415,   570, -1415, -1415,   730,  1423,  1426,   218,  1455,  1034,
    1729    -1415, -1415, 10735, -1415, 10813, 10605, -1415, -1415, -1415,  1417,
    1730     1427, 10233, -1415, -1415, -1415,  1428, -1415, -1415, -1415, -1415,
    1731    -1415, -1415, 10116,   768,   278, -1415,  1409,   768,  1221,   436,
    1732    -1415, -1415, -1415, -1415, -1415, -1415, -1415, -1415,  1429, -1415,
    1733    -1415, -1415, -1415, -1415, -1415,  1431,  1432, -1415, -1415, -1415,
    1734    -1415, -1415, -1415, -1415,  1441, -1415,  1443, -1415, -1415, 10605,
    1735      146, 10735, 10605, -1415,  1459, 10735, -1415,   163,  1467,  1476,
    1736    -1415, -1415,  1465,  1472,  1450,   984, -1415, -1415, -1415, -1415,
    1737    -1415,  1795,  1673,  1468,   804,  1016, 10891, -1415,   770,  1483,
    1738    10735,   626,   626,  1489,  1491,  1496,  1497, -1415, -1415,  8724,
    1739     1492, -1415,  1574, 10891,  1506, -1415, -1415, 10515, -1415,   773,
    1740    -1415,  1487, 10605,  1498, -1415, -1415,  1518, -1415,  1523, -1415,
    1741     1540,  1541, -1415,  1509,  1532, 10116, -1415, -1415, -1415,   768,
    1742      626,  1533,  1513,  1529, -1415,  1301,  1301, -1415, -1415, -1415,
    1743    -1415, -1415, 10605,   282, -1415,  1020, -1415, -1415,  8004, -1415,
    1744    -1415,  1515, 10735, -1415, 10735,  8004,   218, 10047,   218, 10047,
    1745     1538, -1415,  1546, -1415, -1415, -1415,  1536,   804, -1415,   780,
    1746    -1415, -1415, 10735,  1545,  1547, -1415, 10891, 10891, -1415, -1415,
    1747     1123,    97, -1415, -1415,  1521, -1415,  1123, -1415, -1415,  2006,
    1748      626, -1415, -1415,   218, 10047,   218, 10047,  1549,  1528,   626,
    1749    -1415, -1415, -1415, -1415, -1415, 10515,  1548,  1123,  8081, 10735,
    1750    10425,  1550,  1123,  1552,  2006,  2821, -1415, -1415, -1415,  1554,
    1751    -1415, -1415, -1415, -1415,  9164, -1415, -1415, -1415, 10331, -1415,
    1752    10515, -1415, -1415,  1534, 10237, -1415, -1415, 10425,   218,  2821,
    1753      218,  1557,  1559,   837, -1415, 10331, -1415, -1415, -1415, 10237,
    1754    -1415, -1415, -1415,   218,   218, -1415, -1415, -1415, -1415, -1415,
    1755    -1415, -1415, -1415
     1595    7162,  9347, -1328,    62, -1328, -1328, -1328, -1328, -1328, -1328,
     1596   -1328,    38, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1597   -1328, -1328, -1328, -1328, -1328, -1328,   207,   207,   207,  1203,
     1598    1016,    43,  8157,   275, -1328, -1328, -1328, -1328, -1328,   222,
     1599   -1328, -1328, -1328,   557,   264, -1328, -1328, -1328, -1328,  3410,
     1600   -1328, -1328, -1328, -1328,     6,   284, -1328,  1270, -1328, -1328,
     1601   -1328, -1328,   295,  1095,   444,   105,  5843, -1328, -1328,  9886,
     1602    1150, -1328, -1328, -1328,  1157,   453,  3851,  1007,   683,  1157,
     1603     795, -1328, -1328,   654,   738, -1328,  1157,  1633, -1328,   323,
     1604   -1328,   507,   534, -1328, -1328, -1328, -1328,   477,   284,   207,
     1605   -1328,   207, -1328, -1328, -1328, -1328,  9575,  1270, -1328, -1328,
     1606    1270, -1328,   485, -1328,  9689, -1328, -1328,  2141, 10207, -1328,
     1607     954,   954,   954, -1328, -1328, -1328,   207, -1328, -1328, -1328,
     1608     515,   550,   565, -1328, -1328, -1328,   568, -1328, -1328, -1328,
     1609   -1328, -1328,   578,   624, -1328, -1328,   103,  9430,  2160,   312,
     1610     511,   638,   641,   646,   657,   661,  8834,  7559,   662,   709,
     1611   -1328,  9916, -1328, -1328, -1328, -1328,   722, -1328,    13,  3378,
     1612    3378, -1328,   721,   108, -1328, -1328, -1328, -1328,   731,   161,
     1613     310,   313,   207,   724, -1328, -1328,  1095,  1965,   797, -1328,
     1614      79, -1328,   207,   207,   284, -1328, -1328,    80, -1328,   207,
     1615     207, -1328,  2460,   764,   779,   954,  7590, -1328, -1328,   794,
     1616    3410, -1328, -1328,  1157, -1328, -1328, -1328,   284, -1328,  1270,
     1617       6, -1328,  8496, -1328,   954,   954,   954,   284, -1328,  1203,
     1618   -1328,  3975, -1328, -1328,   760,   954, -1328,   954, -1328,   222,
     1619    9430,  9461,   756, -1328,  1016,   796,   954, -1328,  1203,   781,
     1620     808, -1328,  8157,   907, -1328, -1328, -1328,  4258, -1328, -1328,
     1621    6530, -1328,   797,   109,  4971, 10207,  2141,  2460, -1328,   140,
     1622   -1328, -1328,  9689,  1270,   846, 11353, -1328, -1328,   570, -1328,
     1623   11095,   861,   898,  6606,   875,  6875,  7175, -1328,   885, -1328,
     1624   -1328, -1328, -1328, 10975, 10975,   907,  9202,   892, -1328, -1328,
     1625   -1328, -1328, -1328, -1328,   924, -1328,   845,  2420,  9544,  6875,
     1626   -1328,   469,   445,   777,   634,   925,   901,   902,   909,   956,
     1627      32, -1328, -1328,   922,   940, -1328,   107, -1328, -1328,  2160,
     1628   -1328, -1328,   525,   945, -1328,   601,   945,   952,   222, -1328,
     1629   -1328,   980,  9575, -1328,   982,   995,  9658, -1328, -1328,  1834,
     1630     953,  8917,  7590,  1157, -1328,  1157,   954,   954, -1328, -1328,
     1631   -1328, -1328, -1328, -1328,   954,  9575,  1270, -1328, -1328, 10280,
     1632    2053, -1328,  8646, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1633    1002,  3599,  6875, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1634   -1328, -1328, -1328, -1328, -1328, -1328, -1328,  2141, -1328,   993,
     1635    1014,  1018,  1020,  1011,  1040,  1050,  1075,  1965, -1328, -1328,
     1636    1017,     6,  1082, -1328, -1328,  1078, -1328, -1328, -1328,  4258,
     1637   -1328, -1328, -1328, -1328, -1328,  2460, -1328,  9430,  9430, -1328,
     1638     954,  2141,  7710,  1270,  8990, -1328, -1328, -1328, -1328,  4258,
     1639     109, -1328, -1328,  1157,   284, -1328, -1328,  4258, -1328,  5377,
     1640   -1328, -1328,   954,   954,   193, 10318,  1091,   803,  5956, -1328,
     1641     316,   338,  1016, -1328,  1094,  1108,  1109,  1128,   954, -1328,
     1642   -1328, -1328, -1328, 10468, -1328,   229,  7332, -1328,   284,  1130,
     1643   -1328,  2141, 11177,  5632, -1328, -1328, -1328, -1328,  1033,  2460,
     1644   -1328,  9063,   797,  8040, -1328, -1328, -1328,   867,   238,   922,
     1645    1016, 11353,  1127,  9689, -1328, 11353, -1328, -1328, -1328, -1328,
     1646     355, -1328,  1155,   898,   274,  9202, -1328, 10318, -1328, -1328,
     1647    9202, -1328,  9316,  9202, -1328, -1328, -1328,  1158, -1328,   464,
     1648    1159,  1077,  1172, -1328,  5577,  4344, -1328,   377, -1328, -1328,
     1649    6047, -1328,   394,  6047, -1328, -1328, -1328, -1328, -1328, -1328,
     1650   -1328, -1328, -1328, -1328,  4971,  4971, -1328, -1328,  6875,  6875,
     1651    6875,  6875,  6875,  6875,  6875,  6875,  6875,  6875,  6875,  6875,
     1652    6875,  6875,  6875,  6875,  6875,  6875,  4543,  4971, -1328,   940,
     1653    1073, -1328, -1328,   207,   207, -1328, -1328,  9430, -1328, -1328,
     1654    1078,   907, -1328,  1078,  6220, -1328, -1328, -1328,  2379,  4344,
     1655    1173,  1178, -1328, 10207, -1328, -1328,   722, -1328,  1180,   771,
     1656    1181,  2349,   160,   922, -1328,   207,   207,   922,   206, -1328,
     1657     207,   207,  1078, -1328, -1328,   207,   207, -1328,   945, 10348,
     1658    1270, 11322,    23,   374, 10348, -1328,  6530, -1328,   922, -1328,
     1659    9575, -1328,    89,  8612,  8612,  8612,  1270, -1328,  4738,  1179,
     1660     282,  1002,   344,  1184,  1188, -1328,  1182,  3378,   493, -1328,
     1661    1266,  1270,  8612,   907,  2141,   907,   797,   670,   945, -1328,
     1662   -1328,   706,   945, -1328, -1328, -1328,   898, -1328,   945,   284,
     1663   10468, -1328,   491,  1206,   529,  1207, -1328,  1201,   284, -1328,
     1664   -1328,  4258,   284,  1218,   435,   476, 10280,  7679,  1689,  6875,
     1665    2634, -1328, -1328,  1204,    84,  1204, -1328, -1328, -1328,   207,
     1666     207, -1328, -1328,  1016, -1328,   207, -1328, -1328,  9461,  1016,
     1667    1205,  6875, -1328,  1016, 11322, -1328, -1328,  1225, -1328, -1328,
     1668   -1328,   907, -1328, 11250,   995, -1328,  8612,  1114,  8917, -1328,
     1669   -1328,   722,  1221,  1223,   867,  2656, -1328, -1328, 11353, -1328,
     1670   -1328,  1224, -1328, -1328,  1234, -1328,  1224,  1237, 11095,  4971,
     1671      83,  1217,    93,  1240,  1243,  1246,   892,  1252,  1262, -1328,
     1672    1265,  1271, 10056,  4468, -1328,  4971, -1328,  1077,  1872, -1328,
     1673    4836,  4971,  1255, -1328, -1328,  1002,   562, -1328,  4971, -1328,
     1674   -1328,   951, -1328, -1328, -1328, -1328, -1328,   469,   469,   445,
     1675     445,   777,   777,   777,   777,   634,   634,   925,   901,   902,
     1676     909,   956,  6875,   906, -1328, 10468,  1272,  1274,  1276,  1073,
     1677   -1328, -1328, -1328, -1328, -1328, 10468,   636,  8612, -1328,  9575,
     1678   -1328,  7799,  9772, -1328,  8646,  7559, -1328, -1328,   771, 10468,
     1679    1063,  1277,  1279,  1283,  1286,  1287,  1292,  1293, -1328,  3021,
     1680    2349, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1681   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  1078, -1328,
     1682   -1328, -1328,   922, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1683   -1328,  1294, -1328,  1295,  1296, -1328, -1328,     6,  1255,  4738,
     1684   -1328, -1328, -1328,  3599,  1300, -1328, -1328, -1328, -1328, -1328,
     1685    1016,  7010,  1347, -1328, -1328, -1328, -1328,  1288,     6, -1328,
     1686   -1328,  1078, -1328, -1328,  1078,    50,  1078, -1328, -1328, -1328,
     1687   -1328, -1328, -1328, 10026, -1328,   284, -1328,  9461, -1328, -1328,
     1688    1305,   963,  1297,  1298,  1310, -1328, -1328,  2634, -1328, -1328,
     1689   -1328, -1328, -1328, -1328, -1328,   803, 10138,  1109, -1328, -1328,
     1690    1108,  1316,  1312, -1328, -1328,  1317,  1320, -1328,  1114,  1935,
     1691   -1328,   436, -1328,  2656,   922, -1328,  1324, 11353, 10430,  9430,
     1692    1326, -1328, -1328,  1319,  1327,  1321, -1328,  6875,   112,   182,
     1693    1330, -1328,  1331,   907,  1331,  4344,  4971, -1328, -1328,  1331,
     1694   -1328,  1872,  3599, -1328, -1328, -1328, -1328,  1336,  4971,  1335,
     1695     907,  4738, -1328,  6047, -1328,   907, -1328, -1328,  4971, -1328,
     1696     740,   945, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  1002,
     1697     995,  9658, -1328, -1328,  7919,  1344, -1328,   772,   945, -1328,
     1698     788,   818,   945, -1328,   954,  5460, -1328, -1328, -1328, 10468,
     1699   10468, -1328,  8990,  8990, -1328,  1339,  1340,  1348,  1349, -1328,
     1700    1350,   503,   115,  1255, -1328,   907, -1328,  3378, -1328,  4971,
     1701     506, -1328,  7436,  1332,  1355, 10917,  1358,  1365,   260,   584,
     1702     505,  4971,  1366,   284,  4971,  4971,  1367,   608,  1361,  1353,
     1703   -1328, -1328, -1328,  1373, -1328, -1328, -1328, -1328, -1328, -1328,
     1704   -1328, -1328, -1328,  1016,  1370,  4971, -1328, 10468, 10468,   207,
     1705    1383, -1328, 10169,  5577,   866,   945, -1328, -1328, -1328, -1328,
     1706   -1328,  1379, -1328, -1328, -1328, -1328,  1385,  1935, -1328, -1328,
     1707    1369, -1328,  1224, -1328, -1328,  2141,  1387, -1328, -1328, -1328,
     1708     659,  1386, -1328,    93,  1391,  6875,  1377,    93,    93,  1395,
     1709    1394, -1328,  1182,  4971,  1402,  1336,  1003,   123,  1399, -1328,
     1710    1394, -1328,  1407,  1399, -1328, -1328,  1410, -1328, -1328,  1078,
     1711    1414,  1420,  6815,  1419,  1422,  1425, -1328, -1328,  1430, -1328,
     1712   -1328,  1078, -1328, -1328, -1328, -1328,  1078,  4971,  4971,   995,
     1713    1431, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1714   -1328, -1328, -1328,  6875,  6875,  1433,  1438,  1399, -1328, -1328,
     1715    1016, -1328, -1328, -1328,  8423, 10430,  4971,  4971,  1506,  4971,
     1716   -1328, -1328,  1428, -1328,  1436,  4971,  1439,  1441,  4971,  1214,
     1717    1442,    52,  9804,  1144,   207, -1328, -1328,  7010,  1455,   510,
     1718   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  1078,
     1719   -1328, 10735, -1328,  9063,  1444, -1328, -1328, 10430,   512,   604,
     1720   -1328,  1460,  1459,   898,  1471, -1328,   592, -1328, -1328,  4971,
     1721    1468,  1469, -1328, -1328,  1474,   693,   716,   907,  1482,  1483,
     1722   -1328,  1487, -1328, 10468, -1328, -1328, -1328, -1328, -1328,  1489,
     1723   -1328, 10468, 10468, 10468, -1328, -1328,  1490, -1328,  1491,  1473,
     1724    1495,   618,  8685,  8801, -1328, -1328,   293, -1328,  1494,  1498,
     1725   -1328,  9136,   674,   725,  1504,   758,  7301, -1328, -1328,   611,
     1726   -1328, -1328,   792,  1505,  1508,   284,  1558,  1023, -1328, -1328,
     1727    4971, -1328,  6047, 10917, -1328, -1328, -1328,  1509,  1510, 10468,
     1728   -1328, -1328, -1328,  1511, -1328, -1328, -1328, -1328, -1328, -1328,
     1729   10430,   898,   150, -1328,  1492,   898,  1336,   370, -1328, -1328,
     1730   -1328, -1328, -1328, -1328, -1328, -1328,  1512, -1328, -1328, -1328,
     1731   -1328, -1328, -1328,  1514,  1515, -1328, -1328, -1328, -1328, -1328,
     1732   -1328, -1328,  1513, -1328,  1516, -1328, -1328, 10917,   125,  4971,
     1733   10917, -1328,  1524,  4971, -1328,   136,  1526,  1539, -1328, -1328,
     1734    1528,  1529,  1507,  1001, -1328, -1328, -1328, -1328, -1328,  1270,
     1735    2141,  1525,   924,  1036,  6875, -1328,   837,  1530,  4971,   907,
     1736     907,  1531,  1538,  1540,  1541, -1328, -1328,  8990,  1537, -1328,
     1737    1613,  6875,  1542, -1328, -1328, 10828, -1328,   879, -1328,  1532,
     1738   10917,  1533, -1328, -1328,  1546, -1328,  1551, -1328,  1566,  1572,
     1739   -1328,  1545,  1559, 10430, -1328, -1328, -1328,   898,   907,  1563,
     1740    1547,  1557, -1328,  1399,  1399, -1328, -1328, -1328, -1328, -1328,
     1741   10917,   237, -1328,  1060, -1328, -1328,  8274, -1328, -1328,  1548,
     1742    4971, -1328,  4971,  8274,   284, 10318,   284, 10318,  1568, -1328,
     1743    1573, -1328, -1328, -1328,  1567,   924, -1328,   923, -1328, -1328,
     1744    4971,  1575,  1576, -1328,  6875,  6875, -1328, -1328,  1088,   113,
     1745   -1328, -1328,  1553, -1328,  1088, -1328, -1328,  2465,   907, -1328,
     1746   -1328,   284, 10318,   284, 10318,  1580,  1564,   907, -1328, -1328,
     1747   -1328, -1328, -1328, 10828,  1583,  1088,  8350,  4971, 10739,  1584,
     1748    1088,  1585,  2465,  2931, -1328, -1328, -1328,  1591, -1328, -1328,
     1749   -1328, -1328,  9430, -1328, -1328, -1328, 10606, -1328, 10828, -1328,
     1750   -1328,  1570, 10513, -1328, -1328, 10739,   284,  2931,   284,  1593,
     1751    1595,   938, -1328, 10606, -1328, -1328, -1328, 10513, -1328, -1328,
     1752   -1328,   284,   284, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1753   -1328
    17561754};
    17571755
     
    17591757static const yytype_int16 yypgoto[] =
    17601758{
    1761    -1415,  4737,  3351, -1415,   455, -1415,    41,     0,  -262, -1415,
    1762      592,  -524,  -481,  -976,   -32,  3487,  1327, -1415,  -108,   613,
    1763      615,   537,   614,  1100,  1103,  1108,  1109,  1112, -1415,   543,
    1764     -570,  5379,  -852,  -699,  -945, -1415,  -234,  -722,  -516, -1415,
    1765      705, -1415,   452, -1136, -1415, -1415,   192, -1415, -1082,  -770,
    1766      303, -1415, -1415, -1415, -1415,   128, -1414, -1415, -1415, -1415,
    1767    -1415, -1415, -1415,   383, -1192,    80, -1415,  -222, -1415,   551,
    1768      357, -1415,   227, -1415,  -321, -1415, -1415, -1415,   617,  -831,
    1769    -1415, -1415,     1,  -880,   113,  2816, -1415, -1415, -1415,   -46,
    1770    -1415,    27,   263,  -201,  1947,  3745, -1415, -1415,    18,   105,
    1771      806,  -244,  1537, -1415,  1920, -1415, -1415,   122,  2445, -1415,
    1772     2562,  1653, -1415, -1415, -1415,  -611,  -434,  1254,  1255,   775,
    1773     1011,   338, -1415, -1415, -1415,   992,   776,  -483, -1415,  -487,
    1774     -342,  1046, -1415, -1415,  -956,  -989,   784,  1368,  1126,   161,
    1775    -1415,   412,   137,  -263,  -206,  -125,   726,   831, -1415,  1069,
    1776    -1415,  2921,   140,  -453,   983, -1415, -1415,   766, -1415,  -231,
    1777    -1415,   -13, -1415, -1415, -1415, -1257,   486, -1415, -1415, -1415,
    1778     1243, -1415,    44, -1415, -1415,  -843,  -105, -1314,  -135,  1612,
    1779    -1415,  3802, -1415,   985, -1415,  -152,   929,  -180,  -176,  -171,
    1780        5,   -40,   -36,   -35,   948,    35,    56,    77,   -93,  -170,
    1781     -165,  -163,  -160,  -322,  -533,  -531,  -517,  -561,  -304,  -510,
    1782    -1415, -1415,  -506,  1157,  1166,  1180,  1503,  5100,  -539,  -571,
    1783     -552,  -543,  -475, -1415,  -440,  -686,  -674,  -659,  -583,  -282,
    1784      -25, -1415, -1415,   541,    33,   -95, -1415,  4237,   118,  -635,
    1785       57
     1759   -1328,  5033,  3981, -1328,   462, -1328,    41,     0,  -266, -1328,
     1760     629,  -530,  -491,  -946,    44,  6093,  1325, -1328,  -145,   685,
     1761     687,   763,   628,  1136,  1140,  1135,  1139,  1142, -1328,   121,
     1762    -486,  5463,  -869,  -668,  -953, -1328,    82,  -669,   286, -1328,
     1763     761, -1328,   487, -1173, -1328, -1328,   220, -1328, -1056,  -711,
     1764     333, -1328, -1328, -1328, -1328,   153, -1149, -1328, -1328, -1328,
     1765   -1328, -1328, -1328,   407, -1194,    53, -1328,  -367, -1328,   586,
     1766     380, -1328,   254, -1328,  -311, -1328, -1328, -1328,   635,  -853,
     1767   -1328, -1328,     1, -1043,    33,   825, -1328, -1328, -1328,  -137,
     1768   -1328,    56,  1849,  -201,  2484,  4445, -1328, -1328,    18,   403,
     1769     583,  -228,  1261, -1328,  2554, -1328, -1328,   106,  2921, -1328,
     1770    3406,  1470, -1328, -1328, -1328,  -638,  -431,  1278,  1282,   784,
     1771    1026,   294, -1328, -1328, -1328,  1019,   787,  -503, -1328,  -383,
     1772    -257,   -66, -1328, -1328,  -966,  -965,  -357,  -136,  1148,    24,
     1773   -1328,  1219,   429,  -306,  -197,  -129,   749,   851, -1328,  1087,
     1774   -1328,  3476,   780,  -426,   999, -1328, -1328,   783, -1328,  -230,
     1775   -1328,    87, -1328, -1328, -1328, -1267,   502, -1328, -1328, -1328,
     1776    1258, -1328,    59, -1328, -1328,  -855,  -106, -1327,   -91,  2314,
     1777   -1328,  1987, -1328,   996, -1328,  -143,   298,  -180,  -177,  -174,
     1778       5,   -40,   -36,   -35,  1329,    39,    55,    68,  -100,  -171,
     1779    -166,  -165,  -162,  -312,  -570,  -551,  -548,  -549,  -290,  -542,
     1780   -1328, -1328,  -477,  1176,  1183,  1187,   244,  5746,  -594,  -573,
     1781    -562,  -554,  -469, -1328,  -406,  -684,  -672,  -663,  -604,  -191,
     1782    -239, -1328, -1328,   263,   351,   -84, -1328,  4721,   128,  -628,
     1783    -435
    17861784};
    17871785
     
    17891787   positive, shift that token.  If negative, reduce the rule which
    17901788   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1791 #define YYTABLE_NINF -527
     1789#define YYTABLE_NINF -526
    17921790static const yytype_int16 yytable[] =
    17931791{
    1794       48,   113,   115,   150,   429,    98,   400,   151,   152,   454,
    1795      401,   261,   268,   934,   441,   402,   403,   708,    69,   792,
    1796      514,   404,   896,   405,   713,   935,   406,    63,   614,   113,
    1797      113,  1155,    48,   107,   107,   408,   507,    98,   976,   847,
    1798      936,   769,   112,    48,   384,   385,   619,   872,   752,    48,
    1799       69,   854,   757,   411,   162,  1147,  1189,    48,   848,    63,
    1800     1094,   343,   529,    48,   606,   107,    48,   849,   194,    48,
    1801      220,   217,  1093,   855,   227,   822,   144,   843,   153,   844,
    1802       50,  1199,   996,   113,   113,  1403,   400,    31,  1187,  1188,
    1803      401,   780,   934,   845,   409,   402,   403,   426,   680,   154,
    1804      846,   404,   107,   405,   935,    70,   406,    48,   948,  1466,
    1805       48,   281,    50,    56,   116,   408,  1555,    48,   689,   936,
    1806      155,   123,    77,   203,    31,   292,   693,   484,   486,  1322,
    1807      938,     2,   207,     4,     5,     6,     7,    70,   858,   410,
    1808      536,  -236,  -236,  1570,   865,    56,   150,   124,    48,   740,
    1809      151,   152,   951,   162,    77,   979,    48,   885,   885,   885,
    1810      412,    48,   887,   888,   684,   686,   374,   167,    31,  1101,
    1811      282,   213,    31,   204,   409,   747,   885,   519,   169,   211,
    1812      906,   576,   221,  1466,  1205,   485,    48,    48,  1486,    31,
    1813     1423,  1424,   162,   683,   685,   253,    35,   412,    36,  1323,
    1814      557,   558,    48,   170,   143,   678,   216,  1423,  1424,   741,
    1815       48,   480,   843,  -236,   844,   162,   448,   577,   178,    48,
    1816     1267,   153,    48,   243,  1222,  1223,   150,   444,   845,   113,
    1817      151,   152,   167,  1204,   502,   469,   503,   145,   557,   420,
    1818      756,   412,   154,   490,   113,   412,   536,   598,   113,  1268,
    1819      885,   761,    48,   113,   959,   675,  1189,    98,   216,   771,
    1820       -3,  1425,   536,   155,   117,   328,    48,    48,   262,   847,
    1821       69,   263,   162,    48,   557,   762,   182,   343,  1434,    63,
    1822       48,   529,   763,   378,   481,   107,   529,  1512,   848,   529,
    1823       31,  1039,   667,  1264,   474,   113,   472,   849,   977,   379,
    1824      147,   216,   886,   886,   886,   704,  1189,   843,   619,   844,
    1825      156,  1157,   160,  1040,   676,  1015,  1348,  1113,  1104,   536,
    1826      682,   886,  1541,   845,  1543,   826,   687,   443,   437,    48,
    1827     1027,    31,    50,   172,   374,   442,   526,   675,  1187,  1188,
    1828      638,   248,   885,   815,   642,  1470,  1018,  1137,   606,    48,
    1829       48,  1219,   388,   606,   566,   567,   740,    70,   328,   202,
    1830      536,   856,   216,   611,   706,    56,    48,   858,   389,   259,
    1831       48,   927,   251,   480,    77,  1195,   587,   160,  1496,    77,
    1832      440,   654,   588,  -114,  -114,  -292,  1094,  1082,  1406,   847,
    1833      437,   568,   569,   480,  1554,   886,   676,    48,  1093,  -114,
    1834      216,   480,   863,  1196,   611,   216,  1196,    48,   848,  1136,
    1835      324,   391,   374,   393,  1565,   917,   741,   849,   694,   340,
    1836     -522,  1569,   855,   485,   588,    48,   167,   392,  1205,   394,
    1837     1189,    48,   740,    48,   492,  1455,  1456,  1138,   111,   343,
    1838      872,   509,   142,  1470,  1139,   578,   481,   111,  1470,    41,
    1839       42,   796,   797,   798,   395,   731,   213,    48,    41,    42,
    1840      111,   732,   113,  1461,   608,   253,   481,   287,  1470,   431,
    1841      396,    41,    42,   435,   481,  1470,   113,  1385,    41,    42,
    1842      748,    48,   758,   562,   563,  1217,   749,   886,   759,    48,
    1843      714,   216,   741,    48,   374,   242,   245,    48,    98,  1109,
    1844      113,   980,   113,   324,   457,   523,   715,   708,  1213,  1263,
    1845      178,    69,   177,   264,   713,   507,  1124,   112,   738,   400,
    1846       63,  1215,   654,   401,  1153,   -10,   107,   639,   402,   403,
    1847     1038,   643,   910,   897,   404,   435,   405,   113,   497,   406,
    1848      654,    77,   113,   654,  -445,   328,   328,  -114,   619,   408,
    1849      716,  1210,  -446,  1109,  1410,   277,   750,  1175,  1177,   531,
    1850      908,    77,   177,   768,   111,   177,   717,  1256,  -114,    77,
    1851      331,   160,   216,    50,   832,    41,    42,   714,   785,   279,
    1852     1040,   768,   280,   791,   768,  -471,  1383,   213,  1205,   111,
    1853      164,   372,   113,   930,   332,  1205,  1346,   716,    70,    48,
    1854       41,    42,   343,  1347,   784,   597,    56,   898,   409,   603,
    1855       48,   177,    48,   931,  1202,    77,   881,  -471,   834,  -471,
    1856     1202,   328,   216,  -471,   333,  1296,  1297,   334,   636,   790,
    1857     1203,    48,   640,   474,   335,   340,  1328,  1502,    37,   899,
    1858      328,   653,    40,  1038,  1502,   900,   480,    48,  1205,    41,
    1859       42,  1337,   764,   113,   765,   164,   466,   766,   253,   330,
    1860      772,  1339,    48,  1433,   113,    48,   113,  1338,   111,   336,
    1861      713,   859,   373,   995,   177,   862,    43,  1340,   343,    41,
    1862       42,   377,   111,  1051,   386,    45,    46,   776,   956,   775,
    1863      324,   324,   390,    41,    42,   776,   879,  1551,   111,    48,
    1864      882,    48,  1186,  1386,  1098,   907,   328,   909,  1352,    41,
    1865       42,   921,   875,  1082,   113,   410,   876,   776,   457,   481,
    1866      113,   457,  1354,   923,   113,   738,   398,   559,   177,   776,
    1867     1525,   427,   113,   560,   561,   177,  1530,   443,   877,   117,
    1868     1132,   606,   878,    37,   216,    48,    48,    40,   873,   428,
    1869     1504,   436,  1505,   608,    41,    42,   589,  1550,   412,    48,
    1870      174,   481,  1557,  1004,   497,   580,   324,   412,   497,  1005,
    1871     1058,   433,   216,   955,    45,    46,   451,   216,   531,  -369,
    1872      531,   745,   462,   531,  -398,   324,   531,   675,  1017,   470,
    1873       45,    46,   874,   655,   732,   704,  1252,   340,   471,  1379,
    1874     1395,   738,   588,   254,   177,   776,  1020,  1552,   889,  1396,
    1875     -114,   832,  -114,   436,    77,   111,  -114,   140,   141,   493,
    1876      877,   177,   740,   905,  1120,   177,    41,    42,  1380,   513,
    1877      213,  -114,  -114,  1382,   776,  1179,  1451,   533,  -106,   776,
    1878       48,  1387,  -106,   592,   213,   412,   676,   776,   934,   164,
    1879      292,   324,    48,  1463,   706,   834,    77,  1371,   244,   517,
    1880      935,  1372,   830,  1422,   522,   216,  1430,     8,     9,    10,
    1881       11,    12,   534,   980,   718,   936,   230,   980,   980,   216,
    1882      231,  1452,   741,   235,  1471,   237,   536,  1449,   177,   572,
    1883      776,  1518,   246,   871,   573,   654,    31,  1519,   603,   418,
    1884      832,   574,   113,   654,   880,   575,   911,   111,   412,   140,
    1885      239,  1469,   751,  1254,   755,   557,  1473,  1258,    41,    42,
    1886      509,    69,   438,   578,    34,    48,  1523,  1463,   339,    97,
    1887       63,  1043,   446,   778,  1200,   412,   107,  -442,   213,    48,
    1888      570,   571,    45,    46,  1080,   240,  1495,    48,  1575,   914,
    1889      241,   412,  1374,   596,   588,   130,   519,   131,   132,   133,
    1890      340,    97,  1159,   741,   412,    48,    41,    42,   253,   330,
    1891      412,  1125,   149,   216,  1304,  1305,   599,  1307,    97,   960,
    1892       -3,   611,   457,  1311,   648,   113,  1314,   668,    45,    46,
    1893      564,   565,   190,  1344,   654,    97,   462,   163,    97,   462,
    1894      669,   530,   113,   107,  1171,   654,   412,   113,    70,  1008,
    1895     1005,   195,   497,  1174,   218,   611,    56,   228,  1176,   230,
    1896      611,   670,  1247,  1121,   672,    77,  1141,  1239,   111,   412,
    1897      140,   141,  1564,   420,   671,   412,   340,   673,  1564,    41,
    1898       42,   674,   942,  1149,   942,   677,   768,   679,  1149,  1564,
    1899      490,   330,   412,  1564,   177,   258,   533,   113,   533,   776,
    1900     1010,   533,   330,   412,   533,   893,   697,   654,   892,  1537,
    1901      113,   113,   113,   856,   330,   611,   111,    97,   140,   141,
    1902      832,  1404,  1207,  1126,   719,  1404,   177,    41,    42,   328,
    1903       97,   481,  1392,  1393,  1019,   113,   163,   107,  1149,   830,
    1904     1443,  1005,   177,   803,   804,   805,   806,   720,  1080,   375,
    1905      722,  1214,  1216,  1218,   724,   399,   190,   177,  -240,  1109,
    1906      760,     8,     9,    10,    11,    12,   946,    48,   773,   343,
    1907      777,   443,   949,  1449,  1450,   163,   466,  1497,  1498,    97,
    1908      781,   873,     8,     9,    10,    11,    12,  1429,   835,   691,
    1909       31,    97,     2,   207,     4,     5,     6,     7,   163,   230,
    1910      836,   235,   111,   839,   140,   141,   216,  1423,  1424,    70,
    1911      445,    31,   850,    41,    42,   799,   800,    56,    34,   801,
    1912      802,    97,   -12,   733,   807,   808,    77,  1487,   830,   -13,
    1913      894,   738,   457,   895,   902,   488,  1315,  1316,  1317,    34,
    1914      753,   925,   113,   922,   924,   754,   929,   700,   220,  -419,
    1915      950,   457,  -526,   964,   177,   971,   749,    35,   973,    36,
    1916      530,   580,   988,   412,    48,   530,   984,   985,   530,   654,
    1917       45,    46,   497,  1127,   324,  1353,  1355,  1356,   986,   978,
    1918      107,   989,   778,   937,   412,   990,   991,    69,  1000,   230,
    1919     1125,    45,    46,  1012,  1013,  1014,    63,   729,    97,  1095,
    1920      462,  1029,   107,  1030,  1031,   937,  1032,   113,   113,   113,
    1921     1080,  1033,   738,   537,   538,   539,  1105,   375,  1034,   613,
    1922     -293,  1035,   107,  1046,  -407,  -294,   871,     8,     9,    10,
    1923       11,    12,     8,     9,    10,    11,    12,  1447,   540,  1060,
    1924      541,  -406,   542,   543,  1106,  1107,  1097,   655,  1149,  1149,
    1925     1149,   213,  1108,  1563,  1063,  1114,    31,  1115,  1116,   211,
    1926      221,    31,  1117,  1123,   654,   654,  1207,    49,   114,  1133,
    1927      776,  1134,  1135,  1140,    70,   481,   190,   994,  1145,  1148,
    1928     1169,   107,    56,  1125,    34,  1190,   216,  1192,  1191,    34,
    1929     1193,    77,  1208,  1194,   400,   375,  1209,  1009,   401,    49,
    1930     1211,  1212,  1126,   402,   403,   768,  1080,   457,   830,   404,
    1931      148,   405,  1220,  1224,   406,   107,    49,    37,  1227,   654,
    1932      177,    40,   654,   408,  1226,   919,   705,    -3,    41,    42,
    1933      187,  1232,  1237,   210,   926,  1242,    49,  1244,   928,   502,
    1934     1248,    48,    48,  1253,  1536,  1255,   655,   675,   443,  1257,
    1935     1260,   113,   113,    70,  1261,   840,   442,   611,  1269,  1265,
    1936     1080,    56,    97,  1080,    45,    46,   613,   654,  -295,  1272,
    1937       77,  1274,   654,   114,  1053,     8,     9,    10,    11,    12,
    1938     1276,   114,   409,   216,   267,   272,  1125,  1277,  1278,  1306,
    1939      113,  1279,  1149,  1149,  1280,  1126,     2,   207,     4,     5,
    1940        6,     7,   654,  1282,    31,   729,   676,  1289,  1080,  1298,
    1941      462,  1299,  1309,  1080,   308,   148,  1310,  1312,   107,  1313,
    1942     1321,  1327,  1335,   114,   346,   229,  1207,   340,   210,   462,
    1943     1341,  1488,    34,  1207,   150,   481,  1343,  1345,   151,   152,
    1944     1349,   107,   481,  1080,  1350,  1351,  1357,  1063,   107,    48,
    1945      113,  1358,  1127,   187,   187,  1317,  1359,  1361,  1367,   113,
    1946     1368,    35,   937,    36,  1369,   654,  1370,  1377,  1397,   267,
    1947      654,  1378,  1381,  1388,    48,    48,  1389,    49,  1398,   842,
    1948      162,   613,  1407,  1400,  1417,  1418,  1207,  1410,   654,   210,
    1949      654,  1538,  -408,  1156,   654,   481,  1421,   654,  1126,    48,
    1950     1546,   107,  1446,  1436,   374,   654,  1080,   308,   114,   654,
    1951     1432,  1080,  1438,    70,    37,  1440,   184,   185,    40,    49,
    1952       70,    56,  1441,  1442,  1448,    41,    42,   272,    56,  1080,
    1953       77,  1080,   272,   267,   267,  1080,  1453,    77,  1080,   114,
    1954     1457,   729,  1458,   214,  1053,  1127,  1080,  1459,  1460,  1372,
    1955     1080,   729,   186,   233,  1302,    37,  1462,   175,   176,    40,
    1956     1472,    45,    46,   308,  1467,   729,    41,    42,   933,  1476,
    1957      705,  1474,  1103,    70,  1478,   308,  1480,  1482,   125,   128,
    1958      129,    56,  1484,  1485,  1490,   462,  1491,  1492,  1503,  1513,
    1959       77,   581,  1517,   373,  1529,   214,   148,  1515,  1521,  1544,
    1960     1522,  1545,   328,  1558,  1549,  1560,  1556,  1566,  1573,   114,
    1961     1574,  1225,   809,   346,   842,   613,   810,   612,   630,   177,
    1962      937,  1326,   811,    37,   812,   184,   185,    40,   813,  1524,
    1963     1435,  1259,   635,   414,    41,    42,   635,  1576,   214,   114,
    1964      422,  1391,  1506,    37,  1408,   184,   185,    40,  1127,   695,
    1965      696,   255,  1231,   256,    41,    42,   952,   943,   828,   215,
    1966     1144,   699,  1110,   412,   267,  1112,  1059,   920,   901,   700,
    1967       45,    46,   966,  1122,   187,  1336,   743,   818,   937,   937,
    1968     1509,   610,  1509,   611,   974,    37,   819,   184,   185,    40,
    1969       45,    46,   267,     0,   308,   308,    41,    42,   267,   214,
    1970      820,   635,    37,     0,   175,   176,    40,     0,     0,   842,
    1971        0,   215,   414,    41,    42,     0,     0,  1509,     0,  1509,
    1972     1221,   613,   114,   266,   701,   114,     8,     9,    10,    11,
    1973       12,     0,    45,    46,   397,     0,     0,   214,     0,     0,
    1974      377,     0,   214,     0,   416,   417,     0,   324,   267,   421,
    1975        0,   423,   424,     0,   215,    31,   267,   508,   635,     0,
    1976       49,     0,     0,     0,   746,   729,   729,   586,     0,     0,
    1977      114,     0,     0,     0,     0,   590,     0,     0,   593,     0,
    1978        0,   730,   308,    34,   114,     0,     0,   308,    37,   308,
    1979      308,     0,    40,     0,     0,     0,   177,     0,   779,    41,
    1980       42,   114,   346,  1011,     0,     0,     0,    37,   705,   175,
    1981      176,    40,     0,  1016,     0,   215,   705,     0,    41,    42,
    1982        0,     0,     0,   729,   729,     0,    43,  1028,   214,     0,
    1983        0,     0,     0,     0,   613,    45,    46,     0,     0,     0,
    1984        0,     0,   414,   537,   538,   539,   422,   581,   581,     0,
    1985        0,     0,     0,   215,     0,   308,     0,     0,   215,     0,
    1986       75,     8,     9,    10,    11,    12,   635,   346,   540,     0,
    1987      541,   630,   542,  1324,     0,     0,     0,   612,     0,   612,
    1988        0,     8,     9,    10,    11,    12,     0,    66,   118,   937,
    1989       31,     0,    75,     0,     0,     0,     0,   635,     0,     0,
    1990        0,     0,   635,     0,   630,     0,   937,     0,   635,   214,
    1991       31,   635,   635,   635,     0,     0,     0,     0,    34,    66,
    1992        0,     0,     0,    37,     0,     0,   214,    40,     0,   223,
    1993      635,   414,   267,     0,    41,    42,   161,    37,    34,   184,
    1994      185,    40,     0,    37,   215,   184,   185,    40,    41,    42,
    1995        0,     0,     0,     0,    41,    42,   222,     0,  1510,   214,
    1996     1510,   745,  1390,     0,   114,   346,   701,  1333,   701,     0,
    1997       45,    46,     0,     0,     0,   699,     0,   412,     0,   937,
    1998      937,   610,     0,   611,    45,    46,   114,     0,     0,   730,
    1999       45,    46,     0,   260,     0,  1510,     0,  1510,     0,   729,
    2000        0,     0,     0,     0,   635,   961,   630,   729,   729,   729,
    2001        0,     0,   746,   746,     0,     0,     0,   354,    37,     0,
    2002      184,   185,    40,   586,   586,   215,     0,  1184,  1185,    41,
    2003       42,     0,     0,     0,     0,   329,     0,     0,     0,     0,
    2004      114,   346,     0,   260,   351,   779,   779,     0,     0,     0,
    2005        0,     0,     0,     0,     0,   729,  1534,     0,   412,     0,
    2006        0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
    2007        0,     0,     0,     0,   407,   215,     0,     0,     0,     0,
    2008        0,   214,     0,     0,     0,  1234,  1235,     0,   581,   425,
    2009        0,   450,   430,   432,     0,     0,   635,   161,   635,     0,
    2010     1023,     0,     0,   635,   346,     0,     0,   612,     0,   214,
    2011        0,   912,    75,     0,   214,   915,     0,    75,   449,   612,
    2012        0,  1507,   452,  1511,   453,   730,     0,     0,     0,     0,
    2013        0,     0,     0,   468,     0,   730,   823,   824,     0,    66,
    2014        0,     0,     0,     0,   482,     0,     0,     0,   414,   730,
    2015        0,     0,     0,     0,   489,     0,     0,     0,  1540,     0,
    2016     1542,     0,   432,     0,     0,   857,     0,     0,   860,   861,
    2017      308,   864,     0,   866,   867,     0,     0,     0,   868,   869,
    2018        0,     0,   544,   545,   546,   547,   548,   549,   550,   551,
    2019      552,   553,   635,   554,     0,     0,   114,   215,     0,     0,
    2020        0,     0,   214,  1571,     0,  1572,   701,     0,     0,     0,
    2021        0,     0,   223,     0,   701,   114,   214,   555,  1579,  1580,
    2022        0,     0,     0,     0,     0,   215,     0,   961,   961,   260,
    2023      215,     0,   746,   604,     0,     0,   508,   114,   308,   632,
     1792      48,   113,   115,   150,   429,    98,   400,   151,   152,   401,
     1793     454,   268,   402,   791,   932,   403,   514,   853,    69,  1203,
     1794     404,   405,   261,   441,   406,   870,   933,   712,   894,   113,
     1795     113,   768,    48,    56,   116,   934,   845,    98,   613,   841,
     1796     384,   385,   112,    48,   408,  1145,  1092,   846,  1091,    48,
     1797      69,   707,   507,    50,   162,   847,    63,    48,   842,  1153,
     1798     618,   843,   852,    48,   749,    56,    48,   844,   194,    48,
     1799     220,   217,   343,  1401,   227,   751,  1185,  1186,  1187,   756,
     1800     946,   178,   153,   113,   113,    50,   400,   409,    63,   401,
     1801     974,   144,   402,   932,  1464,   403,   426,   411,   154,   211,
     1802     404,   405,   221,   820,   406,   933,    77,    48,   679,  1197,
     1803      48,   155,   994,   169,   934,  1320,   728,    48,    31,    31,
     1804     480,   683,   685,    31,   408,   779,   637,   575,   688,   378,
     1805     641,   262,   536,   203,   263,   873,   692,   170,    77,   874,
     1806     519,   885,   886,   856,   123,   379,   150,   124,    48,   863,
     1807     151,   152,   143,   162,   281,   605,    48,  -235,  -235,   904,
     1808    1099,    48,   576,   556,   557,   536,   374,   409,  1464,  1421,
     1809    1422,   484,   486,   410,   841,   292,  1484,   167,   857,    31,
     1810    1421,  1422,   860,   204,  1321,   746,    48,    48,   253,   420,
     1811     412,   412,   162,   842,   536,   412,   843,   755,   485,    31,
     1812     975,   556,    48,   877,   977,  1220,  1221,   880,  1265,  1202,
     1813      48,  1193,   282,   936,   677,   162,   770,   586,   485,    48,
     1814     577,  1135,    48,   587,   388,   153,   150,   444,  -235,   113,
     1815     151,   152,   536,   957,   739,   949,  1266,   556,  1194,  1423,
     1816     389,   154,   167,   440,   113,    31,    31,   760,   113,   490,
     1817    1432,   412,    48,   113,   155,   442,  1038,    98,   597,  1404,
     1818     883,   883,   883,  1203,   674,   845,    48,    48,   841,   854,
     1819      69,   610,   162,    48,  1262,   328,   846,   391,  1187,   883,
     1820      48,   824,   480,  1510,   847,    56,   145,   842,   343,  1102,
     1821     843,   666,  1136,   392,   474,   113,  1025,   492,    97,  1137,
     1822     740,  1037,   480,   693,   509,    50,  1346,   675,    63,   587,
     1823     480,   472,   164,   481,   703,   861,   448,   610,  1539,   681,
     1824    1541,   618,  1111,   728,  1016,   686,  1185,  1186,  1187,    48,
     1825      97,   147,   111,  1494,   374,   469,   526,   729,   437,   730,
     1826    1155,   149,  1013,    41,    42,   731,   674,    97,   747,    48,
     1827      48,   107,   107,   883,   748,  1552,   536,   705,    77,   830,
     1828    1194,   190,  -470,    77,    97,   853,    48,    97,   328,  1468,
     1829      48,   856,  1092,   178,  1091,  1563,   156,   164,   529,  1553,
     1830     925,   653,  1567,   107,   761,   845,   884,   884,   884,   675,
     1831     638,   762,  1211,  -470,   642,  -470,   846,    48,   172,  -470,
     1832     437,   879,  1217,    70,   847,   884,  1568,    48,  -113,  -113,
     1833     915,   182,   374,   794,   795,   796,   111,   870,   140,   141,
     1834     107,   253,   330,  1203,  -113,    48,   393,    41,    42,   395,
     1835    1203,    48,   713,    48,   414,    70,   167,  1041,   605,   248,
     1836     739,   422,   394,   605,   883,   396,    97,   202,   714,   111,
     1837     343,  1459,  1187,  1383,   715,   890,  -291,    48,   728,    97,
     1838      41,    42,   113,  1453,  1454,   757,   111,  1468,   728,   213,
     1839     716,   758,  1468,   436,   607,   481,   113,    41,    42,   884,
     1840    -113,    48,   728,  1203,   399,   190,   875,  1408,   783,    48,
     1841     876,  1134,  1468,    48,   374,   481,   978,    48,    98,  1468,
     1842     113,  -113,   113,   481,   462,   789,   740,   251,    97,   682,
     1843     684,    69,  1151,   414,  1261,   712,   739,   112,   400,   177,
     1844      97,   401,   653,  1038,   402,    77,    56,   403,   895,  1119,
     1845     507,  1107,   404,   405,  -521,   436,   406,   113,  1036,   707,
     1846     653,  1122,   113,   653,   729,    77,    50,   737,   875,    63,
     1847      97,   713,  1118,    77,   480,   328,   328,   408,   906,   533,
     1848     618,  1173,  1175,   767,   488,   561,   562,   928,   585,   177,
     1849     884,   164,   177,   896,   774,   908,   589,   111,   784,   592,
     1850     775,   767,   740,   790,   767,  1107,   253,   558,    41,    42,
     1851    1018,   113,   715,   559,   560,   830,   954,   529,    48,    77,
     1852     409,   919,   529,   107,   897,   529,   652,   775,   929,    48,
     1853     898,    48,   343,  1500,   918,  -106,   264,   832,   177,  -106,
     1854    1500,   331,  1200,  1215,   -10,   443,  1200,    97,  1335,    37,
     1855      48,   328,   474,    40,   588,   993,   412,  1381,  1201,   921,
     1856      41,    42,  1326,   414,  1336,   775,    48,   422,   612,  1254,
     1857     328,  1036,   113,   230,   872,    70,   111,   231,   813,  -444,
     1858     235,    48,   237,   113,    48,   113,    43,    41,    42,   246,
     1859     887,   712,  1002,  1549,  -445,    45,    46,   277,  1003,   729,
     1860     287,   177,   728,   728,   830,   903,  -292,   279,   343,   729,
     1861    1049,    41,    42,     8,     9,    10,    11,    12,    48,   502,
     1862      48,   503,  1344,   729,   905,   190,   907,  1294,  1295,  1345,
     1863     591,  1096,   412,   113,  1431,   328,  1213,   523,   462,   113,
     1864    1337,   462,    31,   113,   565,   566,   111,   775,   140,   239,
     1865    1369,   113,   414,   280,  1370,   177,  1338,    41,    42,  1130,
     1866     728,   728,   177,  1384,    48,    48,  1015,   481,   332,  1009,
     1867      34,   333,   731,   737,   213,   704,   334,   871,    48,  1014,
     1868     567,   568,   607,   240,  1056,   111,  1252,   335,   241,  1250,
     1869    1256,   336,   953,  1026,   372,   587,    41,    42,   533,   909,
     1870     533,   412,   509,   533,  1377,  1184,   533,  1523,   111,   481,
     1871     775,    97,  1393,  1528,   674,   612,   230,    77,  -293,    41,
     1872      42,  1502,   703,  1503,  1350,     8,     9,    10,    11,    12,
     1873     111,   177,   140,   141,  1548,   912,   174,   412,   373,  1555,
     1874     935,    41,    42,   585,   585,    57,    57,  1352,   177,   737,
     1875     605,   377,   177,  1177,    31,  1378,   386,   675,    48,    77,
     1876     390,   775,   935,    37,   107,   705,   216,    40,   932,  1157,
     1877      48,   412,   244,   832,    41,    42,   398,    57,  1550,   254,
     1878     933,   410,    34,   243,   830,   563,   564,   978,  1380,   934,
     1879    -368,   978,   978,   427,   775,    37,   556,   184,   185,    40,
     1880     838,  1169,   610,   412,  1331,   213,    41,    42,   428,    45,
     1881      46,    57,   451,   653,    57,   177,    70,  1172,   216,   610,
     1882     113,   653,  1385,   729,   729,   739,   433,   840,   775,   612,
     1883    -397,   910,   698,   470,   412,   913,   728,   519,  1449,    69,
     1884     699,    45,    46,    48,   728,   728,   728,  1174,  1198,   610,
     1885     537,   538,   539,  1007,    56,  1461,   230,    48,   235,    37,
     1886     471,   216,  1078,    40,   763,    48,   764,  1450,   414,   765,
     1887      41,    42,   771,  1447,   540,   418,   541,    63,   542,   543,
     1888     493,   729,   729,    48,     8,     9,    10,    11,    12,  1123,
     1889     513,   740,   728,  1182,  1183,  1237,   744,   412,   438,   111,
     1890     292,   462,   349,   113,   517,    45,    46,  1342,   446,  1469,
     1891      41,    42,   653,    31,   522,   775,   931,   940,   704,   940,
     1892     113,  1124,   216,   653,   534,   113,   536,    77,  1521,  1461,
     1893    1051,     2,   207,     4,     5,     6,     7,   569,   570,  1245,
     1894     571,    34,   775,  1008,  1139,    37,   230,   184,   185,    40,
     1895     572,  1232,  1233,  1516,   443,  1372,    41,    42,   573,  1517,
     1896     216,  1147,   840,   612,   767,   216,  1147,    57,  1573,   579,
     1897     574,   412,   740,   577,   587,   113,   339,   530,    45,    46,
     1898     177,  -441,   609,   585,   610,   653,  1006,  1003,   113,   113,
     1899     113,    45,    46,   330,   412,  1402,    35,    57,    36,  1402,
     1900    1205,  1390,  1391,     8,     9,    10,    11,    12,   111,   595,
     1901     140,   141,   177,   113,   598,    56,  1147,   328,   935,    41,
     1902      42,  1535,   253,   330,   412,  1332,  1078,    -3,   177,  1212,
     1903    1214,  1216,    31,  -113,   647,  -113,  1441,  1003,   481,  -113,
     1904     420,   670,   412,   177,   667,    48,   676,   213,   668,  1154,
     1905     669,   216,  1421,  1422,  -113,  -113,   840,   729,   343,    -3,
     1906      34,   213,   490,   330,   412,   729,   729,   729,   612,   871,
     1907     671,  1107,  1447,  1448,     2,   207,     4,     5,     6,     7,
     1908     672,     2,   207,     4,     5,     6,     7,    37,    77,   184,
     1909     185,    40,   854,   330,   610,   414,  1495,  1496,    41,    42,
     1910    1051,  1485,   579,   229,   412,   673,   777,  1080,   412,   258,
     1911     462,    45,    46,   729,   678,    45,    46,   805,   806,   111,
     1912     113,   140,   141,   696,   186,   690,   220,  1358,   718,   462,
     1913      41,    42,   216,    45,    46,  1360,  1361,  1362,   737,    35,
     1914     177,    36,    48,   958,   719,   610,    35,   653,    36,   537,
     1915     538,   539,    45,    46,   213,   704,   752,   211,   221,   732,
     1916     721,   753,   723,   704,  -239,    69,   797,   798,  1123,   142,
     1917     799,   800,   107,   540,  1158,   541,   935,   542,  1322,   349,
     1918      56,   612,   216,  1397,   759,   113,   113,   113,  1078,   776,
     1919     772,  1170,  1313,  1314,  1315,   130,   530,   131,   132,   133,
     1920    1124,   530,   780,    63,   530,   833,    41,    42,  1302,  1303,
     1921     834,  1305,   837,   848,  1445,   900,   -12,  1309,   893,   737,
     1922    1312,   -13,   242,   245,    70,   892,  1147,  1147,  1147,  1351,
     1923    1353,  1354,  1561,   923,   935,   935,   920,   922,    57,   107,
     1924     948,   699,   653,   653,  1205,    49,   114,   214,   801,   802,
     1925     803,   804,   927,    77,   442,  -418,  -525,   233,   962,    56,
     1926     748,  1123,    37,   969,   175,   176,    40,   971,  1238,   976,
     1927     982,  1208,   400,    41,    42,   401,   984,    49,   402,   983,
     1928     349,   403,   481,   767,  1078,   462,   404,   405,   148,   986,
     1929     406,   998,   987,  1124,    49,   988,  1093,   653,   163,   214,
     1930     653,   989,  1010,   216,  1011,   177,  1012,  1027,   187,  1028,
     1931     408,   210,   195,  1029,    49,   218,  1030,  1031,   228,    48,
     1932      48,  1534,  1032,  1033,  1044,  -406,  -405,  1104,  1105,   113,
     1933     113,   216,    77,   107,   674,  1058,   216,  1103,  1078,  1095,
     1934    1106,  1078,   214,  1444,   349,   653,  1112,   443,  1113,  1114,
     1935     653,   114,  1115,   409,  1121,   775,  1131,  1132,  1133,   114,
     1936     917,  1206,   267,   272,  1123,   992,  1138,  1146,   113,   924,
     1937    1147,  1147,  1143,   926,  1167,  1188,  1189,   675,  1190,  1191,
     1938     653,  1427,  1192,   466,  1207,    70,  1078,  1209,   349,   349,
     1939     349,  1078,   308,   148,  1210,  1218,  1124,   163,  1224,  1222,
     1940    1230,   114,   346,   214,  1205,  1225,   210,   349,    -3,  1486,
     1941     375,  1205,   150,  1235,  1240,  1242,   151,   152,   502,    56,
     1942    1251,  1078,  1246,  1253,   216,  1258,    56,    48,   113,  1255,
     1943    1259,   187,   187,  1080,  1263,  1267,   163,   113,   216,  1270,
     1944    1272,   214,   481,   653,  1274,   935,   214,   267,   653,   481,
     1945    1275,  1276,    48,    48,  1277,    49,   215,  1278,   162,   163,
     1946    1280,   508,   935,  1287,  1205,  1296,   653,   210,   653,  1536,
     1947    1297,   445,   653,  1304,  1333,   653,   107,    48,  1544,    56,
     1948    1307,   349,   374,   653,  1078,   308,   114,   653,  1308,  1078,
     1949    1325,  1310,    77,  1311,  1319,  1339,  1341,    49,   107,    77,
     1950    1347,  1343,   481,  1367,  1348,   272,  1349,  1078,   215,  1078,
     1951     272,   267,   267,  1078,  1355,  1356,  1078,   114,   107,  1357,
     1952     654,  1359,  1365,  1366,  1078,  1368,  1375,   213,  1078,  1394,
     1953    1376,   216,   214,  1379,  1386,   935,   935,  1387,  1315,  1395,
     1954    1396,   308,  1434,  -407,  1405,  1398,  1415,  1416,  1419,  1408,
     1955      70,   215,    77,   308,  1430,  1436,  -294,  1438,  1439,  1440,
     1956    1446,  1455,  1451,     8,     9,    10,    11,    12,  1456,   580,
     1957    1457,  1458,   349,  1370,   148,  1460,  1474,   107,   375,  1465,
     1958     349,  1476,  1478,  1420,  1470,  1472,  1428,   114,  1480,  1483,
     1959     328,   346,    31,  1488,  1490,   611,   629,  1482,  1511,  1489,
     1960    1501,   717,  1515,  1513,   177,  1527,  1101,  1519,  1520,  1542,
     1961     634,   107,   215,   214,   634,  1556,  1543,   114,  1547,  1554,
     1962      34,  1558,  1564,  1571,   443,  1572,  1223,   807,   809,    70,
     1963     214,  1467,   808,   810,  1324,  1522,  1471,   811,  1433,   750,
     1964    1574,   754,   267,  1389,  1257,  1406,    57,  1504,  1229,  1108,
     1965     215,   941,   187,   694,  1110,   215,   375,   695,  1508,   826,
     1966    1508,  1142,   950,   214,  1057,   899,  1493,   964,  1120,  1334,
     1967     267,   742,   308,   308,   972,   816,   267,     0,     0,   634,
     1968       0,    37,   817,   184,   185,    40,   818,     0,     0,     0,
     1969       0,     0,    41,    42,     0,  1508,     0,  1508,     0,     0,
     1970     114,     0,   700,   114,     0,     0,     0,     0,     0,     0,
     1971       0,     0,     0,    57,   107,     0,     0,     0,   698,     0,
     1972     412,     0,     0,     0,   216,     0,   267,    45,    46,     0,
     1973     349,     0,     0,     0,   267,     0,   634,   107,    49,     0,
     1974       0,   215,   745,     0,   107,     0,     0,     0,   114,     0,
     1975     488,     0,  1562,     0,  1219,     0,     0,     0,  1562,     0,
     1976     308,     0,   114,     0,     0,   308,     0,   308,   308,  1562,
     1977     117,     0,     0,  1562,     0,     0,   778,     0,     0,   114,
     1978     346,   177,     0,     0,   214,     0,     0,   349,   349,    70,
     1979       0,   891,     0,     0,     0,     0,    70,   107,     0,     0,
     1980       0,     0,     8,     9,    10,    11,    12,    57,     0,     0,
     1981       0,     0,   214,     0,     0,     0,     0,   214,   160,     0,
     1982       0,     0,   215,     0,   580,   580,    37,     0,   175,   176,
     1983      40,    31,   308,     0,     0,     0,     0,    41,    42,     0,
     1984       0,     0,     0,   634,   346,     0,     0,     0,   629,    70,
     1985       0,     0,   944,     0,   611,     0,   611,     0,   947,    34,
     1986       0,     0,   466,   373,     0,     8,     9,    10,    11,    12,
     1987       0,     0,   215,     0,   634,   259,     0,     0,     0,   634,
     1988       0,   629,     0,   160,     0,   634,     0,     0,   634,   634,
     1989     634,     0,     0,     0,    31,     8,     9,    10,    11,    12,
     1990       0,   777,     0,   412,   216,   214,     0,   634,     0,   267,
     1991      45,    46,     0,     0,     0,     0,   324,     0,     0,   214,
     1992       0,     0,    34,     0,    31,   340,     0,     0,     0,     0,
     1993       0,     0,     0,   127,   127,   127,     0,     0,     0,   508,
     1994       0,   114,   346,   700,     0,   700,     0,     0,     0,    57,
     1995      57,     0,    34,     0,     0,     0,     0,    37,     0,   184,
     1996     185,    40,     0,   114,   958,     0,   610,     0,    41,    42,
     1997       0,     0,    57,    45,    46,   431,     0,     0,     0,   435,
     1998       0,   634,   959,   629,     0,     0,     0,     0,     0,   745,
     1999     745,     0,    57,   215,   186,     0,  1388,     0,     0,     0,
     2000       0,   216,     0,    45,    46,     0,   127,     0,   127,   324,
     2001     457,     0,   214,     0,     0,     0,     0,   114,   346,     0,
     2002       0,   215,   778,   778,     0,     0,   215,     0,     0,     0,
     2003       0,     0,   654,   276,     0,     0,     0,   349,   349,  1061,
     2004       0,   435,     0,     0,   497,    37,    57,   175,   176,    40,
     2005       0,    57,     0,     0,     0,     0,    41,    42,     0,     0,
     2006       0,     0,     0,     0,   580,   531,     0,     0,     0,     0,
     2007       0,     0,   634,     0,   634,     0,  1021,   160,     0,   634,
     2008     346,     0,   377,   611,     0,    57,     0,     0,     0,   127,
     2009       8,     9,    10,    11,    12,   611,     0,   127,     0,   127,
     2010     127,     0,     0,     0,   127,     0,   127,   127,     0,     0,
     2011       0,   596,     0,     0,   215,   602,     0,     0,     0,    31,
     2012       0,     0,     0,     0,     0,     0,     0,     0,   215,     0,
     2013       0,   654,     0,    37,   635,   184,   185,    40,   639,     0,
     2014       0,   340,     0,     0,    41,    42,   308,    34,     0,     0,
     2015       0,     0,    37,     0,     0,  1505,    40,  1509,     0,     0,
     2016       0,     0,   349,    41,    42,     0,     0,     0,   634,     0,
     2017     266,     0,   114,     0,     0,     0,   127,     0,     0,    45,
     2018      46,     0,   700,     0,     0,     0,     0,     0,    57,    43,
     2019     700,   114,  1538,     0,  1540,     0,   324,   324,    45,    46,
     2020       0,     0,     0,   959,   959,   214,     0,     0,   745,     0,
     2021       0,    57,     0,   114,   308,     0,     0,     0,    57,     0,
     2022       0,   215,     0,     0,   457,     0,     0,   457,     0,     0,
     2023     346,     0,  1061,     0,     0,     0,   778,  1569,     0,  1570,
     2024       0,     0,     0,     0,     0,   117,     0,     0,     0,     0,
     2025       0,     0,  1577,  1578,     0,     0,     0,     0,     0,     0,
     2026     125,   128,   129,     0,     0,     0,   346,     0,     0,     0,
     2027     497,    57,   324,     0,   497,     0,     0,     0,     0,     8,
     2028       9,    10,    11,    12,   531,     0,   531,   634,   634,   531,
     2029       0,   324,   531,     0,     0,     0,     0,     0,     0,     0,
     2030       0,     0,     0,   340,     0,     0,     0,   308,    31,     8,
     2031       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2032      19,    20,    21,    22,    23,    24,    25,  -295,     0,    26,
     2033      27,    28,     0,   255,     0,   256,    34,     0,    31,  1300,
     2034       0,    37,     0,   184,   185,    40,     0,   114,   634,     0,
     2035       0,     0,    41,    42,     0,     0,   324,     0,     0,     0,
     2036       0,     0,   959,     0,     0,     0,    34,   828,     0,     0,
     2037     267,    37,     0,   337,   338,    40,     0,  -295,   609,     0,
     2038     610,     0,    41,    42,     0,   214,     0,    45,    46,     0,
     2039       8,     9,    10,    11,    12,     0,     0,     0,   869,     0,
     2040       0,     0,     0,   602,    66,   118,     0,   346,   643,   878,
     2041     339,     0,     0,     0,   215,     0,   397,    45,    46,    31,
     2042       0,     0,     0,     0,     0,     0,   416,   417,     0,     0,
     2043       0,   421,     0,   423,   424,     0,    66,   544,   545,   546,
     2044     547,   548,   549,   550,   551,   552,   553,    34,     0,   272,
     2045     114,     0,    37,   161,   184,   185,    40,    37,     0,   184,
     2046     185,    40,     0,    41,    42,   340,     0,   114,    41,    42,
     2047       0,   554,   308,   222,    75,     0,     0,     0,     0,     0,
     2048       0,     0,   214,     0,     0,     0,     0,   457,   634,   266,
     2049     127,   127,   114,     0,  1532,     0,   412,     0,    45,    46,
     2050       0,     0,     0,    45,    46,     0,    75,     0,     0,     0,
     2051     260,     0,     0,     0,     0,     0,     0,   497,     0,   127,
     2052       0,     0,   127,   127,     0,   127,     0,   127,   127,     0,
     2053       0,     0,   127,   127,     0,     0,     0,   634,   634,     0,
     2054       0,   340,     0,   223,     0,     0,   272,     0,     0,     0,
     2055       0,   308,   329,     0,     0,     0,     0,     0,     0,     0,
     2056     260,   351,     0,     0,     8,     9,    10,    11,    12,     0,
    20242057       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2025        0,     0,   637,     0,   346,     0,   637,     0,     0,   260,
    2026      779,  1360,   944,   945,   586,     0,     0,     0,   947,  1362,
    2027     1363,  1364,     0,     8,     9,    10,    11,    12,     0,    75,
     2058       0,     0,     0,     0,     0,   114,     8,     9,    10,    11,
     2059      12,   407,     0,    31,   215,     0,     0,     0,  1017,     0,
     2060       0,     0,     0,   828,     0,     0,   425,     0,     0,   430,
     2061     432,   127,     0,     0,   161,    31,   127,   127,     0,     0,
     2062       0,    34,   127,     0,     0,     0,    37,     0,   184,   185,
     2063      40,   354,     0,     0,     0,   449,     0,    41,    42,   452,
     2064       0,   453,     0,    34,     0,   267,     0,     0,    37,     0,
     2065     468,     0,    40,     0,     0,     0,    66,     0,     0,    41,
     2066      42,   482,   634,   698,     0,   412,     0,     0,     0,     0,
     2067       0,   489,    45,    46,     0,     0,     0,     0,     0,   432,
     2068       0,     0,     0,     0,     0,   744,     0,     0,   114,     0,
     2069       0,   215,   828,     0,    45,    46,   457,     0,     0,     0,
     2070       0,     0,     0,     0,     0,   450,     0,     0,     0,     0,
     2071       0,   114,     0,     0,     0,   457,     0,     0,   114,     0,
     2072     114,     0,   114,     0,     0,     0,    75,     0,     0,     0,
     2073       0,    75,     0,     0,     0,     0,   497,  1125,   324,     0,
     2074       0,     0,     0,     0,     0,     0,   260,     0,     0,     0,
     2075     603,     0,  1533,     0,     0,     0,   631,   114,     0,   114,
     2076       0,     0,     0,     0,     0,     0,     0,     0,     0,   636,
     2077       0,   114,     0,   636,     0,     0,   260,  1533,  1533,     0,
     2078       0,     0,     0,     0,     0,     0,     0,   308,     0,     0,
     2079     869,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2080       0,     0,  1533,     0,     0,     0,     0,     0,     0,     0,
     2081       0,     0,     0,     0,     0,     0,     0,   821,   822,     0,
     2082       0,     0,     0,   482,     0,     0,   223,     0,     0,     0,
     2083       0,     0,     0,     0,     0,     0,     0,     0,   351,     0,
     2084       0,    78,     0,   482,     0,     0,   855,     0,     0,   858,
     2085     859,   482,   862,     0,   864,   865,     0,     0,     0,   866,
     2086     867,     8,     9,    10,    11,    12,     0,     0,     0,     0,
     2087       0,   457,   828,    78,     0,     0,     0,   724,     0,     0,
     2088     432,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2089      31,     0,     0,    75,     0,   738,     0,    66,     0,     0,
     2090       0,     0,     0,     0,     0,   432,     0,     0,   354,   432,
     2091     224,     0,     0,    75,     0,     0,     0,     0,    34,     0,
     2092       0,    75,     0,    37,     0,   184,   185,    40,     0,     0,
     2093       0,     0,     0,     0,    41,    42,     0,     0,   260,   351,
     2094       0,     0,     0,   942,   943,     0,     0,   354,  1034,   945,
     2095       0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
     2096    1532,     0,   412,     0,     0,   354,     0,    75,     0,    45,
     2097      46,     0,     0,     0,     0,     0,     0,     0,   283,   284,
     2098      31,   285,     0,     0,   819,     0,     0,     0,     0,     0,
     2099       0,   340,     0,     0,     0,     0,     0,     0,   356,     0,
     2100       0,     0,   636,   831,     0,     0,   127,   286,    34,   354,
     2101       0,     0,     0,   287,     0,   850,  1125,   288,     0,     0,
     2102     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2103       0,     0,     0,   603,     0,   295,     0,     0,   603,     0,
     2104       0,     0,     0,     0,   636,     0,     0,   351,   351,   351,
     2105     296,     0,   380,     0,     0,     0,     0,     0,     0,   345,
     2106      46,   298,   299,   300,   301,     0,   351,     0,     0,     0,
     2107       0,     0,     0,   354,     0,     0,     0,     0,     0,     0,
     2108       0,     0,     0,     0,   724,     0,     0,     0,     0,     0,
     2109       0,     0,     0,    78,     0,   482,     0,     0,    78,     0,
     2110     260,   738,     0,     0,   937,     0,     0,     0,     0,  1125,
     2111       0,     0,     0,     0,     0,     0,     0,   354,   354,   354,
    20282112       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2029      346,     0,     0,     0,   354,     0,     0,     0,     0,    75,
    2030        0,     0,    31,     0,     0,     0,   482,    75,     0,     0,
    2031      214,   635,   635,     0,     0,     0,     0,  1399,   215,     0,
    2032        0,   351,     0,     0,     0,     0,   482,     0,     0,     0,
    2033       34,   308,   215,   354,   482,    37,     0,   184,   185,    40,
    2034        0,     0,     0,     0,     0,     0,    41,    42,     0,   730,
    2035      730,   354,     0,    75,     0,     0,     0,     0,     0,     0,
    2036      725,     0,     0,   432,     0,     0,     0,     0,     0,     0,
    2037        0,   114,   635,   699,     0,   412,   414,     0,   739,     0,
    2038       66,     0,    45,    46,     0,    78,   961,     0,   432,     0,
    2039        0,     0,   432,     0,   267,   354,     0,     0,     0,     0,
    2040        0,     0,     0,   488,     0,     0,     0,   730,   730,     0,
    2041        0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
    2042        0,   260,   351,     0,     0,     0,   215,     0,     0,     0,
    2043        0,   346,     0,     0,     0,     0,     8,     9,    10,    11,
     2113       0,   127,     0,     0,     0,     0,   354,   482,     0,     0,
     2114     351,     0,     0,     0,     0,     0,     0,     0,     0,   963,
     2115       0,     0,   432,     0,   354,     0,     0,     0,     0,     0,
     2116       0,     0,     0,     0,     0,    75,     0,     0,     0,     0,
     2117       0,   354,     0,     0,     0,     0,   260,   738,     0,     0,
     2118       0,     0,   991,     0,     0,     0,     0,     0,     0,     0,
     2119       0,     0,     0,   224,     0,     0,     0,     0,     0,     0,
     2120       0,     0,     0,     0,     0,     0,     0,    75,     0,     0,
     2121     354,     0,  1125,     0,     0,     0,     0,     0,     0,   724,
     2122       0,     0,     0,     0,     0,     0,     0,     0,     0,   724,
     2123       0,   351,     0,   636,     0,     0,  1024,     0,   636,   831,
     2124       0,     0,     0,   724,  1507,     0,  1507,   354,     0,     0,
     2125       0,     0,     0,  1035,     0,     0,     0,     0,     0,     0,
     2126      78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2127       0,     0,     0,     0,     0,   356,     0,     0,     0,     0,
     2128      78,  1507,     0,  1507,     0,     0,     0,     0,    78,   354,
     2129       0,     0,     0,     0,     0,     0,     0,     0,     0,   354,
     2130       0,   354,     0,     0,     0,    66,   223,     0,     0,   354,
     2131       0,   324,     0,   354,   356,     0,     0,     0,     0,     0,
     2132       0,     0,     0,     0,     0,     0,    80,   636,     0,     0,
     2133       0,     0,   356,  1234,    78,   283,   284,     0,   285,     0,
     2134       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2135      18,    19,    20,    21,    22,    23,    24,    25,    80,     0,
     2136      26,    27,    28,  1117,   286,     0,     0,     0,     0,    31,
     2137     287,   432,   118,     0,   288,    75,   356,   289,   290,   291,
     2138     292,    41,    42,     0,   293,   294,     0,     0,     0,   351,
     2139       0,     0,   295,     0,     0,   225,    87,    34,     0,     0,
     2140       0,     0,    37,     0,    38,    39,    40,   296,     0,   380,
     2141       0,     0,   381,    41,    42,     0,    45,    46,   298,   299,
     2142     300,   301,     0,     0,     0,   603,     0,     0,    87,     0,
     2143       0,     0,     0,     0,     0,     0,     0,     0,   430,    43,
     2144     356,   158,     0,   724,   724,     0,   351,   351,    45,    46,
     2145       0,     0,     0,     0,     0,     0,     0,     0,  1323,   354,
     2146       0,     0,     0,     0,     0,   226,  1204,     0,     0,     0,
     2147       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2148       0,     0,     0,   357,   356,   356,   356,     0,     0,     0,
     2149       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2150       0,   724,   724,   356,     0,     0,     0,   636,     0,     0,
     2151       0,     0,     0,   354,   354,     0,   354,   354,     0,     0,
     2152       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2153       0,     0,    78,     0,     0,     0,    75,     0,   356,     0,
     2154       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2155       0,     0,     0,   364,     0,     0,   283,   284,     0,   285,
     2156       0,     0,     0,     0,     0,     0,   738,     0,     0,     0,
     2157       0,   354,   354,     0,    78,     0,     0,   356,    80,     0,
     2158       0,     0,     0,    80,     0,   286,     0,     0,     0,     0,
     2159       0,   649,     0,   140,   141,   288,     0,     0,   289,   650,
     2160     291,   292,    41,    42,     0,   293,   294,     0,     0,  1301,
     2161       0,     0,     0,   295,   356,     0,     0,     0,     0,     0,
     2162       0,     0,     0,     0,     0,     0,   260,     0,   296,     0,
     2163     651,    66,   652,   381,     0,     0,   354,    45,    46,   298,
     2164     299,   300,   301,     0,     0,   724,     0,   738,    87,     0,
     2165       0,   118,     0,    87,     0,     0,   356,     0,     0,     0,
     2166       0,     0,     0,     0,     0,     0,   356,     0,   356,     0,
     2167       0,     0,     0,   224,     0,     0,   356,   724,   225,   223,
     2168     356,     0,     0,     0,     0,   724,   724,   724,     0,     0,
     2169       0,     0,     0,     0,     0,     0,   351,   351,     0,     0,
     2170       0,    75,     0,     0,     0,     0,     0,     0,     0,     0,
     2171    1204,     0,     0,     0,     0,   354,     0,   354,     0,     0,
     2172       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2173       0,     0,     0,   724,     0,     0,     0,     0,     0,     0,
     2174       0,     0,    78,     0,   118,    80,     0,   354,   226,     0,
     2175       0,     0,     0,     0,     0,   354,   354,   354,     0,     0,
     2176     357,     0,     0,     0,     0,    80,   354,   354,     0,     0,
     2177       0,     0,     0,    80,     0,     0,     0,     0,     0,     0,
     2178      75,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2179      17,    18,    19,    20,    21,    22,    23,    24,    25,   357,
     2180       0,     0,     0,   354,     0,     0,     0,     0,     0,     0,
     2181      31,     0,     0,     0,     0,    87,     0,   357,     0,    80,
     2182       0,   351,     0,     0,     0,     0,   356,     0,     0,     0,
     2183     364,     0,     0,     0,     0,    87,     0,     0,    34,     0,
     2184       0,     0,     0,    87,     0,     0,     0,   118,     0,     0,
     2185       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2186       0,   357,     0,     0,     0,     0,     0,     0,     0,   364,
     2187    1204,     0,     0,     0,     0,     0,     0,  1204,     0,     0,
     2188     356,   356,     0,   356,   356,     0,     0,   364,     0,    87,
     2189       0,   354,     0,     0,     0,     0,     0,     0,     0,     0,
     2190       0,     0,     0,    78,     0,     8,     9,    10,    11,    12,
     2191      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2192      23,    24,    25,  -295,     0,   357,     0,     0,     0,     0,
     2193    1204,   364,     0,     0,    31,     0,     0,  1557,   356,   356,
     2194      75,     0,     0,     0,     0,     0,     0,    75,     0,     0,
     2195       0,     0,     0,     0,   168,     0,   173,     0,     0,   179,
     2196     180,   181,    34,   183,     0,     0,     0,     0,     0,   357,
     2197     357,   357,     0,  -295,     0,     0,     0,     0,   234,     0,
     2198       0,     0,     0,     0,     0,     0,     0,     0,   357,     0,
     2199     249,   250,     0,     0,     0,   364,     0,     0,     0,     0,
     2200      75,     0,     0,   356,     0,     0,   357,     0,     0,     0,
     2201       0,     0,     0,     0,     0,     0,     0,    80,     0,     0,
     2202       0,     0,     0,   357,     0,     0,     0,     0,     0,     0,
     2203       0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2204     364,   364,     0,     0,     0,     0,   224,     0,     0,     0,
     2205       0,     0,     0,     0,     0,     0,     0,     0,   364,    80,
     2206       0,     0,   357,     0,     0,     0,     0,     0,    78,     0,
     2207       0,     0,     0,     0,     0,     0,   364,     0,     0,     0,
     2208       0,     0,   356,     0,   356,     0,     0,    87,     0,     0,
     2209       0,     0,     0,   364,     0,     0,     0,     0,     0,   357,
     2210       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,     0,     0,   356,     0,     0,     0,     0,     0,
     2212       0,     0,   356,   356,   356,     0,     0,     0,     0,    87,
     2213       0,     0,   364,   356,   356,     0,     0,     0,     0,     0,
     2214       0,   357,     0,     0,     0,     0,     0,    78,     0,     0,
     2215       0,   357,     0,   357,     0,     0,     0,     0,   225,     0,
     2216       0,   357,     0,     0,     0,   357,     0,     0,     0,   364,
     2217     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2218       0,   476,     2,   207,     4,     5,     6,     7,     8,     9,
     2219      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2220      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2221      28,   364,     0,     0,     0,     0,     0,    31,     0,     0,
     2222       0,   364,     0,   364,     0,     0,     0,    80,   226,     0,
     2223       0,   364,     0,     0,     0,   364,     0,     0,     0,     0,
     2224       0,     0,     0,     0,     0,    34,   600,    35,   608,    36,
     2225       0,     0,    38,    39,     0,     0,     0,     0,   356,   632,
     2226     633,     0,     0,     0,     0,     0,     0,     0,     2,   207,
     2227       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2228      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2229      24,    25,    -3,     0,    26,    27,    28,    87,     0,     0,
     2230       0,   283,   284,    31,   285,     0,     0,    78,     0,     0,
     2231       0,   357,     0,     0,    78,     0,     0,     0,     0,     0,
     2232       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2233     286,    34,     0,    35,     0,    36,   287,     0,    38,    39,
     2234     288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
     2235     293,   294,     0,     0,     0,     0,     0,     0,   295,     0,
     2236       0,     0,     0,     0,     0,   357,   357,    78,   357,   357,
     2237       0,     0,     0,   296,     0,   344,     0,     0,     0,     0,
     2238     781,   364,   345,    46,   298,   299,   300,   301,    80,     0,
     2239       0,     0,     2,   207,     4,     5,     6,     7,     8,     9,
     2240      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2241      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2242      28,     0,     0,   357,   357,   283,   284,    31,   285,     0,
     2243       0,   212,     0,     0,     0,   364,   364,     0,   364,   364,
     2244       0,   232,     0,   236,     0,   238,     0,     0,     0,     0,
     2245       0,     0,   247,     0,   286,    34,     0,    35,    87,    36,
     2246     287,     0,    38,    39,   288,     0,     0,   289,   290,   291,
     2247     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2248       0,     0,   295,   212,     0,   236,   238,   247,   357,     0,
     2249       0,     0,     0,   364,   364,     0,     0,   296,     0,   930,
     2250     283,   284,     0,   285,   781,     0,   345,    46,   298,   299,
     2251     300,   301,     0,     0,     0,     0,     0,     0,     0,     0,
     2252       0,     0,     0,     0,     0,     0,   212,     0,     0,   286,
     2253       0,   225,     0,     0,     0,   287,     0,     0,     0,   288,
     2254       0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2255     294,     0,     0,    80,     0,     0,     0,   295,   364,     0,
     2256       0,     0,     0,     0,     0,     0,     0,   357,     0,   357,
     2257       0,     0,   296,     0,   380,     0,     0,     0,     0,     0,
     2258     812,    45,    46,   298,   299,   300,   301,   212,     0,   236,
     2259     238,   247,     0,     0,     0,     0,     0,     0,     0,   357,
     2260       0,   226,     0,     0,     0,     0,     0,   357,   357,   357,
     2261       0,     0,     0,     0,     0,     0,     0,     0,   357,   357,
     2262       0,     0,     0,    87,     0,   212,   951,     0,   952,     0,
     2263     212,     0,    80,     0,     0,   955,   956,   364,     0,   364,
     2264     961,     0,     0,     0,     0,   506,     0,     0,     0,     0,
     2265       0,     0,   966,     0,     0,   357,     0,   970,     0,     0,
     2266       0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2267       0,     0,     0,     0,     0,     0,     0,   364,   364,   364,
     2268       0,     0,     0,   999,     0,     0,     0,     0,   364,   364,
     2269     166,     0,     0,     0,   212,   283,   284,     0,   285,     0,
     2270       0,     0,    87,     0,     0,     0,     0,   219,     0,     0,
     2271       0,     0,     0,     0,     0,     0,   212,     0,     0,     0,
     2272       0,   236,   238,     0,   286,   364,     0,     0,     0,   247,
     2273     287,     0,     0,     0,   288,     0,     0,   289,   290,   291,
     2274     292,    41,    42,   357,   293,   294,     0,     0,     0,     0,
     2275       0,     0,   295,     0,     0,   166,     0,     0,     0,   273,
     2276       0,     0,     0,     0,     0,     0,     0,   296,     0,   380,
     2277       0,     0,   212,     0,   781,     0,    45,    46,   298,   299,
     2278     300,   301,     0,     0,  1045,  1046,  1047,  1048,   166,  1050,
     2279     212,     0,    80,   283,   284,   212,   285,   212,   370,    80,
     2280       0,     0,   376,     0,     0,  1094,     0,     0,     0,     0,
     2281       0,     0,     0,   364,   212,     0,     0,   212,   212,  1100,
     2282       0,     0,   286,     0,     0,     0,     0,     0,   287,     0,
     2283       0,     0,   288,   212,     0,   289,   290,   291,   292,    41,
     2284      42,     0,   293,   294,     0,     0,     0,   212,     0,     0,
     2285     295,   166,    80,     0,   212,     0,     0,     0,  1116,     0,
     2286       0,     0,    87,   219,     0,   296,     0,   380,     0,    87,
     2287     992,     0,     0,     0,    45,    46,   298,   299,   300,   301,
     2288       0,   166,   463,     0,     0,     0,     0,     0,     0,     0,
     2289       0,     0,     0,     0,     0,     0,     0,     0,  1144,     0,
     2290       0,     0,     0,     0,     0,  1152,   376,     0,     0,     0,
     2291    1156,     0,     0,   166,     0,  1160,     0,  1161,     0,     0,
     2292       0,  1163,    87,  1164,  1165,     0,     0,  1168,   283,   284,
     2293       0,   285,     0,     0,     0,     0,  1180,   463,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
     2295       0,     0,     0,     0,  1195,  1196,     0,   286,     0,     0,
     2296       0,     0,     0,   287,     0,     0,     0,   288,   212,     0,
     2297     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2298       0,  1226,     0,     0,  1228,   295,     0,   606,     0,     0,
     2299       0,     0,   630,     0,     0,     0,   212,   157,     0,     0,
     2300     296,   212,   380,     0,     0,     0,     0,     0,     0,    45,
     2301      46,   298,   299,   300,   301,     0,     0,     0,     0,     0,
     2302       0,     0,     0,  1244,     0,     0,     0,     0,     0,  1248,
     2303    1249,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2304       0,  1260,     0,     0,     0,   252,  1264,     0,     0,  1268,
     2305       0,  1269,     0,     0,  1271,   257,     0,     0,     0,     0,
     2306       0,     0,     0,     0,     0,     0,     0,  1279,   166,   166,
     2307       0,     0,     0,     0,     0,   370,     0,     0,     0,     0,
     2308    1286,     0,  1288,  1289,  1290,  1291,     0,     0,     0,   212,
     2309       0,     0,     0,     0,     0,     0,   463,     0,  1298,   463,
     2310    1299,     0,     0,   212,   173,     0,     0,     0,     0,     0,
     2311       0,   157,     0,     0,     0,     0,     0,     0,     0,     0,
     2312       0,     0,     0,   506,     0,   387,     0,     0,     0,     0,
     2313       0,     0,   741,  1327,  1328,     0,     0,     0,     0,     0,
     2314       0,     0,     0,     0,   166,     0,     0,     0,   419,     0,
     2315       0,     0,     0,     0,     0,     0,   463,     0,   463,     0,
     2316       0,   463,   434,   166,   463,     0,     0,     0,     0,     0,
     2317       0,   439,     0,     0,     0,     0,   370,     0,     0,     0,
     2318       0,   447,     0,     0,   212,  1363,  1364,     0,     0,     0,
     2319       0,     0,     0,     0,     0,  1374,   212,     0,     0,     0,
     2320       0,     0,     0,     0,     0,     0,   473,     0,     0,     0,
     2321       0,   483,     0,     0,     0,   212,     0,     0,     0,     0,
     2322       0,     0,     0,     0,   491,     0,     0,     0,   166,     0,
     2323     501,     0,   505,     0,     0,     0,     0,     0,     0,     0,
     2324     370,     0,     0,     0,   836,     0,     0,  1407,     0,     0,
     2325     535,     0,     0,     0,     0,     0,     0,     0,     0,  1411,
     2326       0,  1412,  1413,  1414,     0,     0,     0,     0,     0,     0,
     2327     606,     0,     0,  1418,     0,   606,     0,     0,     0,     0,
     2328       0,     0,  1429,     0,   370,   370,   370,     0,     0,     0,
     2329       0,     0,   594,     0,     0,     0,     0,   599,  1442,     0,
     2330       0,     0,   212,   370,     0,     0,     0,     8,     9,    10,
     2331      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2332      21,    22,    23,    24,    25,  -296,   644,     0,   212,     0,
     2333     645,   646,     0,   648,     0,     0,    31,     0,   741,     0,
     2334     660,   661,     0,   662,   663,     0,   664,     0,   665,     0,
     2335       0,     0,     0,     0,  1491,  1492,   212,     0,     0,   463,
     2336       0,     0,     0,     0,    34,   594,     0,  1497,     0,     0,
     2337       0,     0,     0,   680,  1497,  -296,     0,   370,     0,   960,
     2338       0,     0,     0,     0,     0,     0,     0,  1178,     0,   212,
     2339       8,     9,    10,    11,    12,     0,     0,     0,   691,     0,
     2340     212,     0,     0,     0,     0,     0,     0,  1531,     0,   697,
     2341       0,  1537,     0,     0,   741,     0,     0,   283,   284,    31,
     2342     285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2343       0,     0,   733,     0,     0,     0,     0,     0,   736,     0,
     2344    1559,     0,  1560,   473,     0,     0,   286,    34,     0,     0,
     2345       0,     0,   287,     0,     0,     0,   288,     0,     0,   289,
     2346     290,   291,   292,    41,    42,     0,   293,   294,   370,     0,
     2347    1575,  1576,   630,     0,   295,     0,   370,     0,  1579,  1580,
     2348     773,     0,   212,     0,     0,     0,     0,     0,     0,   296,
     2349       0,   380,     0,     0,   788,     0,     0,     0,  1179,    46,
     2350     298,   299,   300,   301,     0,     0,     0,     8,     9,    10,
     2351      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2352      21,    22,    23,    24,    25,  -295,     0,    26,    27,    28,
     2353     322,     0,   815,     0,     0,     0,    31,     0,     0,     0,
     2354     347,   825,     0,     0,     0,     0,     0,     0,   827,     0,
     2355       0,     0,   383,   383,   835,     0,     0,     0,     0,     0,
     2356       0,     0,     0,   849,    34,     0,     0,     0,   463,   212,
     2357       0,    38,    39,     0,     0,  -295,     0,     0,     0,     0,
     2358       0,     0,     0,     0,     0,     0,     0,   463,     0,   283,
     2359     284,     0,   285,     0,     0,     0,     0,     0,     0,     0,
     2360       0,     0,     0,     0,   889,     0,   643,     0,   339,     0,
     2361     166,     0,     0,     0,     0,    45,    46,     0,   286,     0,
     2362       0,     0,     0,   322,   287,     0,   370,     0,   288,     0,
     2363       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2364     835,     0,     0,     0,     0,     0,   295,   487,     0,     0,
     2365       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2366       0,   296,   606,   380,     0,     0,   212,     0,     0,     0,
     2367     734,    46,   298,   299,   300,   301,     0,     0,     0,     0,
     2368       0,     0,     0,   370,   370,     0,     0,     0,     0,     0,
     2369       0,     0,     0,     0,     0,   252,     0,     0,     0,     0,
     2370       0,     0,     0,     0,     0,   967,   968,     0,     0,     0,
     2371       0,     0,     0,     0,     0,     0,     0,     0,     0,   985,
     2372       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2373       0,     0,     0,     0,     0,     0,  1000,     0,  1001,     0,
     2374       0,     0,  1005,   463,     0,     0,     0,     0,     0,     0,
     2375       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,     0,     0,     0,   383,     0,   206,     2,   207,     4,
     2377       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2378      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2379      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2380       0,     0,    31,   741,     0,     0,     0,  1039,     0,     0,
     2381       0,     0,     0,     0,  1040,     0,     0,     0,     0,     0,
     2382       0,     0,   342,   365,     0,     0,     0,  1042,     0,  1043,
     2383      34,     0,    35,     0,    36,    37,     0,   208,    39,    40,
     2384       0,     0,     0,  1055,     0,   219,    41,    42,     0,     0,
     2385    1059,     0,     0,     0,     0,     0,   415,     0,     0,     0,
     2386       0,     0,  1097,   415,     0,  1098,   735,     0,     0,     0,
     2387       0,     0,    43,     0,   209,     0,     0,     0,     0,     0,
     2388       0,    45,    46,   599,   741,     0,     8,     9,    10,    11,
    20442389      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2045       22,    23,    24,    25,   224,  1160,    26,    27,    28,     0,
    2046      354,     0,     0,     0,     0,    31,     0,     0,   821,     0,
    2047        0,     0,  1172,   272,   114,     0,     0,     0,     0,     0,
    2048        0,     0,     0,     0,     0,     0,   637,   833,     0,     0,
    2049        0,   114,     0,    34,     0,     0,   308,     0,   111,   852,
    2050       38,    39,    80,   214,   354,   354,   354,     0,     0,    41,
    2051       42,     0,   635,     0,     0,     0,   114,   604,     0,     0,
    2052        0,     0,   604,   354,     0,     0,     0,     0,   637,     0,
    2053        0,   351,   351,   351,    80,     0,     0,     0,    44,     0,
    2054        0,   354,   356,     0,     0,    45,    46,     0,     0,  1240,
    2055      351,  1334,    75,     0,     0,     0,     0,     0,   354,     0,
    2056        0,   635,   635,     0,     0,     0,     0,     0,   725,     0,
    2057      272,   225,     0,     0,     0,   308,     0,     0,     0,   482,
    2058        0,     0,     0,   730,   260,   739,     0,     0,   939,     0,
    2059        0,   730,   730,   730,    75,     0,     0,   354,     8,     9,
    2060       10,    11,    12,     0,     0,     0,     0,     0,     0,   114,
    2061        0,     0,     0,     0,     0,     0,     0,     0,     0,   215,
    2062        0,   482,     0,     0,   351,     0,     0,    31,     0,     0,
    2063        0,     0,     0,   965,   354,     0,   432,    78,     0,   730,
    2064        0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
    2065        0,     0,     0,  1236,     0,    34,     0,     0,     0,   357,
    2066      260,   739,     0,     0,     0,     0,   993,     0,     0,   267,
    2067        0,     0,     0,     0,     0,     0,     0,   354,     0,     0,
    2068        0,     0,     0,   214,     0,     0,   635,   354,     0,   354,
    2069        0,     0,     0,     0,   223,     0,     0,   354,   960,     0,
    2070      611,   354,     0,     0,   725,     0,     0,    45,    46,     0,
    2071        0,     0,   114,     0,   725,     0,   351,     0,   637,     0,
    2072        0,  1026,     0,   637,   833,     0,     0,     0,   725,     0,
    2073        0,     0,     0,     0,     0,   114,     0,   224,  1037,     0,
    2074        0,     0,   114,     0,   114,     0,   114,     0,     0,     0,
    2075        0,     0,     0,     0,    80,     0,    57,    57,     0,    80,
    2076        0,     0,     0,    75,     0,     0,     0,     0,     0,     0,
    2077        0,     8,     9,    10,    11,    12,  1535,     0,  1325,     0,
    2078      214,   114,     0,   114,     0,     0,     0,     0,    57,     0,
    2079       66,     0,     0,     0,     0,   114,     0,     0,     0,   215,
    2080       31,  1535,  1535,     0,    78,     0,     0,     0,     0,     0,
    2081        0,   308,   637,     0,     0,     0,     0,     0,     0,   356,
    2082        0,     0,    57,     0,    78,    57,  1535,     0,    34,     0,
    2083        0,     0,    78,    37,     0,   184,   185,    40,     0,     0,
    2084        0,     0,     0,     0,    41,    42,     0,   354,  1119,     0,
    2085        0,     0,     0,     0,   225,     0,   432,   118,   356,     0,
    2086        0,    87,     0,     0,     0,     0,     0,     0,     0,     0,
    2087        0,  1534,     0,   412,   351,     0,   356,     0,    78,     0,
    2088       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2089        0,     0,     0,    87,     0,     0,   215,     0,     0,     0,
    2090        0,   354,   354,     0,   354,   354,     0,     0,     0,     0,
    2091      604,     0,     0,   349,     0,     0,     0,     0,     0,     0,
    2092      356,    80,     0,   430,    75,     0,     0,     0,   725,   725,
    2093      226,   351,   351,     0,     0,     0,   357,     0,     0,     0,
    2094     1036,    80,     0,     8,     9,    10,    11,    12,     0,    80,
    2095        0,  1206,     0,     0,     0,     0,     0,     0,     0,   354,
    2096      354,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2097      283,   284,    31,   285,     0,   357,     0,     0,    57,     0,
    2098        0,     0,     0,     0,     0,   356,   725,   725,     0,     0,
    2099        0,     0,   637,   357,     0,    80,     0,     0,     0,   286,
    2100       34,     0,     0,     0,     0,   287,     0,     0,    57,   288,
    2101        0,     0,   289,   290,   291,   292,    41,    42,   364,   293,
    2102      294,     0,     0,     0,   354,     0,     0,   295,     0,   356,
    2103      356,   356,     0,     0,     0,     0,     0,   357,     0,     0,
    2104        0,     0,     0,   296,     0,   380,     0,     0,   356,     0,
    2105        0,   739,   345,    46,   298,   299,   300,   301,     0,     0,
    2106        0,     0,     0,     0,     0,     0,   356,   223,     0,     0,
    2107        0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
    2108        0,     0,     0,   356,     0,     0,     0,     0,     0,    75,
    2109        0,     0,     0,     0,  1303,     0,     0,     0,     0,     0,
    2110        0,     0,   357,   354,     0,   354,     0,     0,     0,     0,
    2111        0,   260,     0,    87,     0,     0,    66,     0,    87,    78,
    2112        0,     0,   356,     8,     9,    10,    11,    12,     0,     0,
    2113      725,     0,   739,     0,     0,   354,   118,     0,     0,     0,
    2114        0,     0,     0,   354,   354,   354,   357,   357,   357,     0,
    2115        0,     0,    31,     0,   354,   354,     0,     0,     0,   356,
    2116        0,     0,   725,     0,     0,   357,     0,     0,    75,     0,
    2117      725,   725,   725,     0,     0,     0,     0,     0,     0,     0,
    2118       34,   351,   351,   357,     0,    37,     0,   184,   185,    40,
    2119      349,   354,     0,     0,    80,  1206,    41,    42,     0,     0,
    2120      357,     0,   356,     0,     0,     0,     0,     0,     0,     0,
    2121        0,     0,   356,   226,   356,     0,     0,     0,   725,   224,
    2122        0,     0,   356,   186,     0,     0,   356,     0,     0,   118,
    2123        0,     0,    45,    46,     0,     0,    80,     0,     0,   357,
    2124        0,     0,     0,     0,     0,     0,     0,     0,     0,    57,
    2125        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2126       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2127        0,     0,    26,    27,    28,     0,   357,     0,     0,   354,
    2128       87,    31,     0,     0,     0,     0,     0,     0,    78,     0,
    2129        0,   349,     0,     0,     0,   364,     0,     0,     0,     0,
    2130       87,     0,     0,     0,     0,     0,   351,     0,    87,    34,
    2131        0,     0,     0,     0,   111,     0,    38,    39,     0,   357,
    2132        0,     0,     0,     0,     0,    41,    42,     0,    75,   357,
    2133        0,   357,   118,     0,   364,    75,   225,     0,     0,   357,
    2134        0,     0,     0,   357,   168,     0,   173,     0,     0,   179,
    2135      180,   181,   364,   183,    87,  1206,   349,     0,     0,     0,
    2136        0,     0,  1206,     0,     0,     0,     0,     0,   234,     0,
    2137        0,     0,   356,     0,     0,     0,     0,     0,     0,     0,
    2138      249,   250,     0,     0,     0,     0,     0,     0,    75,     0,
    2139        0,     8,     9,    10,    11,    12,   364,     0,     0,     0,
    2140      349,   349,   349,     0,     0,    80,     0,     0,     0,     0,
    2141        0,     0,     0,     0,     0,  1206,     0,     0,     0,   349,
    2142       31,     0,  1559,     0,     0,     0,   356,   356,     0,   356,
    2143      356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2144        0,     0,     0,     0,     0,     0,     0,     0,    34,    78,
    2145        0,     0,     0,    37,     0,   184,   185,    40,     0,     0,
    2146        0,   364,     0,     0,    41,    42,     8,     9,    10,    11,
    2147       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2148       22,    23,    24,    25,   356,   356,    26,    27,    28,   357,
    2149        0,   266,     0,   349,     0,    31,     0,     0,     0,     0,
    2150       45,    46,     0,     0,     0,   364,   364,   364,     0,     0,
     2390      22,    23,    24,    25,     0,   769,    26,    27,    28,     0,
     2391       0,     0,     0,     0,     0,    31,   455,     0,   782,     0,
     2392       0,     0,   212,   769,     0,     0,   769,     0,     0,     0,
     2393       0,     0,     0,   370,   370,   415,     0,   792,   793,     0,
     2394       0,     0,   219,    34,     0,     0,     0,     0,     0,     0,
     2395      38,    39,     0,     0,     0,     0,     0,     0,     0,     0,
     2396     814,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2397     823,     0,  1162,     0,     0,     0,     0,   347,     0,     0,
     2398       0,     0,   782,     0,     0,     0,     0,   456,     0,     0,
     2399     415,   711,     0,     0,    45,    46,     0,     0,   415,   590,
     2400       0,   415,   593,     0,   283,   284,     0,   285,     0,     0,
     2401       0,     0,   365,     0,     0,     0,   622,     0,     0,     0,
     2402       0,     0,     0,     0,     0,     0,     0,     0,     0,   535,
     2403       0,   888,     0,   286,     0,   640,  1227,     0,   342,   649,
     2404     383,     0,     0,   288,     0,     0,   289,   290,   291,   292,
     2405      41,    42,     0,   293,   294,     0,     0,     0,   370,     0,
     2406       0,   295,     0,     0,     0,   415,  1241,     0,     0,   415,
     2407       0,  1243,     0,     0,     0,     0,   296,     0,   785,  1247,
     2408     347,     0,     0,     0,     0,    45,    46,   298,   299,   300,
     2409     301,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2410     365,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2411    1273,     0,     0,     0,     0,     0,   463,     0,   463,     0,
     2412       0,     0,  1281,   415,     0,  1282,     0,  1283,     0,     0,
    21512413       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2152        0,     0,     0,    34,   364,     0,     0,     0,    37,     0,
    2153      337,   338,    40,     0,     0,     0,     0,     0,     0,    41,
    2154       42,     0,   364,   357,   357,     0,   357,   357,     0,   356,
    2155        0,     0,     0,    87,     0,     0,     0,     0,     0,   364,
    2156        0,   283,   284,     0,   285,     0,    80,     0,   339,     0,
    2157        0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
    2158        0,     0,     0,     0,     0,   349,     0,     0,     0,     0,
    2159      286,     0,   224,   349,     0,    87,   287,     0,   364,     0,
    2160      288,   357,   357,   289,   290,   291,   292,    41,    42,     0,
    2161      293,   294,     0,     0,    78,     0,     0,     0,   295,     0,
    2162        0,     0,     0,     0,     0,     0,     0,     0,   356,     0,
    2163      356,     0,     0,     0,   515,   364,   601,     0,   609,     0,
    2164        0,     0,     0,    45,    46,   298,   299,   300,   301,   633,
    2165      634,     0,     0,     0,     0,     0,     0,     0,     0,    57,
    2166      356,     0,     0,     0,     0,     0,   357,     0,   356,   356,
    2167      356,     0,     0,     0,     0,     0,     0,     0,   364,   356,
    2168      356,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2169      364,     0,     0,    78,     0,   226,     0,     0,   364,     0,
    2170        0,     0,   364,     0,     0,     0,     0,     0,     0,   225,
    2171      516,     0,   518,   521,     0,     0,   356,     0,     0,     0,
    2172      524,   525,     0,     0,     0,     0,    57,     0,     0,     0,
    2173        0,    80,     0,     0,     0,   518,   518,     0,     0,     0,
    2174        0,     0,     0,   349,     0,   357,     0,   357,     0,     0,
    2175        0,   212,     0,     0,     0,     0,     0,     0,     0,     0,
    2176        0,   232,     0,   236,    87,   238,     0,     0,   127,   127,
    2177      127,     0,   247,   518,     0,     0,     0,   357,     0,     0,
    2178        0,     0,     0,     0,     0,   357,   357,   357,     0,     0,
    2179        0,     0,     0,     0,     0,     0,   357,   357,     0,     0,
    2180      349,   349,     0,   212,   356,   236,   238,   247,     0,   518,
    2181       80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2182       57,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2183        0,     0,     0,   357,     0,     0,     0,     0,     0,     0,
    2184        0,   127,     0,   127,     0,     0,   212,     0,   364,     0,
    2185        0,     0,     0,    78,     0,     0,     0,     0,     0,     0,
    2186       78,     0,     0,     0,     0,     0,     0,     0,   276,     0,
    2187        0,     0,   476,     2,   207,     4,     5,     6,     7,     8,
    2188        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2189       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2190       27,    28,   364,   364,     0,   364,   364,   212,    31,   236,
    2191      238,   247,     0,    78,     0,     0,     0,     0,     0,     0,
    2192        0,   357,     0,     0,   127,    87,     0,     0,     0,     0,
    2193        0,     0,   127,     0,   127,   127,    34,     0,    35,   127,
    2194       36,   127,   127,    38,    39,   212,     0,     0,     0,     0,
    2195      212,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2196      364,   364,    57,    57,     0,   506,     0,     0,     0,     0,
    2197       80,     0,     0,     0,     0,     0,     0,    80,     0,     0,
    2198        0,     0,     0,     0,    -3,    57,   518,   518,   518,   518,
    2199      518,   518,   518,   518,   518,   518,   518,   518,   518,   518,
    2200      518,   518,   518,   518,     0,    57,     0,     0,     0,     0,
    2201        0,   127,     0,     0,   212,     0,     0,   953,     0,   954,
    2202        0,     0,     0,     0,     0,   364,   957,   958,     0,     0,
    2203       80,   963,     0,     0,     0,     0,   212,     0,     0,     0,
    2204        0,   236,   238,   968,     0,     0,     0,     0,   972,   247,
    2205      349,   349,     0,     0,     0,     0,     0,     0,     0,    57,
    2206        0,     0,     0,     0,    57,     0,     0,     0,   226,     0,
    2207        0,     0,     0,     0,  1001,     0,     0,     0,     0,     0,
     2414       0,  1292,  1293,     0,     0,     0,     0,     0,     0,     0,
     2415       0,     0,     0,   463,   415,   463,   782,   365,   990,     0,
     2416       0,     0,     0,  1306,   995,     0,     0,     0,     0,     0,
     2417       0,  1004,     0,     0,     0,     0,     0,   283,   284,     0,
     2418     285,     0,     0,   166,     0,     0,     0,     0,     0,     0,
     2419    1329,     0,     0,     0,     0,     0,     0,   415,     0,     0,
     2420     342,   365,     0,     0,     0,     0,   286,     0,     0,     0,
     2421       0,     0,   287,     0,  1022,  1023,   288,     0,   347,   289,
     2422     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2423       0,     0,   347,     0,   295,     0,     0,     0,     0,     0,
     2424       0,     0,     0,     0,     0,   415,   415,     0,     0,   296,
     2425       0,   380,     0,     0,     0,     0,     0,     0,   345,    46,
     2426     298,   299,   300,   301,   829,   365,     0,     0,     0,     0,
     2427       0,     0,  1053,     0,     0,   622,   383,   622,   622,     0,
     2428       0,     0,     0,     0,   622,     0,     0,     0,  1399,     0,
     2429    1400,     0,     0,     0,   868,   365,   516,     0,   518,   521,
     2430     365,     0,     0,  1409,     0,  1410,   524,   525,     0,   365,
     2431     365,   365,     0,     0,     0,     0,     0,     0,     0,     0,
     2432       0,   518,   518,  1417,     0,     0,     0,     0,   365,     0,
     2433       0,     0,     0,   415,   911,     0,     0,   415,   914,  1435,
     2434    1437,     0,     0,     0,   916,     0,     0,     0,     0,     0,
     2435       0,  1443,   322,     0,  1247,     0,     0,     0,     0,   518,
     2436       0,     0,   342,   365,   415,     0,   415,     0,  1140,  1141,
     2437     415,     0,     0,     0,     0,   383,  1466,     0,     0,     0,
     2438       0,   995,     0,     0,  1150,  1473,   769,     0,  1475,     0,
     2439    1477,  1479,  1481,     0,     0,   518,     0,     0,     0,     0,
     2440       0,     0,   365,   622,     0,     0,     0,  1166,     0,     0,
     2441       0,     0,     0,     0,     0,     0,     0,     0,  1181,     0,
    22082442       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2209       87,     0,   212,     0,     0,     0,     0,     0,    57,     0,
    2210        0,     0,     0,     0,   364,     0,   364,     0,     0,     0,
    2211      212,     0,     0,     0,     0,   212,     0,   212,     0,     0,
    2212        0,     0,     0,     0,     0,     0,     0,   518,     0,     0,
    2213        0,     0,     0,     0,   212,     0,   364,   212,   212,     0,
    2214        0,     0,     0,     0,   364,   364,   364,     0,     0,   518,
    2215        0,     0,     0,   212,     0,   364,   364,     0,     0,     0,
    2216        0,     0,     0,     0,     0,     0,     0,   212,     0,    87,
    2217        0,     0,     0,     0,   212,   349,  1047,  1048,  1049,  1050,
    2218        0,  1052,     0,     0,     0,     0,     0,     0,     0,     0,
    2219      283,   284,   364,   285,     0,     0,     0,  1096,     0,     0,
    2220        0,    57,     0,     0,     0,     0,     0,     0,   518,     0,
    2221        0,  1102,     0,     0,     0,     0,     0,     0,     0,   286,
    2222        0,     0,     0,     0,    57,   650,   166,   140,   141,   288,
    2223        0,    57,   289,   651,   291,   292,    41,    42,     0,   293,
    2224      294,   518,     0,   219,     0,     0,     0,   295,     0,     0,
    2225     1118,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2226        0,     0,     0,   296,     0,   652,     0,   653,   381,     0,
    2227        0,     0,    45,    46,   298,   299,   300,   301,     0,     0,
    2228      364,     0,     0,     0,    57,     0,     0,     0,     0,   212,
    2229     1146,   166,     0,     0,     0,   273,     0,  1154,     0,     0,
    2230        0,     0,  1158,     0,     0,     0,     0,  1162,     0,  1163,
    2231        0,     0,     0,  1165,     0,  1166,  1167,   212,     0,  1170,
    2232        0,     0,   212,     0,   166,     0,   127,   127,  1182,    87,
    2233        0,     0,     0,     0,   370,     0,    87,     0,   376,     0,
    2234        0,     0,     0,     0,     0,     0,  1197,  1198,     0,     0,
    2235        0,     0,     0,     0,     0,   127,     0,     0,   127,   127,
    2236        0,   127,     0,   127,   127,     0,     0,     0,   127,   127,
    2237        0,     0,     0,  1228,     0,     0,  1230,     0,     0,     0,
    2238        0,     0,     0,     0,     0,     0,     0,   166,     0,    87,
    2239        0,     0,     0,     0,     0,     0,     0,     0,     0,   219,
    2240        0,     0,     0,     0,     0,     0,   518,     0,     0,     0,
    2241      212,     0,     0,     0,     0,  1246,     0,   166,   463,     0,
    2242        0,  1250,  1251,     0,   212,     0,     0,     0,     0,     0,
    2243        0,     0,     0,  1262,     0,     0,     0,   518,  1266,     0,
    2244        0,  1270,   376,  1271,   506,     0,  1273,   127,     0,   166,
    2245      518,     0,   127,   127,     0,     0,     0,     0,   127,  1281,
     2443       0,     0,  1512,     0,  1514,     0,     0,  1247,   342,   365,
     2444     383,     0,  1199,   415,   415,     0,     0,     0,     0,     0,
     2445       0,     0,  1526,     0,     0,     0,     0,   995,   995,     0,
     2446       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2447      18,    19,    20,    21,    22,    23,    24,    25,  1231,     0,
     2448      26,    27,    28,     0,     0,   415,     0,     0,     0,    31,
     2449       0,     0,     0,   365,     0,     0,     0,     0,     0,     0,
     2450     829,   365,     0,     0,   622,     0,   622,     0,     0,     0,
     2451       0,     0,     0,     0,     0,     0,   622,    34,     0,     0,
     2452       0,     0,     0,     0,   208,    39,   995,     0,     0,     0,
    22462453       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2247        0,     0,  1288,   463,  1290,  1291,  1292,  1293,     0,     0,
    2248        0,     0,     0,     0,     0,   166,     0,     0,     0,     0,
    2249     1300,   518,  1301,     0,     0,     0,   173,     0,     0,     0,
    2250        0,     0,     0,     0,     0,     0,   212,     0,     0,     0,
    2251        0,     0,     0,     0,     0,     0,     0,     0,   212,     0,
    2252        0,     0,     0,   607,     0,  1329,  1330,     0,   631,     0,
    2253        0,     0,     0,     0,     0,     0,     0,   212,     8,     9,
    2254       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2255       20,    21,    22,    23,    24,    25,  -296,     0,    26,    27,
    2256       28,     0,     0,     0,   518,     0,     0,    31,     0,     0,
    2257        0,     0,     0,     0,     0,     0,     0,  1365,  1366,     0,
    2258        0,     0,     0,     0,     0,     0,     0,  1376,     0,     0,
    2259        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2260        0,     0,    38,    39,   166,   166,  -296,     0,     0,     0,
    2261        0,   370,     0,     0,     0,     0,     0,     0,     0,     0,
    2262        0,     0,   518,   518,   212,     0,     0,     0,     0,     0,
    2263        0,     0,   463,     0,     0,   463,     0,     0,   644,  1409,
    2264      339,     0,     0,     0,     0,     0,     0,    45,    46,     0,
    2265      212,  1413,     0,  1414,  1415,  1416,     0,     0,     0,     0,
    2266        0,     0,     0,     0,     0,  1420,     0,     0,   742,     0,
    2267        0,     0,     0,     0,  1431,     0,     0,     0,   212,     0,
    2268      166,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2269     1444,     0,   463,     0,   463,     0,     0,   463,     0,   166,
    2270      463,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2271        0,   212,   370,     0,     0,     0,     0,     0,     0,     0,
    2272        0,   157,   212,     0,     0,     0,     0,     0,     8,     9,
    2273       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2274       20,    21,    22,    23,    24,    25,  1493,  1494,    26,    27,
    2275       28,     0,     0,     0,     0,     0,     0,    31,     0,  1499,
    2276        0,     0,     0,     0,     0,   166,  1499,     0,     0,   252,
    2277        0,     0,     0,     0,     0,     0,     0,   370,     0,   257,
    2278        0,   838,     0,     0,     0,    34,     0,     0,     0,     0,
    2279       37,     0,    38,    39,    40,     0,     0,     0,     0,  1533,
    2280        0,    41,    42,  1539,   212,     0,     0,   607,     0,     0,
    2281        0,     0,   607,     0,     0,     0,     0,     0,     0,     0,
    2282        0,   370,   370,   370,     0,     0,     0,     0,    43,     0,
    2283      158,     0,  1561,   518,  1562,   157,     0,    45,    46,     0,
    2284      370,     0,     0,   127,     0,     0,     0,     0,     0,   387,
    2285      518,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2286        0,     0,  1577,  1578,     0,     0,     0,     0,     0,     0,
    2287     1581,  1582,   419,     0,     0,   742,     0,     0,     0,     0,
    2288        0,     0,     0,     0,     0,     0,   434,     0,     0,     0,
    2289        0,   212,     0,     0,     0,   439,   463,     0,     0,     0,
    2290        0,     0,     0,     0,     0,   447,     0,     0,     0,     0,
    2291        0,     0,     0,     0,   370,     0,   962,     0,     0,     0,
    2292        0,     0,     0,   518,   518,     0,     0,     0,     0,     0,
    2293      473,     0,     0,     0,     0,   483,     0,     0,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     0,     0,   491,     0,
    2295        0,   742,     0,     0,   501,     0,   505,     0,     0,     0,
    2296        0,     0,     0,     0,     0,     0,  1180,     0,   127,     8,
    2297        9,    10,    11,    12,   535,     0,     0,     0,     0,     0,
    2298        0,     0,     0,     0,     0,     0,     0,     0,   212,     0,
    2299        0,     0,     0,     0,     0,     0,   283,   284,    31,   285,
    2300        0,     0,     0,     0,     0,     0,   370,     0,     0,     0,
    2301      631,     0,     0,     0,   370,     0,   595,     0,     0,     0,
    2302        0,   600,     0,     0,     0,   286,    34,     0,     0,     0,
    2303        0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
    2304      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2305      645,     0,     0,   295,   646,   647,     0,   649,     0,     0,
    2306        0,     0,     0,     0,   661,   662,     0,   663,   664,   296,
    2307      665,   380,   666,     0,     0,     0,     0,     0,  1181,    46,
    2308      298,   299,   300,   301,     0,     0,     0,     0,     0,   595,
    2309        0,     0,     0,     0,     0,   283,   284,   681,   285,     0,
    2310        0,     0,     0,     0,     0,     0,   463,     0,     0,     0,
     2454       0,     0,     0,     0,     0,   888,     0,     0,     0,     0,
    23112455       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2312        0,     0,   692,     0,   286,   463,     0,     0,     0,     0,
    2313      287,     0,     0,   698,   288,     0,     0,   289,   290,   291,
    2314      292,    41,    42,     0,   293,   294,     0,     0,   166,     0,
    2315        0,     0,   295,     0,     0,     0,   734,     0,     0,     0,
    2316        0,     0,   737,     0,   370,     0,     0,   473,   296,     0,
    2317      380,     0,     0,   381,     0,     0,     0,    45,    46,   298,
    2318      299,   300,   301,     0,     0,     0,     0,     0,     0,     0,
    2319        0,     0,     0,     0,     0,     0,   342,   365,     0,     0,
    2320      607,     0,     0,     0,   774,     0,     0,     0,     0,     0,
    2321        0,     0,     0,     0,     0,     0,     0,     0,   789,     0,
    2322        0,   370,   370,     0,     0,     0,     0,     0,     0,     0,
    2323      415,     0,     0,     0,     0,     0,     0,   415,     0,     0,
    2324        0,     0,     0,     0,   212,     0,     0,     0,     0,     0,
    2325        0,     0,     0,     0,     0,     0,     0,   817,     0,     0,
    2326        0,     0,     0,     0,     0,     0,   827,     0,     0,     0,
    2327        0,     0,     0,   829,     0,     0,     0,     0,     0,   837,
    2328        0,   463,     0,     0,     0,     0,     0,     0,   851,     0,
     2456    1284,  1285,     0,   283,   284,     0,   285,     0,    45,    46,
     2457       0,   518,   518,   518,   518,   518,   518,   518,   518,   518,
     2458     518,   518,   518,   518,   518,   518,   518,   518,   518,   829,
     2459       0,     0,   286,     0,     0,     0,     0,   415,   287,     0,
     2460       0,     0,   288,   415,     0,   289,   290,   291,   292,    41,
     2461      42,   415,   293,   294,     0,     0,     0,     0,     0,     0,
     2462     295,     0,     0,     0,   622,   622,     0,     0,     0,     0,
     2463       0,     0,     0,     0,     0,   515,     0,     0,     0,     0,
     2464       0,     0,   995,     0,    45,    46,   298,   299,   300,   301,
     2465       0,   365,     0,     0,     0,     0,     0,   415,     0,     0,
     2466       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2467       0,     0,     0,     0,     0,     0,   415,  1159,     0,     0,
     2468       0,     0,     0,     0,     0,     0,     0,   365,     0,     0,
     2469       0,     0,     0,   415,  1171,     0,   622,   622,  1176,     0,
     2470       0,     0,     0,  1392,     0,   769,     0,     0,   365,   365,
     2471       0,     0,   518,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2473       0,     0,     0,     0,   518,     0,     0,     0,     0,     2,
     2474     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2475      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2476      23,    24,    25,     0,     0,    26,    27,    28,     0,   829,
     2477     415,  1239,   283,   284,    31,   285,     0,     0,     0,     0,
     2478       0,     0,     0,   622,     0,     0,     0,     0,     0,     0,
     2479       0,  1452,     0,   518,     0,     0,     0,     0,     0,     0,
     2480       0,   286,    34,     0,    35,     0,    36,   287,     0,    38,
     2481      39,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2482       0,   293,   294,     0,     0,   518,     0,     0,   365,   295,
     2483       0,     0,   283,   284,     0,   285,     0,     0,     0,     0,
     2484       0,     0,     0,     0,   296,     0,   930,     0,     0,     0,
     2485       0,   781,     0,    45,    46,   298,   299,   300,   301,     0,
     2486       0,   286,     0,     0,     0,     0,     0,   287,     0,     0,
     2487       0,   288,     0,  1518,   289,   290,   291,   292,    41,    42,
     2488       0,   293,   294,     0,     0,     0,     0,     0,   342,   295,
     2489       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2490       0,     0,     0,     0,   296,     0,     0,     0,     0,   365,
     2491       0,     0,     0,    45,    46,   298,   299,   300,   301,     0,
     2492       0,     0,     0,     0,     0,   322,     0,     0,     0,     0,
     2493       0,     0,     0,     1,     2,   207,     4,     5,     6,     7,
    23292494       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2330       18,    19,    20,    21,    22,    23,    24,    25,     0,   415,
    2331       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2332      455,     0,     0,     0,     0,     0,     0,     0,     0,   891,
    2333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2334        0,   742,     0,     0,     0,     0,     0,    34,     0,     0,
    2335        0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
    2336        0,     0,     0,     0,   415,   837,     0,     0,     0,     0,
    2337        0,     0,   415,   591,     0,   415,   594,     0,     0,     0,
    2338        0,     0,     0,   219,     0,     0,   365,     0,     0,     0,
    2339      623,     0,   456,     0,     0,     0,   712,     0,     0,    45,
    2340       46,     0,     0,     0,     0,     0,     0,     0,     0,   641,
    2341        0,     0,   342,     0,     0,     0,     0,     0,     0,     0,
    2342      252,     0,   742,     0,     0,     0,     0,     0,     0,     0,
    2343      969,   970,     0,     0,     0,     0,     0,     0,     0,   415,
    2344        0,     0,     0,   415,   987,     0,     0,     0,     0,     0,
    2345        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2346        0,  1002,     0,  1003,     0,     0,   322,  1007,     0,     0,
    2347        0,   370,   370,     0,   365,     0,   347,     0,     0,     0,
    2348      219,     0,     0,     0,     0,     0,     0,     0,   383,   383,
    2349        0,     0,     0,     0,     0,     0,     0,   415,     0,     0,
    2350        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2351       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2352        0,    26,    27,    28,     0,     0,     0,     0,   415,     0,
    2353       31,   365,     0,  1041,     0,     0,     0,     0,     0,     0,
    2354     1042,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2355        0,     0,     0,  1044,     0,  1045,     0,     0,    34,   322,
    2356        0,     0,     0,     0,     0,    38,    39,     0,     0,  1057,
    2357        0,   415,     0,     0,   342,   365,  1061,     0,     0,     0,
    2358        0,     0,     0,   487,     0,     0,     0,     0,  1099,     0,
    2359        0,  1100,     0,     0,     0,     0,   370,     0,     0,     0,
    2360        0,   644,     0,   339,     0,     0,     0,     0,     0,   600,
    2361       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2362      415,   415,     0,     0,     0,     0,     0,     0,     0,     0,
    2363        0,     0,     0,     0,     0,     0,     0,     0,     0,   831,
    2364      365,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2365      623,     0,   623,   623,   463,     0,   463,     0,     0,   623,
    2366        0,     0,     0,     0,     0,     0,     0,     0,     0,   870,
    2367      365,     0,     0,     0,     0,   365,     0,     0,     0,     0,
    2368        0,     0,     0,     0,   365,   365,   365,     0,     0,     0,
    2369        0,   463,     0,   463,     0,     0,     0,     0,  1164,     0,
    2370      383,     0,     0,   365,     0,     0,     0,     0,   415,   913,
    2371        0,     0,   415,   916,     0,     0,     0,     0,     0,   918,
    2372        0,   166,     0,     0,     0,   283,   284,     0,   285,     0,
    2373        0,     0,     0,     0,     0,     0,     0,   342,   365,   415,
    2374        0,   415,     0,     0,     0,   415,     0,     0,     0,     0,
    2375        0,     0,     0,     0,   286,   535,     0,     0,     0,     0,
    2376      287,     0,  1229,     0,   288,     0,     0,   289,   290,   291,
    2377      292,    41,    42,     0,   293,   294,     0,   365,   623,     0,
    2378        0,     0,   295,     0,     0,     0,     0,     0,     0,     0,
    2379        0,     0,  1243,     0,     0,     0,     0,  1245,   296,     0,
    2380      380,     0,   736,     0,     0,  1249,   814,    45,    46,   298,
    2381      299,   300,   301,   342,   365,     0,     0,     0,   415,   415,
    2382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383        0,     0,     0,     0,     0,     0,  1275,     0,     0,     0,
    2384        0,   770,     0,     0,     0,     0,     0,     0,  1283,     0,
    2385        0,  1284,     0,  1285,   783,     0,     0,     0,     0,   770,
    2386        0,   415,   770,     0,     0,     0,     0,  1294,  1295,   365,
    2387        0,     0,     0,   793,   794,   795,   831,   365,     0,     0,
    2388      623,     0,   623,     0,     0,     0,     0,     0,     0,  1308,
    2389        0,     0,   623,     0,     0,     0,     0,   816,     0,     0,
    2390        0,     0,     0,     0,     0,     0,     0,   825,     0,     0,
    2391        0,     0,     0,     0,   347,     0,  1331,     0,     0,   783,
    2392        0,     0,  -521,     0,     0,     1,     2,     3,     4,     5,
     2495      18,    19,    20,    21,    22,    23,    24,    25,   365,   365,
     2496      26,    27,    28,    29,     0,     0,    30,   283,   284,    31,
     2497    1062,  1063,     0,  1064,     0,     0,  1065,  1066,  1067,  1068,
     2498    1069,  1070,  1071,  1072,     0,     0,     0,  1073,     0,     0,
     2499     518,  1074,  1075,     0,    33,     0,   286,    34,     0,    35,
     2500       0,    36,   649,     0,    38,    39,   288,     0,     0,   289,
     2501     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2502       0,   518,     0,     0,   295,     0,     0,     0,     0,     0,
     2503       0,     0,     0,     0,   518,     0,     0,     0,     0,   296,
     2504       0,  1076,     0,     0,   172,     0,     0,     0,    45,    46,
     2505     298,   299,   300,   301,     0,     0,     0,     0,  1077,     0,
     2506       0,     0,  -130,     0,     0,     0,     0,     0,     0,     0,
     2507       0,     0,     0,     0,     0,   518,     0,     0,     0,     0,
     2508       0,     0,  -520,   365,     0,     1,     2,     3,     4,     5,
    23932509       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    23942510      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    23952511       0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
    2396        0,    31,    32,     0,     0,   831,     0,     0,   890,     0,
    2397        0,     0,     0,   415,     0,     0,     0,   383,     0,   415,
    2398        0,     0,     0,     0,     0,     0,    33,   415,     0,    34,
     2512       0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
     2513       0,     0,   283,   284,     0,   285,     0,     0,     0,     0,
     2514       0,     0,     0,     0,     0,     0,    33,     0,   518,    34,
    23992515       0,    35,     0,    36,    37,     0,    38,    39,    40,     0,
    2400      623,   623,     0,     0,     0,    41,    42,     0,     0,     0,
    2401        0,     0,     0,     0,  1401,     0,  1402,   347,     0,     0,
    2402        0,     0,     0,     0,     0,     0,     0,   365,     0,  1411,
    2403        0,  1412,    43,   415,    44,     0,     0,     0,     0,     0,
    2404        0,    45,    46,     0,     0,     0,     0,     0,     0,  1419,
    2405        0,     0,   415,  1161,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,   365,     0,  1437,  1439,     0,     0,   415,
    2407     1173,     0,   623,   623,  1178,     0,     0,  1445,     0,     0,
    2408     1249,     0,     0,     0,   365,   365,     0,     0,     0,     0,
    2409        0,     0,     0,   783,     0,   992,     0,     0,     0,     0,
    2410        0,   997,  1468,     0,     0,     0,     0,     0,  1006,     0,
    2411        0,  1475,     0,     0,  1477,     0,  1479,  1481,  1483,     2,
    2412      207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2413       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2414       23,    24,    25,     0,     0,   831,   415,  1241,     0,     0,
    2415        0,     0,  1024,  1025,    31,     0,   347,     0,  1514,   623,
    2416     1516,     0,     0,  1249,     0,     0,     0,     0,     0,     0,
    2417      347,     0,     0,     0,     0,     0,     0,     0,  1528,     0,
    2418        0,     0,    34,     0,    35,     0,    36,    37,     0,   175,
    2419      176,    40,     0,     0,     0,     0,     0,     0,    41,    42,
    2420        0,     0,     0,     0,   365,     0,     0,     0,     0,     0,
    2421     1055,     0,     0,     0,   383,     0,     0,     0,     0,     0,
    2422        1,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2423       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2424       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2425       29,     0,     0,    30,   283,   284,    31,   285,     0,     0,
    2426        0,     0,     0,     0,   342,     0,     0,     0,     0,     0,
    2427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2428        0,     0,     0,   286,    34,   365,    35,     0,    36,   287,
    2429      322,    38,    39,   288,     0,     0,   289,   290,   291,   292,
    2430       41,    42,     0,   293,   294,     0,  1142,  1143,     0,     0,
    2431        0,   295,     0,   383,     0,     0,     0,     0,     0,   997,
    2432        0,     0,  1152,     0,   770,   283,   284,   296,   285,  1078,
    2433        0,     0,     0,     0,   365,   365,    45,    46,   298,   299,
    2434      300,   301,     0,     0,     0,  1168,     0,     0,     0,     0,
    2435     -131,     0,     0,     0,   286,     0,  1183,     0,     0,     0,
    2436      287,     0,     0,     0,   288,     0,     0,   289,   290,   291,
    2437      292,    41,    42,     0,   293,   294,     0,     0,   383,     0,
    2438     1201,     0,   295,     0,     0,     0,     0,     0,     0,     0,
    2439        0,     0,     0,     0,     0,   997,   997,     0,   296,     0,
    2440      380,     0,     0,     0,     0,   782,     0,    45,    46,   298,
    2441      299,   300,   301,     0,     0,     0,  1233,     0,     0,     0,
    2442        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    2443       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2444       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2445       29,     0,     0,    30,     0,     0,    31,    32,     0,   365,
    2446        0,     0,     0,     0,   997,     0,     0,     0,   283,   284,
    2447        0,   285,     0,     0,     0,     0,     0,     0,     0,     0,
    2448        0,    33,     0,   890,    34,     0,    35,     0,    36,    37,
    2449        0,    38,    39,    40,     0,     0,     0,   286,  1286,  1287,
    2450       41,    42,     0,   287,     0,     0,     0,   288,     0,     0,
    2451      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2452        0,     0,     0,     0,     0,   295,     0,    43,     0,    44,
    2453        0,     0,     0,  -525,     0,     0,    45,    46,     0,     0,
    2454        0,   296,     0,   380,     0,     0,   994,     0,     0,   415,
    2455       45,    46,   298,   299,   300,   301,     0,     0,     0,     0,
    2456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2457        0,     0,     0,     0,   415,   415,     0,     0,     0,     0,
    2458      997,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2459        0,     0,     0,     0,     0,     0,     0,     0,     0,   415,
    2460        0,     0,     1,     2,   207,     4,     5,     6,     7,     8,
    2461        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2462       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2463       27,    28,    29,     0,     0,    30,   283,   284,    31,  1064,
    2464     1065,  1394,  1066,   770,     0,  1067,  1068,  1069,  1070,  1071,
    2465     1072,  1073,  1074,     0,     0,     0,  1075,     0,     0,     0,
    2466     1076,  1077,     0,    33,     0,   286,    34,     0,    35,     0,
    2467       36,   650,     0,    38,    39,   288,     0,     0,   289,   290,
    2468      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2469        0,     0,     0,   295,     0,     0,     0,     0,     0,     0,
    2470        0,     0,     0,     0,     0,     0,     0,     0,     0,   296,
    2471        0,  1078,     0,     0,   172,     0,     0,     0,    45,    46,
    2472      298,   299,   300,   301,     0,     0,     0,     0,  1079,  1454,
    2473        0,     0,  -131,     0,     0,     0,     1,     2,   207,     4,
    2474        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2475       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2476       25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
    2477      283,   284,    31,   285,     8,     9,    10,    11,    12,    13,
    2478       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2479       24,    25,  -296,     0,     0,     0,     0,     0,     0,   286,
    2480       34,     0,    35,    31,    36,   287,     0,    38,    39,   288,
    2481        0,  1520,   289,   290,   291,   292,    41,    42,     0,   293,
    2482      294,     0,     0,     0,     0,     0,     0,   295,     0,     0,
    2483        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2484        0,     0,  -296,   296,     0,    44,     0,     0,     0,     0,
    2485        0,     0,    45,    46,   298,   299,   300,   301,     0,     0,
    2486        0,     0,     0,   322,     2,   207,     4,     5,     6,     7,
    2487        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2488       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2489       26,    27,    28,     0,     0,     0,     0,   283,   284,    31,
    2490      285,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2491       17,    18,    19,    20,    21,    22,    23,    24,    25,  -297,
    2492        0,     0,     0,     0,     0,     0,   286,    34,     0,    35,
    2493       31,    36,   287,     0,    38,    39,   288,     0,     0,   289,
    2494      290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
    2495        0,     0,     0,     0,   295,     0,     0,     0,    34,     0,
    2496        0,     0,     0,     0,     0,     0,     0,     0,     0,  -297,
    2497      296,     0,   344,     0,     0,     0,     0,   782,     0,   345,
    2498       46,   298,   299,   300,   301,     2,   207,     4,     5,     6,
     2516       0,   286,     0,     0,     0,    41,    42,   287,     0,     0,
     2517       0,   288,     0,   415,   289,   290,   291,   292,    41,    42,
     2518       0,   293,   294,     0,     0,     0,     0,     0,     0,   295,
     2519       0,    43,     0,    44,     0,     0,     0,     0,   415,   415,
     2520      45,    46,     0,     0,   520,     0,   518,   518,     0,     0,
     2521       0,     0,     0,    45,    46,   298,   299,   300,   301,     0,
     2522       0,     0,     0,   415,     1,     2,   207,     4,     5,     6,
    24992523       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    25002524      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2501        0,    26,    27,    28,     0,     0,     0,     0,   283,   284,
     2525       0,    26,    27,    28,    29,     0,     0,    30,   283,   284,
    25022526      31,   285,     8,     9,    10,    11,    12,    13,    14,    15,
    25032527      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     
    25062530     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    25072531       0,     0,     0,     0,     0,   295,     0,     0,     0,    34,
    2508        0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
    2509        0,   296,     0,   932,     0,     0,     0,     0,   782,     0,
    2510      345,    46,   298,   299,   300,   301,     2,   207,     4,     5,
    2511        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2512       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2513        0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
    2514      284,    31,   285,     8,     9,    10,    11,    12,    13,    14,
    2515       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2516       25,     0,     0,    26,    27,    28,     0,     0,   286,    34,
    2517        0,    35,    31,    36,   287,     0,    38,    39,   288,     0,
    2518        0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2519        0,     0,     0,     0,     0,     0,   295,     0,     0,     0,
    2520       34,     0,     0,     0,     0,     0,     0,   208,    39,     0,
    2521        0,     0,   296,     0,   932,     0,     0,     0,     0,   782,
    2522        0,    45,    46,   298,   299,   300,   301,     2,   207,     4,
     2532       0,     0,     0,     0,   111,     0,    38,    39,     0,     0,
     2533     296,     0,  1076,     0,     0,    41,    42,     0,     0,    45,
     2534      46,   298,   299,   300,   301,     0,     0,     0,     0,     0,
     2535       0,     0,     0,  -130,     0,     0,     0,     0,     0,     1,
     2536       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2537      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2538      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
     2539       0,     0,    30,   283,   284,    31,   285,     0,     0,     0,
     2540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2541       0,     0,     0,     0,     0,     0,     0,   518,     0,     0,
     2542       0,     0,   286,    34,     0,    35,     0,    36,   287,     0,
     2543      38,    39,   288,     0,   518,   289,   290,   291,   292,    41,
     2544      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2545     295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2546       0,     0,     0,     0,     0,   296,     0,    44,     0,     0,
     2547       0,     0,     0,     0,    45,    46,   298,   299,   300,   301,
     2548       0,     0,     0,     2,   207,     4,     5,     6,     7,     8,
     2549       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2550      19,    20,    21,    22,    23,    24,    25,   518,   518,    26,
     2551      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2552       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2553      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2554      26,    27,    28,     0,     0,   286,    34,     0,    35,    31,
     2555      36,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2556     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2557       0,     0,     0,   295,     0,     0,     0,    34,     0,     0,
     2558       0,     0,     0,     0,    38,    39,     0,     0,   296,     0,
     2559     344,     0,     0,     0,     0,     0,     0,   345,    46,   298,
     2560     299,   300,   301,     2,   207,     4,     5,     6,     7,     8,
     2561       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2562      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2563      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2564       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2565      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2566      26,    27,    28,     0,     0,   286,    34,     0,    35,    31,
     2567      36,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2568     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2569       0,     0,     0,   295,     0,     0,     0,    34,     0,     0,
     2570       0,     0,     0,     0,   208,    39,     0,     0,   296,     0,
     2571     930,     0,     0,     0,     0,     0,     0,   345,    46,   298,
     2572     299,   300,   301,     2,   207,     4,     5,     6,     7,     8,
     2573       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2574      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2575      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2576       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2577       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2578       0,     0,     0,     0,     0,   286,    34,     0,    35,     0,
     2579      36,   287,     0,   208,    39,   288,     0,     0,   289,   290,
     2580     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2581       0,     0,     0,   295,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
     2583    1019,     0,     0,     0,     0,     0,     0,  1020,    46,   298,
     2584     299,   300,   301,     2,   207,     4,     5,     6,     7,     8,
     2585       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2586      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2587      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2590       0,     0,     0,     0,     0,   286,    34,     0,    35,     0,
     2591      36,   287,     0,   208,    39,   288,     0,     0,   289,   290,
     2592     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2593       0,     0,     0,   295,     0,     0,     0,     0,     0,     0,
     2594       0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
     2595     380,     0,     0,     0,     0,     0,     0,    45,    46,   298,
     2596     299,   300,   301,     1,     2,     3,     4,     5,     6,     7,
     2597       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2598      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2599      26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
     2600      32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2601       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2602       0,     0,     0,     0,    33,     0,     0,    34,     0,    35,
     2603       0,    36,    37,     0,    38,    39,    40,     0,     0,     0,
     2604       0,     0,     0,    41,    42,     0,     0,     0,     0,     0,
     2605       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2606       0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
     2607       0,    44,     0,     0,     0,  -524,     0,     0,    45,    46,
     2608       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     2609      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2610      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2611      29,     0,     0,    30,     0,     0,    31,    32,     0,     0,
     2612       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2613       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2614       0,    33,     0,     0,    34,     0,    35,     0,    36,    37,
     2615       0,    38,    39,    40,     0,     0,     0,     0,     0,     0,
     2616      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2617       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2618       0,     0,     0,     0,     0,     0,    43,     0,    44,     0,
     2619       0,     0,     0,     0,     0,    45,    46,     1,     2,   207,
     2620       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2621      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2622      24,    25,  -295,     0,    26,    27,    28,    29,     0,     0,
     2623      30,     0,     0,    31,     0,     0,     0,     0,     0,     0,
     2624       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2626       0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
     2627       0,     0,  -295,     1,     2,   207,     4,     5,     6,     7,
     2628       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2629      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2630      26,    27,    28,    29,     0,    44,    30,     0,     0,    31,
     2631       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
     2632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2634       0,    36,     0,     0,    38,    39,   206,     2,   207,     4,
    25232635       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25242636      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    25252637      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2526      283,   284,    31,   285,     8,     9,    10,    11,    12,    13,
    2527       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2528       24,    25,     0,     0,     0,     0,     0,     0,     0,   286,
    2529       34,     0,    35,    31,    36,   287,     0,    38,    39,   288,
    2530        0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
    2531      294,     0,     0,     0,     0,     0,     0,   295,     0,     0,
    2532        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2533        0,     0,     0,   296,     0,   344,     0,     0,     0,     0,
    2534        0,     0,   345,    46,   298,   299,   300,   301,     2,   207,
    2535        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2536       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2537       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2538        0,   283,   284,    31,   285,     0,     0,     0,     0,     0,
     2638       0,    44,    31,     0,     0,     0,     0,     0,    45,    46,
    25392639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25402640       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541      286,    34,     0,    35,     0,    36,   287,     0,    38,    39,
    2542      288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
    2543      293,   294,     0,     0,     0,     0,     0,     0,   295,     0,
     2641      34,     0,    35,     0,    36,     0,     0,   208,    39,     0,
     2642       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2643      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2644      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2645       0,     0,     0,     0,   209,    31,     0,     0,     0,     0,
     2646       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
    25442647       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2545        0,     0,     0,     0,   296,     0,   932,     0,     0,     0,
    2546        0,     0,     0,   345,    46,   298,   299,   300,   301,     2,
     2648       0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2649     208,    39,    40,     0,     0,     0,     0,     0,     0,    41,
     2650      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2651       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2652       0,     0,     0,     0,     0,    43,     0,   209,     0,     0,
     2653       0,     0,     0,     0,    45,    46,     2,   207,     4,     5,
     2654       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2655      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2656       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2657       0,    31,     0,     0,     0,     0,     8,     9,    10,    11,
     2658      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2659      22,    23,    24,    25,     0,     0,    26,    27,    28,    34,
     2660       0,    35,     0,    36,     0,    31,    38,    39,     0,     2,
    25472661     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    25482662      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2549       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2550        0,     0,   283,   284,    31,   285,     0,     0,     0,     0,
     2663      23,    24,    25,    34,     0,    26,    27,    28,     0,     0,
     2664      38,    39,  -403,   687,    31,     0,     0,     0,     0,     0,
     2665      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2666       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2667       0,     0,    34,     0,    35,   643,    36,   339,     0,    38,
     2668      39,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2669       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2670       0,  1371,     0,     0,     0,     0,     0,     0,     0,     0,
     2671       0,     0,     0,     0,     0,     0,   687,     0,     0,     0,
     2672       0,     0,     0,    45,    46,     2,   207,     4,     5,     6,
     2673       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2674      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2675       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2676      31,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2677      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2678      24,    25,     0,     0,    26,    27,    28,     0,    34,     0,
     2679      35,     0,    36,    31,     0,    38,    39,     0,     0,     0,
     2680       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2681       0,     0,     0,     0,     0,     0,     0,  1373,     0,     0,
     2682       0,    34,     0,     0,     0,     0,    37,     0,   337,   338,
     2683      40,     0,   687,     0,     0,     0,     0,    41,    42,    45,
     2684      46,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2685      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2686      21,    22,    23,    24,    25,   339,     0,    26,    27,    28,
     2687       0,     0,    45,    46,     0,     0,    31,     0,     0,     0,
    25512688       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25522689       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553        0,   286,    34,     0,    35,     0,    36,   287,     0,   208,
    2554       39,   288,     0,     0,   289,   290,   291,   292,    41,    42,
    2555        0,   293,   294,     0,     0,     0,     0,     0,     0,   295,
     2690       0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
     2691       0,   208,    39,     0,     2,   207,     4,     5,     6,     7,
     2692       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2693      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2694      26,    27,    28,     0,     0,     0,     0,     0,   271,    31,
     2695       0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
    25562696       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2557        0,     0,     0,     0,     0,   296,     0,  1021,     0,     0,
    2558        0,     0,     0,     0,  1022,    46,   298,   299,   300,   301,
     2697       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2698       0,    36,     0,     0,    38,    39,     0,     2,   207,     4,
     2699       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2700      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2701      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2702       0,   687,    31,     0,     0,     0,     0,     0,    45,    46,
     2703       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2704       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2705      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    25592706       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2707      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2708      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2709       0,     0,     0,     0,   601,    31,     0,     0,     0,     0,
     2710       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
     2711       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2712       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2713     208,    39,     8,     9,    10,    11,    12,    13,    14,    15,
     2714      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2715       0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
     2716     284,    31,   285,     0,     0,     0,     0,   209,     0,     0,
     2717       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2718       0,     0,     0,     0,     0,     0,     0,     0,   286,    34,
     2719       0,     0,     0,     0,   287,     0,    38,    39,   288,     0,
     2720       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2721       0,     0,     0,     0,     0,     0,   295,     0,     0,     0,
     2722       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2723       0,   296,     0,   527,     0,     0,   172,     0,     0,     0,
     2724      45,    46,   298,   299,   300,   301,     8,     9,    10,    11,
    25602725      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25612726      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     
    25632728      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    25642729      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2565        0,     0,   286,    34,     0,    35,    31,    36,   287,     0,
    2566      208,    39,   288,     0,     0,   289,   290,   291,   292,    41,
     2730       0,     0,   286,    34,     0,     0,    31,     0,   649,     0,
     2731      38,    39,   288,     0,     0,   289,   290,   291,   292,    41,
    25672732      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2568      295,     0,     0,     0,    34,     0,     0,     0,     0,     0,
    2569        0,   208,    39,     0,     0,     0,   296,     0,   380,     0,
    2570        0,     0,     0,     0,     0,    45,    46,   298,   299,   300,
    2571      301,     1,     2,     3,     4,     5,     6,     7,     8,     9,
    2572       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2573       20,    21,    22,    23,    24,    25,    45,    46,    26,    27,
    2574       28,    29,     0,     0,    30,     0,     0,    31,    32,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2577        0,     0,    33,     0,     0,    34,     0,    35,     0,    36,
    2578       37,     0,    38,    39,    40,     0,     0,     0,     0,     0,
    2579        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2581        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2582       44,     0,     0,     0,     0,     0,     0,    45,    46,   206,
    2583        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    2584       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2585       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2586        0,     0,     0,     0,     0,    31,     0,     8,     9,    10,
    2587       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2588       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2589      494,   495,   496,    34,     0,    35,    31,    36,    37,     0,
    2590      208,    39,    40,     0,     0,     0,     0,     0,     0,    41,
    2591       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2592        0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
    2593        0,    38,    39,     0,     0,     0,    43,     0,   209,     0,
    2594        0,     0,     0,     0,     0,    45,    46,     1,     2,   207,
    2595        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2596       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2597       24,    25,  -296,     0,    26,    27,    28,    29,     0,     0,
    2598       30,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    2599        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2601        0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
    2602        0,     0,  -296,     0,     1,     2,   207,     4,     5,     6,
    2603        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2733     295,     0,     0,     0,    34,     0,     0,     0,     0,   111,
     2734       0,    38,    39,     0,     0,   296,   -35,   766,     0,     0,
     2735      41,    42,     0,     0,    45,    46,   298,   299,   300,   301,
     2736       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2737      18,    19,    20,    21,    22,    23,    24,    25,    44,     0,
     2738      26,    27,    28,     0,     0,    45,    46,   283,   284,    31,
     2739     285,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26042740      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2605        0,    26,    27,    28,    29,     0,    44,    30,     0,     0,
    2606       31,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2607        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2608        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2609       35,     0,    36,     0,     0,    38,    39,     0,   206,     2,
    2610      207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2611       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2612       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2613        0,     0,     0,    44,    31,     0,     0,     0,     0,     0,
    2614       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2615        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2616        0,     0,    34,     0,    35,     0,    36,     0,     0,   208,
    2617       39,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2618       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2619       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2620        0,     0,     0,     0,     0,     0,    31,   209,     0,     0,
    2621        0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    2622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2623        0,     0,     0,     0,    34,     0,    35,     0,    36,    37,
    2624        0,   208,    39,    40,     0,     0,     0,     0,     0,     0,
    2625       41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
    2626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2627        0,     0,     0,     0,     0,     0,     0,    43,     0,   209,
    2628        0,     0,     0,     0,     0,     0,    45,    46,     2,   207,
    2629        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2630       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2631       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2632        0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    2633        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2634        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2635        0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
    2636        0,     0,     2,   207,     4,     5,     6,     7,     8,     9,
    2637       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2638       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2639       28,     0,     0,     0,     0,  -404,   688,    31,     0,     0,
    2640        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2641        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2642        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2643        0,     0,    38,    39,     0,     0,     0,     0,     0,     0,
    2644        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2645        0,     0,     0,     0,  1373,     0,     0,     0,     0,     0,
    2646        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2647      688,     0,     0,     0,     0,     0,     0,    45,    46,     2,
    2648      207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2649       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2650       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2651        0,     0,     0,     0,    31,     0,     0,     0,     8,     9,
    2652       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2653       20,    21,    22,    23,    24,    25,  -296,     0,    26,    27,
    2654       28,     0,    34,     0,    35,     0,    36,    31,     0,    38,
    2655       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2656        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2657        0,  1375,     0,     0,     0,    34,     0,     0,     0,     0,
    2658       37,     0,   337,   338,    40,     0,  -296,   688,     0,     0,
    2659        0,    41,    42,     0,    45,    46,     2,   207,     4,     5,
    2660        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2661       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2662      339,     0,    26,    27,    28,     0,     0,    45,    46,     0,
    2663        0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2665        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2666        0,    35,     0,    36,     0,     0,   208,    39,     2,   207,
    2667        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2668       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2669       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2670        0,     0,     0,    31,   271,     0,     0,     0,     0,     0,
    2671        0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
    2672        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2673        0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
    2674        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    2675       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2676       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2677        0,     0,     0,     0,     0,    31,   688,     0,     0,     0,
    2678        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2679        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2680        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2681       38,    39,     2,   207,     4,     5,     6,     7,     8,     9,
    2682       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2683       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2684       28,     0,     0,     0,     0,     0,     0,    31,   602,     0,
    2685        0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
    2686        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2687        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2688        0,     0,   208,    39,     8,     9,    10,    11,    12,    13,
    2689       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2690       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2691        0,   283,   284,    31,   285,     0,     0,     0,     0,     0,
    2692      209,     0,     0,     0,     0,     0,     0,    45,    46,     0,
    2693        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2694      286,    34,     0,     0,     0,     0,   287,     0,    38,    39,
    2695      288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
    2696      293,   294,     0,     0,     0,     0,     0,     0,   295,     0,
    2697        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2698        0,     0,     0,     0,   296,     0,   527,     0,     0,   172,
    2699        0,     0,     0,    45,    46,   298,   299,   300,   301,     8,
    2700        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2701       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2702       27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
    2703        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2704       18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
    2705       26,    27,    28,     0,     0,   286,    34,     0,     0,    31,
    2706        0,   650,     0,    38,    39,   288,     0,     0,   289,   290,
    2707      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2708        0,     0,     0,   295,     0,     0,     0,    34,     0,     0,
    2709        0,     0,     0,     0,    38,    39,     0,     0,  -296,   296,
    2710      -35,   767,     0,     0,     0,     0,     0,     0,    45,    46,
     2741       0,    26,    27,    28,     0,     0,   286,    34,     0,     0,
     2742      31,   455,   287,     0,    38,    39,   288,     0,     0,   289,
     2743     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2744       0,     0,     0,     0,   295,     0,     0,     0,    34,     0,
     2745       0,     0,     0,     0,     0,    38,    39,     0,     0,   296,
     2746       0,   297,     0,     0,     0,     0,     0,     0,    45,    46,
    27112747     298,   299,   300,   301,     8,     9,    10,    11,    12,    13,
    27122748      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2713       24,    25,   339,     0,    26,    27,    28,     0,     0,    45,
    2714       46,   283,   284,    31,   285,     8,     9,    10,    11,    12,
    2715       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2716       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2717      286,    34,     0,     0,    31,   455,   287,     0,    38,    39,
    2718      288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
    2719      293,   294,     0,     0,     0,     0,     0,     0,   295,     0,
    2720        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2721       39,     0,     0,     0,   296,     0,   297,     0,     0,     0,
    2722        0,     0,     0,    45,    46,   298,   299,   300,   301,     8,
    2723        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2724       19,    20,    21,    22,    23,    24,    25,   456,     0,    26,
    2725       27,    28,     0,     0,    45,    46,   283,   284,    31,   285,
    2726        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2727       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2728       26,    27,    28,     0,     0,   286,    34,     0,     0,    31,
    2729        0,   287,     0,    38,    39,   288,     0,     0,   289,   290,
    2730      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2731        0,     0,     0,   295,     0,     0,     0,    34,     0,     0,
    2732        0,     0,     0,     0,    38,    39,     0,     0,     0,   296,
    2733        0,   158,     0,     0,     0,     0,     0,     0,    45,    46,
    2734      298,   299,   300,   301,     8,     9,    10,    11,    12,    13,
    2735       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2736       24,    25,   258,     0,    26,    27,    28,     0,     0,    45,
     2749      24,    25,   456,     0,    26,    27,    28,     0,     0,    45,
    27372750      46,   283,   284,    31,   285,     8,     9,    10,    11,    12,
    27382751      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    27422755     293,   294,     0,     0,     0,     0,     0,     0,   295,     0,
    27432756       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2744       39,     0,     0,     0,   296,     0,   602,     0,     0,     0,
    2745        0,     0,     0,    45,    46,   298,   299,   300,   301,     8,
     2757      39,     0,     0,   296,     0,   158,     0,     0,     0,     0,
     2758       0,     0,    45,    46,   298,   299,   300,   301,     8,     9,
     2759      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2760      20,    21,    22,    23,    24,    25,   258,     0,    26,    27,
     2761      28,     0,     0,    45,    46,   283,   284,    31,   285,     8,
    27462762       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2747       19,    20,    21,    22,    23,    24,    25,   158,     0,    26,
    2748       27,    28,     0,     0,    45,    46,   283,   284,    31,   285,
    2749        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2750       18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
    2751       26,    27,    28,     0,     0,   286,    34,     0,     0,    31,
    2752        0,   287,     0,    38,    39,   288,     0,     0,   289,   290,
    2753      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2754        0,     0,     0,   295,     0,     0,     0,    34,     0,     0,
    2755        0,     0,    37,     0,   337,   338,    40,     0,  -296,   296,
    2756        0,   380,     0,    41,    42,     0,     0,     0,    45,    46,
    2757      298,   299,   300,   301,     0,     0,     0,     0,     0,     0,
    2758        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2759      644,     0,   339,     0,     0,     0,     0,     0,     0,    45,
    2760       46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2761       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2762        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2763       31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2764       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2765        0,    26,    27,    28,     0,     0,     0,     0,    34,     0,
    2766       31,     0,     0,    37,     0,    38,    39,    40,     0,     0,
    2767        0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
    2768        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2769        0,     0,     0,    37,     0,   208,    39,    40,     0,     0,
    2770        0,    43,     0,    44,    41,    42,     0,     0,     0,     0,
    2771       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2772        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,    43,     0,   271,     0,     0,     0,     0,     0,     0,
    2774       45,    46,     8,     9,    10,    11,    12,    13,    14,    15,
     2763      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2764      27,    28,     0,     0,   286,    34,     0,     0,    31,     0,
     2765     287,     0,    38,    39,   288,     0,     0,   289,   290,   291,
     2766     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2767       0,     0,   295,     0,     0,     0,    34,     0,     0,     0,
     2768       0,     0,     0,    38,    39,     0,     0,   296,     0,   601,
     2769       0,     0,     0,     0,     0,     0,    45,    46,   298,   299,
     2770     300,   301,     8,     9,    10,    11,    12,    13,    14,    15,
    27752771      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2776        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2777        0,    31,     8,     9,    10,    11,    12,    13,    14,    15,
    2778       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2779        0,     0,    26,    27,    28,     0,     0,     0,     0,    34,
    2780        0,    31,   455,     0,    37,     0,   337,   338,    40,     0,
    2781        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    2782        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2783        0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
    2784        0,     0,   644,     0,   339,     0,     0,     0,     0,     0,
    2785        0,    45,    46,     0,     0,     8,     9,    10,    11,    12,
    2786       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2787       23,    24,    25,     0,   456,    26,    27,    28,  1111,     0,
    2788        0,    45,    46,     0,    31,   455,     8,     9,    10,    11,
     2772     158,     0,    26,    27,    28,     0,     0,    45,    46,   283,
     2773     284,    31,   285,     0,     8,     9,    10,    11,    12,    13,
     2774      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2775      24,    25,  -295,     0,    26,    27,    28,     0,   286,    34,
     2776       0,     0,     0,    31,   287,     0,    38,    39,   288,     0,
     2777       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2778       0,     0,     0,     0,     0,     0,   295,     0,     0,     0,
     2779       0,    34,     0,     0,     0,     0,    37,     0,   337,   338,
     2780      40,   296,  -295,   380,     0,     0,     0,    41,    42,     0,
     2781      45,    46,   298,   299,   300,   301,     8,     9,    10,    11,
     2782      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2783      22,    23,    24,    25,     0,   339,    26,    27,    28,     0,
     2784       0,     0,    45,    46,     0,    31,     8,     9,    10,    11,
    27892785      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    27902786      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2791        0,     0,    34,     0,     0,    31,     0,     0,     0,    38,
    2792       39,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    2793       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2794       23,    24,    25,    34,     0,    26,    27,    28,     0,     0,
    2795      208,    39,     0,     0,    31,     0,     0,   456,     0,     0,
    2796        0,  1238,     0,     0,    45,    46,     0,     0,     0,     0,
     2787       0,     0,     0,    34,     0,    31,     0,     0,    37,     0,
     2788      38,    39,    40,     0,     0,     0,     0,     0,     0,    41,
     2789      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2790       0,     0,     0,    34,     0,     0,     0,     0,    37,     0,
     2791     208,    39,    40,     0,     0,    43,     0,    44,     0,    41,
     2792      42,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    27972793       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2798        0,     0,    34,     0,     0,     0,     0,     0,   271,    38,
    2799       39,     0,     0,     0,     0,    45,    46,     8,     9,    10,
    2800       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2801       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2802        0,     0,     0,     0,     0,     0,    31,   339,     0,     0,
     2794       0,     0,     0,     0,     0,    43,     0,   271,     0,     0,
    28032795       0,     0,     0,     0,    45,    46,     8,     9,    10,    11,
    28042796      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2805       22,    23,    24,    25,    34,     0,    26,    27,    28,     0,
    2806        0,    38,    39,     0,     0,    31,     8,     9,    10,    11,
     2797      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2798       0,     0,     0,     0,     0,    31,     8,     9,    10,    11,
    28072799      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2808       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2809        0,     0,     0,    34,     0,    31,     0,     0,     0,   456,
    2810       38,    39,     0,     0,     0,     0,    45,    46,     0,     0,
     2800      22,    23,    24,    25,  -295,     0,    26,    27,    28,     0,
     2801       0,     0,     0,    34,     0,    31,     0,     0,    37,     0,
     2802     337,   338,    40,     0,     0,     0,     0,     0,     0,    41,
     2803      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2804       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
     2805      38,    39,     0,     0,  -295,   643,     0,   339,     0,     0,
     2806       0,     0,     0,     0,    45,    46,     0,     0,     8,     9,
     2807      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2808      20,    21,    22,    23,    24,    25,     0,   339,    26,    27,
     2809      28,     0,     0,     0,    45,    46,     0,    31,   455,     8,
     2810       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2811      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2812      27,    28,     0,     0,     0,    34,     0,     0,    31,   455,
     2813       0,     0,    38,    39,     0,     0,     0,     8,     9,    10,
     2814      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2815      21,    22,    23,    24,    25,     0,    34,    26,    27,    28,
     2816       0,     0,     0,    38,    39,     0,    31,     0,     0,   456,
     2817       0,     0,     0,  1109,     0,     0,    45,    46,     0,     0,
    28112818       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2812        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2813       38,    39,     0,     0,     0,     0,     0,     0,   602,     0,
    2814        0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
     2819       0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
     2820     456,   208,    39,     0,  1236,     0,     0,    45,    46,     0,
     2821       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2822      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2823      26,    27,    28,     0,     0,     0,     0,     0,   271,    31,
     2824       0,     0,     0,     0,     0,    45,    46,     0,     8,     9,
     2825      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2826      20,    21,    22,    23,    24,    25,     0,    34,    26,    27,
     2827      28,     0,     0,     0,    38,    39,     0,    31,     8,     9,
     2828      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2829      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2830      28,     0,     0,     0,     0,    34,     0,    31,     0,     0,
     2831       0,   339,    38,    39,     0,     0,     0,     0,    45,    46,
    28152832       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2816        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
    2817        0,     0,     0,     0,     0,    45,    46,     2,   207,     4,
    2818        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2819       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2820       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2821        0,     0,    31,     0,   283,   284,     0,   285,  1065,     0,
    2822     1066,     0,     0,  1067,  1068,  1069,  1070,  1071,  1072,  1073,
    2823     1074,     0,     0,  1553,  1075,     0,     0,     0,  1076,  1077,
    2824       34,    33,    35,   286,    36,     0,     0,    38,    39,   650,
     2833       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2834       0,     0,    38,    39,     0,     0,     0,     0,     0,   456,
     2835       0,     0,     0,     0,     0,     0,    45,    46,     0,     0,
     2836       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2837      18,    19,    20,    21,    22,    23,    24,    25,     0,   601,
     2838      26,    27,    28,     0,     0,     0,    45,    46,     0,    31,
     2839       0,     0,     2,   207,     4,     5,     6,     7,     8,     9,
     2840      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2841      20,    21,    22,    23,    24,    25,     0,    34,    26,    27,
     2842      28,     0,     0,     0,    38,    39,     0,    31,     0,     0,
     2843       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2844       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2845       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2846       0,    44,    38,    39,     0,     0,     0,     0,    45,    46,
     2847     283,   284,     0,   285,  1063,     0,  1064,     0,     0,  1065,
     2848    1066,  1067,  1068,  1069,  1070,  1071,  1072,     0,     0,  1551,
     2849    1073,     0,     0,     0,  1074,  1075,     0,    33,  -416,   286,
     2850       0,     0,     0,     0,     0,   649,     0,     0,     0,   288,
     2851       0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2852     294,     0,     0,     0,     0,     0,     0,   295,     0,     0,
     2853       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2854       0,     0,   296,     0,   380,     0,     0,   172,     0,     0,
     2855       0,    45,    46,   298,   299,   300,   301,     0,     0,     0,
     2856       0,  1077,     0,   283,   284,  -130,   285,  1063,     0,  1064,
     2857       0,     0,  1065,  1066,  1067,  1068,  1069,  1070,  1071,  1072,
     2858       0,     0,     0,  1073,     0,     0,     0,  1074,  1075,     0,
     2859      33,     0,   286,     0,     0,     0,     0,     0,   649,     0,
     2860       0,     0,   288,     0,     0,   289,   290,   291,   292,    41,
     2861      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2862     295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2863       0,     0,     0,     0,     0,   296,     0,   380,     0,     0,
     2864     172,     0,     0,     0,    45,    46,   298,   299,   300,   301,
     2865       0,     0,     0,     0,  1077,     0,     0,     0,  -130,     2,
     2866     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2867      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2868      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2869       0,     0,     0,     0,    31,     0,   283,   284,     0,   285,
     2870    1063,     0,  1064,  1421,  1422,  1065,  1066,  1067,  1068,  1069,
     2871    1070,  1071,  1072,     0,     0,  1551,  1073,     0,     0,     0,
     2872    1074,  1075,    34,    33,    35,   286,    36,     0,     0,    38,
     2873      39,   649,     0,     0,     0,   288,     0,     0,   289,   290,
     2874     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2875       0,  1330,     0,   295,     0,     0,     0,     0,     0,     0,
     2876       0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
     2877     380,     0,     0,   172,     0,     0,     0,    45,    46,   298,
     2878     299,   300,   301,     0,     0,   283,   284,  1077,   285,  1063,
     2879       0,  1064,  1421,  1422,  1065,  1066,  1067,  1068,  1069,  1070,
     2880    1071,  1072,     0,     0,     0,  1073,     0,     0,     0,  1074,
     2881    1075,     0,    33,     0,   286,     0,     0,     0,     0,     0,
     2882     649,     0,     0,     0,   288,     0,     0,   289,   290,   291,
     2883     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2884       0,     0,   295,     0,     0,     0,     0,     0,     0,     0,
     2885       0,     0,     0,     0,     0,     0,     0,   296,     0,   380,
     2886       0,     0,   172,     0,     0,     0,    45,    46,   298,   299,
     2887     300,   301,     0,     0,   283,   284,  1077,   285,  1063,     0,
     2888    1064,     0,     0,  1065,  1066,  1067,  1068,  1069,  1070,  1071,
     2889    1072,     0,     0,     0,  1073,     0,     0,     0,  1074,  1075,
     2890       0,    33,     0,   286,     0,     0,     0,     0,     0,   649,
    28252891       0,     0,     0,   288,     0,     0,   289,   290,   291,   292,
    28262892      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2827        0,   295,     0,     0,     0,     0,     0,     0,     0,     0,
    2828        0,     0,     0,     0,  -417,     0,     0,   296,     0,   380,
    2829        0,     0,   172,     0,     0,     0,    45,    46,   298,   299,
    2830      300,   301,     0,     0,     0,     0,  1079,     0,   283,   284,
    2831     -131,   285,  1065,     0,  1066,     0,     0,  1067,  1068,  1069,
    2832     1070,  1071,  1072,  1073,  1074,     0,     0,     0,  1075,     0,
    2833        0,     0,  1076,  1077,     0,    33,     0,   286,     0,     0,
    2834        0,     0,     0,   650,     0,     0,     0,   288,     0,     0,
    2835      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2836        0,     0,     0,     0,     0,   295,     0,     0,     0,     0,
    2837        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2838        0,   296,     0,   380,     0,     0,   172,     0,     0,     0,
    2839       45,    46,   298,   299,   300,   301,     0,     0,     0,     0,
    2840     1079,     0,   283,   284,  -131,   285,  1065,     0,  1066,  1423,
    2841     1424,  1067,  1068,  1069,  1070,  1071,  1072,  1073,  1074,     0,
    2842        0,  1553,  1075,     0,     0,     0,  1076,  1077,     0,    33,
    2843        0,   286,     0,     0,     0,     0,     0,   650,     0,     0,
     2893       0,   295,   283,   284,     0,   285,     0,     0,     0,     0,
     2894       0,     0,     0,     0,     0,     0,   296,     0,   380,     0,
     2895       0,   172,     0,     0,     0,    45,    46,   298,   299,   300,
     2896     301,   286,     0,     0,     0,  1077,     0,   287,     0,     0,
    28442897       0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
    28452898       0,   293,   294,     0,     0,     0,     0,     0,     0,   295,
    28462899       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2847        0,     0,     0,     0,     0,   296,     0,   380,     0,     0,
    2848      172,     0,     0,     0,    45,    46,   298,   299,   300,   301,
    2849        0,     0,   283,   284,  1079,   285,  1065,     0,  1066,  1423,
    2850     1424,  1067,  1068,  1069,  1070,  1071,  1072,  1073,  1074,     0,
    2851        0,     0,  1075,     0,     0,     0,  1076,  1077,     0,    33,
    2852        0,   286,     0,     0,     0,     0,     0,   650,     0,     0,
    2853        0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
    2854        0,   293,   294,     0,     0,     0,     0,     0,     0,   295,
    2855        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2856        0,     0,     0,     0,     0,   296,     0,   380,     0,     0,
    2857      172,     0,     0,     0,    45,    46,   298,   299,   300,   301,
    2858        0,     0,   283,   284,  1079,   285,  1065,     0,  1066,     0,
    2859        0,  1067,  1068,  1069,  1070,  1071,  1072,  1073,  1074,     0,
    2860        0,     0,  1075,     0,     0,     0,  1076,  1077,     0,    33,
    2861        0,   286,     0,     0,     0,     0,     0,   650,     0,     0,
    2862        0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
    2863        0,   293,   294,     0,     0,     0,     0,     0,     0,   295,
    2864        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2865        0,     0,     0,     0,     0,   296,     0,   380,     0,     0,
    2866      172,     0,     0,     0,    45,    46,   298,   299,   300,   301,
    2867        0,     0,     0,     0,  1079,     2,   207,     4,     5,     6,
    2868        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2869       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2870        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2871       31,     0,   283,   284,     0,   285,     0,     0,     0,     0,
    2872        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2873        0,   283,   284,     0,   285,     0,     0,     0,    34,     0,
    2874       35,   286,    36,     0,     0,    38,    39,   287,     0,     0,
    2875        0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
    2876      286,   293,   294,     0,     0,     0,   287,  1332,     0,   295,
    2877      288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
    2878      293,   294,     0,     0,     0,   296,     0,   380,   295,     0,
    2879      283,   284,     0,   285,    45,    46,   298,   299,   300,   301,
    2880        0,     0,     0,     0,   296,     0,   380,     0,     0,   283,
    2881      284,     0,   285,   735,    46,   298,   299,   300,   301,   286,
    2882        0,     0,     0,     0,     0,   650,     0,     0,     0,   288,
    2883        0,     0,   289,   290,   291,   292,    41,    42,   286,   293,
    2884      294,     0,     0,     0,   287,     0,     0,   295,   288,     0,
    2885        0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2886        0,     0,     0,   296,     0,   786,   295,     0,   283,   284,
    2887        0,   285,    45,    46,   298,   299,   300,   301,     0,     0,
    2888        0,     0,   296,     0,   380,     0,     0,   283,   284,     0,
    2889      285,   345,    46,   298,   299,   300,   301,   286,     0,     0,
    2890        0,     0,     0,   287,     0,     0,     0,   288,     0,     0,
    2891      289,   290,   291,   292,    41,    42,   286,   293,   294,     0,
    2892        0,     0,   287,     0,     0,   295,   288,     0,     0,   289,
    2893      290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
    2894        0,   296,     0,     0,   295,     0,   283,   284,     0,   285,
    2895       45,    46,   298,   299,   300,   301,     0,     0,     0,     0,
    2896      520,     0,     0,     0,     0,     0,     0,     0,     0,    45,
    2897       46,   298,   299,   300,   301,   286,     0,     0,     0,     0,
    2898        0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
    2899      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2900        0,     0,     0,   295,     0,     0,     0,     0,     0,     0,
    2901        0,     0,     0,     0,     0,     0,     0,     0,     0,   523,
    2902        0,     0,     0,     0,     0,     0,     0,     0,    45,    46,
    2903      298,   299,   300,   301,   206,     2,   207,     4,     5,     6,
    2904        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2905       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2906        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2907       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2909        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2910       35,     0,    36,     0,     0,   208,    39,   476,     2,   207,
    2911        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2912       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2913       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2914        0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
     2900       0,     0,     0,     0,   523,     0,     0,     0,     0,     0,
     2901       0,     0,     0,    45,    46,   298,   299,   300,   301,     2,
     2902     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2903      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2904      23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
     2905       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    29152906       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    29162907       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2917        0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
    2918        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    2919       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2920       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2921        0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
     2908       0,     0,    34,     0,    35,     0,    36,    37,     0,   175,
     2909     176,    40,     0,     0,     0,     0,     0,     0,    41,    42,
     2910     206,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2911      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2912      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2913       0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
    29222914       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    29232915       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2924        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2925      208,    39
     2916       0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
     2917       0,   208,    39,   476,     2,   207,     4,     5,     6,     7,
     2918       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2919      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2920      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2921       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2922       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2923       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2924       0,    36,     0,     0,    38,    39,     2,   207,     4,     5,
     2925       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2926      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2927       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2928       0,    31,     0,     8,     9,    10,    11,    12,    13,    14,
     2929      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2930      25,     0,     0,    26,    27,    28,   494,   495,   496,    34,
     2931       0,    35,    31,    36,     0,     0,   208,    39,     0,     0,
     2932       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2933       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2934      34,     0,     0,     0,     0,     0,     0,    38,    39
    29262935};
    29272936
    29282937#define yypact_value_is_default(yystate) \
    2929   ((yystate) == (-1415))
     2938  ((yystate) == (-1328))
    29302939
    29312940#define yytable_value_is_error(yytable_value) \
     
    29342943static const yytype_int16 yycheck[] =
    29352944{
    2936        0,     1,     1,    43,   205,     0,   186,    43,    43,   240,
    2937      186,   106,   117,   699,   220,   186,   186,   457,     0,   543,
    2938      282,   186,   657,   186,   458,   699,   186,     0,   350,    29,
    2939       30,  1007,    32,     0,     1,   187,   280,    32,   760,   610,
    2940      699,   522,     1,    43,   169,   170,   350,   630,   501,    49,
    2941       32,   612,   505,   188,    49,  1000,  1045,    57,   610,    32,
    2942      903,   156,   296,    63,   346,    32,    66,   610,    63,    69,
    2943       69,    66,   903,   612,    69,   581,    32,   610,    43,   610,
    2944        0,  1057,   781,    83,    84,  1342,   266,    39,  1044,  1045,
    2945      266,   531,   778,   610,   187,   266,   266,   202,   419,    43,
    2946      610,   266,    69,   266,   778,     0,   266,   107,   719,  1423,
    2947      110,    51,    32,     0,     1,   267,  1530,   117,   439,   778,
    2948       43,    82,     0,    28,    39,    82,   447,   262,   263,    63,
    2949      700,     4,     5,     6,     7,     8,     9,    32,   613,    64,
    2950       82,    44,    45,  1557,   619,    32,   186,   110,   148,   491,
    2951      186,   186,   722,   148,    32,   112,   156,   644,   645,   646,
    2952      112,   161,   645,   646,   427,   428,   161,    49,    39,   111,
    2953      110,    66,    39,    78,   267,   497,   663,   285,   107,    66,
    2954      663,    95,    69,  1497,  1064,   110,   186,   187,  1445,    39,
    2955       44,    45,   187,   427,   428,   110,    69,   112,    71,   133,
    2956      308,   309,   202,   132,   110,   411,    66,    44,    45,   491,
    2957      210,   257,   745,   116,   745,   210,   229,   131,    57,   219,
    2958       85,   186,   222,    83,  1076,  1077,   266,   222,   745,   229,
    2959      266,   266,   114,  1064,   130,   248,   132,    11,   346,   110,
    2960      503,   112,   186,   110,   244,   112,    82,   342,   248,   114,
    2961      737,   513,   252,   253,   737,   407,  1245,   252,   118,   522,
    2962      133,   115,    82,   186,     1,   147,   266,   267,   107,   840,
    2963      252,   110,   267,   273,   382,   111,   117,   372,   115,   252,
    2964      280,   515,   118,   117,   257,   252,   520,  1479,   840,   523,
    2965       39,   852,   397,  1145,   253,   295,   252,   840,   118,   133,
    2966      110,   161,   644,   645,   646,   457,  1295,   840,   612,   840,
    2967      113,  1010,    49,   852,   407,   821,  1261,   952,   929,    82,
    2968      425,   663,  1514,   840,  1516,   588,   431,   222,   210,   329,
    2969      840,    39,   252,   115,   329,   222,   295,   489,  1294,  1295,
    2970      365,   117,   829,   577,   369,  1427,   829,   110,   630,   349,
    2971      350,  1073,   117,   635,    90,    91,   698,   252,   240,     3,
    2972       82,   110,   222,   112,   457,   252,   366,   842,   133,   106,
    2973      370,   692,     0,   419,   252,    96,   111,   114,    96,   257,
    2974      219,   381,   117,   116,   117,     3,  1229,   903,   110,   960,
    2975      272,   127,   128,   439,  1530,   737,   489,   397,  1229,   132,
    2976      260,   447,   110,   124,   112,   265,   124,   407,   960,   979,
    2977      147,   117,   407,   117,  1550,   677,   698,   960,   111,   156,
    2978        0,  1557,   961,   110,   117,   425,   308,   133,  1308,   133,
    2979     1419,   431,   774,   433,   273,  1411,  1412,   111,    72,   534,
    2980     1023,   280,    30,  1525,   118,   132,   419,    72,  1530,    83,
    2981       84,   559,   560,   561,   117,   111,   351,   457,    83,    84,
    2982       72,   117,   462,  1419,   346,   110,   439,    72,  1550,   206,
    2983      133,    83,    84,   210,   447,  1557,   476,  1308,    83,    84,
    2984      111,   481,   111,   121,   122,   119,   117,   829,   117,   489,
    2985      117,   351,   774,   493,   489,    83,    84,   497,   493,   939,
    2986      500,   763,   502,   240,   241,   110,   133,   947,   133,  1144,
    2987      349,   493,    57,   132,   948,   759,   969,   476,   491,   699,
    2988      493,   133,   522,   699,  1005,   110,   493,   366,   699,   699,
    2989      852,   370,   667,   658,   699,   272,   699,   537,   275,   699,
    2990      540,   419,   542,   543,   110,   427,   428,   111,   852,   701,
    2991      117,  1067,   110,   993,   118,   110,   499,  1032,  1033,   296,
    2992      665,   439,   107,   522,    72,   110,   133,  1137,   132,   447,
    2993      111,   308,   432,   493,   599,    83,    84,   117,   537,   110,
    2994     1119,   540,   110,   542,   543,    80,  1308,   482,  1468,    72,
    2995       49,   113,   592,   133,   111,  1475,   111,   117,   493,   599,
    2996       83,    84,   697,   118,   112,   342,   493,    80,   701,   346,
    2997      610,   156,   612,   133,   117,   493,   641,   112,   600,   114,
    2998      117,   503,   482,   118,   111,  1195,  1196,   111,   365,   112,
    2999      133,   631,   369,   592,   111,   372,   133,  1468,    72,   112,
    3000      522,   114,    76,   965,  1475,   118,   692,   647,  1528,    83,
    3001       84,   117,   515,   653,   517,   114,   244,   520,   110,   111,
    3002      523,   117,   662,  1385,   664,   665,   666,   133,    72,   111,
    3003     1104,   614,   110,   781,   219,   618,   110,   133,   773,    83,
    3004       84,   110,    72,   889,   116,   119,   120,   117,   734,   111,
    3005      427,   428,   110,    83,    84,   117,   639,  1528,    72,   699,
    3006      643,   701,  1044,   133,   910,   664,   588,   666,   112,    83,
    3007       84,   111,   113,  1229,   714,    64,   117,   117,   455,   692,
    3008      720,   458,   112,   111,   724,   698,   133,   119,   273,   117,
    3009     1500,   110,   732,   125,   126,   280,  1506,   632,   113,   476,
    3010      971,  1023,   117,    72,   604,   745,   746,    76,   630,   110,
    3011     1472,   210,  1474,   635,    83,    84,   110,  1527,   112,   759,
    3012       55,   734,  1532,   111,   501,   110,   503,   112,   505,   117,
    3013      895,   113,   632,   732,   119,   120,   133,   637,   515,   115,
    3014      517,   110,   241,   520,   115,   522,   523,   939,   111,   133,
    3015      119,   120,   631,   381,   117,   947,   111,   534,   133,   111,
    3016     1324,   774,   117,    98,   349,   117,   831,  1529,   647,  1325,
    3017      111,   836,   113,   272,   692,    72,   117,    74,    75,   115,
    3018      113,   366,  1164,   662,   117,   370,    83,    84,   111,   110,
    3019      725,   132,   133,   111,   117,  1036,  1406,   296,   113,   117,
    3020      840,   111,   117,   110,   739,   112,   939,   117,  1534,   308,
    3021       82,   588,   852,  1423,   947,   837,   734,   113,   115,   110,
    3022     1534,   117,   599,  1379,   110,   725,  1382,    10,    11,    12,
    3023       13,    14,   113,  1135,   462,  1534,    70,  1139,  1140,   739,
    3024       74,   111,  1164,    77,   111,    79,    82,   117,   433,   120,
    3025      117,   111,    86,   630,   129,   895,    39,   117,   635,   194,
    3026      925,   130,   902,   903,   641,    94,   110,    72,   112,    74,
    3027       75,  1427,   500,  1135,   502,  1023,  1432,  1139,    83,    84,
    3028      759,   903,   217,   132,    67,   925,  1496,  1497,   112,     0,
    3029      903,   874,   227,   110,  1059,   112,   903,   110,   833,   939,
    3030       92,    93,   119,   120,   903,   110,  1462,   947,   111,   110,
    3031      115,   112,  1294,   110,   117,    72,  1064,    74,    75,    76,
    3032      697,    32,   110,  1245,   112,   965,    83,    84,   110,   111,
    3033      112,   970,    43,   833,  1208,  1209,   113,  1211,    49,   110,
    3034      113,   112,   719,  1217,   113,   985,  1220,   111,   119,   120,
    3035       88,    89,    63,  1255,   994,    66,   455,    49,    69,   458,
    3036      111,   296,  1002,   970,   110,  1005,   112,  1007,   903,   116,
    3037      117,    63,   749,   110,    66,   112,   903,    69,   110,   213,
    3038      112,   111,  1127,   966,   111,   903,   985,   110,    72,   112,
    3039       74,    75,  1548,   110,   111,   112,   773,   111,  1554,    83,
    3040       84,   111,   704,  1002,   706,   110,  1005,   113,  1007,  1565,
    3041      110,   111,   112,  1569,   599,   112,   515,  1057,   517,   117,
    3042      118,   520,   111,   112,   523,   653,   113,  1067,   112,  1509,
    3043     1070,  1071,  1072,   110,   111,   112,    72,   148,    74,    75,
    3044     1105,  1343,  1064,   970,   115,  1347,   631,    83,    84,   971,
    3045      161,  1064,    58,    59,   831,  1095,   148,  1064,  1057,   836,
    3046      116,   117,   647,   566,   567,   568,   569,   117,  1067,   161,
    3047      132,  1070,  1071,  1072,   115,   186,   187,   662,   115,  1559,
    3048      110,    10,    11,    12,    13,    14,   714,  1127,   113,  1224,
    3049      111,  1026,   720,   117,   118,   187,   724,   117,   118,   210,
    3050      111,  1023,    10,    11,    12,    13,    14,  1381,   113,   444,
    3051       39,   222,     4,     5,     6,     7,     8,     9,   210,   353,
    3052      113,   355,    72,   113,    74,    75,  1026,    44,    45,  1064,
    3053      222,    39,   113,    83,    84,   562,   563,  1064,    67,   564,
    3054      565,   252,   118,   478,   570,   571,  1064,  1449,   925,   118,
    3055      118,  1164,   929,   117,    29,   266,    58,    59,    60,    67,
    3056      110,   113,  1202,   111,   111,   115,   115,   118,  1207,   111,
    3057      116,   948,   116,   116,   759,   110,   117,    69,   111,    71,
    3058      515,   110,   118,   112,  1224,   520,   111,   117,   523,  1229,
    3059      119,   120,   969,   970,   971,  1267,  1268,  1269,   111,   133,
    3060     1207,   111,   110,   700,   112,   111,   111,  1229,   117,   443,
    3061     1249,   119,   120,   111,   111,   111,  1229,   473,   329,    29,
    3062      719,   111,  1229,   111,   111,   722,   111,  1267,  1268,  1269,
    3063     1229,   111,  1245,    85,    86,    87,   113,   329,   111,   350,
    3064        3,   111,  1249,   111,   111,     3,  1023,    10,    11,    12,
    3065       13,    14,    10,    11,    12,    13,    14,  1402,   110,   116,
    3066      112,   111,   114,   115,   111,   111,   132,   895,  1267,  1268,
    3067     1269,  1206,   111,  1544,   902,   111,    39,   117,   113,  1206,
    3068     1207,    39,   113,   111,  1324,  1325,  1308,     0,     1,   111,
    3069      117,   111,   118,   117,  1229,  1308,   407,   115,   117,   113,
    3070      111,  1308,  1229,  1342,    67,   117,  1206,   111,   117,    67,
    3071      111,  1229,   110,   113,  1534,   407,   110,   814,  1534,    32,
    3072      110,   110,  1249,  1534,  1534,  1324,  1325,  1104,  1105,  1534,
    3073       43,  1534,   110,   113,  1534,  1342,    49,    72,   133,  1379,
    3074      925,    76,  1382,  1535,   118,   680,   457,   116,    83,    84,
    3075       63,   111,   111,    66,   689,   116,    69,   111,   693,   130,
    3076      116,  1401,  1402,   115,  1509,   113,   994,  1559,  1303,   133,
    3077      111,  1411,  1412,  1308,   117,   110,  1303,   112,   117,   113,
    3078     1379,  1308,   493,  1382,   119,   120,   497,  1427,     3,   113,
    3079     1308,   111,  1432,   106,   891,    10,    11,    12,    13,    14,
    3080      111,   114,  1535,  1303,   117,   118,  1445,   111,   113,    47,
    3081     1450,   113,  1411,  1412,   113,  1342,     4,     5,     6,     7,
    3082        8,     9,  1462,   111,    39,   681,  1559,   113,  1427,   113,
    3083      929,   113,   133,  1432,   147,   148,   133,   133,  1445,   133,
    3084      133,   116,   111,   156,   157,    33,  1468,  1224,   161,   948,
    3085      116,  1450,    67,  1475,  1534,  1468,   118,   111,  1534,  1534,
    3086      113,  1468,  1475,  1462,   116,   113,   113,  1095,  1475,  1509,
    3087     1510,   113,  1249,   186,   187,    60,   113,   113,   113,  1519,
    3088      113,    69,   979,    71,   111,  1525,   111,   113,   111,   202,
    3089     1530,   113,   110,   110,  1534,  1535,   110,   210,   111,   610,
    3090     1535,   612,   133,   115,   113,   113,  1528,   118,  1548,   222,
    3091     1550,  1510,   111,  1010,  1554,  1528,   113,  1557,  1445,  1559,
    3092     1519,  1528,  1401,    96,  1559,  1565,  1525,   240,   241,  1569,
    3093      111,  1530,    96,  1468,    72,   110,    74,    75,    76,   252,
    3094     1475,  1468,   110,   133,   116,    83,    84,   260,  1475,  1548,
    3095     1468,  1550,   265,   266,   267,  1554,   113,  1475,  1557,   272,
    3096      111,   817,   111,    66,  1061,  1342,  1565,   111,   111,   117,
    3097     1569,   827,   110,    76,  1202,    72,    42,    74,    75,    76,
    3098      133,   119,   120,   296,   118,   841,    83,    84,   699,   111,
    3099      701,   133,   927,  1528,   111,   308,    96,    96,    26,    27,
    3100       28,  1528,   133,   111,   111,  1104,   133,   118,   133,   111,
    3101     1528,   324,   116,   110,   133,   118,   329,   111,   113,   110,
    3102      113,   133,  1544,   111,   116,   111,   116,   133,   111,   342,
    3103      111,  1079,   572,   346,   745,   746,   573,   350,   351,  1224,
    3104     1137,  1229,   574,    72,   575,    74,    75,    76,   576,  1497,
    3105     1387,  1140,   365,   190,    83,    84,   369,  1569,   161,   372,
    3106      197,  1318,  1475,    72,  1347,    74,    75,    76,  1445,   455,
    3107      455,    99,  1095,   101,    83,    84,   724,   706,   592,    66,
    3108      994,   110,   947,   112,   397,   949,   895,   681,   659,   118,
    3109      119,   120,   749,   967,   407,  1249,   493,   580,  1195,  1196,
    3110     1477,   110,  1479,   112,   759,    72,   580,    74,    75,    76,
    3111      119,   120,   425,    -1,   427,   428,    83,    84,   431,   222,
    3112      580,   434,    72,    -1,    74,    75,    76,    -1,    -1,   840,
    3113       -1,   118,   269,    83,    84,    -1,    -1,  1514,    -1,  1516,
    3114     1075,   852,   455,   110,   457,   458,    10,    11,    12,    13,
    3115       14,    -1,   119,   120,   182,    -1,    -1,   260,    -1,    -1,
    3116      110,    -1,   265,    -1,   192,   193,    -1,  1544,   481,   197,
    3117       -1,   199,   200,    -1,   161,    39,   489,   280,   491,    -1,
    3118      493,    -1,    -1,    -1,   497,  1041,  1042,   324,    -1,    -1,
    3119      503,    -1,    -1,    -1,    -1,   332,    -1,    -1,   335,    -1,
    3120       -1,   473,   515,    67,   517,    -1,    -1,   520,    72,   522,
    3121      523,    -1,    76,    -1,    -1,    -1,  1401,    -1,   531,    83,
    3122       84,   534,   535,   817,    -1,    -1,    -1,    72,   939,    74,
    3123       75,    76,    -1,   827,    -1,   222,   947,    -1,    83,    84,
    3124       -1,    -1,    -1,  1099,  1100,    -1,   110,   841,   351,    -1,
    3125       -1,    -1,    -1,    -1,   965,   119,   120,    -1,    -1,    -1,
    3126       -1,    -1,   399,    85,    86,    87,   403,   580,   581,    -1,
    3127       -1,    -1,    -1,   260,    -1,   588,    -1,    -1,   265,    -1,
    3128        0,    10,    11,    12,    13,    14,   599,   600,   110,    -1,
    3129      112,   604,   114,   115,    -1,    -1,    -1,   610,    -1,   612,
    3130       -1,    10,    11,    12,    13,    14,    -1,     0,     1,  1406,
    3131       39,    -1,    32,    -1,    -1,    -1,    -1,   630,    -1,    -1,
    3132       -1,    -1,   635,    -1,   637,    -1,  1423,    -1,   641,   432,
    3133       39,   644,   645,   646,    -1,    -1,    -1,    -1,    67,    32,
    3134       -1,    -1,    -1,    72,    -1,    -1,   449,    76,    -1,    69,
    3135      663,   488,   665,    -1,    83,    84,    49,    72,    67,    74,
    3136       75,    76,    -1,    72,   351,    74,    75,    76,    83,    84,
    3137       -1,    -1,    -1,    -1,    83,    84,    69,    -1,  1477,   482,
    3138     1479,   110,  1317,    -1,   697,   698,   699,  1243,   701,    -1,
    3139      119,   120,    -1,    -1,    -1,   110,    -1,   112,    -1,  1496,
    3140     1497,   110,    -1,   112,   119,   120,   719,    -1,    -1,   681,
    3141      119,   120,    -1,   106,    -1,  1514,    -1,  1516,    -1,  1275,
    3142       -1,    -1,    -1,    -1,   737,   738,   739,  1283,  1284,  1285,
    3143       -1,    -1,   745,   746,    -1,    -1,    -1,   157,    72,    -1,
    3144       74,    75,    76,   580,   581,   432,    -1,  1041,  1042,    83,
    3145       84,    -1,    -1,    -1,    -1,   148,    -1,    -1,    -1,    -1,
    3146      773,   774,    -1,   156,   157,   778,   779,    -1,    -1,    -1,
    3147       -1,    -1,    -1,    -1,    -1,  1331,   110,    -1,   112,    -1,
    3148       -1,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,
    3149       -1,    -1,    -1,    -1,   187,   482,    -1,    -1,    -1,    -1,
    3150       -1,   604,    -1,    -1,    -1,  1099,  1100,    -1,   821,   202,
    3151       -1,   231,   205,   206,    -1,    -1,   829,   210,   831,    -1,
    3152      833,    -1,    -1,   836,   837,    -1,    -1,   840,    -1,   632,
    3153       -1,   668,   252,    -1,   637,   672,    -1,   257,   231,   852,
    3154       -1,  1476,   235,  1478,   237,   817,    -1,    -1,    -1,    -1,
    3155       -1,    -1,    -1,   246,    -1,   827,   584,   585,    -1,   252,
    3156       -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,   705,   841,
    3157       -1,    -1,    -1,    -1,   267,    -1,    -1,    -1,  1513,    -1,
    3158     1515,    -1,   275,    -1,    -1,   613,    -1,    -1,   616,   617,
    3159      903,   619,    -1,   621,   622,    -1,    -1,    -1,   626,   627,
    3160       -1,    -1,    97,    98,    99,   100,   101,   102,   103,   104,
    3161      105,   106,   925,   108,    -1,    -1,   929,   604,    -1,    -1,
    3162       -1,    -1,   725,  1558,    -1,  1560,   939,    -1,    -1,    -1,
    3163       -1,    -1,   352,    -1,   947,   948,   739,   132,  1573,  1574,
    3164       -1,    -1,    -1,    -1,    -1,   632,    -1,   960,   961,   342,
    3165      637,    -1,   965,   346,    -1,    -1,   759,   970,   971,   352,
     2945       0,     1,     1,    43,   205,     0,   186,    43,    43,   186,
     2946     240,   117,   186,   543,   698,   186,   282,   611,     0,  1062,
     2947     186,   186,   106,   220,   186,   629,   698,   458,   656,    29,
     2948      30,   522,    32,     0,     1,   698,   609,    32,   350,   609,
     2949     169,   170,     1,    43,   187,   998,   901,   609,   901,    49,
     2950      32,   457,   280,     0,    49,   609,     0,    57,   609,  1005,
     2951     350,   609,   611,    63,   499,    32,    66,   609,    63,    69,
     2952      69,    66,   156,  1340,    69,   501,  1042,  1043,  1043,   505,
     2953     718,    57,    43,    83,    84,    32,   266,   187,    32,   266,
     2954     759,    32,   266,   777,  1421,   266,   202,   188,    43,    66,
     2955     266,   266,    69,   580,   266,   777,     0,   107,   419,  1055,
     2956     110,    43,   780,   107,   777,    63,   473,   117,    39,    39,
     2957     257,   427,   428,    39,   267,   531,   365,    95,   439,   116,
     2958     369,   107,    82,    28,   110,   112,   447,   131,    32,   116,
     2959     285,   644,   645,   612,    82,   132,   186,   109,   148,   618,
     2960     186,   186,   109,   148,    51,   346,   156,    44,    45,   662,
     2961     110,   161,   130,   308,   309,    82,   161,   267,  1495,    44,
     2962      45,   262,   263,    64,   744,    82,  1443,    49,   613,    39,
     2963      44,    45,   617,    78,   132,   497,   186,   187,   109,   109,
     2964     111,   111,   187,   744,    82,   111,   744,   503,   109,    39,
     2965     117,   346,   202,   638,   111,  1074,  1075,   642,    85,  1062,
     2966     210,    96,   109,   699,   411,   210,   522,   110,   109,   219,
     2967     131,   109,   222,   116,   116,   186,   266,   222,   115,   229,
     2968     266,   266,    82,   736,   491,   721,   113,   382,   123,   114,
     2969     132,   186,   114,   219,   244,    39,    39,   513,   248,   109,
     2970     114,   111,   252,   253,   186,   222,   850,   252,   342,   109,
     2971     643,   644,   645,  1306,   407,   838,   266,   267,   838,   109,
     2972     252,   111,   267,   273,  1143,   147,   838,   116,  1243,   662,
     2973     280,   587,   419,  1477,   838,   252,    11,   838,   372,   927,
     2974     838,   397,   110,   132,   253,   295,   838,   273,     0,   117,
     2975     491,   850,   439,   110,   280,   252,  1259,   407,   252,   116,
     2976     447,   252,    49,   257,   457,   109,   229,   111,  1512,   425,
     2977    1514,   611,   950,   680,   827,   431,  1292,  1293,  1293,   329,
     2978      32,   109,    72,    96,   329,   248,   295,   473,   210,   110,
     2979    1008,    43,   819,    83,    84,   116,   489,    49,   110,   349,
     2980     350,     0,     1,   736,   116,  1528,    82,   457,   252,   598,
     2981     123,    63,    80,   257,    66,   959,   366,    69,   240,  1425,
     2982     370,   840,  1227,   349,  1227,  1548,   112,   114,   296,  1528,
     2983     691,   381,  1555,    32,   110,   958,   643,   644,   645,   489,
     2984     366,   117,   132,   111,   370,   113,   958,   397,   114,   117,
     2985     272,   640,  1071,     0,   958,   662,  1555,   407,   115,   116,
     2986     676,   116,   407,   558,   559,   560,    72,  1021,    74,    75,
     2987      69,   109,   110,  1466,   131,   425,   116,    83,    84,   116,
     2988    1473,   431,   116,   433,   190,    32,   308,   872,   629,   116,
     2989     697,   197,   132,   634,   827,   132,   148,     3,   132,    72,
     2990     534,  1417,  1417,  1306,   116,   111,     3,   457,   815,   161,
     2991      83,    84,   462,  1409,  1410,   110,    72,  1523,   825,    66,
     2992     132,   116,  1528,   210,   346,   419,   476,    83,    84,   736,
     2993     110,   481,   839,  1526,   186,   187,   112,   117,   111,   489,
     2994     116,   977,  1548,   493,   489,   439,   762,   497,   493,  1555,
     2995     500,   131,   502,   447,   241,   111,   697,     0,   210,   427,
     2996     428,   493,  1003,   269,  1142,   946,   773,   476,   698,    57,
     2997     222,   698,   522,  1117,   698,   419,   493,   698,   657,   964,
     2998     758,   937,   698,   698,     0,   272,   698,   537,   850,   945,
     2999     540,   967,   542,   543,   680,   439,   493,   491,   112,   493,
     3000     252,   116,   116,   447,   691,   427,   428,   700,   664,   296,
     3001     850,  1030,  1031,   522,   266,   120,   121,   132,   324,   107,
     3002     827,   308,   110,    80,   110,   666,   332,    72,   537,   335,
     3003     116,   540,   773,   542,   543,   991,   109,   118,    83,    84,
     3004     829,   591,   116,   124,   125,   834,   733,   515,   598,   493,
     3005     700,   110,   520,   252,   111,   523,   113,   116,   132,   609,
     3006     117,   611,   696,  1466,   680,   112,   131,   599,   156,   116,
     3007    1473,   110,   116,   118,   109,   222,   116,   329,   116,    72,
     3008     630,   503,   591,    76,   109,   780,   111,  1306,   132,   110,
     3009      83,    84,   132,   399,   132,   116,   646,   403,   350,  1135,
     3010     522,   963,   652,    70,   630,   252,    72,    74,   576,   109,
     3011      77,   661,    79,   663,   664,   665,   109,    83,    84,    86,
     3012     646,  1102,   110,  1526,   109,   118,   119,   109,   116,   815,
     3013      72,   219,  1039,  1040,   923,   661,     3,   109,   772,   825,
     3014     887,    83,    84,    10,    11,    12,    13,    14,   698,   129,
     3015     700,   131,   110,   839,   663,   407,   665,  1193,  1194,   117,
     3016     109,   908,   111,   713,  1383,   587,   132,   109,   455,   719,
     3017     116,   458,    39,   723,    90,    91,    72,   116,    74,    75,
     3018     112,   731,   488,   109,   116,   273,   132,    83,    84,   969,
     3019    1097,  1098,   280,   132,   744,   745,   110,   691,   110,   815,
     3020      67,   110,   116,   697,   351,   457,   110,   629,   758,   825,
     3021     126,   127,   634,   109,   893,    72,  1133,   110,   114,   110,
     3022    1137,   110,   731,   839,   112,   116,    83,    84,   515,   109,
     3023     517,   111,   758,   520,   110,  1042,   523,  1498,    72,   733,
     3024     116,   493,  1322,  1504,   937,   497,   213,   691,     3,    83,
     3025      84,  1470,   945,  1472,   111,    10,    11,    12,    13,    14,
     3026      72,   349,    74,    75,  1525,   109,    55,   111,   109,  1530,
     3027     699,    83,    84,   579,   580,     0,     1,   111,   366,   773,
     3028    1021,   109,   370,  1034,    39,   110,   115,   937,   838,   733,
     3029     109,   116,   721,    72,   493,   945,    66,    76,  1532,   109,
     3030     850,   111,   114,   835,    83,    84,   132,    32,  1527,    98,
     3031    1532,    64,    67,    83,  1103,    88,    89,  1133,   110,  1532,
     3032     114,  1137,  1138,   109,   116,    72,  1021,    74,    75,    76,
     3033     109,   109,   111,   111,  1241,   482,    83,    84,   109,   118,
     3034     119,    66,   132,   893,    69,   433,   493,   109,   118,   111,
     3035     900,   901,   110,  1039,  1040,  1162,   112,   609,   116,   611,
     3036     114,   667,   109,   132,   111,   671,  1273,  1062,  1404,   901,
     3037     117,   118,   119,   923,  1281,  1282,  1283,   109,  1057,   111,
     3038      85,    86,    87,   812,   901,  1421,   353,   937,   355,    72,
     3039     132,   161,   901,    76,   515,   945,   517,   110,   704,   520,
     3040      83,    84,   523,   116,   109,   194,   111,   901,   113,   114,
     3041     114,  1097,  1098,   963,    10,    11,    12,    13,    14,   968,
     3042     109,  1162,  1329,  1039,  1040,   109,   109,   111,   217,    72,
     3043      82,   718,   157,   983,   109,   118,   119,  1253,   227,   110,
     3044      83,    84,   992,    39,   109,   116,   698,   703,   700,   705,
     3045    1000,   968,   222,  1003,   112,  1005,    82,   901,  1494,  1495,
     3046     889,     4,     5,     6,     7,     8,     9,    92,    93,  1125,
     3047     119,    67,   116,   117,   983,    72,   443,    74,    75,    76,
     3048     128,  1097,  1098,   110,   631,  1292,    83,    84,   129,   116,
     3049     260,  1000,   744,   745,  1003,   265,  1005,   222,   110,   109,
     3050      94,   111,  1243,   131,   116,  1055,   111,   296,   118,   119,
     3051     598,   109,   109,   819,   111,  1065,   115,   116,  1068,  1069,
     3052    1070,   118,   119,   110,   111,  1341,    69,   252,    71,  1345,
     3053    1062,    58,    59,    10,    11,    12,    13,    14,    72,   109,
     3054      74,    75,   630,  1093,   112,  1062,  1055,   969,   977,    83,
     3055      84,  1507,   109,   110,   111,  1241,  1065,   112,   646,  1068,
     3056    1069,  1070,    39,   110,   112,   112,   115,   116,  1062,   116,
     3057     109,   110,   111,   661,   110,  1125,   109,   724,   110,  1008,
     3058     110,   351,    44,    45,   131,   132,   838,  1273,  1222,   132,
     3059      67,   738,   109,   110,   111,  1281,  1282,  1283,   850,  1021,
     3060     110,  1557,   116,   117,     4,     5,     6,     7,     8,     9,
     3061     110,     4,     5,     6,     7,     8,     9,    72,  1062,    74,
     3062      75,    76,   109,   110,   111,   931,   116,   117,    83,    84,
     3063    1059,  1447,   109,    33,   111,   110,   109,   901,   111,   111,
     3064     927,   118,   119,  1329,   112,   118,   119,   569,   570,    72,
     3065    1200,    74,    75,   112,   109,   444,  1205,  1273,   114,   946,
     3066      83,    84,   432,   118,   119,  1281,  1282,  1283,  1162,    69,
     3067     758,    71,  1222,   109,   116,   111,    69,  1227,    71,    85,
     3068      86,    87,   118,   119,   831,   937,   109,  1204,  1205,   478,
     3069     131,   114,   114,   945,   114,  1227,   561,   562,  1247,    30,
     3070     563,   564,   901,   109,  1010,   111,  1135,   113,   114,   434,
     3071    1227,   963,   482,  1329,   109,  1265,  1266,  1267,  1227,   110,
     3072     112,  1027,    58,    59,    60,    72,   515,    74,    75,    76,
     3073    1247,   520,   110,  1227,   523,   112,    83,    84,  1206,  1207,
     3074     112,  1209,   112,   112,  1400,    29,   117,  1215,   116,  1243,
     3075    1218,   117,    83,    84,   901,   117,  1265,  1266,  1267,  1265,
     3076    1266,  1267,  1542,   112,  1193,  1194,   110,   110,   493,   968,
     3077     115,   117,  1322,  1323,  1306,     0,     1,    66,   565,   566,
     3078     567,   568,   114,  1227,  1301,   110,   115,    76,   115,  1306,
     3079     116,  1340,    72,   109,    74,    75,    76,   110,  1104,   132,
     3080     110,  1065,  1532,    83,    84,  1532,   110,    32,  1532,   116,
     3081     535,  1532,  1306,  1322,  1323,  1102,  1532,  1532,    43,   117,
     3082    1532,   116,   110,  1340,    49,   110,    29,  1377,    49,   118,
     3083    1380,   110,   110,   603,   110,   923,   110,   110,    63,   110,
     3084    1533,    66,    63,   110,    69,    66,   110,   110,    69,  1399,
     3085    1400,  1507,   110,   110,   110,   110,   110,   110,   110,  1409,
     3086    1410,   631,  1306,  1062,  1557,   115,   636,   112,  1377,   131,
     3087     110,  1380,   161,  1399,   599,  1425,   110,  1024,   116,   112,
     3088    1430,   106,   112,  1533,   110,   116,   110,   110,   117,   114,
     3089     679,   109,   117,   118,  1443,   114,   116,   112,  1448,   688,
     3090    1409,  1410,   116,   692,   110,   116,   116,  1557,   110,   110,
     3091    1460,  1379,   112,   244,   109,  1062,  1425,   109,   643,   644,
     3092     645,  1430,   147,   148,   109,   109,  1443,   148,   117,   112,
     3093     110,   156,   157,   222,  1466,   132,   161,   662,   115,  1448,
     3094     161,  1473,  1532,   110,   115,   110,  1532,  1532,   129,  1466,
     3095     114,  1460,   115,   112,   724,   110,  1473,  1507,  1508,   132,
     3096     116,   186,   187,  1227,   112,   116,   187,  1517,   738,   112,
     3097     110,   260,  1466,  1523,   110,  1404,   265,   202,  1528,  1473,
     3098     110,   112,  1532,  1533,   112,   210,    66,   112,  1533,   210,
     3099     110,   280,  1421,   112,  1526,   112,  1546,   222,  1548,  1508,
     3100     112,   222,  1552,    47,   110,  1555,  1205,  1557,  1517,  1526,
     3101     132,   736,  1557,  1563,  1523,   240,   241,  1567,   132,  1528,
     3102     115,   132,  1466,   132,   132,   115,   117,   252,  1227,  1473,
     3103     112,   110,  1526,   110,   115,   260,   112,  1546,   118,  1548,
     3104     265,   266,   267,  1552,   112,   112,  1555,   272,  1247,   112,
     3105     381,   112,   112,   112,  1563,   110,   112,  1204,  1567,  1323,
     3106     112,   831,   351,   109,   109,  1494,  1495,   109,    60,   110,
     3107     110,   296,    96,   110,   132,   114,   112,   112,   112,   117,
     3108    1227,   161,  1526,   308,   110,    96,     3,   109,   109,   132,
     3109     115,   110,   112,    10,    11,    12,    13,    14,   110,   324,
     3110     110,   110,   827,   116,   329,    42,   110,  1306,   329,   117,
     3111     835,   110,    96,  1377,   132,   132,  1380,   342,    96,   110,
     3112    1542,   346,    39,   110,   117,   350,   351,   132,   110,   132,
     3113     132,   462,   115,   110,  1222,   132,   925,   112,   112,   109,
     3114     365,  1340,   222,   432,   369,   110,   132,   372,   115,   115,
     3115      67,   110,   132,   110,  1301,   110,  1077,   571,   573,  1306,
     3116     449,  1425,   572,   574,  1227,  1495,  1430,   575,  1385,   500,
     3117    1567,   502,   397,  1316,  1138,  1345,   901,  1473,  1093,   945,
     3118     260,   705,   407,   455,   947,   265,   407,   455,  1475,   591,
     3119    1477,   992,   723,   482,   893,   658,  1460,   748,   965,  1247,
     3120     425,   493,   427,   428,   758,   579,   431,    -1,    -1,   434,
     3121      -1,    72,   579,    74,    75,    76,   579,    -1,    -1,    -1,
     3122      -1,    -1,    83,    84,    -1,  1512,    -1,  1514,    -1,    -1,
     3123     455,    -1,   457,   458,    -1,    -1,    -1,    -1,    -1,    -1,
     3124      -1,    -1,    -1,   968,  1443,    -1,    -1,    -1,   109,    -1,
     3125     111,    -1,    -1,    -1,  1024,    -1,   481,   118,   119,    -1,
     3126     985,    -1,    -1,    -1,   489,    -1,   491,  1466,   493,    -1,
     3127      -1,   351,   497,    -1,  1473,    -1,    -1,    -1,   503,    -1,
     3128    1532,    -1,  1546,    -1,  1073,    -1,    -1,    -1,  1552,    -1,
     3129     515,    -1,   517,    -1,    -1,   520,    -1,   522,   523,  1563,
     3130       1,    -1,    -1,  1567,    -1,    -1,   531,    -1,    -1,   534,
     3131     535,  1399,    -1,    -1,   603,    -1,    -1,  1042,  1043,  1466,
     3132      -1,   652,    -1,    -1,    -1,    -1,  1473,  1526,    -1,    -1,
     3133      -1,    -1,    10,    11,    12,    13,    14,  1062,    -1,    -1,
     3134      -1,    -1,   631,    -1,    -1,    -1,    -1,   636,    49,    -1,
     3135      -1,    -1,   432,    -1,   579,   580,    72,    -1,    74,    75,
     3136      76,    39,   587,    -1,    -1,    -1,    -1,    83,    84,    -1,
     3137      -1,    -1,    -1,   598,   599,    -1,    -1,    -1,   603,  1526,
     3138      -1,    -1,   713,    -1,   609,    -1,   611,    -1,   719,    67,
     3139      -1,    -1,   723,   109,    -1,    10,    11,    12,    13,    14,
     3140      -1,    -1,   482,    -1,   629,   106,    -1,    -1,    -1,   634,
     3141      -1,   636,    -1,   114,    -1,   640,    -1,    -1,   643,   644,
     3142     645,    -1,    -1,    -1,    39,    10,    11,    12,    13,    14,
     3143      -1,   109,    -1,   111,  1204,   724,    -1,   662,    -1,   664,
     3144     118,   119,    -1,    -1,    -1,    -1,   147,    -1,    -1,   738,
     3145      -1,    -1,    67,    -1,    39,   156,    -1,    -1,    -1,    -1,
     3146      -1,    -1,    -1,    26,    27,    28,    -1,    -1,    -1,   758,
     3147      -1,   696,   697,   698,    -1,   700,    -1,    -1,    -1,  1204,
     3148    1205,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3149      75,    76,    -1,   718,   109,    -1,   111,    -1,    83,    84,
     3150      -1,    -1,  1227,   118,   119,   206,    -1,    -1,    -1,   210,
     3151      -1,   736,   737,   738,    -1,    -1,    -1,    -1,    -1,   744,
     3152     745,    -1,  1247,   603,   109,    -1,  1315,    -1,    -1,    -1,
     3153      -1,  1301,    -1,   118,   119,    -1,    99,    -1,   101,   240,
     3154     241,    -1,   831,    -1,    -1,    -1,    -1,   772,   773,    -1,
     3155      -1,   631,   777,   778,    -1,    -1,   636,    -1,    -1,    -1,
     3156      -1,    -1,   893,   126,    -1,    -1,    -1,  1292,  1293,   900,
     3157      -1,   272,    -1,    -1,   275,    72,  1301,    74,    75,    76,
     3158      -1,  1306,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
     3159      -1,    -1,    -1,    -1,   819,   296,    -1,    -1,    -1,    -1,
     3160      -1,    -1,   827,    -1,   829,    -1,   831,   308,    -1,   834,
     3161     835,    -1,   109,   838,    -1,  1340,    -1,    -1,    -1,   182,
     3162      10,    11,    12,    13,    14,   850,    -1,   190,    -1,   192,
     3163     193,    -1,    -1,    -1,   197,    -1,   199,   200,    -1,    -1,
     3164      -1,   342,    -1,    -1,   724,   346,    -1,    -1,    -1,    39,
     3165      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   738,    -1,
     3166      -1,   992,    -1,    72,   365,    74,    75,    76,   369,    -1,
     3167      -1,   372,    -1,    -1,    83,    84,   901,    67,    -1,    -1,
     3168      -1,    -1,    72,    -1,    -1,  1474,    76,  1476,    -1,    -1,
     3169      -1,    -1,  1417,    83,    84,    -1,    -1,    -1,   923,    -1,
     3170     109,    -1,   927,    -1,    -1,    -1,   269,    -1,    -1,   118,
     3171     119,    -1,   937,    -1,    -1,    -1,    -1,    -1,  1443,   109,
     3172     945,   946,  1511,    -1,  1513,    -1,   427,   428,   118,   119,
     3173      -1,    -1,    -1,   958,   959,  1024,    -1,    -1,   963,    -1,
     3174      -1,  1466,    -1,   968,   969,    -1,    -1,    -1,  1473,    -1,
     3175      -1,   831,    -1,    -1,   455,    -1,    -1,   458,    -1,    -1,
     3176     985,    -1,  1093,    -1,    -1,    -1,   991,  1556,    -1,  1558,
     3177      -1,    -1,    -1,    -1,    -1,   476,    -1,    -1,    -1,    -1,
     3178      -1,    -1,  1571,  1572,    -1,    -1,    -1,    -1,    -1,    -1,
     3179      26,    27,    28,    -1,    -1,    -1,  1021,    -1,    -1,    -1,
     3180     501,  1526,   503,    -1,   505,    -1,    -1,    -1,    -1,    10,
     3181      11,    12,    13,    14,   515,    -1,   517,  1042,  1043,   520,
     3182      -1,   522,   523,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3183      -1,    -1,    -1,   534,    -1,    -1,    -1,  1062,    39,    10,
     3184      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3185      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
     3186      31,    32,    -1,    99,    -1,   101,    67,    -1,    39,  1200,
     3187      -1,    72,    -1,    74,    75,    76,    -1,  1102,  1103,    -1,
     3188      -1,    -1,    83,    84,    -1,    -1,   587,    -1,    -1,    -1,
     3189      -1,    -1,  1117,    -1,    -1,    -1,    67,   598,    -1,    -1,
     3190    1125,    72,    -1,    74,    75,    76,    -1,    78,   109,    -1,
     3191     111,    -1,    83,    84,    -1,  1204,    -1,   118,   119,    -1,
     3192      10,    11,    12,    13,    14,    -1,    -1,    -1,   629,    -1,
     3193      -1,    -1,    -1,   634,     0,     1,    -1,  1162,   109,   640,
     3194     111,    -1,    -1,    -1,  1024,    -1,   182,   118,   119,    39,
     3195      -1,    -1,    -1,    -1,    -1,    -1,   192,   193,    -1,    -1,
     3196      -1,   197,    -1,   199,   200,    -1,    32,    97,    98,    99,
     3197     100,   101,   102,   103,   104,   105,   106,    67,    -1,  1204,
     3198    1205,    -1,    72,    49,    74,    75,    76,    72,    -1,    74,
     3199      75,    76,    -1,    83,    84,   696,    -1,  1222,    83,    84,
     3200      -1,   131,  1227,    69,     0,    -1,    -1,    -1,    -1,    -1,
     3201      -1,    -1,  1301,    -1,    -1,    -1,    -1,   718,  1243,   109,
     3202     583,   584,  1247,    -1,   109,    -1,   111,    -1,   118,   119,
     3203      -1,    -1,    -1,   118,   119,    -1,    32,    -1,    -1,    -1,
     3204     106,    -1,    -1,    -1,    -1,    -1,    -1,   748,    -1,   612,
     3205      -1,    -1,   615,   616,    -1,   618,    -1,   620,   621,    -1,
     3206      -1,    -1,   625,   626,    -1,    -1,    -1,  1292,  1293,    -1,
     3207      -1,   772,    -1,    69,    -1,    -1,  1301,    -1,    -1,    -1,
     3208      -1,  1306,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3209     156,   157,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    31663210      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3167       -1,    -1,   365,    -1,   987,    -1,   369,    -1,    -1,   372,
    3168      993,  1275,   710,   711,   821,    -1,    -1,    -1,   716,  1283,
    3169     1284,  1285,    -1,    10,    11,    12,    13,    14,    -1,   419,
     3211      -1,    -1,    -1,    -1,    -1,  1340,    10,    11,    12,    13,
     3212      14,   187,    -1,    39,  1204,    -1,    -1,    -1,   829,    -1,
     3213      -1,    -1,    -1,   834,    -1,    -1,   202,    -1,    -1,   205,
     3214     206,   704,    -1,    -1,   210,    39,   709,   710,    -1,    -1,
     3215      -1,    67,   715,    -1,    -1,    -1,    72,    -1,    74,    75,
     3216      76,   157,    -1,    -1,    -1,   231,    -1,    83,    84,   235,
     3217      -1,   237,    -1,    67,    -1,  1400,    -1,    -1,    72,    -1,
     3218     246,    -1,    76,    -1,    -1,    -1,   252,    -1,    -1,    83,
     3219      84,   257,  1417,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3220      -1,   267,   118,   119,    -1,    -1,    -1,    -1,    -1,   275,
     3221      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,  1443,    -1,
     3222      -1,  1301,   923,    -1,   118,   119,   927,    -1,    -1,    -1,
     3223      -1,    -1,    -1,    -1,    -1,   231,    -1,    -1,    -1,    -1,
     3224      -1,  1466,    -1,    -1,    -1,   946,    -1,    -1,  1473,    -1,
     3225    1475,    -1,  1477,    -1,    -1,    -1,   252,    -1,    -1,    -1,
     3226      -1,   257,    -1,    -1,    -1,    -1,   967,   968,   969,    -1,
     3227      -1,    -1,    -1,    -1,    -1,    -1,   342,    -1,    -1,    -1,
     3228     346,    -1,  1507,    -1,    -1,    -1,   352,  1512,    -1,  1514,
     3229      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,
     3230      -1,  1526,    -1,   369,    -1,    -1,   372,  1532,  1533,    -1,
     3231      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1542,    -1,    -1,
     3232    1021,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3233      -1,    -1,  1557,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3234      -1,    -1,    -1,    -1,    -1,    -1,    -1,   583,   584,    -1,
     3235      -1,    -1,    -1,   419,    -1,    -1,   352,    -1,    -1,    -1,
     3236      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   434,    -1,
     3237      -1,     0,    -1,   439,    -1,    -1,   612,    -1,    -1,   615,
     3238     616,   447,   618,    -1,   620,   621,    -1,    -1,    -1,   625,
     3239     626,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
     3240      -1,  1102,  1103,    32,    -1,    -1,    -1,   473,    -1,    -1,
     3241     476,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3242      39,    -1,    -1,   419,    -1,   491,    -1,   493,    -1,    -1,
     3243      -1,    -1,    -1,    -1,    -1,   501,    -1,    -1,   434,   505,
     3244      69,    -1,    -1,   439,    -1,    -1,    -1,    -1,    67,    -1,
     3245      -1,   447,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3246      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,   534,   535,
     3247      -1,    -1,    -1,   709,   710,    -1,    -1,   473,     7,   715,
     3248      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
     3249     109,    -1,   111,    -1,    -1,   491,    -1,   493,    -1,   118,
     3250     119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3251      39,    40,    -1,    -1,   580,    -1,    -1,    -1,    -1,    -1,
     3252      -1,  1222,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,
     3253      -1,    -1,   598,   599,    -1,    -1,  1099,    66,    67,   535,
     3254      -1,    -1,    -1,    72,    -1,   611,  1247,    76,    -1,    -1,
     3255      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3256      -1,    -1,    -1,   629,    -1,    94,    -1,    -1,   634,    -1,
     3257      -1,    -1,    -1,    -1,   640,    -1,    -1,   643,   644,   645,
     3258     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3259     119,   120,   121,   122,   123,    -1,   662,    -1,    -1,    -1,
     3260      -1,    -1,    -1,   599,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,   680,    -1,    -1,    -1,    -1,    -1,
     3262      -1,    -1,    -1,   252,    -1,   691,    -1,    -1,   257,    -1,
     3263     696,   697,    -1,    -1,   700,    -1,    -1,    -1,    -1,  1340,
     3264      -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,   644,   645,
    31703265      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3171     1023,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,   439,
    3172       -1,    -1,    39,    -1,    -1,    -1,   419,   447,    -1,    -1,
    3173      833,  1044,  1045,    -1,    -1,    -1,    -1,  1331,   725,    -1,
    3174       -1,   434,    -1,    -1,    -1,    -1,   439,    -1,    -1,    -1,
    3175       67,  1064,   739,   473,   447,    72,    -1,    74,    75,    76,
    3176       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,  1041,
    3177     1042,   491,    -1,   493,    -1,    -1,    -1,    -1,    -1,    -1,
    3178      473,    -1,    -1,   476,    -1,    -1,    -1,    -1,    -1,    -1,
    3179       -1,  1104,  1105,   110,    -1,   112,   933,    -1,   491,    -1,
    3180      493,    -1,   119,   120,    -1,     0,  1119,    -1,   501,    -1,
    3181       -1,    -1,   505,    -1,  1127,   535,    -1,    -1,    -1,    -1,
    3182       -1,    -1,    -1,  1534,    -1,    -1,    -1,  1099,  1100,    -1,
    3183       -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
    3184       -1,   534,   535,    -1,    -1,    -1,   833,    -1,    -1,    -1,
    3185       -1,  1164,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3266      -1,  1224,    -1,    -1,    -1,    -1,   662,   733,    -1,    -1,
     3267     736,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,
     3268      -1,    -1,   748,    -1,   680,    -1,    -1,    -1,    -1,    -1,
     3269      -1,    -1,    -1,    -1,    -1,   691,    -1,    -1,    -1,    -1,
     3270      -1,   697,    -1,    -1,    -1,    -1,   772,   773,    -1,    -1,
     3271      -1,    -1,   778,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3272      -1,    -1,    -1,   352,    -1,    -1,    -1,    -1,    -1,    -1,
     3273      -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,
     3274     736,    -1,  1443,    -1,    -1,    -1,    -1,    -1,    -1,   815,
     3275      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,
     3276      -1,   827,    -1,   829,    -1,    -1,   832,    -1,   834,   835,
     3277      -1,    -1,    -1,   839,  1475,    -1,  1477,   773,    -1,    -1,
     3278      -1,    -1,    -1,   849,    -1,    -1,    -1,    -1,    -1,    -1,
     3279     419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3280      -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,
     3281     439,  1512,    -1,  1514,    -1,    -1,    -1,    -1,   447,   815,
     3282      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,
     3283      -1,   827,    -1,    -1,    -1,   901,   832,    -1,    -1,   835,
     3284      -1,  1542,    -1,   839,   473,    -1,    -1,    -1,    -1,    -1,
     3285      -1,    -1,    -1,    -1,    -1,    -1,     0,   923,    -1,    -1,
     3286      -1,    -1,   491,  1099,   493,    37,    38,    -1,    40,    -1,
     3287      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3288      20,    21,    22,    23,    24,    25,    26,    27,    32,    -1,
     3289      30,    31,    32,   959,    66,    -1,    -1,    -1,    -1,    39,
     3290      72,   967,   968,    -1,    76,   901,   535,    79,    80,    81,
     3291      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,   985,
     3292      -1,    -1,    94,    -1,    -1,    69,     0,    67,    -1,    -1,
     3293      -1,    -1,    72,    -1,    74,    75,    76,   109,    -1,   111,
     3294      -1,    -1,   114,    83,    84,    -1,   118,   119,   120,   121,
     3295     122,   123,    -1,    -1,    -1,  1021,    -1,    -1,    32,    -1,
     3296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1034,   109,
     3297     599,   111,    -1,  1039,  1040,    -1,  1042,  1043,   118,   119,
     3298      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1224,   985,
     3299      -1,    -1,    -1,    -1,    -1,    69,  1062,    -1,    -1,    -1,
     3300      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3301      -1,    -1,    -1,   157,   643,   644,   645,    -1,    -1,    -1,
     3302      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3303      -1,  1097,  1098,   662,    -1,    -1,    -1,  1103,    -1,    -1,
     3304      -1,    -1,    -1,  1039,  1040,    -1,  1042,  1043,    -1,    -1,
     3305      -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3306      -1,    -1,   691,    -1,    -1,    -1,  1062,    -1,   697,    -1,
     3307      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3308      -1,    -1,    -1,   157,    -1,    -1,    37,    38,    -1,    40,
     3309      -1,    -1,    -1,    -1,    -1,    -1,  1162,    -1,    -1,    -1,
     3310      -1,  1097,  1098,    -1,   733,    -1,    -1,   736,   252,    -1,
     3311      -1,    -1,    -1,   257,    -1,    66,    -1,    -1,    -1,    -1,
     3312      -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3313      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,  1205,
     3314      -1,    -1,    -1,    94,   773,    -1,    -1,    -1,    -1,    -1,
     3315      -1,    -1,    -1,    -1,    -1,    -1,  1222,    -1,   109,    -1,
     3316     111,  1227,   113,   114,    -1,    -1,  1162,   118,   119,   120,
     3317     121,   122,   123,    -1,    -1,  1241,    -1,  1243,   252,    -1,
     3318      -1,  1247,    -1,   257,    -1,    -1,   815,    -1,    -1,    -1,
     3319      -1,    -1,    -1,    -1,    -1,    -1,   825,    -1,   827,    -1,
     3320      -1,    -1,    -1,   832,    -1,    -1,   835,  1273,   352,  1205,
     3321     839,    -1,    -1,    -1,    -1,  1281,  1282,  1283,    -1,    -1,
     3322      -1,    -1,    -1,    -1,    -1,    -1,  1292,  1293,    -1,    -1,
     3323      -1,  1227,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3324    1306,    -1,    -1,    -1,    -1,  1241,    -1,  1243,    -1,    -1,
     3325      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,  1329,    -1,    -1,    -1,    -1,    -1,    -1,
     3327      -1,    -1,   901,    -1,  1340,   419,    -1,  1273,   352,    -1,
     3328      -1,    -1,    -1,    -1,    -1,  1281,  1282,  1283,    -1,    -1,
     3329     434,    -1,    -1,    -1,    -1,   439,  1292,  1293,    -1,    -1,
     3330      -1,    -1,    -1,   447,    -1,    -1,    -1,    -1,    -1,    -1,
     3331    1306,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3332      19,    20,    21,    22,    23,    24,    25,    26,    27,   473,
     3333      -1,    -1,    -1,  1329,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      39,    -1,    -1,    -1,    -1,   419,    -1,   491,    -1,   493,
     3335      -1,  1417,    -1,    -1,    -1,    -1,   985,    -1,    -1,    -1,
     3336     434,    -1,    -1,    -1,    -1,   439,    -1,    -1,    67,    -1,
     3337      -1,    -1,    -1,   447,    -1,    -1,    -1,  1443,    -1,    -1,
     3338      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3339      -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,
     3340    1466,    -1,    -1,    -1,    -1,    -1,    -1,  1473,    -1,    -1,
     3341    1039,  1040,    -1,  1042,  1043,    -1,    -1,   491,    -1,   493,
     3342      -1,  1417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3343      -1,    -1,    -1,  1062,    -1,    10,    11,    12,    13,    14,
     3344      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3345      25,    26,    27,    28,    -1,   599,    -1,    -1,    -1,    -1,
     3346    1526,   535,    -1,    -1,    39,    -1,    -1,  1533,  1097,  1098,
     3347    1466,    -1,    -1,    -1,    -1,    -1,    -1,  1473,    -1,    -1,
     3348      -1,    -1,    -1,    -1,    53,    -1,    55,    -1,    -1,    58,
     3349      59,    60,    67,    62,    -1,    -1,    -1,    -1,    -1,   643,
     3350     644,   645,    -1,    78,    -1,    -1,    -1,    -1,    77,    -1,
     3351      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   662,    -1,
     3352      89,    90,    -1,    -1,    -1,   599,    -1,    -1,    -1,    -1,
     3353    1526,    -1,    -1,  1162,    -1,    -1,   680,    -1,    -1,    -1,
     3354      -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,    -1,    -1,
     3355      -1,    -1,    -1,   697,    -1,    -1,    -1,    -1,    -1,    -1,
     3356      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,
     3357     644,   645,    -1,    -1,    -1,    -1,  1205,    -1,    -1,    -1,
     3358      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   662,   733,
     3359      -1,    -1,   736,    -1,    -1,    -1,    -1,    -1,  1227,    -1,
     3360      -1,    -1,    -1,    -1,    -1,    -1,   680,    -1,    -1,    -1,
     3361      -1,    -1,  1241,    -1,  1243,    -1,    -1,   691,    -1,    -1,
     3362      -1,    -1,    -1,   697,    -1,    -1,    -1,    -1,    -1,   773,
     3363      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3364      -1,    -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,    -1,
     3365      -1,    -1,  1281,  1282,  1283,    -1,    -1,    -1,    -1,   733,
     3366      -1,    -1,   736,  1292,  1293,    -1,    -1,    -1,    -1,    -1,
     3367      -1,   815,    -1,    -1,    -1,    -1,    -1,  1306,    -1,    -1,
     3368      -1,   825,    -1,   827,    -1,    -1,    -1,    -1,   832,    -1,
     3369      -1,   835,    -1,    -1,    -1,   839,    -1,    -1,    -1,   773,
     3370    1329,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3371      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3372      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3373      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3374      32,   815,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3375      -1,   825,    -1,   827,    -1,    -1,    -1,   901,   832,    -1,
     3376      -1,   835,    -1,    -1,    -1,   839,    -1,    -1,    -1,    -1,
     3377      -1,    -1,    -1,    -1,    -1,    67,   345,    69,   347,    71,
     3378      -1,    -1,    74,    75,    -1,    -1,    -1,    -1,  1417,   358,
     3379     359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,
     3380       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3381      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3382      26,    27,   114,    -1,    30,    31,    32,   901,    -1,    -1,
     3383      -1,    37,    38,    39,    40,    -1,    -1,  1466,    -1,    -1,
     3384      -1,   985,    -1,    -1,  1473,    -1,    -1,    -1,    -1,    -1,
     3385      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3386      66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3387      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3388      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
     3389      -1,    -1,    -1,    -1,    -1,  1039,  1040,  1526,  1042,  1043,
     3390      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3391     116,   985,   118,   119,   120,   121,   122,   123,  1062,    -1,
     3392      -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3393      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3394      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3395      32,    -1,    -1,  1097,  1098,    37,    38,    39,    40,    -1,
     3396      -1,    66,    -1,    -1,    -1,  1039,  1040,    -1,  1042,  1043,
     3397      -1,    76,    -1,    78,    -1,    80,    -1,    -1,    -1,    -1,
     3398      -1,    -1,    87,    -1,    66,    67,    -1,    69,  1062,    71,
     3399      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3400      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3401      -1,    -1,    94,   118,    -1,   120,   121,   122,  1162,    -1,
     3402      -1,    -1,    -1,  1097,  1098,    -1,    -1,   109,    -1,   111,
     3403      37,    38,    -1,    40,   116,    -1,   118,   119,   120,   121,
     3404     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3405      -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    66,
     3406      -1,  1205,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3407      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3408      87,    -1,    -1,  1227,    -1,    -1,    -1,    94,  1162,    -1,
     3409      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1241,    -1,  1243,
     3410      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3411     117,   118,   119,   120,   121,   122,   123,   222,    -1,   224,
     3412     225,   226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1273,
     3413      -1,  1205,    -1,    -1,    -1,    -1,    -1,  1281,  1282,  1283,
     3414      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,  1293,
     3415      -1,    -1,    -1,  1227,    -1,   260,   725,    -1,   727,    -1,
     3416     265,    -1,  1306,    -1,    -1,   734,   735,  1241,    -1,  1243,
     3417     739,    -1,    -1,    -1,    -1,   280,    -1,    -1,    -1,    -1,
     3418      -1,    -1,   751,    -1,    -1,  1329,    -1,   756,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1273,
     3420      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1281,  1282,  1283,
     3421      -1,    -1,    -1,   782,    -1,    -1,    -1,    -1,  1292,  1293,
     3422      49,    -1,    -1,    -1,   329,    37,    38,    -1,    40,    -1,
     3423      -1,    -1,  1306,    -1,    -1,    -1,    -1,    66,    -1,    -1,
     3424      -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,
     3425      -1,   356,   357,    -1,    66,  1329,    -1,    -1,    -1,   364,
     3426      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3427      82,    83,    84,  1417,    86,    87,    -1,    -1,    -1,    -1,
     3428      -1,    -1,    94,    -1,    -1,   114,    -1,    -1,    -1,   118,
     3429      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3430      -1,    -1,   407,    -1,   116,    -1,   118,   119,   120,   121,
     3431     122,   123,    -1,    -1,   883,   884,   885,   886,   147,   888,
     3432     425,    -1,  1466,    37,    38,   430,    40,   432,   157,  1473,
     3433      -1,    -1,   161,    -1,    -1,   904,    -1,    -1,    -1,    -1,
     3434      -1,    -1,    -1,  1417,   449,    -1,    -1,   452,   453,   918,
     3435      -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3436      -1,    -1,    76,   468,    -1,    79,    80,    81,    82,    83,
     3437      84,    -1,    86,    87,    -1,    -1,    -1,   482,    -1,    -1,
     3438      94,   210,  1526,    -1,   489,    -1,    -1,    -1,   957,    -1,
     3439      -1,    -1,  1466,   222,    -1,   109,    -1,   111,    -1,  1473,
     3440     114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
     3441      -1,   240,   241,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3442      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   997,    -1,
     3443      -1,    -1,    -1,    -1,    -1,  1004,   265,    -1,    -1,    -1,
     3444    1009,    -1,    -1,   272,    -1,  1014,    -1,  1016,    -1,    -1,
     3445      -1,  1020,  1526,  1022,  1023,    -1,    -1,  1026,    37,    38,
     3446      -1,    40,    -1,    -1,    -1,    -1,  1035,   296,    -1,    -1,
     3447      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   308,
     3448      -1,    -1,    -1,    -1,  1053,  1054,    -1,    66,    -1,    -1,
     3449      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,   603,    -1,
     3450      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3451      -1,  1080,    -1,    -1,  1083,    94,    -1,   346,    -1,    -1,
     3452      -1,    -1,   351,    -1,    -1,    -1,   631,    44,    -1,    -1,
     3453     109,   636,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3454     119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,    -1,
     3455      -1,    -1,    -1,  1122,    -1,    -1,    -1,    -1,    -1,  1128,
     3456    1129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3457      -1,  1140,    -1,    -1,    -1,    92,  1145,    -1,    -1,  1148,
     3458      -1,  1150,    -1,    -1,  1153,   102,    -1,    -1,    -1,    -1,
     3459      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1166,   427,   428,
     3460      -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,
     3461    1179,    -1,  1181,  1182,  1183,  1184,    -1,    -1,    -1,   724,
     3462      -1,    -1,    -1,    -1,    -1,    -1,   455,    -1,  1197,   458,
     3463    1199,    -1,    -1,   738,  1203,    -1,    -1,    -1,    -1,    -1,
     3464      -1,   158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3465      -1,    -1,    -1,   758,    -1,   172,    -1,    -1,    -1,    -1,
     3466      -1,    -1,   491,  1232,  1233,    -1,    -1,    -1,    -1,    -1,
     3467      -1,    -1,    -1,    -1,   503,    -1,    -1,    -1,   195,    -1,
     3468      -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,   517,    -1,
     3469      -1,   520,   209,   522,   523,    -1,    -1,    -1,    -1,    -1,
     3470      -1,   218,    -1,    -1,    -1,    -1,   535,    -1,    -1,    -1,
     3471      -1,   228,    -1,    -1,   819,  1284,  1285,    -1,    -1,    -1,
     3472      -1,    -1,    -1,    -1,    -1,  1294,   831,    -1,    -1,    -1,
     3473      -1,    -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,    -1,
     3474      -1,   258,    -1,    -1,    -1,   850,    -1,    -1,    -1,    -1,
     3475      -1,    -1,    -1,    -1,   271,    -1,    -1,    -1,   587,    -1,
     3476     277,    -1,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3477     599,    -1,    -1,    -1,   603,    -1,    -1,  1346,    -1,    -1,
     3478     297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1358,
     3479      -1,  1360,  1361,  1362,    -1,    -1,    -1,    -1,    -1,    -1,
     3480     629,    -1,    -1,  1372,    -1,   634,    -1,    -1,    -1,    -1,
     3481      -1,    -1,  1381,    -1,   643,   644,   645,    -1,    -1,    -1,
     3482      -1,    -1,   339,    -1,    -1,    -1,    -1,   344,  1397,    -1,
     3483      -1,    -1,   937,   662,    -1,    -1,    -1,    10,    11,    12,
     3484      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3485      23,    24,    25,    26,    27,    28,   373,    -1,   963,    -1,
     3486     377,   378,    -1,   380,    -1,    -1,    39,    -1,   697,    -1,
     3487     387,   388,    -1,   390,   391,    -1,   393,    -1,   395,    -1,
     3488      -1,    -1,    -1,    -1,  1453,  1454,   991,    -1,    -1,   718,
     3489      -1,    -1,    -1,    -1,    67,   412,    -1,  1466,    -1,    -1,
     3490      -1,    -1,    -1,   420,  1473,    78,    -1,   736,    -1,   738,
     3491      -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,  1024,
     3492      10,    11,    12,    13,    14,    -1,    -1,    -1,   445,    -1,
     3493    1035,    -1,    -1,    -1,    -1,    -1,    -1,  1506,    -1,   456,
     3494      -1,  1510,    -1,    -1,   773,    -1,    -1,    37,    38,    39,
     3495      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3496      -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,   485,    -1,
     3497    1539,    -1,  1541,   490,    -1,    -1,    66,    67,    -1,    -1,
     3498      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3499      80,    81,    82,    83,    84,    -1,    86,    87,   827,    -1,
     3500    1569,  1570,   831,    -1,    94,    -1,   835,    -1,  1577,  1578,
     3501     527,    -1,  1117,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3502      -1,   111,    -1,    -1,   541,    -1,    -1,    -1,   118,   119,
     3503     120,   121,   122,   123,    -1,    -1,    -1,    10,    11,    12,
     3504      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3505      23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
     3506     147,    -1,   579,    -1,    -1,    -1,    39,    -1,    -1,    -1,
     3507     157,   588,    -1,    -1,    -1,    -1,    -1,    -1,   595,    -1,
     3508      -1,    -1,   169,   170,   601,    -1,    -1,    -1,    -1,    -1,
     3509      -1,    -1,    -1,   610,    67,    -1,    -1,    -1,   927,  1204,
     3510      -1,    74,    75,    -1,    -1,    78,    -1,    -1,    -1,    -1,
     3511      -1,    -1,    -1,    -1,    -1,    -1,    -1,   946,    -1,    37,
     3512      38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3513      -1,    -1,    -1,    -1,   651,    -1,   109,    -1,   111,    -1,
     3514     969,    -1,    -1,    -1,    -1,   118,   119,    -1,    66,    -1,
     3515      -1,    -1,    -1,   240,    72,    -1,   985,    -1,    76,    -1,
     3516      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3517     687,    -1,    -1,    -1,    -1,    -1,    94,   264,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3519      -1,   109,  1021,   111,    -1,    -1,  1301,    -1,    -1,    -1,
     3520     118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
     3521      -1,    -1,    -1,  1042,  1043,    -1,    -1,    -1,    -1,    -1,
     3522      -1,    -1,    -1,    -1,    -1,   742,    -1,    -1,    -1,    -1,
     3523      -1,    -1,    -1,    -1,    -1,   752,   753,    -1,    -1,    -1,
     3524      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   766,
     3525      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3526      -1,    -1,    -1,    -1,    -1,    -1,   783,    -1,   785,    -1,
     3527      -1,    -1,   789,  1102,    -1,    -1,    -1,    -1,    -1,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3529      -1,    -1,    -1,    -1,   381,    -1,     3,     4,     5,     6,
     3530       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3531      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3532      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3533      -1,    -1,    39,  1162,    -1,    -1,    -1,   854,    -1,    -1,
     3534      -1,    -1,    -1,    -1,   861,    -1,    -1,    -1,    -1,    -1,
     3535      -1,    -1,   156,   157,    -1,    -1,    -1,   874,    -1,   876,
     3536      67,    -1,    69,    -1,    71,    72,    -1,    74,    75,    76,
     3537      -1,    -1,    -1,   890,    -1,  1204,    83,    84,    -1,    -1,
     3538     897,    -1,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
     3539      -1,    -1,   909,   197,    -1,   912,   483,    -1,    -1,    -1,
     3540      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3541      -1,   118,   119,   930,  1243,    -1,    10,    11,    12,    13,
    31863542      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3187       24,    25,    26,    27,    69,  1012,    30,    31,    32,    -1,
    3188      600,    -1,    -1,    -1,    -1,    39,    -1,    -1,   581,    -1,
    3189       -1,    -1,  1029,  1206,  1207,    -1,    -1,    -1,    -1,    -1,
    3190       -1,    -1,    -1,    -1,    -1,    -1,   599,   600,    -1,    -1,
    3191       -1,  1224,    -1,    67,    -1,    -1,  1229,    -1,    72,   612,
    3192       74,    75,     0,  1026,   644,   645,   646,    -1,    -1,    83,
    3193       84,    -1,  1245,    -1,    -1,    -1,  1249,   630,    -1,    -1,
    3194       -1,    -1,   635,   663,    -1,    -1,    -1,    -1,   641,    -1,
    3195       -1,   644,   645,   646,    32,    -1,    -1,    -1,   112,    -1,
    3196       -1,   681,   157,    -1,    -1,   119,   120,    -1,    -1,  1106,
    3197      663,  1243,   692,    -1,    -1,    -1,    -1,    -1,   698,    -1,
    3198       -1,  1294,  1295,    -1,    -1,    -1,    -1,    -1,   681,    -1,
    3199     1303,    69,    -1,    -1,    -1,  1308,    -1,    -1,    -1,   692,
    3200       -1,    -1,    -1,  1275,   697,   698,    -1,    -1,   701,    -1,
    3201       -1,  1283,  1284,  1285,   734,    -1,    -1,   737,    10,    11,
    3202       12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,  1342,
    3203       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1026,
    3204       -1,   734,    -1,    -1,   737,    -1,    -1,    39,    -1,    -1,
    3205       -1,    -1,    -1,   746,   774,    -1,   749,   252,    -1,  1331,
    3206       -1,    -1,   257,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3207       -1,    -1,    -1,  1101,    -1,    67,    -1,    -1,    -1,   157,
    3208      773,   774,    -1,    -1,    -1,    -1,   779,    -1,    -1,  1402,
    3209       -1,    -1,    -1,    -1,    -1,    -1,    -1,   817,    -1,    -1,
    3210       -1,    -1,    -1,  1206,    -1,    -1,  1419,   827,    -1,   829,
    3211       -1,    -1,    -1,    -1,   834,    -1,    -1,   837,   110,    -1,
    3212      112,   841,    -1,    -1,   817,    -1,    -1,   119,   120,    -1,
    3213       -1,    -1,  1445,    -1,   827,    -1,   829,    -1,   831,    -1,
    3214       -1,   834,    -1,   836,   837,    -1,    -1,    -1,   841,    -1,
    3215       -1,    -1,    -1,    -1,    -1,  1468,    -1,   352,   851,    -1,
    3216       -1,    -1,  1475,    -1,  1477,    -1,  1479,    -1,    -1,    -1,
    3217       -1,    -1,    -1,    -1,   252,    -1,     0,     1,    -1,   257,
    3218       -1,    -1,    -1,   903,    -1,    -1,    -1,    -1,    -1,    -1,
    3219       -1,    10,    11,    12,    13,    14,  1509,    -1,  1226,    -1,
    3220     1303,  1514,    -1,  1516,    -1,    -1,    -1,    -1,    32,    -1,
    3221      903,    -1,    -1,    -1,    -1,  1528,    -1,    -1,    -1,  1206,
    3222       39,  1534,  1535,    -1,   419,    -1,    -1,    -1,    -1,    -1,
    3223       -1,  1544,   925,    -1,    -1,    -1,    -1,    -1,    -1,   434,
    3224       -1,    -1,    66,    -1,   439,    69,  1559,    -1,    67,    -1,
    3225       -1,    -1,   447,    72,    -1,    74,    75,    76,    -1,    -1,
    3226       -1,    -1,    -1,    -1,    83,    84,    -1,   987,   961,    -1,
    3227       -1,    -1,    -1,    -1,   352,    -1,   969,   970,   473,    -1,
    3228       -1,     0,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3229       -1,   110,    -1,   112,   987,    -1,   491,    -1,   493,    -1,
    3230      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3231       -1,    -1,    -1,    32,    -1,    -1,  1303,    -1,    -1,    -1,
    3232       -1,  1041,  1042,    -1,  1044,  1045,    -1,    -1,    -1,    -1,
    3233     1023,    -1,    -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,
    3234      535,   419,    -1,  1036,  1064,    -1,    -1,    -1,  1041,  1042,
    3235       69,  1044,  1045,    -1,    -1,    -1,   434,    -1,    -1,    -1,
    3236        7,   439,    -1,    10,    11,    12,    13,    14,    -1,   447,
    3237       -1,  1064,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1099,
    3238     1100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       37,    38,    39,    40,    -1,   473,    -1,    -1,   222,    -1,
    3240       -1,    -1,    -1,    -1,    -1,   600,  1099,  1100,    -1,    -1,
    3241       -1,    -1,  1105,   491,    -1,   493,    -1,    -1,    -1,    66,
    3242       67,    -1,    -1,    -1,    -1,    72,    -1,    -1,   252,    76,
    3243       -1,    -1,    79,    80,    81,    82,    83,    84,   157,    86,
    3244       87,    -1,    -1,    -1,  1164,    -1,    -1,    94,    -1,   644,
    3245      645,   646,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,
    3246       -1,    -1,    -1,   110,    -1,   112,    -1,    -1,   663,    -1,
    3247       -1,  1164,   119,   120,   121,   122,   123,   124,    -1,    -1,
    3248       -1,    -1,    -1,    -1,    -1,    -1,   681,  1207,    -1,    -1,
    3249       -1,    -1,    -1,    -1,    -1,    -1,    -1,   692,    -1,    -1,
    3250       -1,    -1,    -1,   698,    -1,    -1,    -1,    -1,    -1,  1229,
    3251       -1,    -1,    -1,    -1,  1207,    -1,    -1,    -1,    -1,    -1,
    3252       -1,    -1,   600,  1243,    -1,  1245,    -1,    -1,    -1,    -1,
    3253       -1,  1224,    -1,   252,    -1,    -1,  1229,    -1,   257,   734,
    3254       -1,    -1,   737,    10,    11,    12,    13,    14,    -1,    -1,
    3255     1243,    -1,  1245,    -1,    -1,  1275,  1249,    -1,    -1,    -1,
    3256       -1,    -1,    -1,  1283,  1284,  1285,   644,   645,   646,    -1,
    3257       -1,    -1,    39,    -1,  1294,  1295,    -1,    -1,    -1,   774,
    3258       -1,    -1,  1275,    -1,    -1,   663,    -1,    -1,  1308,    -1,
    3259     1283,  1284,  1285,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3260       67,  1294,  1295,   681,    -1,    72,    -1,    74,    75,    76,
    3261      434,  1331,    -1,    -1,   692,  1308,    83,    84,    -1,    -1,
    3262      698,    -1,   817,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3263       -1,    -1,   827,   352,   829,    -1,    -1,    -1,  1331,   834,
    3264       -1,    -1,   837,   110,    -1,    -1,   841,    -1,    -1,  1342,
    3265       -1,    -1,   119,   120,    -1,    -1,   734,    -1,    -1,   737,
    3266       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   493,
    3267       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3268       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3269       -1,    -1,    30,    31,    32,    -1,   774,    -1,    -1,  1419,
    3270      419,    39,    -1,    -1,    -1,    -1,    -1,    -1,   903,    -1,
    3271       -1,   535,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,
    3272      439,    -1,    -1,    -1,    -1,    -1,  1419,    -1,   447,    67,
    3273       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,   817,
    3274       -1,    -1,    -1,    -1,    -1,    83,    84,    -1,  1468,   827,
    3275       -1,   829,  1445,    -1,   473,  1475,   834,    -1,    -1,   837,
    3276       -1,    -1,    -1,   841,    53,    -1,    55,    -1,    -1,    58,
    3277       59,    60,   491,    62,   493,  1468,   600,    -1,    -1,    -1,
    3278       -1,    -1,  1475,    -1,    -1,    -1,    -1,    -1,    77,    -1,
    3279       -1,    -1,   987,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3280       89,    90,    -1,    -1,    -1,    -1,    -1,    -1,  1528,    -1,
    3281       -1,    10,    11,    12,    13,    14,   535,    -1,    -1,    -1,
    3282      644,   645,   646,    -1,    -1,   903,    -1,    -1,    -1,    -1,
    3283       -1,    -1,    -1,    -1,    -1,  1528,    -1,    -1,    -1,   663,
    3284       39,    -1,  1535,    -1,    -1,    -1,  1041,  1042,    -1,  1044,
    3285     1045,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3286       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1064,
    3287       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3288       -1,   600,    -1,    -1,    83,    84,    10,    11,    12,    13,
    3289       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3290       24,    25,    26,    27,  1099,  1100,    30,    31,    32,   987,
    3291       -1,   110,    -1,   737,    -1,    39,    -1,    -1,    -1,    -1,
    3292      119,   120,    -1,    -1,    -1,   644,   645,   646,    -1,    -1,
     3543      24,    25,    26,    27,    -1,   522,    30,    31,    32,    -1,
     3544      -1,    -1,    -1,    -1,    -1,    39,    40,    -1,   535,    -1,
     3545      -1,    -1,  1557,   540,    -1,    -1,   543,    -1,    -1,    -1,
     3546      -1,    -1,    -1,  1292,  1293,   269,    -1,   554,   555,    -1,
     3547      -1,    -1,  1301,    67,    -1,    -1,    -1,    -1,    -1,    -1,
     3548      74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3549     577,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3550     587,    -1,  1019,    -1,    -1,    -1,    -1,   594,    -1,    -1,
     3551      -1,    -1,   599,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3552     324,   115,    -1,    -1,   118,   119,    -1,    -1,   332,   333,
     3553      -1,   335,   336,    -1,    37,    38,    -1,    40,    -1,    -1,
     3554      -1,    -1,   346,    -1,    -1,    -1,   350,    -1,    -1,    -1,
     3555      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1076,
     3556      -1,   648,    -1,    66,    -1,   369,  1083,    -1,   372,    72,
     3557     657,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3558      83,    84,    -1,    86,    87,    -1,    -1,    -1,  1417,    -1,
     3559      -1,    94,    -1,    -1,    -1,   399,  1113,    -1,    -1,   403,
     3560      -1,  1118,    -1,    -1,    -1,    -1,   109,    -1,   111,  1126,
     3561     697,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     3562     123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3563     434,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3564    1157,    -1,    -1,    -1,    -1,    -1,  1475,    -1,  1477,    -1,
     3565      -1,    -1,  1169,   457,    -1,  1172,    -1,  1174,    -1,    -1,
    32933566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3294       -1,    -1,    -1,    67,   663,    -1,    -1,    -1,    72,    -1,
    3295       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3296       84,    -1,   681,  1041,  1042,    -1,  1044,  1045,    -1,  1164,
    3297       -1,    -1,    -1,   692,    -1,    -1,    -1,    -1,    -1,   698,
    3298       -1,    37,    38,    -1,    40,    -1,  1064,    -1,   112,    -1,
    3299       -1,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,
    3300       -1,    -1,    -1,    -1,    -1,   829,    -1,    -1,    -1,    -1,
    3301       66,    -1,  1207,   837,    -1,   734,    72,    -1,   737,    -1,
    3302       76,  1099,  1100,    79,    80,    81,    82,    83,    84,    -1,
    3303       86,    87,    -1,    -1,  1229,    -1,    -1,    -1,    94,    -1,
    3304       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1243,    -1,
    3305     1245,    -1,    -1,    -1,   110,   774,   345,    -1,   347,    -1,
    3306       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,   358,
    3307      359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   903,
    3308     1275,    -1,    -1,    -1,    -1,    -1,  1164,    -1,  1283,  1284,
    3309     1285,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   817,  1294,
    3310     1295,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   827,    -1,
    3311      829,    -1,    -1,  1308,    -1,   834,    -1,    -1,   837,    -1,
    3312       -1,    -1,   841,    -1,    -1,    -1,    -1,    -1,    -1,  1207,
    3313      283,    -1,   285,   286,    -1,    -1,  1331,    -1,    -1,    -1,
    3314      293,   294,    -1,    -1,    -1,    -1,   970,    -1,    -1,    -1,
    3315       -1,  1229,    -1,    -1,    -1,   308,   309,    -1,    -1,    -1,
    3316       -1,    -1,    -1,   987,    -1,  1243,    -1,  1245,    -1,    -1,
    3317       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3318       -1,    76,    -1,    78,   903,    80,    -1,    -1,    26,    27,
    3319       28,    -1,    87,   346,    -1,    -1,    -1,  1275,    -1,    -1,
    3320       -1,    -1,    -1,    -1,    -1,  1283,  1284,  1285,    -1,    -1,
    3321       -1,    -1,    -1,    -1,    -1,    -1,  1294,  1295,    -1,    -1,
    3322     1044,  1045,    -1,   118,  1419,   120,   121,   122,    -1,   382,
    3323     1308,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3324     1064,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3325       -1,    -1,    -1,  1331,    -1,    -1,    -1,    -1,    -1,    -1,
    3326       -1,    99,    -1,   101,    -1,    -1,   161,    -1,   987,    -1,
    3327       -1,    -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,
    3328     1475,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   126,    -1,
    3329       -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3330       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3331       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3332       31,    32,  1041,  1042,    -1,  1044,  1045,   222,    39,   224,
    3333      225,   226,    -1,  1528,    -1,    -1,    -1,    -1,    -1,    -1,
    3334       -1,  1419,    -1,    -1,   182,  1064,    -1,    -1,    -1,    -1,
    3335       -1,    -1,   190,    -1,   192,   193,    67,    -1,    69,   197,
    3336       71,   199,   200,    74,    75,   260,    -1,    -1,    -1,    -1,
    3337      265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3338     1099,  1100,  1206,  1207,    -1,   280,    -1,    -1,    -1,    -1,
    3339     1468,    -1,    -1,    -1,    -1,    -1,    -1,  1475,    -1,    -1,
    3340       -1,    -1,    -1,    -1,   115,  1229,   559,   560,   561,   562,
    3341      563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
    3342      573,   574,   575,   576,    -1,  1249,    -1,    -1,    -1,    -1,
    3343       -1,   269,    -1,    -1,   329,    -1,    -1,   726,    -1,   728,
    3344       -1,    -1,    -1,    -1,    -1,  1164,   735,   736,    -1,    -1,
    3345     1528,   740,    -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,
    3346       -1,   356,   357,   752,    -1,    -1,    -1,    -1,   757,   364,
    3347     1294,  1295,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1303,
    3348       -1,    -1,    -1,    -1,  1308,    -1,    -1,    -1,  1207,    -1,
    3349       -1,    -1,    -1,    -1,   783,    -1,    -1,    -1,    -1,    -1,
     3567      -1,  1188,  1189,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3568      -1,    -1,    -1,  1512,   488,  1514,   773,   491,   775,    -1,
     3569      -1,    -1,    -1,  1210,   781,    -1,    -1,    -1,    -1,    -1,
     3570      -1,   788,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
     3571      40,    -1,    -1,  1542,    -1,    -1,    -1,    -1,    -1,    -1,
     3572    1237,    -1,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     3573     534,   535,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
     3574      -1,    -1,    72,    -1,   831,   832,    76,    -1,   835,    79,
     3575      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3576      -1,    -1,   849,    -1,    94,    -1,    -1,    -1,    -1,    -1,
     3577      -1,    -1,    -1,    -1,    -1,   579,   580,    -1,    -1,   109,
     3578      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
     3579     120,   121,   122,   123,   598,   599,    -1,    -1,    -1,    -1,
     3580      -1,    -1,   889,    -1,    -1,   609,   893,   611,   612,    -1,
     3581      -1,    -1,    -1,    -1,   618,    -1,    -1,    -1,  1335,    -1,
     3582    1337,    -1,    -1,    -1,   628,   629,   283,    -1,   285,   286,
     3583     634,    -1,    -1,  1350,    -1,  1352,   293,   294,    -1,   643,
     3584     644,   645,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3585      -1,   308,   309,  1370,    -1,    -1,    -1,    -1,   662,    -1,
     3586      -1,    -1,    -1,   667,   668,    -1,    -1,   671,   672,  1386,
     3587    1387,    -1,    -1,    -1,   678,    -1,    -1,    -1,    -1,    -1,
     3588      -1,  1398,   969,    -1,  1401,    -1,    -1,    -1,    -1,   346,
     3589      -1,    -1,   696,   697,   698,    -1,   700,    -1,   985,   986,
     3590     704,    -1,    -1,    -1,    -1,   992,  1423,    -1,    -1,    -1,
     3591      -1,   998,    -1,    -1,  1001,  1432,  1003,    -1,  1435,    -1,
     3592    1437,  1438,  1439,    -1,    -1,   382,    -1,    -1,    -1,    -1,
     3593      -1,    -1,   736,   737,    -1,    -1,    -1,  1024,    -1,    -1,
     3594      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1035,    -1,
    33503595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3351     1229,    -1,   407,    -1,    -1,    -1,    -1,    -1,  1342,    -1,
    3352       -1,    -1,    -1,    -1,  1243,    -1,  1245,    -1,    -1,    -1,
    3353      425,    -1,    -1,    -1,    -1,   430,    -1,   432,    -1,    -1,
    3354       -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,
    3355       -1,    -1,    -1,    -1,   449,    -1,  1275,   452,   453,    -1,
    3356       -1,    -1,    -1,    -1,  1283,  1284,  1285,    -1,    -1,   722,
    3357       -1,    -1,    -1,   468,    -1,  1294,  1295,    -1,    -1,    -1,
    3358       -1,    -1,    -1,    -1,    -1,    -1,    -1,   482,    -1,  1308,
    3359       -1,    -1,    -1,    -1,   489,  1419,   885,   886,   887,   888,
    3360       -1,   890,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       37,    38,  1331,    40,    -1,    -1,    -1,   906,    -1,    -1,
    3362       -1,  1445,    -1,    -1,    -1,    -1,    -1,    -1,   781,    -1,
    3363       -1,   920,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3364       -1,    -1,    -1,    -1,  1468,    72,    49,    74,    75,    76,
    3365       -1,  1475,    79,    80,    81,    82,    83,    84,    -1,    86,
    3366       87,   814,    -1,    66,    -1,    -1,    -1,    94,    -1,    -1,
    3367      959,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3368       -1,    -1,    -1,   110,    -1,   112,    -1,   114,   115,    -1,
    3369       -1,    -1,   119,   120,   121,   122,   123,   124,    -1,    -1,
    3370     1419,    -1,    -1,    -1,  1528,    -1,    -1,    -1,    -1,   604,
    3371      999,   114,    -1,    -1,    -1,   118,    -1,  1006,    -1,    -1,
    3372       -1,    -1,  1011,    -1,    -1,    -1,    -1,  1016,    -1,  1018,
    3373       -1,    -1,    -1,  1022,    -1,  1024,  1025,   632,    -1,  1028,
    3374       -1,    -1,   637,    -1,   147,    -1,   584,   585,  1037,  1468,
    3375       -1,    -1,    -1,    -1,   157,    -1,  1475,    -1,   161,    -1,
    3376       -1,    -1,    -1,    -1,    -1,    -1,  1055,  1056,    -1,    -1,
    3377       -1,    -1,    -1,    -1,    -1,   613,    -1,    -1,   616,   617,
    3378       -1,   619,    -1,   621,   622,    -1,    -1,    -1,   626,   627,
    3379       -1,    -1,    -1,  1082,    -1,    -1,  1085,    -1,    -1,    -1,
    3380       -1,    -1,    -1,    -1,    -1,    -1,    -1,   210,    -1,  1528,
    3381       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   222,
    3382       -1,    -1,    -1,    -1,    -1,    -1,   979,    -1,    -1,    -1,
    3383      725,    -1,    -1,    -1,    -1,  1124,    -1,   240,   241,    -1,
    3384       -1,  1130,  1131,    -1,   739,    -1,    -1,    -1,    -1,    -1,
    3385       -1,    -1,    -1,  1142,    -1,    -1,    -1,  1010,  1147,    -1,
    3386       -1,  1150,   265,  1152,   759,    -1,  1155,   705,    -1,   272,
    3387     1023,    -1,   710,   711,    -1,    -1,    -1,    -1,   716,  1168,
     3596      -1,    -1,  1479,    -1,  1481,    -1,    -1,  1484,   772,   773,
     3597    1057,    -1,  1059,   777,   778,    -1,    -1,    -1,    -1,    -1,
     3598      -1,    -1,  1499,    -1,    -1,    -1,    -1,  1074,  1075,    -1,
     3599      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3600      20,    21,    22,    23,    24,    25,    26,    27,  1095,    -1,
     3601      30,    31,    32,    -1,    -1,   819,    -1,    -1,    -1,    39,
     3602      -1,    -1,    -1,   827,    -1,    -1,    -1,    -1,    -1,    -1,
     3603     834,   835,    -1,    -1,   838,    -1,   840,    -1,    -1,    -1,
     3604      -1,    -1,    -1,    -1,    -1,    -1,   850,    67,    -1,    -1,
     3605      -1,    -1,    -1,    -1,    74,    75,  1143,    -1,    -1,    -1,
    33883606      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3389       -1,    -1,  1181,   296,  1183,  1184,  1185,  1186,    -1,    -1,
    3390       -1,    -1,    -1,    -1,    -1,   308,    -1,    -1,    -1,    -1,
    3391     1199,  1064,  1201,    -1,    -1,    -1,  1205,    -1,    -1,    -1,
    3392       -1,    -1,    -1,    -1,    -1,    -1,   821,    -1,    -1,    -1,
    3393       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   833,    -1,
    3394       -1,    -1,    -1,   346,    -1,  1234,  1235,    -1,   351,    -1,
    3395       -1,    -1,    -1,    -1,    -1,    -1,    -1,   852,    10,    11,
    3396       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3397       22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
    3398       32,    -1,    -1,    -1,  1137,    -1,    -1,    39,    -1,    -1,
    3399       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1286,  1287,    -1,
    3400       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1296,    -1,    -1,
    3401       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3402       -1,    -1,    74,    75,   427,   428,    78,    -1,    -1,    -1,
    3403       -1,   434,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3404       -1,    -1,  1195,  1196,   939,    -1,    -1,    -1,    -1,    -1,
    3405       -1,    -1,   455,    -1,    -1,   458,    -1,    -1,   110,  1348,
    3406      112,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,    -1,
    3407      965,  1360,    -1,  1362,  1363,  1364,    -1,    -1,    -1,    -1,
    3408       -1,    -1,    -1,    -1,    -1,  1374,    -1,    -1,   491,    -1,
    3409       -1,    -1,    -1,    -1,  1383,    -1,    -1,    -1,   993,    -1,
    3410      503,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3411     1399,    -1,   515,    -1,   517,    -1,    -1,   520,    -1,   522,
    3412      523,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3413       -1,  1026,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3414       -1,    44,  1037,    -1,    -1,    -1,    -1,    -1,    10,    11,
    3415       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3416       22,    23,    24,    25,    26,    27,  1455,  1456,    30,    31,
    3417       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,  1468,
    3418       -1,    -1,    -1,    -1,    -1,   588,  1475,    -1,    -1,    92,
    3419       -1,    -1,    -1,    -1,    -1,    -1,    -1,   600,    -1,   102,
    3420       -1,   604,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3421       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,  1508,
    3422       -1,    83,    84,  1512,  1119,    -1,    -1,   630,    -1,    -1,
    3423       -1,    -1,   635,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3424       -1,   644,   645,   646,    -1,    -1,    -1,    -1,   110,    -1,
    3425      112,    -1,  1541,  1406,  1543,   158,    -1,   119,   120,    -1,
    3426      663,    -1,    -1,  1101,    -1,    -1,    -1,    -1,    -1,   172,
    3427     1423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3428       -1,    -1,  1571,  1572,    -1,    -1,    -1,    -1,    -1,    -1,
    3429     1579,  1580,   195,    -1,    -1,   698,    -1,    -1,    -1,    -1,
    3430       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
    3431       -1,  1206,    -1,    -1,    -1,   218,   719,    -1,    -1,    -1,
    3432       -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,    -1,    -1,
    3433       -1,    -1,    -1,    -1,   737,    -1,   739,    -1,    -1,    -1,
    3434       -1,    -1,    -1,  1496,  1497,    -1,    -1,    -1,    -1,    -1,
    3435      253,    -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,    -1,
    3436       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   271,    -1,
    3437       -1,   774,    -1,    -1,   277,    -1,   279,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,  1226,    10,
    3439       11,    12,    13,    14,   297,    -1,    -1,    -1,    -1,    -1,
    3440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1303,    -1,
    3441       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3442       -1,    -1,    -1,    -1,    -1,    -1,   829,    -1,    -1,    -1,
    3443      833,    -1,    -1,    -1,   837,    -1,   339,    -1,    -1,    -1,
    3444       -1,   344,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3445       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    3446       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3447      373,    -1,    -1,    94,   377,   378,    -1,   380,    -1,    -1,
    3448       -1,    -1,    -1,    -1,   387,   388,    -1,   390,   391,   110,
    3449      393,   112,   395,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3450      121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,   412,
    3451       -1,    -1,    -1,    -1,    -1,    37,    38,   420,    40,    -1,
    3452       -1,    -1,    -1,    -1,    -1,    -1,   929,    -1,    -1,    -1,
     3607      -1,    -1,    -1,    -1,    -1,  1162,    -1,    -1,    -1,    -1,
    34533608      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3454       -1,    -1,   445,    -1,    66,   948,    -1,    -1,    -1,    -1,
    3455       72,    -1,    -1,   456,    76,    -1,    -1,    79,    80,    81,
    3456       82,    83,    84,    -1,    86,    87,    -1,    -1,   971,    -1,
    3457       -1,    -1,    94,    -1,    -1,    -1,   479,    -1,    -1,    -1,
    3458       -1,    -1,   485,    -1,   987,    -1,    -1,   490,   110,    -1,
    3459      112,    -1,    -1,   115,    -1,    -1,    -1,   119,   120,   121,
    3460      122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3461       -1,    -1,    -1,    -1,    -1,    -1,   156,   157,    -1,    -1,
    3462     1023,    -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,    -1,
    3463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   541,    -1,
    3464       -1,  1044,  1045,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3465      190,    -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,
    3466       -1,    -1,    -1,    -1,  1559,    -1,    -1,    -1,    -1,    -1,
    3467       -1,    -1,    -1,    -1,    -1,    -1,    -1,   580,    -1,    -1,
    3468       -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,    -1,
    3469       -1,    -1,    -1,   596,    -1,    -1,    -1,    -1,    -1,   602,
    3470       -1,  1104,    -1,    -1,    -1,    -1,    -1,    -1,   611,    -1,
     3609    1177,  1178,    -1,    37,    38,    -1,    40,    -1,   118,   119,
     3610      -1,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     3611     567,   568,   569,   570,   571,   572,   573,   574,   575,   923,
     3612      -1,    -1,    66,    -1,    -1,    -1,    -1,   931,    72,    -1,
     3613      -1,    -1,    76,   937,    -1,    79,    80,    81,    82,    83,
     3614      84,   945,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3615      94,    -1,    -1,    -1,   958,   959,    -1,    -1,    -1,    -1,
     3616      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
     3617      -1,    -1,  1259,    -1,   118,   119,   120,   121,   122,   123,
     3618      -1,   985,    -1,    -1,    -1,    -1,    -1,   991,    -1,    -1,
     3619      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3620      -1,    -1,    -1,    -1,    -1,    -1,  1010,  1011,    -1,    -1,
     3621      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1021,    -1,    -1,
     3622      -1,    -1,    -1,  1027,  1028,    -1,  1030,  1031,  1032,    -1,
     3623      -1,    -1,    -1,  1320,    -1,  1322,    -1,    -1,  1042,  1043,
     3624      -1,    -1,   699,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3625      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3626      -1,    -1,    -1,    -1,   721,    -1,    -1,    -1,    -1,     4,
     3627       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3628      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3629      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,  1103,
     3630    1104,  1105,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3631      -1,    -1,    -1,  1117,    -1,    -1,    -1,    -1,    -1,    -1,
     3632      -1,  1408,    -1,   780,    -1,    -1,    -1,    -1,    -1,    -1,
     3633      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3634      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3635      -1,    86,    87,    -1,    -1,   812,    -1,    -1,  1162,    94,
     3636      -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3637      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3638      -1,   116,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3639      -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3640      -1,    76,    -1,  1490,    79,    80,    81,    82,    83,    84,
     3641      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,  1222,    94,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,  1243,
     3644      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3645      -1,    -1,    -1,    -1,    -1,  1542,    -1,    -1,    -1,    -1,
     3646      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
    34713647      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3472       20,    21,    22,    23,    24,    25,    26,    27,    -1,   269,
    3473       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3474       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
    3475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3476       -1,  1164,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,    -1,   324,   688,    -1,    -1,    -1,    -1,
    3479       -1,    -1,   332,   333,    -1,   335,   336,    -1,    -1,    -1,
    3480       -1,    -1,    -1,  1206,    -1,    -1,   346,    -1,    -1,    -1,
    3481      350,    -1,   112,    -1,    -1,    -1,   116,    -1,    -1,   119,
    3482      120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   369,
    3483       -1,    -1,   372,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3484      743,    -1,  1245,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3485      753,   754,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   399,
    3486       -1,    -1,    -1,   403,   767,    -1,    -1,    -1,    -1,    -1,
    3487       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3488       -1,   784,    -1,   786,    -1,    -1,   147,   790,    -1,    -1,
    3489       -1,  1294,  1295,    -1,   434,    -1,   157,    -1,    -1,    -1,
    3490     1303,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   169,   170,
    3491       -1,    -1,    -1,    -1,    -1,    -1,    -1,   457,    -1,    -1,
    3492       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3493       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3494       -1,    30,    31,    32,    -1,    -1,    -1,    -1,   488,    -1,
    3495       39,   491,    -1,   856,    -1,    -1,    -1,    -1,    -1,    -1,
    3496      863,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3497       -1,    -1,    -1,   876,    -1,   878,    -1,    -1,    67,   240,
    3498       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   892,
    3499       -1,   531,    -1,    -1,   534,   535,   899,    -1,    -1,    -1,
    3500       -1,    -1,    -1,   264,    -1,    -1,    -1,    -1,   911,    -1,
    3501       -1,   914,    -1,    -1,    -1,    -1,  1419,    -1,    -1,    -1,
    3502       -1,   110,    -1,   112,    -1,    -1,    -1,    -1,    -1,   932,
    3503      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3504      580,   581,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   599,
    3506      600,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3507      610,    -1,   612,   613,  1477,    -1,  1479,    -1,    -1,   619,
    3508       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   629,
    3509      630,    -1,    -1,    -1,    -1,   635,    -1,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,   644,   645,   646,    -1,    -1,    -1,
    3511       -1,  1514,    -1,  1516,    -1,    -1,    -1,    -1,  1021,    -1,
    3512      381,    -1,    -1,   663,    -1,    -1,    -1,    -1,   668,   669,
    3513       -1,    -1,   672,   673,    -1,    -1,    -1,    -1,    -1,   679,
    3514       -1,  1544,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,
    3515       -1,    -1,    -1,    -1,    -1,    -1,    -1,   697,   698,   699,
    3516       -1,   701,    -1,    -1,    -1,   705,    -1,    -1,    -1,    -1,
    3517       -1,    -1,    -1,    -1,    66,  1078,    -1,    -1,    -1,    -1,
    3518       72,    -1,  1085,    -1,    76,    -1,    -1,    79,    80,    81,
    3519       82,    83,    84,    -1,    86,    87,    -1,   737,   738,    -1,
    3520       -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,  1115,    -1,    -1,    -1,    -1,  1120,   110,    -1,
    3522      112,    -1,   483,    -1,    -1,  1128,   118,   119,   120,   121,
    3523      122,   123,   124,   773,   774,    -1,    -1,    -1,   778,   779,
    3524       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,    -1,  1159,    -1,    -1,    -1,
    3526       -1,   522,    -1,    -1,    -1,    -1,    -1,    -1,  1171,    -1,
    3527       -1,  1174,    -1,  1176,   535,    -1,    -1,    -1,    -1,   540,
    3528       -1,   821,   543,    -1,    -1,    -1,    -1,  1190,  1191,   829,
    3529       -1,    -1,    -1,   554,   555,   556,   836,   837,    -1,    -1,
    3530      840,    -1,   842,    -1,    -1,    -1,    -1,    -1,    -1,  1212,
    3531       -1,    -1,   852,    -1,    -1,    -1,    -1,   578,    -1,    -1,
    3532       -1,    -1,    -1,    -1,    -1,    -1,    -1,   588,    -1,    -1,
    3533       -1,    -1,    -1,    -1,   595,    -1,  1239,    -1,    -1,   600,
    3534       -1,    -1,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3648      20,    21,    22,    23,    24,    25,    26,    27,  1292,  1293,
     3649      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3650      40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
     3651      50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
     3652     977,    61,    62,    -1,    64,    -1,    66,    67,    -1,    69,
     3653      -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3654      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3655      -1,  1008,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
     3656      -1,    -1,    -1,    -1,  1021,    -1,    -1,    -1,    -1,   109,
     3657      -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,
     3658     120,   121,   122,   123,    -1,    -1,    -1,    -1,   128,    -1,
     3659      -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3660      -1,    -1,    -1,    -1,    -1,  1062,    -1,    -1,    -1,    -1,
     3661      -1,    -1,     0,  1417,    -1,     3,     4,     5,     6,     7,
    35353662       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    35363663      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    35373664      -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
    3538       -1,    39,    40,    -1,    -1,   925,    -1,    -1,   649,    -1,
    3539       -1,    -1,    -1,   933,    -1,    -1,    -1,   658,    -1,   939,
    3540       -1,    -1,    -1,    -1,    -1,    -1,    64,   947,    -1,    67,
     3665      -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3666      -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,  1135,    67,
    35413668      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3542      960,   961,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
    3543       -1,    -1,    -1,    -1,  1337,    -1,  1339,   698,    -1,    -1,
    3544       -1,    -1,    -1,    -1,    -1,    -1,    -1,   987,    -1,  1352,
    3545       -1,  1354,   110,   993,   112,    -1,    -1,    -1,    -1,    -1,
    3546       -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,  1372,
    3547       -1,    -1,  1012,  1013,    -1,    -1,    -1,    -1,    -1,    -1,
    3548       -1,    -1,    -1,  1023,    -1,  1388,  1389,    -1,    -1,  1029,
    3549     1030,    -1,  1032,  1033,  1034,    -1,    -1,  1400,    -1,    -1,
    3550     1403,    -1,    -1,    -1,  1044,  1045,    -1,    -1,    -1,    -1,
    3551       -1,    -1,    -1,   774,    -1,   776,    -1,    -1,    -1,    -1,
    3552       -1,   782,  1425,    -1,    -1,    -1,    -1,    -1,   789,    -1,
    3553       -1,  1434,    -1,    -1,  1437,    -1,  1439,  1440,  1441,     4,
    3554        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3555       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3556       25,    26,    27,    -1,    -1,  1105,  1106,  1107,    -1,    -1,
    3557       -1,    -1,   833,   834,    39,    -1,   837,    -1,  1481,  1119,
    3558     1483,    -1,    -1,  1486,    -1,    -1,    -1,    -1,    -1,    -1,
    3559      851,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1501,    -1,
    3560       -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3561       75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
    3562       -1,    -1,    -1,    -1,  1164,    -1,    -1,    -1,    -1,    -1,
    3563      891,    -1,    -1,    -1,   895,    -1,    -1,    -1,    -1,    -1,
    3564        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3565       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3566       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3567       33,    -1,    -1,    36,    37,    38,    39,    40,    -1,    -1,
    3568       -1,    -1,    -1,    -1,  1224,    -1,    -1,    -1,    -1,    -1,
    3569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3570       -1,    -1,    -1,    66,    67,  1245,    69,    -1,    71,    72,
    3571      971,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3572       83,    84,    -1,    86,    87,    -1,   987,   988,    -1,    -1,
    3573       -1,    94,    -1,   994,    -1,    -1,    -1,    -1,    -1,  1000,
    3574       -1,    -1,  1003,    -1,  1005,    37,    38,   110,    40,   112,
    3575       -1,    -1,    -1,    -1,  1294,  1295,   119,   120,   121,   122,
    3576      123,   124,    -1,    -1,    -1,  1026,    -1,    -1,    -1,    -1,
    3577      133,    -1,    -1,    -1,    66,    -1,  1037,    -1,    -1,    -1,
    3578       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    3579       82,    83,    84,    -1,    86,    87,    -1,    -1,  1059,    -1,
    3580     1061,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3581       -1,    -1,    -1,    -1,    -1,  1076,  1077,    -1,   110,    -1,
    3582      112,    -1,    -1,    -1,    -1,   117,    -1,   119,   120,   121,
    3583      122,   123,   124,    -1,    -1,    -1,  1097,    -1,    -1,    -1,
    3584        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3585       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3586       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3587       33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,  1419,
    3588       -1,    -1,    -1,    -1,  1145,    -1,    -1,    -1,    37,    38,
    3589       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       -1,    64,    -1,  1164,    67,    -1,    69,    -1,    71,    72,
    3591       -1,    74,    75,    76,    -1,    -1,    -1,    66,  1179,  1180,
    3592       83,    84,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3593       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3594       -1,    -1,    -1,    -1,    -1,    94,    -1,   110,    -1,   112,
    3595       -1,    -1,    -1,   116,    -1,    -1,   119,   120,    -1,    -1,
    3596       -1,   110,    -1,   112,    -1,    -1,   115,    -1,    -1,  1509,
    3597      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3599       -1,    -1,    -1,    -1,  1534,  1535,    -1,    -1,    -1,    -1,
    3600     1261,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3601       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1559,
    3602       -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3603       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3604       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3605       31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
    3606       41,  1322,    43,  1324,    -1,    46,    47,    48,    49,    50,
    3607       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    3608       61,    62,    -1,    64,    -1,    66,    67,    -1,    69,    -1,
    3609       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3610       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3611       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3613       -1,   112,    -1,    -1,   115,    -1,    -1,    -1,   119,   120,
    3614      121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,  1410,
    3615       -1,    -1,   133,    -1,    -1,    -1,     3,     4,     5,     6,
    3616        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3617       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3618       27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
    3619       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3620       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3621       26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3622       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3623       -1,  1492,    79,    80,    81,    82,    83,    84,    -1,    86,
    3624       87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3625       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3626       -1,    -1,    78,   110,    -1,   112,    -1,    -1,    -1,    -1,
    3627       -1,    -1,   119,   120,   121,   122,   123,   124,    -1,    -1,
    3628       -1,    -1,    -1,  1544,     4,     5,     6,     7,     8,     9,
    3629       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3630       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3631       30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
    3632       40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3633       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3634       -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,
    3635       39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    3636       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3637       -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,
    3638       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    3639      110,    -1,   112,    -1,    -1,    -1,    -1,   117,    -1,   119,
    3640      120,   121,   122,   123,   124,     4,     5,     6,     7,     8,
     3669      -1,    66,    -1,    -1,    -1,    83,    84,    72,    -1,    -1,
     3670      -1,    76,    -1,  1507,    79,    80,    81,    82,    83,    84,
     3671      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3672      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,  1532,  1533,
     3673     118,   119,    -1,    -1,   109,    -1,  1193,  1194,    -1,    -1,
     3674      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3675      -1,    -1,    -1,  1557,     3,     4,     5,     6,     7,     8,
    36413676       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    36423677      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3643       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
     3678      -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    36443679      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
    36453680      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     
    36483683      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    36493684      -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    67,
    3650       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
    3651       -1,   110,    -1,   112,    -1,    -1,    -1,    -1,   117,    -1,
    3652      119,   120,   121,   122,   123,   124,     4,     5,     6,     7,
    3653        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3654       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3655       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
    3656       38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
    3657       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3658       27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
    3659       -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
    3660       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3661       -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    3662       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3663       -1,    -1,   110,    -1,   112,    -1,    -1,    -1,    -1,   117,
    3664       -1,   119,   120,   121,   122,   123,   124,     4,     5,     6,
    3665        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3666       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3667       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3668       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3669       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3670       26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3671       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3672       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3673       87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3674       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3675       -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,    -1,
    3676       -1,    -1,   119,   120,   121,   122,   123,   124,     4,     5,
    3677        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3678       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3679       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3680       -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
     3686     109,    -1,   111,    -1,    -1,    83,    84,    -1,    -1,   118,
     3687     119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,    -1,
     3688      -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,     3,
     3689       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3690      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3691      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
     3692      -1,    -1,    36,    37,    38,    39,    40,    -1,    -1,    -1,
     3693      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3694      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1404,    -1,    -1,
     3695      -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,
     3696      74,    75,    76,    -1,  1421,    79,    80,    81,    82,    83,
     3697      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3698      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3700      -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
     3701      -1,    -1,    -1,     4,     5,     6,     7,     8,     9,    10,
     3702      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3703      21,    22,    23,    24,    25,    26,    27,  1494,  1495,    30,
     3704      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3705      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3706      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3707      30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
     3708      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3709      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3710      -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
     3711      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
     3712     111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
     3713     121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
     3714      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3715      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3716      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3717      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3718      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3719      30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
     3720      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3721      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
     3723      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
     3724     111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
     3725     121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
     3726      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3727      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3728      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    36813729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36823730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3683       66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
    3684       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3685       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3686       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3687       -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
    3688       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,     4,
    3689        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3690       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3691       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3692       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
     3732      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3733      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3734      -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3736     111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
     3737     121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
     3738      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3739      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3740      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    36933741      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36943742      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3695       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3696       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3697       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3743      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
     3744      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3745      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3746      -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
     3747      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3748     111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
     3749     121,   122,   123,     3,     4,     5,     6,     7,     8,     9,
     3750      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3751      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3752      30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
     3753      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36983754      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
    3700       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3701        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3702       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3703       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3704       -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
     3755      -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,
     3756      -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
     3757      -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,
     3758      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3760      -1,   111,    -1,    -1,    -1,   115,    -1,    -1,   118,   119,
     3761       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    37053762      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    37063763      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3707       -1,    -1,    66,    67,    -1,    69,    39,    71,    72,    -1,
    3708       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3709       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3710       94,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    74,    75,    -1,    -1,    -1,   110,    -1,   112,    -1,
    3712       -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
    3713      124,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3714       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3715       22,    23,    24,    25,    26,    27,   119,   120,    30,    31,
    3716       32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,
     3764      33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,    -1,
    37173765      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37183766      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3719       -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,    71,
    3720       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
    3721       -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3767      -1,    64,    -1,    -1,    67,    -1,    69,    -1,    71,    72,
     3768      -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
     3769      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37223770      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3723       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
    3724      112,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,     3,
    3725        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3726       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3727       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3728       -1,    -1,    -1,    -1,    -1,    39,    -1,    10,    11,    12,
    3729       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3730       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3731       33,    34,    35,    67,    -1,    69,    39,    71,    72,    -1,
    3732       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3733       84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3734       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
    3735       -1,    74,    75,    -1,    -1,    -1,   110,    -1,   112,    -1,
    3736       -1,    -1,    -1,    -1,    -1,   119,   120,     3,     4,     5,
     3771      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3772      -1,    -1,    -1,    -1,    -1,   118,   119,     3,     4,     5,
    37373773       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    37383774      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     
    37423778      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37433779      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
    3744       -1,    -1,    78,    -1,     3,     4,     5,     6,     7,     8,
    3745        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3746       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3747       -1,    30,    31,    32,    33,    -1,   112,    36,    -1,    -1,
    3748       39,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
     3780      -1,    -1,    78,     3,     4,     5,     6,     7,     8,     9,
     3781      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3782      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3783      30,    31,    32,    33,    -1,   111,    36,    -1,    -1,    39,
     3784      -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    -1,
    37493785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3750       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3751       69,    -1,    71,    -1,    -1,    74,    75,    -1,     3,     4,
    3752        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3753       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3754       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3755       -1,    -1,    -1,   112,    39,    -1,    -1,    -1,    -1,    -1,
    3756      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3757       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3758       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3759       75,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3760       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3761       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3762       -1,    -1,    -1,    -1,    -1,    -1,    39,   112,    -1,    -1,
    3763       -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,
    3764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3765       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,
    3766       -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
    3767       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,
    3770       -1,    -1,    -1,    -1,    -1,    -1,   119,   120,     4,     5,
    3771        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3772       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3773       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3774       -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     3786      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3787      -1,    71,    -1,    -1,    74,    75,     3,     4,     5,     6,
     3788       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3789      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3790      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3791      -1,   111,    39,    -1,    -1,    -1,    -1,    -1,   118,   119,
    37753792      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37763793      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3777       -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
    3778       -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
    3779       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3780       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3781       32,    -1,    -1,    -1,    -1,   111,   112,    39,    -1,    -1,
    3782       -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
    3783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3784       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3785       -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
    3786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3787       -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,
    3788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3789      112,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,     4,
    3790        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3791       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3792       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3793       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
    3794       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3795       22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
    3796       32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,    74,
    3797       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3799       -1,    96,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3800       72,    -1,    74,    75,    76,    -1,    78,   112,    -1,    -1,
    3801       -1,    83,    84,    -1,   119,   120,     4,     5,     6,     7,
    3802        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3803       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3804      112,    -1,    30,    31,    32,    -1,    -1,   119,   120,    -1,
    3805       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3808       -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,     5,
    3809        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3810       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3811       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3812       -1,    -1,    -1,    39,   112,    -1,    -1,    -1,    -1,    -1,
    3813       -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3815       -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
     3794      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    38163795       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    38173796      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    38183797      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3819       -1,    -1,    -1,    -1,    -1,    39,   112,    -1,    -1,    -1,
    3820       -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
     3798      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3799      -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3800      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3801      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3802      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3803      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3804      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3805      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3806      -1,    -1,    -1,    -1,   118,   119,     4,     5,     6,     7,
     3807       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3808      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3809      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3810      -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3811      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3812      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    67,
     3813      -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,     4,
     3814       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3815      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3816      25,    26,    27,    67,    -1,    30,    31,    32,    -1,    -1,
     3817      74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,    -1,
     3818     118,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3819      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3820      -1,    -1,    67,    -1,    69,   109,    71,   111,    -1,    74,
     3821      75,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,
     3822      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3823      -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3824      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3825      -1,    -1,    -1,   118,   119,     4,     5,     6,     7,     8,
     3826       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3827      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3828      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3829      39,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3830      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3831      26,    27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,
     3832      69,    -1,    71,    39,    -1,    74,    75,    -1,    -1,    -1,
     3833      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3834      -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
     3835      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3836      76,    -1,   111,    -1,    -1,    -1,    -1,    83,    84,   118,
     3837     119,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3838      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3839      23,    24,    25,    26,    27,   111,    -1,    30,    31,    32,
     3840      -1,    -1,   118,   119,    -1,    -1,    39,    -1,    -1,    -1,
     3841      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3842      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3843      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
     3844      -1,    74,    75,    -1,     4,     5,     6,     7,     8,     9,
     3845      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3846      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3847      30,    31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,
     3848      -1,    -1,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,
     3849      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3850      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3851      -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
     3852       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3853      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3854      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3855      -1,   111,    39,    -1,    -1,    -1,    -1,    -1,   118,   119,
     3856      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3857      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3858      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3859       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3860      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3861      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3862      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3863      -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38213864      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38223865      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3823       74,    75,     4,     5,     6,     7,     8,     9,    10,    11,
    3824       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3825       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3826       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,   112,    -1,
    3827       -1,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,
     3866      74,    75,    10,    11,    12,    13,    14,    15,    16,    17,
     3867      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3868      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3869      38,    39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3870      -1,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,
     3871      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3872      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3873      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3874      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    38283875      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3830       -1,    -1,    74,    75,    10,    11,    12,    13,    14,    15,
     3876      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,
     3877     118,   119,   120,   121,   122,   123,    10,    11,    12,    13,
     3878      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3879      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3880      -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
     3881      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3882      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3883      -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,    -1,
     3884      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3885      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3886      94,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
     3887      -1,    74,    75,    -1,    -1,   109,   110,   111,    -1,    -1,
     3888      83,    84,    -1,    -1,   118,   119,   120,   121,   122,   123,
     3889      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3890      20,    21,    22,    23,    24,    25,    26,    27,   111,    -1,
     3891      30,    31,    32,    -1,    -1,   118,   119,    37,    38,    39,
     3892      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3893      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3894      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
     3895      39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3896      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3897      -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,
     3898      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3899      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
     3900     120,   121,   122,   123,    10,    11,    12,    13,    14,    15,
    38313901      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3832       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3833       -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
    3834      112,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,    -1,
    3835       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3836       66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3837       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3838       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3839       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3840       -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,   115,
    3841       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    10,
    3842       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3843       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3844       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3845       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3846       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3847       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3848       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3849       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3850       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3851       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    78,   110,
    3852      111,   112,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3853      121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
    3854       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3855       26,    27,   112,    -1,    30,    31,    32,    -1,    -1,   119,
    3856      120,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3857       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3858       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3859       66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
    3860       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3861       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3862       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3863       75,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
    3864       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    10,
    3865       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3866       21,    22,    23,    24,    25,    26,    27,   112,    -1,    30,
    3867       31,    32,    -1,    -1,   119,   120,    37,    38,    39,    40,
    3868       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3869       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3870       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3871       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3872       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3873       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3874       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,   110,
    3875       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3876      121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
    3877       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3878       26,    27,   112,    -1,    30,    31,    32,    -1,    -1,   119,
    3879      120,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3902      26,    27,   111,    -1,    30,    31,    32,    -1,    -1,   118,
     3903     119,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    38803904      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    38813905      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     
    38843908      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    38853909      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3886       75,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
    3887       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    10,
     3910      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3911      -1,    -1,   118,   119,   120,   121,   122,   123,    10,    11,
     3912      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3913      22,    23,    24,    25,    26,    27,   111,    -1,    30,    31,
     3914      32,    -1,    -1,   118,   119,    37,    38,    39,    40,    10,
    38883915      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3889       21,    22,    23,    24,    25,    26,    27,   112,    -1,    30,
    3890       31,    32,    -1,    -1,   119,   120,    37,    38,    39,    40,
    3891       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3892       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3893       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3894       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3895       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3896       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3897       -1,    -1,    72,    -1,    74,    75,    76,    -1,    78,   110,
    3898       -1,   112,    -1,    83,    84,    -1,    -1,    -1,   119,   120,
    3899      121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
    3900       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3901      110,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3902      120,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3903       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3904       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3905       39,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3906       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3907       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,
    3908       39,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3909       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
    3910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3911       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3912       -1,   110,    -1,   112,    83,    84,    -1,    -1,    -1,    -1,
    3913      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3915       -1,   110,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
    3916      119,   120,    10,    11,    12,    13,    14,    15,    16,    17,
     3916      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3917      31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,
     3918      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3919      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3920      -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3921      -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,
     3922      -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
     3923     122,   123,    10,    11,    12,    13,    14,    15,    16,    17,
    39173924      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3918       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3919       -1,    39,    10,    11,    12,    13,    14,    15,    16,    17,
    3920       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3921       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,
    3922       -1,    39,    40,    -1,    72,    -1,    74,    75,    76,    -1,
    3923       -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
    3924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3925       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
    3926       -1,    -1,   110,    -1,   112,    -1,    -1,    -1,    -1,    -1,
    3927       -1,   119,   120,    -1,    -1,    10,    11,    12,    13,    14,
    3928       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3929       25,    26,    27,    -1,   112,    30,    31,    32,   116,    -1,
    3930       -1,   119,   120,    -1,    39,    40,    10,    11,    12,    13,
     3925     111,    -1,    30,    31,    32,    -1,    -1,   118,   119,    37,
     3926      38,    39,    40,    -1,    10,    11,    12,    13,    14,    15,
     3927      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3928      26,    27,    28,    -1,    30,    31,    32,    -1,    66,    67,
     3929      -1,    -1,    -1,    39,    72,    -1,    74,    75,    76,    -1,
     3930      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3931      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3932      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3933      76,   109,    78,   111,    -1,    -1,    -1,    83,    84,    -1,
     3934     118,   119,   120,   121,   122,   123,    10,    11,    12,    13,
     3935      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3936      24,    25,    26,    27,    -1,   111,    30,    31,    32,    -1,
     3937      -1,    -1,   118,   119,    -1,    39,    10,    11,    12,    13,
    39313938      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    39323939      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3933       -1,    -1,    67,    -1,    -1,    39,    -1,    -1,    -1,    74,
    3934       75,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3935       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3936       25,    26,    27,    67,    -1,    30,    31,    32,    -1,    -1,
    3937       74,    75,    -1,    -1,    39,    -1,    -1,   112,    -1,    -1,
    3938       -1,   116,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,
     3940      -1,    -1,    -1,    67,    -1,    39,    -1,    -1,    72,    -1,
     3941      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3942      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3943      -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
     3944      74,    75,    76,    -1,    -1,   109,    -1,   111,    -1,    83,
     3945      84,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,
    39393946      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3940       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,   112,    74,
    3941       75,    -1,    -1,    -1,    -1,   119,   120,    10,    11,    12,
    3942       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3943       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3944       -1,    -1,    -1,    -1,    -1,    -1,    39,   112,    -1,    -1,
    3945       -1,    -1,    -1,    -1,   119,   120,    10,    11,    12,    13,
    3946       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3947       24,    25,    26,    27,    67,    -1,    30,    31,    32,    -1,
    3948       -1,    74,    75,    -1,    -1,    39,    10,    11,    12,    13,
     3947      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3948      -1,    -1,    -1,    -1,   118,   119,    10,    11,    12,    13,
    39493949      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    39503950      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3951       -1,    -1,    -1,    67,    -1,    39,    -1,    -1,    -1,   112,
    3952       74,    75,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,
     3951      -1,    -1,    -1,    -1,    -1,    39,    10,    11,    12,    13,
     3952      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3953      24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
     3954      -1,    -1,    -1,    67,    -1,    39,    -1,    -1,    72,    -1,
     3955      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3956      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3957      -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
     3958      74,    75,    -1,    -1,    78,   109,    -1,   111,    -1,    -1,
     3959      -1,    -1,    -1,    -1,   118,   119,    -1,    -1,    10,    11,
     3960      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3961      22,    23,    24,    25,    26,    27,    -1,   111,    30,    31,
     3962      32,    -1,    -1,    -1,   118,   119,    -1,    39,    40,    10,
     3963      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3964      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3965      31,    32,    -1,    -1,    -1,    67,    -1,    -1,    39,    40,
     3966      -1,    -1,    74,    75,    -1,    -1,    -1,    10,    11,    12,
     3967      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3968      23,    24,    25,    26,    27,    -1,    67,    30,    31,    32,
     3969      -1,    -1,    -1,    74,    75,    -1,    39,    -1,    -1,   111,
     3970      -1,    -1,    -1,   115,    -1,    -1,   118,   119,    -1,    -1,
    39533971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3954       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3955       74,    75,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
    3956       -1,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,
     3972      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
     3973     111,    74,    75,    -1,   115,    -1,    -1,   118,   119,    -1,
     3974      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3975      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3976      30,    31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,
     3977      -1,    -1,    -1,    -1,    -1,   118,   119,    -1,    10,    11,
     3978      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3979      22,    23,    24,    25,    26,    27,    -1,    67,    30,    31,
     3980      32,    -1,    -1,    -1,    74,    75,    -1,    39,    10,    11,
     3981      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3982      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3983      32,    -1,    -1,    -1,    -1,    67,    -1,    39,    -1,    -1,
     3984      -1,   111,    74,    75,    -1,    -1,    -1,    -1,   118,   119,
    39573985      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3958       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
    3959       -1,    -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,
    3960        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3961       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3962       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3963       -1,    -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,
     3986      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3987      -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,   111,
     3988      -1,    -1,    -1,    -1,    -1,    -1,   118,   119,    -1,    -1,
     3989      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3990      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3991      30,    31,    32,    -1,    -1,    -1,   118,   119,    -1,    39,
     3992      -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3993      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3994      22,    23,    24,    25,    26,    27,    -1,    67,    30,    31,
     3995      32,    -1,    -1,    -1,    74,    75,    -1,    39,    -1,    -1,
     3996      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3997      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3998      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3999      -1,   111,    74,    75,    -1,    -1,    -1,    -1,   118,   119,
     4000      37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,    46,
     4001      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    56,
     4002      57,    -1,    -1,    -1,    61,    62,    -1,    64,   110,    66,
     4003      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     4004      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     4005      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
     4006      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4007      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
     4008      -1,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
     4009      -1,   128,    -1,    37,    38,   132,    40,    41,    -1,    43,
     4010      -1,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
     4011      -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,
     4012      64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     4013      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     4014      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     4015      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4016      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     4017     114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
     4018      -1,    -1,    -1,    -1,   128,    -1,    -1,    -1,   132,     4,
     4019       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     4020      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4021      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     4022      -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,    40,
     4023      41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
     4024      51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,    -1,
     4025      61,    62,    67,    64,    69,    66,    71,    -1,    -1,    74,
     4026      75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
     4027      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     4028      -1,    96,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
     4029      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     4030     111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,
     4031     121,   122,   123,    -1,    -1,    37,    38,   128,    40,    41,
     4032      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
     4033      52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
     4034      62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     4035      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     4036      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     4037      -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4038      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     4039      -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,
     4040     122,   123,    -1,    -1,    37,    38,   128,    40,    41,    -1,
    39644041      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    3965       53,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,
    3966       67,    64,    69,    66,    71,    -1,    -1,    74,    75,    72,
     4042      53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,
     4043      -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,
    39674044      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    39684045      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3969       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3970       -1,    -1,    -1,    -1,   111,    -1,    -1,   110,    -1,   112,
    3971       -1,    -1,   115,    -1,    -1,    -1,   119,   120,   121,   122,
    3972      123,   124,    -1,    -1,    -1,    -1,   129,    -1,    37,    38,
    3973      133,    40,    41,    -1,    43,    -1,    -1,    46,    47,    48,
    3974       49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
    3975       -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
    3976       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3977       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3978       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3980       -1,   110,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,
    3981      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
    3982      129,    -1,    37,    38,   133,    40,    41,    -1,    43,    44,
    3983       45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3984       -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3985       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     4046      -1,    94,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     4047      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     4048      -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     4049     123,    66,    -1,    -1,    -1,   128,    -1,    72,    -1,    -1,
    39864050      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    39874051      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    39884052      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3989       -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
    3990      115,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3991       -1,    -1,    37,    38,   129,    40,    41,    -1,    43,    44,
    3992       45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3993       -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3994       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3995       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3996       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3997       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3998       -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
    3999      115,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    4000       -1,    -1,    37,    38,   129,    40,    41,    -1,    43,    -1,
    4001       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    4002       -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    4003       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    4004       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    4005       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    4006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4007       -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
    4008      115,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    4009       -1,    -1,    -1,    -1,   129,     4,     5,     6,     7,     8,
    4010        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    4011       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    4012       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    4013       39,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    4014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4015       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    67,    -1,
    4016       69,    66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,
    4017       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    4018       66,    86,    87,    -1,    -1,    -1,    72,    96,    -1,    94,
    4019       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    4020       86,    87,    -1,    -1,    -1,   110,    -1,   112,    94,    -1,
    4021       37,    38,    -1,    40,   119,   120,   121,   122,   123,   124,
    4022       -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    37,
    4023       38,    -1,    40,   119,   120,   121,   122,   123,   124,    66,
    4024       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    4025       -1,    -1,    79,    80,    81,    82,    83,    84,    66,    86,
    4026       87,    -1,    -1,    -1,    72,    -1,    -1,    94,    76,    -1,
    4027       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    4028       -1,    -1,    -1,   110,    -1,   112,    94,    -1,    37,    38,
    4029       -1,    40,   119,   120,   121,   122,   123,   124,    -1,    -1,
    4030       -1,    -1,   110,    -1,   112,    -1,    -1,    37,    38,    -1,
    4031       40,   119,   120,   121,   122,   123,   124,    66,    -1,    -1,
    4032       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    4033       79,    80,    81,    82,    83,    84,    66,    86,    87,    -1,
    4034       -1,    -1,    72,    -1,    -1,    94,    76,    -1,    -1,    79,
    4035       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    4036       -1,   110,    -1,    -1,    94,    -1,    37,    38,    -1,    40,
    4037      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
    4038      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    4039      120,   121,   122,   123,   124,    66,    -1,    -1,    -1,    -1,
    4040       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    4041       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    4042       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    4043       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    4044       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,
    4045      121,   122,   123,   124,     3,     4,     5,     6,     7,     8,
    4046        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    4047       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    4048       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    4049       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4050       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4051       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    4052       69,    -1,    71,    -1,    -1,    74,    75,     3,     4,     5,
    4053        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    4054       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4055       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4056       -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     4053      -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     4054      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
     4055       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     4056      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4057      25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4058      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    40574059      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40584060      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4059       -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
    4060        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    4061       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    4062       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    4063       -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
     4061      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     4062      75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
     4063       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     4064      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4065      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     4066      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
    40644067      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40654068      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4066       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    4067       74,    75
     4069      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
     4070      -1,    74,    75,     3,     4,     5,     6,     7,     8,     9,
     4071      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     4072      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     4073      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     4074      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4075      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4076      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     4077      -1,    71,    -1,    -1,    74,    75,     4,     5,     6,     7,
     4078       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     4079      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     4080      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     4081      -1,    39,    -1,    10,    11,    12,    13,    14,    15,    16,
     4082      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     4083      27,    -1,    -1,    30,    31,    32,    33,    34,    35,    67,
     4084      -1,    69,    39,    71,    -1,    -1,    74,    75,    -1,    -1,
     4085      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4086      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4087      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75
    40684088};
    40694089
     
    40764096      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    40774097      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    4078       76,    83,    84,   110,   112,   119,   120,   138,   141,   150,
    4079      199,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    4080      222,   223,   224,   225,   226,   227,   228,   229,   230,   232,
    4081      233,   234,   235,   236,   237,   238,   239,   241,   242,   243,
    4082      244,   245,   246,   248,   256,   257,   284,   285,   286,   294,
    4083      297,   303,   304,   306,   308,   309,   315,   320,   324,   325,
    4084      326,   327,   328,   329,   330,   331,   351,   368,   369,   370,
    4085      371,    72,   140,   141,   150,   216,   218,   226,   228,   238,
    4086      242,   244,   285,    82,   110,   313,   314,   315,   313,   313,
    4087       72,    74,    75,    76,   139,   140,   274,   275,   295,   296,
    4088       74,    75,   275,   110,   306,    11,   200,   110,   150,   320,
    4089      325,   326,   327,   329,   330,   331,   113,   135,   112,   219,
    4090      226,   228,   324,   328,   367,   368,   371,   372,   136,   107,
    4091      132,   278,   115,   136,   174,    74,    75,   138,   273,   136,
    4092      136,   136,   117,   136,    74,    75,   110,   150,   310,   319,
    4093      320,   321,   322,   323,   324,   328,   332,   333,   334,   335,
    4094      336,   342,     3,    28,    78,   240,     3,     5,    74,   112,
    4095      150,   218,   229,   233,   236,   245,   286,   324,   328,   371,
    4096      216,   218,   228,   238,   242,   244,   285,   324,   328,    33,
    4097      234,   234,   229,   236,   136,   234,   229,   234,   229,    75,
    4098      110,   115,   275,   286,   115,   275,   234,   229,   117,   136,
    4099      136,     0,   135,   110,   174,   313,   313,   135,   112,   226,
    4100      228,   369,   273,   273,   132,   228,   110,   150,   310,   320,
    4101      324,   112,   150,   371,   307,   231,   315,   110,   291,   110,
    4102      110,    51,   110,    37,    38,    40,    66,    72,    76,    79,
    4103       80,    81,    82,    86,    87,    94,   110,   112,   121,   122,
    4104      123,   124,   137,   141,   142,   143,   144,   149,   150,   151,
    4105      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
    4106      162,   163,   165,   167,   226,   277,   293,   367,   372,   228,
    4107      111,   111,   111,   111,   111,   111,   111,    74,    75,   112,
    4108      226,   273,   351,   369,   112,   119,   150,   165,   218,   219,
    4109      225,   228,   232,   233,   238,   241,   242,   244,   263,   264,
    4110      268,   269,   270,   271,   285,   351,   363,   364,   365,   366,
    4111      371,   372,   113,   110,   324,   328,   371,   110,   117,   133,
    4112      112,   115,   150,   165,   279,   279,   116,   135,   117,   133,
    4113      110,   117,   133,   117,   133,   117,   133,   313,   133,   320,
    4114      321,   322,   323,   333,   334,   335,   336,   228,   319,   332,
    4115       64,   312,   112,   313,   350,   351,   313,   313,   174,   135,
    4116      110,   313,   350,   313,   313,   228,   310,   110,   110,   227,
    4117      228,   226,   228,   113,   135,   226,   367,   372,   174,   135,
    4118      273,   278,   218,   233,   324,   328,   174,   135,   295,   228,
    4119      238,   133,   228,   228,   293,    40,   112,   226,   249,   250,
    4120      251,   252,   367,   371,   247,   259,   275,   258,   228,   295,
    4121      133,   133,   306,   135,   140,   272,     3,   136,   208,   209,
    4122      223,   225,   228,   135,   312,   110,   312,   165,   320,   228,
    4123      110,   135,   273,   115,    33,    34,    35,   226,   287,   288,
    4124      290,   135,   130,   132,   292,   135,   229,   235,   236,   273,
    4125      316,   317,   318,   110,   142,   110,   149,   110,   149,   152,
    4126      110,   149,   110,   110,   149,   149,   140,   112,   165,   170,
    4127      174,   226,   276,   367,   113,   135,    82,    85,    86,    87,
    4128      110,   112,   114,   115,    97,    98,    99,   100,   101,   102,
    4129      103,   104,   105,   106,   108,   132,   169,   152,   152,   119,
    4130      125,   126,   121,   122,    88,    89,    90,    91,   127,   128,
    4131       92,    93,   120,   129,   130,    94,    95,   131,   132,   374,
    4132      110,   150,   346,   347,   348,   349,   350,   111,   117,   110,
    4133      350,   351,   110,   350,   351,   135,   110,   226,   369,   113,
    4134      135,   136,   112,   226,   228,   362,   363,   371,   372,   136,
    4135      110,   112,   150,   320,   337,   338,   339,   340,   341,   342,
    4136      343,   344,   345,   351,   352,   353,   354,   355,   356,   357,
    4137      150,   371,   228,   136,   136,   150,   226,   228,   364,   273,
    4138      226,   351,   364,   273,   110,   135,   135,   135,   113,   135,
    4139       72,    80,   112,   114,   141,   275,   279,   280,   281,   282,
    4140      283,   135,   135,   135,   135,   135,   135,   310,   111,   111,
    4141      111,   111,   111,   111,   111,   319,   332,   110,   278,   113,
    4142      208,   135,   310,   170,   277,   170,   277,   310,   112,   208,
    4143      312,   174,   135,   208,   111,   251,   252,   113,   135,   110,
    4144      118,   150,   253,   255,   319,   320,   332,   350,   358,   359,
    4145      360,   361,   116,   250,   117,   133,   117,   133,   275,   115,
    4146      117,   373,   132,   260,   115,   228,   265,   266,   267,   270,
    4147      271,   111,   117,   174,   135,   119,   165,   135,   225,   228,
    4148      264,   363,   371,   304,   305,   110,   150,   337,   111,   117,
    4149      374,   275,   287,   110,   115,   275,   277,   287,   111,   117,
    4150      110,   142,   111,   118,   276,   276,   276,   112,   140,   146,
    4151      165,   277,   276,   113,   135,   111,   117,   111,   110,   150,
    4152      358,   111,   117,   165,   112,   140,   112,   145,   146,   135,
    4153      112,   140,   145,   165,   165,   165,   152,   152,   152,   153,
    4154      153,   154,   154,   155,   155,   155,   155,   156,   156,   157,
    4155      158,   159,   160,   161,   118,   170,   165,   135,   347,   348,
    4156      349,   228,   346,   313,   313,   165,   277,   135,   272,   135,
    4157      226,   351,   364,   228,   232,   113,   113,   135,   371,   113,
    4158      110,   135,   320,   338,   339,   340,   343,   353,   354,   355,
    4159      113,   135,   228,   337,   341,   352,   110,   313,   356,   374,
    4160      313,   313,   374,   110,   313,   356,   313,   313,   313,   313,
    4161      351,   226,   362,   372,   273,   113,   117,   113,   117,   374,
    4162      226,   364,   374,   261,   262,   263,   264,   261,   261,   273,
    4163      165,   135,   112,   275,   118,   117,   373,   279,    80,   112,
    4164      118,   283,    29,   210,   211,   273,   261,   140,   310,   140,
    4165      312,   110,   350,   351,   110,   350,   351,   142,   351,   174,
    4166      265,   111,   111,   111,   111,   113,   174,   208,   174,   115,
    4167      133,   133,   112,   320,   359,   360,   361,   163,   164,   228,
    4168      358,   254,   255,   254,   313,   313,   275,   313,   249,   275,
    4169      116,   164,   259,   136,   136,   140,   223,   136,   136,   261,
    4170      110,   150,   371,   136,   116,   228,   288,   289,   136,   135,
    4171      135,   110,   136,   111,   317,   170,   171,   118,   133,   112,
    4172      142,   201,   202,   203,   111,   117,   111,   135,   118,   111,
    4173      111,   111,   165,   228,   115,   152,   167,   165,   166,   168,
    4174      117,   136,   135,   135,   111,   117,   165,   135,   116,   163,
    4175      118,   265,   111,   111,   111,   346,   265,   111,   261,   226,
    4176      364,   112,   119,   150,   165,   165,   228,   343,   265,   111,
    4177      111,   111,   111,   111,   111,   111,     7,   228,   337,   341,
    4178      352,   135,   135,   374,   135,   135,   111,   136,   136,   136,
    4179      136,   278,   136,   163,   164,   165,   311,   135,   279,   281,
    4180      116,   135,   212,   275,    40,    41,    43,    46,    47,    48,
    4181       49,    50,    51,    52,    53,    57,    61,    62,   112,   129,
    4182      140,   171,   172,   173,   174,   175,   176,   178,   179,   191,
    4183      193,   194,   199,   213,   309,    29,   136,   132,   278,   135,
    4184      135,   111,   136,   174,   249,   113,   111,   111,   111,   358,
    4185      253,   116,   260,   373,   111,   117,   113,   113,   136,   228,
    4186      117,   374,   291,   111,   287,   216,   218,   226,   299,   300,
    4187      301,   302,   293,   111,   111,   118,   164,   110,   111,   118,
    4188      117,   140,   165,   165,   280,   117,   136,   168,   113,   140,
    4189      147,   148,   165,   146,   136,   147,   163,   167,   136,   110,
    4190      350,   351,   136,   136,   135,   136,   136,   136,   165,   111,
    4191      136,   110,   350,   351,   110,   356,   110,   356,   351,   227,
    4192        7,   119,   136,   165,   265,   265,   264,   268,   268,   269,
    4193      117,   117,   111,   111,   113,    96,   124,   136,   136,   147,
    4194      279,   165,   117,   133,   213,   217,   228,   232,   110,   110,
    4195      172,   110,   110,   133,   140,   133,   140,   119,   140,   171,
    4196      110,   174,   166,   166,   113,   144,   118,   133,   136,   135,
    4197      136,   212,   111,   165,   265,   265,   313,   111,   116,   110,
    4198      350,   351,   116,   135,   111,   135,   136,   310,   116,   135,
    4199      136,   136,   111,   115,   201,   113,   164,   133,   201,   203,
    4200      111,   117,   136,   373,   166,   113,   136,    85,   114,   117,
    4201      136,   136,   113,   136,   111,   135,   111,   111,   113,   113,
    4202      113,   136,   111,   135,   135,   135,   165,   165,   136,   113,
    4203      136,   136,   136,   136,   135,   135,   164,   164,   113,   113,
    4204      136,   136,   275,   228,   170,   170,    47,   170,   135,   133,
    4205      133,   170,   133,   133,   170,    58,    59,    60,   195,   196,
    4206      197,   133,    63,   133,   115,   313,   176,   116,   133,   136,
    4207      136,   135,    96,   270,   271,   111,   300,   117,   133,   117,
    4208      133,   116,   298,   118,   142,   111,   111,   118,   168,   113,
    4209      116,   113,   112,   148,   112,   148,   148,   113,   113,   113,
    4210      265,   113,   265,   265,   265,   136,   136,   113,   113,   111,
    4211      111,   113,   117,    96,   264,    96,   136,   113,   113,   111,
    4212      111,   110,   111,   171,   192,   213,   133,   111,   110,   110,
    4213      174,   197,    58,    59,   165,   145,   172,   111,   111,   265,
    4214      115,   135,   135,   299,   142,   204,   110,   133,   204,   136,
    4215      118,   135,   135,   136,   136,   136,   136,   113,   113,   135,
    4216      136,   113,   172,    44,    45,   115,   182,   183,   184,   170,
    4217      172,   136,   111,   171,   115,   184,    96,   135,    96,   135,
    4218      110,   110,   133,   116,   136,   135,   273,   310,   116,   117,
    4219      118,   164,   111,   113,   165,   147,   147,   111,   111,   111,
    4220      111,   268,    42,   164,   180,   181,   311,   118,   135,   172,
    4221      182,   111,   133,   172,   133,   135,   111,   135,   111,   135,
    4222       96,   135,    96,   135,   133,   111,   299,   142,   140,   205,
    4223      111,   133,   118,   136,   136,   172,    96,   117,   118,   136,
    4224      206,   207,   213,   133,   171,   171,   206,   174,   198,   226,
    4225      367,   174,   198,   111,   135,   111,   135,   116,   111,   117,
    4226      165,   113,   113,   164,   180,   183,   185,   186,   135,   133,
    4227      183,   187,   188,   136,   110,   150,   310,   358,   140,   136,
    4228      174,   198,   174,   198,   110,   133,   140,   172,   177,   116,
    4229      183,   213,   171,    56,   177,   190,   116,   183,   111,   228,
    4230      111,   136,   136,   293,   172,   177,   133,   189,   190,   177,
    4231      190,   174,   174,   111,   111,   111,   189,   136,   136,   174,
    4232      174,   136,   136
     4098      76,    83,    84,   109,   111,   118,   119,   137,   140,   149,
     4099     198,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     4100     221,   222,   223,   224,   225,   226,   227,   228,   229,   231,
     4101     232,   233,   234,   235,   236,   237,   238,   240,   241,   242,
     4102     243,   244,   245,   247,   255,   256,   283,   284,   285,   293,
     4103     296,   302,   303,   305,   307,   308,   314,   319,   323,   324,
     4104     325,   326,   327,   328,   329,   330,   350,   367,   368,   369,
     4105     370,    72,   139,   140,   149,   215,   217,   225,   227,   237,
     4106     241,   243,   284,    82,   109,   312,   313,   314,   312,   312,
     4107      72,    74,    75,    76,   138,   139,   273,   274,   294,   295,
     4108      74,    75,   274,   109,   305,    11,   199,   109,   149,   319,
     4109     324,   325,   326,   328,   329,   330,   112,   134,   111,   218,
     4110     225,   227,   323,   327,   366,   367,   370,   371,   135,   107,
     4111     131,   277,   114,   135,   173,    74,    75,   137,   272,   135,
     4112     135,   135,   116,   135,    74,    75,   109,   149,   309,   318,
     4113     319,   320,   321,   322,   323,   327,   331,   332,   333,   334,
     4114     335,   341,     3,    28,    78,   239,     3,     5,    74,   111,
     4115     149,   217,   228,   232,   235,   244,   285,   323,   327,   370,
     4116     215,   217,   227,   237,   241,   243,   284,   323,   327,    33,
     4117     233,   233,   228,   235,   135,   233,   228,   233,   228,    75,
     4118     109,   114,   274,   285,   114,   274,   233,   228,   116,   135,
     4119     135,     0,   134,   109,   173,   312,   312,   134,   111,   225,
     4120     227,   368,   272,   272,   131,   227,   109,   149,   309,   319,
     4121     323,   111,   149,   370,   306,   230,   314,   109,   290,   109,
     4122     109,    51,   109,    37,    38,    40,    66,    72,    76,    79,
     4123      80,    81,    82,    86,    87,    94,   109,   111,   120,   121,
     4124     122,   123,   136,   140,   141,   142,   143,   148,   149,   150,
     4125     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     4126     161,   162,   164,   166,   225,   276,   292,   366,   371,   227,
     4127     110,   110,   110,   110,   110,   110,   110,    74,    75,   111,
     4128     225,   272,   350,   368,   111,   118,   149,   164,   217,   218,
     4129     224,   227,   231,   232,   237,   240,   241,   243,   262,   263,
     4130     267,   268,   269,   270,   284,   350,   362,   363,   364,   365,
     4131     370,   371,   112,   109,   323,   327,   370,   109,   116,   132,
     4132     111,   114,   149,   164,   278,   278,   115,   134,   116,   132,
     4133     109,   116,   132,   116,   132,   116,   132,   312,   132,   319,
     4134     320,   321,   322,   332,   333,   334,   335,   227,   318,   331,
     4135      64,   311,   111,   312,   349,   350,   312,   312,   173,   134,
     4136     109,   312,   349,   312,   312,   227,   309,   109,   109,   226,
     4137     227,   225,   227,   112,   134,   225,   366,   371,   173,   134,
     4138     272,   277,   217,   232,   323,   327,   173,   134,   294,   227,
     4139     237,   132,   227,   227,   292,    40,   111,   225,   248,   249,
     4140     250,   251,   366,   370,   246,   258,   274,   257,   227,   294,
     4141     132,   132,   305,   134,   139,   271,     3,   135,   207,   208,
     4142     222,   224,   227,   134,   311,   109,   311,   164,   319,   227,
     4143     109,   134,   272,   114,    33,    34,    35,   225,   286,   287,
     4144     289,   134,   129,   131,   291,   134,   228,   234,   235,   272,
     4145     315,   316,   317,   109,   141,   109,   148,   109,   148,   151,
     4146     109,   148,   109,   109,   148,   148,   139,   111,   164,   169,
     4147     173,   225,   275,   366,   112,   134,    82,    85,    86,    87,
     4148     109,   111,   113,   114,    97,    98,    99,   100,   101,   102,
     4149     103,   104,   105,   106,   131,   168,   151,   151,   118,   124,
     4150     125,   120,   121,    88,    89,    90,    91,   126,   127,    92,
     4151      93,   119,   128,   129,    94,    95,   130,   131,   373,   109,
     4152     149,   345,   346,   347,   348,   349,   110,   116,   109,   349,
     4153     350,   109,   349,   350,   134,   109,   225,   368,   112,   134,
     4154     135,   111,   225,   227,   361,   362,   370,   371,   135,   109,
     4155     111,   149,   319,   336,   337,   338,   339,   340,   341,   342,
     4156     343,   344,   350,   351,   352,   353,   354,   355,   356,   149,
     4157     370,   227,   135,   135,   149,   225,   227,   363,   272,   225,
     4158     350,   363,   272,   109,   134,   134,   134,   112,   134,    72,
     4159      80,   111,   113,   140,   274,   278,   279,   280,   281,   282,
     4160     134,   134,   134,   134,   134,   134,   309,   110,   110,   110,
     4161     110,   110,   110,   110,   318,   331,   109,   277,   112,   207,
     4162     134,   309,   169,   276,   169,   276,   309,   111,   207,   311,
     4163     173,   134,   207,   110,   250,   251,   112,   134,   109,   117,
     4164     149,   252,   254,   318,   319,   331,   349,   357,   358,   359,
     4165     360,   115,   249,   116,   132,   116,   132,   274,   114,   116,
     4166     372,   131,   259,   114,   227,   264,   265,   266,   269,   270,
     4167     110,   116,   173,   134,   118,   164,   134,   224,   227,   263,
     4168     362,   370,   303,   304,   109,   149,   336,   110,   116,   373,
     4169     274,   286,   109,   114,   274,   276,   286,   110,   116,   109,
     4170     141,   110,   117,   275,   275,   275,   111,   139,   145,   164,
     4171     276,   275,   112,   134,   110,   116,   110,   109,   149,   357,
     4172     110,   116,   164,   111,   139,   111,   144,   145,   134,   111,
     4173     139,   144,   164,   164,   151,   151,   151,   152,   152,   153,
     4174     153,   154,   154,   154,   154,   155,   155,   156,   157,   158,
     4175     159,   160,   117,   169,   164,   134,   346,   347,   348,   227,
     4176     345,   312,   312,   164,   276,   134,   271,   134,   225,   350,
     4177     363,   227,   231,   112,   112,   134,   370,   112,   109,   134,
     4178     319,   337,   338,   339,   342,   352,   353,   354,   112,   134,
     4179     227,   336,   340,   351,   109,   312,   355,   373,   312,   312,
     4180     373,   109,   312,   355,   312,   312,   312,   312,   350,   225,
     4181     361,   371,   272,   112,   116,   112,   116,   373,   225,   363,
     4182     373,   260,   261,   262,   263,   260,   260,   272,   164,   134,
     4183     111,   274,   117,   116,   372,   278,    80,   111,   117,   282,
     4184      29,   209,   210,   272,   260,   139,   309,   139,   311,   109,
     4185     349,   350,   109,   349,   350,   141,   350,   173,   264,   110,
     4186     110,   110,   110,   112,   173,   207,   173,   114,   132,   132,
     4187     111,   319,   358,   359,   360,   162,   163,   227,   357,   253,
     4188     254,   253,   312,   312,   274,   312,   248,   274,   115,   163,
     4189     258,   135,   135,   139,   222,   135,   135,   260,   109,   149,
     4190     370,   135,   115,   227,   287,   288,   135,   134,   134,   109,
     4191     135,   110,   316,   169,   170,   117,   132,   111,   141,   200,
     4192     201,   202,   110,   116,   110,   134,   117,   110,   110,   110,
     4193     164,   227,   114,   151,   166,   164,   165,   167,   116,   135,
     4194     134,   134,   110,   116,   164,   134,   115,   162,   117,   264,
     4195     110,   110,   110,   345,   264,   110,   260,   225,   363,   111,
     4196     118,   149,   164,   164,   227,   342,   264,   110,   110,   110,
     4197     110,   110,   110,   110,     7,   227,   336,   340,   351,   134,
     4198     134,   373,   134,   134,   110,   135,   135,   135,   135,   277,
     4199     135,   162,   163,   164,   310,   134,   278,   280,   115,   134,
     4200     211,   274,    40,    41,    43,    46,    47,    48,    49,    50,
     4201      51,    52,    53,    57,    61,    62,   111,   128,   139,   170,
     4202     171,   172,   173,   174,   175,   177,   178,   190,   192,   193,
     4203     198,   212,   308,    29,   135,   131,   277,   134,   134,   110,
     4204     135,   173,   248,   112,   110,   110,   110,   357,   252,   115,
     4205     259,   372,   110,   116,   112,   112,   135,   227,   116,   373,
     4206     290,   110,   286,   215,   217,   225,   298,   299,   300,   301,
     4207     292,   110,   110,   117,   163,   109,   110,   117,   116,   139,
     4208     164,   164,   279,   116,   135,   167,   112,   139,   146,   147,
     4209     164,   145,   135,   146,   162,   166,   135,   109,   349,   350,
     4210     135,   135,   134,   135,   135,   135,   164,   110,   135,   109,
     4211     349,   350,   109,   355,   109,   355,   350,   226,     7,   118,
     4212     135,   164,   264,   264,   263,   267,   267,   268,   116,   116,
     4213     110,   110,   112,    96,   123,   135,   135,   146,   278,   164,
     4214     116,   132,   212,   216,   227,   231,   109,   109,   171,   109,
     4215     109,   132,   139,   132,   139,   118,   139,   170,   109,   173,
     4216     165,   165,   112,   143,   117,   132,   135,   134,   135,   211,
     4217     110,   164,   264,   264,   312,   110,   115,   109,   349,   350,
     4218     115,   134,   110,   134,   135,   309,   115,   134,   135,   135,
     4219     110,   114,   200,   112,   163,   132,   200,   202,   110,   116,
     4220     135,   372,   165,   112,   135,    85,   113,   116,   135,   135,
     4221     112,   135,   110,   134,   110,   110,   112,   112,   112,   135,
     4222     110,   134,   134,   134,   164,   164,   135,   112,   135,   135,
     4223     135,   135,   134,   134,   163,   163,   112,   112,   135,   135,
     4224     274,   227,   169,   169,    47,   169,   134,   132,   132,   169,
     4225     132,   132,   169,    58,    59,    60,   194,   195,   196,   132,
     4226      63,   132,   114,   312,   175,   115,   132,   135,   135,   134,
     4227      96,   269,   270,   110,   299,   116,   132,   116,   132,   115,
     4228     297,   117,   141,   110,   110,   117,   167,   112,   115,   112,
     4229     111,   147,   111,   147,   147,   112,   112,   112,   264,   112,
     4230     264,   264,   264,   135,   135,   112,   112,   110,   110,   112,
     4231     116,    96,   263,    96,   135,   112,   112,   110,   110,   109,
     4232     110,   170,   191,   212,   132,   110,   109,   109,   173,   196,
     4233      58,    59,   164,   144,   171,   110,   110,   264,   114,   134,
     4234     134,   298,   141,   203,   109,   132,   203,   135,   117,   134,
     4235     134,   135,   135,   135,   135,   112,   112,   134,   135,   112,
     4236     171,    44,    45,   114,   181,   182,   183,   169,   171,   135,
     4237     110,   170,   114,   183,    96,   134,    96,   134,   109,   109,
     4238     132,   115,   135,   134,   272,   309,   115,   116,   117,   163,
     4239     110,   112,   164,   146,   146,   110,   110,   110,   110,   267,
     4240      42,   163,   179,   180,   310,   117,   134,   171,   181,   110,
     4241     132,   171,   132,   134,   110,   134,   110,   134,    96,   134,
     4242      96,   134,   132,   110,   298,   141,   139,   204,   110,   132,
     4243     117,   135,   135,   171,    96,   116,   117,   135,   205,   206,
     4244     212,   132,   170,   170,   205,   173,   197,   225,   366,   173,
     4245     197,   110,   134,   110,   134,   115,   110,   116,   164,   112,
     4246     112,   163,   179,   182,   184,   185,   134,   132,   182,   186,
     4247     187,   135,   109,   149,   309,   357,   139,   135,   173,   197,
     4248     173,   197,   109,   132,   139,   171,   176,   115,   182,   212,
     4249     170,    56,   176,   189,   115,   182,   110,   227,   110,   135,
     4250     135,   292,   171,   176,   132,   188,   189,   176,   189,   173,
     4251     173,   110,   110,   110,   188,   135,   135,   173,   173,   135,
     4252     135
    42334253};
    42344254
     
    50675087
    50685088/* Line 1806 of yacc.c  */
    5069 #line 292 "parser.yy"
     5089#line 290 "parser.yy"
    50705090    {
    50715091                        typedefTable.enterScope();
     
    50765096
    50775097/* Line 1806 of yacc.c  */
    5078 #line 298 "parser.yy"
     5098#line 296 "parser.yy"
    50795099    {
    50805100                        typedefTable.leaveScope();
     
    50855105
    50865106/* Line 1806 of yacc.c  */
     5107#line 305 "parser.yy"
     5108    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
     5109    break;
     5110
     5111  case 5:
     5112
     5113/* Line 1806 of yacc.c  */
     5114#line 306 "parser.yy"
     5115    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
     5116    break;
     5117
     5118  case 6:
     5119
     5120/* Line 1806 of yacc.c  */
    50875121#line 307 "parser.yy"
    5088     { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    5089     break;
    5090 
    5091   case 5:
    5092 
    5093 /* Line 1806 of yacc.c  */
    5094 #line 308 "parser.yy"
    5095     { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    5096     break;
    5097 
    5098   case 6:
    5099 
    5100 /* Line 1806 of yacc.c  */
    5101 #line 309 "parser.yy"
    51025122    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    51035123    break;
     
    51065126
    51075127/* Line 1806 of yacc.c  */
    5108 #line 334 "parser.yy"
     5128#line 332 "parser.yy"
    51095129    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    51105130    break;
     
    51135133
    51145134/* Line 1806 of yacc.c  */
    5115 #line 335 "parser.yy"
     5135#line 333 "parser.yy"
    51165136    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    51175137    break;
    51185138
    51195139  case 18:
     5140
     5141/* Line 1806 of yacc.c  */
     5142#line 340 "parser.yy"
     5143    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5144    break;
     5145
     5146  case 19:
    51205147
    51215148/* Line 1806 of yacc.c  */
     
    51245151    break;
    51255152
    5126   case 19:
     5153  case 20:
    51275154
    51285155/* Line 1806 of yacc.c  */
    51295156#line 344 "parser.yy"
    5130     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5131     break;
    5132 
    5133   case 20:
     5157    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5158    break;
     5159
     5160  case 21:
    51345161
    51355162/* Line 1806 of yacc.c  */
    51365163#line 346 "parser.yy"
    5137     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5138     break;
    5139 
    5140   case 21:
    5141 
    5142 /* Line 1806 of yacc.c  */
    5143 #line 348 "parser.yy"
    51445164    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    51455165    break;
     
    51485168
    51495169/* Line 1806 of yacc.c  */
     5170#line 356 "parser.yy"
     5171    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5172    break;
     5173
     5174  case 24:
     5175
     5176/* Line 1806 of yacc.c  */
    51505177#line 358 "parser.yy"
    5151     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5152     break;
    5153 
    5154   case 24:
    5155 
    5156 /* Line 1806 of yacc.c  */
    5157 #line 360 "parser.yy"
    51585178    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    51595179    break;
     
    51625182
    51635183/* Line 1806 of yacc.c  */
    5164 #line 364 "parser.yy"
     5184#line 362 "parser.yy"
    51655185    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51665186    break;
     
    51695189
    51705190/* Line 1806 of yacc.c  */
    5171 #line 367 "parser.yy"
     5191#line 365 "parser.yy"
    51725192    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51735193    break;
     
    51765196
    51775197/* Line 1806 of yacc.c  */
     5198#line 368 "parser.yy"
     5199    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5200    break;
     5201
     5202  case 30:
     5203
     5204/* Line 1806 of yacc.c  */
    51785205#line 370 "parser.yy"
    5179     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5180     break;
    5181 
    5182   case 30:
     5206    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5207    break;
     5208
     5209  case 31:
    51835210
    51845211/* Line 1806 of yacc.c  */
    51855212#line 372 "parser.yy"
    5186     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5187     break;
    5188 
    5189   case 31:
     5213    { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
     5214    break;
     5215
     5216  case 32:
    51905217
    51915218/* Line 1806 of yacc.c  */
    51925219#line 374 "parser.yy"
    5193     { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
    5194     break;
    5195 
    5196   case 32:
    5197 
    5198 /* Line 1806 of yacc.c  */
    5199 #line 376 "parser.yy"
    52005220    {
    52015221                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    52075227
    52085228/* Line 1806 of yacc.c  */
    5209 #line 385 "parser.yy"
     5229#line 383 "parser.yy"
    52105230    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    52115231    break;
     
    52145234
    52155235/* Line 1806 of yacc.c  */
    5216 #line 390 "parser.yy"
     5236#line 388 "parser.yy"
    52175237    { (yyval.en) = 0; }
    52185238    break;
     
    52215241
    52225242/* Line 1806 of yacc.c  */
    5223 #line 393 "parser.yy"
     5243#line 391 "parser.yy"
    52245244    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    52255245    break;
     
    52285248
    52295249/* Line 1806 of yacc.c  */
     5250#line 396 "parser.yy"
     5251    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5252    break;
     5253
     5254  case 39:
     5255
     5256/* Line 1806 of yacc.c  */
    52305257#line 398 "parser.yy"
    5231     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5232     break;
    5233 
    5234   case 39:
    5235 
    5236 /* Line 1806 of yacc.c  */
    5237 #line 400 "parser.yy"
    52385258    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    52395259    break;
     
    52425262
    52435263/* Line 1806 of yacc.c  */
    5244 #line 405 "parser.yy"
     5264#line 403 "parser.yy"
    52455265    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    52465266    break;
     
    52495269
    52505270/* Line 1806 of yacc.c  */
    5251 #line 410 "parser.yy"
     5271#line 408 "parser.yy"
    52525272    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    52535273    break;
     
    52565276
    52575277/* Line 1806 of yacc.c  */
     5278#line 412 "parser.yy"
     5279    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5280    break;
     5281
     5282  case 44:
     5283
     5284/* Line 1806 of yacc.c  */
    52585285#line 414 "parser.yy"
    5259     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5260     break;
    5261 
    5262   case 44:
     5286    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5287    break;
     5288
     5289  case 45:
    52635290
    52645291/* Line 1806 of yacc.c  */
    52655292#line 416 "parser.yy"
    5266     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5267     break;
    5268 
    5269   case 45:
     5293    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5294    break;
     5295
     5296  case 46:
    52705297
    52715298/* Line 1806 of yacc.c  */
    52725299#line 418 "parser.yy"
    5273     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5274     break;
    5275 
    5276   case 46:
    5277 
    5278 /* Line 1806 of yacc.c  */
    5279 #line 420 "parser.yy"
    52805300    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52815301    break;
    52825302
    52835303  case 48:
     5304
     5305/* Line 1806 of yacc.c  */
     5306#line 426 "parser.yy"
     5307    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5308    break;
     5309
     5310  case 49:
    52845311
    52855312/* Line 1806 of yacc.c  */
     
    52885315    break;
    52895316
    5290   case 49:
     5317  case 50:
    52915318
    52925319/* Line 1806 of yacc.c  */
    52935320#line 430 "parser.yy"
    5294     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5295     break;
    5296 
    5297   case 50:
     5321    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     5322    break;
     5323
     5324  case 51:
    52985325
    52995326/* Line 1806 of yacc.c  */
    53005327#line 432 "parser.yy"
    5301     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    5302     break;
    5303 
    5304   case 51:
    5305 
    5306 /* Line 1806 of yacc.c  */
    5307 #line 434 "parser.yy"
    53085328    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    53095329    break;
     
    53125332
    53135333/* Line 1806 of yacc.c  */
     5334#line 437 "parser.yy"
     5335    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5336    break;
     5337
     5338  case 53:
     5339
     5340/* Line 1806 of yacc.c  */
    53145341#line 439 "parser.yy"
    5315     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5316     break;
    5317 
    5318   case 53:
     5342    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5343    break;
     5344
     5345  case 54:
    53195346
    53205347/* Line 1806 of yacc.c  */
    53215348#line 441 "parser.yy"
    5322     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    5323     break;
    5324 
    5325   case 54:
     5349    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5350    break;
     5351
     5352  case 55:
    53265353
    53275354/* Line 1806 of yacc.c  */
    53285355#line 443 "parser.yy"
    5329     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    5330     break;
    5331 
    5332   case 55:
     5356    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5357    break;
     5358
     5359  case 56:
    53335360
    53345361/* Line 1806 of yacc.c  */
    53355362#line 445 "parser.yy"
    5336     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    5337     break;
    5338 
    5339   case 56:
     5363    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5364    break;
     5365
     5366  case 57:
    53405367
    53415368/* Line 1806 of yacc.c  */
    53425369#line 447 "parser.yy"
    5343     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5344     break;
    5345 
    5346   case 57:
     5370    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
     5371    break;
     5372
     5373  case 58:
    53475374
    53485375/* Line 1806 of yacc.c  */
    53495376#line 449 "parser.yy"
    5350     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
    5351     break;
    5352 
    5353   case 58:
     5377    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5378    break;
     5379
     5380  case 59:
    53545381
    53555382/* Line 1806 of yacc.c  */
    53565383#line 451 "parser.yy"
    5357     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    5358     break;
    5359 
    5360   case 59:
     5384    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5385    break;
     5386
     5387  case 60:
    53615388
    53625389/* Line 1806 of yacc.c  */
    53635390#line 453 "parser.yy"
    5364     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5365     break;
    5366 
    5367   case 60:
     5391    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5392    break;
     5393
     5394  case 61:
    53685395
    53695396/* Line 1806 of yacc.c  */
    53705397#line 455 "parser.yy"
    5371     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    5372     break;
    5373 
    5374   case 61:
     5398    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5399    break;
     5400
     5401  case 62:
    53755402
    53765403/* Line 1806 of yacc.c  */
    53775404#line 457 "parser.yy"
    5378     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    5379     break;
    5380 
    5381   case 62:
     5405    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
     5406    break;
     5407
     5408  case 63:
    53825409
    53835410/* Line 1806 of yacc.c  */
    53845411#line 459 "parser.yy"
    5385     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    5386     break;
    5387 
    5388   case 63:
    5389 
    5390 /* Line 1806 of yacc.c  */
    5391 #line 461 "parser.yy"
    53925412    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53935413    break;
     
    53965416
    53975417/* Line 1806 of yacc.c  */
    5398 #line 465 "parser.yy"
     5418#line 463 "parser.yy"
    53995419    { (yyval.en) = new OperatorNode( OperatorNode::PointTo ); }
    54005420    break;
     
    54035423
    54045424/* Line 1806 of yacc.c  */
    5405 #line 466 "parser.yy"
     5425#line 464 "parser.yy"
    54065426    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    54075427    break;
     
    54105430
    54115431/* Line 1806 of yacc.c  */
     5432#line 468 "parser.yy"
     5433    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5434    break;
     5435
     5436  case 67:
     5437
     5438/* Line 1806 of yacc.c  */
     5439#line 469 "parser.yy"
     5440    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5441    break;
     5442
     5443  case 68:
     5444
     5445/* Line 1806 of yacc.c  */
    54125446#line 470 "parser.yy"
    5413     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    5414     break;
    5415 
    5416   case 67:
     5447    { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }
     5448    break;
     5449
     5450  case 69:
    54175451
    54185452/* Line 1806 of yacc.c  */
    54195453#line 471 "parser.yy"
    5420     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5421     break;
    5422 
    5423   case 68:
    5424 
    5425 /* Line 1806 of yacc.c  */
    5426 #line 472 "parser.yy"
    5427     { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }
    5428     break;
    5429 
    5430   case 69:
    5431 
    5432 /* Line 1806 of yacc.c  */
    5433 #line 473 "parser.yy"
    54345454    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    54355455    break;
    54365456
    54375457  case 71:
     5458
     5459/* Line 1806 of yacc.c  */
     5460#line 477 "parser.yy"
     5461    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5462    break;
     5463
     5464  case 72:
    54385465
    54395466/* Line 1806 of yacc.c  */
     
    54425469    break;
    54435470
    5444   case 72:
    5445 
    5446 /* Line 1806 of yacc.c  */
    5447 #line 481 "parser.yy"
    5448     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5449     break;
    5450 
    54515471  case 74:
    54525472
    54535473/* Line 1806 of yacc.c  */
     5474#line 485 "parser.yy"
     5475    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5476    break;
     5477
     5478  case 75:
     5479
     5480/* Line 1806 of yacc.c  */
    54545481#line 487 "parser.yy"
    5455     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5456     break;
    5457 
    5458   case 75:
     5482    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5483    break;
     5484
     5485  case 76:
    54595486
    54605487/* Line 1806 of yacc.c  */
    54615488#line 489 "parser.yy"
    5462     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5463     break;
    5464 
    5465   case 76:
    5466 
    5467 /* Line 1806 of yacc.c  */
    5468 #line 491 "parser.yy"
    54695489    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54705490    break;
     
    54735493
    54745494/* Line 1806 of yacc.c  */
     5495#line 495 "parser.yy"
     5496    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5497    break;
     5498
     5499  case 79:
     5500
     5501/* Line 1806 of yacc.c  */
    54755502#line 497 "parser.yy"
    5476     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5477     break;
    5478 
    5479   case 79:
    5480 
    5481 /* Line 1806 of yacc.c  */
    5482 #line 499 "parser.yy"
    54835503    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54845504    break;
     
    54875507
    54885508/* Line 1806 of yacc.c  */
     5509#line 503 "parser.yy"
     5510    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5511    break;
     5512
     5513  case 82:
     5514
     5515/* Line 1806 of yacc.c  */
    54895516#line 505 "parser.yy"
    5490     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5491     break;
    5492 
    5493   case 82:
    5494 
    5495 /* Line 1806 of yacc.c  */
    5496 #line 507 "parser.yy"
    54975517    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54985518    break;
     
    55015521
    55025522/* Line 1806 of yacc.c  */
     5523#line 511 "parser.yy"
     5524    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5525    break;
     5526
     5527  case 85:
     5528
     5529/* Line 1806 of yacc.c  */
    55035530#line 513 "parser.yy"
    5504     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5505     break;
    5506 
    5507   case 85:
     5531    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5532    break;
     5533
     5534  case 86:
    55085535
    55095536/* Line 1806 of yacc.c  */
    55105537#line 515 "parser.yy"
    5511     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5512     break;
    5513 
    5514   case 86:
     5538    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5539    break;
     5540
     5541  case 87:
    55155542
    55165543/* Line 1806 of yacc.c  */
    55175544#line 517 "parser.yy"
    5518     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5519     break;
    5520 
    5521   case 87:
    5522 
    5523 /* Line 1806 of yacc.c  */
    5524 #line 519 "parser.yy"
    55255545    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55265546    break;
     
    55295549
    55305550/* Line 1806 of yacc.c  */
     5551#line 523 "parser.yy"
     5552    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5553    break;
     5554
     5555  case 90:
     5556
     5557/* Line 1806 of yacc.c  */
    55315558#line 525 "parser.yy"
    5532     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5533     break;
    5534 
    5535   case 90:
    5536 
    5537 /* Line 1806 of yacc.c  */
    5538 #line 527 "parser.yy"
    55395559    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55405560    break;
     
    55435563
    55445564/* Line 1806 of yacc.c  */
    5545 #line 533 "parser.yy"
     5565#line 531 "parser.yy"
    55465566    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55475567    break;
     
    55505570
    55515571/* Line 1806 of yacc.c  */
    5552 #line 539 "parser.yy"
     5572#line 537 "parser.yy"
    55535573    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55545574    break;
     
    55575577
    55585578/* Line 1806 of yacc.c  */
    5559 #line 545 "parser.yy"
     5579#line 543 "parser.yy"
    55605580    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55615581    break;
     
    55645584
    55655585/* Line 1806 of yacc.c  */
    5566 #line 551 "parser.yy"
     5586#line 549 "parser.yy"
    55675587    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55685588    break;
     
    55715591
    55725592/* Line 1806 of yacc.c  */
    5573 #line 557 "parser.yy"
     5593#line 555 "parser.yy"
    55745594    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55755595    break;
     
    55785598
    55795599/* Line 1806 of yacc.c  */
     5600#line 561 "parser.yy"
     5601    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5602    break;
     5603
     5604  case 103:
     5605
     5606/* Line 1806 of yacc.c  */
    55805607#line 563 "parser.yy"
     5608    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5609    break;
     5610
     5611  case 104:
     5612
     5613/* Line 1806 of yacc.c  */
     5614#line 565 "parser.yy"
    55815615    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55825616    break;
    55835617
    5584   case 103:
    5585 
    5586 /* Line 1806 of yacc.c  */
    5587 #line 565 "parser.yy"
    5588     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5589     break;
    5590 
    5591   case 104:
    5592 
    5593 /* Line 1806 of yacc.c  */
    5594 #line 567 "parser.yy"
    5595     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5596     break;
    5597 
    55985618  case 107:
    55995619
    56005620/* Line 1806 of yacc.c  */
     5621#line 576 "parser.yy"
     5622    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5623    break;
     5624
     5625  case 108:
     5626
     5627/* Line 1806 of yacc.c  */
    56015628#line 578 "parser.yy"
    5602     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5603     break;
    5604 
    5605   case 108:
     5629    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5630    break;
     5631
     5632  case 109:
    56065633
    56075634/* Line 1806 of yacc.c  */
    56085635#line 580 "parser.yy"
    5609     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5610     break;
    5611 
    5612   case 109:
    5613 
    5614 /* Line 1806 of yacc.c  */
    5615 #line 582 "parser.yy"
    5616     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5636    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    56175637    break;
    56185638
     
    56205640
    56215641/* Line 1806 of yacc.c  */
    5622 #line 584 "parser.yy"
    5623     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5624     break;
    5625 
    5626   case 111:
    5627 
    5628 /* Line 1806 of yacc.c  */
    5629 #line 589 "parser.yy"
     5642#line 585 "parser.yy"
    56305643    { (yyval.en) = new NullExprNode; }
    56315644    break;
    56325645
     5646  case 112:
     5647
     5648/* Line 1806 of yacc.c  */
     5649#line 593 "parser.yy"
     5650    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5651    break;
     5652
    56335653  case 113:
    56345654
    56355655/* Line 1806 of yacc.c  */
     5656#line 595 "parser.yy"
     5657    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5658    break;
     5659
     5660  case 114:
     5661
     5662/* Line 1806 of yacc.c  */
    56365663#line 597 "parser.yy"
    5637     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    5638     break;
    5639 
    5640   case 114:
     5664    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5665    break;
     5666
     5667  case 115:
    56415668
    56425669/* Line 1806 of yacc.c  */
    56435670#line 599 "parser.yy"
    5644     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    5645     break;
    5646 
    5647   case 115:
    5648 
    5649 /* Line 1806 of yacc.c  */
    5650 #line 601 "parser.yy"
    5651     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    5652     break;
    5653 
    5654   case 116:
    5655 
    5656 /* Line 1806 of yacc.c  */
    5657 #line 603 "parser.yy"
    56585671    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    56595672    break;
    56605673
     5674  case 117:
     5675
     5676/* Line 1806 of yacc.c  */
     5677#line 605 "parser.yy"
     5678    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5679    break;
     5680
    56615681  case 118:
    56625682
    56635683/* Line 1806 of yacc.c  */
    56645684#line 609 "parser.yy"
    5665     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5685    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    56665686    break;
    56675687
     
    56695689
    56705690/* Line 1806 of yacc.c  */
     5691#line 610 "parser.yy"
     5692    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5693    break;
     5694
     5695  case 120:
     5696
     5697/* Line 1806 of yacc.c  */
     5698#line 611 "parser.yy"
     5699    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5700    break;
     5701
     5702  case 121:
     5703
     5704/* Line 1806 of yacc.c  */
     5705#line 612 "parser.yy"
     5706    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5707    break;
     5708
     5709  case 122:
     5710
     5711/* Line 1806 of yacc.c  */
    56715712#line 613 "parser.yy"
    5672     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5673     break;
    5674 
    5675   case 120:
     5713    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5714    break;
     5715
     5716  case 123:
    56765717
    56775718/* Line 1806 of yacc.c  */
    56785719#line 614 "parser.yy"
    5679     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5680     break;
    5681 
    5682   case 121:
     5720    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5721    break;
     5722
     5723  case 124:
    56835724
    56845725/* Line 1806 of yacc.c  */
    56855726#line 615 "parser.yy"
    5686     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5687     break;
    5688 
    5689   case 122:
     5727    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5728    break;
     5729
     5730  case 125:
    56905731
    56915732/* Line 1806 of yacc.c  */
    56925733#line 616 "parser.yy"
    5693     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5694     break;
    5695 
    5696   case 123:
     5734    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5735    break;
     5736
     5737  case 126:
    56975738
    56985739/* Line 1806 of yacc.c  */
    56995740#line 617 "parser.yy"
    5700     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5701     break;
    5702 
    5703   case 124:
     5741    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
     5742    break;
     5743
     5744  case 127:
    57045745
    57055746/* Line 1806 of yacc.c  */
    57065747#line 618 "parser.yy"
    5707     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5708     break;
    5709 
    5710   case 125:
    5711 
    5712 /* Line 1806 of yacc.c  */
    5713 #line 619 "parser.yy"
    5714     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5715     break;
    5716 
    5717   case 126:
    5718 
    5719 /* Line 1806 of yacc.c  */
    5720 #line 620 "parser.yy"
    5721     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5722     break;
    5723 
    5724   case 127:
    5725 
    5726 /* Line 1806 of yacc.c  */
    5727 #line 621 "parser.yy"
    5728     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5729     break;
    5730 
    5731   case 128:
    5732 
    5733 /* Line 1806 of yacc.c  */
    5734 #line 622 "parser.yy"
    57355748    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    57365749    break;
    57375750
     5751  case 129:
     5752
     5753/* Line 1806 of yacc.c  */
     5754#line 624 "parser.yy"
     5755    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5756    break;
     5757
    57385758  case 130:
    57395759
    57405760/* Line 1806 of yacc.c  */
    5741 #line 628 "parser.yy"
    5742     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5743     break;
    5744 
    5745   case 131:
    5746 
    5747 /* Line 1806 of yacc.c  */
    5748 #line 633 "parser.yy"
     5761#line 629 "parser.yy"
    57495762    { (yyval.en) = 0; }
    57505763    break;
    57515764
    5752   case 135:
    5753 
    5754 /* Line 1806 of yacc.c  */
    5755 #line 642 "parser.yy"
     5765  case 134:
     5766
     5767/* Line 1806 of yacc.c  */
     5768#line 638 "parser.yy"
    57565769    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    57575770    break;
    57585771
    5759   case 141:
    5760 
    5761 /* Line 1806 of yacc.c  */
    5762 #line 649 "parser.yy"
     5772  case 140:
     5773
     5774/* Line 1806 of yacc.c  */
     5775#line 645 "parser.yy"
    57635776    {
    57645777                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    57685781    break;
    57695782
    5770   case 142:
    5771 
    5772 /* Line 1806 of yacc.c  */
    5773 #line 658 "parser.yy"
     5783  case 141:
     5784
     5785/* Line 1806 of yacc.c  */
     5786#line 654 "parser.yy"
    57745787    {
    57755788                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57775790    break;
    57785791
     5792  case 142:
     5793
     5794/* Line 1806 of yacc.c  */
     5795#line 661 "parser.yy"
     5796    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     5797    break;
     5798
    57795799  case 143:
    57805800
    57815801/* Line 1806 of yacc.c  */
    5782 #line 665 "parser.yy"
    5783     { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    5784     break;
    5785 
    5786   case 144:
    5787 
    5788 /* Line 1806 of yacc.c  */
    5789 #line 672 "parser.yy"
     5802#line 668 "parser.yy"
    57905803    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    57915804    break;
    57925805
     5806  case 145:
     5807
     5808/* Line 1806 of yacc.c  */
     5809#line 674 "parser.yy"
     5810    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5811    break;
     5812
    57935813  case 146:
    57945814
    57955815/* Line 1806 of yacc.c  */
    5796 #line 678 "parser.yy"
    5797     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5816#line 679 "parser.yy"
     5817    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57985818    break;
    57995819
    58005820  case 147:
     5821
     5822/* Line 1806 of yacc.c  */
     5823#line 681 "parser.yy"
     5824    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) )/*->set_extension( true )*/; }
     5825    break;
     5826
     5827  case 148:
    58015828
    58025829/* Line 1806 of yacc.c  */
     
    58055832    break;
    58065833
    5807   case 148:
    5808 
    5809 /* Line 1806 of yacc.c  */
    5810 #line 685 "parser.yy"
    5811     { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) )/*->set_extension( true )*/; }
    5812     break;
    5813 
    5814   case 149:
    5815 
    5816 /* Line 1806 of yacc.c  */
    5817 #line 687 "parser.yy"
    5818     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5834  case 151:
     5835
     5836/* Line 1806 of yacc.c  */
     5837#line 690 "parser.yy"
     5838    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    58195839    break;
    58205840
     
    58225842
    58235843/* Line 1806 of yacc.c  */
    5824 #line 694 "parser.yy"
    5825     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5844#line 695 "parser.yy"
     5845    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    58265846    break;
    58275847
     
    58295849
    58305850/* Line 1806 of yacc.c  */
    5831 #line 699 "parser.yy"
    5832     { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
     5851#line 701 "parser.yy"
     5852    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58335853    break;
    58345854
     
    58365856
    58375857/* Line 1806 of yacc.c  */
     5858#line 703 "parser.yy"
     5859    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5860    break;
     5861
     5862  case 155:
     5863
     5864/* Line 1806 of yacc.c  */
    58385865#line 705 "parser.yy"
    5839     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5840     break;
    5841 
    5842   case 155:
     5866    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5867    break;
     5868
     5869  case 156:
    58435870
    58445871/* Line 1806 of yacc.c  */
    58455872#line 707 "parser.yy"
    5846     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    5847     break;
    5848 
    5849   case 156:
    5850 
    5851 /* Line 1806 of yacc.c  */
    5852 #line 709 "parser.yy"
    5853     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5873    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    58545874    break;
    58555875
     
    58575877
    58585878/* Line 1806 of yacc.c  */
    5859 #line 711 "parser.yy"
    5860     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
     5879#line 712 "parser.yy"
     5880    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58615881    break;
    58625882
     
    58645884
    58655885/* Line 1806 of yacc.c  */
    5866 #line 716 "parser.yy"
    5867     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5886#line 714 "parser.yy"
     5887    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    58685888    break;
    58695889
     
    58715891
    58725892/* Line 1806 of yacc.c  */
    5873 #line 718 "parser.yy"
    5874     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
     5893#line 721 "parser.yy"
     5894    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    58755895    break;
    58765896
     
    58785898
    58795899/* Line 1806 of yacc.c  */
    5880 #line 725 "parser.yy"
    5881     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5882     break;
    5883 
    5884   case 161:
    5885 
    5886 /* Line 1806 of yacc.c  */
    5887 #line 727 "parser.yy"
     5900#line 723 "parser.yy"
    58885901    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    58895902    break;
    58905903
     5904  case 163:
     5905
     5906/* Line 1806 of yacc.c  */
     5907#line 730 "parser.yy"
     5908    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
     5909    break;
     5910
    58915911  case 164:
    58925912
    58935913/* Line 1806 of yacc.c  */
    58945914#line 734 "parser.yy"
    5895     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
     5915    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58965916    break;
    58975917
     
    58995919
    59005920/* Line 1806 of yacc.c  */
    5901 #line 738 "parser.yy"
    5902     { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    5903     break;
    5904 
    5905   case 166:
    5906 
    5907 /* Line 1806 of yacc.c  */
    5908 #line 739 "parser.yy"
     5921#line 735 "parser.yy"
    59095922    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    59105923    break;
    59115924
     5925  case 167:
     5926
     5927/* Line 1806 of yacc.c  */
     5928#line 741 "parser.yy"
     5929    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5930    break;
     5931
    59125932  case 168:
    59135933
    59145934/* Line 1806 of yacc.c  */
    59155935#line 745 "parser.yy"
    5916     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5936    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59175937    break;
    59185938
     
    59205940
    59215941/* Line 1806 of yacc.c  */
    5922 #line 749 "parser.yy"
     5942#line 750 "parser.yy"
     5943    { (yyval.sn) = 0; }
     5944    break;
     5945
     5946  case 171:
     5947
     5948/* Line 1806 of yacc.c  */
     5949#line 756 "parser.yy"
    59235950    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59245951    break;
    59255952
    5926   case 170:
    5927 
    5928 /* Line 1806 of yacc.c  */
    5929 #line 754 "parser.yy"
     5953  case 172:
     5954
     5955/* Line 1806 of yacc.c  */
     5956#line 758 "parser.yy"
     5957    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5958    break;
     5959
     5960  case 173:
     5961
     5962/* Line 1806 of yacc.c  */
     5963#line 763 "parser.yy"
    59305964    { (yyval.sn) = 0; }
    59315965    break;
    59325966
    5933   case 172:
    5934 
    5935 /* Line 1806 of yacc.c  */
    5936 #line 760 "parser.yy"
     5967  case 175:
     5968
     5969/* Line 1806 of yacc.c  */
     5970#line 769 "parser.yy"
    59375971    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59385972    break;
    59395973
    5940   case 173:
    5941 
    5942 /* Line 1806 of yacc.c  */
    5943 #line 762 "parser.yy"
     5974  case 176:
     5975
     5976/* Line 1806 of yacc.c  */
     5977#line 771 "parser.yy"
     5978    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
     5979    break;
     5980
     5981  case 177:
     5982
     5983/* Line 1806 of yacc.c  */
     5984#line 773 "parser.yy"
    59445985    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59455986    break;
    59465987
    5947   case 174:
    5948 
    5949 /* Line 1806 of yacc.c  */
    5950 #line 767 "parser.yy"
     5988  case 178:
     5989
     5990/* Line 1806 of yacc.c  */
     5991#line 775 "parser.yy"
     5992    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
     5993    break;
     5994
     5995  case 179:
     5996
     5997/* Line 1806 of yacc.c  */
     5998#line 780 "parser.yy"
    59515999    { (yyval.sn) = 0; }
    59526000    break;
    59536001
    5954   case 176:
    5955 
    5956 /* Line 1806 of yacc.c  */
    5957 #line 773 "parser.yy"
    5958     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5959     break;
    5960 
    5961   case 177:
    5962 
    5963 /* Line 1806 of yacc.c  */
    5964 #line 775 "parser.yy"
    5965     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    5966     break;
    5967 
    5968   case 178:
    5969 
    5970 /* Line 1806 of yacc.c  */
    5971 #line 777 "parser.yy"
    5972     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5973     break;
    5974 
    5975   case 179:
    5976 
    5977 /* Line 1806 of yacc.c  */
    5978 #line 779 "parser.yy"
    5979     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    5980     break;
    5981 
    5982   case 180:
    5983 
    5984 /* Line 1806 of yacc.c  */
    5985 #line 784 "parser.yy"
    5986     { (yyval.sn) = 0; }
     6002  case 181:
     6003
     6004/* Line 1806 of yacc.c  */
     6005#line 785 "parser.yy"
     6006    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59876007    break;
    59886008
     
    59906010
    59916011/* Line 1806 of yacc.c  */
    5992 #line 789 "parser.yy"
     6012#line 786 "parser.yy"
    59936013    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59946014    break;
     
    59976017
    59986018/* Line 1806 of yacc.c  */
    5999 #line 790 "parser.yy"
    6000     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     6019#line 791 "parser.yy"
     6020    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    60016021    break;
    60026022
     
    60046024
    60056025/* Line 1806 of yacc.c  */
     6026#line 793 "parser.yy"
     6027    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     6028    break;
     6029
     6030  case 185:
     6031
     6032/* Line 1806 of yacc.c  */
    60066033#line 795 "parser.yy"
    6007     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6008     break;
    6009 
    6010   case 185:
    6011 
    6012 /* Line 1806 of yacc.c  */
    6013 #line 797 "parser.yy"
    6014     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     6034    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    60156035    break;
    60166036
     
    60186038
    60196039/* Line 1806 of yacc.c  */
    6020 #line 799 "parser.yy"
    6021     { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
     6040#line 800 "parser.yy"
     6041    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    60226042    break;
    60236043
     
    60256045
    60266046/* Line 1806 of yacc.c  */
    6027 #line 804 "parser.yy"
    6028     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     6047#line 802 "parser.yy"
     6048    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    60296049    break;
    60306050
     
    60326052
    60336053/* Line 1806 of yacc.c  */
    6034 #line 806 "parser.yy"
    6035     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     6054#line 807 "parser.yy"
     6055    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    60366056    break;
    60376057
     
    60406060/* Line 1806 of yacc.c  */
    60416061#line 811 "parser.yy"
    6042     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
     6062    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    60436063    break;
    60446064
     
    60466066
    60476067/* Line 1806 of yacc.c  */
    6048 #line 815 "parser.yy"
    6049     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
     6068#line 814 "parser.yy"
     6069    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    60506070    break;
    60516071
     
    60546074/* Line 1806 of yacc.c  */
    60556075#line 818 "parser.yy"
    6056     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
     6076    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    60576077    break;
    60586078
     
    60606080
    60616081/* Line 1806 of yacc.c  */
    6062 #line 822 "parser.yy"
    6063     { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
     6082#line 821 "parser.yy"
     6083    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    60646084    break;
    60656085
     
    60686088/* Line 1806 of yacc.c  */
    60696089#line 825 "parser.yy"
    6070     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
     6090    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    60716091    break;
    60726092
     
    60746094
    60756095/* Line 1806 of yacc.c  */
     6096#line 827 "parser.yy"
     6097    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     6098    break;
     6099
     6100  case 195:
     6101
     6102/* Line 1806 of yacc.c  */
    60766103#line 829 "parser.yy"
    6077     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    6078     break;
    6079 
    6080   case 195:
    6081 
    6082 /* Line 1806 of yacc.c  */
    6083 #line 831 "parser.yy"
    6084     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     6104    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60856105    break;
    60866106
     
    60956115
    60966116/* Line 1806 of yacc.c  */
    6097 #line 837 "parser.yy"
    6098     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     6117#line 835 "parser.yy"
     6118    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60996119    break;
    61006120
     
    61026122
    61036123/* Line 1806 of yacc.c  */
    6104 #line 839 "parser.yy"
    6105     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
     6124#line 842 "parser.yy"
     6125    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    61066126    break;
    61076127
     
    61096129
    61106130/* Line 1806 of yacc.c  */
     6131#line 844 "parser.yy"
     6132    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6133    break;
     6134
     6135  case 200:
     6136
     6137/* Line 1806 of yacc.c  */
    61116138#line 846 "parser.yy"
    6112     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6113     break;
    6114 
    6115   case 200:
    6116 
    6117 /* Line 1806 of yacc.c  */
    6118 #line 848 "parser.yy"
    6119     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6120     break;
    6121 
    6122   case 201:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 850 "parser.yy"
    61266139    {
    61276140                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    61306143    break;
    61316144
     6145  case 202:
     6146
     6147/* Line 1806 of yacc.c  */
     6148#line 857 "parser.yy"
     6149    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     6150    break;
     6151
    61326152  case 203:
     6153
     6154/* Line 1806 of yacc.c  */
     6155#line 859 "parser.yy"
     6156    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6157    break;
     6158
     6159  case 204:
    61336160
    61346161/* Line 1806 of yacc.c  */
     
    61376164    break;
    61386165
    6139   case 204:
     6166  case 205:
    61406167
    61416168/* Line 1806 of yacc.c  */
     
    61446171    break;
    61456172
    6146   case 205:
    6147 
    6148 /* Line 1806 of yacc.c  */
    6149 #line 865 "parser.yy"
    6150     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6151     break;
    6152 
    61536173  case 206:
    61546174
    61556175/* Line 1806 of yacc.c  */
    6156 #line 867 "parser.yy"
    6157     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6176#line 868 "parser.yy"
     6177    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61586178    break;
    61596179
    61606180  case 207:
     6181
     6182/* Line 1806 of yacc.c  */
     6183#line 870 "parser.yy"
     6184    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6185    break;
     6186
     6187  case 208:
    61616188
    61626189/* Line 1806 of yacc.c  */
     
    61656192    break;
    61666193
    6167   case 208:
     6194  case 209:
    61686195
    61696196/* Line 1806 of yacc.c  */
     
    61726199    break;
    61736200
    6174   case 209:
    6175 
    6176 /* Line 1806 of yacc.c  */
    6177 #line 876 "parser.yy"
    6178     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6179     break;
    6180 
    61816201  case 210:
    61826202
    61836203/* Line 1806 of yacc.c  */
    6184 #line 878 "parser.yy"
    6185     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6186     break;
    6187 
    6188   case 211:
    6189 
    6190 /* Line 1806 of yacc.c  */
    6191 #line 883 "parser.yy"
     6204#line 879 "parser.yy"
    61926205    {
    61936206                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    61966209    break;
    61976210
    6198   case 213:
    6199 
    6200 /* Line 1806 of yacc.c  */
    6201 #line 897 "parser.yy"
     6211  case 212:
     6212
     6213/* Line 1806 of yacc.c  */
     6214#line 893 "parser.yy"
    62026215    {
    62036216                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62066219    break;
    62076220
     6221  case 213:
     6222
     6223/* Line 1806 of yacc.c  */
     6224#line 898 "parser.yy"
     6225    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6226    break;
     6227
    62086228  case 214:
    62096229
    62106230/* Line 1806 of yacc.c  */
    6211 #line 902 "parser.yy"
    6212     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6213     break;
    6214 
    6215   case 215:
    6216 
    6217 /* Line 1806 of yacc.c  */
    6218 #line 904 "parser.yy"
     6231#line 900 "parser.yy"
    62196232    {
    62206233                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62236236    break;
    62246237
     6238  case 216:
     6239
     6240/* Line 1806 of yacc.c  */
     6241#line 909 "parser.yy"
     6242    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6243    break;
     6244
    62256245  case 217:
    62266246
    62276247/* Line 1806 of yacc.c  */
     6248#line 911 "parser.yy"
     6249    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6250    break;
     6251
     6252  case 218:
     6253
     6254/* Line 1806 of yacc.c  */
    62286255#line 913 "parser.yy"
    6229     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    6230     break;
    6231 
    6232   case 218:
     6256    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6257    break;
     6258
     6259  case 219:
    62336260
    62346261/* Line 1806 of yacc.c  */
    62356262#line 915 "parser.yy"
    6236     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    6237     break;
    6238 
    6239   case 219:
     6263    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6264    break;
     6265
     6266  case 220:
    62406267
    62416268/* Line 1806 of yacc.c  */
    62426269#line 917 "parser.yy"
    6243     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    6244     break;
    6245 
    6246   case 220:
    6247 
    6248 /* Line 1806 of yacc.c  */
    6249 #line 919 "parser.yy"
    6250     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6270    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    62516271    break;
    62526272
     
    62546274
    62556275/* Line 1806 of yacc.c  */
    6256 #line 921 "parser.yy"
    6257     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
     6276#line 922 "parser.yy"
     6277    { (yyval.flag) = false; }
    62586278    break;
    62596279
     
    62616281
    62626282/* Line 1806 of yacc.c  */
    6263 #line 926 "parser.yy"
    6264     { (yyval.flag) = false; }
     6283#line 924 "parser.yy"
     6284    { (yyval.flag) = true; }
    62656285    break;
    62666286
     
    62686288
    62696289/* Line 1806 of yacc.c  */
    6270 #line 928 "parser.yy"
    6271     { (yyval.flag) = true; }
    6272     break;
    6273 
    6274   case 224:
    6275 
    6276 /* Line 1806 of yacc.c  */
    6277 #line 933 "parser.yy"
     6290#line 929 "parser.yy"
    62786291    { (yyval.en) = 0; }
    62796292    break;
    62806293
     6294  case 226:
     6295
     6296/* Line 1806 of yacc.c  */
     6297#line 936 "parser.yy"
     6298    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6299    break;
     6300
    62816301  case 227:
    62826302
    62836303/* Line 1806 of yacc.c  */
    6284 #line 940 "parser.yy"
    6285     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6304#line 941 "parser.yy"
     6305    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    62866306    break;
    62876307
     
    62896309
    62906310/* Line 1806 of yacc.c  */
    6291 #line 945 "parser.yy"
    6292     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
     6311#line 943 "parser.yy"
     6312    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    62936313    break;
    62946314
     
    62966316
    62976317/* Line 1806 of yacc.c  */
    6298 #line 947 "parser.yy"
    6299     { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
     6318#line 948 "parser.yy"
     6319    { (yyval.constant) = 0; }
    63006320    break;
    63016321
     
    63036323
    63046324/* Line 1806 of yacc.c  */
     6325#line 950 "parser.yy"
     6326    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6327    break;
     6328
     6329  case 231:
     6330
     6331/* Line 1806 of yacc.c  */
    63056332#line 952 "parser.yy"
    6306     { (yyval.constant) = 0; }
    6307     break;
    6308 
    6309   case 231:
    6310 
    6311 /* Line 1806 of yacc.c  */
    6312 #line 954 "parser.yy"
    6313     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6333    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    63146334    break;
    63156335
     
    63176337
    63186338/* Line 1806 of yacc.c  */
    6319 #line 956 "parser.yy"
    6320     { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
     6339#line 957 "parser.yy"
     6340    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    63216341    break;
    63226342
     
    63246344
    63256345/* Line 1806 of yacc.c  */
    6326 #line 961 "parser.yy"
    6327     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6346#line 959 "parser.yy"
     6347    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    63286348    break;
    63296349
     
    63316351
    63326352/* Line 1806 of yacc.c  */
    6333 #line 963 "parser.yy"
    6334     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    6335     break;
    6336 
    6337   case 235:
    6338 
    6339 /* Line 1806 of yacc.c  */
    6340 #line 970 "parser.yy"
     6353#line 966 "parser.yy"
    63416354    { (yyval.decl) = 0; }
    63426355    break;
    63436356
     6357  case 237:
     6358
     6359/* Line 1806 of yacc.c  */
     6360#line 973 "parser.yy"
     6361    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6362    break;
     6363
    63446364  case 238:
    63456365
    63466366/* Line 1806 of yacc.c  */
    6347 #line 977 "parser.yy"
     6367#line 978 "parser.yy"
     6368    { (yyval.decl) = 0; }
     6369    break;
     6370
     6371  case 241:
     6372
     6373/* Line 1806 of yacc.c  */
     6374#line 985 "parser.yy"
    63486375    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63496376    break;
    63506377
    6351   case 239:
    6352 
    6353 /* Line 1806 of yacc.c  */
    6354 #line 982 "parser.yy"
    6355     { (yyval.decl) = 0; }
    6356     break;
    6357 
    6358   case 242:
    6359 
    6360 /* Line 1806 of yacc.c  */
    6361 #line 989 "parser.yy"
    6362     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6378  case 246:
     6379
     6380/* Line 1806 of yacc.c  */
     6381#line 999 "parser.yy"
     6382    {}
    63636383    break;
    63646384
     
    63666386
    63676387/* Line 1806 of yacc.c  */
    6368 #line 1003 "parser.yy"
     6388#line 1000 "parser.yy"
    63696389    {}
    63706390    break;
    63716391
    6372   case 248:
    6373 
    6374 /* Line 1806 of yacc.c  */
    6375 #line 1004 "parser.yy"
    6376     {}
    6377     break;
    6378 
    6379   case 256:
    6380 
    6381 /* Line 1806 of yacc.c  */
    6382 #line 1033 "parser.yy"
     6392  case 255:
     6393
     6394/* Line 1806 of yacc.c  */
     6395#line 1029 "parser.yy"
    63836396    {
    63846397                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63876400    break;
    63886401
    6389   case 257:
    6390 
    6391 /* Line 1806 of yacc.c  */
    6392 #line 1040 "parser.yy"
     6402  case 256:
     6403
     6404/* Line 1806 of yacc.c  */
     6405#line 1036 "parser.yy"
    63936406    {
    63946407                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63976410    break;
    63986411
    6399   case 258:
    6400 
    6401 /* Line 1806 of yacc.c  */
    6402 #line 1045 "parser.yy"
     6412  case 257:
     6413
     6414/* Line 1806 of yacc.c  */
     6415#line 1041 "parser.yy"
    64036416    {
    64046417                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    64076420    break;
    64086421
    6409   case 259:
    6410 
    6411 /* Line 1806 of yacc.c  */
    6412 #line 1055 "parser.yy"
     6422  case 258:
     6423
     6424/* Line 1806 of yacc.c  */
     6425#line 1051 "parser.yy"
    64136426    {
    64146427                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    64176430    break;
    64186431
    6419   case 260:
    6420 
    6421 /* Line 1806 of yacc.c  */
    6422 #line 1060 "parser.yy"
     6432  case 259:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1056 "parser.yy"
    64236436    {
    64246437                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    64276440    break;
    64286441
    6429   case 261:
    6430 
    6431 /* Line 1806 of yacc.c  */
    6432 #line 1065 "parser.yy"
     6442  case 260:
     6443
     6444/* Line 1806 of yacc.c  */
     6445#line 1061 "parser.yy"
    64336446    {
    64346447                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    64376450    break;
    64386451
    6439   case 262:
    6440 
    6441 /* Line 1806 of yacc.c  */
    6442 #line 1073 "parser.yy"
     6452  case 261:
     6453
     6454/* Line 1806 of yacc.c  */
     6455#line 1069 "parser.yy"
    64436456    {
    64446457                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64476460    break;
    64486461
    6449   case 263:
    6450 
    6451 /* Line 1806 of yacc.c  */
    6452 #line 1078 "parser.yy"
     6462  case 262:
     6463
     6464/* Line 1806 of yacc.c  */
     6465#line 1074 "parser.yy"
    64536466    {
    64546467                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64576470    break;
    64586471
    6459   case 264:
    6460 
    6461 /* Line 1806 of yacc.c  */
    6462 #line 1083 "parser.yy"
     6472  case 263:
     6473
     6474/* Line 1806 of yacc.c  */
     6475#line 1079 "parser.yy"
    64636476    {
    64646477                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64676480    break;
    64686481
    6469   case 265:
    6470 
    6471 /* Line 1806 of yacc.c  */
    6472 #line 1088 "parser.yy"
     6482  case 264:
     6483
     6484/* Line 1806 of yacc.c  */
     6485#line 1084 "parser.yy"
    64736486    {
    64746487                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64776490    break;
    64786491
    6479   case 266:
    6480 
    6481 /* Line 1806 of yacc.c  */
    6482 #line 1093 "parser.yy"
     6492  case 265:
     6493
     6494/* Line 1806 of yacc.c  */
     6495#line 1089 "parser.yy"
    64836496    {
    64846497                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64876500    break;
    64886501
    6489   case 267:
    6490 
    6491 /* Line 1806 of yacc.c  */
    6492 #line 1101 "parser.yy"
     6502  case 266:
     6503
     6504/* Line 1806 of yacc.c  */
     6505#line 1097 "parser.yy"
    64936506    {
    64946507                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     6508                }
     6509    break;
     6510
     6511  case 267:
     6512
     6513/* Line 1806 of yacc.c  */
     6514#line 1120 "parser.yy"
     6515    {
     6516                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    64956517                }
    64966518    break;
     
    65086530
    65096531/* Line 1806 of yacc.c  */
    6510 #line 1128 "parser.yy"
    6511     {
    6512                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    6513                 }
     6532#line 1131 "parser.yy"
     6533    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    65146534    break;
    65156535
     
    65186538/* Line 1806 of yacc.c  */
    65196539#line 1135 "parser.yy"
    6520     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6540    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    65216541    break;
    65226542
     
    65246544
    65256545/* Line 1806 of yacc.c  */
    6526 #line 1139 "parser.yy"
    6527     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    6528     break;
    6529 
    6530   case 272:
    6531 
    6532 /* Line 1806 of yacc.c  */
    6533 #line 1144 "parser.yy"
     6546#line 1140 "parser.yy"
    65346547    {
    65356548                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65386551    break;
    65396552
    6540   case 273:
    6541 
    6542 /* Line 1806 of yacc.c  */
    6543 #line 1149 "parser.yy"
     6553  case 272:
     6554
     6555/* Line 1806 of yacc.c  */
     6556#line 1145 "parser.yy"
    65446557    {
    65456558                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65486561    break;
    65496562
    6550   case 274:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1154 "parser.yy"
     6563  case 273:
     6564
     6565/* Line 1806 of yacc.c  */
     6566#line 1150 "parser.yy"
    65546567    {
    65556568                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    65586571    break;
    65596572
    6560   case 275:
    6561 
    6562 /* Line 1806 of yacc.c  */
    6563 #line 1165 "parser.yy"
     6573  case 274:
     6574
     6575/* Line 1806 of yacc.c  */
     6576#line 1161 "parser.yy"
    65646577    {
    65656578                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65686581    break;
    65696582
    6570   case 276:
    6571 
    6572 /* Line 1806 of yacc.c  */
    6573 #line 1170 "parser.yy"
     6583  case 275:
     6584
     6585/* Line 1806 of yacc.c  */
     6586#line 1166 "parser.yy"
    65746587    {
    65756588                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65786591    break;
    65796592
    6580   case 277:
    6581 
    6582 /* Line 1806 of yacc.c  */
    6583 #line 1175 "parser.yy"
     6593  case 276:
     6594
     6595/* Line 1806 of yacc.c  */
     6596#line 1171 "parser.yy"
    65846597    {
    65856598                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65886601    break;
    65896602
    6590   case 278:
    6591 
    6592 /* Line 1806 of yacc.c  */
    6593 #line 1180 "parser.yy"
     6603  case 277:
     6604
     6605/* Line 1806 of yacc.c  */
     6606#line 1176 "parser.yy"
    65946607    {
    65956608                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65986611    break;
    65996612
    6600   case 279:
    6601 
    6602 /* Line 1806 of yacc.c  */
    6603 #line 1185 "parser.yy"
     6613  case 278:
     6614
     6615/* Line 1806 of yacc.c  */
     6616#line 1181 "parser.yy"
    66046617    {
    66056618                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    66086621    break;
    66096622
    6610   case 280:
    6611 
    6612 /* Line 1806 of yacc.c  */
    6613 #line 1194 "parser.yy"
     6623  case 279:
     6624
     6625/* Line 1806 of yacc.c  */
     6626#line 1190 "parser.yy"
    66146627    {
    66156628                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    66186631    break;
    66196632
    6620   case 281:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1199 "parser.yy"
     6633  case 280:
     6634
     6635/* Line 1806 of yacc.c  */
     6636#line 1195 "parser.yy"
    66246637    {
    66256638                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    66286641    break;
    66296642
    6630   case 286:
    6631 
    6632 /* Line 1806 of yacc.c  */
    6633 #line 1216 "parser.yy"
     6643  case 285:
     6644
     6645/* Line 1806 of yacc.c  */
     6646#line 1212 "parser.yy"
    66346647    {
    66356648                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66386651    break;
    66396652
    6640   case 287:
    6641 
    6642 /* Line 1806 of yacc.c  */
    6643 #line 1221 "parser.yy"
     6653  case 286:
     6654
     6655/* Line 1806 of yacc.c  */
     6656#line 1217 "parser.yy"
    66446657    {
    66456658                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66486661    break;
    66496662
    6650   case 296:
    6651 
    6652 /* Line 1806 of yacc.c  */
    6653 #line 1243 "parser.yy"
     6663  case 295:
     6664
     6665/* Line 1806 of yacc.c  */
     6666#line 1239 "parser.yy"
    66546667    { (yyval.decl) = 0; }
    66556668    break;
    66566669
    6657   case 299:
    6658 
    6659 /* Line 1806 of yacc.c  */
    6660 #line 1255 "parser.yy"
     6670  case 298:
     6671
     6672/* Line 1806 of yacc.c  */
     6673#line 1251 "parser.yy"
    66616674    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66626675    break;
    66636676
     6677  case 301:
     6678
     6679/* Line 1806 of yacc.c  */
     6680#line 1262 "parser.yy"
     6681    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6682    break;
     6683
    66646684  case 302:
    66656685
    66666686/* Line 1806 of yacc.c  */
     6687#line 1264 "parser.yy"
     6688    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6689    break;
     6690
     6691  case 303:
     6692
     6693/* Line 1806 of yacc.c  */
    66676694#line 1266 "parser.yy"
    6668     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6669     break;
    6670 
    6671   case 303:
     6695    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6696    break;
     6697
     6698  case 304:
    66726699
    66736700/* Line 1806 of yacc.c  */
    66746701#line 1268 "parser.yy"
    6675     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6676     break;
    6677 
    6678   case 304:
     6702    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6703    break;
     6704
     6705  case 305:
    66796706
    66806707/* Line 1806 of yacc.c  */
    66816708#line 1270 "parser.yy"
    6682     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6683     break;
    6684 
    6685   case 305:
     6709    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     6710    break;
     6711
     6712  case 306:
    66866713
    66876714/* Line 1806 of yacc.c  */
    66886715#line 1272 "parser.yy"
    6689     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6690     break;
    6691 
    6692   case 306:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1274 "parser.yy"
    6696     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6697     break;
    6698 
    6699   case 307:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1276 "parser.yy"
    67036716    {
    67046717                        typedefTable.enterScope();
     
    67066719    break;
    67076720
    6708   case 308:
    6709 
    6710 /* Line 1806 of yacc.c  */
    6711 #line 1280 "parser.yy"
     6721  case 307:
     6722
     6723/* Line 1806 of yacc.c  */
     6724#line 1276 "parser.yy"
    67126725    {
    67136726                        typedefTable.leaveScope();
     
    67166729    break;
    67176730
     6731  case 309:
     6732
     6733/* Line 1806 of yacc.c  */
     6734#line 1285 "parser.yy"
     6735    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6736    break;
     6737
    67186738  case 310:
    67196739
    67206740/* Line 1806 of yacc.c  */
    6721 #line 1289 "parser.yy"
     6741#line 1287 "parser.yy"
     6742    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6743    break;
     6744
     6745  case 312:
     6746
     6747/* Line 1806 of yacc.c  */
     6748#line 1298 "parser.yy"
    67226749    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67236750    break;
    67246751
    6725   case 311:
    6726 
    6727 /* Line 1806 of yacc.c  */
    6728 #line 1291 "parser.yy"
     6752  case 314:
     6753
     6754/* Line 1806 of yacc.c  */
     6755#line 1307 "parser.yy"
     6756    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6757    break;
     6758
     6759  case 315:
     6760
     6761/* Line 1806 of yacc.c  */
     6762#line 1309 "parser.yy"
     6763    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6764    break;
     6765
     6766  case 316:
     6767
     6768/* Line 1806 of yacc.c  */
     6769#line 1311 "parser.yy"
     6770    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6771    break;
     6772
     6773  case 317:
     6774
     6775/* Line 1806 of yacc.c  */
     6776#line 1313 "parser.yy"
     6777    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6778    break;
     6779
     6780  case 318:
     6781
     6782/* Line 1806 of yacc.c  */
     6783#line 1315 "parser.yy"
     6784    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6785    break;
     6786
     6787  case 319:
     6788
     6789/* Line 1806 of yacc.c  */
     6790#line 1317 "parser.yy"
     6791    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6792    break;
     6793
     6794  case 320:
     6795
     6796/* Line 1806 of yacc.c  */
     6797#line 1319 "parser.yy"
     6798    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6799    break;
     6800
     6801  case 321:
     6802
     6803/* Line 1806 of yacc.c  */
     6804#line 1321 "parser.yy"
     6805    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6806    break;
     6807
     6808  case 322:
     6809
     6810/* Line 1806 of yacc.c  */
     6811#line 1326 "parser.yy"
     6812    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6813    break;
     6814
     6815  case 323:
     6816
     6817/* Line 1806 of yacc.c  */
     6818#line 1328 "parser.yy"
     6819    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6820    break;
     6821
     6822  case 324:
     6823
     6824/* Line 1806 of yacc.c  */
     6825#line 1330 "parser.yy"
     6826    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6827    break;
     6828
     6829  case 325:
     6830
     6831/* Line 1806 of yacc.c  */
     6832#line 1332 "parser.yy"
     6833    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6834    break;
     6835
     6836  case 326:
     6837
     6838/* Line 1806 of yacc.c  */
     6839#line 1334 "parser.yy"
     6840    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6841    break;
     6842
     6843  case 327:
     6844
     6845/* Line 1806 of yacc.c  */
     6846#line 1336 "parser.yy"
     6847    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6848    break;
     6849
     6850  case 328:
     6851
     6852/* Line 1806 of yacc.c  */
     6853#line 1338 "parser.yy"
     6854    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6855    break;
     6856
     6857  case 329:
     6858
     6859/* Line 1806 of yacc.c  */
     6860#line 1340 "parser.yy"
     6861    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6862    break;
     6863
     6864  case 330:
     6865
     6866/* Line 1806 of yacc.c  */
     6867#line 1342 "parser.yy"
     6868    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6869    break;
     6870
     6871  case 331:
     6872
     6873/* Line 1806 of yacc.c  */
     6874#line 1344 "parser.yy"
     6875    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6876    break;
     6877
     6878  case 332:
     6879
     6880/* Line 1806 of yacc.c  */
     6881#line 1346 "parser.yy"
     6882    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6883    break;
     6884
     6885  case 333:
     6886
     6887/* Line 1806 of yacc.c  */
     6888#line 1348 "parser.yy"
     6889    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6890    break;
     6891
     6892  case 334:
     6893
     6894/* Line 1806 of yacc.c  */
     6895#line 1350 "parser.yy"
     6896    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6897    break;
     6898
     6899  case 336:
     6900
     6901/* Line 1806 of yacc.c  */
     6902#line 1357 "parser.yy"
     6903    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6904    break;
     6905
     6906  case 337:
     6907
     6908/* Line 1806 of yacc.c  */
     6909#line 1359 "parser.yy"
     6910    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6911    break;
     6912
     6913  case 338:
     6914
     6915/* Line 1806 of yacc.c  */
     6916#line 1361 "parser.yy"
    67296917    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67306918    break;
    67316919
    6732   case 313:
    6733 
    6734 /* Line 1806 of yacc.c  */
    6735 #line 1302 "parser.yy"
     6920  case 339:
     6921
     6922/* Line 1806 of yacc.c  */
     6923#line 1363 "parser.yy"
     6924    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6925    break;
     6926
     6927  case 341:
     6928
     6929/* Line 1806 of yacc.c  */
     6930#line 1369 "parser.yy"
     6931    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6932    break;
     6933
     6934  case 343:
     6935
     6936/* Line 1806 of yacc.c  */
     6937#line 1376 "parser.yy"
     6938    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6939    break;
     6940
     6941  case 344:
     6942
     6943/* Line 1806 of yacc.c  */
     6944#line 1378 "parser.yy"
    67366945    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67376946    break;
    67386947
    6739   case 315:
    6740 
    6741 /* Line 1806 of yacc.c  */
    6742 #line 1311 "parser.yy"
    6743     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6744     break;
    6745 
    6746   case 316:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1313 "parser.yy"
    6750     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6751     break;
    6752 
    6753   case 317:
    6754 
    6755 /* Line 1806 of yacc.c  */
    6756 #line 1315 "parser.yy"
    6757     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6758     break;
    6759 
    6760   case 318:
    6761 
    6762 /* Line 1806 of yacc.c  */
    6763 #line 1317 "parser.yy"
    6764     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6765     break;
    6766 
    6767   case 319:
    6768 
    6769 /* Line 1806 of yacc.c  */
    6770 #line 1319 "parser.yy"
    6771     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6772     break;
    6773 
    6774   case 320:
    6775 
    6776 /* Line 1806 of yacc.c  */
    6777 #line 1321 "parser.yy"
    6778     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6779     break;
    6780 
    6781   case 321:
    6782 
    6783 /* Line 1806 of yacc.c  */
    6784 #line 1323 "parser.yy"
    6785     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6786     break;
    6787 
    6788   case 322:
    6789 
    6790 /* Line 1806 of yacc.c  */
    6791 #line 1325 "parser.yy"
    6792     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6793     break;
    6794 
    6795   case 323:
    6796 
    6797 /* Line 1806 of yacc.c  */
    6798 #line 1330 "parser.yy"
    6799     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6800     break;
    6801 
    6802   case 324:
    6803 
    6804 /* Line 1806 of yacc.c  */
    6805 #line 1332 "parser.yy"
    6806     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6807     break;
    6808 
    6809   case 325:
    6810 
    6811 /* Line 1806 of yacc.c  */
    6812 #line 1334 "parser.yy"
    6813     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6814     break;
    6815 
    6816   case 326:
    6817 
    6818 /* Line 1806 of yacc.c  */
    6819 #line 1336 "parser.yy"
    6820     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6821     break;
    6822 
    6823   case 327:
    6824 
    6825 /* Line 1806 of yacc.c  */
    6826 #line 1338 "parser.yy"
    6827     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6828     break;
    6829 
    6830   case 328:
    6831 
    6832 /* Line 1806 of yacc.c  */
    6833 #line 1340 "parser.yy"
    6834     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6835     break;
    6836 
    6837   case 329:
    6838 
    6839 /* Line 1806 of yacc.c  */
    6840 #line 1342 "parser.yy"
    6841     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6842     break;
    6843 
    6844   case 330:
    6845 
    6846 /* Line 1806 of yacc.c  */
    6847 #line 1344 "parser.yy"
    6848     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6849     break;
    6850 
    6851   case 331:
    6852 
    6853 /* Line 1806 of yacc.c  */
    6854 #line 1346 "parser.yy"
    6855     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6856     break;
    6857 
    6858   case 332:
    6859 
    6860 /* Line 1806 of yacc.c  */
    6861 #line 1348 "parser.yy"
    6862     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6863     break;
    6864 
    6865   case 333:
    6866 
    6867 /* Line 1806 of yacc.c  */
    6868 #line 1350 "parser.yy"
    6869     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6870     break;
    6871 
    6872   case 334:
    6873 
    6874 /* Line 1806 of yacc.c  */
    6875 #line 1352 "parser.yy"
    6876     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6877     break;
    6878 
    6879   case 335:
    6880 
    6881 /* Line 1806 of yacc.c  */
    6882 #line 1354 "parser.yy"
    6883     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6884     break;
    6885 
    6886   case 337:
    6887 
    6888 /* Line 1806 of yacc.c  */
    6889 #line 1361 "parser.yy"
     6948  case 345:
     6949
     6950/* Line 1806 of yacc.c  */
     6951#line 1380 "parser.yy"
     6952    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6953    break;
     6954
     6955  case 346:
     6956
     6957/* Line 1806 of yacc.c  */
     6958#line 1385 "parser.yy"
     6959    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6960    break;
     6961
     6962  case 347:
     6963
     6964/* Line 1806 of yacc.c  */
     6965#line 1387 "parser.yy"
     6966    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6967    break;
     6968
     6969  case 348:
     6970
     6971/* Line 1806 of yacc.c  */
     6972#line 1389 "parser.yy"
     6973    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6974    break;
     6975
     6976  case 349:
     6977
     6978/* Line 1806 of yacc.c  */
     6979#line 1391 "parser.yy"
     6980    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6981    break;
     6982
     6983  case 351:
     6984
     6985/* Line 1806 of yacc.c  */
     6986#line 1397 "parser.yy"
    68906987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68916988    break;
    68926989
    6893   case 338:
    6894 
    6895 /* Line 1806 of yacc.c  */
    6896 #line 1363 "parser.yy"
     6990  case 352:
     6991
     6992/* Line 1806 of yacc.c  */
     6993#line 1399 "parser.yy"
    68976994    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68986995    break;
    68996996
    6900   case 339:
    6901 
    6902 /* Line 1806 of yacc.c  */
    6903 #line 1365 "parser.yy"
     6997  case 353:
     6998
     6999/* Line 1806 of yacc.c  */
     7000#line 1401 "parser.yy"
    69047001    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69057002    break;
    69067003
    6907   case 340:
    6908 
    6909 /* Line 1806 of yacc.c  */
    6910 #line 1367 "parser.yy"
    6911     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6912     break;
    6913 
    6914   case 342:
    6915 
    6916 /* Line 1806 of yacc.c  */
    6917 #line 1373 "parser.yy"
    6918     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6919     break;
    6920 
    6921   case 344:
    6922 
    6923 /* Line 1806 of yacc.c  */
    6924 #line 1380 "parser.yy"
     7004  case 355:
     7005
     7006/* Line 1806 of yacc.c  */
     7007#line 1407 "parser.yy"
    69257008    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69267009    break;
    69277010
    6928   case 345:
    6929 
    6930 /* Line 1806 of yacc.c  */
    6931 #line 1382 "parser.yy"
     7011  case 356:
     7012
     7013/* Line 1806 of yacc.c  */
     7014#line 1409 "parser.yy"
    69327015    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69337016    break;
    69347017
    6935   case 346:
    6936 
    6937 /* Line 1806 of yacc.c  */
    6938 #line 1384 "parser.yy"
    6939     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6940     break;
    6941 
    6942   case 347:
    6943 
    6944 /* Line 1806 of yacc.c  */
    6945 #line 1389 "parser.yy"
    6946     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6947     break;
    6948 
    6949   case 348:
    6950 
    6951 /* Line 1806 of yacc.c  */
    6952 #line 1391 "parser.yy"
    6953     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6954     break;
    6955 
    6956   case 349:
    6957 
    6958 /* Line 1806 of yacc.c  */
    6959 #line 1393 "parser.yy"
    6960     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6961     break;
    6962 
    6963   case 350:
    6964 
    6965 /* Line 1806 of yacc.c  */
    6966 #line 1395 "parser.yy"
    6967     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6968     break;
    6969 
    6970   case 352:
    6971 
    6972 /* Line 1806 of yacc.c  */
    6973 #line 1401 "parser.yy"
     7018  case 358:
     7019
     7020/* Line 1806 of yacc.c  */
     7021#line 1415 "parser.yy"
    69747022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69757023    break;
    69767024
    6977   case 353:
    6978 
    6979 /* Line 1806 of yacc.c  */
    6980 #line 1403 "parser.yy"
     7025  case 359:
     7026
     7027/* Line 1806 of yacc.c  */
     7028#line 1417 "parser.yy"
    69817029    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69827030    break;
    69837031
    6984   case 354:
    6985 
    6986 /* Line 1806 of yacc.c  */
    6987 #line 1405 "parser.yy"
     7032  case 360:
     7033
     7034/* Line 1806 of yacc.c  */
     7035#line 1419 "parser.yy"
    69887036    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69897037    break;
    69907038
    6991   case 356:
    6992 
    6993 /* Line 1806 of yacc.c  */
    6994 #line 1411 "parser.yy"
    6995     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6996     break;
    6997 
    6998   case 357:
    6999 
    7000 /* Line 1806 of yacc.c  */
    7001 #line 1413 "parser.yy"
     7039  case 361:
     7040
     7041/* Line 1806 of yacc.c  */
     7042#line 1424 "parser.yy"
     7043    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     7044    break;
     7045
     7046  case 362:
     7047
     7048/* Line 1806 of yacc.c  */
     7049#line 1426 "parser.yy"
     7050    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7051    break;
     7052
     7053  case 363:
     7054
     7055/* Line 1806 of yacc.c  */
     7056#line 1428 "parser.yy"
    70027057    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70037058    break;
    70047059
    7005   case 359:
    7006 
    7007 /* Line 1806 of yacc.c  */
    7008 #line 1419 "parser.yy"
    7009     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7010     break;
    7011 
    7012   case 360:
    7013 
    7014 /* Line 1806 of yacc.c  */
    7015 #line 1421 "parser.yy"
    7016     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7017     break;
    7018 
    7019   case 361:
    7020 
    7021 /* Line 1806 of yacc.c  */
    7022 #line 1423 "parser.yy"
    7023     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7024     break;
    7025 
    7026   case 362:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1428 "parser.yy"
    7030     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    7031     break;
    7032 
    7033   case 363:
    7034 
    7035 /* Line 1806 of yacc.c  */
    7036 #line 1430 "parser.yy"
    7037     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7038     break;
    7039 
    7040   case 364:
    7041 
    7042 /* Line 1806 of yacc.c  */
    7043 #line 1432 "parser.yy"
    7044     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7060  case 366:
     7061
     7062/* Line 1806 of yacc.c  */
     7063#line 1438 "parser.yy"
     7064    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    70457065    break;
    70467066
     
    70487068
    70497069/* Line 1806 of yacc.c  */
    7050 #line 1442 "parser.yy"
    7051     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    7052     break;
    7053 
    7054   case 368:
    7055 
    7056 /* Line 1806 of yacc.c  */
    7057 #line 1444 "parser.yy"
     7070#line 1440 "parser.yy"
    70587071    {
    70597072                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    70627075    break;
    70637076
     7077  case 368:
     7078
     7079/* Line 1806 of yacc.c  */
     7080#line 1445 "parser.yy"
     7081    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7082    break;
     7083
    70647084  case 369:
    70657085
    70667086/* Line 1806 of yacc.c  */
     7087#line 1447 "parser.yy"
     7088    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); }
     7089    break;
     7090
     7091  case 370:
     7092
     7093/* Line 1806 of yacc.c  */
    70677094#line 1449 "parser.yy"
    7068     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7069     break;
    7070 
    7071   case 370:
     7095    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     7096    break;
     7097
     7098  case 371:
    70727099
    70737100/* Line 1806 of yacc.c  */
    70747101#line 1451 "parser.yy"
    7075     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); }
    7076     break;
    7077 
    7078   case 371:
    7079 
    7080 /* Line 1806 of yacc.c  */
    7081 #line 1453 "parser.yy"
    7082     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     7102    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70837103    break;
    70847104
     
    70867106
    70877107/* Line 1806 of yacc.c  */
    7088 #line 1455 "parser.yy"
    7089     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7108#line 1456 "parser.yy"
     7109    { (yyval.aggKey) = DeclarationNode::Struct; }
    70907110    break;
    70917111
     
    70937113
    70947114/* Line 1806 of yacc.c  */
    7095 #line 1460 "parser.yy"
    7096     { (yyval.aggKey) = DeclarationNode::Struct; }
     7115#line 1458 "parser.yy"
     7116    { (yyval.aggKey) = DeclarationNode::Union; }
    70977117    break;
    70987118
     
    71007120
    71017121/* Line 1806 of yacc.c  */
    7102 #line 1462 "parser.yy"
    7103     { (yyval.aggKey) = DeclarationNode::Union; }
     7122#line 1463 "parser.yy"
     7123    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    71047124    break;
    71057125
     
    71077127
    71087128/* Line 1806 of yacc.c  */
    7109 #line 1467 "parser.yy"
    7110     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    7111     break;
    7112 
    7113   case 376:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1469 "parser.yy"
     7129#line 1465 "parser.yy"
    71177130    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    71187131    break;
    71197132
    7120   case 378:
    7121 
    7122 /* Line 1806 of yacc.c  */
    7123 #line 1475 "parser.yy"
     7133  case 377:
     7134
     7135/* Line 1806 of yacc.c  */
     7136#line 1471 "parser.yy"
    71247137    { (yyval.decl) = (yyvsp[(2) - (3)].decl)/*->set_extension( true )*/; }
    71257138    break;
    71267139
    7127   case 380:
    7128 
    7129 /* Line 1806 of yacc.c  */
    7130 #line 1478 "parser.yy"
     7140  case 379:
     7141
     7142/* Line 1806 of yacc.c  */
     7143#line 1474 "parser.yy"
    71317144    { (yyval.decl) = (yyvsp[(2) - (3)].decl)/*->set_extension( true )*/; }
    71327145    break;
    71337146
     7147  case 381:
     7148
     7149/* Line 1806 of yacc.c  */
     7150#line 1480 "parser.yy"
     7151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7152    break;
     7153
    71347154  case 382:
    71357155
    71367156/* Line 1806 of yacc.c  */
     7157#line 1482 "parser.yy"
     7158    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7159    break;
     7160
     7161  case 383:
     7162
     7163/* Line 1806 of yacc.c  */
    71377164#line 1484 "parser.yy"
    7138     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    7139     break;
    7140 
    7141   case 383:
    7142 
    7143 /* Line 1806 of yacc.c  */
    7144 #line 1486 "parser.yy"
    7145     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7165    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71467166    break;
    71477167
     
    71497169
    71507170/* Line 1806 of yacc.c  */
    7151 #line 1488 "parser.yy"
    7152     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7171#line 1489 "parser.yy"
     7172    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71537173    break;
    71547174
     
    71567176
    71577177/* Line 1806 of yacc.c  */
    7158 #line 1493 "parser.yy"
    7159     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7178#line 1491 "parser.yy"
     7179    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71607180    break;
    71617181
     
    71637183
    71647184/* Line 1806 of yacc.c  */
    7165 #line 1495 "parser.yy"
    7166     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7185#line 1496 "parser.yy"
     7186    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71677187    break;
    71687188
     
    71707190
    71717191/* Line 1806 of yacc.c  */
    7172 #line 1500 "parser.yy"
    7173     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7192#line 1498 "parser.yy"
     7193    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71747194    break;
    71757195
     
    71777197
    71787198/* Line 1806 of yacc.c  */
    7179 #line 1502 "parser.yy"
    7180     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7199#line 1501 "parser.yy"
     7200    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71817201    break;
    71827202
     
    71847204
    71857205/* Line 1806 of yacc.c  */
    7186 #line 1505 "parser.yy"
     7206#line 1504 "parser.yy"
    71877207    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71887208    break;
    71897209
    7190   case 390:
    7191 
    7192 /* Line 1806 of yacc.c  */
    7193 #line 1508 "parser.yy"
    7194     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7210  case 391:
     7211
     7212/* Line 1806 of yacc.c  */
     7213#line 1510 "parser.yy"
     7214    { (yyval.en) = 0; }
    71957215    break;
    71967216
     
    71987218
    71997219/* Line 1806 of yacc.c  */
    7200 #line 1514 "parser.yy"
    7201     { (yyval.en) = 0; }
     7220#line 1512 "parser.yy"
     7221    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    72027222    break;
    72037223
     
    72057225
    72067226/* Line 1806 of yacc.c  */
    7207 #line 1516 "parser.yy"
    7208     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7209     break;
    7210 
    7211   case 394:
    7212 
    7213 /* Line 1806 of yacc.c  */
    7214 #line 1521 "parser.yy"
     7227#line 1517 "parser.yy"
    72157228    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72167229    break;
    72177230
     7231  case 395:
     7232
     7233/* Line 1806 of yacc.c  */
     7234#line 1526 "parser.yy"
     7235    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7236    break;
     7237
    72187238  case 396:
    72197239
    72207240/* Line 1806 of yacc.c  */
    7221 #line 1530 "parser.yy"
    7222     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7223     break;
    7224 
    7225   case 397:
    7226 
    7227 /* Line 1806 of yacc.c  */
    7228 #line 1532 "parser.yy"
     7241#line 1528 "parser.yy"
    72297242    {
    72307243                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    72337246    break;
    72347247
     7248  case 397:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1533 "parser.yy"
     7252    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7253    break;
     7254
    72357255  case 398:
    72367256
    72377257/* Line 1806 of yacc.c  */
    7238 #line 1537 "parser.yy"
    7239     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7258#line 1535 "parser.yy"
     7259    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    72407260    break;
    72417261
     
    72437263
    72447264/* Line 1806 of yacc.c  */
    7245 #line 1539 "parser.yy"
    7246     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7265#line 1540 "parser.yy"
     7266    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    72477267    break;
    72487268
     
    72507270
    72517271/* Line 1806 of yacc.c  */
    7252 #line 1544 "parser.yy"
    7253     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7272#line 1542 "parser.yy"
     7273    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72547274    break;
    72557275
     
    72577277
    72587278/* Line 1806 of yacc.c  */
    7259 #line 1546 "parser.yy"
    7260     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7279#line 1547 "parser.yy"
     7280    { (yyval.en) = 0; }
    72617281    break;
    72627282
     
    72647284
    72657285/* Line 1806 of yacc.c  */
    7266 #line 1551 "parser.yy"
    7267     { (yyval.en) = 0; }
     7286#line 1549 "parser.yy"
     7287    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72687288    break;
    72697289
     
    72717291
    72727292/* Line 1806 of yacc.c  */
    7273 #line 1553 "parser.yy"
    7274     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7275     break;
    7276 
    7277   case 404:
    7278 
    7279 /* Line 1806 of yacc.c  */
    7280 #line 1560 "parser.yy"
     7293#line 1556 "parser.yy"
    72817294    { (yyval.decl) = 0; }
    72827295    break;
    72837296
     7297  case 407:
     7298
     7299/* Line 1806 of yacc.c  */
     7300#line 1564 "parser.yy"
     7301    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7302    break;
     7303
    72847304  case 408:
    72857305
    72867306/* Line 1806 of yacc.c  */
     7307#line 1566 "parser.yy"
     7308    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7309    break;
     7310
     7311  case 409:
     7312
     7313/* Line 1806 of yacc.c  */
    72877314#line 1568 "parser.yy"
     7315    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7316    break;
     7317
     7318  case 411:
     7319
     7320/* Line 1806 of yacc.c  */
     7321#line 1576 "parser.yy"
    72887322    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72897323    break;
    72907324
    7291   case 409:
    7292 
    7293 /* Line 1806 of yacc.c  */
    7294 #line 1570 "parser.yy"
     7325  case 412:
     7326
     7327/* Line 1806 of yacc.c  */
     7328#line 1578 "parser.yy"
     7329    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7330    break;
     7331
     7332  case 413:
     7333
     7334/* Line 1806 of yacc.c  */
     7335#line 1580 "parser.yy"
     7336    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7337    break;
     7338
     7339  case 415:
     7340
     7341/* Line 1806 of yacc.c  */
     7342#line 1586 "parser.yy"
     7343    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7344    break;
     7345
     7346  case 416:
     7347
     7348/* Line 1806 of yacc.c  */
     7349#line 1591 "parser.yy"
     7350    { (yyval.decl) = 0; }
     7351    break;
     7352
     7353  case 419:
     7354
     7355/* Line 1806 of yacc.c  */
     7356#line 1598 "parser.yy"
    72957357    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72967358    break;
    72977359
    7298   case 410:
    7299 
    7300 /* Line 1806 of yacc.c  */
    7301 #line 1572 "parser.yy"
    7302     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7303     break;
    7304 
    7305   case 412:
    7306 
    7307 /* Line 1806 of yacc.c  */
    7308 #line 1580 "parser.yy"
     7360  case 422:
     7361
     7362/* Line 1806 of yacc.c  */
     7363#line 1605 "parser.yy"
    73097364    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73107365    break;
    73117366
    7312   case 413:
    7313 
    7314 /* Line 1806 of yacc.c  */
    7315 #line 1582 "parser.yy"
     7367  case 423:
     7368
     7369/* Line 1806 of yacc.c  */
     7370#line 1607 "parser.yy"
    73167371    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73177372    break;
    73187373
    7319   case 414:
    7320 
    7321 /* Line 1806 of yacc.c  */
    7322 #line 1584 "parser.yy"
    7323     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7324     break;
    7325 
    7326   case 416:
    7327 
    7328 /* Line 1806 of yacc.c  */
    7329 #line 1590 "parser.yy"
    7330     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7331     break;
    7332 
    7333   case 417:
    7334 
    7335 /* Line 1806 of yacc.c  */
    7336 #line 1595 "parser.yy"
    7337     { (yyval.decl) = 0; }
    7338     break;
    7339 
    7340   case 420:
    7341 
    7342 /* Line 1806 of yacc.c  */
    7343 #line 1602 "parser.yy"
    7344     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7345     break;
    7346 
    7347   case 423:
    7348 
    7349 /* Line 1806 of yacc.c  */
    7350 #line 1609 "parser.yy"
    7351     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7352     break;
    7353 
    7354   case 424:
    7355 
    7356 /* Line 1806 of yacc.c  */
    7357 #line 1611 "parser.yy"
    7358     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7374  case 425:
     7375
     7376/* Line 1806 of yacc.c  */
     7377#line 1616 "parser.yy"
     7378    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73597379    break;
    73607380
     
    73627382
    73637383/* Line 1806 of yacc.c  */
    7364 #line 1620 "parser.yy"
     7384#line 1619 "parser.yy"
    73657385    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73667386    break;
     
    73697389
    73707390/* Line 1806 of yacc.c  */
    7371 #line 1623 "parser.yy"
    7372     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7373     break;
    7374 
    7375   case 428:
    7376 
    7377 /* Line 1806 of yacc.c  */
    7378 #line 1625 "parser.yy"
     7391#line 1621 "parser.yy"
    73797392    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73807393    break;
    73817394
    7382   case 433:
    7383 
    7384 /* Line 1806 of yacc.c  */
    7385 #line 1635 "parser.yy"
     7395  case 432:
     7396
     7397/* Line 1806 of yacc.c  */
     7398#line 1631 "parser.yy"
    73867399    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73877400    break;
    73887401
    7389   case 435:
    7390 
    7391 /* Line 1806 of yacc.c  */
    7392 #line 1641 "parser.yy"
     7402  case 434:
     7403
     7404/* Line 1806 of yacc.c  */
     7405#line 1637 "parser.yy"
    73937406    {
    73947407                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73977410    break;
    73987411
    7399   case 436:
    7400 
    7401 /* Line 1806 of yacc.c  */
    7402 #line 1646 "parser.yy"
     7412  case 435:
     7413
     7414/* Line 1806 of yacc.c  */
     7415#line 1642 "parser.yy"
    74037416    {
    74047417                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    74077420    break;
    74087421
     7422  case 437:
     7423
     7424/* Line 1806 of yacc.c  */
     7425#line 1651 "parser.yy"
     7426    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7427    break;
     7428
    74097429  case 438:
    74107430
    74117431/* Line 1806 of yacc.c  */
    7412 #line 1655 "parser.yy"
     7432#line 1660 "parser.yy"
     7433    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7434    break;
     7435
     7436  case 439:
     7437
     7438/* Line 1806 of yacc.c  */
     7439#line 1662 "parser.yy"
     7440    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7441    break;
     7442
     7443  case 451:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1687 "parser.yy"
    74137447    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    74147448    break;
    74157449
    7416   case 439:
    7417 
    7418 /* Line 1806 of yacc.c  */
    7419 #line 1664 "parser.yy"
    7420     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7421     break;
    7422 
    7423   case 440:
    7424 
    7425 /* Line 1806 of yacc.c  */
    7426 #line 1666 "parser.yy"
    7427     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7428     break;
    7429 
    7430   case 452:
    7431 
    7432 /* Line 1806 of yacc.c  */
    7433 #line 1691 "parser.yy"
     7450  case 455:
     7451
     7452/* Line 1806 of yacc.c  */
     7453#line 1695 "parser.yy"
    74347454    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    74357455    break;
     
    74387458
    74397459/* Line 1806 of yacc.c  */
    7440 #line 1699 "parser.yy"
    7441     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7460#line 1700 "parser.yy"
     7461    { (yyval.in) = 0; }
    74427462    break;
    74437463
     
    74457465
    74467466/* Line 1806 of yacc.c  */
     7467#line 1702 "parser.yy"
     7468    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7469    break;
     7470
     7471  case 458:
     7472
     7473/* Line 1806 of yacc.c  */
    74477474#line 1704 "parser.yy"
     7475    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7476    break;
     7477
     7478  case 459:
     7479
     7480/* Line 1806 of yacc.c  */
     7481#line 1708 "parser.yy"
     7482    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7483    break;
     7484
     7485  case 460:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1709 "parser.yy"
     7489    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7490    break;
     7491
     7492  case 461:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1714 "parser.yy"
    74487496    { (yyval.in) = 0; }
    74497497    break;
    74507498
    7451   case 458:
    7452 
    7453 /* Line 1806 of yacc.c  */
    7454 #line 1706 "parser.yy"
    7455     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7456     break;
    7457 
    7458   case 459:
    7459 
    7460 /* Line 1806 of yacc.c  */
    7461 #line 1708 "parser.yy"
    7462     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7463     break;
    7464 
    7465   case 460:
    7466 
    7467 /* Line 1806 of yacc.c  */
    7468 #line 1712 "parser.yy"
    7469     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7470     break;
    7471 
    7472   case 461:
    7473 
    7474 /* Line 1806 of yacc.c  */
    7475 #line 1713 "parser.yy"
    7476     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7477     break;
    7478 
    7479   case 462:
    7480 
    7481 /* Line 1806 of yacc.c  */
    7482 #line 1718 "parser.yy"
    7483     { (yyval.in) = 0; }
     7499  case 463:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1716 "parser.yy"
     7503    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74847504    break;
    74857505
     
    74877507
    74887508/* Line 1806 of yacc.c  */
    7489 #line 1720 "parser.yy"
    7490     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7509#line 1717 "parser.yy"
     7510    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    74917511    break;
    74927512
     
    74947514
    74957515/* Line 1806 of yacc.c  */
    7496 #line 1721 "parser.yy"
    7497     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    7498     break;
    7499 
    7500   case 466:
    7501 
    7502 /* Line 1806 of yacc.c  */
    7503 #line 1723 "parser.yy"
     7516#line 1719 "parser.yy"
    75047517    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    75057518    break;
    75067519
    7507   case 468:
    7508 
    7509 /* Line 1806 of yacc.c  */
    7510 #line 1739 "parser.yy"
     7520  case 467:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1735 "parser.yy"
    75117524    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    75127525    break;
    75137526
     7527  case 469:
     7528
     7529/* Line 1806 of yacc.c  */
     7530#line 1741 "parser.yy"
     7531    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7532    break;
     7533
    75147534  case 470:
    75157535
    75167536/* Line 1806 of yacc.c  */
    7517 #line 1745 "parser.yy"
    7518     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7537#line 1749 "parser.yy"
     7538    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    75197539    break;
    75207540
     
    75227542
    75237543/* Line 1806 of yacc.c  */
    7524 #line 1753 "parser.yy"
    7525     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
     7544#line 1751 "parser.yy"
     7545    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    75267546    break;
    75277547
     
    75297549
    75307550/* Line 1806 of yacc.c  */
    7531 #line 1755 "parser.yy"
    7532     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7551#line 1754 "parser.yy"
     7552    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    75337553    break;
    75347554
     
    75367556
    75377557/* Line 1806 of yacc.c  */
     7558#line 1756 "parser.yy"
     7559    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7560    break;
     7561
     7562  case 474:
     7563
     7564/* Line 1806 of yacc.c  */
    75387565#line 1758 "parser.yy"
    7539     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7540     break;
    7541 
    7542   case 474:
     7566    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
     7567    break;
     7568
     7569  case 475:
    75437570
    75447571/* Line 1806 of yacc.c  */
    75457572#line 1760 "parser.yy"
    7546     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7547     break;
    7548 
    7549   case 475:
    7550 
    7551 /* Line 1806 of yacc.c  */
    7552 #line 1762 "parser.yy"
    7553     { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    7554     break;
    7555 
    7556   case 476:
    7557 
    7558 /* Line 1806 of yacc.c  */
    7559 #line 1764 "parser.yy"
    75607573    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    75617574    break;
    75627575
     7576  case 477:
     7577
     7578/* Line 1806 of yacc.c  */
     7579#line 1784 "parser.yy"
     7580    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7581    break;
     7582
    75637583  case 478:
    75647584
    75657585/* Line 1806 of yacc.c  */
     7586#line 1786 "parser.yy"
     7587    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7588    break;
     7589
     7590  case 479:
     7591
     7592/* Line 1806 of yacc.c  */
    75667593#line 1788 "parser.yy"
     7594    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7595    break;
     7596
     7597  case 481:
     7598
     7599/* Line 1806 of yacc.c  */
     7600#line 1794 "parser.yy"
    75677601    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75687602    break;
    75697603
    7570   case 479:
    7571 
    7572 /* Line 1806 of yacc.c  */
    7573 #line 1790 "parser.yy"
     7604  case 482:
     7605
     7606/* Line 1806 of yacc.c  */
     7607#line 1796 "parser.yy"
    75747608    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75757609    break;
    75767610
    7577   case 480:
    7578 
    7579 /* Line 1806 of yacc.c  */
    7580 #line 1792 "parser.yy"
    7581     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7582     break;
    7583 
    7584   case 482:
    7585 
    7586 /* Line 1806 of yacc.c  */
    7587 #line 1798 "parser.yy"
    7588     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7589     break;
    7590 
    75917611  case 483:
    75927612
    75937613/* Line 1806 of yacc.c  */
    7594 #line 1800 "parser.yy"
    7595     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7596     break;
    7597 
    7598   case 484:
    7599 
    7600 /* Line 1806 of yacc.c  */
    7601 #line 1805 "parser.yy"
     7614#line 1801 "parser.yy"
    76027615    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    76037616    break;
    76047617
     7618  case 485:
     7619
     7620/* Line 1806 of yacc.c  */
     7621#line 1807 "parser.yy"
     7622    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7623    break;
     7624
    76057625  case 486:
    76067626
    76077627/* Line 1806 of yacc.c  */
    7608 #line 1811 "parser.yy"
    7609     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7628#line 1812 "parser.yy"
     7629    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    76107630    break;
    76117631
     
    76137633
    76147634/* Line 1806 of yacc.c  */
    7615 #line 1816 "parser.yy"
    7616     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7617     break;
    7618 
    7619   case 488:
    7620 
    7621 /* Line 1806 of yacc.c  */
    7622 #line 1818 "parser.yy"
     7635#line 1814 "parser.yy"
    76237636    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    76247637    break;
    76257638
     7639  case 489:
     7640
     7641/* Line 1806 of yacc.c  */
     7642#line 1820 "parser.yy"
     7643    { (yyval.tclass) = DeclarationNode::Type; }
     7644    break;
     7645
    76267646  case 490:
    76277647
    76287648/* Line 1806 of yacc.c  */
     7649#line 1822 "parser.yy"
     7650    { (yyval.tclass) = DeclarationNode::Ftype; }
     7651    break;
     7652
     7653  case 491:
     7654
     7655/* Line 1806 of yacc.c  */
    76297656#line 1824 "parser.yy"
    7630     { (yyval.tclass) = DeclarationNode::Type; }
    7631     break;
    7632 
    7633   case 491:
    7634 
    7635 /* Line 1806 of yacc.c  */
    7636 #line 1826 "parser.yy"
    7637     { (yyval.tclass) = DeclarationNode::Ftype; }
     7657    { (yyval.tclass) = DeclarationNode::Dtype; }
    76387658    break;
    76397659
     
    76417661
    76427662/* Line 1806 of yacc.c  */
    7643 #line 1828 "parser.yy"
    7644     { (yyval.tclass) = DeclarationNode::Dtype; }
     7663#line 1829 "parser.yy"
     7664    { (yyval.decl) = 0; }
    76457665    break;
    76467666
     
    76487668
    76497669/* Line 1806 of yacc.c  */
    7650 #line 1833 "parser.yy"
    7651     { (yyval.decl) = 0; }
     7670#line 1831 "parser.yy"
     7671    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    76527672    break;
    76537673
     
    76557675
    76567676/* Line 1806 of yacc.c  */
    7657 #line 1835 "parser.yy"
    7658     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7659     break;
    7660 
    7661   case 495:
    7662 
    7663 /* Line 1806 of yacc.c  */
    7664 #line 1840 "parser.yy"
     7677#line 1836 "parser.yy"
    76657678    {
    76667679                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    76697682    break;
    76707683
     7684  case 495:
     7685
     7686/* Line 1806 of yacc.c  */
     7687#line 1841 "parser.yy"
     7688    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7689    break;
     7690
    76717691  case 496:
    76727692
    76737693/* Line 1806 of yacc.c  */
    7674 #line 1845 "parser.yy"
    7675     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7694#line 1843 "parser.yy"
     7695    { (yyval.decl) = 0; }
    76767696    break;
    76777697
     
    76797699
    76807700/* Line 1806 of yacc.c  */
    7681 #line 1847 "parser.yy"
    7682     { (yyval.decl) = 0; }
    7683     break;
    7684 
    7685   case 498:
    7686 
    7687 /* Line 1806 of yacc.c  */
    7688 #line 1852 "parser.yy"
     7701#line 1848 "parser.yy"
    76897702    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76907703    break;
    76917704
     7705  case 499:
     7706
     7707/* Line 1806 of yacc.c  */
     7708#line 1851 "parser.yy"
     7709    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7710    break;
     7711
    76927712  case 500:
    76937713
    76947714/* Line 1806 of yacc.c  */
    7695 #line 1855 "parser.yy"
    7696     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7715#line 1853 "parser.yy"
     7716    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    76977717    break;
    76987718
     
    77007720
    77017721/* Line 1806 of yacc.c  */
    7702 #line 1857 "parser.yy"
    7703     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7722#line 1858 "parser.yy"
     7723    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77047724    break;
    77057725
     
    77077727
    77087728/* Line 1806 of yacc.c  */
     7729#line 1860 "parser.yy"
     7730    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7731    break;
     7732
     7733  case 503:
     7734
     7735/* Line 1806 of yacc.c  */
    77097736#line 1862 "parser.yy"
    7710     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7711     break;
    7712 
    7713   case 503:
    7714 
    7715 /* Line 1806 of yacc.c  */
    7716 #line 1864 "parser.yy"
    7717     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7737    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    77187738    break;
    77197739
     
    77217741
    77227742/* Line 1806 of yacc.c  */
    7723 #line 1866 "parser.yy"
    7724     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7743#line 1867 "parser.yy"
     7744    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    77257745    break;
    77267746
     
    77287748
    77297749/* Line 1806 of yacc.c  */
    7730 #line 1871 "parser.yy"
    7731     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7750#line 1869 "parser.yy"
     7751    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    77327752    break;
    77337753
     
    77357755
    77367756/* Line 1806 of yacc.c  */
    7737 #line 1873 "parser.yy"
    7738     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7739     break;
    7740 
    7741   case 507:
    7742 
    7743 /* Line 1806 of yacc.c  */
    7744 #line 1878 "parser.yy"
     7757#line 1874 "parser.yy"
    77457758    {
    77467759                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    77497762    break;
    77507763
    7751   case 508:
    7752 
    7753 /* Line 1806 of yacc.c  */
    7754 #line 1883 "parser.yy"
     7764  case 507:
     7765
     7766/* Line 1806 of yacc.c  */
     7767#line 1879 "parser.yy"
    77557768    {
    77567769                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    77597772    break;
    77607773
    7761   case 509:
    7762 
    7763 /* Line 1806 of yacc.c  */
    7764 #line 1891 "parser.yy"
     7774  case 508:
     7775
     7776/* Line 1806 of yacc.c  */
     7777#line 1887 "parser.yy"
    77657778    {
    77667779                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    77697782    break;
    77707783
    7771   case 510:
    7772 
    7773 /* Line 1806 of yacc.c  */
    7774 #line 1896 "parser.yy"
     7784  case 509:
     7785
     7786/* Line 1806 of yacc.c  */
     7787#line 1892 "parser.yy"
    77757788    {
    77767789                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77797792    break;
    77807793
    7781   case 511:
    7782 
    7783 /* Line 1806 of yacc.c  */
    7784 #line 1901 "parser.yy"
     7794  case 510:
     7795
     7796/* Line 1806 of yacc.c  */
     7797#line 1897 "parser.yy"
    77857798    {
    77867799                        typedefTable.leaveTrait();
     
    77907803    break;
    77917804
    7792   case 513:
    7793 
    7794 /* Line 1806 of yacc.c  */
    7795 #line 1911 "parser.yy"
     7805  case 512:
     7806
     7807/* Line 1806 of yacc.c  */
     7808#line 1907 "parser.yy"
    77967809    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77977810    break;
    77987811
    7799   case 516:
    7800 
    7801 /* Line 1806 of yacc.c  */
    7802 #line 1921 "parser.yy"
     7812  case 515:
     7813
     7814/* Line 1806 of yacc.c  */
     7815#line 1917 "parser.yy"
    78037816    {
    78047817                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78077820    break;
    78087821
    7809   case 517:
    7810 
    7811 /* Line 1806 of yacc.c  */
    7812 #line 1926 "parser.yy"
     7822  case 516:
     7823
     7824/* Line 1806 of yacc.c  */
     7825#line 1922 "parser.yy"
    78137826    {
    78147827                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78177830    break;
    78187831
    7819   case 518:
    7820 
    7821 /* Line 1806 of yacc.c  */
    7822 #line 1931 "parser.yy"
     7832  case 517:
     7833
     7834/* Line 1806 of yacc.c  */
     7835#line 1927 "parser.yy"
    78237836    {
    78247837                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    78277840    break;
    78287841
    7829   case 519:
    7830 
    7831 /* Line 1806 of yacc.c  */
    7832 #line 1939 "parser.yy"
     7842  case 518:
     7843
     7844/* Line 1806 of yacc.c  */
     7845#line 1935 "parser.yy"
    78337846    {
    78347847                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78377850    break;
    78387851
    7839   case 520:
    7840 
    7841 /* Line 1806 of yacc.c  */
    7842 #line 1944 "parser.yy"
     7852  case 519:
     7853
     7854/* Line 1806 of yacc.c  */
     7855#line 1940 "parser.yy"
    78437856    {
    78447857                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78477860    break;
    78487861
     7862  case 520:
     7863
     7864/* Line 1806 of yacc.c  */
     7865#line 1950 "parser.yy"
     7866    {}
     7867    break;
     7868
    78497869  case 521:
    78507870
    78517871/* Line 1806 of yacc.c  */
    7852 #line 1954 "parser.yy"
    7853     {}
    7854     break;
    7855 
    7856   case 522:
    7857 
    7858 /* Line 1806 of yacc.c  */
    7859 #line 1956 "parser.yy"
     7872#line 1952 "parser.yy"
    78607873    {
    78617874                        if ( theTree ) {
     
    78677880    break;
    78687881
     7882  case 523:
     7883
     7884/* Line 1806 of yacc.c  */
     7885#line 1964 "parser.yy"
     7886    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7887    break;
     7888
    78697889  case 524:
    78707890
    78717891/* Line 1806 of yacc.c  */
    7872 #line 1968 "parser.yy"
    7873     { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7874     break;
    7875 
    7876   case 525:
    7877 
    7878 /* Line 1806 of yacc.c  */
    7879 #line 1973 "parser.yy"
     7892#line 1969 "parser.yy"
    78807893    { (yyval.decl) = 0; }
    78817894    break;
    78827895
     7896  case 528:
     7897
     7898/* Line 1806 of yacc.c  */
     7899#line 1977 "parser.yy"
     7900    {}
     7901    break;
     7902
    78837903  case 529:
    78847904
    78857905/* Line 1806 of yacc.c  */
    7886 #line 1981 "parser.yy"
    7887     {}
    7888     break;
    7889 
    7890   case 530:
    7891 
    7892 /* Line 1806 of yacc.c  */
    7893 #line 1983 "parser.yy"
     7906#line 1979 "parser.yy"
    78947907    {
    78957908                        linkageStack.push( linkage );
     
    78987911    break;
    78997912
    7900   case 531:
    7901 
    7902 /* Line 1806 of yacc.c  */
    7903 #line 1988 "parser.yy"
     7913  case 530:
     7914
     7915/* Line 1806 of yacc.c  */
     7916#line 1984 "parser.yy"
    79047917    {
    79057918                        linkage = linkageStack.top();
     
    79097922    break;
    79107923
    7911   case 532:
    7912 
    7913 /* Line 1806 of yacc.c  */
    7914 #line 1994 "parser.yy"
     7924  case 531:
     7925
     7926/* Line 1806 of yacc.c  */
     7927#line 1990 "parser.yy"
    79157928    { (yyval.decl) = (yyvsp[(2) - (2)].decl)/*->set_extension( true )*/; }
    79167929    break;
    79177930
    7918   case 534:
    7919 
    7920 /* Line 1806 of yacc.c  */
    7921 #line 2004 "parser.yy"
     7931  case 533:
     7932
     7933/* Line 1806 of yacc.c  */
     7934#line 2000 "parser.yy"
    79227935    {
    79237936                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79277940    break;
    79287941
    7929   case 535:
    7930 
    7931 /* Line 1806 of yacc.c  */
    7932 #line 2010 "parser.yy"
     7942  case 534:
     7943
     7944/* Line 1806 of yacc.c  */
     7945#line 2006 "parser.yy"
    79337946    {
    79347947                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79387951    break;
    79397952
    7940   case 536:
    7941 
    7942 /* Line 1806 of yacc.c  */
    7943 #line 2019 "parser.yy"
     7953  case 535:
     7954
     7955/* Line 1806 of yacc.c  */
     7956#line 2015 "parser.yy"
    79447957    {
    79457958                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79497962    break;
    79507963
    7951   case 537:
    7952 
    7953 /* Line 1806 of yacc.c  */
    7954 #line 2025 "parser.yy"
     7964  case 536:
     7965
     7966/* Line 1806 of yacc.c  */
     7967#line 2021 "parser.yy"
    79557968    {
    79567969                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79607973    break;
    79617974
    7962   case 538:
    7963 
    7964 /* Line 1806 of yacc.c  */
    7965 #line 2031 "parser.yy"
     7975  case 537:
     7976
     7977/* Line 1806 of yacc.c  */
     7978#line 2027 "parser.yy"
    79667979    {
    79677980                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79717984    break;
    79727985
    7973   case 539:
    7974 
    7975 /* Line 1806 of yacc.c  */
    7976 #line 2037 "parser.yy"
     7986  case 538:
     7987
     7988/* Line 1806 of yacc.c  */
     7989#line 2033 "parser.yy"
    79777990    {
    79787991                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79827995    break;
    79837996
    7984   case 540:
    7985 
    7986 /* Line 1806 of yacc.c  */
    7987 #line 2043 "parser.yy"
     7997  case 539:
     7998
     7999/* Line 1806 of yacc.c  */
     8000#line 2039 "parser.yy"
    79888001    {
    79898002                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79938006    break;
    79948007
    7995   case 541:
    7996 
    7997 /* Line 1806 of yacc.c  */
    7998 #line 2051 "parser.yy"
     8008  case 540:
     8009
     8010/* Line 1806 of yacc.c  */
     8011#line 2047 "parser.yy"
    79998012    {
    80008013                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80048017    break;
    80058018
    8006   case 542:
    8007 
    8008 /* Line 1806 of yacc.c  */
    8009 #line 2057 "parser.yy"
     8019  case 541:
     8020
     8021/* Line 1806 of yacc.c  */
     8022#line 2053 "parser.yy"
    80108023    {
    80118024                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80158028    break;
    80168029
    8017   case 543:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2065 "parser.yy"
     8030  case 542:
     8031
     8032/* Line 1806 of yacc.c  */
     8033#line 2061 "parser.yy"
    80218034    {
    80228035                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80268039    break;
    80278040
    8028   case 544:
    8029 
    8030 /* Line 1806 of yacc.c  */
    8031 #line 2071 "parser.yy"
     8041  case 543:
     8042
     8043/* Line 1806 of yacc.c  */
     8044#line 2067 "parser.yy"
    80328045    {
    80338046                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80378050    break;
    80388051
    8039   case 548:
    8040 
    8041 /* Line 1806 of yacc.c  */
    8042 #line 2086 "parser.yy"
     8052  case 547:
     8053
     8054/* Line 1806 of yacc.c  */
     8055#line 2082 "parser.yy"
    80438056    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    80448057    break;
    80458058
    8046   case 551:
    8047 
    8048 /* Line 1806 of yacc.c  */
    8049 #line 2096 "parser.yy"
     8059  case 550:
     8060
     8061/* Line 1806 of yacc.c  */
     8062#line 2092 "parser.yy"
    80508063    { (yyval.decl) = 0; }
    80518064    break;
    80528065
     8066  case 553:
     8067
     8068/* Line 1806 of yacc.c  */
     8069#line 2099 "parser.yy"
     8070    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8071    break;
     8072
    80538073  case 554:
    80548074
    80558075/* Line 1806 of yacc.c  */
    8056 #line 2103 "parser.yy"
    8057     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8058     break;
    8059 
    8060   case 555:
    8061 
    8062 /* Line 1806 of yacc.c  */
    8063 #line 2109 "parser.yy"
     8076#line 2105 "parser.yy"
    80648077    { (yyval.decl) = 0; }
    80658078    break;
    80668079
     8080  case 560:
     8081
     8082/* Line 1806 of yacc.c  */
     8083#line 2120 "parser.yy"
     8084    {}
     8085    break;
     8086
    80678087  case 561:
    80688088
    80698089/* Line 1806 of yacc.c  */
    8070 #line 2124 "parser.yy"
     8090#line 2121 "parser.yy"
    80718091    {}
    80728092    break;
     
    80758095
    80768096/* Line 1806 of yacc.c  */
    8077 #line 2125 "parser.yy"
     8097#line 2122 "parser.yy"
    80788098    {}
    80798099    break;
     
    80828102
    80838103/* Line 1806 of yacc.c  */
    8084 #line 2126 "parser.yy"
     8104#line 2123 "parser.yy"
    80858105    {}
    80868106    break;
     
    80898109
    80908110/* Line 1806 of yacc.c  */
    8091 #line 2127 "parser.yy"
    8092     {}
    8093     break;
    8094 
    8095   case 565:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2162 "parser.yy"
     8111#line 2158 "parser.yy"
    80998112    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81008113    break;
    81018114
     8115  case 566:
     8116
     8117/* Line 1806 of yacc.c  */
     8118#line 2161 "parser.yy"
     8119    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8120    break;
     8121
    81028122  case 567:
    81038123
    81048124/* Line 1806 of yacc.c  */
    8105 #line 2165 "parser.yy"
     8125#line 2163 "parser.yy"
    81068126    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81078127    break;
     
    81108130
    81118131/* Line 1806 of yacc.c  */
    8112 #line 2167 "parser.yy"
    8113     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8114     break;
    8115 
    8116   case 569:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2172 "parser.yy"
     8132#line 2168 "parser.yy"
    81208133    {
    81218134                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    81248137    break;
    81258138
     8139  case 569:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2173 "parser.yy"
     8143    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8144    break;
     8145
    81268146  case 570:
    81278147
    81288148/* Line 1806 of yacc.c  */
    8129 #line 2177 "parser.yy"
     8149#line 2178 "parser.yy"
     8150    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8151    break;
     8152
     8153  case 571:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2180 "parser.yy"
     8157    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8158    break;
     8159
     8160  case 572:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2182 "parser.yy"
    81308164    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81318165    break;
    81328166
    8133   case 571:
    8134 
    8135 /* Line 1806 of yacc.c  */
    8136 #line 2182 "parser.yy"
     8167  case 573:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2187 "parser.yy"
     8171    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8172    break;
     8173
     8174  case 574:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2189 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8179    break;
     8180
     8181  case 575:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2191 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8186    break;
     8187
     8188  case 576:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2193 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8193    break;
     8194
     8195  case 577:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2198 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8200    break;
     8201
     8202  case 578:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2200 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8207    break;
     8208
     8209  case 579:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2210 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8214    break;
     8215
     8216  case 581:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2213 "parser.yy"
     8220    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8221    break;
     8222
     8223  case 582:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2218 "parser.yy"
     8227    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8228    break;
     8229
     8230  case 583:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2220 "parser.yy"
     8234    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8235    break;
     8236
     8237  case 584:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2222 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8242    break;
     8243
     8244  case 585:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2227 "parser.yy"
    81378248    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81388249    break;
    81398250
    8140   case 572:
    8141 
    8142 /* Line 1806 of yacc.c  */
    8143 #line 2184 "parser.yy"
     8251  case 586:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2229 "parser.yy"
    81448255    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81458256    break;
    81468257
    8147   case 573:
    8148 
    8149 /* Line 1806 of yacc.c  */
    8150 #line 2186 "parser.yy"
     8258  case 587:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2231 "parser.yy"
    81518262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81528263    break;
    81538264
    8154   case 574:
    8155 
    8156 /* Line 1806 of yacc.c  */
    8157 #line 2191 "parser.yy"
     8265  case 588:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2236 "parser.yy"
     8269    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8270    break;
     8271
     8272  case 589:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2238 "parser.yy"
     8276    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8277    break;
     8278
     8279  case 590:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2240 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8284    break;
     8285
     8286  case 594:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2255 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8291    break;
     8292
     8293  case 595:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2257 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8298    break;
     8299
     8300  case 596:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2259 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8305    break;
     8306
     8307  case 597:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2264 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8312    break;
     8313
     8314  case 598:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2266 "parser.yy"
     8318    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8319    break;
     8320
     8321  case 599:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2268 "parser.yy"
     8325    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8326    break;
     8327
     8328  case 600:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2273 "parser.yy"
     8332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8333    break;
     8334
     8335  case 601:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2275 "parser.yy"
     8339    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8340    break;
     8341
     8342  case 602:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2277 "parser.yy"
     8346    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8347    break;
     8348
     8349  case 603:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2292 "parser.yy"
     8353    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8354    break;
     8355
     8356  case 605:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2295 "parser.yy"
     8360    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8361    break;
     8362
     8363  case 606:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2297 "parser.yy"
     8367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8368    break;
     8369
     8370  case 608:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2303 "parser.yy"
     8374    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8375    break;
     8376
     8377  case 609:
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2308 "parser.yy"
     8381    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8382    break;
     8383
     8384  case 610:
     8385
     8386/* Line 1806 of yacc.c  */
     8387#line 2310 "parser.yy"
     8388    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8389    break;
     8390
     8391  case 611:
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2312 "parser.yy"
     8395    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8396    break;
     8397
     8398  case 612:
     8399
     8400/* Line 1806 of yacc.c  */
     8401#line 2317 "parser.yy"
    81588402    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81598403    break;
    81608404
    8161   case 575:
    8162 
    8163 /* Line 1806 of yacc.c  */
    8164 #line 2193 "parser.yy"
     8405  case 613:
     8406
     8407/* Line 1806 of yacc.c  */
     8408#line 2319 "parser.yy"
    81658409    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81668410    break;
    81678411
    8168   case 576:
    8169 
    8170 /* Line 1806 of yacc.c  */
    8171 #line 2195 "parser.yy"
     8412  case 614:
     8413
     8414/* Line 1806 of yacc.c  */
     8415#line 2321 "parser.yy"
    81728416    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81738417    break;
    81748418
    8175   case 577:
    8176 
    8177 /* Line 1806 of yacc.c  */
    8178 #line 2197 "parser.yy"
     8419  case 615:
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2323 "parser.yy"
    81798423    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81808424    break;
    81818425
    8182   case 578:
    8183 
    8184 /* Line 1806 of yacc.c  */
    8185 #line 2202 "parser.yy"
     8426  case 616:
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2328 "parser.yy"
     8430    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8431    break;
     8432
     8433  case 617:
     8434
     8435/* Line 1806 of yacc.c  */
     8436#line 2330 "parser.yy"
    81868437    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81878438    break;
    81888439
    8189   case 579:
    8190 
    8191 /* Line 1806 of yacc.c  */
    8192 #line 2204 "parser.yy"
     8440  case 618:
     8441
     8442/* Line 1806 of yacc.c  */
     8443#line 2332 "parser.yy"
    81938444    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81948445    break;
    81958446
    8196   case 580:
    8197 
    8198 /* Line 1806 of yacc.c  */
    8199 #line 2214 "parser.yy"
     8447  case 619:
     8448
     8449/* Line 1806 of yacc.c  */
     8450#line 2342 "parser.yy"
    82008451    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82018452    break;
    82028453
    8203   case 582:
    8204 
    8205 /* Line 1806 of yacc.c  */
    8206 #line 2217 "parser.yy"
     8454  case 621:
     8455
     8456/* Line 1806 of yacc.c  */
     8457#line 2345 "parser.yy"
    82078458    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82088459    break;
    82098460
    8210   case 583:
    8211 
    8212 /* Line 1806 of yacc.c  */
    8213 #line 2222 "parser.yy"
     8461  case 622:
     8462
     8463/* Line 1806 of yacc.c  */
     8464#line 2347 "parser.yy"
     8465    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8466    break;
     8467
     8468  case 623:
     8469
     8470/* Line 1806 of yacc.c  */
     8471#line 2352 "parser.yy"
     8472    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8473    break;
     8474
     8475  case 624:
     8476
     8477/* Line 1806 of yacc.c  */
     8478#line 2354 "parser.yy"
     8479    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8480    break;
     8481
     8482  case 625:
     8483
     8484/* Line 1806 of yacc.c  */
     8485#line 2356 "parser.yy"
     8486    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8487    break;
     8488
     8489  case 626:
     8490
     8491/* Line 1806 of yacc.c  */
     8492#line 2361 "parser.yy"
     8493    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8494    break;
     8495
     8496  case 627:
     8497
     8498/* Line 1806 of yacc.c  */
     8499#line 2363 "parser.yy"
     8500    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8501    break;
     8502
     8503  case 628:
     8504
     8505/* Line 1806 of yacc.c  */
     8506#line 2365 "parser.yy"
     8507    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8508    break;
     8509
     8510  case 629:
     8511
     8512/* Line 1806 of yacc.c  */
     8513#line 2367 "parser.yy"
     8514    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8515    break;
     8516
     8517  case 630:
     8518
     8519/* Line 1806 of yacc.c  */
     8520#line 2372 "parser.yy"
    82148521    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82158522    break;
    82168523
    8217   case 584:
    8218 
    8219 /* Line 1806 of yacc.c  */
    8220 #line 2224 "parser.yy"
     8524  case 631:
     8525
     8526/* Line 1806 of yacc.c  */
     8527#line 2374 "parser.yy"
    82218528    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82228529    break;
    82238530
    8224   case 585:
    8225 
    8226 /* Line 1806 of yacc.c  */
    8227 #line 2226 "parser.yy"
     8531  case 632:
     8532
     8533/* Line 1806 of yacc.c  */
     8534#line 2376 "parser.yy"
    82288535    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82298536    break;
    82308537
    8231   case 586:
    8232 
    8233 /* Line 1806 of yacc.c  */
    8234 #line 2231 "parser.yy"
    8235     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8236     break;
    8237 
    8238   case 587:
    8239 
    8240 /* Line 1806 of yacc.c  */
    8241 #line 2233 "parser.yy"
    8242     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8243     break;
    8244 
    8245   case 588:
    8246 
    8247 /* Line 1806 of yacc.c  */
    8248 #line 2235 "parser.yy"
    8249     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8250     break;
    8251 
    8252   case 589:
    8253 
    8254 /* Line 1806 of yacc.c  */
    8255 #line 2240 "parser.yy"
    8256     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8257     break;
    8258 
    8259   case 590:
    8260 
    8261 /* Line 1806 of yacc.c  */
    8262 #line 2242 "parser.yy"
    8263     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8264     break;
    8265 
    8266   case 591:
    8267 
    8268 /* Line 1806 of yacc.c  */
    8269 #line 2244 "parser.yy"
    8270     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8271     break;
    8272 
    8273   case 595:
    8274 
    8275 /* Line 1806 of yacc.c  */
    8276 #line 2259 "parser.yy"
    8277     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8278     break;
    8279 
    8280   case 596:
    8281 
    8282 /* Line 1806 of yacc.c  */
    8283 #line 2261 "parser.yy"
    8284     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8285     break;
    8286 
    8287   case 597:
    8288 
    8289 /* Line 1806 of yacc.c  */
    8290 #line 2263 "parser.yy"
    8291     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8292     break;
    8293 
    8294   case 598:
    8295 
    8296 /* Line 1806 of yacc.c  */
    8297 #line 2268 "parser.yy"
    8298     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8299     break;
    8300 
    8301   case 599:
    8302 
    8303 /* Line 1806 of yacc.c  */
    8304 #line 2270 "parser.yy"
    8305     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8306     break;
    8307 
    8308   case 600:
    8309 
    8310 /* Line 1806 of yacc.c  */
    8311 #line 2272 "parser.yy"
    8312     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8313     break;
    8314 
    8315   case 601:
    8316 
    8317 /* Line 1806 of yacc.c  */
    8318 #line 2277 "parser.yy"
    8319     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8320     break;
    8321 
    8322   case 602:
    8323 
    8324 /* Line 1806 of yacc.c  */
    8325 #line 2279 "parser.yy"
    8326     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8327     break;
    8328 
    8329   case 603:
    8330 
    8331 /* Line 1806 of yacc.c  */
    8332 #line 2281 "parser.yy"
    8333     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8334     break;
    8335 
    8336   case 604:
    8337 
    8338 /* Line 1806 of yacc.c  */
    8339 #line 2296 "parser.yy"
     8538  case 633:
     8539
     8540/* Line 1806 of yacc.c  */
     8541#line 2407 "parser.yy"
    83408542    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83418543    break;
    83428544
    8343   case 606:
    8344 
    8345 /* Line 1806 of yacc.c  */
    8346 #line 2299 "parser.yy"
     8545  case 635:
     8546
     8547/* Line 1806 of yacc.c  */
     8548#line 2410 "parser.yy"
    83478549    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83488550    break;
    83498551
    8350   case 607:
    8351 
    8352 /* Line 1806 of yacc.c  */
    8353 #line 2301 "parser.yy"
     8552  case 636:
     8553
     8554/* Line 1806 of yacc.c  */
     8555#line 2412 "parser.yy"
    83548556    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83558557    break;
    83568558
    8357   case 609:
    8358 
    8359 /* Line 1806 of yacc.c  */
    8360 #line 2307 "parser.yy"
    8361     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8362     break;
    8363 
    8364   case 610:
    8365 
    8366 /* Line 1806 of yacc.c  */
    8367 #line 2312 "parser.yy"
    8368     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8369     break;
    8370 
    8371   case 611:
    8372 
    8373 /* Line 1806 of yacc.c  */
    8374 #line 2314 "parser.yy"
    8375     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8376     break;
    8377 
    8378   case 612:
    8379 
    8380 /* Line 1806 of yacc.c  */
    8381 #line 2316 "parser.yy"
    8382     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8383     break;
    8384 
    8385   case 613:
    8386 
    8387 /* Line 1806 of yacc.c  */
    8388 #line 2321 "parser.yy"
    8389     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8390     break;
    8391 
    8392   case 614:
    8393 
    8394 /* Line 1806 of yacc.c  */
    8395 #line 2323 "parser.yy"
    8396     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8397     break;
    8398 
    8399   case 615:
    8400 
    8401 /* Line 1806 of yacc.c  */
    8402 #line 2325 "parser.yy"
    8403     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8404     break;
    8405 
    8406   case 616:
    8407 
    8408 /* Line 1806 of yacc.c  */
    8409 #line 2327 "parser.yy"
    8410     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8411     break;
    8412 
    8413   case 617:
    8414 
    8415 /* Line 1806 of yacc.c  */
    8416 #line 2332 "parser.yy"
    8417     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8418     break;
    8419 
    8420   case 618:
    8421 
    8422 /* Line 1806 of yacc.c  */
    8423 #line 2334 "parser.yy"
    8424     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8425     break;
    8426 
    8427   case 619:
    8428 
    8429 /* Line 1806 of yacc.c  */
    8430 #line 2336 "parser.yy"
    8431     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8432     break;
    8433 
    8434   case 620:
    8435 
    8436 /* Line 1806 of yacc.c  */
    8437 #line 2346 "parser.yy"
    8438     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8439     break;
    8440 
    8441   case 622:
    8442 
    8443 /* Line 1806 of yacc.c  */
    8444 #line 2349 "parser.yy"
    8445     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8446     break;
    8447 
    8448   case 623:
    8449 
    8450 /* Line 1806 of yacc.c  */
    8451 #line 2351 "parser.yy"
    8452     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8453     break;
    8454 
    8455   case 624:
    8456 
    8457 /* Line 1806 of yacc.c  */
    8458 #line 2356 "parser.yy"
    8459     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8460     break;
    8461 
    8462   case 625:
    8463 
    8464 /* Line 1806 of yacc.c  */
    8465 #line 2358 "parser.yy"
    8466     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8467     break;
    8468 
    8469   case 626:
    8470 
    8471 /* Line 1806 of yacc.c  */
    8472 #line 2360 "parser.yy"
    8473     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8474     break;
    8475 
    8476   case 627:
    8477 
    8478 /* Line 1806 of yacc.c  */
    8479 #line 2365 "parser.yy"
    8480     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8481     break;
    8482 
    8483   case 628:
    8484 
    8485 /* Line 1806 of yacc.c  */
    8486 #line 2367 "parser.yy"
    8487     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8488     break;
    8489 
    8490   case 629:
    8491 
    8492 /* Line 1806 of yacc.c  */
    8493 #line 2369 "parser.yy"
    8494     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8495     break;
    8496 
    8497   case 630:
    8498 
    8499 /* Line 1806 of yacc.c  */
    8500 #line 2371 "parser.yy"
    8501     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8502     break;
    8503 
    8504   case 631:
    8505 
    8506 /* Line 1806 of yacc.c  */
    8507 #line 2376 "parser.yy"
    8508     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8509     break;
    8510 
    8511   case 632:
    8512 
    8513 /* Line 1806 of yacc.c  */
    8514 #line 2378 "parser.yy"
    8515     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8516     break;
    8517 
    8518   case 633:
    8519 
    8520 /* Line 1806 of yacc.c  */
    8521 #line 2380 "parser.yy"
    8522     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8523     break;
    8524 
    8525   case 634:
    8526 
    8527 /* Line 1806 of yacc.c  */
    8528 #line 2411 "parser.yy"
    8529     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8530     break;
    8531 
    8532   case 636:
    8533 
    8534 /* Line 1806 of yacc.c  */
    8535 #line 2414 "parser.yy"
    8536     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8537     break;
    8538 
    85398559  case 637:
    85408560
    85418561/* Line 1806 of yacc.c  */
    8542 #line 2416 "parser.yy"
    8543     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8544     break;
    8545 
    8546   case 638:
    8547 
    8548 /* Line 1806 of yacc.c  */
    8549 #line 2421 "parser.yy"
     8562#line 2417 "parser.yy"
    85508563    {
    85518564                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85548567    break;
    85558568
    8556   case 639:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2426 "parser.yy"
     8569  case 638:
     8570
     8571/* Line 1806 of yacc.c  */
     8572#line 2422 "parser.yy"
    85608573    {
    85618574                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85648577    break;
    85658578
     8579  case 639:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2430 "parser.yy"
     8583    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8584    break;
     8585
    85668586  case 640:
    85678587
    85688588/* Line 1806 of yacc.c  */
     8589#line 2432 "parser.yy"
     8590    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8591    break;
     8592
     8593  case 641:
     8594
     8595/* Line 1806 of yacc.c  */
    85698596#line 2434 "parser.yy"
     8597    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8598    break;
     8599
     8600  case 642:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2439 "parser.yy"
     8604    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8605    break;
     8606
     8607  case 643:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2441 "parser.yy"
     8611    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8612    break;
     8613
     8614  case 644:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2446 "parser.yy"
     8618    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8619    break;
     8620
     8621  case 645:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2448 "parser.yy"
     8625    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8626    break;
     8627
     8628  case 647:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2463 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8633    break;
     8634
     8635  case 648:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2465 "parser.yy"
     8639    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8640    break;
     8641
     8642  case 649:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2470 "parser.yy"
     8646    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8647    break;
     8648
     8649  case 650:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2472 "parser.yy"
     8653    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8654    break;
     8655
     8656  case 651:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2474 "parser.yy"
    85708660    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85718661    break;
    85728662
    8573   case 641:
    8574 
    8575 /* Line 1806 of yacc.c  */
    8576 #line 2436 "parser.yy"
     8663  case 652:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2476 "parser.yy"
    85778667    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85788668    break;
    85798669
    8580   case 642:
    8581 
    8582 /* Line 1806 of yacc.c  */
    8583 #line 2438 "parser.yy"
     8670  case 653:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2478 "parser.yy"
    85848674    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85858675    break;
    85868676
    8587   case 643:
    8588 
    8589 /* Line 1806 of yacc.c  */
    8590 #line 2443 "parser.yy"
     8677  case 655:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2484 "parser.yy"
     8681    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8682    break;
     8683
     8684  case 656:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2486 "parser.yy"
     8688    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8689    break;
     8690
     8691  case 657:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2488 "parser.yy"
     8695    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8696    break;
     8697
     8698  case 658:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2493 "parser.yy"
     8702    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8703    break;
     8704
     8705  case 659:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2495 "parser.yy"
     8709    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8710    break;
     8711
     8712  case 660:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2497 "parser.yy"
     8716    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8717    break;
     8718
     8719  case 661:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2503 "parser.yy"
     8723    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8724    break;
     8725
     8726  case 662:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2505 "parser.yy"
     8730    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8731    break;
     8732
     8733  case 664:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2511 "parser.yy"
     8737    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8738    break;
     8739
     8740  case 665:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2513 "parser.yy"
     8744    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8745    break;
     8746
     8747  case 666:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2515 "parser.yy"
     8751    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8752    break;
     8753
     8754  case 667:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2517 "parser.yy"
     8758    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8759    break;
     8760
     8761  case 669:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2532 "parser.yy"
     8765    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8766    break;
     8767
     8768  case 670:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2534 "parser.yy"
     8772    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8773    break;
     8774
     8775  case 671:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2539 "parser.yy"
     8779    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8780    break;
     8781
     8782  case 672:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2541 "parser.yy"
     8786    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8787    break;
     8788
     8789  case 673:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2543 "parser.yy"
     8793    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8794    break;
     8795
     8796  case 674:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2545 "parser.yy"
     8800    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8801    break;
     8802
     8803  case 675:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2547 "parser.yy"
     8807    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8808    break;
     8809
     8810  case 677:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2553 "parser.yy"
     8814    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8815    break;
     8816
     8817  case 678:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2555 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8822    break;
     8823
     8824  case 679:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2557 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8829    break;
     8830
     8831  case 680:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2562 "parser.yy"
     8835    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8836    break;
     8837
     8838  case 681:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2564 "parser.yy"
     8842    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8843    break;
     8844
     8845  case 682:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2566 "parser.yy"
     8849    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8850    break;
     8851
     8852  case 684:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2573 "parser.yy"
    85918856    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85928857    break;
    85938858
    8594   case 644:
    8595 
    8596 /* Line 1806 of yacc.c  */
    8597 #line 2445 "parser.yy"
     8859  case 686:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2584 "parser.yy"
     8863    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8864    break;
     8865
     8866  case 687:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2587 "parser.yy"
     8870    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8871    break;
     8872
     8873  case 688:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2589 "parser.yy"
     8877    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8878    break;
     8879
     8880  case 689:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2592 "parser.yy"
     8884    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8885    break;
     8886
     8887  case 690:
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2594 "parser.yy"
     8891    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8892    break;
     8893
     8894  case 691:
     8895
     8896/* Line 1806 of yacc.c  */
     8897#line 2596 "parser.yy"
     8898    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8899    break;
     8900
     8901  case 693:
     8902
     8903/* Line 1806 of yacc.c  */
     8904#line 2610 "parser.yy"
     8905    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8906    break;
     8907
     8908  case 694:
     8909
     8910/* Line 1806 of yacc.c  */
     8911#line 2612 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8913    break;
     8914
     8915  case 695:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2617 "parser.yy"
     8919    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8920    break;
     8921
     8922  case 696:
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2619 "parser.yy"
     8926    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8927    break;
     8928
     8929  case 697:
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2621 "parser.yy"
     8933    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8934    break;
     8935
     8936  case 698:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2623 "parser.yy"
     8940    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8941    break;
     8942
     8943  case 699:
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2625 "parser.yy"
     8947    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8948    break;
     8949
     8950  case 701:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2631 "parser.yy"
    85988954    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85998955    break;
    86008956
    8601   case 645:
    8602 
    8603 /* Line 1806 of yacc.c  */
    8604 #line 2450 "parser.yy"
    8605     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8606     break;
    8607 
    8608   case 646:
    8609 
    8610 /* Line 1806 of yacc.c  */
    8611 #line 2452 "parser.yy"
     8957  case 702:
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2633 "parser.yy"
     8961    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8962    break;
     8963
     8964  case 703:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2635 "parser.yy"
     8968    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8969    break;
     8970
     8971  case 704:
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2640 "parser.yy"
    86128975    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86138976    break;
    86148977
    8615   case 648:
    8616 
    8617 /* Line 1806 of yacc.c  */
    8618 #line 2467 "parser.yy"
    8619     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8620     break;
    8621 
    8622   case 649:
    8623 
    8624 /* Line 1806 of yacc.c  */
    8625 #line 2469 "parser.yy"
    8626     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8627     break;
    8628 
    8629   case 650:
    8630 
    8631 /* Line 1806 of yacc.c  */
    8632 #line 2474 "parser.yy"
    8633     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8634     break;
    8635 
    8636   case 651:
    8637 
    8638 /* Line 1806 of yacc.c  */
    8639 #line 2476 "parser.yy"
    8640     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8641     break;
    8642 
    8643   case 652:
    8644 
    8645 /* Line 1806 of yacc.c  */
    8646 #line 2478 "parser.yy"
    8647     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8648     break;
    8649 
    8650   case 653:
    8651 
    8652 /* Line 1806 of yacc.c  */
    8653 #line 2480 "parser.yy"
    8654     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8655     break;
    8656 
    8657   case 654:
    8658 
    8659 /* Line 1806 of yacc.c  */
    8660 #line 2482 "parser.yy"
     8978  case 705:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2642 "parser.yy"
    86618982    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86628983    break;
    86638984
    8664   case 656:
    8665 
    8666 /* Line 1806 of yacc.c  */
    8667 #line 2488 "parser.yy"
    8668     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8669     break;
    8670 
    8671   case 657:
    8672 
    8673 /* Line 1806 of yacc.c  */
    8674 #line 2490 "parser.yy"
    8675     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8676     break;
    8677 
    8678   case 658:
    8679 
    8680 /* Line 1806 of yacc.c  */
    8681 #line 2492 "parser.yy"
    8682     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8683     break;
    8684 
    8685   case 659:
    8686 
    8687 /* Line 1806 of yacc.c  */
    8688 #line 2497 "parser.yy"
    8689     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8690     break;
    8691 
    8692   case 660:
    8693 
    8694 /* Line 1806 of yacc.c  */
    8695 #line 2499 "parser.yy"
    8696     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8697     break;
    8698 
    8699   case 661:
    8700 
    8701 /* Line 1806 of yacc.c  */
    8702 #line 2501 "parser.yy"
    8703     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8704     break;
    8705 
    8706   case 662:
    8707 
    8708 /* Line 1806 of yacc.c  */
    8709 #line 2507 "parser.yy"
    8710     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8711     break;
    8712 
    8713   case 663:
    8714 
    8715 /* Line 1806 of yacc.c  */
    8716 #line 2509 "parser.yy"
    8717     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8718     break;
    8719 
    8720   case 665:
    8721 
    8722 /* Line 1806 of yacc.c  */
    8723 #line 2515 "parser.yy"
    8724     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8725     break;
    8726 
    8727   case 666:
    8728 
    8729 /* Line 1806 of yacc.c  */
    8730 #line 2517 "parser.yy"
    8731     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8732     break;
    8733 
    8734   case 667:
    8735 
    8736 /* Line 1806 of yacc.c  */
    8737 #line 2519 "parser.yy"
    8738     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8739     break;
    8740 
    8741   case 668:
    8742 
    8743 /* Line 1806 of yacc.c  */
    8744 #line 2521 "parser.yy"
    8745     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8746     break;
    8747 
    8748   case 670:
    8749 
    8750 /* Line 1806 of yacc.c  */
    8751 #line 2536 "parser.yy"
    8752     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8753     break;
    8754 
    8755   case 671:
    8756 
    8757 /* Line 1806 of yacc.c  */
    8758 #line 2538 "parser.yy"
    8759     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8760     break;
    8761 
    8762   case 672:
    8763 
    8764 /* Line 1806 of yacc.c  */
    8765 #line 2543 "parser.yy"
    8766     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8767     break;
    8768 
    8769   case 673:
    8770 
    8771 /* Line 1806 of yacc.c  */
    8772 #line 2545 "parser.yy"
    8773     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8774     break;
    8775 
    8776   case 674:
    8777 
    8778 /* Line 1806 of yacc.c  */
    8779 #line 2547 "parser.yy"
    8780     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8781     break;
    8782 
    8783   case 675:
    8784 
    8785 /* Line 1806 of yacc.c  */
    8786 #line 2549 "parser.yy"
    8787     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8788     break;
    8789 
    8790   case 676:
    8791 
    8792 /* Line 1806 of yacc.c  */
    8793 #line 2551 "parser.yy"
    8794     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8795     break;
    8796 
    8797   case 678:
    8798 
    8799 /* Line 1806 of yacc.c  */
    8800 #line 2557 "parser.yy"
    8801     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8802     break;
    8803 
    8804   case 679:
    8805 
    8806 /* Line 1806 of yacc.c  */
    8807 #line 2559 "parser.yy"
    8808     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8809     break;
    8810 
    8811   case 680:
    8812 
    8813 /* Line 1806 of yacc.c  */
    8814 #line 2561 "parser.yy"
    8815     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8816     break;
    8817 
    8818   case 681:
    8819 
    8820 /* Line 1806 of yacc.c  */
    8821 #line 2566 "parser.yy"
    8822     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8823     break;
    8824 
    8825   case 682:
    8826 
    8827 /* Line 1806 of yacc.c  */
    8828 #line 2568 "parser.yy"
    8829     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8830     break;
    8831 
    8832   case 683:
    8833 
    8834 /* Line 1806 of yacc.c  */
    8835 #line 2570 "parser.yy"
    8836     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8837     break;
    8838 
    8839   case 685:
    8840 
    8841 /* Line 1806 of yacc.c  */
    8842 #line 2577 "parser.yy"
    8843     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8844     break;
    8845 
    8846   case 687:
    8847 
    8848 /* Line 1806 of yacc.c  */
    8849 #line 2588 "parser.yy"
    8850     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8851     break;
    8852 
    8853   case 688:
    8854 
    8855 /* Line 1806 of yacc.c  */
    8856 #line 2591 "parser.yy"
    8857     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8858     break;
    8859 
    8860   case 689:
    8861 
    8862 /* Line 1806 of yacc.c  */
    8863 #line 2593 "parser.yy"
    8864     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8865     break;
    8866 
    8867   case 690:
    8868 
    8869 /* Line 1806 of yacc.c  */
    8870 #line 2596 "parser.yy"
    8871     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8872     break;
    8873 
    8874   case 691:
    8875 
    8876 /* Line 1806 of yacc.c  */
    8877 #line 2598 "parser.yy"
    8878     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8879     break;
    8880 
    8881   case 692:
    8882 
    8883 /* Line 1806 of yacc.c  */
    8884 #line 2600 "parser.yy"
    8885     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8886     break;
    8887 
    8888   case 694:
    8889 
    8890 /* Line 1806 of yacc.c  */
    8891 #line 2614 "parser.yy"
    8892     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8893     break;
    8894 
    8895   case 695:
    8896 
    8897 /* Line 1806 of yacc.c  */
    8898 #line 2616 "parser.yy"
    8899     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8900     break;
    8901 
    8902   case 696:
    8903 
    8904 /* Line 1806 of yacc.c  */
    8905 #line 2621 "parser.yy"
    8906     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8907     break;
    8908 
    8909   case 697:
    8910 
    8911 /* Line 1806 of yacc.c  */
    8912 #line 2623 "parser.yy"
    8913     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8914     break;
    8915 
    8916   case 698:
    8917 
    8918 /* Line 1806 of yacc.c  */
    8919 #line 2625 "parser.yy"
    8920     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8921     break;
    8922 
    8923   case 699:
    8924 
    8925 /* Line 1806 of yacc.c  */
    8926 #line 2627 "parser.yy"
    8927     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8928     break;
    8929 
    8930   case 700:
    8931 
    8932 /* Line 1806 of yacc.c  */
    8933 #line 2629 "parser.yy"
    8934     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8935     break;
    8936 
    8937   case 702:
    8938 
    8939 /* Line 1806 of yacc.c  */
    8940 #line 2635 "parser.yy"
    8941     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8942     break;
    8943 
    8944   case 703:
    8945 
    8946 /* Line 1806 of yacc.c  */
    8947 #line 2637 "parser.yy"
    8948     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8949     break;
    8950 
    8951   case 704:
    8952 
    8953 /* Line 1806 of yacc.c  */
    8954 #line 2639 "parser.yy"
    8955     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8956     break;
    8957 
    8958   case 705:
    8959 
    8960 /* Line 1806 of yacc.c  */
    8961 #line 2644 "parser.yy"
    8962     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8963     break;
    8964 
    8965   case 706:
    8966 
    8967 /* Line 1806 of yacc.c  */
    8968 #line 2646 "parser.yy"
    8969     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8970     break;
    8971 
    8972   case 709:
    8973 
    8974 /* Line 1806 of yacc.c  */
    8975 #line 2656 "parser.yy"
     8985  case 708:
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2652 "parser.yy"
    89768989    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89778990    break;
    89788991
     8992  case 711:
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2662 "parser.yy"
     8996    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8997    break;
     8998
    89798999  case 712:
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2664 "parser.yy"
     9003    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9004    break;
     9005
     9006  case 713:
    89809007
    89819008/* Line 1806 of yacc.c  */
     
    89849011    break;
    89859012
    8986   case 713:
     9013  case 714:
    89879014
    89889015/* Line 1806 of yacc.c  */
     
    89919018    break;
    89929019
    8993   case 714:
     9020  case 715:
    89949021
    89959022/* Line 1806 of yacc.c  */
     
    89989025    break;
    89999026
    9000   case 715:
     9027  case 716:
    90019028
    90029029/* Line 1806 of yacc.c  */
     
    90059032    break;
    90069033
    9007   case 716:
    9008 
    9009 /* Line 1806 of yacc.c  */
    9010 #line 2674 "parser.yy"
    9011     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9012     break;
    9013 
    90149034  case 717:
    90159035
    90169036/* Line 1806 of yacc.c  */
    9017 #line 2676 "parser.yy"
    9018     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9037#line 2679 "parser.yy"
     9038    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90199039    break;
    90209040
     
    90229042
    90239043/* Line 1806 of yacc.c  */
     9044#line 2681 "parser.yy"
     9045    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9046    break;
     9047
     9048  case 719:
     9049
     9050/* Line 1806 of yacc.c  */
    90249051#line 2683 "parser.yy"
     9052    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9053    break;
     9054
     9055  case 720:
     9056
     9057/* Line 1806 of yacc.c  */
     9058#line 2685 "parser.yy"
     9059    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9060    break;
     9061
     9062  case 721:
     9063
     9064/* Line 1806 of yacc.c  */
     9065#line 2687 "parser.yy"
     9066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9067    break;
     9068
     9069  case 722:
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2689 "parser.yy"
    90259073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90269074    break;
    90279075
    9028   case 719:
    9029 
    9030 /* Line 1806 of yacc.c  */
    9031 #line 2685 "parser.yy"
    9032     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9033     break;
    9034 
    9035   case 720:
    9036 
    9037 /* Line 1806 of yacc.c  */
    9038 #line 2687 "parser.yy"
    9039     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9040     break;
    9041 
    9042   case 721:
    9043 
    9044 /* Line 1806 of yacc.c  */
    9045 #line 2689 "parser.yy"
    9046     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9047     break;
    9048 
    9049   case 722:
     9076  case 723:
    90509077
    90519078/* Line 1806 of yacc.c  */
     
    90549081    break;
    90559082
    9056   case 723:
     9083  case 724:
    90579084
    90589085/* Line 1806 of yacc.c  */
    90599086#line 2693 "parser.yy"
    9060     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9061     break;
    9062 
    9063   case 724:
     9087    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9088    break;
     9089
     9090  case 725:
    90649091
    90659092/* Line 1806 of yacc.c  */
    90669093#line 2695 "parser.yy"
     9094    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9095    break;
     9096
     9097  case 726:
     9098
     9099/* Line 1806 of yacc.c  */
     9100#line 2697 "parser.yy"
    90679101    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90689102    break;
    90699103
    9070   case 725:
    9071 
    9072 /* Line 1806 of yacc.c  */
    9073 #line 2697 "parser.yy"
    9074     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9075     break;
    9076 
    9077   case 726:
    9078 
    9079 /* Line 1806 of yacc.c  */
    9080 #line 2699 "parser.yy"
    9081     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9082     break;
    9083 
    90849104  case 727:
    90859105
    90869106/* Line 1806 of yacc.c  */
    9087 #line 2701 "parser.yy"
    9088     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9107#line 2702 "parser.yy"
     9108    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90899109    break;
    90909110
     
    90929112
    90939113/* Line 1806 of yacc.c  */
    9094 #line 2706 "parser.yy"
    9095     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9114#line 2704 "parser.yy"
     9115    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90969116    break;
    90979117
     
    90999119
    91009120/* Line 1806 of yacc.c  */
    9101 #line 2708 "parser.yy"
    9102     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9121#line 2709 "parser.yy"
     9122    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    91039123    break;
    91049124
     
    91069126
    91079127/* Line 1806 of yacc.c  */
    9108 #line 2713 "parser.yy"
    9109     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9110     break;
    9111 
    9112   case 731:
    9113 
    9114 /* Line 1806 of yacc.c  */
    9115 #line 2715 "parser.yy"
     9128#line 2711 "parser.yy"
    91169129    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    91179130    break;
    91189131
    9119   case 733:
    9120 
    9121 /* Line 1806 of yacc.c  */
    9122 #line 2742 "parser.yy"
     9132  case 732:
     9133
     9134/* Line 1806 of yacc.c  */
     9135#line 2738 "parser.yy"
    91239136    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    91249137    break;
    91259138
     9139  case 736:
     9140
     9141/* Line 1806 of yacc.c  */
     9142#line 2749 "parser.yy"
     9143    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9144    break;
     9145
    91269146  case 737:
     9147
     9148/* Line 1806 of yacc.c  */
     9149#line 2751 "parser.yy"
     9150    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9151    break;
     9152
     9153  case 738:
    91279154
    91289155/* Line 1806 of yacc.c  */
     
    91319158    break;
    91329159
    9133   case 738:
     9160  case 739:
    91349161
    91359162/* Line 1806 of yacc.c  */
     
    91389165    break;
    91399166
    9140   case 739:
     9167  case 740:
    91419168
    91429169/* Line 1806 of yacc.c  */
     
    91459172    break;
    91469173
    9147   case 740:
     9174  case 741:
    91489175
    91499176/* Line 1806 of yacc.c  */
     
    91529179    break;
    91539180
    9154   case 741:
    9155 
    9156 /* Line 1806 of yacc.c  */
    9157 #line 2761 "parser.yy"
    9158     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9159     break;
    9160 
    91619181  case 742:
    91629182
    91639183/* Line 1806 of yacc.c  */
    9164 #line 2763 "parser.yy"
    9165     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9184#line 2766 "parser.yy"
     9185    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91669186    break;
    91679187
     
    91699189
    91709190/* Line 1806 of yacc.c  */
     9191#line 2768 "parser.yy"
     9192    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9193    break;
     9194
     9195  case 744:
     9196
     9197/* Line 1806 of yacc.c  */
    91719198#line 2770 "parser.yy"
     9199    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9200    break;
     9201
     9202  case 745:
     9203
     9204/* Line 1806 of yacc.c  */
     9205#line 2772 "parser.yy"
    91729206    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91739207    break;
    91749208
    9175   case 744:
    9176 
    9177 /* Line 1806 of yacc.c  */
    9178 #line 2772 "parser.yy"
     9209  case 746:
     9210
     9211/* Line 1806 of yacc.c  */
     9212#line 2774 "parser.yy"
    91799213    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91809214    break;
    91819215
    9182   case 745:
    9183 
    9184 /* Line 1806 of yacc.c  */
    9185 #line 2774 "parser.yy"
     9216  case 747:
     9217
     9218/* Line 1806 of yacc.c  */
     9219#line 2776 "parser.yy"
    91869220    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91879221    break;
    91889222
    9189   case 746:
    9190 
    9191 /* Line 1806 of yacc.c  */
    9192 #line 2776 "parser.yy"
    9193     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9194     break;
    9195 
    9196   case 747:
    9197 
    9198 /* Line 1806 of yacc.c  */
    9199 #line 2778 "parser.yy"
    9200     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9201     break;
    9202 
    92039223  case 748:
    92049224
    92059225/* Line 1806 of yacc.c  */
    9206 #line 2780 "parser.yy"
    9207     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9226#line 2781 "parser.yy"
     9227    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    92089228    break;
    92099229
     
    92119231
    92129232/* Line 1806 of yacc.c  */
    9213 #line 2785 "parser.yy"
    9214     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9233#line 2786 "parser.yy"
     9234    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    92159235    break;
    92169236
     
    92189238
    92199239/* Line 1806 of yacc.c  */
     9240#line 2788 "parser.yy"
     9241    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9242    break;
     9243
     9244  case 751:
     9245
     9246/* Line 1806 of yacc.c  */
    92209247#line 2790 "parser.yy"
    9221     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9222     break;
    9223 
    9224   case 751:
    9225 
    9226 /* Line 1806 of yacc.c  */
    9227 #line 2792 "parser.yy"
    92289248    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    92299249    break;
    92309250
    9231   case 752:
    9232 
    9233 /* Line 1806 of yacc.c  */
    9234 #line 2794 "parser.yy"
    9235     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9251  case 754:
     9252
     9253/* Line 1806 of yacc.c  */
     9254#line 2814 "parser.yy"
     9255    { (yyval.en) = 0; }
    92369256    break;
    92379257
     
    92399259
    92409260/* Line 1806 of yacc.c  */
    9241 #line 2818 "parser.yy"
    9242     { (yyval.en) = 0; }
    9243     break;
    9244 
    9245   case 756:
    9246 
    9247 /* Line 1806 of yacc.c  */
    9248 #line 2820 "parser.yy"
     9261#line 2816 "parser.yy"
    92499262    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92509263    break;
     
    92539266
    92549267/* Line 1806 of yacc.c  */
    9255 #line 9256 "Parser/parser.cc"
     9268#line 9269 "Parser/parser.cc"
    92569269      default: break;
    92579270    }
     
    94849497
    94859498/* Line 2067 of yacc.c  */
    9486 #line 2823 "parser.yy"
     9499#line 2819 "parser.yy"
    94879500
    94889501// ----end of grammar----
  • src/Parser/parser.h

    r8b52686 re7aed49  
    143143     ORassign = 361,
    144144     ATassign = 362,
    145      REFassign = 363,
    146      THEN = 364
     145     THEN = 363
    147146   };
    148147#endif
     
    253252#define ORassign 361
    254253#define ATassign 362
    255 #define REFassign 363
    256 #define THEN 364
     254#define THEN 363
    257255
    258256
     
    264262
    265263/* Line 2068 of yacc.c  */
    266 #line 112 "parser.yy"
     264#line 110 "parser.yy"
    267265
    268266        Token tok;
     
    281279
    282280/* Line 2068 of yacc.c  */
    283 #line 284 "Parser/parser.h"
     281#line 282 "Parser/parser.h"
    284282} YYSTYPE;
    285283# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    r8b52686 re7aed49  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun 13 15:00:23 2016
    13 // Update Count     : 1578
     12// Last Modified On : Wed Jun 22 21:20:17 2016
     13// Update Count     : 1584
    1414//
    1515
     
    3131// two levels of extensions. The first extensions cover most of the GCC C extensions, except for:
    3232//
    33 // 1. nested functions
    34 // 2. generalized lvalues
    35 // 3. designation with and without '=' (use ':' instead)
    36 // 4. attributes not allowed in parenthesis of declarator
     33// 1. designation with and without '=' (use ':' instead)
     34// 2. attributes not allowed in parenthesis of declarator
    3735//
    3836// All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall
     
    7977%token TYPEOF LABEL                                                                             // GCC
    8078%token ENUM STRUCT UNION
    81 %token OTYPE FTYPE DTYPE TRAIT                                          // CFA
     79%token OTYPE FTYPE DTYPE TRAIT                                                  // CFA
    8280%token SIZEOF OFFSETOF
    8381%token ATTRIBUTE EXTENSION                                                              // GCC
     
    106104%token ANDassign        ERassign        ORassign                                // &=   ^=      |=
    107105
    108 %token ATassign         REFassign                                                       // @=   :=
     106%token ATassign                                                                                 // @=
    109107
    110108// Types declaration
     
    577575        | unary_expression '=' assignment_expression
    578576                { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); }
    579         | unary_expression REFassign assignment_expression
    580                 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); } // FIX ME
    581577        | unary_expression assignment_operator assignment_expression
    582578                { $$ =new CompositeExprNode( $2, $1, $3 ); }
Note: See TracChangeset for help on using the changeset viewer.