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