home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / MacPerl 5.0.3 / MacPerl Source ƒ / Perl5 / x2p / a2p.c next >
Encoding:
C/C++ Source or Header  |  1995-09-05  |  122.0 KB  |  2,671 lines  |  [TEXT/MPS ]

  1. #ifndef lint
  2. static char yysccsid[] = "@(#)yaccpar    1.9 (Berkeley) 02/21/93";
  3. #endif
  4. #define YYBYACC 1
  5. #define YYMAJOR 1
  6. #define YYMINOR 9
  7. #define yyclearin (yychar=(-1))
  8. #define yyerrok (yyerrflag=0)
  9. #define YYRECOVERING (yyerrflag!=0)
  10. #define YYPREFIX "yy"
  11. #line 2 "a2p.y"
  12. /* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $
  13.  *
  14.  *    Copyright (c) 1991, Larry Wall
  15.  *
  16.  *    You may distribute under the terms of either the GNU General Public
  17.  *    License or the Artistic License, as specified in the README file.
  18.  *
  19.  * $Log:    a2p.y,v $
  20.  */
  21.  
  22. #include "INTERN.h"
  23. #include "a2p.h"
  24.  
  25. int root;
  26. int begins = Nullop;
  27. int ends = Nullop;
  28.  
  29. #line 30 "y.tab.c"
  30. #define BEGIN 257
  31. #define END 258
  32. #define REGEX 259
  33. #define SEMINEW 260
  34. #define NEWLINE 261
  35. #define COMMENT 262
  36. #define FUN1 263
  37. #define FUNN 264
  38. #define GRGR 265
  39. #define PRINT 266
  40. #define PRINTF 267
  41. #define SPRINTF 268
  42. #define SPLIT 269
  43. #define IF 270
  44. #define ELSE 271
  45. #define WHILE 272
  46. #define FOR 273
  47. #define IN 274
  48. #define EXIT 275
  49. #define NEXT 276
  50. #define BREAK 277
  51. #define CONTINUE 278
  52. #define RET 279
  53. #define GETLINE 280
  54. #define DO 281
  55. #define SUB 282
  56. #define GSUB 283
  57. #define MATCH 284
  58. #define FUNCTION 285
  59. #define USERFUN 286
  60. #define DELETE 287
  61. #define ASGNOP 288
  62. #define OROR 289
  63. #define ANDAND 290
  64. #define NUMBER 291
  65. #define VAR 292
  66. #define SUBSTR 293
  67. #define INDEX 294
  68. #define MATCHOP 295
  69. #define RELOP 296
  70. #define OR 297
  71. #define STRING 298
  72. #define UMINUS 299
  73. #define NOT 300
  74. #define INCR 301
  75. #define DECR 302
  76. #define FIELD 303
  77. #define VFIELD 304
  78. #define YYERRCODE 256
  79. short yylhs[] = {                                        -1,
  80.     0,    3,    6,    6,    2,    2,    7,    7,    7,    7,
  81.     7,    7,    9,    8,    8,   12,   12,   12,   12,   11,
  82.    11,   11,   11,   11,   15,   15,   15,   15,   14,   14,
  83.    14,   14,   16,   16,   16,   16,   16,   16,   16,   16,
  84.    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
  85.    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
  86.    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
  87.    16,   16,   16,   16,   16,   16,   16,   16,   13,   13,
  88.    13,   17,   17,   17,   17,   10,   10,   10,   18,   18,
  89.    18,    1,    1,   19,   19,   19,   19,    4,    4,   20,
  90.    20,   21,   21,   21,   21,    5,    5,   22,   22,   22,
  91.    22,   25,   25,   23,   23,   23,   23,   23,   23,   23,
  92.    23,   23,   23,   23,   23,   23,   26,   26,   26,   24,
  93.    24,   24,   24,   24,   24,   24,   24,
  94. };
  95. short yylen[] = {                                         2,
  96.     2,    6,    5,    2,    3,    0,    1,    5,   10,    4,
  97.     1,    1,    1,    1,    3,    3,    3,    3,    3,    1,
  98.     1,    1,    1,    5,    3,    4,    4,    2,    3,    3,
  99.     1,    3,    1,    1,    1,    3,    3,    3,    3,    3,
  100.     3,    3,    5,    2,    2,    2,    2,    2,    2,    3,
  101.     1,    2,    3,    4,    3,    4,    1,    3,    4,    4,
  102.     4,    2,    8,    6,    8,    8,    6,    6,    6,    6,
  103.     6,    6,    6,    6,    8,    8,    8,    8,    2,    1,
  104.     3,    1,    4,    1,    2,    1,    1,    0,    4,    4,
  105.     3,    2,    0,    1,    1,    1,    1,    2,    0,    1,
  106.     1,    2,    2,    2,    2,    2,    0,    3,    2,    2,
  107.     1,    1,    0,    1,    4,    2,    4,    2,    1,    1,
  108.     1,    2,    1,    1,    2,    5,    1,    1,    1,    6,
  109.     9,    6,    7,   10,    9,    6,    5,
  110. };
  111. short yydefred[] = {                                     93,
  112.     0,    0,   95,   96,   97,   94,    0,   92,    0,    0,
  113.    31,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  114.     0,   34,    0,    0,    0,   35,    0,    0,    0,    0,
  115.     0,   84,    0,   99,    0,   11,    0,   93,    0,    0,
  116.    22,    0,   21,   23,    0,    0,   99,   99,    0,    0,
  117.     0,   62,    0,    0,    0,    0,    0,    0,    0,    0,
  118.     0,    0,    0,    0,    0,    0,    0,    0,   28,   46,
  119.    47,    0,    0,    0,    0,    0,    0,    4,    0,   99,
  120.     0,   99,   99,    0,    0,    0,    0,    0,    0,    0,
  121.     0,    0,    0,    0,    0,    0,    0,    0,   44,   45,
  122.     0,    0,   58,    0,    0,    0,    0,   99,   99,    0,
  123.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  124.     0,    0,  100,  101,    0,   98,   50,   19,   32,   25,
  125.     0,    0,    0,    0,    0,   30,    0,    0,    0,    0,
  126.    42,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  127.     0,   59,   60,   91,    0,    0,    0,    0,    0,    0,
  128.     0,    0,    0,    0,   13,   61,   83,    0,    0,   99,
  129.     0,    0,    0,    0,    0,    0,  120,  119,  123,    0,
  130.    99,    0,   99,   10,   99,    0,  106,    0,  111,    0,
  131.     0,    0,   26,   56,   93,    3,    0,    0,    0,    0,
  132.     0,    0,    0,    0,    0,   99,    0,    0,    0,    0,
  133.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  134.    99,   99,   99,   99,   99,    8,    0,    0,   67,    0,
  135.    72,    0,   71,    0,   74,    0,   73,    0,   69,   70,
  136.     0,   64,    0,   68,  128,  127,  129,    0,    0,    0,
  137.     0,    0,  112,    0,    0,    0,    0,    0,    0,    0,
  138.     0,    0,    0,    0,    0,    0,    0,    0,   99,    0,
  139.     0,    0,   99,   99,   99,    0,    0,    0,   99,   66,
  140.    65,   76,   75,   78,   77,    0,   63,    0,    0,    0,
  141.     0,    0,    0,  126,    0,    0,    0,  132,  136,    0,
  142.     0,    0,    9,   99,   99,    0,  133,    0,    0,   99,
  143.   131,  135,    0,  134,
  144. };
  145. short yydgoto[] = {                                       1,
  146.     2,    7,   36,   73,  125,   37,   38,   39,  164,   52,
  147.    53,   41,   42,   43,   44,   45,   46,   55,    8,  126,
  148.   225,  187,  188,  189,  254,  248,
  149. };
  150. short yysindex[] = {                                      0,
  151.     0,  -48,    0,    0,    0,    0, 6619,    0, -121, -110,
  152.     0,   -4,   32, 4183,   38,   30,   51,   64,   68, -260,
  153.    70,    0,  -61,   82,   83,    0, 4448, 4448, 4448, -183,
  154.  -183,    0, 4448,    0, 4448,    0, -188,    0,    3,   22,
  155.     0, 6884,    0,    0,   34, -213,    0,    0, 2061, 4183,
  156.  4183,    0,  -49, 5612,   85, 4448, 4448,   14, 4713, 6753,
  157.  4448,   87, 4183, 4183, 4448, 4448,  -77,  -77,    0,    0,
  158.     0,   18, -192,  -36,   91,   92,   95,    0,  -48,    0,
  159.  4448,    0,    0, 4448, 6980, 4448, 4448, 4448,   34, -154,
  160.  4448, 4448, 4448, 4448, 4448, 4448, -135, 4448,    0,    0,
  161.  -192, -192,    0, 5658,  106, 5612,   11,    0,    0, 5704,
  162.   186, 4448,  113, 5751,  115, 5805, 5885, 4183,  114,   67,
  163.  5931, 5978,    0,    0, 4572,    0,    0,    0,    0,    0,
  164.  -192, 6032, 1964, 1964,  -49,    0, 3230,  186,  186,  186,
  165.     0,   97,   97,  -77,  -77,  -77,  -77, -183,  -49, 4665,
  166.  4765,    0,    0,    0, 1964, 1964, -131,  186, 4448, 4448,
  167.  4448, 4448, 7026,  121,    0,    0,    0, 4448, 4448,    0,
  168.  4183, 4183,  124,  125,  132, 4448,    0,    0,    0, 4448,
  169.     0, -117,    0,    0,    0, 6884,    0,  -44,    0, 4837,
  170.  4448, -114,    0,    0,    0,    0, 6884, 6884,   13, 3635,
  171.  5295, 5367, 5506,  137, 6078,    0, 5560, 6243, -192,  -59,
  172.   -59, 4448, 4448, 5241, 6884, 6884, 3701,   93, -192, -192,
  173.     0,    0,    0,    0,    0,    0, 6884,  -48,    0, 7084,
  174.     0, 4448,    0, 4448,    0, 4448,    0, 4448,    0,    0,
  175.  -119,    0, 4448,    0,    0,    0,    0, 4448, 4448,  -34,
  176.   -16, 6343,    0,  123,  -89, 4183, 4930, -192, -192, -192,
  177.  -192, -192,  144, 6389, 6435, 6508, 6554, 6700,    0, 6819,
  178.  6884, 6884,    0,    0,    0, 6930,  146,   94,    0,    0,
  179.     0,    0,    0,    0,    0, -192,    0, 3701, 3701, 3701,
  180.  5241,  -53, 4448,    0, -192, 5030,  -83,    0,    0,  148,
  181.  5241,  -13,    0,    0,    0,  149,    0, 3701, 3701,    0,
  182.     0,    0, 3701,    0,
  183. };
  184. short yyrindex[] = {                                      0,
  185.     0, 2015,    0,    0,    0,    0,  192,    0,    0,    0,
  186.     0,   56,    0, 3424,    0, 2619,    0,    0,    0,    0,
  187.     0,    0,    1,    0,    0,    0,    0,    0,    0,    0,
  188.     0,    0,    0,    0,    0,    0, 2147,    0, 2195, 1676,
  189.     0, 3509,    0,    0, 1782, 1340,    0,    0,    0,  152,
  190.     0,    0,    0, 3829,  111,    0,    0,  381,    0,    0,
  191.     0,    0,  152,  101,    0,    0,  564,  834,    0,    0,
  192.     0,  436, 5102,    0,  -47,   39,   42,    0, 2245,    0,
  193.     0,    0,    0,    0,    0,    0,    0,    0, 1830,    0,
  194.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  195.  5102, 5102,    0,   72,    0,   17,    0,    0,    0,   72,
  196.  2718,    0,   74,   72,   74,   72,   72,  152,    0,    0,
  197.    72,   72,    0,    0,    0,    0,    0,    0,    0,    0,
  198.  5102,   72,    0,    0, 1882,    0, 3464, 3057, 3097, 3145,
  199.     0, 1468, 1734,  888,  942, 1016, 1286, 2564, 1395,    0,
  200.     0,    0,    0,    0,    0,    0,    0, 3185,    0,    0,
  201.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  202.   538,  538,    0,    0,    0,  122,    0,    0,    0,  241,
  203.     0,    0,    0,    0,    0,  -41,    0,    0,    0,    0,
  204.     0,  491,    0,    0,    0,    0, 3549, 3594,    0,   72,
  205.    72,   72,   72,   74,   72,    0,   72,   72, 3866,  296,
  206.   357,    0,    0,  136,  -10,  169,    0,    0, 5102, 3970,
  207.     0,    0,    0,    0,    0,    0, 3784, 2294,    0,    0,
  208.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  209.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  210.     0,  -51,    0,    0,    0,  101,    0, 4038, 4135, 4235,
  211.  4307, 4400,   74,   72,   72,   72,   72,   72,    0,   72,
  212.   507,  553,    0,    0,    0,    0,    0,    0,    0,    0,
  213.     0,    0,    0,    0,    0, 5102,    0,    0,    0,    0,
  214.   155,    0,    0,    0, 4500,    0, 5195,    0,    0,    0,
  215.   155,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  216.     0,    0,    0,    0,
  217. };
  218. short yygindex[] = {                                      0,
  219.   -18,    0,    0, 7251,  -19,    0,    0,    0,    0,  -31,
  220.    33,  -14, 2875,  -12,   16, 7373,   76,  147,    0,    0,
  221.     0,  231, -205,    0, -267,   -9,
  222. };
  223. #define YYTABLESIZE 7645
  224. short yytable[] = {                                     114,
  225.    82,   47,  246,  269,  127,  301,  273,  114,  253,   81,
  226.     6,   20,   48,   81,  224,   22,   96,  114,  105,   79,
  227.    75,   20,   76,  300,  274,   62,   81,  307,   81,   64,
  228.   122,  119,  120,  306,   97,   49,   75,   82,   76,   40,
  229.    82,   82,   82,   82,   82,   82,   81,   82,  122,   81,
  230.    77,  154,   20,  229,  109,   57,  230,   20,   82,   82,
  231.    82,   69,   82,   82,  247,   84,   77,   74,  123,  124,
  232.    95,   50,   78,  112,   98,   93,   91,   56,   92,   20,
  233.    94,  150,  151,   74,   81,  253,  165,   99,  100,   57,
  234.    59,   58,   57,   82,   82,  253,   57,   57,   57,   57,
  235.    57,   21,   57,   60,   23,   70,   71,   61,   23,   63,
  236.    87,  190,   82,   57,   57,   57,  135,   57,   57,   32,
  237.    33,   65,   66,   82,   82,   80,  118,   96,  109,   97,
  238.   149,  128,  129,   95,   20,  130,   31,  141,   93,  210,
  239.   211,  123,  124,   94,  148,   97,  153,   87,   57,   57,
  240.    87,   87,   87,   87,  166,   87,  159,   87,  161,  167,
  241.   199,  206,  121,  212,  213,  192,  193,   57,   87,   87,
  242.    87,  214,   87,   87,  218,   83,  228,  239,   57,   57,
  243.   121,  276,  277,  256,  280,  293,  294,  304,  305,  310,
  244.    96,    1,   88,   88,  113,  113,    0,  107,    0,  257,
  245.     0,  249,    0,   87,   87,  245,    0,    0,   97,  125,
  246.     0,    3,    4,    5,    0,  221,  222,  223,  114,  114,
  247.   114,    0,   87,  194,  278,   35,    0,  125,   27,    0,
  248.    28,   20,    0,   87,   87,   82,   83,   20,   20,   82,
  249.    83,   22,   22,    0,  250,  251,    0,   20,   20,  122,
  250.   122,  122,   82,   83,   82,   83,    0,   82,   82,   82,
  251.    82,   82,   82,   82,   82,   82,  296,    0,   82,   82,
  252.     0,    0,   82,   83,   82,   82,   83,    0,   20,   20,
  253.    82,  124,   82,   82,   82,   82,   82,    0,   82,   82,
  254.    82,   82,   82,   82,   82,   82,   82,    0,   82,  124,
  255.    82,   82,   82,   82,   82,   20,   20,   90,  292,    0,
  256.    82,   83,   57,   57,   57,   57,   57,   57,   57,   57,
  257.    57,   23,    0,   57,   57,  302,    0,   21,   21,   57,
  258.    23,   23,   32,   33,    0,   57,  116,   57,   57,   57,
  259.    57,   57,    0,   57,   57,   57,   57,   57,   57,   57,
  260.    57,   57,    0,   57,  116,   57,   57,   57,   57,   57,
  261.    20,   20,   31,   31,    0,    0,    0,   87,   87,   87,
  262.    87,   87,   87,   87,   87,   87,    0,    0,   87,   87,
  263.    52,  121,  121,  121,   87,    0,    0,    0,    0,    0,
  264.    87,    0,   87,   87,   87,   87,   87,  118,   87,   87,
  265.    87,   87,   87,   87,   87,   87,   87,    0,   87,    0,
  266.    87,   87,   87,   87,   87,  118,    0,   52,    0,    0,
  267.    52,   52,   52,   52,   52,   52,    0,   52,  125,  125,
  268.   125,    0,    0,    0,    0,   85,    0,    0,   52,   52,
  269.     0,    0,   52,   52,   11,    0,    0,  255,   12,   13,
  270.     0,    0,    0,   14,   15,    0,    0,   20,   20,    0,
  271.     0,    0,    0,    0,    0,   16,    0,   17,   18,   19,
  272.     0,   21,   85,   52,   52,   80,   85,   85,   85,   85,
  273.    85,    0,   85,   26,    0,   29,   30,   31,   32,   33,
  274.    27,    0,   52,   85,   85,   80,    0,   80,   80,    0,
  275.   124,  124,  124,   52,   52,    0,    0,    0,    0,    0,
  276.     0,    0,    0,    0,    0,    0,    0,    0,  297,  298,
  277.   299,    0,    0,    0,    0,    0,    0,   27,   85,   85,
  278.    27,   27,   27,   27,   27,   27,    0,   27,  311,  312,
  279.     0,    0,    0,  314,    0,    0,    0,  115,   27,   27,
  280.    27,    0,   27,   27,    0,  116,  116,  116,   85,   85,
  281.     0,    0,    0,   49,    0,  115,    0,    0,    0,   20,
  282.     0,    0,    0,    0,    0,    0,    0,    0,   88,    0,
  283.     0,    0,    0,   27,   27,    0,    0,    0,    0,    0,
  284.     0,    0,    0,  117,    0,    0,   88,    0,    0,   88,
  285.    49,    0,   27,   49,   49,   49,   49,   49,   49,    0,
  286.    49,  117,    0,   27,   27,   20,  118,  118,  118,    0,
  287.     0,   49,   49,   49,    0,   49,   49,    0,    0,    0,
  288.     0,    0,    0,    0,    0,    0,    0,   52,   52,   52,
  289.    52,   52,   52,   52,   52,   52,    0,    0,   52,   52,
  290.     0,    0,    0,    0,   52,    0,   49,    0,    0,    0,
  291.    52,   88,   52,   52,   52,   52,   52,    0,   52,   52,
  292.    52,   52,   52,   52,   52,   52,   52,    0,   52,    0,
  293.    52,   52,   52,   52,   52,    0,   49,   49,    0,    0,
  294.     0,    0,   85,   85,   80,   85,   85,   85,   80,   80,
  295.    85,    0,    0,   80,   80,    0,    0,    0,    0,   85,
  296.     0,    0,    0,    0,    0,   80,    0,   80,   80,   80,
  297.    85,   80,    0,   85,   80,   80,   80,   80,   80,   80,
  298.    80,   80,    0,   80,    0,   80,   80,   80,   80,   80,
  299.     0,    0,    0,    0,    0,    0,    0,   27,   27,   27,
  300.    27,   27,   27,   27,   27,   27,    0,    0,   27,   27,
  301.     0,    0,    0,    0,   27,    0,  115,  115,  115,    0,
  302.    27,    0,   27,   27,   27,   27,   27,    0,   27,   27,
  303.     0,   27,   27,   27,   27,   27,   27,    0,   27,    0,
  304.    27,   27,   27,   27,   27,   20,   20,   88,   88,   88,
  305.     0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
  306.     0,    0,  117,  117,  117,    0,    0,    0,    0,    0,
  307.    49,   49,   49,   49,   49,   49,   49,   49,   49,    0,
  308.     0,   49,   49,   48,    0,    0,    0,   49,    0,    0,
  309.     0,   20,   20,   49,    0,   49,   49,   49,   49,   49,
  310.     0,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  311.     0,   49,    0,   49,   49,   49,   49,   49,    0,    0,
  312.    48,    0,    0,   48,   48,   48,   48,   48,   48,    0,
  313.    48,    0,    0,    0,    0,    0,    0,   38,    0,    0,
  314.     0,   48,   48,   48,    0,   48,   48,    0,    0,    0,
  315.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  316.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  317.     0,    0,    0,    0,   38,    0,   48,   38,   38,   38,
  318.    38,   38,   38,    0,   38,    0,    0,    0,    0,    0,
  319.     0,   39,    0,    0,    0,   38,   38,   38,    0,   38,
  320.    38,    0,    0,    0,    0,    0,   48,   48,    0,    0,
  321.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  322.     0,    0,    0,    0,    0,    0,    0,    0,   39,    0,
  323.    38,   39,   39,   39,   39,   39,   39,    0,   39,    0,
  324.     0,    0,    0,    0,    0,    0,    0,    0,    0,   39,
  325.    39,   39,    0,   39,   39,    0,    0,    0,    0,    0,
  326.    38,   38,    0,    0,    0,   40,    0,    0,    0,    0,
  327.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  328.     0,    0,    0,    0,   39,    0,    0,    0,    0,    0,
  329.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  330.     0,    0,   40,    0,    0,   40,   40,   40,   40,   40,
  331.    40,    0,   40,    0,   39,   39,    0,    0,    0,    0,
  332.     0,    0,    0,   40,   40,   40,    0,   40,   40,    0,
  333.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  334.    48,   48,   48,   48,   48,   48,   48,   48,   48,    0,
  335.     0,   48,   48,    0,    0,    0,    0,   48,   40,    0,
  336.     0,    0,    0,   48,    0,   48,   48,   48,   48,   48,
  337.     0,   48,   48,   48,   48,   48,   48,   48,   48,   48,
  338.     0,   48,    0,   48,   48,   48,   48,   48,   40,   40,
  339.     0,    0,    0,    0,   38,   38,   38,   38,   38,   38,
  340.    38,   38,   38,    0,    0,   38,   38,    0,    0,    0,
  341.     0,   38,    0,    0,    0,    0,    0,   38,    0,   38,
  342.    38,   38,   38,   38,    0,   38,   38,   38,   38,   38,
  343.    38,   38,   38,   38,    0,   38,    0,   38,   38,   38,
  344.    38,   38,    0,    0,    0,    0,    0,    0,   39,   39,
  345.    39,   39,   39,   39,   39,   39,   39,    0,    0,   39,
  346.    39,    0,    0,    0,    0,   39,    0,    0,    0,    0,
  347.     0,   39,    0,   39,   39,   39,   39,   39,    0,   39,
  348.    39,   39,   39,   39,   39,   39,   39,   39,    0,   39,
  349.     0,   39,   39,   39,   39,   39,    0,    0,    0,    0,
  350.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  351.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  352.     0,    0,   40,   40,   40,   40,   40,   40,   40,   40,
  353.    40,    0,    0,   40,   40,   41,    0,    0,    0,   40,
  354.     0,    0,    0,    0,    0,   40,    0,   40,   40,   40,
  355.    40,   40,    0,   40,   40,   40,   40,   40,   40,   40,
  356.    40,   40,    0,   40,    0,   40,   40,   40,   40,   40,
  357.     0,    0,   41,    0,    0,   41,   41,   41,   41,   41,
  358.    41,    0,   41,    0,    0,    0,    0,    0,    0,   33,
  359.     0,    0,    0,   41,   41,   41,    0,   41,   41,    0,
  360.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  361.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  362.     0,    0,    0,    0,    0,    0,   33,    0,   41,   33,
  363.    33,   33,   33,   33,   33,    0,   33,    0,    0,    0,
  364.     0,    0,    0,    0,   81,    0,    0,   33,   33,   33,
  365.     0,   33,   33,    0,    0,    0,    0,    0,   41,   41,
  366.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  367.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  368.     0,   81,   33,   33,   81,   81,   81,   81,   81,   81,
  369.     0,   81,    0,    0,    0,    0,    0,    0,    0,    0,
  370.     0,   33,   81,   81,   81,    0,   81,    0,    0,    0,
  371.     0,    0,   33,   33,    0,    0,    0,   36,    0,    0,
  372.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  373.     0,    0,    0,    0,    0,    0,    0,   81,   81,    0,
  374.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  375.     0,    0,    0,    0,    0,    0,   81,   36,   36,    0,
  376.    36,   36,   36,    0,    0,    0,    0,   81,   81,    0,
  377.     0,    0,    0,    0,    0,   36,   36,   36,    0,   36,
  378.    36,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  379.     0,    0,   41,   41,   41,   41,   41,   41,   41,   41,
  380.    41,    0,    0,   41,   41,    0,    0,    0,    0,   41,
  381.    36,    0,    0,    0,    0,   41,    0,   41,   41,   41,
  382.    41,   41,    0,   41,   41,   41,   41,   41,   41,   41,
  383.    41,   41,    0,   41,    0,   41,   41,   41,   41,   41,
  384.    36,   36,    0,    0,    0,    0,   33,   33,   33,   33,
  385.    33,   33,   33,   33,   33,    0,    0,   33,   33,    0,
  386.     0,    0,    0,   33,    0,    0,    0,    0,    0,   33,
  387.     0,   33,   33,   33,   33,   33,    0,    0,   33,   33,
  388.    33,   33,   33,   33,   33,   33,    0,   33,    0,   33,
  389.     0,    0,   33,   33,    0,    0,    0,    0,    0,    0,
  390.     0,   81,   81,   81,   81,   81,   81,   81,   81,   81,
  391.     0,    0,   81,   81,    0,    0,    0,    0,   81,    0,
  392.     0,    0,    0,    0,   81,   14,   81,   81,   81,   81,
  393.    81,    0,   81,    0,    0,   81,   81,   81,   81,   81,
  394.    81,    0,   81,    0,   81,   81,   81,   81,   81,    0,
  395.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  396.     0,    0,    0,    0,    0,   14,    0,    0,   14,    0,
  397.    14,    0,    0,    0,   36,   36,   36,   36,   36,   36,
  398.    36,   36,   36,   37,   14,   36,   36,    0,    0,    0,
  399.     0,   36,    0,    0,    0,    0,    0,   36,    0,   36,
  400.    36,   36,   36,   36,    0,   36,   36,   36,   36,   36,
  401.    36,   36,   36,   36,    0,   36,    0,   36,   36,   36,
  402.    36,   36,    0,   37,   37,    0,   37,   37,   37,    0,
  403.     0,   80,    0,    0,    0,    0,    0,    0,    0,    0,
  404.     0,   37,   37,   37,    0,   37,   37,    0,   14,    0,
  405.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  406.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  407.     0,   80,   80,    0,    0,   80,   37,    0,    0,   79,
  408.     0,    0,    0,    0,    0,    0,    0,    0,    0,   80,
  409.    80,   80,    0,   80,   80,    0,    0,    0,    0,    0,
  410.     0,    0,    0,    0,    0,    0,   37,   37,    0,    0,
  411.     0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
  412.    79,    0,    0,   79,   80,    0,    0,    0,    0,    0,
  413.     0,   15,    0,    0,    0,    0,    0,   79,   79,   79,
  414.     0,   79,   79,    0,    0,    0,    0,    0,    0,    0,
  415.     0,    0,    0,    0,   80,   80,    0,    0,    0,    0,
  416.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  417.     0,   15,   79,    0,   15,    0,   15,    0,    0,    0,
  418.     0,    0,   14,   14,   14,   14,   14,   14,   14,   14,
  419.    15,    0,    0,   14,   14,    0,    0,    0,    0,    0,
  420.     0,    0,   79,   79,    0,   14,    0,   14,   14,   14,
  421.    14,   14,    0,    0,    0,    0,   14,   14,   14,   14,
  422.     0,    0,    0,   14,    0,   14,   14,   14,   14,   14,
  423.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  424.    37,   37,   37,   37,   37,   37,   37,   37,   37,    0,
  425.     0,   37,   37,   35,   15,    0,   27,   37,   28,    0,
  426.     0,    0,    0,   37,    6,   37,   37,   37,   37,   37,
  427.     0,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  428.     0,   37,    0,   37,   37,   37,   37,   37,   80,   80,
  429.    80,   80,   80,   80,   80,   80,   80,    0,    0,   80,
  430.    80,    0,    0,    0,    6,    0,    0,    6,    0,    6,
  431.     0,   80,    0,   80,   80,   80,   80,   80,    0,   80,
  432.    80,   80,   80,   80,   80,   80,   80,   80,    0,   80,
  433.     0,   80,   80,   80,   80,   80,   79,   79,   79,   79,
  434.    79,   79,   79,   79,   79,    0,    0,   79,   79,    0,
  435.    35,  103,    0,   27,    0,   28,    0,    0,    0,   79,
  436.     0,   79,   79,   79,   79,   79,    0,   79,   79,   79,
  437.    79,   79,   79,   79,   79,   79,    0,   79,    0,   79,
  438.    79,   79,   79,   79,    0,    0,    0,    6,   15,   15,
  439.    15,   15,   15,   15,   15,   15,   12,    0,    0,   15,
  440.    15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  441.     0,   15,    0,   15,   15,   15,   15,   15,    0,    0,
  442.     0,    0,   15,   15,   15,   15,    0,    0,    0,   15,
  443.     0,   15,   15,   15,   15,   15,   12,    0,    0,   12,
  444.     0,   12,    0,    0,    7,    0,    0,    0,    0,    0,
  445.     0,    0,    0,    0,    0,   12,    0,    0,    0,    0,
  446.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  447.     0,    0,   11,    0,  123,  124,   12,   13,    0,    0,
  448.     0,   14,   15,    0,    7,    0,    0,    7,    0,    7,
  449.     0,    0,    0,   16,    5,   17,   18,   19,    0,   21,
  450.     0,    0,    0,    7,   22,   23,   24,   25,    0,    0,
  451.     0,   26,    0,   29,   30,   31,   32,   33,    0,   12,
  452.     0,    6,    6,    6,    0,    0,    0,    6,    6,    0,
  453.     0,    0,    6,    6,    5,    0,    0,    5,    0,    5,
  454.     0,    0,    0,    2,    6,    0,    6,    6,    6,    6,
  455.     6,    0,    0,    0,    0,    6,    6,    6,    6,    0,
  456.     0,    0,    6,    0,    6,    6,    6,    6,    6,   11,
  457.     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
  458.     0,    0,    0,    2,    0,    0,    2,    0,    2,    0,
  459.    16,    0,   17,   18,   19,    0,   21,    0,    0,    0,
  460.     0,   22,   23,   24,   25,    0,    0,    0,   26,    0,
  461.    29,   30,   31,   32,   33,    0,    0,    5,    0,    0,
  462.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  463.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  464.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  465.     0,    0,    0,   12,   12,   12,   12,    0,   12,   12,
  466.    12,    0,    0,    0,   12,   12,    2,    0,    0,    0,
  467.     0,    0,    0,    0,    0,    0,   12,    0,   12,   12,
  468.    12,   12,   12,    0,    0,    0,    0,   12,   12,   12,
  469.    12,    0,    0,    0,   12,    0,   12,   12,   12,   12,
  470.    12,    7,    7,    7,    7,    7,    7,    7,    7,    0,
  471.     0,    0,    7,    7,    0,    0,    0,    0,    0,    0,
  472.     0,    0,    0,    0,    7,    0,    7,    7,    7,    7,
  473.     7,    0,    0,    0,    0,    7,    7,    7,    7,    0,
  474.     0,    0,    7,    0,    7,    7,    7,    7,    7,    0,
  475.     0,    5,    5,    5,    0,    0,    0,    5,    5,    0,
  476.     0,    0,    5,    5,    0,    0,    0,    0,    0,    0,
  477.     0,    0,    0,    0,    5,    0,    5,    5,    5,    5,
  478.     5,    0,    0,    0,    0,    5,    5,    5,    5,    0,
  479.     0,    0,    5,    0,    5,    5,    5,    5,    5,    0,
  480.     2,    2,    2,    0,    0,    0,    2,    2,    0,    0,
  481.     0,    2,    2,   55,    0,    0,    0,    0,    0,    0,
  482.     0,    0,    0,    2,    0,    2,    2,    2,    2,    2,
  483.     0,    0,    0,    0,    2,    2,    2,    2,    0,    0,
  484.     0,    2,    0,    2,    2,    2,    2,    2,    0,    0,
  485.    55,    0,    0,   55,   55,   55,   55,   55,   55,    0,
  486.    55,    0,    0,    0,    0,    0,    0,    0,   51,    0,
  487.     0,   55,   55,   55,    0,   55,   55,    0,    0,    0,
  488.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  489.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  490.     0,    0,    0,    0,    0,   51,   55,   55,   51,   51,
  491.    51,   51,   51,   51,    0,   51,    0,    0,    0,    0,
  492.     0,    0,    0,    0,    0,   55,   51,   51,    0,    0,
  493.    51,   51,    0,    0,    0,    0,   55,   55,    0,    0,
  494.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  495.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  496.     0,   51,   51,    0,    0,    0,    0,   53,    0,    0,
  497.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  498.    51,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  499.     0,   51,   51,    0,    0,    0,    0,    0,    0,    0,
  500.     0,    0,    0,    0,   53,    0,    0,    0,   53,   53,
  501.     0,   53,    0,    0,   53,    0,    0,    0,    0,    0,
  502.     0,    0,    0,    0,    0,   53,   53,   53,    0,   53,
  503.    20,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  504.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  505.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  506.    53,   53,    0,    0,    0,    0,    0,    0,    0,    0,
  507.    55,   55,   55,   55,   55,   55,   55,   55,   55,   53,
  508.     0,   55,   55,    0,    0,    0,    0,   55,    0,    0,
  509.    53,   53,    0,   55,    0,   55,   55,   55,   55,   55,
  510.     0,   55,   55,   55,   55,    0,   55,   55,   55,   55,
  511.     0,   55,    0,   55,   55,   55,    0,    0,    0,    0,
  512.     0,    0,    0,    0,    0,   51,   51,   51,   51,   51,
  513.    51,   51,   51,   51,    0,    0,   51,   51,   54,    0,
  514.     0,    0,   51,    0,    0,    0,    0,    0,   51,    0,
  515.    51,   51,   51,   51,   51,    0,   51,   51,   51,   51,
  516.     0,   51,   51,   51,   51,    0,   51,    0,   51,   51,
  517.    51,    0,    0,  104,   54,  106,    0,    0,    0,    0,
  518.   110,  111,    0,  114,  116,  117,    0,   54,   54,  121,
  519.   122,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  520.     0,    0,    0,    0,    0,  132,    0,    0,    0,  137,
  521.   138,  139,  140,    0,    0,    0,    0,    0,    0,    0,
  522.     0,    0,    0,    0,   53,   53,    0,   53,   53,   53,
  523.     0,    0,   53,    0,    0,    0,  158,    0,    0,    0,
  524.     0,   53,   54,    0,    0,    0,    0,    0,    0,  186,
  525.     0,    0,   53,    0,    0,   53,   20,   20,   53,   53,
  526.    53,   53,   53,   53,    0,    0,    0,    0,    0,    0,
  527.     0,    0,    0,    0,  186,  186,    0,    0,    0,  197,
  528.   198,    0,    0,  200,  201,  202,  203,  205,    0,    0,
  529.     0,    0,  207,  208,    0,   54,   54,    0,    0,    0,
  530.   215,    0,    0,    0,  216,    0,   16,    0,    0,    0,
  531.     0,    0,    0,    0,  186,  227,    0,    0,    0,    0,
  532.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  533.     0,    0,    0,    0,    0,    0,    0,    0,  252,    0,
  534.     0,  186,    0,   16,    0,    0,   18,   16,   16,    0,
  535.    16,    0,    0,   16,  264,    0,  265,    0,  266,    0,
  536.   267,    0,  268,    0,   16,   16,   16,  270,   16,   16,
  537.     0,    0,  271,  272,    0,    0,    0,    0,    0,    0,
  538.    54,  186,    0,   18,    0,    0,    0,   18,   18,    0,
  539.    18,    0,    0,   18,   17,    0,    0,    0,    0,   16,
  540.    16,    0,    0,    0,   18,   18,   18,    0,   18,   18,
  541.     0,    0,  186,  186,  186,  186,    0,    0,   16,    0,
  542.   186,    0,    0,    0,    0,  186,    0,    0,    0,   16,
  543.    16,   17,  186,  186,   54,   17,   17,  186,   17,   18,
  544.    18,   17,    0,    0,    0,    0,    0,    0,    0,    0,
  545.     0,    0,   17,   17,   17,    0,   17,   17,   18,    0,
  546.     0,    0,    0,    0,    0,    0,    0,    0,    0,   18,
  547.    18,   54,    0,    0,    0,   54,   54,    0,   54,    0,
  548.     0,   54,    0,    0,    0,    0,    0,   17,   17,    0,
  549.     0,    0,   54,   54,   54,    0,   54,   20,    0,    0,
  550.     0,    0,    0,    0,    0,    0,   17,    0,    0,    0,
  551.     0,    0,    0,    0,    0,    0,    0,   17,   17,   35,
  552.     0,    0,   27,    0,   28,    0,    0,   54,   54,    0,
  553.     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
  554.     0,   88,    0,    0,    0,    0,   54,    0,    0,    0,
  555.     0,    0,    0,    0,    0,    0,    0,   54,   54,    0,
  556.     0,    0,    0,   16,   16,    0,   16,   16,   16,    0,
  557.     0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
  558.    16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  559.     0,   16,    0,    0,   16,   16,   16,   16,   16,   16,
  560.    16,   16,   16,   18,   18,    0,   18,   18,   18,    0,
  561.     0,   18,    0,    0,    0,    0,    0,    0,    0,    0,
  562.    18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  563.     0,   18,    0,    0,   18,   18,   18,   18,   18,   18,
  564.    18,   18,   18,    0,    0,    0,    0,    0,    0,    0,
  565.     0,   17,   17,    0,   17,   17,   17,    0,    0,   17,
  566.     0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
  567.     0,    0,    0,   88,    0,    0,    0,    0,    0,   17,
  568.     0,    0,   17,   17,   17,   17,   17,   17,   17,   17,
  569.    17,   54,   54,    0,   54,   54,   54,    0,    0,   54,
  570.     0,    0,    0,    0,    0,    0,    0,    0,   54,    0,
  571.    88,    0,    0,   29,   88,   88,    0,   88,    0,   54,
  572.    88,    0,   54,   20,   20,   54,   54,   54,   54,   54,
  573.    54,   88,   88,   88,    0,   88,   88,    0,   11,    0,
  574.     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
  575.    29,    0,    0,    0,   29,   29,    0,   29,   20,   16,
  576.    29,   17,   18,   19,    0,   21,   88,   88,    0,    0,
  577.     0,   29,   29,    0,    0,   86,   20,   26,    0,   29,
  578.    30,   31,   32,   33,    0,   88,    0,    0,    0,    0,
  579.     0,    0,    0,    0,    0,   20,   88,   88,   89,   20,
  580.    20,    0,   20,    0,    0,   20,   29,   29,    0,    0,
  581.     0,    0,    0,    0,    0,    0,   20,   20,    0,    0,
  582.     0,   20,    0,    0,    0,   29,    0,    0,    0,    0,
  583.     0,    0,    0,    0,    0,   89,   29,   29,    0,   89,
  584.    89,    0,   89,   90,    0,   89,    0,    0,    0,    0,
  585.     0,   20,   20,    0,    0,    0,   89,   89,    0,    0,
  586.     0,   20,    0,    0,    0,    0,    0,    0,    0,    0,
  587.    20,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  588.    90,   20,   20,    0,   90,   90,    0,   90,    0,    0,
  589.    90,   89,   89,    0,    0,    0,    0,    0,    0,    0,
  590.     0,   90,   90,    0,    0,    0,   20,    0,    0,    0,
  591.    89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  592.     0,   89,   89,    0,   35,  231,    0,   27,  232,   28,
  593.    88,   88,    0,   88,   88,   88,   90,   90,   88,    0,
  594.     0,    0,    0,    0,   87,    0,   88,   88,    0,    0,
  595.     0,    0,    0,    0,    0,   90,    0,    0,   88,    0,
  596.     0,   88,   88,   88,    0,    0,   90,   90,   88,   88,
  597.    29,   29,    0,   29,   29,   29,    0,    0,   29,    0,
  598.     0,    0,    0,    0,    0,    0,    0,   29,    0,    0,
  599.    35,    0,    0,   27,    0,   28,    0,    0,   29,    0,
  600.     0,   29,   20,   20,   29,   29,   29,   29,   29,  185,
  601.     0,    0,    0,    0,    0,   20,   20,    0,   20,   20,
  602.    20,    0,    0,   20,    0,    0,    0,    0,    0,    0,
  603.     0,    0,   20,   24,    0,    0,    0,    0,    0,    0,
  604.     0,    0,    0,   20,    0,    0,   20,   20,   20,    0,
  605.     0,    0,    0,    0,    0,   89,   89,    0,   89,   89,
  606.    89,    0,    0,   89,    0,    0,    0,    0,    0,    0,
  607.    24,    0,   89,  183,   24,   24,    0,   24,   86,    0,
  608.    24,    0,    0,   89,    0,    0,   89,   20,   20,    0,
  609.     0,   24,   24,    0,    0,    0,   20,    0,    0,    0,
  610.    90,   90,    0,   90,   90,   90,    0,    0,   90,    0,
  611.     0,    0,    0,    0,    0,   86,    0,   90,    0,   86,
  612.    86,    0,    0,    0,    0,   86,   24,   24,   90,    0,
  613.     0,   90,   20,   20,    0,    0,   86,   86,    0,    0,
  614.     0,   20,    0,   11,    0,   24,    0,   12,   13,    0,
  615.     0,    0,   14,   15,    0,  110,   24,   24,  110,    0,
  616.   110,    0,    0,    0,   16,    0,   17,   18,   19,    0,
  617.    21,   86,   86,    0,  110,   22,   23,   24,   25,   85,
  618.    86,    0,   26,    0,   29,   30,   31,   32,   33,    0,
  619.    86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  620.     0,   86,   86,    0,    0,    0,    0,    0,    0,   11,
  621.   170,  123,  124,   12,   13,    0,  171,  172,   14,   15,
  622.   173,    0,  174,  175,    0,  176,  177,  178,  179,  180,
  623.    16,  181,   17,   18,   19,    0,   21,  182,  110,    0,
  624.   110,   22,   23,   24,   25,    0,    0,    0,   26,    0,
  625.    29,   30,   31,   32,   33,    0,    0,    0,    0,  109,
  626.     0,    0,  109,    0,  109,    0,    0,    0,    0,    0,
  627.     0,    0,    0,    0,    0,    0,    0,    0,  109,    0,
  628.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  629.    24,   24,    0,   24,   24,   24,    0,    0,   24,    0,
  630.     0,    0,    0,    0,    0,    0,    0,   24,    0,    0,
  631.     0,    0,    0,    0,    0,    0,    0,    0,   24,    0,
  632.     0,   24,   20,   20,    0,    0,    0,  103,    0,    0,
  633.   103,    0,  103,    0,    0,   86,   86,    0,   86,   86,
  634.    86,    0,  109,   86,  109,    0,  103,    0,    0,    0,
  635.     0,    0,   86,    0,    0,    0,    0,    0,    0,    0,
  636.     0,    0,    0,   86,    0,    0,   86,   20,   20,    0,
  637.     0,    0,    0,    0,  110,  110,    0,    0,  110,  110,
  638.     0,  110,  110,  110,  110,  110,  110,  110,  110,    0,
  639.   110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
  640.     0,  110,  110,    0,    0,    0,  110,  110,  110,  110,
  641.   103,    0,  103,  110,    0,  110,  110,  110,  110,  110,
  642.     0,    0,    0,    0,  104,    0,    0,  104,    0,  104,
  643.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  644.     0,    0,    0,  104,    0,    0,    0,    0,    0,    0,
  645.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  646.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  647.     0,    0,   51,    0,    0,   27,    0,   28,  109,  109,
  648.     0,    0,  109,  109,    0,  109,  109,  109,  109,  109,
  649.   109,  109,  109,    0,  109,  109,  109,  109,  109,  109,
  650.   109,  109,  109,  109,    0,  109,  109,  104,    0,  104,
  651.   109,  109,  109,  109,    0,    0,    0,  109,    0,  109,
  652.   109,  109,  109,  109,  105,    0,    0,  105,    0,  105,
  653.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  654.     0,    0,    0,  105,    0,    0,  103,  103,    0,    0,
  655.   103,  103,    0,  103,  103,  103,  103,  103,  103,  103,
  656.   103,    0,  103,  103,  103,  103,  103,  103,  103,  103,
  657.   103,  103,    0,  103,  103,    0,    0,    0,  103,  103,
  658.   103,  103,    0,    0,    0,  103,    0,  103,  103,  103,
  659.   103,  103,    0,    0,    0,    0,  102,    0,    0,  102,
  660.     0,  102,    0,    0,    0,    0,    0,  105,    0,  105,
  661.     0,    0,    0,    0,    0,  102,    0,    0,    0,    0,
  662.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  663.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  664.     0,    0,    0,  104,  104,    0,    0,  104,  104,    0,
  665.   104,  104,  104,  104,  104,  104,  104,  104,    0,  104,
  666.   104,  104,  104,  104,  104,  104,  104,  104,  104,    0,
  667.   104,  104,    0,    0,    0,  104,  104,  104,  104,  102,
  668.     0,  102,  104,    0,  104,  104,  104,  104,  104,  108,
  669.     0,   11,  108,    0,  108,   12,   13,    0,    0,    0,
  670.    14,   15,    0,    0,    0,    0,    0,    0,  108,    0,
  671.     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
  672.     0,    0,    0,   22,   23,   24,   25,    0,    0,    0,
  673.    26,    0,   29,   30,   31,   32,   33,   35,    0,    0,
  674.    27,    0,   28,  105,  105,    0,    0,  105,  105,    0,
  675.   105,  105,  105,  105,  105,  105,  105,  105,    0,  105,
  676.   105,  105,  105,  105,  105,  105,  105,  105,  105,    0,
  677.   105,  105,  108,    0,  108,  105,  105,  105,  105,    0,
  678.     0,    0,  105,    0,  105,  105,  105,  105,  105,  137,
  679.     0,    0,  137,    0,  137,    0,    0,    0,    0,    0,
  680.     0,    0,    0,    0,    0,    0,    0,    0,  137,    0,
  681.     0,    0,    0,    0,    0,  102,  102,    0,    0,  102,
  682.   102,    0,  102,  102,  102,  102,  102,  102,  102,  102,
  683.     0,  102,  102,  102,  102,  102,  102,  102,  102,  102,
  684.   102,    0,  102,  102,    0,    0,    0,  102,  102,  102,
  685.   102,    0,    0,    0,  102,    0,  102,  102,  102,  102,
  686.   102,   35,    0,    0,   27,    0,   28,    0,    0,    0,
  687.     0,    0,  137,    0,  137,    0,    0,    0,    0,    0,
  688.   185,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  689.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  690.     0,    0,    0,    0,    0,    0,    0,    0,  108,  108,
  691.     0,    0,  108,  108,    0,  108,  108,  108,  108,  108,
  692.   108,  108,  108,    0,  108,  108,  108,  108,  108,  108,
  693.   108,  108,  108,  108,    0,  108,  108,    0,    0,    0,
  694.   108,  108,  108,  108,  183,    0,  184,  108,    0,  108,
  695.   108,  108,  108,  108,   35,    0,   11,   27,    0,   28,
  696.    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
  697.     0,    0,    0,  185,    0,    0,    0,   16,    0,   17,
  698.    18,   19,    0,   21,    0,    0,    0,    0,   22,   23,
  699.    24,   25,    0,    0,    0,   26,    0,   29,   30,   31,
  700.    32,   33,   35,    0,    0,   27,    0,   28,  137,  137,
  701.     0,    0,  137,  137,    0,  137,  137,  137,  137,  137,
  702.   137,  137,  137,    0,  137,  137,  137,  137,  137,  137,
  703.   137,  137,  137,  137,    0,  137,  137,  183,    0,  195,
  704.   137,  137,  137,  137,    0,    0,    0,  137,    0,  137,
  705.   137,  137,  137,  137,   35,    0,    0,   27,    0,   28,
  706.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  707.     0,    0,    0,  185,    0,    0,    0,    0,    0,    0,
  708.    11,  170,    0,    0,   12,   13,    0,  171,  172,   14,
  709.    15,  173,    0,  174,  175,    0,  176,  177,  178,  179,
  710.   180,   16,  181,   17,   18,   19,    0,   21,  182,    0,
  711.     0,    0,   22,   23,   24,   25,    0,    0,    0,   26,
  712.     0,   29,   30,   31,   32,   33,   35,    0,    0,   27,
  713.     0,   28,    0,    0,    0,    0,    0,  183,    0,  196,
  714.     0,    0,    0,    0,    0,  185,    0,    0,    0,    0,
  715.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  716.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  717.     0,    0,    0,   11,  170,    0,    0,   12,   13,    0,
  718.   171,  172,   14,   15,  173,    0,  174,  175,    0,  176,
  719.   177,  178,  179,  180,   16,  181,   17,   18,   19,    0,
  720.    21,  182,    0,    0,    0,   22,   23,   24,   25,  183,
  721.     0,  226,   26,    0,   29,   30,   31,   32,   33,   35,
  722.     0,  113,   27,    0,   28,   12,   13,    0,    0,    0,
  723.    14,   15,    0,    0,    0,    0,    0,    0,  185,    0,
  724.     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
  725.     0,    0,    0,   22,   23,   24,   25,    0,    0,    0,
  726.    26,    0,   29,   30,   31,   32,   33,    0,    0,    0,
  727.     0,    0,    0,   11,  170,    0,    0,   12,   13,    0,
  728.   171,  172,   14,   15,  173,    0,  174,  175,    0,  176,
  729.   177,  178,  179,  180,   16,  181,   17,   18,   19,    0,
  730.    21,  182,  183,    0,  279,   22,   23,   24,   25,    0,
  731.     0,    0,   26,    0,   29,   30,   31,   32,   33,   35,
  732.     0,    0,   27,    0,   28,    0,    0,    0,    0,    0,
  733.     0,    0,    0,    0,    0,    0,    0,    0,  185,    0,
  734.     0,    0,    0,    0,    0,   11,  170,    0,    0,   12,
  735.    13,    0,  171,  172,   14,   15,  173,    0,  174,  175,
  736.     0,  176,  177,  178,  179,  180,   16,  181,   17,   18,
  737.    19,    0,   21,  182,    0,    0,    0,   22,   23,   24,
  738.    25,    0,    0,    0,   26,    0,   29,   30,   31,   32,
  739.    33,  107,    0,    0,  107,    0,  107,    0,    0,    0,
  740.     0,    0,  183,    0,  303,    0,    0,    0,    0,    0,
  741.   107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  742.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  743.     0,    0,    0,    0,    0,    0,    0,    0,   11,  170,
  744.     0,    0,   12,   13,    0,  171,  172,   14,   15,  173,
  745.     0,  174,  175,    0,  176,  177,  178,  179,  180,   16,
  746.   181,   17,   18,   19,    0,   21,  182,    0,    0,    0,
  747.    22,   23,   24,   25,  107,    0,  107,   26,    0,   29,
  748.    30,   31,   32,   33,  130,    0,    0,  130,    0,  130,
  749.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  750.     0,    0,    0,  130,    0,    0,    0,    0,    0,    0,
  751.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  752.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  753.    35,    0,    0,   27,    0,   28,    0,    0,   11,  170,
  754.     0,    0,   12,   13,    0,  171,  172,   14,   15,  173,
  755.     0,  174,  175,    0,  176,  177,  178,  179,  180,   16,
  756.   181,   17,   18,   19,    0,   21,  182,  130,    0,  130,
  757.    22,   23,   24,   25,    0,    0,    0,   26,    0,   29,
  758.    30,   31,   32,   33,   35,  233,    0,   27,  234,   28,
  759.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  760.     0,    0,    0,    0,   87,    0,   88,    0,    0,    0,
  761.   107,  107,    0,    0,  107,  107,    0,  107,  107,  107,
  762.   107,  107,    0,  107,  107,    0,  107,  107,  107,  107,
  763.   107,  107,  107,  107,  107,  107,    0,  107,  107,    0,
  764.     0,    0,  107,  107,  107,  107,    0,    0,    0,  107,
  765.     0,  107,  107,  107,  107,  107,   35,  235,    0,   27,
  766.   236,   28,    0,    0,    0,    0,    0,    0,    0,    0,
  767.     0,    0,    0,    0,    0,    0,   87,    0,   88,    0,
  768.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  769.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  770.     0,    0,    0,  130,  130,    0,    0,  130,  130,    0,
  771.   130,  130,  130,  130,  130,    0,  130,  130,    0,  130,
  772.   130,  130,  130,  130,  130,  130,  130,  130,  130,    0,
  773.   130,  130,    0,    0,    0,  130,  130,  130,  130,    0,
  774.     0,    0,  130,    0,  130,  130,  130,  130,  130,   11,
  775.     0,    0,    0,   12,   13,    0,  171,  172,   14,   15,
  776.     0,    0,    0,    0,    0,  176,  177,  178,  179,  180,
  777.    16,    0,   17,   18,   19,    0,   21,  182,    0,    0,
  778.     0,   22,   23,   24,   25,    0,    0,    0,   26,    0,
  779.    29,   30,   31,   32,   33,   35,  237,    0,   27,  238,
  780.    28,    0,    0,   11,    0,    0,    0,   12,   13,    0,
  781.     0,    0,   14,   15,    0,   87,    0,   88,    0,    0,
  782.     0,    0,    0,    0,   16,    0,   17,   18,   19,    0,
  783.    21,    0,    0,    0,    0,   22,   23,   24,   25,   85,
  784.    86,    0,   26,    0,   29,   30,   31,   32,   33,   35,
  785.   242,    0,   27,  243,   28,    0,    0,    0,    0,    0,
  786.     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
  787.     0,   88,    0,    0,    0,   11,    0,    0,    0,   12,
  788.    13,    0,    0,    0,   14,   15,    0,    0,    0,    0,
  789.     0,    0,    0,    0,    0,    0,   16,    0,   17,   18,
  790.    19,   35,   21,    0,   27,  108,   28,   22,   23,   24,
  791.    25,   85,   86,    0,   26,    0,   29,   30,   31,   32,
  792.    33,   87,    0,   88,    0,    0,    0,    0,    0,    0,
  793.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  794.     0,    0,    0,    0,    0,    0,    0,   35,  152,    0,
  795.    27,    0,   28,    0,    0,    0,    0,    0,    0,    0,
  796.     0,    0,    0,    0,    0,    0,    0,   87,    0,   88,
  797.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  798.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  799.     0,    0,    0,   35,    0,    0,   27,  157,   28,    0,
  800.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  801.     0,    0,    0,   87,   11,   88,    0,    0,   12,   13,
  802.     0,    0,    0,   14,   15,    0,    0,    0,    0,    0,
  803.     0,    0,    0,    0,    0,   16,    0,   17,   18,   19,
  804.    35,   21,    0,   27,  160,   28,   22,   23,   24,   25,
  805.    85,   86,    0,   26,    0,   29,   30,   31,   32,   33,
  806.    87,    0,   88,    0,    0,    0,    0,    0,   11,    0,
  807.     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
  808.     0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
  809.     0,   17,   18,   19,   35,   21,    0,   27,  162,   28,
  810.    22,   23,   24,   25,   85,   86,    0,   26,    0,   29,
  811.    30,   31,   32,   33,   87,    0,   88,    0,    0,    0,
  812.    11,    0,    0,    0,   12,   13,    0,    0,    0,   14,
  813.    15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  814.     0,   16,    0,   17,   18,   19,    0,   21,    0,    0,
  815.     0,    0,   22,   23,   24,   25,   85,   86,    0,   26,
  816.     0,   29,   30,   31,   32,   33,   11,    0,    0,    0,
  817.    12,   13,    0,    0,   35,   14,   15,   27,  163,   28,
  818.     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
  819.    18,   19,    0,   21,   87,    0,   88,    0,   22,   23,
  820.    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
  821.    32,   33,   11,    0,    0,    0,   12,   13,    0,    0,
  822.    35,   14,   15,   27,  168,   28,    0,    0,    0,    0,
  823.     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
  824.    87,    0,   88,    0,   22,   23,   24,   25,   85,   86,
  825.     0,   26,    0,   29,   30,   31,   32,   33,    0,   11,
  826.     0,    0,    0,   12,   13,    0,    0,   35,   14,   15,
  827.    27,  169,   28,    0,    0,    0,    0,    0,    0,    0,
  828.    16,    0,   17,   18,   19,    0,   21,   87,    0,   88,
  829.     0,   22,   23,   24,   25,   85,   86,    0,   26,    0,
  830.    29,   30,   31,   32,   33,    0,    0,    0,    0,    0,
  831.     0,    0,    0,   11,    0,    0,    0,   12,   13,    0,
  832.     0,   35,   14,   15,   27,    0,   28,    0,    0,    0,
  833.     0,    0,    0,    0,   16,    0,   17,   18,   19,  191,
  834.    21,   87,    0,   88,    0,   22,   23,   24,   25,   85,
  835.    86,    0,   26,    0,   29,   30,   31,   32,   33,    0,
  836.     0,    0,    0,    0,    0,    0,    0,   35,  240,    0,
  837.    27,    0,   28,    0,    0,    0,    0,    0,    0,    0,
  838.     0,    0,    0,    0,    0,    0,    0,   87,    0,   88,
  839.     0,    0,    0,   11,    0,    0,    0,   12,   13,    0,
  840.     0,    0,   14,   15,    0,    0,    0,    0,    0,    0,
  841.     0,    0,    0,    0,   16,    0,   17,   18,   19,    0,
  842.    21,    0,    0,    0,    0,   22,   23,   24,   25,   85,
  843.    86,    0,   26,    0,   29,   30,   31,   32,   33,   11,
  844.     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
  845.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  846.    16,    0,   17,   18,   19,    0,   21,    0,    0,    0,
  847.     0,   22,   23,   24,   25,   85,   86,    0,   26,    0,
  848.    29,   30,   31,   32,   33,    0,   11,    0,    0,    0,
  849.    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
  850.     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
  851.    18,   19,    0,   21,    0,    0,    0,    0,   22,   23,
  852.    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
  853.    32,   33,   35,  244,    0,   27,    0,   28,    0,    0,
  854.    11,    0,    0,    0,   12,   13,    0,    0,    0,   14,
  855.    15,    0,   87,    0,   88,    0,    0,    0,    0,    0,
  856.     0,   16,    0,   17,   18,   19,    0,   21,    0,    0,
  857.     0,    0,   22,   23,   24,   25,   85,   86,    0,   26,
  858.     0,   29,   30,   31,   32,   33,   11,    0,    0,    0,
  859.    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
  860.     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
  861.    18,   19,    0,   21,    0,    0,    0,    0,   22,   23,
  862.    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
  863.    32,   33,   35,  275,    0,   27,    0,   28,    0,    0,
  864.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  865.     0,    0,   87,    0,   88,    0,    0,    0,    0,    0,
  866.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  867.     0,    0,    0,    0,    0,    0,    0,    0,   35,  281,
  868.     0,   27,    0,   28,    0,    0,    0,    0,    0,    0,
  869.     0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
  870.    88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  871.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  872.     0,    0,    0,    0,   35,  282,    0,   27,    0,   28,
  873.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  874.     0,    0,    0,    0,   87,    0,   88,    0,    0,    0,
  875.     0,   11,    0,    0,    0,   12,   13,    0,    0,    0,
  876.    14,   15,    0,    0,    0,    0,    0,    0,    0,    0,
  877.     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
  878.     0,    0,    0,   22,   23,   24,   25,   85,   86,    0,
  879.    26,    0,   29,   30,   31,   32,   33,   35,  283,    0,
  880.    27,    0,   28,    0,    0,    0,    0,    0,    0,    0,
  881.     0,    0,    0,    0,    0,    0,    0,   87,    0,   88,
  882.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  883.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  884.     0,    0,    0,   35,  284,    0,   27,    0,   28,    0,
  885.     0,   11,    0,    0,    0,   12,   13,    0,    0,    0,
  886.    14,   15,    0,   87,    0,   88,    0,    0,    0,    0,
  887.     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
  888.     0,    0,    0,   22,   23,   24,   25,   85,   86,    0,
  889.    26,    0,   29,   30,   31,   32,   33,   11,    0,    0,
  890.     0,   12,   13,    0,    0,    0,   14,   15,   35,    0,
  891.     0,   27,    0,   28,    0,    0,    0,    0,   16,    0,
  892.    17,   18,   19,    0,   21,    0,    0,    0,    0,   22,
  893.    23,   24,   25,   85,   86,    0,   26,    0,   29,   30,
  894.    31,   32,   33,   11,    0,    0,    0,   12,   13,    0,
  895.     0,    0,   14,   15,    0,    0,    0,    0,    0,    0,
  896.     0,    0,    0,    0,   16,    0,   17,   18,   19,    0,
  897.    21,    0,    0,    0,    0,   22,   23,   24,   25,   85,
  898.    86,    0,   26,    0,   29,   30,   31,   32,   33,   35,
  899.   285,   34,   27,    0,   28,    0,    0,    0,    0,    0,
  900.     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
  901.     0,   88,    0,    0,    0,    0,   11,    0,    0,    0,
  902.    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
  903.     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
  904.    18,   19,   35,   21,    0,   27,    0,   28,   22,   23,
  905.    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
  906.    32,   33,   11,    0,    0,    0,   12,   13,    0,    0,
  907.     0,   14,   15,    0,    0,    0,    0,    0,    0,    0,
  908.     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
  909.     0,    0,    0,    0,   22,   23,   24,   25,   85,   86,
  910.     0,   26,    0,   29,   30,   31,   32,   33,   35,  287,
  911.     0,   27,    0,   28,    0,    0,    0,    0,    0,    0,
  912.     0,    0,    0,    0,    0,    9,   10,   11,   87,    0,
  913.    88,   12,   13,    0,    0,    0,   14,   15,    0,    0,
  914.     0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
  915.    17,   18,   19,   20,   21,    0,    0,    0,    0,   22,
  916.    23,   24,   25,    0,    0,    0,   26,    0,   29,   30,
  917.    31,   32,   33,   35,    0,    0,   27,    0,   28,    0,
  918.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  919.     0,    0,    0,   87,    0,   88,    0,    0,    0,    0,
  920.     0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
  921.     0,    0,   12,   13,    0,    0,    0,   14,   15,   35,
  922.     0,    0,   27,    0,   28,    0,    0,    0,    0,   16,
  923.     0,   17,   18,   19,    0,   21,    0,    0,  291,    0,
  924.    22,   23,   24,   25,   85,   86,    0,   26,    0,   29,
  925.    30,   31,   32,   33,    0,    0,    0,    0,    0,    0,
  926.     0,  115,    0,    0,    0,   12,   13,    0,    0,   35,
  927.    14,   15,   27,    0,   28,    0,    0,    0,    0,    0,
  928.     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
  929.     0,    0,    0,   22,   23,   24,   25,    0,    0,    0,
  930.    26,    0,   29,   30,   31,   32,   33,    0,    0,    0,
  931.     0,    0,    0,    0,    0,   35,    0,    0,   27,    0,
  932.    28,    0,    0,    0,    0,    0,    0,   11,    0,    0,
  933.     0,   12,   13,    0,    0,    0,   14,   15,    0,    0,
  934.     0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
  935.    17,   18,   19,    0,   21,    0,    0,    0,    0,   22,
  936.    23,   24,   25,   85,   86,    0,   26,    0,   29,   30,
  937.    31,   32,   33,   35,    0,    0,   27,    0,   28,    0,
  938.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  939.     0,    0,   11,    0,    0,    0,   12,   13,    0,    0,
  940.     0,   14,   15,    0,    0,    0,    0,    0,    0,    0,
  941.     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
  942.     0,    0,    0,    0,   22,   23,   24,   25,   85,   86,
  943.     0,   26,    0,   29,   30,   31,   32,   33,   11,    0,
  944.     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
  945.     0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
  946.     0,   17,   18,   19,    0,   21,    0,    0,    0,    0,
  947.    22,   23,   24,   25,    0,    0,    0,   26,    0,   29,
  948.    30,   31,   32,   33,    0,    0,    0,    0,  136,    0,
  949.     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
  950.     0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
  951.     0,   17,   18,   19,    0,   21,    0,    0,    0,    0,
  952.    22,   23,   24,   25,    0,    0,    0,   26,    0,   29,
  953.    30,   31,   32,   33,  204,    0,    0,    0,   12,   13,
  954.     0,    0,    0,   14,   15,    0,    0,  101,  102,    0,
  955.     0,    0,    0,    0,    0,   16,    0,   17,   18,   19,
  956.     0,   21,    0,    0,    0,    0,   22,   23,   24,   25,
  957.     0,    0,    0,   26,    0,   29,   30,   31,   32,   33,
  958.   131,    0,  133,  134,    0,    0,    0,    0,    0,    0,
  959.     0,    0,  263,    0,    0,    0,   12,   13,    0,    0,
  960.     0,   14,   15,    0,    0,    0,    0,    0,  155,  156,
  961.     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
  962.     0,    0,    0,    0,   22,   23,   24,   25,    0,    0,
  963.     0,   26,    0,   29,   30,   31,   32,   33,    0,    0,
  964.     0,    0,    0,    0,    0,    0,    0,    0,    0,   67,
  965.    68,    0,    0,    0,    0,   72,    0,    0,    0,    0,
  966.     0,    0,    0,    0,   89,    0,    0,    0,    0,    0,
  967.   209,    0,    0,    0,    0,    0,   89,    0,    0,    0,
  968.     0,  217,    0,  219,    0,  220,    0,    0,    0,    0,
  969.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  970.     0,    0,    0,    0,    0,    0,  241,    0,    0,    0,
  971.     0,    0,    0,  142,  143,  144,  145,  146,  147,    0,
  972.     0,  258,  259,  260,  261,  262,   89,    0,   89,    0,
  973.     0,    0,   89,   89,    0,    0,   89,    0,   89,   89,
  974.     0,    0,    0,   89,   89,    0,    0,    0,    0,    0,
  975.     0,    0,    0,    0,   89,    0,    0,    0,    0,   89,
  976.    89,   89,   89,    0,    0,    0,    0,    0,    0,  286,
  977.     0,    0,    0,  288,  289,  290,    0,    0,    0,  295,
  978.    89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  979.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  980.     0,    0,    0,    0,  308,  309,    0,    0,   89,    0,
  981.   313,    0,    0,    0,    0,    0,    0,    0,    0,   89,
  982.    89,    0,   89,   89,   89,   89,    0,   89,    0,   89,
  983.    89,    0,    0,    0,    0,    0,    0,   89,   89,    0,
  984.     0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
  985.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  986.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  987.     0,    0,    0,    0,   89,    0,    0,    0,    0,    0,
  988.     0,    0,    0,    0,    0,    0,   89,   89,   89,   89,
  989.    89,    0,   89,   89,   89,
  990. };
  991. short yycheck[] = {                                      41,
  992.     0,  123,   62,  123,   41,   59,   41,   59,  214,   63,
  993.    59,   63,  123,   63,   59,   63,   94,   59,   50,   38,
  994.    35,   63,   35,  291,   41,  286,   63,   41,   63,   91,
  995.    41,   63,   64,  301,  112,   40,   51,   37,   51,    7,
  996.    40,   41,   42,   43,   44,   45,   63,   47,   59,   63,
  997.    35,   41,   63,   41,   44,    0,   44,   41,   58,   59,
  998.    60,   29,   62,   63,  124,   44,   51,   35,  261,  262,
  999.    37,   40,  261,   60,  288,   42,   43,   40,   45,   63,
  1000.    47,  101,  102,   51,   63,  291,  118,  301,  302,   60,
  1001.    40,   16,   37,   93,   94,  301,   41,   42,   43,   44,
  1002.    45,   63,   47,   40,   63,   30,   31,   40,  292,   40,
  1003.     0,  131,  112,   58,   59,   60,   84,   62,   63,  303,
  1004.   304,   40,   40,  123,  124,  123,   40,   94,   44,  112,
  1005.    98,   41,   41,   37,   63,   41,   63,  292,   42,  171,
  1006.   172,  261,  262,   47,  280,  112,   41,   37,   93,   94,
  1007.    40,   41,   42,   43,   41,   45,   44,   47,   44,   93,
  1008.   292,   41,   41,   40,   40,  133,  134,  112,   58,   59,
  1009.    60,   40,   62,   63,  292,  290,  195,   41,  123,  124,
  1010.    59,   59,  272,   91,   41,   40,   93,  271,   41,   41,
  1011.    94,    0,   41,   93,   59,   41,   -1,   51,   -1,  219,
  1012.    -1,  211,   -1,   93,   94,  265,   -1,   -1,  112,   41,
  1013.    -1,  260,  261,  262,   -1,  260,  261,  262,  260,  261,
  1014.   262,   -1,  112,  148,  256,   40,   -1,   59,   43,   -1,
  1015.    45,   63,   -1,  123,  124,  289,  290,  289,  290,  289,
  1016.   290,  289,  290,   -1,  212,  213,   -1,  289,  290,  260,
  1017.   261,  262,  289,  290,  289,  290,   -1,  257,  258,  259,
  1018.   260,  261,  262,  263,  264,  265,  286,   -1,  268,  269,
  1019.    -1,   -1,  289,  290,  274,  289,  290,   -1,  289,  290,
  1020.   280,   41,  282,  283,  284,  285,  286,   -1,  288,  289,
  1021.   290,  291,  292,  293,  294,  295,  296,   -1,  298,   59,
  1022.   300,  301,  302,  303,  304,  289,  290,  274,  276,   -1,
  1023.   289,  290,  257,  258,  259,  260,  261,  262,  263,  264,
  1024.   265,  292,   -1,  268,  269,  293,   -1,  289,  290,  274,
  1025.   289,  290,  303,  304,   -1,  280,   41,  282,  283,  284,
  1026.   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
  1027.   295,  296,   -1,  298,   59,  300,  301,  302,  303,  304,
  1028.   289,  290,  289,  290,   -1,   -1,   -1,  257,  258,  259,
  1029.   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
  1030.     0,  260,  261,  262,  274,   -1,   -1,   -1,   -1,   -1,
  1031.   280,   -1,  282,  283,  284,  285,  286,   41,  288,  289,
  1032.   290,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
  1033.   300,  301,  302,  303,  304,   59,   -1,   37,   -1,   -1,
  1034.    40,   41,   42,   43,   44,   45,   -1,   47,  260,  261,
  1035.   262,   -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,
  1036.    -1,   -1,   62,   63,  259,   -1,   -1,  217,  263,  264,
  1037.    -1,   -1,   -1,  268,  269,   -1,   -1,  289,  290,   -1,
  1038.    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
  1039.    -1,  286,   37,   93,   94,   40,   41,   42,   43,   44,
  1040.    45,   -1,   47,  298,   -1,  300,  301,  302,  303,  304,
  1041.     0,   -1,  112,   58,   59,   60,   -1,   62,   63,   -1,
  1042.   260,  261,  262,  123,  124,   -1,   -1,   -1,   -1,   -1,
  1043.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  288,  289,
  1044.   290,   -1,   -1,   -1,   -1,   -1,   -1,   37,   93,   94,
  1045.    40,   41,   42,   43,   44,   45,   -1,   47,  308,  309,
  1046.    -1,   -1,   -1,  313,   -1,   -1,   -1,   41,   58,   59,
  1047.    60,   -1,   62,   63,   -1,  260,  261,  262,  123,  124,
  1048.    -1,   -1,   -1,    0,   -1,   59,   -1,   -1,   -1,   63,
  1049.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
  1050.    -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,
  1051.    -1,   -1,   -1,   41,   -1,   -1,   59,   -1,   -1,   62,
  1052.    37,   -1,  112,   40,   41,   42,   43,   44,   45,   -1,
  1053.    47,   59,   -1,  123,  124,   63,  260,  261,  262,   -1,
  1054.    -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
  1055.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
  1056.   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
  1057.    -1,   -1,   -1,   -1,  274,   -1,   93,   -1,   -1,   -1,
  1058.   280,  124,  282,  283,  284,  285,  286,   -1,  288,  289,
  1059.   290,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
  1060.   300,  301,  302,  303,  304,   -1,  123,  124,   -1,   -1,
  1061.    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
  1062.   265,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,  274,
  1063.    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
  1064.   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
  1065.   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
  1066.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
  1067.   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
  1068.    -1,   -1,   -1,   -1,  274,   -1,  260,  261,  262,   -1,
  1069.   280,   -1,  282,  283,  284,  285,  286,   -1,  288,  289,
  1070.    -1,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
  1071.   300,  301,  302,  303,  304,  289,  290,  260,  261,  262,
  1072.    -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1073.    -1,   -1,  260,  261,  262,   -1,   -1,   -1,   -1,   -1,
  1074.   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
  1075.    -1,  268,  269,    0,   -1,   -1,   -1,  274,   -1,   -1,
  1076.    -1,  289,  290,  280,   -1,  282,  283,  284,  285,  286,
  1077.    -1,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  1078.    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,   -1,
  1079.    37,   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,
  1080.    47,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
  1081.    -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
  1082.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1083.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1084.    -1,   -1,   -1,   -1,   37,   -1,   93,   40,   41,   42,
  1085.    43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
  1086.    -1,    0,   -1,   -1,   -1,   58,   59,   60,   -1,   62,
  1087.    63,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
  1088.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1089.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
  1090.    93,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
  1091.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
  1092.    59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
  1093.   123,  124,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
  1094.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1095.    -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
  1096.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1097.    -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,
  1098.    45,   -1,   47,   -1,  123,  124,   -1,   -1,   -1,   -1,
  1099.    -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
  1100.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1101.   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
  1102.    -1,  268,  269,   -1,   -1,   -1,   -1,  274,   93,   -1,
  1103.    -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,  286,
  1104.    -1,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  1105.    -1,  298,   -1,  300,  301,  302,  303,  304,  123,  124,
  1106.    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
  1107.   263,  264,  265,   -1,   -1,  268,  269,   -1,   -1,   -1,
  1108.    -1,  274,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
  1109.   283,  284,  285,  286,   -1,  288,  289,  290,  291,  292,
  1110.   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
  1111.   303,  304,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
  1112.   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
  1113.   269,   -1,   -1,   -1,   -1,  274,   -1,   -1,   -1,   -1,
  1114.    -1,  280,   -1,  282,  283,  284,  285,  286,   -1,  288,
  1115.   289,  290,  291,  292,  293,  294,  295,  296,   -1,  298,
  1116.    -1,  300,  301,  302,  303,  304,   -1,   -1,   -1,   -1,
  1117.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1118.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1119.    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
  1120.   265,   -1,   -1,  268,  269,    0,   -1,   -1,   -1,  274,
  1121.    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
  1122.   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
  1123.   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
  1124.    -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,
  1125.    45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,    0,
  1126.    -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
  1127.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1128.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1129.    -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,   40,
  1130.    41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  1131.    -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,   60,
  1132.    -1,   62,   63,   -1,   -1,   -1,   -1,   -1,  123,  124,
  1133.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1134.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1135.    -1,   37,   93,   94,   40,   41,   42,   43,   44,   45,
  1136.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1137.    -1,  112,   58,   59,   60,   -1,   62,   -1,   -1,   -1,
  1138.    -1,   -1,  123,  124,   -1,   -1,   -1,    0,   -1,   -1,
  1139.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1140.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,
  1141.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1142.    -1,   -1,   -1,   -1,   -1,   -1,  112,   40,   41,   -1,
  1143.    43,   44,   45,   -1,   -1,   -1,   -1,  123,  124,   -1,
  1144.    -1,   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,
  1145.    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1146.    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
  1147.   265,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,  274,
  1148.    93,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
  1149.   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
  1150.   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
  1151.   123,  124,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
  1152.   261,  262,  263,  264,  265,   -1,   -1,  268,  269,   -1,
  1153.    -1,   -1,   -1,  274,   -1,   -1,   -1,   -1,   -1,  280,
  1154.    -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  1155.   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
  1156.    -1,   -1,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
  1157.    -1,  257,  258,  259,  260,  261,  262,  263,  264,  265,
  1158.    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,  274,   -1,
  1159.    -1,   -1,   -1,   -1,  280,    0,  282,  283,  284,  285,
  1160.   286,   -1,  288,   -1,   -1,  291,  292,  293,  294,  295,
  1161.   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
  1162.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1163.    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
  1164.    45,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
  1165.   263,  264,  265,    0,   59,  268,  269,   -1,   -1,   -1,
  1166.    -1,  274,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
  1167.   283,  284,  285,  286,   -1,  288,  289,  290,  291,  292,
  1168.   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
  1169.   303,  304,   -1,   40,   41,   -1,   43,   44,   45,   -1,
  1170.    -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1171.    -1,   58,   59,   60,   -1,   62,   63,   -1,  123,   -1,
  1172.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1173.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1174.    -1,   40,   41,   -1,   -1,   44,   93,   -1,   -1,    0,
  1175.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
  1176.    59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
  1177.    -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
  1178.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  1179.    41,   -1,   -1,   44,   93,   -1,   -1,   -1,   -1,   -1,
  1180.    -1,    0,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
  1181.    -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1182.    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
  1183.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1184.    -1,   40,   93,   -1,   43,   -1,   45,   -1,   -1,   -1,
  1185.    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
  1186.    59,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,
  1187.    -1,   -1,  123,  124,   -1,  280,   -1,  282,  283,  284,
  1188.   285,  286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,
  1189.    -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,  304,
  1190.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1191.   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
  1192.    -1,  268,  269,   40,  123,   -1,   43,  274,   45,   -1,
  1193.    -1,   -1,   -1,  280,    0,  282,  283,  284,  285,  286,
  1194.    -1,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  1195.    -1,  298,   -1,  300,  301,  302,  303,  304,  257,  258,
  1196.   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
  1197.   269,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
  1198.    -1,  280,   -1,  282,  283,  284,  285,  286,   -1,  288,
  1199.   289,  290,  291,  292,  293,  294,  295,  296,   -1,  298,
  1200.    -1,  300,  301,  302,  303,  304,  257,  258,  259,  260,
  1201.   261,  262,  263,  264,  265,   -1,   -1,  268,  269,   -1,
  1202.    40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,  280,
  1203.    -1,  282,  283,  284,  285,  286,   -1,  288,  289,  290,
  1204.   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
  1205.   301,  302,  303,  304,   -1,   -1,   -1,  123,  257,  258,
  1206.   259,  260,  261,  262,  263,  264,    0,   -1,   -1,  268,
  1207.   269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1208.    -1,  280,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1209.    -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,
  1210.    -1,  300,  301,  302,  303,  304,   40,   -1,   -1,   43,
  1211.    -1,   45,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,
  1212.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
  1213.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1214.    -1,   -1,  259,   -1,  261,  262,  263,  264,   -1,   -1,
  1215.    -1,  268,  269,   -1,   40,   -1,   -1,   43,   -1,   45,
  1216.    -1,   -1,   -1,  280,    0,  282,  283,  284,   -1,  286,
  1217.    -1,   -1,   -1,   59,  291,  292,  293,  294,   -1,   -1,
  1218.    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,  123,
  1219.    -1,  257,  258,  259,   -1,   -1,   -1,  263,  264,   -1,
  1220.    -1,   -1,  268,  269,   40,   -1,   -1,   43,   -1,   45,
  1221.    -1,   -1,   -1,    0,  280,   -1,  282,  283,  284,  285,
  1222.   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
  1223.    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,  259,
  1224.    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
  1225.    -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
  1226.   280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,
  1227.    -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,
  1228.   300,  301,  302,  303,  304,   -1,   -1,  123,   -1,   -1,
  1229.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1230.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1231.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1232.    -1,   -1,   -1,  257,  258,  259,  260,   -1,  262,  263,
  1233.   264,   -1,   -1,   -1,  268,  269,  123,   -1,   -1,   -1,
  1234.    -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,
  1235.   284,  285,  286,   -1,   -1,   -1,   -1,  291,  292,  293,
  1236.   294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,
  1237.   304,  257,  258,  259,  260,  261,  262,  263,  264,   -1,
  1238.    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
  1239.    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,
  1240.   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
  1241.    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
  1242.    -1,  257,  258,  259,   -1,   -1,   -1,  263,  264,   -1,
  1243.    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
  1244.    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,
  1245.   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
  1246.    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
  1247.   257,  258,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
  1248.    -1,  268,  269,    0,   -1,   -1,   -1,   -1,   -1,   -1,
  1249.    -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,  286,
  1250.    -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,
  1251.    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,   -1,
  1252.    37,   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,
  1253.    47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,
  1254.    -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
  1255.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1256.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1257.    -1,   -1,   -1,   -1,   -1,   37,   93,   94,   40,   41,
  1258.    42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
  1259.    -1,   -1,   -1,   -1,   -1,  112,   58,   59,   -1,   -1,
  1260.    62,   63,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
  1261.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1262.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1263.    -1,   93,   94,   -1,   -1,   -1,   -1,    0,   -1,   -1,
  1264.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1265.   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1266.    -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1267.    -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,
  1268.    -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,   -1,
  1269.    -1,   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,
  1270.    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1271.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1272.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1273.    93,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1274.   257,  258,  259,  260,  261,  262,  263,  264,  265,  112,
  1275.    -1,  268,  269,   -1,   -1,   -1,   -1,  274,   -1,   -1,
  1276.   123,  124,   -1,  280,   -1,  282,  283,  284,  285,  286,
  1277.    -1,  288,  289,  290,  291,   -1,  293,  294,  295,  296,
  1278.    -1,  298,   -1,  300,  301,  302,   -1,   -1,   -1,   -1,
  1279.    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
  1280.   262,  263,  264,  265,   -1,   -1,  268,  269,   14,   -1,
  1281.    -1,   -1,  274,   -1,   -1,   -1,   -1,   -1,  280,   -1,
  1282.   282,  283,  284,  285,  286,   -1,  288,  289,  290,  291,
  1283.    -1,  293,  294,  295,  296,   -1,  298,   -1,  300,  301,
  1284.   302,   -1,   -1,   49,   50,   51,   -1,   -1,   -1,   -1,
  1285.    56,   57,   -1,   59,   60,   61,   -1,   63,   64,   65,
  1286.    66,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1287.    -1,   -1,   -1,   -1,   -1,   81,   -1,   -1,   -1,   85,
  1288.    86,   87,   88,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1289.    -1,   -1,   -1,   -1,  257,  258,   -1,  260,  261,  262,
  1290.    -1,   -1,  265,   -1,   -1,   -1,  112,   -1,   -1,   -1,
  1291.    -1,  274,  118,   -1,   -1,   -1,   -1,   -1,   -1,  125,
  1292.    -1,   -1,  285,   -1,   -1,  288,  289,  290,  291,  292,
  1293.   293,  294,  295,  296,   -1,   -1,   -1,   -1,   -1,   -1,
  1294.    -1,   -1,   -1,   -1,  150,  151,   -1,   -1,   -1,  155,
  1295.   156,   -1,   -1,  159,  160,  161,  162,  163,   -1,   -1,
  1296.    -1,   -1,  168,  169,   -1,  171,  172,   -1,   -1,   -1,
  1297.   176,   -1,   -1,   -1,  180,   -1,    0,   -1,   -1,   -1,
  1298.    -1,   -1,   -1,   -1,  190,  191,   -1,   -1,   -1,   -1,
  1299.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1300.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  214,   -1,
  1301.    -1,  217,   -1,   37,   -1,   -1,    0,   41,   42,   -1,
  1302.    44,   -1,   -1,   47,  230,   -1,  232,   -1,  234,   -1,
  1303.   236,   -1,  238,   -1,   58,   59,   60,  243,   62,   63,
  1304.    -1,   -1,  248,  249,   -1,   -1,   -1,   -1,   -1,   -1,
  1305.   256,  257,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
  1306.    44,   -1,   -1,   47,    0,   -1,   -1,   -1,   -1,   93,
  1307.    94,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
  1308.    -1,   -1,  288,  289,  290,  291,   -1,   -1,  112,   -1,
  1309.   296,   -1,   -1,   -1,   -1,  301,   -1,   -1,   -1,  123,
  1310.   124,   37,  308,  309,    0,   41,   42,  313,   44,   93,
  1311.    94,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1312.    -1,   -1,   58,   59,   60,   -1,   62,   63,  112,   -1,
  1313.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
  1314.   124,   37,   -1,   -1,   -1,   41,   42,   -1,   44,   -1,
  1315.    -1,   47,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,
  1316.    -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,
  1317.    -1,   -1,   -1,   -1,   -1,   -1,  112,   -1,   -1,   -1,
  1318.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   40,
  1319.    -1,   -1,   43,   -1,   45,   -1,   -1,   93,   94,   -1,
  1320.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,
  1321.    -1,   62,   -1,   -1,   -1,   -1,  112,   -1,   -1,   -1,
  1322.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,
  1323.    -1,   -1,   -1,  257,  258,   -1,  260,  261,  262,   -1,
  1324.    -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1325.   274,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1326.    -1,  285,   -1,   -1,  288,  289,  290,  291,  292,  293,
  1327.   294,  295,  296,  257,  258,   -1,  260,  261,  262,   -1,
  1328.    -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1329.   274,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1330.    -1,  285,   -1,   -1,  288,  289,  290,  291,  292,  293,
  1331.   294,  295,  296,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1332.    -1,  257,  258,   -1,  260,  261,  262,   -1,   -1,  265,
  1333.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,
  1334.    -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,  285,
  1335.    -1,   -1,  288,  289,  290,  291,  292,  293,  294,  295,
  1336.   296,  257,  258,   -1,  260,  261,  262,   -1,   -1,  265,
  1337.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,
  1338.    37,   -1,   -1,    0,   41,   42,   -1,   44,   -1,  285,
  1339.    47,   -1,  288,  289,  290,  291,  292,  293,  294,  295,
  1340.   296,   58,   59,   60,   -1,   62,   63,   -1,  259,   -1,
  1341.    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
  1342.    37,   -1,   -1,   -1,   41,   42,   -1,   44,    0,  280,
  1343.    47,  282,  283,  284,   -1,  286,   93,   94,   -1,   -1,
  1344.    -1,   58,   59,   -1,   -1,  296,   63,  298,   -1,  300,
  1345.   301,  302,  303,  304,   -1,  112,   -1,   -1,   -1,   -1,
  1346.    -1,   -1,   -1,   -1,   -1,   37,  123,  124,    0,   41,
  1347.    42,   -1,   44,   -1,   -1,   47,   93,   94,   -1,   -1,
  1348.    -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,
  1349.    -1,   63,   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,
  1350.    -1,   -1,   -1,   -1,   -1,   37,  123,  124,   -1,   41,
  1351.    42,   -1,   44,    0,   -1,   47,   -1,   -1,   -1,   -1,
  1352.    -1,   93,   94,   -1,   -1,   -1,   58,   59,   -1,   -1,
  1353.    -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1354.   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1355.    37,  123,  124,   -1,   41,   42,   -1,   44,   -1,   -1,
  1356.    47,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1357.    -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
  1358.   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1359.    -1,  123,  124,   -1,   40,   41,   -1,   43,   44,   45,
  1360.   257,  258,   -1,  260,  261,  262,   93,   94,  265,   -1,
  1361.    -1,   -1,   -1,   -1,   60,   -1,   62,  274,   -1,   -1,
  1362.    -1,   -1,   -1,   -1,   -1,  112,   -1,   -1,  285,   -1,
  1363.    -1,  288,  289,  290,   -1,   -1,  123,  124,  295,  296,
  1364.   257,  258,   -1,  260,  261,  262,   -1,   -1,  265,   -1,
  1365.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,   -1,
  1366.    40,   -1,   -1,   43,   -1,   45,   -1,   -1,  285,   -1,
  1367.    -1,  288,  289,  290,  291,  292,  293,  294,  295,   59,
  1368.    -1,   -1,   -1,   -1,   -1,  257,  258,   -1,  260,  261,
  1369.   262,   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,
  1370.    -1,   -1,  274,    0,   -1,   -1,   -1,   -1,   -1,   -1,
  1371.    -1,   -1,   -1,  285,   -1,   -1,  288,  289,  290,   -1,
  1372.    -1,   -1,   -1,   -1,   -1,  257,  258,   -1,  260,  261,
  1373.   262,   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,
  1374.    37,   -1,  274,  123,   41,   42,   -1,   44,    0,   -1,
  1375.    47,   -1,   -1,  285,   -1,   -1,  288,  289,  290,   -1,
  1376.    -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
  1377.   257,  258,   -1,  260,  261,  262,   -1,   -1,  265,   -1,
  1378.    -1,   -1,   -1,   -1,   -1,   37,   -1,  274,   -1,   41,
  1379.    42,   -1,   -1,   -1,   -1,   47,   93,   94,  285,   -1,
  1380.    -1,  288,  289,  290,   -1,   -1,   58,   59,   -1,   -1,
  1381.    -1,   63,   -1,  259,   -1,  112,   -1,  263,  264,   -1,
  1382.    -1,   -1,  268,  269,   -1,   40,  123,  124,   43,   -1,
  1383.    45,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
  1384.   286,   93,   94,   -1,   59,  291,  292,  293,  294,  295,
  1385.   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
  1386.   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1387.    -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,  259,
  1388.   260,  261,  262,  263,  264,   -1,  266,  267,  268,  269,
  1389.   270,   -1,  272,  273,   -1,  275,  276,  277,  278,  279,
  1390.   280,  281,  282,  283,  284,   -1,  286,  287,  123,   -1,
  1391.   125,  291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,
  1392.   300,  301,  302,  303,  304,   -1,   -1,   -1,   -1,   40,
  1393.    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  1394.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1395.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1396.   257,  258,   -1,  260,  261,  262,   -1,   -1,  265,   -1,
  1397.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,   -1,
  1398.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  285,   -1,
  1399.    -1,  288,  289,  290,   -1,   -1,   -1,   40,   -1,   -1,
  1400.    43,   -1,   45,   -1,   -1,  257,  258,   -1,  260,  261,
  1401.   262,   -1,  123,  265,  125,   -1,   59,   -1,   -1,   -1,
  1402.    -1,   -1,  274,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1403.    -1,   -1,   -1,  285,   -1,   -1,  288,  289,  290,   -1,
  1404.    -1,   -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,
  1405.    -1,  266,  267,  268,  269,  270,  271,  272,  273,   -1,
  1406.   275,  276,  277,  278,  279,  280,  281,  282,  283,  284,
  1407.    -1,  286,  287,   -1,   -1,   -1,  291,  292,  293,  294,
  1408.   123,   -1,  125,  298,   -1,  300,  301,  302,  303,  304,
  1409.    -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
  1410.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1411.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  1412.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1413.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1414.    -1,   -1,   40,   -1,   -1,   43,   -1,   45,  259,  260,
  1415.    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
  1416.   271,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
  1417.   281,  282,  283,  284,   -1,  286,  287,  123,   -1,  125,
  1418.   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
  1419.   301,  302,  303,  304,   40,   -1,   -1,   43,   -1,   45,
  1420.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1421.    -1,   -1,   -1,   59,   -1,   -1,  259,  260,   -1,   -1,
  1422.   263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
  1423.   273,   -1,  275,  276,  277,  278,  279,  280,  281,  282,
  1424.   283,  284,   -1,  286,  287,   -1,   -1,   -1,  291,  292,
  1425.   293,  294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,
  1426.   303,  304,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,
  1427.    -1,   45,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
  1428.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
  1429.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1430.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1431.    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
  1432.   266,  267,  268,  269,  270,  271,  272,  273,   -1,  275,
  1433.   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
  1434.   286,  287,   -1,   -1,   -1,  291,  292,  293,  294,  123,
  1435.    -1,  125,  298,   -1,  300,  301,  302,  303,  304,   40,
  1436.    -1,  259,   43,   -1,   45,  263,  264,   -1,   -1,   -1,
  1437.   268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1438.    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
  1439.    -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,
  1440.   298,   -1,  300,  301,  302,  303,  304,   40,   -1,   -1,
  1441.    43,   -1,   45,  259,  260,   -1,   -1,  263,  264,   -1,
  1442.   266,  267,  268,  269,  270,  271,  272,  273,   -1,  275,
  1443.   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
  1444.   286,  287,  123,   -1,  125,  291,  292,  293,  294,   -1,
  1445.    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
  1446.    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  1447.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1448.    -1,   -1,   -1,   -1,   -1,  259,  260,   -1,   -1,  263,
  1449.   264,   -1,  266,  267,  268,  269,  270,  271,  272,  273,
  1450.    -1,  275,  276,  277,  278,  279,  280,  281,  282,  283,
  1451.   284,   -1,  286,  287,   -1,   -1,   -1,  291,  292,  293,
  1452.   294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,
  1453.   304,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
  1454.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1455.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1456.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1457.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,  260,
  1458.    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
  1459.   271,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
  1460.   281,  282,  283,  284,   -1,  286,  287,   -1,   -1,   -1,
  1461.   291,  292,  293,  294,  123,   -1,  125,  298,   -1,  300,
  1462.   301,  302,  303,  304,   40,   -1,  259,   43,   -1,   45,
  1463.   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
  1464.    -1,   -1,   -1,   59,   -1,   -1,   -1,  280,   -1,  282,
  1465.   283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,  292,
  1466.   293,  294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,
  1467.   303,  304,   40,   -1,   -1,   43,   -1,   45,  259,  260,
  1468.    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
  1469.   271,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
  1470.   281,  282,  283,  284,   -1,  286,  287,  123,   -1,  125,
  1471.   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
  1472.   301,  302,  303,  304,   40,   -1,   -1,   43,   -1,   45,
  1473.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1474.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  1475.   259,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
  1476.   269,  270,   -1,  272,  273,   -1,  275,  276,  277,  278,
  1477.   279,  280,  281,  282,  283,  284,   -1,  286,  287,   -1,
  1478.    -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,
  1479.    -1,  300,  301,  302,  303,  304,   40,   -1,   -1,   43,
  1480.    -1,   45,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
  1481.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
  1482.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1483.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1484.    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
  1485.   266,  267,  268,  269,  270,   -1,  272,  273,   -1,  275,
  1486.   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
  1487.   286,  287,   -1,   -1,   -1,  291,  292,  293,  294,  123,
  1488.    -1,  125,  298,   -1,  300,  301,  302,  303,  304,   40,
  1489.    -1,  259,   43,   -1,   45,  263,  264,   -1,   -1,   -1,
  1490.   268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1491.    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
  1492.    -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,
  1493.   298,   -1,  300,  301,  302,  303,  304,   -1,   -1,   -1,
  1494.    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
  1495.   266,  267,  268,  269,  270,   -1,  272,  273,   -1,  275,
  1496.   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
  1497.   286,  287,  123,   -1,  125,  291,  292,  293,  294,   -1,
  1498.    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
  1499.    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  1500.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1501.    -1,   -1,   -1,   -1,   -1,  259,  260,   -1,   -1,  263,
  1502.   264,   -1,  266,  267,  268,  269,  270,   -1,  272,  273,
  1503.    -1,  275,  276,  277,  278,  279,  280,  281,  282,  283,
  1504.   284,   -1,  286,  287,   -1,   -1,   -1,  291,  292,  293,
  1505.   294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,
  1506.   304,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
  1507.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1508.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1509.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1510.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,  260,
  1511.    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
  1512.    -1,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
  1513.   281,  282,  283,  284,   -1,  286,  287,   -1,   -1,   -1,
  1514.   291,  292,  293,  294,  123,   -1,  125,  298,   -1,  300,
  1515.   301,  302,  303,  304,   40,   -1,   -1,   43,   -1,   45,
  1516.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1517.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  1518.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1519.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1520.    40,   -1,   -1,   43,   -1,   45,   -1,   -1,  259,  260,
  1521.    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
  1522.    -1,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
  1523.   281,  282,  283,  284,   -1,  286,  287,  123,   -1,  125,
  1524.   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
  1525.   301,  302,  303,  304,   40,   41,   -1,   43,   44,   45,
  1526.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1527.    -1,   -1,   -1,   -1,   60,   -1,   62,   -1,   -1,   -1,
  1528.   259,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
  1529.   269,  270,   -1,  272,  273,   -1,  275,  276,  277,  278,
  1530.   279,  280,  281,  282,  283,  284,   -1,  286,  287,   -1,
  1531.    -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,
  1532.    -1,  300,  301,  302,  303,  304,   40,   41,   -1,   43,
  1533.    44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1534.    -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   -1,
  1535.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1536.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1537.    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
  1538.   266,  267,  268,  269,  270,   -1,  272,  273,   -1,  275,
  1539.   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
  1540.   286,  287,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
  1541.    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,  259,
  1542.    -1,   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,
  1543.    -1,   -1,   -1,   -1,   -1,  275,  276,  277,  278,  279,
  1544.   280,   -1,  282,  283,  284,   -1,  286,  287,   -1,   -1,
  1545.    -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,
  1546.   300,  301,  302,  303,  304,   40,   41,   -1,   43,   44,
  1547.    45,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
  1548.    -1,   -1,  268,  269,   -1,   60,   -1,   62,   -1,   -1,
  1549.    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
  1550.   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
  1551.   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
  1552.    41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,
  1553.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,
  1554.    -1,   62,   -1,   -1,   -1,  259,   -1,   -1,   -1,  263,
  1555.   264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,
  1556.    -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,
  1557.   284,   40,  286,   -1,   43,   44,   45,  291,  292,  293,
  1558.   294,  295,  296,   -1,  298,   -1,  300,  301,  302,  303,
  1559.   304,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,
  1560.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1561.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
  1562.    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1563.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,
  1564.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1565.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1566.    -1,   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,
  1567.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1568.    -1,   -1,   -1,   60,  259,   62,   -1,   -1,  263,  264,
  1569.    -1,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,
  1570.    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
  1571.    40,  286,   -1,   43,   44,   45,  291,  292,  293,  294,
  1572.   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
  1573.    60,   -1,   62,   -1,   -1,   -1,   -1,   -1,  259,   -1,
  1574.    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
  1575.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
  1576.    -1,  282,  283,  284,   40,  286,   -1,   43,   44,   45,
  1577.   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
  1578.   301,  302,  303,  304,   60,   -1,   62,   -1,   -1,   -1,
  1579.   259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
  1580.   269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1581.    -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,
  1582.    -1,   -1,  291,  292,  293,  294,  295,  296,   -1,  298,
  1583.    -1,  300,  301,  302,  303,  304,  259,   -1,   -1,   -1,
  1584.   263,  264,   -1,   -1,   40,  268,  269,   43,   44,   45,
  1585.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
  1586.   283,  284,   -1,  286,   60,   -1,   62,   -1,  291,  292,
  1587.   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
  1588.   303,  304,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
  1589.    40,  268,  269,   43,   44,   45,   -1,   -1,   -1,   -1,
  1590.    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
  1591.    60,   -1,   62,   -1,  291,  292,  293,  294,  295,  296,
  1592.    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,  259,
  1593.    -1,   -1,   -1,  263,  264,   -1,   -1,   40,  268,  269,
  1594.    43,   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1595.   280,   -1,  282,  283,  284,   -1,  286,   60,   -1,   62,
  1596.    -1,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
  1597.   300,  301,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
  1598.    -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
  1599.    -1,   40,  268,  269,   43,   -1,   45,   -1,   -1,   -1,
  1600.    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   58,
  1601.   286,   60,   -1,   62,   -1,  291,  292,  293,  294,  295,
  1602.   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
  1603.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
  1604.    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1605.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,
  1606.    -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
  1607.    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
  1608.    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
  1609.   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
  1610.   296,   -1,  298,   -1,  300,  301,  302,  303,  304,  259,
  1611.    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
  1612.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1613.   280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,
  1614.    -1,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
  1615.   300,  301,  302,  303,  304,   -1,  259,   -1,   -1,   -1,
  1616.   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
  1617.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
  1618.   283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,  292,
  1619.   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
  1620.   303,  304,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
  1621.   259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
  1622.   269,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
  1623.    -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,
  1624.    -1,   -1,  291,  292,  293,  294,  295,  296,   -1,  298,
  1625.    -1,  300,  301,  302,  303,  304,  259,   -1,   -1,   -1,
  1626.   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
  1627.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
  1628.   283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,  292,
  1629.   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
  1630.   303,  304,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
  1631.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1632.    -1,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
  1633.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1634.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
  1635.    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  1636.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,
  1637.    62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1638.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1639.    -1,   -1,   -1,   -1,   40,   41,   -1,   43,   -1,   45,
  1640.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1641.    -1,   -1,   -1,   -1,   60,   -1,   62,   -1,   -1,   -1,
  1642.    -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
  1643.   268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1644.    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
  1645.    -1,   -1,   -1,  291,  292,  293,  294,  295,  296,   -1,
  1646.   298,   -1,  300,  301,  302,  303,  304,   40,   41,   -1,
  1647.    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1648.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,
  1649.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1650.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1651.    -1,   -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,
  1652.    -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
  1653.   268,  269,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,
  1654.    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
  1655.    -1,   -1,   -1,  291,  292,  293,  294,  295,  296,   -1,
  1656.   298,   -1,  300,  301,  302,  303,  304,  259,   -1,   -1,
  1657.    -1,  263,  264,   -1,   -1,   -1,  268,  269,   40,   -1,
  1658.    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,  280,   -1,
  1659.   282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,
  1660.   292,  293,  294,  295,  296,   -1,  298,   -1,  300,  301,
  1661.   302,  303,  304,  259,   -1,   -1,   -1,  263,  264,   -1,
  1662.    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
  1663.    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
  1664.   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
  1665.   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
  1666.    41,  123,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  1667.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,
  1668.    -1,   62,   -1,   -1,   -1,   -1,  259,   -1,   -1,   -1,
  1669.   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
  1670.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
  1671.   283,  284,   40,  286,   -1,   43,   -1,   45,  291,  292,
  1672.   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
  1673.   303,  304,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
  1674.    -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1675.    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
  1676.    -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,  296,
  1677.    -1,  298,   -1,  300,  301,  302,  303,  304,   40,   41,
  1678.    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  1679.    -1,   -1,   -1,   -1,   -1,  257,  258,  259,   60,   -1,
  1680.    62,  263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,
  1681.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,
  1682.   282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,  291,
  1683.   292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,  301,
  1684.   302,  303,  304,   40,   -1,   -1,   43,   -1,   45,   -1,
  1685.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1686.    -1,   -1,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,
  1687.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,   -1,
  1688.    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   40,
  1689.    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,  280,
  1690.    -1,  282,  283,  284,   -1,  286,   -1,   -1,   59,   -1,
  1691.   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
  1692.   301,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
  1693.    -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   40,
  1694.   268,  269,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  1695.    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
  1696.    -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,
  1697.   298,   -1,  300,  301,  302,  303,  304,   -1,   -1,   -1,
  1698.    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
  1699.    45,   -1,   -1,   -1,   -1,   -1,   -1,  259,   -1,   -1,
  1700.    -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,
  1701.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,
  1702.   282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,
  1703.   292,  293,  294,  295,  296,   -1,  298,   -1,  300,  301,
  1704.   302,  303,  304,   40,   -1,   -1,   43,   -1,   45,   -1,
  1705.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1706.    -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
  1707.    -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1708.    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
  1709.    -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,  296,
  1710.    -1,  298,   -1,  300,  301,  302,  303,  304,  259,   -1,
  1711.    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
  1712.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
  1713.    -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,
  1714.   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
  1715.   301,  302,  303,  304,   -1,   -1,   -1,   -1,  259,   -1,
  1716.    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
  1717.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
  1718.    -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,
  1719.   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
  1720.   301,  302,  303,  304,  259,   -1,   -1,   -1,  263,  264,
  1721.    -1,   -1,   -1,  268,  269,   -1,   -1,   47,   48,   -1,
  1722.    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
  1723.    -1,  286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,
  1724.    -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,  304,
  1725.    80,   -1,   82,   83,   -1,   -1,   -1,   -1,   -1,   -1,
  1726.    -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
  1727.    -1,  268,  269,   -1,   -1,   -1,   -1,   -1,  108,  109,
  1728.    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
  1729.    -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,
  1730.    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,   -1,
  1731.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   27,
  1732.    28,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,
  1733.    -1,   -1,   -1,   -1,   42,   -1,   -1,   -1,   -1,   -1,
  1734.   170,   -1,   -1,   -1,   -1,   -1,   54,   -1,   -1,   -1,
  1735.    -1,  181,   -1,  183,   -1,  185,   -1,   -1,   -1,   -1,
  1736.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1737.    -1,   -1,   -1,   -1,   -1,   -1,  206,   -1,   -1,   -1,
  1738.    -1,   -1,   -1,   91,   92,   93,   94,   95,   96,   -1,
  1739.    -1,  221,  222,  223,  224,  225,  104,   -1,  106,   -1,
  1740.    -1,   -1,  110,  111,   -1,   -1,  114,   -1,  116,  117,
  1741.    -1,   -1,   -1,  121,  122,   -1,   -1,   -1,   -1,   -1,
  1742.    -1,   -1,   -1,   -1,  132,   -1,   -1,   -1,   -1,  137,
  1743.   138,  139,  140,   -1,   -1,   -1,   -1,   -1,   -1,  269,
  1744.    -1,   -1,   -1,  273,  274,  275,   -1,   -1,   -1,  279,
  1745.   158,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1746.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1747.    -1,   -1,   -1,   -1,  304,  305,   -1,   -1,  186,   -1,
  1748.   310,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  197,
  1749.   198,   -1,  200,  201,  202,  203,   -1,  205,   -1,  207,
  1750.   208,   -1,   -1,   -1,   -1,   -1,   -1,  215,  216,   -1,
  1751.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  227,
  1752.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1753.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1754.    -1,   -1,   -1,   -1,  252,   -1,   -1,   -1,   -1,   -1,
  1755.    -1,   -1,   -1,   -1,   -1,   -1,  264,  265,  266,  267,
  1756.   268,   -1,  270,  271,  272,
  1757. };
  1758. #define YYFINAL 1
  1759. #ifndef YYDEBUG
  1760. #define YYDEBUG 1
  1761. #endif
  1762. #define YYMAXTOKEN 304
  1763. #if YYDEBUG
  1764. char *yyname[] = {
  1765. "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1766. 0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
  1767. "':'","';'","'<'",0,"'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1768. 0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'p'",0,0,0,0,0,0,0,
  1769. 0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1770. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1771. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1772. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"BEGIN","END","REGEX","SEMINEW",
  1773. "NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF","SPLIT",
  1774. "IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK","CONTINUE","RET","GETLINE",
  1775. "DO","SUB","GSUB","MATCH","FUNCTION","USERFUN","DELETE","ASGNOP","OROR",
  1776. "ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP","RELOP","OR","STRING",
  1777. "UMINUS","NOT","INCR","DECR","FIELD","VFIELD",
  1778. };
  1779. char *yyrule[] = {
  1780. "$accept : program",
  1781. "program : junk hunks",
  1782. "begin : BEGIN '{' maybe states '}' junk",
  1783. "end : END '{' maybe states '}'",
  1784. "end : end NEWLINE",
  1785. "hunks : hunks hunk junk",
  1786. "hunks :",
  1787. "hunk : patpat",
  1788. "hunk : patpat '{' maybe states '}'",
  1789. "hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
  1790. "hunk : '{' maybe states '}'",
  1791. "hunk : begin",
  1792. "hunk : end",
  1793. "arg_list : expr_list",
  1794. "patpat : cond",
  1795. "patpat : cond ',' cond",
  1796. "rel : expr RELOP expr",
  1797. "rel : expr '>' expr",
  1798. "rel : expr '<' expr",
  1799. "rel : '(' rel ')'",
  1800. "cond : expr",
  1801. "cond : match",
  1802. "cond : rel",
  1803. "cond : compound_cond",
  1804. "cond : cond '?' expr ':' expr",
  1805. "compound_cond : '(' compound_cond ')'",
  1806. "compound_cond : cond ANDAND maybe cond",
  1807. "compound_cond : cond OROR maybe cond",
  1808. "compound_cond : NOT cond",
  1809. "match : expr MATCHOP expr",
  1810. "match : expr MATCHOP REGEX",
  1811. "match : REGEX",
  1812. "match : '(' match ')'",
  1813. "term : variable",
  1814. "term : NUMBER",
  1815. "term : STRING",
  1816. "term : term '+' term",
  1817. "term : term '-' term",
  1818. "term : term '*' term",
  1819. "term : term '/' term",
  1820. "term : term '%' term",
  1821. "term : term '^' term",
  1822. "term : term IN VAR",
  1823. "term : cond '?' expr ':' expr",
  1824. "term : variable INCR",
  1825. "term : variable DECR",
  1826. "term : INCR variable",
  1827. "term : DECR variable",
  1828. "term : '-' term",
  1829. "term : '+' term",
  1830. "term : '(' cond ')'",
  1831. "term : GETLINE",
  1832. "term : GETLINE variable",
  1833. "term : GETLINE '<' expr",
  1834. "term : GETLINE variable '<' expr",
  1835. "term : term 'p' GETLINE",
  1836. "term : term 'p' GETLINE variable",
  1837. "term : FUN1",
  1838. "term : FUN1 '(' ')'",
  1839. "term : FUN1 '(' expr ')'",
  1840. "term : FUNN '(' expr_list ')'",
  1841. "term : USERFUN '(' expr_list ')'",
  1842. "term : SPRINTF expr_list",
  1843. "term : SUBSTR '(' expr ',' expr ',' expr ')'",
  1844. "term : SUBSTR '(' expr ',' expr ')'",
  1845. "term : SPLIT '(' expr ',' VAR ',' expr ')'",
  1846. "term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
  1847. "term : SPLIT '(' expr ',' VAR ')'",
  1848. "term : INDEX '(' expr ',' expr ')'",
  1849. "term : MATCH '(' expr ',' REGEX ')'",
  1850. "term : MATCH '(' expr ',' expr ')'",
  1851. "term : SUB '(' expr ',' expr ')'",
  1852. "term : SUB '(' REGEX ',' expr ')'",
  1853. "term : GSUB '(' expr ',' expr ')'",
  1854. "term : GSUB '(' REGEX ',' expr ')'",
  1855. "term : SUB '(' expr ',' expr ',' expr ')'",
  1856. "term : SUB '(' REGEX ',' expr ',' expr ')'",
  1857. "term : GSUB '(' expr ',' expr ',' expr ')'",
  1858. "term : GSUB '(' REGEX ',' expr ',' expr ')'",
  1859. "expr : expr term",
  1860. "expr : term",
  1861. "expr : variable ASGNOP cond",
  1862. "variable : VAR",
  1863. "variable : VAR '[' expr_list ']'",
  1864. "variable : FIELD",
  1865. "variable : VFIELD term",
  1866. "expr_list : expr",
  1867. "expr_list : clist",
  1868. "expr_list :",
  1869. "clist : expr ',' maybe expr",
  1870. "clist : clist ',' maybe expr",
  1871. "clist : '(' clist ')'",
  1872. "junk : junk hunksep",
  1873. "junk :",
  1874. "hunksep : ';'",
  1875. "hunksep : SEMINEW",
  1876. "hunksep : NEWLINE",
  1877. "hunksep : COMMENT",
  1878. "maybe : maybe nlstuff",
  1879. "maybe :",
  1880. "nlstuff : NEWLINE",
  1881. "nlstuff : COMMENT",
  1882. "separator : ';' maybe",
  1883. "separator : SEMINEW maybe",
  1884. "separator : NEWLINE maybe",
  1885. "separator : COMMENT maybe",
  1886. "states : states statement",
  1887. "states :",
  1888. "statement : simple separator maybe",
  1889. "statement : ';' maybe",
  1890. "statement : SEMINEW maybe",
  1891. "statement : compound",
  1892. "simpnull : simple",
  1893. "simpnull :",
  1894. "simple : expr",
  1895. "simple : PRINT expr_list redir expr",
  1896. "simple : PRINT expr_list",
  1897. "simple : PRINTF expr_list redir expr",
  1898. "simple : PRINTF expr_list",
  1899. "simple : BREAK",
  1900. "simple : NEXT",
  1901. "simple : EXIT",
  1902. "simple : EXIT expr",
  1903. "simple : CONTINUE",
  1904. "simple : RET",
  1905. "simple : RET expr",
  1906. "simple : DELETE VAR '[' expr_list ']'",
  1907. "redir : '>'",
  1908. "redir : GRGR",
  1909. "redir : '|'",
  1910. "compound : IF '(' cond ')' maybe statement",
  1911. "compound : IF '(' cond ')' maybe statement ELSE maybe statement",
  1912. "compound : WHILE '(' cond ')' maybe statement",
  1913. "compound : DO maybe statement WHILE '(' cond ')'",
  1914. "compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
  1915. "compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
  1916. "compound : FOR '(' expr ')' maybe statement",
  1917. "compound : '{' maybe states '}' maybe",
  1918. };
  1919. #endif
  1920. #ifndef YYSTYPE
  1921. typedef int YYSTYPE;
  1922. #endif
  1923. #ifdef YYSTACKSIZE
  1924. #undef YYMAXDEPTH
  1925. #define YYMAXDEPTH YYSTACKSIZE
  1926. #else
  1927. #ifdef YYMAXDEPTH
  1928. #define YYSTACKSIZE YYMAXDEPTH
  1929. #else
  1930. #define YYSTACKSIZE 500
  1931. #define YYMAXDEPTH 500
  1932. #endif
  1933. #endif
  1934. int yydebug;
  1935. int yynerrs;
  1936. int yyerrflag;
  1937. int yychar;
  1938. short *yyssp;
  1939. YYSTYPE *yyvsp;
  1940. YYSTYPE yyval;
  1941. YYSTYPE yylval;
  1942. short yyss[YYSTACKSIZE];
  1943. YYSTYPE yyvs[YYSTACKSIZE];
  1944. #define yystacksize YYSTACKSIZE
  1945. #line 397 "a2p.y"
  1946. #include "a2py.c"
  1947. #line 1948 "y.tab.c"
  1948. #define YYABORT goto yyabort
  1949. #define YYREJECT goto yyabort
  1950. #define YYACCEPT goto yyaccept
  1951. #define YYERROR goto yyerrlab
  1952. int
  1953. yyparse()
  1954. {
  1955.     register int yym, yyn, yystate;
  1956. #if YYDEBUG
  1957.     register char *yys;
  1958.     extern char *getenv();
  1959.  
  1960.     if (yys = getenv("YYDEBUG"))
  1961.     {
  1962.         yyn = *yys;
  1963.         if (yyn >= '0' && yyn <= '9')
  1964.             yydebug = yyn - '0';
  1965.     }
  1966. #endif
  1967.  
  1968.     yynerrs = 0;
  1969.     yyerrflag = 0;
  1970.     yychar = (-1);
  1971.  
  1972.     yyssp = yyss;
  1973.     yyvsp = yyvs;
  1974.     *yyssp = yystate = 0;
  1975.  
  1976. yyloop:
  1977.     if (yyn = yydefred[yystate]) goto yyreduce;
  1978.     if (yychar < 0)
  1979.     {
  1980.         if ((yychar = yylex()) < 0) yychar = 0;
  1981. #if YYDEBUG
  1982.         if (yydebug)
  1983.         {
  1984.             yys = 0;
  1985.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1986.             if (!yys) yys = "illegal-symbol";
  1987.             printf("%sdebug: state %d, reading %d (%s)\n",
  1988.                     YYPREFIX, yystate, yychar, yys);
  1989.         }
  1990. #endif
  1991.     }
  1992.     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
  1993.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1994.     {
  1995. #if YYDEBUG
  1996.         if (yydebug)
  1997.             printf("%sdebug: state %d, shifting to state %d\n",
  1998.                     YYPREFIX, yystate, yytable[yyn]);
  1999. #endif
  2000.         if (yyssp >= yyss + yystacksize - 1)
  2001.         {
  2002.             goto yyoverflow;
  2003.         }
  2004.         *++yyssp = yystate = yytable[yyn];
  2005.         *++yyvsp = yylval;
  2006.         yychar = (-1);
  2007.         if (yyerrflag > 0)  --yyerrflag;
  2008.         goto yyloop;
  2009.     }
  2010.     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
  2011.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  2012.     {
  2013.         yyn = yytable[yyn];
  2014.         goto yyreduce;
  2015.     }
  2016.     if (yyerrflag) goto yyinrecovery;
  2017. #ifdef lint
  2018.     goto yynewerror;
  2019. #endif
  2020. yynewerror:
  2021.     yyerror("syntax error");
  2022. #ifdef lint
  2023.     goto yyerrlab;
  2024. #endif
  2025. yyerrlab:
  2026.     ++yynerrs;
  2027. yyinrecovery:
  2028.     if (yyerrflag < 3)
  2029.     {
  2030.         yyerrflag = 3;
  2031.         for (;;)
  2032.         {
  2033.             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
  2034.                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
  2035.             {
  2036. #if YYDEBUG
  2037.                 if (yydebug)
  2038.                     printf("%sdebug: state %d, error recovery shifting\
  2039.  to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
  2040. #endif
  2041.                 if (yyssp >= yyss + yystacksize - 1)
  2042.                 {
  2043.                     goto yyoverflow;
  2044.                 }
  2045.                 *++yyssp = yystate = yytable[yyn];
  2046.                 *++yyvsp = yylval;
  2047.                 goto yyloop;
  2048.             }
  2049.             else
  2050.             {
  2051. #if YYDEBUG
  2052.                 if (yydebug)
  2053.                     printf("%sdebug: error recovery discarding state %d\n",
  2054.                             YYPREFIX, *yyssp);
  2055. #endif
  2056.                 if (yyssp <= yyss) goto yyabort;
  2057.                 --yyssp;
  2058.                 --yyvsp;
  2059.             }
  2060.         }
  2061.     }
  2062.     else
  2063.     {
  2064.         if (yychar == 0) goto yyabort;
  2065. #if YYDEBUG
  2066.         if (yydebug)
  2067.         {
  2068.             yys = 0;
  2069.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  2070.             if (!yys) yys = "illegal-symbol";
  2071.             printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
  2072.                     YYPREFIX, yystate, yychar, yys);
  2073.         }
  2074. #endif
  2075.         yychar = (-1);
  2076.         goto yyloop;
  2077.     }
  2078. yyreduce:
  2079. #if YYDEBUG
  2080.     if (yydebug)
  2081.         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
  2082.                 YYPREFIX, yystate, yyn, yyrule[yyn]);
  2083. #endif
  2084.     yym = yylen[yyn];
  2085.     yyval = yyvsp[1-yym];
  2086.     switch (yyn)
  2087.     {
  2088. case 1:
  2089. #line 51 "a2p.y"
  2090. { root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
  2091. break;
  2092. case 2:
  2093. #line 55 "a2p.y"
  2094. { begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
  2095.             yyval = Nullop; }
  2096. break;
  2097. case 3:
  2098. #line 60 "a2p.y"
  2099. { ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
  2100. break;
  2101. case 4:
  2102. #line 62 "a2p.y"
  2103. { yyval = yyvsp[-1]; }
  2104. break;
  2105. case 5:
  2106. #line 66 "a2p.y"
  2107. { yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
  2108. break;
  2109. case 6:
  2110. #line 68 "a2p.y"
  2111. { yyval = Nullop; }
  2112. break;
  2113. case 7:
  2114. #line 72 "a2p.y"
  2115. { yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
  2116. break;
  2117. case 8:
  2118. #line 74 "a2p.y"
  2119. { yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
  2120. break;
  2121. case 9:
  2122. #line 76 "a2p.y"
  2123. { fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
  2124. break;
  2125. case 10:
  2126. #line 78 "a2p.y"
  2127. { yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
  2128. break;
  2129. case 13:
  2130. #line 84 "a2p.y"
  2131. { yyval = rememberargs(yyval); }
  2132. break;
  2133. case 14:
  2134. #line 88 "a2p.y"
  2135. { yyval = oper1(OPAT,yyvsp[0]); }
  2136. break;
  2137. case 15:
  2138. #line 90 "a2p.y"
  2139. { yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
  2140. break;
  2141. case 16:
  2142. #line 95 "a2p.y"
  2143. { yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
  2144. break;
  2145. case 17:
  2146. #line 97 "a2p.y"
  2147. { yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
  2148. break;
  2149. case 18:
  2150. #line 99 "a2p.y"
  2151. { yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
  2152. break;
  2153. case 19:
  2154. #line 101 "a2p.y"
  2155. { yyval = oper1(ORPAREN,yyvsp[-1]); }
  2156. break;
  2157. case 24:
  2158. #line 109 "a2p.y"
  2159. { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
  2160. break;
  2161. case 25:
  2162. #line 114 "a2p.y"
  2163. { yyval = oper1(OCPAREN,yyvsp[-1]); }
  2164. break;
  2165. case 26:
  2166. #line 116 "a2p.y"
  2167. { yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
  2168. break;
  2169. case 27:
  2170. #line 118 "a2p.y"
  2171. { yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
  2172. break;
  2173. case 28:
  2174. #line 120 "a2p.y"
  2175. { yyval = oper1(OCNOT,yyvsp[0]); }
  2176. break;
  2177. case 29:
  2178. #line 124 "a2p.y"
  2179. { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
  2180. break;
  2181. case 30:
  2182. #line 126 "a2p.y"
  2183. { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
  2184. break;
  2185. case 31:
  2186. #line 128 "a2p.y"
  2187. { yyval = oper1(OREGEX,yyvsp[0]); }
  2188. break;
  2189. case 32:
  2190. #line 130 "a2p.y"
  2191. { yyval = oper1(OMPAREN,yyvsp[-1]); }
  2192. break;
  2193. case 33:
  2194. #line 134 "a2p.y"
  2195. { yyval = yyvsp[0]; }
  2196. break;
  2197. case 34:
  2198. #line 136 "a2p.y"
  2199. { yyval = oper1(ONUM,yyvsp[0]); }
  2200. break;
  2201. case 35:
  2202. #line 138 "a2p.y"
  2203. { yyval = oper1(OSTR,yyvsp[0]); }
  2204. break;
  2205. case 36:
  2206. #line 140 "a2p.y"
  2207. { yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
  2208. break;
  2209. case 37:
  2210. #line 142 "a2p.y"
  2211. { yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
  2212. break;
  2213. case 38:
  2214. #line 144 "a2p.y"
  2215. { yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
  2216. break;
  2217. case 39:
  2218. #line 146 "a2p.y"
  2219. { yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
  2220. break;
  2221. case 40:
  2222. #line 148 "a2p.y"
  2223. { yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
  2224. break;
  2225. case 41:
  2226. #line 150 "a2p.y"
  2227. { yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
  2228. break;
  2229. case 42:
  2230. #line 152 "a2p.y"
  2231. { yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
  2232. break;
  2233. case 43:
  2234. #line 154 "a2p.y"
  2235. { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
  2236. break;
  2237. case 44:
  2238. #line 156 "a2p.y"
  2239. { yyval = oper1(OPOSTINCR,yyvsp[-1]); }
  2240. break;
  2241. case 45:
  2242. #line 158 "a2p.y"
  2243. { yyval = oper1(OPOSTDECR,yyvsp[-1]); }
  2244. break;
  2245. case 46:
  2246. #line 160 "a2p.y"
  2247. { yyval = oper1(OPREINCR,yyvsp[0]); }
  2248. break;
  2249. case 47:
  2250. #line 162 "a2p.y"
  2251. { yyval = oper1(OPREDECR,yyvsp[0]); }
  2252. break;
  2253. case 48:
  2254. #line 164 "a2p.y"
  2255. { yyval = oper1(OUMINUS,yyvsp[0]); }
  2256. break;
  2257. case 49:
  2258. #line 166 "a2p.y"
  2259. { yyval = oper1(OUPLUS,yyvsp[0]); }
  2260. break;
  2261. case 50:
  2262. #line 168 "a2p.y"
  2263. { yyval = oper1(OPAREN,yyvsp[-1]); }
  2264. break;
  2265. case 51:
  2266. #line 170 "a2p.y"
  2267. { yyval = oper0(OGETLINE); }
  2268. break;
  2269. case 52:
  2270. #line 172 "a2p.y"
  2271. { yyval = oper1(OGETLINE,yyvsp[0]); }
  2272. break;
  2273. case 53:
  2274. #line 174 "a2p.y"
  2275. { yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
  2276.             if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
  2277. break;
  2278. case 54:
  2279. #line 177 "a2p.y"
  2280. { yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
  2281.             if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
  2282. break;
  2283. case 55:
  2284. #line 180 "a2p.y"
  2285. { yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
  2286.             if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
  2287. break;
  2288. case 56:
  2289. #line 183 "a2p.y"
  2290. { yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
  2291.             if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
  2292. break;
  2293. case 57:
  2294. #line 186 "a2p.y"
  2295. { yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
  2296. break;
  2297. case 58:
  2298. #line 188 "a2p.y"
  2299. { yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
  2300. break;
  2301. case 59:
  2302. #line 190 "a2p.y"
  2303. { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
  2304. break;
  2305. case 60:
  2306. #line 192 "a2p.y"
  2307. { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
  2308. break;
  2309. case 61:
  2310. #line 194 "a2p.y"
  2311. { yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
  2312. break;
  2313. case 62:
  2314. #line 196 "a2p.y"
  2315. { yyval = oper1(OSPRINTF,yyvsp[0]); }
  2316. break;
  2317. case 63:
  2318. #line 198 "a2p.y"
  2319. { yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
  2320. break;
  2321. case 64:
  2322. #line 200 "a2p.y"
  2323. { yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
  2324. break;
  2325. case 65:
  2326. #line 202 "a2p.y"
  2327. { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
  2328. break;
  2329. case 66:
  2330. #line 204 "a2p.y"
  2331. { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
  2332. break;
  2333. case 67:
  2334. #line 206 "a2p.y"
  2335. { yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
  2336. break;
  2337. case 68:
  2338. #line 208 "a2p.y"
  2339. { yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
  2340. break;
  2341. case 69:
  2342. #line 210 "a2p.y"
  2343. { yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
  2344. break;
  2345. case 70:
  2346. #line 212 "a2p.y"
  2347. { yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
  2348. break;
  2349. case 71:
  2350. #line 214 "a2p.y"
  2351. { yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
  2352. break;
  2353. case 72:
  2354. #line 216 "a2p.y"
  2355. { yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
  2356. break;
  2357. case 73:
  2358. #line 218 "a2p.y"
  2359. { yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
  2360. break;
  2361. case 74:
  2362. #line 220 "a2p.y"
  2363. { yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
  2364. break;
  2365. case 75:
  2366. #line 222 "a2p.y"
  2367. { yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
  2368. break;
  2369. case 76:
  2370. #line 224 "a2p.y"
  2371. { yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
  2372. break;
  2373. case 77:
  2374. #line 226 "a2p.y"
  2375. { yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
  2376. break;
  2377. case 78:
  2378. #line 228 "a2p.y"
  2379. { yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
  2380. break;
  2381. case 79:
  2382. #line 232 "a2p.y"
  2383. { yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
  2384. break;
  2385. case 80:
  2386. #line 234 "a2p.y"
  2387. { yyval = yyvsp[0]; }
  2388. break;
  2389. case 81:
  2390. #line 236 "a2p.y"
  2391. { yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
  2392.             if ((ops[yyvsp[-2]].ival & 255) == OFLD)
  2393.                 lval_field = TRUE;
  2394.             if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
  2395.                 lval_field = TRUE;
  2396.         }
  2397. break;
  2398. case 82:
  2399. #line 245 "a2p.y"
  2400. { yyval = oper1(OVAR,yyvsp[0]); }
  2401. break;
  2402. case 83:
  2403. #line 247 "a2p.y"
  2404. { yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
  2405. break;
  2406. case 84:
  2407. #line 249 "a2p.y"
  2408. { yyval = oper1(OFLD,yyvsp[0]); }
  2409. break;
  2410. case 85:
  2411. #line 251 "a2p.y"
  2412. { yyval = oper1(OVFLD,yyvsp[0]); }
  2413. break;
  2414. case 88:
  2415. #line 258 "a2p.y"
  2416. { yyval = Nullop; }
  2417. break;
  2418. case 89:
  2419. #line 262 "a2p.y"
  2420. { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
  2421. break;
  2422. case 90:
  2423. #line 264 "a2p.y"
  2424. { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
  2425. break;
  2426. case 91:
  2427. #line 266 "a2p.y"
  2428. { yyval = yyvsp[-1]; }
  2429. break;
  2430. case 92:
  2431. #line 270 "a2p.y"
  2432. { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
  2433. break;
  2434. case 93:
  2435. #line 272 "a2p.y"
  2436. { yyval = Nullop; }
  2437. break;
  2438. case 94:
  2439. #line 276 "a2p.y"
  2440. { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
  2441. break;
  2442. case 95:
  2443. #line 278 "a2p.y"
  2444. { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
  2445. break;
  2446. case 96:
  2447. #line 280 "a2p.y"
  2448. { yyval = oper0(ONEWLINE); }
  2449. break;
  2450. case 97:
  2451. #line 282 "a2p.y"
  2452. { yyval = oper1(OCOMMENT,yyvsp[0]); }
  2453. break;
  2454. case 98:
  2455. #line 286 "a2p.y"
  2456. { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
  2457. break;
  2458. case 99:
  2459. #line 288 "a2p.y"
  2460. { yyval = Nullop; }
  2461. break;
  2462. case 100:
  2463. #line 292 "a2p.y"
  2464. { yyval = oper0(ONEWLINE); }
  2465. break;
  2466. case 101:
  2467. #line 294 "a2p.y"
  2468. { yyval = oper1(OCOMMENT,yyvsp[0]); }
  2469. break;
  2470. case 102:
  2471. #line 299 "a2p.y"
  2472. { yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
  2473. break;
  2474. case 103:
  2475. #line 301 "a2p.y"
  2476. { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
  2477. break;
  2478. case 104:
  2479. #line 303 "a2p.y"
  2480. { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
  2481. break;
  2482. case 105:
  2483. #line 305 "a2p.y"
  2484. { yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
  2485. break;
  2486. case 106:
  2487. #line 309 "a2p.y"
  2488. { yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
  2489. break;
  2490. case 107:
  2491. #line 311 "a2p.y"
  2492. { yyval = Nullop; }
  2493. break;
  2494. case 108:
  2495. #line 316 "a2p.y"
  2496. { yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
  2497. break;
  2498. case 109:
  2499. #line 318 "a2p.y"
  2500. { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
  2501. break;
  2502. case 110:
  2503. #line 320 "a2p.y"
  2504. { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
  2505. break;
  2506. case 113:
  2507. #line 326 "a2p.y"
  2508. { yyval = Nullop; }
  2509. break;
  2510. case 115:
  2511. #line 332 "a2p.y"
  2512. { yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
  2513.             do_opens = TRUE;
  2514.             saw_ORS = saw_OFS = TRUE;
  2515.             if (!yyvsp[-2]) need_entire = TRUE;
  2516.             if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
  2517. break;
  2518. case 116:
  2519. #line 338 "a2p.y"
  2520. { yyval = oper1(OPRINT,yyvsp[0]);
  2521.             if (!yyvsp[0]) need_entire = TRUE;
  2522.             saw_ORS = saw_OFS = TRUE;
  2523.         }
  2524. break;
  2525. case 117:
  2526. #line 343 "a2p.y"
  2527. { yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
  2528.             do_opens = TRUE;
  2529.             if (!yyvsp[-2]) need_entire = TRUE;
  2530.             if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
  2531. break;
  2532. case 118:
  2533. #line 348 "a2p.y"
  2534. { yyval = oper1(OPRINTF,yyvsp[0]);
  2535.             if (!yyvsp[0]) need_entire = TRUE;
  2536.         }
  2537. break;
  2538. case 119:
  2539. #line 352 "a2p.y"
  2540. { yyval = oper0(OBREAK); }
  2541. break;
  2542. case 120:
  2543. #line 354 "a2p.y"
  2544. { yyval = oper0(ONEXT); }
  2545. break;
  2546. case 121:
  2547. #line 356 "a2p.y"
  2548. { yyval = oper0(OEXIT); }
  2549. break;
  2550. case 122:
  2551. #line 358 "a2p.y"
  2552. { yyval = oper1(OEXIT,yyvsp[0]); }
  2553. break;
  2554. case 123:
  2555. #line 360 "a2p.y"
  2556. { yyval = oper0(OCONTINUE); }
  2557. break;
  2558. case 124:
  2559. #line 362 "a2p.y"
  2560. { yyval = oper0(ORETURN); }
  2561. break;
  2562. case 125:
  2563. #line 364 "a2p.y"
  2564. { yyval = oper1(ORETURN,yyvsp[0]); }
  2565. break;
  2566. case 126:
  2567. #line 366 "a2p.y"
  2568. { yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
  2569. break;
  2570. case 127:
  2571. #line 370 "a2p.y"
  2572. { yyval = oper1(OREDIR,string(">",1)); }
  2573. break;
  2574. case 128:
  2575. #line 372 "a2p.y"
  2576. { yyval = oper1(OREDIR,string(">>",2)); }
  2577. break;
  2578. case 129:
  2579. #line 374 "a2p.y"
  2580. { yyval = oper1(OREDIR,string("|",1)); }
  2581. break;
  2582. case 130:
  2583. #line 379 "a2p.y"
  2584. { yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
  2585. break;
  2586. case 131:
  2587. #line 381 "a2p.y"
  2588. { yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
  2589. break;
  2590. case 132:
  2591. #line 383 "a2p.y"
  2592. { yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
  2593. break;
  2594. case 133:
  2595. #line 385 "a2p.y"
  2596. { yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
  2597. break;
  2598. case 134:
  2599. #line 387 "a2p.y"
  2600. { yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
  2601. break;
  2602. case 135:
  2603. #line 389 "a2p.y"
  2604. { yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
  2605. break;
  2606. case 136:
  2607. #line 391 "a2p.y"
  2608. { yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
  2609. break;
  2610. case 137:
  2611. #line 393 "a2p.y"
  2612. { yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
  2613. break;
  2614. #line 2615 "y.tab.c"
  2615.     }
  2616.     yyssp -= yym;
  2617.     yystate = *yyssp;
  2618.     yyvsp -= yym;
  2619.     yym = yylhs[yyn];
  2620.     if (yystate == 0 && yym == 0)
  2621.     {
  2622. #if YYDEBUG
  2623.         if (yydebug)
  2624.             printf("%sdebug: after reduction, shifting from state 0 to\
  2625.  state %d\n", YYPREFIX, YYFINAL);
  2626. #endif
  2627.         yystate = YYFINAL;
  2628.         *++yyssp = YYFINAL;
  2629.         *++yyvsp = yyval;
  2630.         if (yychar < 0)
  2631.         {
  2632.             if ((yychar = yylex()) < 0) yychar = 0;
  2633. #if YYDEBUG
  2634.             if (yydebug)
  2635.             {
  2636.                 yys = 0;
  2637.                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  2638.                 if (!yys) yys = "illegal-symbol";
  2639.                 printf("%sdebug: state %d, reading %d (%s)\n",
  2640.                         YYPREFIX, YYFINAL, yychar, yys);
  2641.             }
  2642. #endif
  2643.         }
  2644.         if (yychar == 0) goto yyaccept;
  2645.         goto yyloop;
  2646.     }
  2647.     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
  2648.             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
  2649.         yystate = yytable[yyn];
  2650.     else
  2651.         yystate = yydgoto[yym];
  2652. #if YYDEBUG
  2653.     if (yydebug)
  2654.         printf("%sdebug: after reduction, shifting from state %d \
  2655. to state %d\n", YYPREFIX, *yyssp, yystate);
  2656. #endif
  2657.     if (yyssp >= yyss + yystacksize - 1)
  2658.     {
  2659.         goto yyoverflow;
  2660.     }
  2661.     *++yyssp = yystate;
  2662.     *++yyvsp = yyval;
  2663.     goto yyloop;
  2664. yyoverflow:
  2665.     yyerror("yacc stack overflow");
  2666. yyabort:
  2667.     return (1);
  2668. yyaccept:
  2669.     return (0);
  2670. }
  2671.