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