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