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