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