1 
2 #define  YY_INT_ALIGNED short int
3 
4 /* A lexical scanner generated by flex */
5 
6 #define FLEX_SCANNER
7 #define YY_FLEX_MAJOR_VERSION 2
8 #define YY_FLEX_MINOR_VERSION 6
9 #define YY_FLEX_SUBMINOR_VERSION 4
10 #if YY_FLEX_SUBMINOR_VERSION > 0
11 #define FLEX_BETA
12 #endif
13 
14 /* First, we deal with  platform-specific or compiler-specific issues. */
15 
16 /* begin standard C headers. */
17 #include <stdio.h>
18 #include <string.h>
19 #include <errno.h>
20 #include <stdlib.h>
21 
22 /* end standard C headers. */
23 
24 /* flex integer type definitions */
25 
26 #ifndef FLEXINT_H
27 #define FLEXINT_H
28 
29 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
30 
31 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
32 
33 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
34  * if you want the limit (max/min) macros for int types.
35  */
36 #ifndef __STDC_LIMIT_MACROS
37 #define __STDC_LIMIT_MACROS 1
38 #endif
39 
40 #include <inttypes.h>
41 typedef int8_t flex_int8_t;
42 typedef uint8_t flex_uint8_t;
43 typedef int16_t flex_int16_t;
44 typedef uint16_t flex_uint16_t;
45 typedef int32_t flex_int32_t;
46 typedef uint32_t flex_uint32_t;
47 #else
48 typedef signed char flex_int8_t;
49 typedef short int flex_int16_t;
50 typedef int flex_int32_t;
51 typedef unsigned char flex_uint8_t;
52 typedef unsigned short int flex_uint16_t;
53 typedef unsigned int flex_uint32_t;
54 
55 /* Limits of integral types. */
56 #ifndef INT8_MIN
57 #define INT8_MIN               (-128)
58 #endif
59 #ifndef INT16_MIN
60 #define INT16_MIN              (-32767-1)
61 #endif
62 #ifndef INT32_MIN
63 #define INT32_MIN              (-2147483647-1)
64 #endif
65 #ifndef INT8_MAX
66 #define INT8_MAX               (127)
67 #endif
68 #ifndef INT16_MAX
69 #define INT16_MAX              (32767)
70 #endif
71 #ifndef INT32_MAX
72 #define INT32_MAX              (2147483647)
73 #endif
74 #ifndef UINT8_MAX
75 #define UINT8_MAX              (255U)
76 #endif
77 #ifndef UINT16_MAX
78 #define UINT16_MAX             (65535U)
79 #endif
80 #ifndef UINT32_MAX
81 #define UINT32_MAX             (4294967295U)
82 #endif
83 
84 #ifndef SIZE_MAX
85 #define SIZE_MAX               (~(size_t)0)
86 #endif
87 
88 #endif /* ! C99 */
89 
90 #endif /* ! FLEXINT_H */
91 
92 /* begin standard C++ headers. */
93 
94 /* TODO: this is always defined, so inline it */
95 #define yyconst const
96 
97 #if defined(__GNUC__) && __GNUC__ >= 3
98 #define yynoreturn __attribute__((__noreturn__))
99 #else
100 #define yynoreturn
101 #endif
102 
103 /* Returned upon end-of-file. */
104 #define YY_NULL 0
105 
106 /* Promotes a possibly negative, possibly signed char to an
107  *   integer in range [0..255] for use as an array index.
108  */
109 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
110 
111 /* Enter a start condition.  This macro really ought to take a parameter,
112  * but we do it the disgusting crufty way forced on us by the ()-less
113  * definition of BEGIN.
114  */
115 #define BEGIN (yy_start) = 1 + 2 *
116 /* Translate the current start state into a value that can be later handed
117  * to BEGIN to return to the state.  The YYSTATE alias is for lex
118  * compatibility.
119  */
120 #define YY_START (((yy_start) - 1) / 2)
121 #define YYSTATE YY_START
122 /* Action number for EOF rule of a given start state. */
123 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
124 /* Special action meaning "start processing a new file". */
125 #define YY_NEW_FILE yyrestart( yyin  )
126 #define YY_END_OF_BUFFER_CHAR 0
127 
128 /* Size of default input buffer. */
129 #ifndef YY_BUF_SIZE
130 #ifdef __ia64__
131 /* On IA-64, the buffer size is 16k, not 8k.
132  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
133  * Ditto for the __ia64__ case accordingly.
134  */
135 #define YY_BUF_SIZE 32768
136 #else
137 #define YY_BUF_SIZE 16384
138 #endif /* __ia64__ */
139 #endif
140 
141 /* The state buf must be large enough to hold one state per character in the main buffer.
142  */
143 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
144 
145 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
146 #define YY_TYPEDEF_YY_BUFFER_STATE
147 typedef struct yy_buffer_state *YY_BUFFER_STATE;
148 #endif
149 
150 #ifndef YY_TYPEDEF_YY_SIZE_T
151 #define YY_TYPEDEF_YY_SIZE_T
152 typedef size_t yy_size_t;
153 #endif
154 
155 extern int yyleng;
156 
157 extern FILE *yyin, *yyout;
158 
159 #define EOB_ACT_CONTINUE_SCAN 0
160 #define EOB_ACT_END_OF_FILE 1
161 #define EOB_ACT_LAST_MATCH 2
162 
163     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
164      *       access to the local variable yy_act. Since yyless() is a macro, it would break
165      *       existing scanners that call yyless() from OUTSIDE yylex.
166      *       One obvious solution it to make yy_act a global. I tried that, and saw
167      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
168      *       normally declared as a register variable-- so it is not worth it.
169      */
170     #define  YY_LESS_LINENO(n) \
171             do { \
172                 int yyl;\
173                 for ( yyl = n; yyl < yyleng; ++yyl )\
174                     if ( yytext[yyl] == '\n' )\
175                         --yylineno;\
176             }while(0)
177     #define YY_LINENO_REWIND_TO(dst) \
178             do {\
179                 const char *p;\
180                 for ( p = yy_cp-1; p >= (dst); --p)\
181                     if ( *p == '\n' )\
182                         --yylineno;\
183             }while(0)
184 
185 /* Return all but the first "n" matched characters back to the input stream. */
186 #define yyless(n) \
187 	do \
188 		{ \
189 		/* Undo effects of setting up yytext. */ \
190         int yyless_macro_arg = (n); \
191         YY_LESS_LINENO(yyless_macro_arg);\
192 		*yy_cp = (yy_hold_char); \
193 		YY_RESTORE_YY_MORE_OFFSET \
194 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
196 		} \
197 	while ( 0 )
198 #define unput(c) yyunput( c, (yytext_ptr)  )
199 
200 #ifndef YY_STRUCT_YY_BUFFER_STATE
201 #define YY_STRUCT_YY_BUFFER_STATE
202 struct yy_buffer_state
203 	{
204 	FILE *yy_input_file;
205 
206 	char *yy_ch_buf;		/* input buffer */
207 	char *yy_buf_pos;		/* current position in input buffer */
208 
209 	/* Size of input buffer in bytes, not including room for EOB
210 	 * characters.
211 	 */
212 	int yy_buf_size;
213 
214 	/* Number of characters read into yy_ch_buf, not including EOB
215 	 * characters.
216 	 */
217 	int yy_n_chars;
218 
219 	/* Whether we "own" the buffer - i.e., we know we created it,
220 	 * and can realloc() it to grow it, and should free() it to
221 	 * delete it.
222 	 */
223 	int yy_is_our_buffer;
224 
225 	/* Whether this is an "interactive" input source; if so, and
226 	 * if we're using stdio for input, then we want to use getc()
227 	 * instead of fread(), to make sure we stop fetching input after
228 	 * each newline.
229 	 */
230 	int yy_is_interactive;
231 
232 	/* Whether we're considered to be at the beginning of a line.
233 	 * If so, '^' rules will be active on the next match, otherwise
234 	 * not.
235 	 */
236 	int yy_at_bol;
237 
238     int yy_bs_lineno; /**< The line count. */
239     int yy_bs_column; /**< The column count. */
240 
241 	/* Whether to try to fill the input buffer when we reach the
242 	 * end of it.
243 	 */
244 	int yy_fill_buffer;
245 
246 	int yy_buffer_status;
247 
248 #define YY_BUFFER_NEW 0
249 #define YY_BUFFER_NORMAL 1
250 	/* When an EOF's been seen but there's still some text to process
251 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
252 	 * shouldn't try reading from the input source any more.  We might
253 	 * still have a bunch of tokens to match, though, because of
254 	 * possible backing-up.
255 	 *
256 	 * When we actually see the EOF, we change the status to "new"
257 	 * (via yyrestart()), so that the user can continue scanning by
258 	 * just pointing yyin at a new input file.
259 	 */
260 #define YY_BUFFER_EOF_PENDING 2
261 
262 	};
263 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
264 
265 /* Stack of input buffers. */
266 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
267 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
268 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
269 
270 /* We provide macros for accessing buffer states in case in the
271  * future we want to put the buffer states in a more general
272  * "scanner state".
273  *
274  * Returns the top of the stack, or NULL.
275  */
276 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
277                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
278                           : NULL)
279 /* Same as previous macro, but useful when we know that the buffer stack is not
280  * NULL or when we need an lvalue. For internal use only.
281  */
282 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
283 
284 /* yy_hold_char holds the character lost when yytext is formed. */
285 static char yy_hold_char;
286 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
287 int yyleng;
288 
289 /* Points to current character in buffer. */
290 static char *yy_c_buf_p = NULL;
291 static int yy_init = 0;		/* whether we need to initialize */
292 static int yy_start = 0;	/* start state number */
293 
294 /* Flag which is used to allow yywrap()'s to do buffer switches
295  * instead of setting up a fresh yyin.  A bit of a hack ...
296  */
297 static int yy_did_buffer_switch_on_eof;
298 
299 void yyrestart ( FILE *input_file  );
300 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
301 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
302 void yy_delete_buffer ( YY_BUFFER_STATE b  );
303 void yy_flush_buffer ( YY_BUFFER_STATE b  );
304 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
305 void yypop_buffer_state ( void );
306 
307 static void yyensure_buffer_stack ( void );
308 static void yy_load_buffer_state ( void );
309 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
310 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
311 
312 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
313 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
314 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
315 
316 void *yyalloc ( yy_size_t  );
317 void *yyrealloc ( void *, yy_size_t  );
318 void yyfree ( void *  );
319 
320 #define yy_new_buffer yy_create_buffer
321 #define yy_set_interactive(is_interactive) \
322 	{ \
323 	if ( ! YY_CURRENT_BUFFER ){ \
324         yyensure_buffer_stack (); \
325 		YY_CURRENT_BUFFER_LVALUE =    \
326             yy_create_buffer( yyin, YY_BUF_SIZE ); \
327 	} \
328 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
329 	}
330 #define yy_set_bol(at_bol) \
331 	{ \
332 	if ( ! YY_CURRENT_BUFFER ){\
333         yyensure_buffer_stack (); \
334 		YY_CURRENT_BUFFER_LVALUE =    \
335             yy_create_buffer( yyin, YY_BUF_SIZE ); \
336 	} \
337 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
338 	}
339 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
340 
341 /* Begin user sect3 */
342 
343 #define yywrap() (/*CONSTCOND*/1)
344 #define YY_SKIP_YYWRAP
345 typedef flex_uint8_t YY_CHAR;
346 
347 FILE *yyin = NULL, *yyout = NULL;
348 
349 typedef int yy_state_type;
350 
351 extern int yylineno;
352 int yylineno = 1;
353 
354 extern char *yytext;
355 #ifdef yytext_ptr
356 #undef yytext_ptr
357 #endif
358 #define yytext_ptr yytext
359 
360 static const flex_int16_t yy_nxt[][42] =
361     {
362     {
363         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
364         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
365         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
366         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
367         0,    0
368     },
369 
370     {
371         9,   10,   11,   12,   13,   14,   15,   16,   17,   14,
372        18,   19,   20,   21,   22,   23,   24,   25,   26,   21,
373        21,   27,   28,   29,   30,   21,   21,   31,   32,   21,
374        33,   21,   34,   35,   36,   37,   38,   21,   39,   21,
375        21,   40
376 
377     },
378 
379     {
380         9,   10,   11,   12,   13,   14,   15,   16,   17,   14,
381        18,   19,   20,   21,   22,   23,   24,   25,   26,   21,
382        21,   27,   28,   29,   30,   21,   21,   31,   32,   21,
383        33,   21,   34,   35,   36,   37,   38,   21,   39,   21,
384        21,   40
385     },
386 
387     {
388         9,   41,   42,   43,   41,   41,   41,   41,   41,   41,
389        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
390        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
391        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
392        41,   41
393 
394     },
395 
396     {
397         9,   41,   42,   43,   41,   41,   41,   41,   41,   41,
398        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
399        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
400        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
401        41,   41
402     },
403 
404     {
405         9,   44,   45,   46,   44,   44,   44,   44,   44,   44,
406        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
407        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
408        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
409        44,   44
410 
411     },
412 
413     {
414         9,   44,   45,   46,   44,   44,   44,   44,   44,   44,
415        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
416        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
417        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
418        44,   44
419     },
420 
421     {
422         9,   47,   47,   48,   47,   49,   47,   50,   47,   49,
423        47,   47,   47,   47,   47,   47,   47,   47,   51,   47,
424        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
425        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
426        47,   47
427 
428     },
429 
430     {
431         9,   47,   47,   48,   47,   49,   47,   50,   47,   49,
432        47,   47,   47,   47,   47,   47,   47,   47,   51,   47,
433        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
434        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
435        47,   47
436     },
437 
438     {
439        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
440        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
441        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
442        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
443        -9,   -9
444 
445     },
446 
447     {
448         9,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
449       -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
450       -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
451       -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
452       -10,  -10
453     },
454 
455     {
456         9,  -11,   52,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
457       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
458       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
459       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
460       -11,  -11
461 
462     },
463 
464     {
465         9,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
466       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
467       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
468       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
469       -12,  -12
470     },
471 
472     {
473         9,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
474       -13,  -13,  -13,  -13,  -13,  -13,   53,  -13,  -13,  -13,
475       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
476       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
477       -13,  -13
478 
479     },
480 
481     {
482         9,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
483       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
484       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
485       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
486       -14,  -14
487     },
488 
489     {
490         9,   54,   54,  -15,   54,   54,   54,   54,   54,   54,
491        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
492        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
493        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
494        54,   54
495 
496     },
497 
498     {
499         9,  -16,  -16,  -16,  -16,  -16,  -16,   55,  -16,  -16,
500       -16,  -16,  -16,   55,  -16,  -16,  -16,  -16,  -16,   55,
501        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
502        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
503        55,  -16
504     },
505 
506     {
507         9,  -17,  -17,  -17,  -17,  -17,  -17,  -17,   56,  -17,
508       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
509       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
510       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
511       -17,  -17
512 
513     },
514 
515     {
516         9,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
517       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
518       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
519       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
520       -18,  -18
521     },
522 
523     {
524         9,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
525       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
526       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
527       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
528       -19,  -19
529 
530     },
531 
532     {
533         9,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
534       -20,  -20,  -20,  -20,  -20,  -20,   57,  -20,  -20,  -20,
535       -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
536       -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
537       -20,  -20
538     },
539 
540     {
541         9,  -21,  -21,  -21,  -21,  -21,  -21,   55,  -21,  -21,
542       -21,  -21,  -21,   58,  -21,  -21,  -21,  -21,  -21,   58,
543        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
544        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
545        58,  -21
546 
547     },
548 
549     {
550         9,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
551       -22,  -22,  -22,  -22,  -22,  -22,   59,  -22,  -22,  -22,
552       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
553       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
554       -22,  -22
555     },
556 
557     {
558         9,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
559       -23,  -23,  -23,  -23,  -23,  -23,   60,  -23,  -23,  -23,
560       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
561       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
562       -23,  -23
563 
564     },
565 
566     {
567         9,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
568       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
569       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
570       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
571       -24,  -24
572     },
573 
574     {
575         9,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
576       -25,  -25,  -25,  -25,  -25,  -25,   61,  -25,  -25,  -25,
577       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
578       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
579       -25,  -25
580 
581     },
582 
583     {
584         9,  -26,  -26,   62,  -26,  -26,  -26,  -26,  -26,  -26,
585       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
586       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
587       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
588       -26,  -26
589     },
590 
591     {
592         9,  -27,  -27,  -27,  -27,  -27,  -27,   55,  -27,  -27,
593       -27,  -27,  -27,   58,  -27,  -27,  -27,  -27,  -27,   58,
594        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
595        58,   58,   63,   58,   58,   58,   58,   58,   58,   58,
596        58,  -27
597 
598     },
599 
600     {
601         9,  -28,  -28,  -28,  -28,  -28,  -28,   55,  -28,  -28,
602       -28,  -28,  -28,   58,  -28,  -28,  -28,  -28,  -28,   58,
603        58,   58,   58,   58,   58,   58,   58,   64,   58,   58,
604        58,   58,   65,   58,   58,   58,   58,   58,   58,   58,
605        58,  -28
606     },
607 
608     {
609         9,  -29,  -29,  -29,  -29,  -29,  -29,   55,  -29,  -29,
610       -29,  -29,  -29,   58,  -29,  -29,  -29,  -29,  -29,   58,
611        58,   58,   58,   58,   66,   58,   58,   58,   58,   58,
612        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
613        58,  -29
614 
615     },
616 
617     {
618         9,  -30,  -30,  -30,  -30,  -30,  -30,   55,  -30,  -30,
619       -30,  -30,  -30,   58,  -30,  -30,  -30,  -30,  -30,   58,
620        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
621        58,   67,   58,   58,   58,   58,   58,   58,   58,   58,
622        58,  -30
623     },
624 
625     {
626         9,  -31,  -31,  -31,  -31,  -31,  -31,   55,  -31,  -31,
627       -31,  -31,  -31,   58,  -31,  -31,  -31,  -31,  -31,   58,
628        58,   58,   58,   58,   68,   58,   58,   58,   58,   58,
629        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
630        58,  -31
631 
632     },
633 
634     {
635         9,  -32,  -32,  -32,  -32,  -32,  -32,   55,  -32,  -32,
636       -32,  -32,  -32,   58,  -32,  -32,  -32,  -32,  -32,   58,
637        58,   58,   58,   58,   58,   69,   58,   58,   58,   58,
638        70,   71,   58,   58,   58,   58,   58,   58,   58,   58,
639        58,  -32
640     },
641 
642     {
643         9,  -33,  -33,  -33,  -33,  -33,  -33,   55,  -33,  -33,
644       -33,  -33,  -33,   58,  -33,  -33,  -33,  -33,  -33,   58,
645        72,   58,   58,   58,   73,   58,   58,   58,   58,   58,
646        58,   58,   74,   58,   58,   58,   58,   58,   58,   58,
647        58,  -33
648 
649     },
650 
651     {
652         9,  -34,  -34,  -34,  -34,  -34,  -34,   55,  -34,  -34,
653       -34,  -34,  -34,   58,  -34,  -34,  -34,  -34,  -34,   58,
654        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
655        58,   75,   58,   76,   58,   58,   58,   58,   58,   58,
656        58,  -34
657     },
658 
659     {
660         9,  -35,  -35,  -35,  -35,  -35,  -35,   55,  -35,  -35,
661       -35,  -35,  -35,   58,  -35,  -35,  -35,  -35,  -35,   58,
662        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
663        58,   58,   58,   58,   77,   58,   58,   58,   58,   58,
664        58,  -35
665 
666     },
667 
668     {
669         9,  -36,  -36,  -36,  -36,  -36,  -36,   55,  -36,  -36,
670       -36,  -36,  -36,   58,  -36,  -36,  -36,  -36,  -36,   58,
671        78,   58,   58,   58,   58,   58,   58,   58,   58,   58,
672        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
673        58,  -36
674     },
675 
676     {
677         9,  -37,  -37,  -37,  -37,  -37,  -37,   55,  -37,  -37,
678       -37,  -37,  -37,   58,  -37,  -37,  -37,  -37,  -37,   58,
679        58,   58,   58,   58,   79,   58,   58,   58,   58,   58,
680        58,   58,   80,   58,   58,   58,   81,   58,   58,   58,
681        58,  -37
682 
683     },
684 
685     {
686         9,  -38,  -38,  -38,  -38,  -38,  -38,   55,  -38,  -38,
687       -38,  -38,  -38,   58,  -38,  -38,  -38,  -38,  -38,   58,
688        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
689        58,   58,   58,   58,   82,   58,   58,   58,   58,   58,
690        58,  -38
691     },
692 
693     {
694         9,  -39,  -39,  -39,  -39,  -39,  -39,   55,  -39,  -39,
695       -39,  -39,  -39,   58,  -39,  -39,  -39,  -39,  -39,   58,
696        58,   58,   58,   58,   58,   58,   58,   58,   83,   58,
697        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
698        58,  -39
699 
700     },
701 
702     {
703         9,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
704       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
705       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
706       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
707       -40,   84
708     },
709 
710     {
711         9,   85,   86,  -41,   85,   85,   85,   85,   85,   85,
712        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
713        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
714        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
715        85,   85
716 
717     },
718 
719     {
720         9,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
721       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
722       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
723       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
724       -42,  -42
725     },
726 
727     {
728         9,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
729       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
730       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
731       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
732       -43,  -43
733 
734     },
735 
736     {
737         9,   87,   87,  -44,   87,   87,   87,   87,   87,   87,
738        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
739        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
740        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
741        87,   87
742     },
743 
744     {
745         9,  -45,   88,   89,  -45,  -45,  -45,  -45,  -45,  -45,
746       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
747       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
748       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
749       -45,  -45
750 
751     },
752 
753     {
754         9,   90,  -46,  -46,   90,   90,   90,   90,   90,   90,
755        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
756        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
757        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
758        90,   90
759     },
760 
761     {
762         9,   91,   91,  -47,   91,  -47,   91,  -47,   91,  -47,
763        91,   91,   91,   91,   91,   91,   91,   91,  -47,   91,
764        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
765        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
766        91,   91
767 
768     },
769 
770     {
771         9,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
772       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
773       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
774       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
775       -48,  -48
776     },
777 
778     {
779         9,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
780       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
781       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
782       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
783       -49,  -49
784 
785     },
786 
787     {
788         9,   92,   92,  -50,   92,   92,   92,   92,   92,   92,
789        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
790        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
791        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
792        92,   92
793     },
794 
795     {
796         9,   93,   93,  -51,   93,   93,   93,   93,   93,   93,
797        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
798        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
799        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
800        93,   93
801 
802     },
803 
804     {
805         9,  -52,   52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
806       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
807       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
808       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
809       -52,  -52
810     },
811 
812     {
813         9,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
814       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
815       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
816       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
817       -53,  -53
818 
819     },
820 
821     {
822         9,   54,   54,  -54,   54,   54,   54,   54,   54,   54,
823        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
824        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
825        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
826        54,   54
827     },
828 
829     {
830         9,  -55,  -55,  -55,  -55,  -55,  -55,   55,  -55,  -55,
831       -55,  -55,  -55,   55,  -55,  -55,  -55,  -55,  -55,   55,
832        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
833        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
834        55,  -55
835 
836     },
837 
838     {
839         9,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
840       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
841       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
842       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
843       -56,  -56
844     },
845 
846     {
847         9,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
848       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
849       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
850       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
851       -57,  -57
852 
853     },
854 
855     {
856         9,  -58,  -58,  -58,  -58,  -58,  -58,   55,  -58,  -58,
857       -58,  -58,  -58,   58,  -58,  -58,  -58,  -58,  -58,   58,
858        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
859        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
860        58,  -58
861     },
862 
863     {
864         9,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
865       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
866       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
867       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
868       -59,  -59
869 
870     },
871 
872     {
873         9,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
874       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
875       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
876       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
877       -60,  -60
878     },
879 
880     {
881         9,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
882       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
883       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
884       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
885       -61,  -61
886 
887     },
888 
889     {
890         9,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
891       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
892       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
893       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
894       -62,  -62
895     },
896 
897     {
898         9,  -63,  -63,  -63,  -63,  -63,  -63,   55,  -63,  -63,
899       -63,  -63,  -63,   58,  -63,  -63,  -63,  -63,  -63,   58,
900        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
901        58,   58,   94,   58,   58,   58,   58,   58,   58,   58,
902        58,  -63
903 
904     },
905 
906     {
907         9,  -64,  -64,  -64,  -64,  -64,  -64,   55,  -64,  -64,
908       -64,  -64,  -64,   58,  -64,  -64,  -64,  -64,  -64,   58,
909        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
910        58,   58,   95,   58,   58,   58,   58,   58,   58,   58,
911        58,  -64
912     },
913 
914     {
915         9,  -65,  -65,  -65,  -65,  -65,  -65,   55,  -65,  -65,
916       -65,  -65,  -65,   58,  -65,  -65,  -65,  -65,  -65,   58,
917        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
918        96,   97,   58,   58,   58,   58,   58,   58,   58,   58,
919        58,  -65
920 
921     },
922 
923     {
924         9,  -66,  -66,  -66,  -66,  -66,  -66,   55,  -66,  -66,
925       -66,  -66,  -66,   58,  -66,  -66,  -66,  -66,  -66,   58,
926        58,   58,   58,   58,   58,   98,   58,   58,   58,   58,
927        58,   58,   58,   99,   58,   58,   58,   58,   58,   58,
928        58,  -66
929     },
930 
931     {
932         9,  -67,  -67,  -67,  -67,  -67,  -67,   55,  -67,  -67,
933       -67,  -67,  -67,   58,  -67,  -67,  -67,  -67,  -67,   58,
934        58,   58,   58,  100,   58,   58,   58,   58,   58,   58,
935        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
936        58,  -67
937 
938     },
939 
940     {
941         9,  -68,  -68,  -68,  -68,  -68,  -68,   55,  -68,  -68,
942       -68,  -68,  -68,   58,  -68,  -68,  -68,  -68,  -68,   58,
943        58,   58,   58,   58,   58,   58,   58,   58,   58,  101,
944        58,   58,   58,   58,   58,   58,   58,   58,   58,  102,
945        58,  -68
946     },
947 
948     {
949         9,  -69,  -69,  -69,  -69,  -69,  -69,   55,  -69,  -69,
950       -69,  -69,  -69,   58,  -69,  -69,  -69,  -69,  -69,   58,
951        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
952        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
953        58,  -69
954 
955     },
956 
957     {
958         9,  -70,  -70,  -70,  -70,  -70,  -70,   55,  -70,  -70,
959       -70,  -70,  -70,   58,  -70,  -70,  -70,  -70,  -70,   58,
960        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
961        58,   58,   58,  103,   58,   58,   58,   58,   58,   58,
962        58,  -70
963     },
964 
965     {
966         9,  -71,  -71,  -71,  -71,  -71,  -71,   55,  -71,  -71,
967       -71,  -71,  -71,   58,  -71,  -71,  -71,  -71,  -71,   58,
968        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
969        58,   58,   58,   58,   58,   58,  104,   58,   58,   58,
970        58,  -71
971 
972     },
973 
974     {
975         9,  -72,  -72,  -72,  -72,  -72,  -72,   55,  -72,  -72,
976       -72,  -72,  -72,   58,  -72,  -72,  -72,  -72,  -72,   58,
977        58,   58,   58,   58,   58,   58,   58,   58,  105,   58,
978        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
979        58,  -72
980     },
981 
982     {
983         9,  -73,  -73,  -73,  -73,  -73,  -73,   55,  -73,  -73,
984       -73,  -73,  -73,   58,  -73,  -73,  -73,  -73,  -73,   58,
985        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
986        58,  106,   58,   58,   58,   58,   58,   58,   58,   58,
987        58,  -73
988 
989     },
990 
991     {
992         9,  -74,  -74,  -74,  -74,  -74,  -74,   55,  -74,  -74,
993       -74,  -74,  -74,   58,  -74,  -74,  -74,  -74,  -74,   58,
994        58,   58,   58,  107,   58,   58,   58,   58,   58,   58,
995        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
996        58,  -74
997     },
998 
999     {
1000         9,  -75,  -75,  -75,  -75,  -75,  -75,   55,  -75,  -75,
1001       -75,  -75,  -75,   58,  -75,  -75,  -75,  -75,  -75,   58,
1002        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1003        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1004        58,  -75
1005 
1006     },
1007 
1008     {
1009         9,  -76,  -76,  -76,  -76,  -76,  -76,   55,  -76,  -76,
1010       -76,  -76,  -76,   58,  -76,  -76,  -76,  -76,  -76,   58,
1011        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1012        58,   58,   58,   58,   58,   58,  108,   58,   58,   58,
1013        58,  -76
1014     },
1015 
1016     {
1017         9,  -77,  -77,  -77,  -77,  -77,  -77,   55,  -77,  -77,
1018       -77,  -77,  -77,   58,  -77,  -77,  -77,  -77,  -77,   58,
1019        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1020        58,   58,  109,   58,   58,   58,   58,   58,   58,   58,
1021        58,  -77
1022 
1023     },
1024 
1025     {
1026         9,  -78,  -78,  -78,  -78,  -78,  -78,   55,  -78,  -78,
1027       -78,  -78,  -78,   58,  -78,  -78,  -78,  -78,  -78,   58,
1028        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1029        58,  110,   58,   58,   58,   58,   58,   58,   58,   58,
1030        58,  -78
1031     },
1032 
1033     {
1034         9,  -79,  -79,  -79,  -79,  -79,  -79,   55,  -79,  -79,
1035       -79,  -79,  -79,   58,  -79,  -79,  -79,  -79,  -79,   58,
1036        58,   58,   58,   58,   58,   58,   58,   58,   58,  111,
1037        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1038        58,  -79
1039 
1040     },
1041 
1042     {
1043         9,  -80,  -80,  -80,  -80,  -80,  -80,   55,  -80,  -80,
1044       -80,  -80,  -80,   58,  -80,  -80,  -80,  -80,  -80,   58,
1045        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1046        58,   58,   58,   58,   58,   58,   58,  112,   58,   58,
1047        58,  -80
1048     },
1049 
1050     {
1051         9,  -81,  -81,  -81,  -81,  -81,  -81,   55,  -81,  -81,
1052       -81,  -81,  -81,   58,  -81,  -81,  -81,  -81,  -81,   58,
1053        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1054        58,   58,   58,   58,  113,   58,   58,   58,   58,   58,
1055        58,  -81
1056 
1057     },
1058 
1059     {
1060         9,  -82,  -82,  -82,  -82,  -82,  -82,   55,  -82,  -82,
1061       -82,  -82,  -82,   58,  -82,  -82,  -82,  -82,  -82,   58,
1062        58,   58,   58,   58,   58,   58,   58,   58,  114,   58,
1063        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1064        58,  -82
1065     },
1066 
1067     {
1068         9,  -83,  -83,  -83,  -83,  -83,  -83,   55,  -83,  -83,
1069       -83,  -83,  -83,   58,  -83,  -83,  -83,  -83,  -83,   58,
1070        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1071        58,   58,   58,   58,   58,  115,   58,   58,   58,   58,
1072        58,  -83
1073 
1074     },
1075 
1076     {
1077         9,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
1078       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
1079       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
1080       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
1081       -84,  -84
1082     },
1083 
1084     {
1085         9,   85,   86,  -85,   85,   85,   85,   85,   85,   85,
1086        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
1087        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
1088        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
1089        85,   85
1090 
1091     },
1092 
1093     {
1094         9,   86,   86,  -86,   86,   86,   86,   86,   86,   86,
1095        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1096        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1097        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1098        86,   86
1099     },
1100 
1101     {
1102         9,   87,   87,  -87,   87,   87,   87,   87,   87,   87,
1103        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
1104        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
1105        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
1106        87,   87
1107 
1108     },
1109 
1110     {
1111         9,  -88,   88,   89,  -88,  -88,  -88,  -88,  -88,  -88,
1112       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
1113       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
1114       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
1115       -88,  -88
1116     },
1117 
1118     {
1119         9,   90,  -89,  -89,   90,   90,   90,   90,   90,   90,
1120        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1121        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1122        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1123        90,   90
1124 
1125     },
1126 
1127     {
1128         9,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
1129       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
1130       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
1131       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
1132       -90,  -90
1133     },
1134 
1135     {
1136         9,   91,   91,  -91,   91,  -91,   91,  -91,   91,  -91,
1137        91,   91,   91,   91,   91,   91,   91,   91,  -91,   91,
1138        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1139        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1140        91,   91
1141 
1142     },
1143 
1144     {
1145         9,   92,   92,  -92,   92,   92,   92,   92,   92,   92,
1146        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1147        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1148        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1149        92,   92
1150     },
1151 
1152     {
1153         9,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1154       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1155       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1156       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1157       -93,  -93
1158 
1159     },
1160 
1161     {
1162         9,  -94,  -94,  -94,  -94,  -94,  -94,   55,  -94,  -94,
1163       -94,  -94,  -94,   58,  -94,  -94,  -94,  -94,  -94,   58,
1164        58,   58,   58,   58,   58,   58,   58,   58,   58,  116,
1165        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1166        58,  -94
1167     },
1168 
1169     {
1170         9,  -95,  -95,  -95,  -95,  -95,  -95,   55,  -95,  -95,
1171       -95,  -95,  -95,   58,  -95,  -95,  -95,  -95,  -95,   58,
1172        58,   58,   58,   58,   58,   58,   58,   58,  117,   58,
1173        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1174        58,  -95
1175 
1176     },
1177 
1178     {
1179         9,  -96,  -96,  -96,  -96,  -96,  -96,   55,  -96,  -96,
1180       -96,  -96,  -96,   58,  -96,  -96,  -96,  -96,  -96,   58,
1181        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1182       118,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1183        58,  -96
1184     },
1185 
1186     {
1187         9,  -97,  -97,  -97,  -97,  -97,  -97,   55,  -97,  -97,
1188       -97,  -97,  -97,   58,  -97,  -97,  -97,  -97,  -97,   58,
1189        58,   58,   58,   58,   58,  119,   58,   58,   58,   58,
1190        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1191        58,  -97
1192 
1193     },
1194 
1195     {
1196         9,  -98,  -98,  -98,  -98,  -98,  -98,   55,  -98,  -98,
1197       -98,  -98,  -98,   58,  -98,  -98,  -98,  -98,  -98,  120,
1198       121,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1199        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1200        58,  -98
1201     },
1202 
1203     {
1204         9,  -99,  -99,  -99,  -99,  -99,  -99,   55,  -99,  -99,
1205       -99,  -99,  -99,   58,  -99,  -99,  -99,  -99,  -99,   58,
1206        58,   58,   58,   58,  122,   58,   58,   58,   58,   58,
1207        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1208        58,  -99
1209 
1210     },
1211 
1212     {
1213         9, -100, -100, -100, -100, -100, -100,   55, -100, -100,
1214      -100, -100, -100,   58, -100, -100, -100, -100, -100,   58,
1215        58,   58,  123,   58,   58,   58,   58,   58,  124,   58,
1216       125,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1217        58, -100
1218     },
1219 
1220     {
1221         9, -101, -101, -101, -101, -101, -101,   55, -101, -101,
1222      -101, -101, -101,   58, -101, -101, -101, -101, -101,   58,
1223        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1224        58,   58,   58,  126,   58,   58,   58,   58,   58,   58,
1225        58, -101
1226 
1227     },
1228 
1229     {
1230         9, -102, -102, -102, -102, -102, -102,   55, -102, -102,
1231      -102, -102, -102,   58, -102, -102, -102, -102, -102,   58,
1232        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1233        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1234        58, -102
1235     },
1236 
1237     {
1238         9, -103, -103, -103, -103, -103, -103,   55, -103, -103,
1239      -103, -103, -103,   58, -103, -103, -103, -103, -103,   58,
1240        58,   58,   58,   58,   58,   58,   58,   58,   58,  127,
1241        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1242        58, -103
1243 
1244     },
1245 
1246     {
1247         9, -104, -104, -104, -104, -104, -104,   55, -104, -104,
1248      -104, -104, -104,   58, -104, -104, -104, -104, -104,   58,
1249        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1250        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1251        58, -104
1252     },
1253 
1254     {
1255         9, -105, -105, -105, -105, -105, -105,   55, -105, -105,
1256      -105, -105, -105,   58, -105, -105, -105, -105, -105,   58,
1257        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1258        58,  128,   58,   58,   58,   58,   58,   58,   58,   58,
1259        58, -105
1260 
1261     },
1262 
1263     {
1264         9, -106, -106, -106, -106, -106, -106,   55, -106, -106,
1265      -106, -106, -106,   58, -106, -106, -106, -106, -106,   58,
1266        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1267        58,   58,   58,   58,   58,   58,   58,  129,   58,   58,
1268        58, -106
1269     },
1270 
1271     {
1272         9, -107, -107, -107, -107, -107, -107,   55, -107, -107,
1273      -107, -107, -107,   58, -107, -107, -107, -107, -107,   58,
1274        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1275        58,   58,   58,   58,   58,   58,   58,  130,   58,   58,
1276        58, -107
1277 
1278     },
1279 
1280     {
1281         9, -108, -108, -108, -108, -108, -108,   55, -108, -108,
1282      -108, -108, -108,   58, -108, -108, -108, -108, -108,   58,
1283        58,   58,   58,   58,   58,   58,   58,   58,  131,   58,
1284        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1285        58, -108
1286     },
1287 
1288     {
1289         9, -109, -109, -109, -109, -109, -109,   55, -109, -109,
1290      -109, -109, -109,   58, -109, -109, -109, -109, -109,   58,
1291        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1292       132,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1293        58, -109
1294 
1295     },
1296 
1297     {
1298         9, -110, -110, -110, -110, -110, -110,   55, -110, -110,
1299      -110, -110, -110,   58, -110, -110, -110, -110, -110,   58,
1300        58,   58,   58,   58,   58,   58,  133,   58,   58,   58,
1301        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1302        58, -110
1303     },
1304 
1305     {
1306         9, -111, -111, -111, -111, -111, -111,   55, -111, -111,
1307      -111, -111, -111,   58, -111, -111, -111, -111, -111,   58,
1308        58,   58,   58,   58,  134,   58,   58,   58,   58,   58,
1309        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1310        58, -111
1311 
1312     },
1313 
1314     {
1315         9, -112, -112, -112, -112, -112, -112,   55, -112, -112,
1316      -112, -112, -112,   58, -112, -112, -112, -112, -112,   58,
1317        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1318        58,   58,   58,   58,  135,   58,   58,   58,   58,   58,
1319        58, -112
1320     },
1321 
1322     {
1323         9, -113, -113, -113, -113, -113, -113,   55, -113, -113,
1324      -113, -113, -113,   58, -113, -113, -113, -113, -113,   58,
1325        58,   58,   58,   58,   58,   58,   58,   58,  136,   58,
1326        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1327        58, -113
1328 
1329     },
1330 
1331     {
1332         9, -114, -114, -114, -114, -114, -114,   55, -114, -114,
1333      -114, -114, -114,   58, -114, -114, -114, -114, -114,   58,
1334        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1335        58,   58,   58,   58,   58,  137,   58,   58,   58,   58,
1336        58, -114
1337     },
1338 
1339     {
1340         9, -115, -115, -115, -115, -115, -115,   55, -115, -115,
1341      -115, -115, -115,   58, -115, -115, -115, -115, -115,   58,
1342        58,   58,   58,   58,   58,   58,   58,   58,  138,   58,
1343        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1344        58, -115
1345 
1346     },
1347 
1348     {
1349         9, -116, -116, -116, -116, -116, -116,   55, -116, -116,
1350      -116, -116, -116,   58, -116, -116, -116, -116, -116,   58,
1351        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1352        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1353        58, -116
1354     },
1355 
1356     {
1357         9, -117, -117, -117, -117, -117, -117,   55, -117, -117,
1358      -117, -117, -117,   58, -117, -117, -117, -117, -117,   58,
1359        58,   58,  139,   58,   58,   58,   58,   58,   58,   58,
1360        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1361        58, -117
1362 
1363     },
1364 
1365     {
1366         9, -118, -118, -118, -118, -118, -118,   55, -118, -118,
1367      -118, -118, -118,   58, -118, -118, -118, -118, -118,   58,
1368        58,   58,   58,   58,  140,   58,   58,   58,   58,   58,
1369        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1370        58, -118
1371     },
1372 
1373     {
1374         9, -119, -119, -119, -119, -119, -119,   55, -119, -119,
1375      -119, -119, -119,   58, -119, -119, -119, -119, -119,   58,
1376        58,   58,   58,   58,   58,   58,   58,   58,  141,   58,
1377        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1378        58, -119
1379 
1380     },
1381 
1382     {
1383         9, -120, -120, -120, -120, -120, -120,   55, -120, -120,
1384      -120, -120, -120,   58, -120, -120, -120, -120, -120,   58,
1385        58,  142,   58,   58,   58,   58,   58,   58,   58,   58,
1386        58,   58,   58,   58,   58,   58,  143,   58,   58,   58,
1387        58, -120
1388     },
1389 
1390     {
1391         9, -121, -121, -121, -121, -121, -121,   55, -121, -121,
1392      -121, -121, -121,   58, -121, -121, -121, -121, -121,   58,
1393        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1394        58,   58,   58,   58,   58,   58,   58,  144,   58,   58,
1395        58, -121
1396 
1397     },
1398 
1399     {
1400         9, -122, -122, -122, -122, -122, -122,   55, -122, -122,
1401      -122, -122, -122,   58, -122, -122, -122, -122, -122,   58,
1402        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1403        58,  145,   58,   58,   58,   58,   58,   58,   58,   58,
1404        58, -122
1405     },
1406 
1407     {
1408         9, -123, -123, -123, -123, -123, -123,   55, -123, -123,
1409      -123, -123, -123,   58, -123, -123, -123, -123, -123,   58,
1410        58,   58,   58,   58,   58,   58,   58,  146,   58,   58,
1411        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1412        58, -123
1413 
1414     },
1415 
1416     {
1417         9, -124, -124, -124, -124, -124, -124,   55, -124, -124,
1418      -124, -124, -124,   58, -124, -124, -124, -124, -124,   58,
1419        58,   58,   58,   58,   58,  147,   58,   58,   58,   58,
1420        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1421        58, -124
1422     },
1423 
1424     {
1425         9, -125, -125, -125, -125, -125, -125,   55, -125, -125,
1426      -125, -125, -125,   58, -125, -125, -125, -125, -125,   58,
1427        58,   58,   58,   58,  148,   58,   58,   58,   58,   58,
1428        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1429        58, -125
1430 
1431     },
1432 
1433     {
1434         9, -126, -126, -126, -126, -126, -126,   55, -126, -126,
1435      -126, -126, -126,   58, -126, -126, -126, -126, -126,   58,
1436        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1437        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1438        58, -126
1439     },
1440 
1441     {
1442         9, -127, -127, -127, -127, -127, -127,   55, -127, -127,
1443      -127, -127, -127,   58, -127, -127, -127, -127, -127,   58,
1444        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1445        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1446       149, -127
1447 
1448     },
1449 
1450     {
1451         9, -128, -128, -128, -128, -128, -128,   55, -128, -128,
1452      -128, -128, -128,   58, -128, -128, -128, -128, -128,   58,
1453        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1454       150,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1455        58, -128
1456     },
1457 
1458     {
1459         9, -129, -129, -129, -129, -129, -129,   55, -129, -129,
1460      -129, -129, -129,   58, -129, -129, -129, -129, -129,   58,
1461        58,   58,  151,   58,   58,   58,   58,   58,   58,   58,
1462        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1463        58, -129
1464 
1465     },
1466 
1467     {
1468         9, -130, -130, -130, -130, -130, -130,   55, -130, -130,
1469      -130, -130, -130,   58, -130, -130, -130, -130, -130,   58,
1470        58,   58,   58,   58,   58,   58,   58,   58,   58,  152,
1471        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1472        58, -130
1473     },
1474 
1475     {
1476         9, -131, -131, -131, -131, -131, -131,   55, -131, -131,
1477      -131, -131, -131,   58, -131, -131, -131, -131, -131,   58,
1478        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1479        58,   58,  153,   58,   58,   58,   58,   58,   58,   58,
1480        58, -131
1481 
1482     },
1483 
1484     {
1485         9, -132, -132, -132, -132, -132, -132,   55, -132, -132,
1486      -132, -132, -132,   58, -132, -132, -132, -132, -132,   58,
1487        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1488        58,   58,   58,  154,   58,   58,   58,   58,   58,   58,
1489        58, -132
1490     },
1491 
1492     {
1493         9, -133, -133, -133, -133, -133, -133,   55, -133, -133,
1494      -133, -133, -133,   58, -133, -133, -133, -133, -133,   58,
1495        58,   58,   58,   58,  155,   58,   58,   58,   58,   58,
1496        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1497        58, -133
1498 
1499     },
1500 
1501     {
1502         9, -134, -134, -134, -134, -134, -134,   55, -134, -134,
1503      -134, -134, -134,   58, -134, -134, -134, -134, -134,   58,
1504        58,   58,  156,   58,   58,   58,   58,   58,   58,   58,
1505        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1506        58, -134
1507     },
1508 
1509     {
1510         9, -135, -135, -135, -135, -135, -135,   55, -135, -135,
1511      -135, -135, -135,   58, -135, -135, -135, -135, -135,   58,
1512        58,   58,  157,   58,   58,   58,   58,   58,   58,   58,
1513        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1514        58, -135
1515 
1516     },
1517 
1518     {
1519         9, -136, -136, -136, -136, -136, -136,   55, -136, -136,
1520      -136, -136, -136,   58, -136, -136, -136, -136, -136,   58,
1521        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1522        58,  158,   58,   58,   58,   58,   58,   58,   58,   58,
1523        58, -136
1524     },
1525 
1526     {
1527         9, -137, -137, -137, -137, -137, -137,   55, -137, -137,
1528      -137, -137, -137,   58, -137, -137, -137, -137, -137,   58,
1529        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1530        58,   58,   58,   58,   58,   58,  159,   58,   58,   58,
1531        58, -137
1532 
1533     },
1534 
1535     {
1536         9, -138, -138, -138, -138, -138, -138,   55, -138, -138,
1537      -138, -138, -138,   58, -138, -138, -138, -138, -138,   58,
1538        58,  160,   58,   58,   58,   58,   58,   58,   58,   58,
1539        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1540        58, -138
1541     },
1542 
1543     {
1544         9, -139, -139, -139, -139, -139, -139,   55, -139, -139,
1545      -139, -139, -139,   58, -139, -139, -139, -139, -139,   58,
1546        58,   58,   58,   58,  161,   58,   58,   58,   58,   58,
1547        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1548        58, -139
1549 
1550     },
1551 
1552     {
1553         9, -140, -140, -140, -140, -140, -140,   55, -140, -140,
1554      -140, -140, -140,   58, -140, -140, -140, -140, -140,   58,
1555        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1556        58,  162,   58,   58,   58,   58,   58,   58,   58,   58,
1557        58, -140
1558     },
1559 
1560     {
1561         9, -141, -141, -141, -141, -141, -141,   55, -141, -141,
1562      -141, -141, -141,   58, -141, -141, -141, -141, -141,   58,
1563        58,   58,   58,   58,   58,   58,  163,   58,   58,   58,
1564        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1565        58, -141
1566 
1567     },
1568 
1569     {
1570         9, -142, -142, -142, -142, -142, -142,   55, -142, -142,
1571      -142, -142, -142,   58, -142, -142, -142, -142, -142,   58,
1572        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1573        58,   58,  164,   58,   58,   58,   58,   58,   58,   58,
1574        58, -142
1575     },
1576 
1577     {
1578         9, -143, -143, -143, -143, -143, -143,   55, -143, -143,
1579      -143, -143, -143,   58, -143, -143, -143, -143, -143,   58,
1580        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1581        58,   58,   58,   58,  165,   58,   58,   58,   58,   58,
1582        58, -143
1583 
1584     },
1585 
1586     {
1587         9, -144, -144, -144, -144, -144, -144,   55, -144, -144,
1588      -144, -144, -144,   58, -144, -144, -144, -144, -144,   58,
1589        58,   58,   58,   58,   58,   58,   58,   58,   58,  166,
1590        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1591        58, -144
1592     },
1593 
1594     {
1595         9, -145, -145, -145, -145, -145, -145,   55, -145, -145,
1596      -145, -145, -145,   58, -145, -145, -145, -145, -145,   58,
1597        58,   58,   58,  167,   58,   58,   58,   58,   58,   58,
1598        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1599        58, -145
1600 
1601     },
1602 
1603     {
1604         9, -146, -146, -146, -146, -146, -146,   55, -146, -146,
1605      -146, -146, -146,   58, -146, -146, -146, -146, -146,   58,
1606        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1607        58,   58,  168,   58,   58,   58,   58,   58,   58,   58,
1608        58, -146
1609     },
1610 
1611     {
1612         9, -147, -147, -147, -147, -147, -147,   55, -147, -147,
1613      -147, -147, -147,   58, -147, -147, -147, -147, -147,   58,
1614        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1615        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1616        58, -147
1617 
1618     },
1619 
1620     {
1621         9, -148, -148, -148, -148, -148, -148,   55, -148, -148,
1622      -148, -148, -148,   58, -148, -148, -148, -148, -148,   58,
1623        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1624        58,  169,   58,   58,   58,   58,   58,   58,   58,   58,
1625        58, -148
1626     },
1627 
1628     {
1629         9, -149, -149, -149, -149, -149, -149,   55, -149, -149,
1630      -149, -149, -149,   58, -149, -149, -149, -149, -149,   58,
1631        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1632        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1633        58, -149
1634 
1635     },
1636 
1637     {
1638         9, -150, -150, -150, -150, -150, -150,   55, -150, -150,
1639      -150, -150, -150,   58, -150, -150, -150, -150, -150,   58,
1640        58,   58,   58,   58,  170,   58,   58,   58,   58,   58,
1641        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1642        58, -150
1643     },
1644 
1645     {
1646         9, -151, -151, -151, -151, -151, -151,   55, -151, -151,
1647      -151, -151, -151,   58, -151, -151, -151, -151, -151,   58,
1648        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1649        58,   58,  171,   58,   58,   58,   58,   58,   58,   58,
1650        58, -151
1651 
1652     },
1653 
1654     {
1655         9, -152, -152, -152, -152, -152, -152,   55, -152, -152,
1656      -152, -152, -152,   58, -152, -152, -152, -152, -152,   58,
1657        58,   58,   58,   58,  172,   58,   58,   58,   58,   58,
1658        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1659        58, -152
1660     },
1661 
1662     {
1663         9, -153, -153, -153, -153, -153, -153,   55, -153, -153,
1664      -153, -153, -153,   58, -153, -153, -153, -153, -153,   58,
1665        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1666        58,  173,   58,   58,   58,   58,   58,   58,   58,   58,
1667        58, -153
1668 
1669     },
1670 
1671     {
1672         9, -154, -154, -154, -154, -154, -154,   55, -154, -154,
1673      -154, -154, -154,   58, -154, -154, -154, -154, -154,   58,
1674        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1675        58,   58,   58,   58,   58,   58,  174,   58,   58,   58,
1676        58, -154
1677     },
1678 
1679     {
1680         9, -155, -155, -155, -155, -155, -155,   55, -155, -155,
1681      -155, -155, -155,   58, -155, -155, -155, -155, -155,   58,
1682        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1683        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1684        58, -155
1685 
1686     },
1687 
1688     {
1689         9, -156, -156, -156, -156, -156, -156,   55, -156, -156,
1690      -156, -156, -156,   58, -156, -156, -156, -156, -156,   58,
1691        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1692        58,   58,   58,   58,   58,   58,  175,   58,   58,   58,
1693        58, -156
1694     },
1695 
1696     {
1697         9, -157, -157, -157, -157, -157, -157,   55, -157, -157,
1698      -157, -157, -157,   58, -157, -157, -157, -157, -157,   58,
1699        58,   58,   58,   58,  176,   58,   58,   58,   58,   58,
1700        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1701        58, -157
1702 
1703     },
1704 
1705     {
1706         9, -158, -158, -158, -158, -158, -158,   55, -158, -158,
1707      -158, -158, -158,   58, -158, -158, -158, -158, -158,   58,
1708        58,   58,   58,   58,   58,   58,  177,   58,   58,   58,
1709        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1710        58, -158
1711     },
1712 
1713     {
1714         9, -159, -159, -159, -159, -159, -159,   55, -159, -159,
1715      -159, -159, -159,   58, -159, -159, -159, -159, -159,   58,
1716       178,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1717        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1718        58, -159
1719 
1720     },
1721 
1722     {
1723         9, -160, -160, -160, -160, -160, -160,   55, -160, -160,
1724      -160, -160, -160,   58, -160, -160, -160, -160, -160,   58,
1725        58,   58,   58,   58,   58,   58,   58,   58,   58,  179,
1726        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1727        58, -160
1728     },
1729 
1730     {
1731         9, -161, -161, -161, -161, -161, -161,   55, -161, -161,
1732      -161, -161, -161,   58, -161, -161, -161, -161, -161,   58,
1733        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1734        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1735        58, -161
1736 
1737     },
1738 
1739     {
1740         9, -162, -162, -162, -162, -162, -162,   55, -162, -162,
1741      -162, -162, -162,   58, -162, -162, -162, -162, -162,   58,
1742        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1743        58,   58,   58,   58,   58,   58,  180,   58,   58,   58,
1744        58, -162
1745     },
1746 
1747     {
1748         9, -163, -163, -163, -163, -163, -163,   55, -163, -163,
1749      -163, -163, -163,   58, -163, -163, -163, -163, -163,   58,
1750        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1751        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1752        58, -163
1753 
1754     },
1755 
1756     {
1757         9, -164, -164, -164, -164, -164, -164,   55, -164, -164,
1758      -164, -164, -164,   58, -164, -164, -164, -164, -164,   58,
1759        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1760        58,   58,  181,   58,   58,   58,   58,   58,   58,   58,
1761        58, -164
1762     },
1763 
1764     {
1765         9, -165, -165, -165, -165, -165, -165,   55, -165, -165,
1766      -165, -165, -165,   58, -165, -165, -165, -165, -165,   58,
1767        58,   58,   58,   58,   58,   58,   58,   58,  182,   58,
1768        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1769        58, -165
1770 
1771     },
1772 
1773     {
1774         9, -166, -166, -166, -166, -166, -166,   55, -166, -166,
1775      -166, -166, -166,   58, -166, -166, -166, -166, -166,   58,
1776        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1777        58,   58,   58,   58,   58,   58,  183,   58,   58,   58,
1778        58, -166
1779     },
1780 
1781     {
1782         9, -167, -167, -167, -167, -167, -167,   55, -167, -167,
1783      -167, -167, -167,   58, -167, -167, -167, -167, -167,   58,
1784        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1785        58,   58,   58,   58,   58,  184,   58,   58,   58,   58,
1786        58, -167
1787 
1788     },
1789 
1790     {
1791         9, -168, -168, -168, -168, -168, -168,   55, -168, -168,
1792      -168, -168, -168,   58, -168, -168, -168, -168, -168,   58,
1793        58,   58,   58,   58,   58,   58,   58,   58,  185,   58,
1794        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1795        58, -168
1796     },
1797 
1798     {
1799         9, -169, -169, -169, -169, -169, -169,   55, -169, -169,
1800      -169, -169, -169,   58, -169, -169, -169, -169, -169,   58,
1801        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1802        58,   58,   58,   58,   58,   58,   58,  186,   58,   58,
1803        58, -169
1804 
1805     },
1806 
1807     {
1808         9, -170, -170, -170, -170, -170, -170,   55, -170, -170,
1809      -170, -170, -170,   58, -170, -170, -170, -170, -170,   58,
1810        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1811        58,  187,   58,   58,   58,   58,   58,   58,   58,   58,
1812        58, -170
1813     },
1814 
1815     {
1816         9, -171, -171, -171, -171, -171, -171,   55, -171, -171,
1817      -171, -171, -171,   58, -171, -171, -171, -171, -171,   58,
1818        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1819        58,  188,   58,   58,   58,   58,   58,   58,   58,   58,
1820        58, -171
1821 
1822     },
1823 
1824     {
1825         9, -172, -172, -172, -172, -172, -172,   55, -172, -172,
1826      -172, -172, -172,   58, -172, -172, -172, -172, -172,   58,
1827        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1828        58,   58,   58,   58,   58,  189,   58,   58,   58,   58,
1829        58, -172
1830     },
1831 
1832     {
1833         9, -173, -173, -173, -173, -173, -173,   55, -173, -173,
1834      -173, -173, -173,   58, -173, -173, -173, -173, -173,   58,
1835       190,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1836        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1837        58, -173
1838 
1839     },
1840 
1841     {
1842         9, -174, -174, -174, -174, -174, -174,   55, -174, -174,
1843      -174, -174, -174,   58, -174, -174, -174, -174, -174,   58,
1844        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1845        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1846        58, -174
1847     },
1848 
1849     {
1850         9, -175, -175, -175, -175, -175, -175,   55, -175, -175,
1851      -175, -175, -175,   58, -175, -175, -175, -175, -175,   58,
1852        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1853        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1854        58, -175
1855 
1856     },
1857 
1858     {
1859         9, -176, -176, -176, -176, -176, -176,   55, -176, -176,
1860      -176, -176, -176,   58, -176, -176, -176, -176, -176,   58,
1861        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1862        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1863        58, -176
1864     },
1865 
1866     {
1867         9, -177, -177, -177, -177, -177, -177,   55, -177, -177,
1868      -177, -177, -177,   58, -177, -177, -177, -177, -177,   58,
1869        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1870        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1871        58, -177
1872 
1873     },
1874 
1875     {
1876         9, -178, -178, -178, -178, -178, -178,   55, -178, -178,
1877      -178, -178, -178,   58, -178, -178, -178, -178, -178,   58,
1878        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1879        58,   58,   58,   58,   58,   58,  191,   58,   58,   58,
1880        58, -178
1881     },
1882 
1883     {
1884         9, -179, -179, -179, -179, -179, -179,   55, -179, -179,
1885      -179, -179, -179,   58, -179, -179, -179, -179, -179,   58,
1886        58,   58,   58,   58,  192,   58,   58,   58,   58,   58,
1887        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1888        58, -179
1889 
1890     },
1891 
1892     {
1893         9, -180, -180, -180, -180, -180, -180,   55, -180, -180,
1894      -180, -180, -180,   58, -180, -180, -180, -180, -180,   58,
1895        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1896        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1897        58, -180
1898     },
1899 
1900     {
1901         9, -181, -181, -181, -181, -181, -181,   55, -181, -181,
1902      -181, -181, -181,   58, -181, -181, -181, -181, -181,   58,
1903        58,   58,   58,   58,   58,   58,   58,   58,   58,  193,
1904        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1905        58, -181
1906 
1907     },
1908 
1909     {
1910         9, -182, -182, -182, -182, -182, -182,   55, -182, -182,
1911      -182, -182, -182,   58, -182, -182, -182, -182, -182,   58,
1912        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1913        58,   58,   58,   58,   58,  194,   58,   58,   58,   58,
1914        58, -182
1915     },
1916 
1917     {
1918         9, -183, -183, -183, -183, -183, -183,   55, -183, -183,
1919      -183, -183, -183,   58, -183, -183, -183, -183, -183,   58,
1920        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1921        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1922        58, -183
1923 
1924     },
1925 
1926     {
1927         9, -184, -184, -184, -184, -184, -184,   55, -184, -184,
1928      -184, -184, -184,   58, -184, -184, -184, -184, -184,   58,
1929        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1930        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1931        58, -184
1932     },
1933 
1934     {
1935         9, -185, -185, -185, -185, -185, -185,   55, -185, -185,
1936      -185, -185, -185,   58, -185, -185, -185, -185, -185,   58,
1937        58,   58,  195,   58,   58,   58,   58,   58,   58,   58,
1938        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1939        58, -185
1940 
1941     },
1942 
1943     {
1944         9, -186, -186, -186, -186, -186, -186,   55, -186, -186,
1945      -186, -186, -186,   58, -186, -186, -186, -186, -186,   58,
1946        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1947        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1948        58, -186
1949     },
1950 
1951     {
1952         9, -187, -187, -187, -187, -187, -187,   55, -187, -187,
1953      -187, -187, -187,   58, -187, -187, -187, -187, -187,   58,
1954        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1955        58,   58,   58,   58,   58,   58,   58,  196,   58,   58,
1956        58, -187
1957 
1958     },
1959 
1960     {
1961         9, -188, -188, -188, -188, -188, -188,   55, -188, -188,
1962      -188, -188, -188,   58, -188, -188, -188, -188, -188,   58,
1963        58,   58,   58,   58,   58,  197,   58,   58,   58,   58,
1964        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1965        58, -188
1966     },
1967 
1968     {
1969         9, -189, -189, -189, -189, -189, -189,   55, -189, -189,
1970      -189, -189, -189,   58, -189, -189, -189, -189, -189,   58,
1971        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1972        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1973        58, -189
1974 
1975     },
1976 
1977     {
1978         9, -190, -190, -190, -190, -190, -190,   55, -190, -190,
1979      -190, -190, -190,   58, -190, -190, -190, -190, -190,   58,
1980        58,   58,   58,   58,   58,   58,   58,   58,   58,  198,
1981        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1982        58, -190
1983     },
1984 
1985     {
1986         9, -191, -191, -191, -191, -191, -191,   55, -191, -191,
1987      -191, -191, -191,   58, -191, -191, -191, -191, -191,   58,
1988        58,   58,   58,   58,  199,   58,   58,   58,   58,   58,
1989        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1990        58, -191
1991 
1992     },
1993 
1994     {
1995         9, -192, -192, -192, -192, -192, -192,   55, -192, -192,
1996      -192, -192, -192,   58, -192, -192, -192, -192, -192,   58,
1997        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1998        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1999        58, -192
2000     },
2001 
2002     {
2003         9, -193, -193, -193, -193, -193, -193,   55, -193, -193,
2004      -193, -193, -193,   58, -193, -193, -193, -193, -193,   58,
2005        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2006        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2007        58, -193
2008 
2009     },
2010 
2011     {
2012         9, -194, -194, -194, -194, -194, -194,   55, -194, -194,
2013      -194, -194, -194,   58, -194, -194, -194, -194, -194,   58,
2014        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2015        58,   58,   58,   58,   58,   58,  200,   58,   58,   58,
2016        58, -194
2017     },
2018 
2019     {
2020         9, -195, -195, -195, -195, -195, -195,   55, -195, -195,
2021      -195, -195, -195,   58, -195, -195, -195, -195, -195,   58,
2022        58,   58,   58,   58,  201,   58,   58,   58,   58,   58,
2023        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2024        58, -195
2025 
2026     },
2027 
2028     {
2029         9, -196, -196, -196, -196, -196, -196,   55, -196, -196,
2030      -196, -196, -196,   58, -196, -196, -196, -196, -196,   58,
2031        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2032        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2033        58, -196
2034     },
2035 
2036     {
2037         9, -197, -197, -197, -197, -197, -197,   55, -197, -197,
2038      -197, -197, -197,   58, -197, -197, -197, -197, -197,   58,
2039        58,   58,   58,   58,   58,   58,   58,   58,  202,   58,
2040        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2041        58, -197
2042 
2043     },
2044 
2045     {
2046         9, -198, -198, -198, -198, -198, -198,   55, -198, -198,
2047      -198, -198, -198,   58, -198, -198, -198, -198, -198,   58,
2048        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2049        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2050        58, -198
2051     },
2052 
2053     {
2054         9, -199, -199, -199, -199, -199, -199,   55, -199, -199,
2055      -199, -199, -199,   58, -199, -199, -199, -199, -199,   58,
2056        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2057        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2058        58, -199
2059 
2060     },
2061 
2062     {
2063         9, -200, -200, -200, -200, -200, -200,   55, -200, -200,
2064      -200, -200, -200,   58, -200, -200, -200, -200, -200,   58,
2065       203,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2066        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2067        58, -200
2068     },
2069 
2070     {
2071         9, -201, -201, -201, -201, -201, -201,   55, -201, -201,
2072      -201, -201, -201,   58, -201, -201, -201, -201, -201,   58,
2073        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2074        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2075        58, -201
2076 
2077     },
2078 
2079     {
2080         9, -202, -202, -202, -202, -202, -202,   55, -202, -202,
2081      -202, -202, -202,   58, -202, -202, -202, -202, -202,   58,
2082        58,   58,   58,   58,   58,   58,  204,   58,   58,   58,
2083        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2084        58, -202
2085     },
2086 
2087     {
2088         9, -203, -203, -203, -203, -203, -203,   55, -203, -203,
2089      -203, -203, -203,   58, -203, -203, -203, -203, -203,   58,
2090        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2091        58,   58,   58,   58,   58,   58,  205,   58,   58,   58,
2092        58, -203
2093 
2094     },
2095 
2096     {
2097         9, -204, -204, -204, -204, -204, -204,   55, -204, -204,
2098      -204, -204, -204,   58, -204, -204, -204, -204, -204,   58,
2099        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2100        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2101        58, -204
2102     },
2103 
2104     {
2105         9, -205, -205, -205, -205, -205, -205,   55, -205, -205,
2106      -205, -205, -205,   58, -205, -205, -205, -205, -205,   58,
2107        58,   58,   58,   58,  206,   58,   58,   58,   58,   58,
2108        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2109        58, -205
2110 
2111     },
2112 
2113     {
2114         9, -206, -206, -206, -206, -206, -206,   55, -206, -206,
2115      -206, -206, -206,   58, -206, -206, -206, -206, -206,   58,
2116        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2117        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2118        58, -206
2119     },
2120 
2121     } ;
2122 
2123 static yy_state_type yy_get_previous_state ( void );
2124 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
2125 static int yy_get_next_buffer ( void );
2126 static void yynoreturn yy_fatal_error ( const char* msg  );
2127 
2128 /* Done after the current pattern has been matched and before the
2129  * corresponding action - sets up yytext.
2130  */
2131 #define YY_DO_BEFORE_ACTION \
2132 	(yytext_ptr) = yy_bp; \
2133 	yyleng = (int) (yy_cp - yy_bp); \
2134 	(yy_hold_char) = *yy_cp; \
2135 	*yy_cp = '\0'; \
2136 	(yy_c_buf_p) = yy_cp;
2137 #define YY_NUM_RULES 63
2138 #define YY_END_OF_BUFFER 64
2139 /* This struct is not used in this scanner,
2140    but its presence is necessary. */
2141 struct yy_trans_info
2142 	{
2143 	flex_int32_t yy_verify;
2144 	flex_int32_t yy_nxt;
2145 	};
2146 static const flex_int16_t yy_accept[207] =
2147     {   0,
2148         2,    2,    0,    0,    0,    0,    0,    0,   64,   50,
2149         2,    4,   42,   47,    1,   49,   50,   43,   44,   50,
2150        48,   50,   38,   36,   40,   50,   48,   48,   48,   48,
2151        48,   48,   48,   48,   48,   48,   48,   48,   48,   50,
2152        51,   53,   52,   62,   59,   61,   55,   58,   57,   54,
2153        56,    2,   37,    1,   49,   35,   46,   48,   45,   39,
2154        41,    3,   48,   48,   48,   48,   48,   48,   18,   48,
2155        48,   48,   48,   48,   25,   48,   48,   48,   48,   48,
2156        48,   48,   48,   34,   51,   51,   62,   59,   61,   60,
2157        55,   54,   56,   48,   48,   48,   48,   48,   48,   48,
2158 
2159        48,   17,   48,   20,   48,   48,   48,   48,   48,   48,
2160        48,   48,   48,   48,   48,    5,   48,   48,   48,   48,
2161        48,   48,   48,   48,   48,   16,   48,   48,   22,   48,
2162        48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
2163        48,   48,   48,   48,   48,   48,   14,   48,   19,   48,
2164        48,   48,   48,   48,   28,   48,   48,   48,   48,   48,
2165         6,   48,    8,   48,   48,   48,   48,   48,   48,   48,
2166        48,   48,   48,   27,   29,   30,   31,   48,   48,    7,
2167        48,   48,   11,   12,   48,   15,   48,   48,   24,   48,
2168        48,   33,    9,   48,   48,   21,   48,   26,   32,   48,
2169 
2170        13,   48,   48,   23,   48,   10
2171     } ;
2172 
2173 static const YY_CHAR yy_ec[256] =
2174     {   0,
2175         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
2176         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2177         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2178         1,    2,    4,    5,    6,    7,    1,    8,    9,   10,
2179        11,    1,   12,    1,   13,    1,    1,   13,   13,   13,
2180        13,   13,   13,   13,   13,   13,   13,   14,    1,   15,
2181        16,   17,    1,    1,   13,   13,   13,   13,   13,   13,
2182        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
2183        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
2184         1,   18,    1,    1,   19,    1,   20,   21,   22,   23,
2185 
2186        24,   25,   26,   27,   28,   13,   13,   29,   30,   31,
2187        32,   33,   13,   34,   35,   36,   37,   38,   13,   39,
2188        40,   13,    1,   41,    1,    1,    1,    1,    1,    1,
2189         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2190         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2191         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2192         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2193         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2194         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2195         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2196 
2197         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2198         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2199         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2200         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2201         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2202         1,    1,    1,    1,    1
2203     } ;
2204 
2205 /* Table of booleans, true if rule could match eol. */
2206 static const flex_int32_t yy_rule_can_match_eol[64] =
2207     {   0,
2208 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2209     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2210     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
2211     1, 1, 0, 0,     };
2212 
2213 extern int yy_flex_debug;
2214 int yy_flex_debug = 0;
2215 
2216 /* The intent behind this definition is that it'll catch
2217  * any uses of REJECT which flex missed.
2218  */
2219 #define REJECT reject_used_but_not_detected
2220 #define yymore() yymore_used_but_not_detected
2221 #define YY_MORE_ADJ 0
2222 #define YY_RESTORE_YY_MORE_OFFSET
2223 char *yytext;
2224 /* SPDX-License-Identifier: GPL-2.0 */
2225 /*
2226  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
2227  */
2228 
2229 #include <assert.h>
2230 #include <limits.h>
2231 #include <stdio.h>
2232 #include <stdlib.h>
2233 #include <string.h>
2234 
2235 #include "lkc.h"
2236 #include "parser.tab.h"
2237 
2238 #define YY_DECL		static int yylex1(void)
2239 
2240 #define START_STRSIZE	16
2241 
2242 static struct {
2243 	struct file *file;
2244 	int lineno;
2245 } current_pos;
2246 
2247 static int prev_prev_token = T_EOL;
2248 static int prev_token = T_EOL;
2249 static char *text;
2250 static int text_size, text_asize;
2251 
2252 struct buffer {
2253 	struct buffer *parent;
2254 	YY_BUFFER_STATE state;
2255 };
2256 
2257 static struct buffer *current_buf;
2258 
2259 static int last_ts, first_ts;
2260 
2261 static char *expand_token(const char *in, size_t n);
2262 static void append_expanded_string(const char *in);
2263 static void zconf_endhelp(void);
2264 static void zconf_endfile(void);
2265 
new_string(void)2266 static void new_string(void)
2267 {
2268 	text = xmalloc(START_STRSIZE);
2269 	text_asize = START_STRSIZE;
2270 	text_size = 0;
2271 	*text = 0;
2272 }
2273 
append_string(const char * str,int size)2274 static void append_string(const char *str, int size)
2275 {
2276 	int new_size = text_size + size + 1;
2277 	if (new_size > text_asize) {
2278 		new_size += START_STRSIZE - 1;
2279 		new_size &= -START_STRSIZE;
2280 		text = xrealloc(text, new_size);
2281 		text_asize = new_size;
2282 	}
2283 	memcpy(text + text_size, str, size);
2284 	text_size += size;
2285 	text[text_size] = 0;
2286 }
2287 
alloc_string(const char * str,int size)2288 static void alloc_string(const char *str, int size)
2289 {
2290 	text = xmalloc(size + 1);
2291 	memcpy(text, str, size);
2292 	text[size] = 0;
2293 }
2294 
warn_ignored_character(char chr)2295 static void warn_ignored_character(char chr)
2296 {
2297 	fprintf(stderr,
2298 	        "%s:%d:warning: ignoring unsupported character '%c'\n",
2299 	        current_file->name, yylineno, chr);
2300 }
2301 
2302 #define INITIAL 0
2303 #define ASSIGN_VAL 1
2304 #define HELP 2
2305 #define STRING 3
2306 
2307 #ifndef YY_NO_UNISTD_H
2308 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2309  * down here because we want the user's section 1 to have been scanned first.
2310  * The user has a chance to override it with an option.
2311  */
2312 #include <unistd.h>
2313 #endif
2314 
2315 #ifndef YY_EXTRA_TYPE
2316 #define YY_EXTRA_TYPE void *
2317 #endif
2318 
2319 static int yy_init_globals ( void );
2320 
2321 /* Accessor methods to globals.
2322    These are made visible to non-reentrant scanners for convenience. */
2323 
2324 int yylex_destroy ( void );
2325 
2326 int yyget_debug ( void );
2327 
2328 void yyset_debug ( int debug_flag  );
2329 
2330 YY_EXTRA_TYPE yyget_extra ( void );
2331 
2332 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
2333 
2334 FILE *yyget_in ( void );
2335 
2336 void yyset_in  ( FILE * _in_str  );
2337 
2338 FILE *yyget_out ( void );
2339 
2340 void yyset_out  ( FILE * _out_str  );
2341 
2342 			int yyget_leng ( void );
2343 
2344 char *yyget_text ( void );
2345 
2346 int yyget_lineno ( void );
2347 
2348 void yyset_lineno ( int _line_number  );
2349 
2350 /* Macros after this point can all be overridden by user definitions in
2351  * section 1.
2352  */
2353 
2354 #ifndef YY_SKIP_YYWRAP
2355 #ifdef __cplusplus
2356 extern "C" int yywrap ( void );
2357 #else
2358 extern int yywrap ( void );
2359 #endif
2360 #endif
2361 
2362 #ifndef YY_NO_UNPUT
2363 
2364     static void yyunput ( int c, char *buf_ptr  );
2365 
2366 #endif
2367 
2368 #ifndef yytext_ptr
2369 static void yy_flex_strncpy ( char *, const char *, int );
2370 #endif
2371 
2372 #ifdef YY_NEED_STRLEN
2373 static int yy_flex_strlen ( const char * );
2374 #endif
2375 
2376 #ifndef YY_NO_INPUT
2377 #ifdef __cplusplus
2378 static int yyinput ( void );
2379 #else
2380 static int input ( void );
2381 #endif
2382 
2383 #endif
2384 
2385 /* Amount of stuff to slurp up with each read. */
2386 #ifndef YY_READ_BUF_SIZE
2387 #ifdef __ia64__
2388 /* On IA-64, the buffer size is 16k, not 8k */
2389 #define YY_READ_BUF_SIZE 16384
2390 #else
2391 #define YY_READ_BUF_SIZE 8192
2392 #endif /* __ia64__ */
2393 #endif
2394 
2395 /* Copy whatever the last rule matched to the standard output. */
2396 #ifndef ECHO
2397 /* This used to be an fputs(), but since the string might contain NUL's,
2398  * we now use fwrite().
2399  */
2400 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2401 #endif
2402 
2403 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2404  * is returned in "result".
2405  */
2406 #ifndef YY_INPUT
2407 #define YY_INPUT(buf,result,max_size) \
2408 	errno=0; \
2409 	while ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \
2410 	{ \
2411 		if( errno != EINTR) \
2412 		{ \
2413 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
2414 			break; \
2415 		} \
2416 		errno=0; \
2417 		clearerr(yyin); \
2418 	}\
2419 \
2420 
2421 #endif
2422 
2423 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2424  * we don't want an extra ';' after the "return" because that will cause
2425  * some compilers to complain about unreachable statements.
2426  */
2427 #ifndef yyterminate
2428 #define yyterminate() return YY_NULL
2429 #endif
2430 
2431 /* Number of entries by which start-condition stack grows. */
2432 #ifndef YY_START_STACK_INCR
2433 #define YY_START_STACK_INCR 25
2434 #endif
2435 
2436 /* Report a fatal error. */
2437 #ifndef YY_FATAL_ERROR
2438 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2439 #endif
2440 
2441 /* end tables serialization structures and prototypes */
2442 
2443 /* Default declaration of generated scanner - a define so the user can
2444  * easily add parameters.
2445  */
2446 #ifndef YY_DECL
2447 #define YY_DECL_IS_OURS 1
2448 
2449 extern int yylex (void);
2450 
2451 #define YY_DECL int yylex (void)
2452 #endif /* !YY_DECL */
2453 
2454 /* Code executed at the beginning of each rule, after yytext and yyleng
2455  * have been set up.
2456  */
2457 #ifndef YY_USER_ACTION
2458 #define YY_USER_ACTION
2459 #endif
2460 
2461 /* Code executed at the end of each rule. */
2462 #ifndef YY_BREAK
2463 #define YY_BREAK /*LINTED*/break;
2464 #endif
2465 
2466 #define YY_RULE_SETUP \
2467 	YY_USER_ACTION
2468 
2469 /** The main scanner function which does all the work.
2470  */
2471 YY_DECL
2472 {
2473 	yy_state_type yy_current_state;
2474 	char *yy_cp, *yy_bp;
2475 	int yy_act;
2476 
2477 	if ( !(yy_init) )
2478 		{
2479 		(yy_init) = 1;
2480 
2481 #ifdef YY_USER_INIT
2482 		YY_USER_INIT;
2483 #endif
2484 
2485 		if ( ! (yy_start) )
2486 			(yy_start) = 1;	/* first start state */
2487 
2488 		if ( ! yyin )
2489 			yyin = stdin;
2490 
2491 		if ( ! yyout )
2492 			yyout = stdout;
2493 
2494 		if ( ! YY_CURRENT_BUFFER ) {
2495 			yyensure_buffer_stack ();
2496 			YY_CURRENT_BUFFER_LVALUE =
2497 				yy_create_buffer( yyin, YY_BUF_SIZE );
2498 		}
2499 
2500 		yy_load_buffer_state(  );
2501 		}
2502 
2503 	{
2504 
2505 	char open_quote = 0;
2506 
2507 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
2508 		{
2509 		yy_cp = (yy_c_buf_p);
2510 
2511 		/* Support of yytext. */
2512 		*yy_cp = (yy_hold_char);
2513 
2514 		/* yy_bp points to the position in yy_ch_buf of the start of
2515 		 * the current run.
2516 		 */
2517 		yy_bp = yy_cp;
2518 
2519 		yy_current_state = (yy_start);
2520 yy_match:
2521 		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
2522 			++yy_cp;
2523 
2524 		yy_current_state = -yy_current_state;
2525 
2526 yy_find_action:
2527 		yy_act = yy_accept[yy_current_state];
2528 
2529 		YY_DO_BEFORE_ACTION;
2530 
2531 		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2532 			{
2533 			int yyl;
2534 			for ( yyl = 0; yyl < yyleng; ++yyl )
2535 				if ( yytext[yyl] == '\n' )
2536 
2537     yylineno++;
2538 ;
2539 			}
2540 
2541 do_action:	/* This label is used only to access EOF actions. */
2542 
2543 		switch ( yy_act )
2544 	{ /* beginning of action switch */
2545 case 1:
2546 YY_RULE_SETUP
2547 /* ignore comment */
2548 	YY_BREAK
2549 case 2:
2550 YY_RULE_SETUP
2551 /* whitespaces */
2552 	YY_BREAK
2553 case 3:
2554 /* rule 3 can match eol */
2555 YY_RULE_SETUP
2556 /* escaped new line */
2557 	YY_BREAK
2558 case 4:
2559 /* rule 4 can match eol */
2560 YY_RULE_SETUP
2561 return T_EOL;
2562 	YY_BREAK
2563 case 5:
2564 YY_RULE_SETUP
2565 return T_BOOL;
2566 	YY_BREAK
2567 case 6:
2568 YY_RULE_SETUP
2569 return T_CHOICE;
2570 	YY_BREAK
2571 case 7:
2572 YY_RULE_SETUP
2573 return T_COMMENT;
2574 	YY_BREAK
2575 case 8:
2576 YY_RULE_SETUP
2577 return T_CONFIG;
2578 	YY_BREAK
2579 case 9:
2580 YY_RULE_SETUP
2581 return T_DEF_BOOL;
2582 	YY_BREAK
2583 case 10:
2584 YY_RULE_SETUP
2585 return T_DEF_TRISTATE;
2586 	YY_BREAK
2587 case 11:
2588 YY_RULE_SETUP
2589 return T_DEFAULT;
2590 	YY_BREAK
2591 case 12:
2592 YY_RULE_SETUP
2593 return T_DEPENDS;
2594 	YY_BREAK
2595 case 13:
2596 YY_RULE_SETUP
2597 return T_ENDCHOICE;
2598 	YY_BREAK
2599 case 14:
2600 YY_RULE_SETUP
2601 return T_ENDIF;
2602 	YY_BREAK
2603 case 15:
2604 YY_RULE_SETUP
2605 return T_ENDMENU;
2606 	YY_BREAK
2607 case 16:
2608 YY_RULE_SETUP
2609 return T_HELP;
2610 	YY_BREAK
2611 case 17:
2612 YY_RULE_SETUP
2613 return T_HEX;
2614 	YY_BREAK
2615 case 18:
2616 YY_RULE_SETUP
2617 return T_IF;
2618 	YY_BREAK
2619 case 19:
2620 YY_RULE_SETUP
2621 return T_IMPLY;
2622 	YY_BREAK
2623 case 20:
2624 YY_RULE_SETUP
2625 return T_INT;
2626 	YY_BREAK
2627 case 21:
2628 YY_RULE_SETUP
2629 return T_MAINMENU;
2630 	YY_BREAK
2631 case 22:
2632 YY_RULE_SETUP
2633 return T_MENU;
2634 	YY_BREAK
2635 case 23:
2636 YY_RULE_SETUP
2637 return T_MENUCONFIG;
2638 	YY_BREAK
2639 case 24:
2640 YY_RULE_SETUP
2641 return T_MODULES;
2642 	YY_BREAK
2643 case 25:
2644 YY_RULE_SETUP
2645 return T_ON;
2646 	YY_BREAK
2647 case 26:
2648 YY_RULE_SETUP
2649 return T_OPTIONAL;
2650 	YY_BREAK
2651 case 27:
2652 YY_RULE_SETUP
2653 return T_PROMPT;
2654 	YY_BREAK
2655 case 28:
2656 YY_RULE_SETUP
2657 return T_RANGE;
2658 	YY_BREAK
2659 case 29:
2660 YY_RULE_SETUP
2661 return T_SELECT;
2662 	YY_BREAK
2663 case 30:
2664 YY_RULE_SETUP
2665 return T_SOURCE;
2666 	YY_BREAK
2667 case 31:
2668 YY_RULE_SETUP
2669 return T_STRING;
2670 	YY_BREAK
2671 case 32:
2672 YY_RULE_SETUP
2673 return T_TRISTATE;
2674 	YY_BREAK
2675 case 33:
2676 YY_RULE_SETUP
2677 return T_VISIBLE;
2678 	YY_BREAK
2679 case 34:
2680 YY_RULE_SETUP
2681 return T_OR;
2682 	YY_BREAK
2683 case 35:
2684 YY_RULE_SETUP
2685 return T_AND;
2686 	YY_BREAK
2687 case 36:
2688 YY_RULE_SETUP
2689 return T_EQUAL;
2690 	YY_BREAK
2691 case 37:
2692 YY_RULE_SETUP
2693 return T_UNEQUAL;
2694 	YY_BREAK
2695 case 38:
2696 YY_RULE_SETUP
2697 return T_LESS;
2698 	YY_BREAK
2699 case 39:
2700 YY_RULE_SETUP
2701 return T_LESS_EQUAL;
2702 	YY_BREAK
2703 case 40:
2704 YY_RULE_SETUP
2705 return T_GREATER;
2706 	YY_BREAK
2707 case 41:
2708 YY_RULE_SETUP
2709 return T_GREATER_EQUAL;
2710 	YY_BREAK
2711 case 42:
2712 YY_RULE_SETUP
2713 return T_NOT;
2714 	YY_BREAK
2715 case 43:
2716 YY_RULE_SETUP
2717 return T_OPEN_PAREN;
2718 	YY_BREAK
2719 case 44:
2720 YY_RULE_SETUP
2721 return T_CLOSE_PAREN;
2722 	YY_BREAK
2723 case 45:
2724 YY_RULE_SETUP
2725 return T_COLON_EQUAL;
2726 	YY_BREAK
2727 case 46:
2728 YY_RULE_SETUP
2729 return T_PLUS_EQUAL;
2730 	YY_BREAK
2731 case 47:
2732 YY_RULE_SETUP
2733 {
2734 				open_quote = yytext[0];
2735 				new_string();
2736 				BEGIN(STRING);
2737 			}
2738 	YY_BREAK
2739 case 48:
2740 YY_RULE_SETUP
2741 {
2742 				alloc_string(yytext, yyleng);
2743 				yylval.string = text;
2744 				return T_WORD;
2745 			}
2746 	YY_BREAK
2747 case 49:
2748 YY_RULE_SETUP
2749 {
2750 				/* this token includes at least one '$' */
2751 				yylval.string = expand_token(yytext, yyleng);
2752 				if (strlen(yylval.string))
2753 					return T_WORD;
2754 				free(yylval.string);
2755 			}
2756 	YY_BREAK
2757 case 50:
2758 YY_RULE_SETUP
2759 warn_ignored_character(*yytext);
2760 	YY_BREAK
2761 
2762 case 51:
2763 YY_RULE_SETUP
2764 {
2765 		alloc_string(yytext, yyleng);
2766 		yylval.string = text;
2767 		return T_ASSIGN_VAL;
2768 	}
2769 	YY_BREAK
2770 case 52:
2771 /* rule 52 can match eol */
2772 YY_RULE_SETUP
2773 { BEGIN(INITIAL); return T_EOL; }
2774 	YY_BREAK
2775 case 53:
2776 YY_RULE_SETUP
2777 
2778 	YY_BREAK
2779 
2780 case 54:
2781 YY_RULE_SETUP
2782 append_expanded_string(yytext);
2783 	YY_BREAK
2784 case 55:
2785 YY_RULE_SETUP
2786 {
2787 		append_string(yytext, yyleng);
2788 	}
2789 	YY_BREAK
2790 case 56:
2791 YY_RULE_SETUP
2792 {
2793 		append_string(yytext + 1, yyleng - 1);
2794 	}
2795 	YY_BREAK
2796 case 57:
2797 YY_RULE_SETUP
2798 {
2799 		if (open_quote == yytext[0]) {
2800 			BEGIN(INITIAL);
2801 			yylval.string = text;
2802 			return T_WORD_QUOTE;
2803 		} else
2804 			append_string(yytext, 1);
2805 	}
2806 	YY_BREAK
2807 case 58:
2808 /* rule 58 can match eol */
2809 YY_RULE_SETUP
2810 {
2811 		fprintf(stderr,
2812 			"%s:%d:warning: multi-line strings not supported\n",
2813 			zconf_curname(), zconf_lineno());
2814 		unput('\n');
2815 		BEGIN(INITIAL);
2816 		yylval.string = text;
2817 		return T_WORD_QUOTE;
2818 	}
2819 	YY_BREAK
2820 case YY_STATE_EOF(STRING):
2821 {
2822 		BEGIN(INITIAL);
2823 		yylval.string = text;
2824 		return T_WORD_QUOTE;
2825 	}
2826 	YY_BREAK
2827 
2828 case 59:
2829 YY_RULE_SETUP
2830 {
2831 		int ts, i;
2832 
2833 		ts = 0;
2834 		for (i = 0; i < yyleng; i++) {
2835 			if (yytext[i] == '\t')
2836 				ts = (ts & ~7) + 8;
2837 			else
2838 				ts++;
2839 		}
2840 		last_ts = ts;
2841 		if (first_ts) {
2842 			if (ts < first_ts) {
2843 				zconf_endhelp();
2844 				return T_HELPTEXT;
2845 			}
2846 			ts -= first_ts;
2847 			while (ts > 8) {
2848 				append_string("        ", 8);
2849 				ts -= 8;
2850 			}
2851 			append_string("        ", ts);
2852 		}
2853 	}
2854 	YY_BREAK
2855 case 60:
2856 /* rule 60 can match eol */
2857 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2858 YY_LINENO_REWIND_TO(yy_cp - 1);
2859 (yy_c_buf_p) = yy_cp -= 1;
2860 YY_DO_BEFORE_ACTION; /* set up yytext again */
2861 YY_RULE_SETUP
2862 {
2863 		zconf_endhelp();
2864 		return T_HELPTEXT;
2865 	}
2866 	YY_BREAK
2867 case 61:
2868 /* rule 61 can match eol */
2869 YY_RULE_SETUP
2870 {
2871 		append_string("\n", 1);
2872 	}
2873 	YY_BREAK
2874 case 62:
2875 YY_RULE_SETUP
2876 {
2877 		while (yyleng) {
2878 			if ((yytext[yyleng-1] != ' ') && (yytext[yyleng-1] != '\t'))
2879 				break;
2880 			yyleng--;
2881 		}
2882 		append_string(yytext, yyleng);
2883 		if (!first_ts)
2884 			first_ts = last_ts;
2885 	}
2886 	YY_BREAK
2887 case YY_STATE_EOF(HELP):
2888 {
2889 		zconf_endhelp();
2890 		return T_HELPTEXT;
2891 	}
2892 	YY_BREAK
2893 
2894 case YY_STATE_EOF(INITIAL):
2895 case YY_STATE_EOF(ASSIGN_VAL):
2896 {
2897 	BEGIN(INITIAL);
2898 
2899 	if (prev_token != T_EOL && prev_token != T_HELPTEXT)
2900 		fprintf(stderr, "%s:%d:warning: no new line at end of file\n",
2901 			current_file->name, yylineno);
2902 
2903 	if (current_file) {
2904 		zconf_endfile();
2905 		return T_EOL;
2906 	}
2907 	fclose(yyin);
2908 	yyterminate();
2909 }
2910 	YY_BREAK
2911 case 63:
2912 YY_RULE_SETUP
2913 YY_FATAL_ERROR( "flex scanner jammed" );
2914 	YY_BREAK
2915 
2916 	case YY_END_OF_BUFFER:
2917 		{
2918 		/* Amount of text matched not including the EOB char. */
2919 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2920 
2921 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2922 		*yy_cp = (yy_hold_char);
2923 		YY_RESTORE_YY_MORE_OFFSET
2924 
2925 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2926 			{
2927 			/* We're scanning a new file or input source.  It's
2928 			 * possible that this happened because the user
2929 			 * just pointed yyin at a new source and called
2930 			 * yylex().  If so, then we have to assure
2931 			 * consistency between YY_CURRENT_BUFFER and our
2932 			 * globals.  Here is the right place to do so, because
2933 			 * this is the first action (other than possibly a
2934 			 * back-up) that will match for the new input source.
2935 			 */
2936 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2937 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2938 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2939 			}
2940 
2941 		/* Note that here we test for yy_c_buf_p "<=" to the position
2942 		 * of the first EOB in the buffer, since yy_c_buf_p will
2943 		 * already have been incremented past the NUL character
2944 		 * (since all states make transitions on EOB to the
2945 		 * end-of-buffer state).  Contrast this with the test
2946 		 * in input().
2947 		 */
2948 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2949 			{ /* This was really a NUL. */
2950 			yy_state_type yy_next_state;
2951 
2952 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2953 
2954 			yy_current_state = yy_get_previous_state(  );
2955 
2956 			/* Okay, we're now positioned to make the NUL
2957 			 * transition.  We couldn't have
2958 			 * yy_get_previous_state() go ahead and do it
2959 			 * for us because it doesn't know how to deal
2960 			 * with the possibility of jamming (and we don't
2961 			 * want to build jamming into it because then it
2962 			 * will run more slowly).
2963 			 */
2964 
2965 			yy_next_state = yy_try_NUL_trans( yy_current_state );
2966 
2967 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2968 
2969 			if ( yy_next_state )
2970 				{
2971 				/* Consume the NUL. */
2972 				yy_cp = ++(yy_c_buf_p);
2973 				yy_current_state = yy_next_state;
2974 				goto yy_match;
2975 				}
2976 
2977 			else
2978 				{
2979 				yy_cp = (yy_c_buf_p);
2980 				goto yy_find_action;
2981 				}
2982 			}
2983 
2984 		else switch ( yy_get_next_buffer(  ) )
2985 			{
2986 			case EOB_ACT_END_OF_FILE:
2987 				{
2988 				(yy_did_buffer_switch_on_eof) = 0;
2989 
2990 				if ( yywrap(  ) )
2991 					{
2992 					/* Note: because we've taken care in
2993 					 * yy_get_next_buffer() to have set up
2994 					 * yytext, we can now set up
2995 					 * yy_c_buf_p so that if some total
2996 					 * hoser (like flex itself) wants to
2997 					 * call the scanner after we return the
2998 					 * YY_NULL, it'll still work - another
2999 					 * YY_NULL will get returned.
3000 					 */
3001 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3002 
3003 					yy_act = YY_STATE_EOF(YY_START);
3004 					goto do_action;
3005 					}
3006 
3007 				else
3008 					{
3009 					if ( ! (yy_did_buffer_switch_on_eof) )
3010 						YY_NEW_FILE;
3011 					}
3012 				break;
3013 				}
3014 
3015 			case EOB_ACT_CONTINUE_SCAN:
3016 				(yy_c_buf_p) =
3017 					(yytext_ptr) + yy_amount_of_matched_text;
3018 
3019 				yy_current_state = yy_get_previous_state(  );
3020 
3021 				yy_cp = (yy_c_buf_p);
3022 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3023 				goto yy_match;
3024 
3025 			case EOB_ACT_LAST_MATCH:
3026 				(yy_c_buf_p) =
3027 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3028 
3029 				yy_current_state = yy_get_previous_state(  );
3030 
3031 				yy_cp = (yy_c_buf_p);
3032 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3033 				goto yy_find_action;
3034 			}
3035 		break;
3036 		}
3037 
3038 	default:
3039 		YY_FATAL_ERROR(
3040 			"fatal flex scanner internal error--no action found" );
3041 	} /* end of action switch */
3042 		} /* end of scanning one token */
3043 	} /* end of user's declarations */
3044 } /* end of yylex */
3045 
3046 /* yy_get_next_buffer - try to read in a new buffer
3047  *
3048  * Returns a code representing an action:
3049  *	EOB_ACT_LAST_MATCH -
3050  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3051  *	EOB_ACT_END_OF_FILE - end of file
3052  */
yy_get_next_buffer(void)3053 static int yy_get_next_buffer (void)
3054 {
3055     	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3056 	char *source = (yytext_ptr);
3057 	int number_to_move, i;
3058 	int ret_val;
3059 
3060 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3061 		YY_FATAL_ERROR(
3062 		"fatal flex scanner internal error--end of buffer missed" );
3063 
3064 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3065 		{ /* Don't try to fill the buffer, so this is an EOF. */
3066 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3067 			{
3068 			/* We matched a single character, the EOB, so
3069 			 * treat this as a final EOF.
3070 			 */
3071 			return EOB_ACT_END_OF_FILE;
3072 			}
3073 
3074 		else
3075 			{
3076 			/* We matched some text prior to the EOB, first
3077 			 * process it.
3078 			 */
3079 			return EOB_ACT_LAST_MATCH;
3080 			}
3081 		}
3082 
3083 	/* Try to read more data. */
3084 
3085 	/* First move last chars to start of buffer. */
3086 	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
3087 
3088 	for ( i = 0; i < number_to_move; ++i )
3089 		*(dest++) = *(source++);
3090 
3091 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3092 		/* don't do the read, it's not guaranteed to return an EOF,
3093 		 * just force an EOF
3094 		 */
3095 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3096 
3097 	else
3098 		{
3099 			int num_to_read =
3100 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3101 
3102 		while ( num_to_read <= 0 )
3103 			{ /* Not enough room in the buffer - grow it. */
3104 
3105 			/* just a shorter name for the current buffer */
3106 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3107 
3108 			int yy_c_buf_p_offset =
3109 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
3110 
3111 			if ( b->yy_is_our_buffer )
3112 				{
3113 				int new_size = b->yy_buf_size * 2;
3114 
3115 				if ( new_size <= 0 )
3116 					b->yy_buf_size += b->yy_buf_size / 8;
3117 				else
3118 					b->yy_buf_size *= 2;
3119 
3120 				b->yy_ch_buf = (char *)
3121 					/* Include room in for 2 EOB chars. */
3122 					yyrealloc( (void *) b->yy_ch_buf,
3123 							 (yy_size_t) (b->yy_buf_size + 2)  );
3124 				}
3125 			else
3126 				/* Can't grow it, we don't own it. */
3127 				b->yy_ch_buf = NULL;
3128 
3129 			if ( ! b->yy_ch_buf )
3130 				YY_FATAL_ERROR(
3131 				"fatal error - scanner input buffer overflow" );
3132 
3133 			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3134 
3135 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3136 						number_to_move - 1;
3137 
3138 			}
3139 
3140 		if ( num_to_read > YY_READ_BUF_SIZE )
3141 			num_to_read = YY_READ_BUF_SIZE;
3142 
3143 		/* Read in more data. */
3144 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3145 			(yy_n_chars), num_to_read );
3146 
3147 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3148 		}
3149 
3150 	if ( (yy_n_chars) == 0 )
3151 		{
3152 		if ( number_to_move == YY_MORE_ADJ )
3153 			{
3154 			ret_val = EOB_ACT_END_OF_FILE;
3155 			yyrestart( yyin  );
3156 			}
3157 
3158 		else
3159 			{
3160 			ret_val = EOB_ACT_LAST_MATCH;
3161 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3162 				YY_BUFFER_EOF_PENDING;
3163 			}
3164 		}
3165 
3166 	else
3167 		ret_val = EOB_ACT_CONTINUE_SCAN;
3168 
3169 	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3170 		/* Extend the array by 50%, plus the number we really need. */
3171 		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3172 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
3173 			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
3174 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3175 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3176 		/* "- 2" to take care of EOB's */
3177 		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
3178 	}
3179 
3180 	(yy_n_chars) += number_to_move;
3181 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3182 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3183 
3184 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3185 
3186 	return ret_val;
3187 }
3188 
3189 /* yy_get_previous_state - get the state just before the EOB char was reached */
3190 
yy_get_previous_state(void)3191     static yy_state_type yy_get_previous_state (void)
3192 {
3193 	yy_state_type yy_current_state;
3194 	char *yy_cp;
3195 
3196 	yy_current_state = (yy_start);
3197 
3198 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3199 		{
3200 		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
3201 		}
3202 
3203 	return yy_current_state;
3204 }
3205 
3206 /* yy_try_NUL_trans - try to make a transition on the NUL character
3207  *
3208  * synopsis
3209  *	next_state = yy_try_NUL_trans( current_state );
3210  */
yy_try_NUL_trans(yy_state_type yy_current_state)3211     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3212 {
3213 	int yy_is_jam;
3214 
3215 	yy_current_state = yy_nxt[yy_current_state][1];
3216 	yy_is_jam = (yy_current_state <= 0);
3217 
3218 		return yy_is_jam ? 0 : yy_current_state;
3219 }
3220 
3221 #ifndef YY_NO_UNPUT
3222 
yyunput(int c,char * yy_bp)3223     static void yyunput (int c, char * yy_bp )
3224 {
3225 	char *yy_cp;
3226 
3227     yy_cp = (yy_c_buf_p);
3228 
3229 	/* undo effects of setting up yytext */
3230 	*yy_cp = (yy_hold_char);
3231 
3232 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3233 		{ /* need to shift things up to make room */
3234 		/* +2 for EOB chars. */
3235 		int number_to_move = (yy_n_chars) + 2;
3236 		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3237 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3238 		char *source =
3239 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3240 
3241 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3242 			*--dest = *--source;
3243 
3244 		yy_cp += (int) (dest - source);
3245 		yy_bp += (int) (dest - source);
3246 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3247 			(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3248 
3249 		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3250 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
3251 		}
3252 
3253 	*--yy_cp = (char) c;
3254 
3255     if ( c == '\n' ){
3256         --yylineno;
3257     }
3258 
3259 	(yytext_ptr) = yy_bp;
3260 	(yy_hold_char) = *yy_cp;
3261 	(yy_c_buf_p) = yy_cp;
3262 }
3263 
3264 #endif
3265 
3266 #ifndef YY_NO_INPUT
3267 #ifdef __cplusplus
yyinput(void)3268     static int yyinput (void)
3269 #else
3270     static int input  (void)
3271 #endif
3272 
3273 {
3274 	int c;
3275 
3276 	*(yy_c_buf_p) = (yy_hold_char);
3277 
3278 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3279 		{
3280 		/* yy_c_buf_p now points to the character we want to return.
3281 		 * If this occurs *before* the EOB characters, then it's a
3282 		 * valid NUL; if not, then we've hit the end of the buffer.
3283 		 */
3284 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3285 			/* This was really a NUL. */
3286 			*(yy_c_buf_p) = '\0';
3287 
3288 		else
3289 			{ /* need more input */
3290 			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
3291 			++(yy_c_buf_p);
3292 
3293 			switch ( yy_get_next_buffer(  ) )
3294 				{
3295 				case EOB_ACT_LAST_MATCH:
3296 					/* This happens because yy_g_n_b()
3297 					 * sees that we've accumulated a
3298 					 * token and flags that we need to
3299 					 * try matching the token before
3300 					 * proceeding.  But for input(),
3301 					 * there's no matching to consider.
3302 					 * So convert the EOB_ACT_LAST_MATCH
3303 					 * to EOB_ACT_END_OF_FILE.
3304 					 */
3305 
3306 					/* Reset buffer status. */
3307 					yyrestart( yyin );
3308 
3309 					/*FALLTHROUGH*/
3310 
3311 				case EOB_ACT_END_OF_FILE:
3312 					{
3313 					if ( yywrap(  ) )
3314 						return 0;
3315 
3316 					if ( ! (yy_did_buffer_switch_on_eof) )
3317 						YY_NEW_FILE;
3318 #ifdef __cplusplus
3319 					return yyinput();
3320 #else
3321 					return input();
3322 #endif
3323 					}
3324 
3325 				case EOB_ACT_CONTINUE_SCAN:
3326 					(yy_c_buf_p) = (yytext_ptr) + offset;
3327 					break;
3328 				}
3329 			}
3330 		}
3331 
3332 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
3333 	*(yy_c_buf_p) = '\0';	/* preserve yytext */
3334 	(yy_hold_char) = *++(yy_c_buf_p);
3335 
3336 	if ( c == '\n' )
3337 
3338     yylineno++;
3339 ;
3340 
3341 	return c;
3342 }
3343 #endif	/* ifndef YY_NO_INPUT */
3344 
3345 /** Immediately switch to a different input stream.
3346  * @param input_file A readable stream.
3347  *
3348  * @note This function does not reset the start condition to @c INITIAL .
3349  */
yyrestart(FILE * input_file)3350     void yyrestart  (FILE * input_file )
3351 {
3352 
3353 	if ( ! YY_CURRENT_BUFFER ){
3354         yyensure_buffer_stack ();
3355 		YY_CURRENT_BUFFER_LVALUE =
3356             yy_create_buffer( yyin, YY_BUF_SIZE );
3357 	}
3358 
3359 	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
3360 	yy_load_buffer_state(  );
3361 }
3362 
3363 /** Switch to a different input buffer.
3364  * @param new_buffer The new input buffer.
3365  *
3366  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)3367     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3368 {
3369 
3370 	/* TODO. We should be able to replace this entire function body
3371 	 * with
3372 	 *		yypop_buffer_state();
3373 	 *		yypush_buffer_state(new_buffer);
3374      */
3375 	yyensure_buffer_stack ();
3376 	if ( YY_CURRENT_BUFFER == new_buffer )
3377 		return;
3378 
3379 	if ( YY_CURRENT_BUFFER )
3380 		{
3381 		/* Flush out information for old buffer. */
3382 		*(yy_c_buf_p) = (yy_hold_char);
3383 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3384 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3385 		}
3386 
3387 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
3388 	yy_load_buffer_state(  );
3389 
3390 	/* We don't actually know whether we did this switch during
3391 	 * EOF (yywrap()) processing, but the only time this flag
3392 	 * is looked at is after yywrap() is called, so it's safe
3393 	 * to go ahead and always set it.
3394 	 */
3395 	(yy_did_buffer_switch_on_eof) = 1;
3396 }
3397 
yy_load_buffer_state(void)3398 static void yy_load_buffer_state  (void)
3399 {
3400     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3401 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3402 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3403 	(yy_hold_char) = *(yy_c_buf_p);
3404 }
3405 
3406 /** Allocate and initialize an input buffer state.
3407  * @param file A readable stream.
3408  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3409  *
3410  * @return the allocated buffer state.
3411  */
yy_create_buffer(FILE * file,int size)3412     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
3413 {
3414 	YY_BUFFER_STATE b;
3415 
3416 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
3417 	if ( ! b )
3418 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3419 
3420 	b->yy_buf_size = size;
3421 
3422 	/* yy_ch_buf has to be 2 characters longer than the size given because
3423 	 * we need to put in 2 end-of-buffer characters.
3424 	 */
3425 	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
3426 	if ( ! b->yy_ch_buf )
3427 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3428 
3429 	b->yy_is_our_buffer = 1;
3430 
3431 	yy_init_buffer( b, file );
3432 
3433 	return b;
3434 }
3435 
3436 /** Destroy the buffer.
3437  * @param b a buffer created with yy_create_buffer()
3438  *
3439  */
yy_delete_buffer(YY_BUFFER_STATE b)3440     void yy_delete_buffer (YY_BUFFER_STATE  b )
3441 {
3442 
3443 	if ( ! b )
3444 		return;
3445 
3446 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3447 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3448 
3449 	if ( b->yy_is_our_buffer )
3450 		yyfree( (void *) b->yy_ch_buf  );
3451 
3452 	yyfree( (void *) b  );
3453 }
3454 
3455 /* Initializes or reinitializes a buffer.
3456  * This function is sometimes called more than once on the same buffer,
3457  * such as during a yyrestart() or at EOF.
3458  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)3459     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3460 
3461 {
3462 	int oerrno = errno;
3463 
3464 	yy_flush_buffer( b );
3465 
3466 	b->yy_input_file = file;
3467 	b->yy_fill_buffer = 1;
3468 
3469     /* If b is the current buffer, then yy_init_buffer was _probably_
3470      * called from yyrestart() or through yy_get_next_buffer.
3471      * In that case, we don't want to reset the lineno or column.
3472      */
3473     if (b != YY_CURRENT_BUFFER){
3474         b->yy_bs_lineno = 1;
3475         b->yy_bs_column = 0;
3476     }
3477 
3478         b->yy_is_interactive = 0;
3479 
3480 	errno = oerrno;
3481 }
3482 
3483 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3484  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3485  *
3486  */
yy_flush_buffer(YY_BUFFER_STATE b)3487     void yy_flush_buffer (YY_BUFFER_STATE  b )
3488 {
3489     	if ( ! b )
3490 		return;
3491 
3492 	b->yy_n_chars = 0;
3493 
3494 	/* We always need two end-of-buffer characters.  The first causes
3495 	 * a transition to the end-of-buffer state.  The second causes
3496 	 * a jam in that state.
3497 	 */
3498 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3499 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3500 
3501 	b->yy_buf_pos = &b->yy_ch_buf[0];
3502 
3503 	b->yy_at_bol = 1;
3504 	b->yy_buffer_status = YY_BUFFER_NEW;
3505 
3506 	if ( b == YY_CURRENT_BUFFER )
3507 		yy_load_buffer_state(  );
3508 }
3509 
3510 /** Pushes the new state onto the stack. The new state becomes
3511  *  the current state. This function will allocate the stack
3512  *  if necessary.
3513  *  @param new_buffer The new state.
3514  *
3515  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer)3516 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3517 {
3518     	if (new_buffer == NULL)
3519 		return;
3520 
3521 	yyensure_buffer_stack();
3522 
3523 	/* This block is copied from yy_switch_to_buffer. */
3524 	if ( YY_CURRENT_BUFFER )
3525 		{
3526 		/* Flush out information for old buffer. */
3527 		*(yy_c_buf_p) = (yy_hold_char);
3528 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3529 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3530 		}
3531 
3532 	/* Only push if top exists. Otherwise, replace top. */
3533 	if (YY_CURRENT_BUFFER)
3534 		(yy_buffer_stack_top)++;
3535 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
3536 
3537 	/* copied from yy_switch_to_buffer. */
3538 	yy_load_buffer_state(  );
3539 	(yy_did_buffer_switch_on_eof) = 1;
3540 }
3541 
3542 /** Removes and deletes the top of the stack, if present.
3543  *  The next element becomes the new top.
3544  *
3545  */
yypop_buffer_state(void)3546 void yypop_buffer_state (void)
3547 {
3548     	if (!YY_CURRENT_BUFFER)
3549 		return;
3550 
3551 	yy_delete_buffer(YY_CURRENT_BUFFER );
3552 	YY_CURRENT_BUFFER_LVALUE = NULL;
3553 	if ((yy_buffer_stack_top) > 0)
3554 		--(yy_buffer_stack_top);
3555 
3556 	if (YY_CURRENT_BUFFER) {
3557 		yy_load_buffer_state(  );
3558 		(yy_did_buffer_switch_on_eof) = 1;
3559 	}
3560 }
3561 
3562 /* Allocates the stack if it does not exist.
3563  *  Guarantees space for at least one push.
3564  */
yyensure_buffer_stack(void)3565 static void yyensure_buffer_stack (void)
3566 {
3567 	yy_size_t num_to_alloc;
3568 
3569 	if (!(yy_buffer_stack)) {
3570 
3571 		/* First allocation is just for 2 elements, since we don't know if this
3572 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3573 		 * immediate realloc on the next call.
3574          */
3575       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
3576 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3577 								(num_to_alloc * sizeof(struct yy_buffer_state*)
3578 								);
3579 		if ( ! (yy_buffer_stack) )
3580 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3581 
3582 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3583 
3584 		(yy_buffer_stack_max) = num_to_alloc;
3585 		(yy_buffer_stack_top) = 0;
3586 		return;
3587 	}
3588 
3589 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3590 
3591 		/* Increase the buffer to prepare for a possible push. */
3592 		yy_size_t grow_size = 8 /* arbitrary grow size */;
3593 
3594 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
3595 		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3596 								((yy_buffer_stack),
3597 								num_to_alloc * sizeof(struct yy_buffer_state*)
3598 								);
3599 		if ( ! (yy_buffer_stack) )
3600 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3601 
3602 		/* zero only the new slots.*/
3603 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3604 		(yy_buffer_stack_max) = num_to_alloc;
3605 	}
3606 }
3607 
3608 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3609  * @param base the character buffer
3610  * @param size the size in bytes of the character buffer
3611  *
3612  * @return the newly allocated buffer state object.
3613  */
yy_scan_buffer(char * base,yy_size_t size)3614 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
3615 {
3616 	YY_BUFFER_STATE b;
3617 
3618 	if ( size < 2 ||
3619 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3620 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
3621 		/* They forgot to leave room for the EOB's. */
3622 		return NULL;
3623 
3624 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
3625 	if ( ! b )
3626 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3627 
3628 	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
3629 	b->yy_buf_pos = b->yy_ch_buf = base;
3630 	b->yy_is_our_buffer = 0;
3631 	b->yy_input_file = NULL;
3632 	b->yy_n_chars = b->yy_buf_size;
3633 	b->yy_is_interactive = 0;
3634 	b->yy_at_bol = 1;
3635 	b->yy_fill_buffer = 0;
3636 	b->yy_buffer_status = YY_BUFFER_NEW;
3637 
3638 	yy_switch_to_buffer( b  );
3639 
3640 	return b;
3641 }
3642 
3643 /** Setup the input buffer state to scan a string. The next call to yylex() will
3644  * scan from a @e copy of @a str.
3645  * @param yystr a NUL-terminated string to scan
3646  *
3647  * @return the newly allocated buffer state object.
3648  * @note If you want to scan bytes that may contain NUL values, then use
3649  *       yy_scan_bytes() instead.
3650  */
yy_scan_string(const char * yystr)3651 YY_BUFFER_STATE yy_scan_string (const char * yystr )
3652 {
3653 
3654 	return yy_scan_bytes( yystr, (int) strlen(yystr) );
3655 }
3656 
3657 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3658  * scan from a @e copy of @a bytes.
3659  * @param yybytes the byte buffer to scan
3660  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3661  *
3662  * @return the newly allocated buffer state object.
3663  */
yy_scan_bytes(const char * yybytes,int _yybytes_len)3664 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
3665 {
3666 	YY_BUFFER_STATE b;
3667 	char *buf;
3668 	yy_size_t n;
3669 	int i;
3670 
3671 	/* Get memory for full buffer, including space for trailing EOB's. */
3672 	n = (yy_size_t) (_yybytes_len + 2);
3673 	buf = (char *) yyalloc( n  );
3674 	if ( ! buf )
3675 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3676 
3677 	for ( i = 0; i < _yybytes_len; ++i )
3678 		buf[i] = yybytes[i];
3679 
3680 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3681 
3682 	b = yy_scan_buffer( buf, n );
3683 	if ( ! b )
3684 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3685 
3686 	/* It's okay to grow etc. this buffer, and we should throw it
3687 	 * away when we're done.
3688 	 */
3689 	b->yy_is_our_buffer = 1;
3690 
3691 	return b;
3692 }
3693 
3694 #ifndef YY_EXIT_FAILURE
3695 #define YY_EXIT_FAILURE 2
3696 #endif
3697 
yy_fatal_error(const char * msg)3698 static void yynoreturn yy_fatal_error (const char* msg )
3699 {
3700 			fprintf( stderr, "%s\n", msg );
3701 	exit( YY_EXIT_FAILURE );
3702 }
3703 
3704 /* Redefine yyless() so it works in section 3 code. */
3705 
3706 #undef yyless
3707 #define yyless(n) \
3708 	do \
3709 		{ \
3710 		/* Undo effects of setting up yytext. */ \
3711         int yyless_macro_arg = (n); \
3712         YY_LESS_LINENO(yyless_macro_arg);\
3713 		yytext[yyleng] = (yy_hold_char); \
3714 		(yy_c_buf_p) = yytext + yyless_macro_arg; \
3715 		(yy_hold_char) = *(yy_c_buf_p); \
3716 		*(yy_c_buf_p) = '\0'; \
3717 		yyleng = yyless_macro_arg; \
3718 		} \
3719 	while ( 0 )
3720 
3721 /* Accessor  methods (get/set functions) to struct members. */
3722 
3723 /** Get the current line number.
3724  *
3725  */
yyget_lineno(void)3726 int yyget_lineno  (void)
3727 {
3728 
3729     return yylineno;
3730 }
3731 
3732 /** Get the input stream.
3733  *
3734  */
yyget_in(void)3735 FILE *yyget_in  (void)
3736 {
3737         return yyin;
3738 }
3739 
3740 /** Get the output stream.
3741  *
3742  */
yyget_out(void)3743 FILE *yyget_out  (void)
3744 {
3745         return yyout;
3746 }
3747 
3748 /** Get the length of the current token.
3749  *
3750  */
yyget_leng(void)3751 int yyget_leng  (void)
3752 {
3753         return yyleng;
3754 }
3755 
3756 /** Get the current token.
3757  *
3758  */
3759 
yyget_text(void)3760 char *yyget_text  (void)
3761 {
3762         return yytext;
3763 }
3764 
3765 /** Set the current line number.
3766  * @param _line_number line number
3767  *
3768  */
yyset_lineno(int _line_number)3769 void yyset_lineno (int  _line_number )
3770 {
3771 
3772     yylineno = _line_number;
3773 }
3774 
3775 /** Set the input stream. This does not discard the current
3776  * input buffer.
3777  * @param _in_str A readable stream.
3778  *
3779  * @see yy_switch_to_buffer
3780  */
yyset_in(FILE * _in_str)3781 void yyset_in (FILE *  _in_str )
3782 {
3783         yyin = _in_str ;
3784 }
3785 
yyset_out(FILE * _out_str)3786 void yyset_out (FILE *  _out_str )
3787 {
3788         yyout = _out_str ;
3789 }
3790 
yyget_debug(void)3791 int yyget_debug  (void)
3792 {
3793         return yy_flex_debug;
3794 }
3795 
yyset_debug(int _bdebug)3796 void yyset_debug (int  _bdebug )
3797 {
3798         yy_flex_debug = _bdebug ;
3799 }
3800 
yy_init_globals(void)3801 static int yy_init_globals (void)
3802 {
3803         /* Initialization is the same as for the non-reentrant scanner.
3804      * This function is called from yylex_destroy(), so don't allocate here.
3805      */
3806 
3807     /* We do not touch yylineno unless the option is enabled. */
3808     yylineno =  1;
3809 
3810     (yy_buffer_stack) = NULL;
3811     (yy_buffer_stack_top) = 0;
3812     (yy_buffer_stack_max) = 0;
3813     (yy_c_buf_p) = NULL;
3814     (yy_init) = 0;
3815     (yy_start) = 0;
3816 
3817 /* Defined in main.c */
3818 #ifdef YY_STDINIT
3819     yyin = stdin;
3820     yyout = stdout;
3821 #else
3822     yyin = NULL;
3823     yyout = NULL;
3824 #endif
3825 
3826     /* For future reference: Set errno on error, since we are called by
3827      * yylex_init()
3828      */
3829     return 0;
3830 }
3831 
3832 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(void)3833 int yylex_destroy  (void)
3834 {
3835 
3836     /* Pop the buffer stack, destroying each element. */
3837 	while(YY_CURRENT_BUFFER){
3838 		yy_delete_buffer( YY_CURRENT_BUFFER  );
3839 		YY_CURRENT_BUFFER_LVALUE = NULL;
3840 		yypop_buffer_state();
3841 	}
3842 
3843 	/* Destroy the stack itself. */
3844 	yyfree((yy_buffer_stack) );
3845 	(yy_buffer_stack) = NULL;
3846 
3847     /* Reset the globals. This is important in a non-reentrant scanner so the next time
3848      * yylex() is called, initialization will occur. */
3849     yy_init_globals( );
3850 
3851     return 0;
3852 }
3853 
3854 /*
3855  * Internal utility routines.
3856  */
3857 
3858 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n)3859 static void yy_flex_strncpy (char* s1, const char * s2, int n )
3860 {
3861 
3862 	int i;
3863 	for ( i = 0; i < n; ++i )
3864 		s1[i] = s2[i];
3865 }
3866 #endif
3867 
3868 #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s)3869 static int yy_flex_strlen (const char * s )
3870 {
3871 	int n;
3872 	for ( n = 0; s[n]; ++n )
3873 		;
3874 
3875 	return n;
3876 }
3877 #endif
3878 
yyalloc(yy_size_t size)3879 void *yyalloc (yy_size_t  size )
3880 {
3881 			return malloc(size);
3882 }
3883 
yyrealloc(void * ptr,yy_size_t size)3884 void *yyrealloc  (void * ptr, yy_size_t  size )
3885 {
3886 
3887 	/* The cast to (char *) in the following accommodates both
3888 	 * implementations that use char* generic pointers, and those
3889 	 * that use void* generic pointers.  It works with the latter
3890 	 * because both ANSI C and C++ allow castless assignment from
3891 	 * any pointer type to void*, and deal with argument conversions
3892 	 * as though doing an assignment.
3893 	 */
3894 	return realloc(ptr, size);
3895 }
3896 
yyfree(void * ptr)3897 void yyfree (void * ptr )
3898 {
3899 			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
3900 }
3901 
3902 #define YYTABLES_NAME "yytables"
3903 
3904 /* second stage lexer */
yylex(void)3905 int yylex(void)
3906 {
3907 	int token;
3908 
3909 repeat:
3910 	token = yylex1();
3911 
3912 	if (prev_token == T_EOL || prev_token == T_HELPTEXT) {
3913 		if (token == T_EOL) {
3914 			/* Do not pass unneeded T_EOL to the parser. */
3915 			goto repeat;
3916 		} else {
3917 			/*
3918 			 * For the parser, update file/lineno at the first token
3919 			 * of each statement. Generally, \n is a statement
3920 			 * terminator in Kconfig, but it is not always true
3921 			 * because \n could be escaped by a backslash.
3922 			 */
3923 			current_pos.file = current_file;
3924 			current_pos.lineno = yylineno;
3925 		}
3926 	}
3927 
3928 	if (prev_prev_token == T_EOL && prev_token == T_WORD &&
3929 	    (token == T_EQUAL || token == T_COLON_EQUAL || token == T_PLUS_EQUAL))
3930 		BEGIN(ASSIGN_VAL);
3931 
3932 	prev_prev_token = prev_token;
3933 	prev_token = token;
3934 
3935 	return token;
3936 }
3937 
expand_token(const char * in,size_t n)3938 static char *expand_token(const char *in, size_t n)
3939 {
3940 	char *out;
3941 	int c;
3942 	char c2;
3943 	const char *rest, *end;
3944 
3945 	new_string();
3946 	append_string(in, n);
3947 
3948 	/* get the whole line because we do not know the end of token. */
3949 	while ((c = input()) != EOF) {
3950 		if (c == '\n') {
3951 			unput(c);
3952 			break;
3953 		}
3954 		c2 = c;
3955 		append_string(&c2, 1);
3956 	}
3957 
3958 	rest = text;
3959 	out = expand_one_token(&rest);
3960 
3961 	/* push back unused characters to the input stream */
3962 	end = rest + strlen(rest);
3963 	while (end > rest)
3964 		unput(*--end);
3965 
3966 	free(text);
3967 
3968 	return out;
3969 }
3970 
append_expanded_string(const char * str)3971 static void append_expanded_string(const char *str)
3972 {
3973 	const char *end;
3974 	char *res;
3975 
3976 	str++;
3977 
3978 	res = expand_dollar(&str);
3979 
3980 	/* push back unused characters to the input stream */
3981 	end = str + strlen(str);
3982 	while (end > str)
3983 		unput(*--end);
3984 
3985 	append_string(res, strlen(res));
3986 
3987 	free(res);
3988 }
3989 
zconf_starthelp(void)3990 void zconf_starthelp(void)
3991 {
3992 	new_string();
3993 	last_ts = first_ts = 0;
3994 	BEGIN(HELP);
3995 }
3996 
zconf_endhelp(void)3997 static void zconf_endhelp(void)
3998 {
3999 	yylval.string = text;
4000 	BEGIN(INITIAL);
4001 }
4002 
4003 /*
4004  * Try to open specified file with following names:
4005  * ./name
4006  * $(srctree)/name
4007  * The latter is used when srctree is separate from objtree
4008  * when compiling the kernel.
4009  * Return NULL if file is not found.
4010  */
zconf_fopen(const char * name)4011 FILE *zconf_fopen(const char *name)
4012 {
4013 	char *env, fullname[PATH_MAX+1];
4014 	FILE *f;
4015 
4016 	f = fopen(name, "r");
4017 	if (!f && name != NULL && name[0] != '/') {
4018 		env = getenv(SRCTREE);
4019 		if (env) {
4020 			snprintf(fullname, sizeof(fullname),
4021 				 "%s/%s", env, name);
4022 			f = fopen(fullname, "r");
4023 		}
4024 	}
4025 	return f;
4026 }
4027 
zconf_initscan(const char * name)4028 void zconf_initscan(const char *name)
4029 {
4030 	yyin = zconf_fopen(name);
4031 	if (!yyin) {
4032 		fprintf(stderr, "can't find file %s\n", name);
4033 		exit(1);
4034 	}
4035 
4036 	current_buf = xmalloc(sizeof(*current_buf));
4037 	memset(current_buf, 0, sizeof(*current_buf));
4038 
4039 	current_file = file_lookup(name);
4040 	yylineno = 1;
4041 }
4042 
zconf_nextfile(const char * name)4043 void zconf_nextfile(const char *name)
4044 {
4045 	struct file *iter;
4046 	struct file *file = file_lookup(name);
4047 	struct buffer *buf = xmalloc(sizeof(*buf));
4048 	memset(buf, 0, sizeof(*buf));
4049 
4050 	current_buf->state = YY_CURRENT_BUFFER;
4051 	yyin = zconf_fopen(file->name);
4052 	if (!yyin) {
4053 		fprintf(stderr, "%s:%d: can't open file \"%s\"\n",
4054 			zconf_curname(), zconf_lineno(), file->name);
4055 		exit(1);
4056 	}
4057 	yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
4058 	buf->parent = current_buf;
4059 	current_buf = buf;
4060 
4061 	current_file->lineno = yylineno;
4062 	file->parent = current_file;
4063 
4064 	for (iter = current_file; iter; iter = iter->parent) {
4065 		if (!strcmp(iter->name, file->name)) {
4066 			fprintf(stderr,
4067 				"Recursive inclusion detected.\n"
4068 				"Inclusion path:\n"
4069 				"  current file : %s\n", file->name);
4070 			iter = file;
4071 			do {
4072 				iter = iter->parent;
4073 				fprintf(stderr, "  included from: %s:%d\n",
4074 					iter->name, iter->lineno - 1);
4075 			} while (strcmp(iter->name, file->name));
4076 			exit(1);
4077 		}
4078 	}
4079 
4080 	yylineno = 1;
4081 	current_file = file;
4082 }
4083 
zconf_endfile(void)4084 static void zconf_endfile(void)
4085 {
4086 	struct buffer *parent;
4087 
4088 	current_file = current_file->parent;
4089 	if (current_file)
4090 		yylineno = current_file->lineno;
4091 
4092 	parent = current_buf->parent;
4093 	if (parent) {
4094 		fclose(yyin);
4095 		yy_delete_buffer(YY_CURRENT_BUFFER);
4096 		yy_switch_to_buffer(parent->state);
4097 	}
4098 	free(current_buf);
4099 	current_buf = parent;
4100 }
4101 
zconf_lineno(void)4102 int zconf_lineno(void)
4103 {
4104 	return current_pos.lineno;
4105 }
4106 
zconf_curname(void)4107 const char *zconf_curname(void)
4108 {
4109 	return current_pos.file ? current_pos.file->name : "<none>";
4110 }
4111 
4112