* Add this nice filesystem testing tool that I've recently
[dragonfly.git] / contrib / perl5 / 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-1997, 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
2004 int yyparse _((void));
2005
2006 #include "a2py.c"
2007 #line 2008 "y.tab.c"
2008 #define YYABORT goto yyabort
2009 #define YYACCEPT goto yyaccept
2010 #define YYERROR goto yyerrlab
2011 int
2012 yyparse()
2013 {
2014     register int yym, yyn, yystate;
2015 #if YYDEBUG
2016     register char *yys;
2017 #ifndef __cplusplus
2018     extern char *getenv();
2019 #endif
2020
2021     if (yys = getenv("YYDEBUG"))
2022     {
2023         yyn = *yys;
2024         if (yyn >= '0' && yyn <= '9')
2025             yydebug = yyn - '0';
2026     }
2027 #endif
2028
2029     yynerrs = 0;
2030     yyerrflag = 0;
2031     yychar = (-1);
2032
2033     yyssp = yyss;
2034     yyvsp = yyvs;
2035     *yyssp = yystate = 0;
2036
2037 yyloop:
2038     if (yyn = yydefred[yystate]) goto yyreduce;
2039     if (yychar < 0)
2040     {
2041         if ((yychar = yylex()) < 0) yychar = 0;
2042 #if YYDEBUG
2043         if (yydebug)
2044         {
2045             yys = 0;
2046             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2047             if (!yys) yys = "illegal-symbol";
2048             printf("yydebug: state %d, reading %d (%s)\n", yystate,
2049                     yychar, yys);
2050         }
2051 #endif
2052     }
2053     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
2054             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2055     {
2056 #if YYDEBUG
2057         if (yydebug)
2058             printf("yydebug: state %d, shifting to state %d\n",
2059                     yystate, yytable[yyn]);
2060 #endif
2061         if (yyssp >= yyss + yystacksize - 1)
2062         {
2063             goto yyoverflow;
2064         }
2065         *++yyssp = yystate = yytable[yyn];
2066         *++yyvsp = yylval;
2067         yychar = (-1);
2068         if (yyerrflag > 0)  --yyerrflag;
2069         goto yyloop;
2070     }
2071     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
2072             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2073     {
2074         yyn = yytable[yyn];
2075         goto yyreduce;
2076     }
2077     if (yyerrflag) goto yyinrecovery;
2078 #ifdef lint
2079     goto yynewerror;
2080 #endif
2081 yynewerror:
2082     yyerror("syntax error");
2083 #ifdef lint
2084     goto yyerrlab;
2085 #endif
2086 yyerrlab:
2087     ++yynerrs;
2088 yyinrecovery:
2089     if (yyerrflag < 3)
2090     {
2091         yyerrflag = 3;
2092         for (;;)
2093         {
2094             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
2095                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
2096             {
2097 #if YYDEBUG
2098                 if (yydebug)
2099                     printf("yydebug: state %d, error recovery shifting\
2100  to state %d\n", *yyssp, yytable[yyn]);
2101 #endif
2102                 if (yyssp >= yyss + yystacksize - 1)
2103                 {
2104                     goto yyoverflow;
2105                 }
2106                 *++yyssp = yystate = yytable[yyn];
2107                 *++yyvsp = yylval;
2108                 goto yyloop;
2109             }
2110             else
2111             {
2112 #if YYDEBUG
2113                 if (yydebug)
2114                     printf("yydebug: error recovery discarding state %d\n",
2115                             *yyssp);
2116 #endif
2117                 if (yyssp <= yyss) goto yyabort;
2118                 --yyssp;
2119                 --yyvsp;
2120             }
2121         }
2122     }
2123     else
2124     {
2125         if (yychar == 0) goto yyabort;
2126 #if YYDEBUG
2127         if (yydebug)
2128         {
2129             yys = 0;
2130             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2131             if (!yys) yys = "illegal-symbol";
2132             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
2133                     yystate, yychar, yys);
2134         }
2135 #endif
2136         yychar = (-1);
2137         goto yyloop;
2138     }
2139 yyreduce:
2140 #if YYDEBUG
2141     if (yydebug)
2142         printf("yydebug: state %d, reducing by rule %d (%s)\n",
2143                 yystate, yyn, yyrule[yyn]);
2144 #endif
2145     yym = yylen[yyn];
2146     yyval = yyvsp[1-yym];
2147     switch (yyn)
2148     {
2149 case 1:
2150 #line 51 "a2p.y"
2151 { root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
2152 break;
2153 case 2:
2154 #line 55 "a2p.y"
2155 { begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
2156                     yyval = Nullop; }
2157 break;
2158 case 3:
2159 #line 60 "a2p.y"
2160 { ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
2161 break;
2162 case 4:
2163 #line 62 "a2p.y"
2164 { yyval = yyvsp[-1]; }
2165 break;
2166 case 5:
2167 #line 66 "a2p.y"
2168 { yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
2169 break;
2170 case 6:
2171 #line 68 "a2p.y"
2172 { yyval = Nullop; }
2173 break;
2174 case 7:
2175 #line 72 "a2p.y"
2176 { yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
2177 break;
2178 case 8:
2179 #line 74 "a2p.y"
2180 { yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2181 break;
2182 case 9:
2183 #line 76 "a2p.y"
2184 { fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
2185 break;
2186 case 10:
2187 #line 78 "a2p.y"
2188 { yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2189 break;
2190 case 13:
2191 #line 84 "a2p.y"
2192 { yyval = rememberargs(yyval); }
2193 break;
2194 case 14:
2195 #line 88 "a2p.y"
2196 { yyval = oper1(OPAT,yyvsp[0]); }
2197 break;
2198 case 15:
2199 #line 90 "a2p.y"
2200 { yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
2201 break;
2202 case 20:
2203 #line 98 "a2p.y"
2204 { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2205 break;
2206 case 21:
2207 #line 103 "a2p.y"
2208 { yyval = oper1(OCPAREN,yyvsp[-1]); }
2209 break;
2210 case 22:
2211 #line 105 "a2p.y"
2212 { yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2213 break;
2214 case 23:
2215 #line 107 "a2p.y"
2216 { yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2217 break;
2218 case 24:
2219 #line 109 "a2p.y"
2220 { yyval = oper1(OCNOT,yyvsp[0]); }
2221 break;
2222 case 25:
2223 #line 113 "a2p.y"
2224 { yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2225 break;
2226 case 26:
2227 #line 115 "a2p.y"
2228 { yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
2229 break;
2230 case 27:
2231 #line 117 "a2p.y"
2232 { yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
2233 break;
2234 case 28:
2235 #line 119 "a2p.y"
2236 { yyval = oper1(ORPAREN,yyvsp[-1]); }
2237 break;
2238 case 29:
2239 #line 123 "a2p.y"
2240 { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2241 break;
2242 case 30:
2243 #line 125 "a2p.y"
2244 { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
2245 break;
2246 case 31:
2247 #line 127 "a2p.y"
2248 { yyval = oper1(OREGEX,yyvsp[0]); }
2249 break;
2250 case 32:
2251 #line 129 "a2p.y"
2252 { yyval = oper1(OMPAREN,yyvsp[-1]); }
2253 break;
2254 case 33:
2255 #line 133 "a2p.y"
2256 { yyval = yyvsp[0]; }
2257 break;
2258 case 34:
2259 #line 135 "a2p.y"
2260 { yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
2261 break;
2262 case 35:
2263 #line 137 "a2p.y"
2264 { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2265 break;
2266 case 36:
2267 #line 139 "a2p.y"
2268 { yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
2269                         if ((ops[yyvsp[-2]].ival & 255) == OFLD)
2270                             lval_field = TRUE;
2271                         if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
2272                             lval_field = TRUE;
2273                 }
2274 break;
2275 case 37:
2276 #line 148 "a2p.y"
2277 { yyval = yyvsp[0]; }
2278 break;
2279 case 38:
2280 #line 150 "a2p.y"
2281 { yyval = oper1(ONUM,yyvsp[0]); }
2282 break;
2283 case 39:
2284 #line 152 "a2p.y"
2285 { yyval = oper1(OSTR,yyvsp[0]); }
2286 break;
2287 case 40:
2288 #line 154 "a2p.y"
2289 { yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
2290 break;
2291 case 41:
2292 #line 156 "a2p.y"
2293 { yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
2294 break;
2295 case 42:
2296 #line 158 "a2p.y"
2297 { yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
2298 break;
2299 case 43:
2300 #line 160 "a2p.y"
2301 { yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
2302 break;
2303 case 44:
2304 #line 162 "a2p.y"
2305 { yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
2306 break;
2307 case 45:
2308 #line 164 "a2p.y"
2309 { yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
2310 break;
2311 case 46:
2312 #line 166 "a2p.y"
2313 { yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
2314 break;
2315 case 47:
2316 #line 168 "a2p.y"
2317 { yyval = oper1(OPOSTINCR,yyvsp[-1]); }
2318 break;
2319 case 48:
2320 #line 170 "a2p.y"
2321 { yyval = oper1(OPOSTDECR,yyvsp[-1]); }
2322 break;
2323 case 49:
2324 #line 172 "a2p.y"
2325 { yyval = oper1(OPREINCR,yyvsp[0]); }
2326 break;
2327 case 50:
2328 #line 174 "a2p.y"
2329 { yyval = oper1(OPREDECR,yyvsp[0]); }
2330 break;
2331 case 51:
2332 #line 176 "a2p.y"
2333 { yyval = oper1(OUMINUS,yyvsp[0]); }
2334 break;
2335 case 52:
2336 #line 178 "a2p.y"
2337 { yyval = oper1(OUPLUS,yyvsp[0]); }
2338 break;
2339 case 53:
2340 #line 180 "a2p.y"
2341 { yyval = oper1(OPAREN,yyvsp[-1]); }
2342 break;
2343 case 54:
2344 #line 182 "a2p.y"
2345 { yyval = oper0(OGETLINE); }
2346 break;
2347 case 55:
2348 #line 184 "a2p.y"
2349 { yyval = oper1(OGETLINE,yyvsp[0]); }
2350 break;
2351 case 56:
2352 #line 186 "a2p.y"
2353 { yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
2354                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2355 break;
2356 case 57:
2357 #line 189 "a2p.y"
2358 { yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
2359                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2360 break;
2361 case 58:
2362 #line 192 "a2p.y"
2363 { yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
2364                     if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2365 break;
2366 case 59:
2367 #line 195 "a2p.y"
2368 { yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
2369                     if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2370 break;
2371 case 60:
2372 #line 198 "a2p.y"
2373 { yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
2374 break;
2375 case 61:
2376 #line 200 "a2p.y"
2377 { yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
2378 break;
2379 case 62:
2380 #line 202 "a2p.y"
2381 { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2382 break;
2383 case 63:
2384 #line 204 "a2p.y"
2385 { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2386 break;
2387 case 64:
2388 #line 206 "a2p.y"
2389 { yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
2390 break;
2391 case 65:
2392 #line 208 "a2p.y"
2393 { yyval = oper1(OSPRINTF,yyvsp[0]); }
2394 break;
2395 case 66:
2396 #line 210 "a2p.y"
2397 { yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2398 break;
2399 case 67:
2400 #line 212 "a2p.y"
2401 { yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
2402 break;
2403 case 68:
2404 #line 214 "a2p.y"
2405 { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
2406 break;
2407 case 69:
2408 #line 216 "a2p.y"
2409 { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
2410 break;
2411 case 70:
2412 #line 218 "a2p.y"
2413 { yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
2414 break;
2415 case 71:
2416 #line 220 "a2p.y"
2417 { yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
2418 break;
2419 case 72:
2420 #line 222 "a2p.y"
2421 { yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
2422 break;
2423 case 73:
2424 #line 224 "a2p.y"
2425 { yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
2426 break;
2427 case 74:
2428 #line 226 "a2p.y"
2429 { yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
2430 break;
2431 case 75:
2432 #line 228 "a2p.y"
2433 { yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2434 break;
2435 case 76:
2436 #line 230 "a2p.y"
2437 { yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
2438 break;
2439 case 77:
2440 #line 232 "a2p.y"
2441 { yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2442 break;
2443 case 78:
2444 #line 234 "a2p.y"
2445 { yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2446 break;
2447 case 79:
2448 #line 236 "a2p.y"
2449 { yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2450 break;
2451 case 80:
2452 #line 238 "a2p.y"
2453 { yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2454 break;
2455 case 81:
2456 #line 240 "a2p.y"
2457 { yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2458 break;
2459 case 82:
2460 #line 244 "a2p.y"
2461 { yyval = oper1(OVAR,yyvsp[0]); }
2462 break;
2463 case 83:
2464 #line 246 "a2p.y"
2465 { yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2466 break;
2467 case 84:
2468 #line 248 "a2p.y"
2469 { yyval = oper1(OFLD,yyvsp[0]); }
2470 break;
2471 case 85:
2472 #line 250 "a2p.y"
2473 { yyval = oper1(OVFLD,yyvsp[0]); }
2474 break;
2475 case 88:
2476 #line 257 "a2p.y"
2477 { yyval = Nullop; }
2478 break;
2479 case 89:
2480 #line 261 "a2p.y"
2481 { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2482 break;
2483 case 90:
2484 #line 263 "a2p.y"
2485 { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2486 break;
2487 case 91:
2488 #line 265 "a2p.y"
2489 { yyval = yyvsp[-1]; }
2490 break;
2491 case 92:
2492 #line 269 "a2p.y"
2493 { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2494 break;
2495 case 93:
2496 #line 271 "a2p.y"
2497 { yyval = Nullop; }
2498 break;
2499 case 94:
2500 #line 275 "a2p.y"
2501 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2502 break;
2503 case 95:
2504 #line 277 "a2p.y"
2505 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2506 break;
2507 case 96:
2508 #line 279 "a2p.y"
2509 { yyval = oper0(ONEWLINE); }
2510 break;
2511 case 97:
2512 #line 281 "a2p.y"
2513 { yyval = oper1(OCOMMENT,yyvsp[0]); }
2514 break;
2515 case 98:
2516 #line 285 "a2p.y"
2517 { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2518 break;
2519 case 99:
2520 #line 287 "a2p.y"
2521 { yyval = Nullop; }
2522 break;
2523 case 100:
2524 #line 291 "a2p.y"
2525 { yyval = oper0(ONEWLINE); }
2526 break;
2527 case 101:
2528 #line 293 "a2p.y"
2529 { yyval = oper1(OCOMMENT,yyvsp[0]); }
2530 break;
2531 case 102:
2532 #line 298 "a2p.y"
2533 { yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
2534 break;
2535 case 103:
2536 #line 300 "a2p.y"
2537 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2538 break;
2539 case 104:
2540 #line 302 "a2p.y"
2541 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2542 break;
2543 case 105:
2544 #line 304 "a2p.y"
2545 { yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
2546 break;
2547 case 106:
2548 #line 308 "a2p.y"
2549 { yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
2550 break;
2551 case 107:
2552 #line 310 "a2p.y"
2553 { yyval = Nullop; }
2554 break;
2555 case 108:
2556 #line 315 "a2p.y"
2557 { yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
2558 break;
2559 case 109:
2560 #line 317 "a2p.y"
2561 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
2562 break;
2563 case 110:
2564 #line 319 "a2p.y"
2565 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
2566 break;
2567 case 113:
2568 #line 325 "a2p.y"
2569 { yyval = Nullop; }
2570 break;
2571 case 115:
2572 #line 331 "a2p.y"
2573 { yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2574                     do_opens = TRUE;
2575                     saw_ORS = saw_OFS = TRUE;
2576                     if (!yyvsp[-2]) need_entire = TRUE;
2577                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2578 break;
2579 case 116:
2580 #line 337 "a2p.y"
2581 { yyval = oper1(OPRINT,yyvsp[0]);
2582                     if (!yyvsp[0]) need_entire = TRUE;
2583                     saw_ORS = saw_OFS = TRUE;
2584                 }
2585 break;
2586 case 117:
2587 #line 342 "a2p.y"
2588 { yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2589                     do_opens = TRUE;
2590                     if (!yyvsp[-2]) need_entire = TRUE;
2591                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2592 break;
2593 case 118:
2594 #line 347 "a2p.y"
2595 { yyval = oper1(OPRINTF,yyvsp[0]);
2596                     if (!yyvsp[0]) need_entire = TRUE;
2597                 }
2598 break;
2599 case 119:
2600 #line 351 "a2p.y"
2601 { yyval = oper0(OBREAK); }
2602 break;
2603 case 120:
2604 #line 353 "a2p.y"
2605 { yyval = oper0(ONEXT); }
2606 break;
2607 case 121:
2608 #line 355 "a2p.y"
2609 { yyval = oper0(OEXIT); }
2610 break;
2611 case 122:
2612 #line 357 "a2p.y"
2613 { yyval = oper1(OEXIT,yyvsp[0]); }
2614 break;
2615 case 123:
2616 #line 359 "a2p.y"
2617 { yyval = oper0(OCONTINUE); }
2618 break;
2619 case 124:
2620 #line 361 "a2p.y"
2621 { yyval = oper0(ORETURN); }
2622 break;
2623 case 125:
2624 #line 363 "a2p.y"
2625 { yyval = oper1(ORETURN,yyvsp[0]); }
2626 break;
2627 case 126:
2628 #line 365 "a2p.y"
2629 { yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2630 break;
2631 case 127:
2632 #line 369 "a2p.y"
2633 { yyval = oper1(OREDIR,string(">",1)); }
2634 break;
2635 case 128:
2636 #line 371 "a2p.y"
2637 { yyval = oper1(OREDIR,string(">>",2)); }
2638 break;
2639 case 129:
2640 #line 373 "a2p.y"
2641 { yyval = oper1(OREDIR,string("|",1)); }
2642 break;
2643 case 130:
2644 #line 378 "a2p.y"
2645 { yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2646 break;
2647 case 131:
2648 #line 380 "a2p.y"
2649 { yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
2650 break;
2651 case 132:
2652 #line 382 "a2p.y"
2653 { yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2654 break;
2655 case 133:
2656 #line 384 "a2p.y"
2657 { yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
2658 break;
2659 case 134:
2660 #line 386 "a2p.y"
2661 { yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2662 break;
2663 case 135:
2664 #line 388 "a2p.y"
2665 { yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2666 break;
2667 case 136:
2668 #line 390 "a2p.y"
2669 { yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2670 break;
2671 case 137:
2672 #line 392 "a2p.y"
2673 { yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
2674 break;
2675 #line 2674 "y.tab.c"
2676     }
2677     yyssp -= yym;
2678     yystate = *yyssp;
2679     yyvsp -= yym;
2680     yym = yylhs[yyn];
2681     if (yystate == 0 && yym == 0)
2682     {
2683 #if YYDEBUG
2684         if (yydebug)
2685             printf("yydebug: after reduction, shifting from state 0 to\
2686  state %d\n", YYFINAL);
2687 #endif
2688         yystate = YYFINAL;
2689         *++yyssp = YYFINAL;
2690         *++yyvsp = yyval;
2691         if (yychar < 0)
2692         {
2693             if ((yychar = yylex()) < 0) yychar = 0;
2694 #if YYDEBUG
2695             if (yydebug)
2696             {
2697                 yys = 0;
2698                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2699                 if (!yys) yys = "illegal-symbol";
2700                 printf("yydebug: state %d, reading %d (%s)\n",
2701                         YYFINAL, yychar, yys);
2702             }
2703 #endif
2704         }
2705         if (yychar == 0) goto yyaccept;
2706         goto yyloop;
2707     }
2708     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2709             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2710         yystate = yytable[yyn];
2711     else
2712         yystate = yydgoto[yym];
2713 #if YYDEBUG
2714     if (yydebug)
2715         printf("yydebug: after reduction, shifting from state %d \
2716 to state %d\n", *yyssp, yystate);
2717 #endif
2718     if (yyssp >= yyss + yystacksize - 1)
2719     {
2720         goto yyoverflow;
2721     }
2722     *++yyssp = yystate;
2723     *++yyvsp = yyval;
2724     goto yyloop;
2725 yyoverflow:
2726     yyerror("yacc stack overflow");
2727 yyabort:
2728     return (1);
2729 yyaccept:
2730     return (0);
2731 }