xref: /aosp_15_r20/external/coreboot/util/kconfig/lexer.lex.c_shipped (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
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>
41typedef int8_t flex_int8_t;
42typedef uint8_t flex_uint8_t;
43typedef int16_t flex_int16_t;
44typedef uint16_t flex_uint16_t;
45typedef int32_t flex_int32_t;
46typedef uint32_t flex_uint32_t;
47#else
48typedef signed char flex_int8_t;
49typedef short int flex_int16_t;
50typedef int flex_int32_t;
51typedef unsigned char flex_uint8_t;
52typedef unsigned short int flex_uint16_t;
53typedef 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
147typedef struct yy_buffer_state *YY_BUFFER_STATE;
148#endif
149
150#ifndef YY_TYPEDEF_YY_SIZE_T
151#define YY_TYPEDEF_YY_SIZE_T
152typedef size_t yy_size_t;
153#endif
154
155extern int yyleng;
156
157extern 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
202struct 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. */
266static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
267static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
268static 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. */
285static char yy_hold_char;
286static int yy_n_chars;		/* number of characters read into yy_ch_buf */
287int yyleng;
288
289/* Points to current character in buffer. */
290static char *yy_c_buf_p = NULL;
291static int yy_init = 0;		/* whether we need to initialize */
292static 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 */
297static int yy_did_buffer_switch_on_eof;
298
299void yyrestart ( FILE *input_file  );
300void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
301YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
302void yy_delete_buffer ( YY_BUFFER_STATE b  );
303void yy_flush_buffer ( YY_BUFFER_STATE b  );
304void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
305void yypop_buffer_state ( void );
306
307static void yyensure_buffer_stack ( void );
308static void yy_load_buffer_state ( void );
309static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
310#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
311
312YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
313YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
314YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
315
316void *yyalloc ( yy_size_t  );
317void *yyrealloc ( void *, yy_size_t  );
318void 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
345typedef flex_uint8_t YY_CHAR;
346
347FILE *yyin = NULL, *yyout = NULL;
348
349typedef int yy_state_type;
350
351extern int yylineno;
352int yylineno = 1;
353
354extern char *yytext;
355#ifdef yytext_ptr
356#undef yytext_ptr
357#endif
358#define yytext_ptr yytext
359
360static 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
2123static yy_state_type yy_get_previous_state ( void );
2124static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
2125static int yy_get_next_buffer ( void );
2126static 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. */
2141struct yy_trans_info
2142	{
2143	flex_int32_t yy_verify;
2144	flex_int32_t yy_nxt;
2145	};
2146static 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
2173static 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. */
2206static const flex_int32_t yy_rule_can_match_eol[64] =
2207    {   0,
22080, 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
2213extern int yy_flex_debug;
2214int 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
2223char *yytext;
2224/* SPDX-License-Identifier: GPL-2.0-only */
2225/*
2226 * Copyright (C) 2002 Roman Zippel <[email protected]>
2227 */
2228
2229#include <assert.h>
2230#include <glob.h>
2231#include <limits.h>
2232#include <stdio.h>
2233#include <stdlib.h>
2234#include <string.h>
2235
2236#include "lkc.h"
2237#include "parser.tab.h"
2238
2239#define YY_DECL		static int yylex1(void)
2240
2241#define START_STRSIZE	16
2242
2243static struct {
2244	struct file *file;
2245	int lineno;
2246} current_pos;
2247
2248static int prev_prev_token = T_EOL;
2249static int prev_token = T_EOL;
2250static char *text;
2251static int text_size, text_asize;
2252
2253struct buffer {
2254	struct buffer *parent;
2255	YY_BUFFER_STATE state;
2256};
2257
2258static struct buffer *current_buf;
2259
2260static int last_ts, first_ts;
2261
2262static char *expand_token(const char *in, size_t n);
2263static void append_expanded_string(const char *in);
2264static void zconf_endhelp(void);
2265static void zconf_endfile(void);
2266
2267static void new_string(void)
2268{
2269	text = xmalloc(START_STRSIZE);
2270	text_asize = START_STRSIZE;
2271	text_size = 0;
2272	*text = 0;
2273}
2274
2275static void append_string(const char *str, int size)
2276{
2277	int new_size = text_size + size + 1;
2278	if (new_size > text_asize) {
2279		new_size += START_STRSIZE - 1;
2280		new_size &= -START_STRSIZE;
2281		text = xrealloc(text, new_size);
2282		text_asize = new_size;
2283	}
2284	memcpy(text + text_size, str, size);
2285	text_size += size;
2286	text[text_size] = 0;
2287}
2288
2289static void alloc_string(const char *str, int size)
2290{
2291	text = xmalloc(size + 1);
2292	memcpy(text, str, size);
2293	text[size] = 0;
2294}
2295
2296static void warn_ignored_character(char chr)
2297{
2298	fprintf(stderr,
2299	        "%s:%d:warning: ignoring unsupported character '%c'\n",
2300	        current_file->name, yylineno, chr);
2301}
2302
2303#define INITIAL 0
2304#define ASSIGN_VAL 1
2305#define HELP 2
2306#define STRING 3
2307
2308#ifndef YY_NO_UNISTD_H
2309/* Special case for "unistd.h", since it is non-ANSI. We include it way
2310 * down here because we want the user's section 1 to have been scanned first.
2311 * The user has a chance to override it with an option.
2312 */
2313#include <unistd.h>
2314#endif
2315
2316#ifndef YY_EXTRA_TYPE
2317#define YY_EXTRA_TYPE void *
2318#endif
2319
2320static int yy_init_globals ( void );
2321
2322/* Accessor methods to globals.
2323   These are made visible to non-reentrant scanners for convenience. */
2324
2325int yylex_destroy ( void );
2326
2327int yyget_debug ( void );
2328
2329void yyset_debug ( int debug_flag  );
2330
2331YY_EXTRA_TYPE yyget_extra ( void );
2332
2333void yyset_extra ( YY_EXTRA_TYPE user_defined  );
2334
2335FILE *yyget_in ( void );
2336
2337void yyset_in  ( FILE * _in_str  );
2338
2339FILE *yyget_out ( void );
2340
2341void yyset_out  ( FILE * _out_str  );
2342
2343			int yyget_leng ( void );
2344
2345char *yyget_text ( void );
2346
2347int yyget_lineno ( void );
2348
2349void yyset_lineno ( int _line_number  );
2350
2351/* Macros after this point can all be overridden by user definitions in
2352 * section 1.
2353 */
2354
2355#ifndef YY_SKIP_YYWRAP
2356#ifdef __cplusplus
2357extern "C" int yywrap ( void );
2358#else
2359extern int yywrap ( void );
2360#endif
2361#endif
2362
2363#ifndef YY_NO_UNPUT
2364
2365    static void yyunput ( int c, char *buf_ptr  );
2366
2367#endif
2368
2369#ifndef yytext_ptr
2370static void yy_flex_strncpy ( char *, const char *, int );
2371#endif
2372
2373#ifdef YY_NEED_STRLEN
2374static int yy_flex_strlen ( const char * );
2375#endif
2376
2377#ifndef YY_NO_INPUT
2378#ifdef __cplusplus
2379static int yyinput ( void );
2380#else
2381static int input ( void );
2382#endif
2383
2384#endif
2385
2386/* Amount of stuff to slurp up with each read. */
2387#ifndef YY_READ_BUF_SIZE
2388#ifdef __ia64__
2389/* On IA-64, the buffer size is 16k, not 8k */
2390#define YY_READ_BUF_SIZE 16384
2391#else
2392#define YY_READ_BUF_SIZE 8192
2393#endif /* __ia64__ */
2394#endif
2395
2396/* Copy whatever the last rule matched to the standard output. */
2397#ifndef ECHO
2398/* This used to be an fputs(), but since the string might contain NUL's,
2399 * we now use fwrite().
2400 */
2401#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2402#endif
2403
2404/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2405 * is returned in "result".
2406 */
2407#ifndef YY_INPUT
2408#define YY_INPUT(buf,result,max_size) \
2409	errno=0; \
2410	while ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \
2411	{ \
2412		if( errno != EINTR) \
2413		{ \
2414			YY_FATAL_ERROR( "input in flex scanner failed" ); \
2415			break; \
2416		} \
2417		errno=0; \
2418		clearerr(yyin); \
2419	}\
2420\
2421
2422#endif
2423
2424/* No semi-colon after return; correct usage is to write "yyterminate();" -
2425 * we don't want an extra ';' after the "return" because that will cause
2426 * some compilers to complain about unreachable statements.
2427 */
2428#ifndef yyterminate
2429#define yyterminate() return YY_NULL
2430#endif
2431
2432/* Number of entries by which start-condition stack grows. */
2433#ifndef YY_START_STACK_INCR
2434#define YY_START_STACK_INCR 25
2435#endif
2436
2437/* Report a fatal error. */
2438#ifndef YY_FATAL_ERROR
2439#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2440#endif
2441
2442/* end tables serialization structures and prototypes */
2443
2444/* Default declaration of generated scanner - a define so the user can
2445 * easily add parameters.
2446 */
2447#ifndef YY_DECL
2448#define YY_DECL_IS_OURS 1
2449
2450extern int yylex (void);
2451
2452#define YY_DECL int yylex (void)
2453#endif /* !YY_DECL */
2454
2455/* Code executed at the beginning of each rule, after yytext and yyleng
2456 * have been set up.
2457 */
2458#ifndef YY_USER_ACTION
2459#define YY_USER_ACTION
2460#endif
2461
2462/* Code executed at the end of each rule. */
2463#ifndef YY_BREAK
2464#define YY_BREAK /*LINTED*/break;
2465#endif
2466
2467#define YY_RULE_SETUP \
2468	YY_USER_ACTION
2469
2470/** The main scanner function which does all the work.
2471 */
2472YY_DECL
2473{
2474	yy_state_type yy_current_state;
2475	char *yy_cp, *yy_bp;
2476	int yy_act;
2477
2478	if ( !(yy_init) )
2479		{
2480		(yy_init) = 1;
2481
2482#ifdef YY_USER_INIT
2483		YY_USER_INIT;
2484#endif
2485
2486		if ( ! (yy_start) )
2487			(yy_start) = 1;	/* first start state */
2488
2489		if ( ! yyin )
2490			yyin = stdin;
2491
2492		if ( ! yyout )
2493			yyout = stdout;
2494
2495		if ( ! YY_CURRENT_BUFFER ) {
2496			yyensure_buffer_stack ();
2497			YY_CURRENT_BUFFER_LVALUE =
2498				yy_create_buffer( yyin, YY_BUF_SIZE );
2499		}
2500
2501		yy_load_buffer_state(  );
2502		}
2503
2504	{
2505
2506	int str = 0;
2507	int ts, i;
2508
2509	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
2510		{
2511		yy_cp = (yy_c_buf_p);
2512
2513		/* Support of yytext. */
2514		*yy_cp = (yy_hold_char);
2515
2516		/* yy_bp points to the position in yy_ch_buf of the start of
2517		 * the current run.
2518		 */
2519		yy_bp = yy_cp;
2520
2521		yy_current_state = (yy_start);
2522yy_match:
2523		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
2524			++yy_cp;
2525
2526		yy_current_state = -yy_current_state;
2527
2528yy_find_action:
2529		yy_act = yy_accept[yy_current_state];
2530
2531		YY_DO_BEFORE_ACTION;
2532
2533		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2534			{
2535			int yyl;
2536			for ( yyl = 0; yyl < yyleng; ++yyl )
2537				if ( yytext[yyl] == '\n' )
2538
2539    yylineno++;
2540;
2541			}
2542
2543do_action:	/* This label is used only to access EOF actions. */
2544
2545		switch ( yy_act )
2546	{ /* beginning of action switch */
2547case 1:
2548YY_RULE_SETUP
2549/* ignore comment */
2550	YY_BREAK
2551case 2:
2552YY_RULE_SETUP
2553/* whitespaces */
2554	YY_BREAK
2555case 3:
2556/* rule 3 can match eol */
2557YY_RULE_SETUP
2558/* escaped new line */
2559	YY_BREAK
2560case 4:
2561/* rule 4 can match eol */
2562YY_RULE_SETUP
2563return T_EOL;
2564	YY_BREAK
2565case 5:
2566YY_RULE_SETUP
2567return T_BOOL;
2568	YY_BREAK
2569case 6:
2570YY_RULE_SETUP
2571return T_CHOICE;
2572	YY_BREAK
2573case 7:
2574YY_RULE_SETUP
2575return T_COMMENT;
2576	YY_BREAK
2577case 8:
2578YY_RULE_SETUP
2579return T_CONFIG;
2580	YY_BREAK
2581case 9:
2582YY_RULE_SETUP
2583return T_DEF_BOOL;
2584	YY_BREAK
2585case 10:
2586YY_RULE_SETUP
2587return T_DEF_TRISTATE;
2588	YY_BREAK
2589case 11:
2590YY_RULE_SETUP
2591return T_DEFAULT;
2592	YY_BREAK
2593case 12:
2594YY_RULE_SETUP
2595return T_DEPENDS;
2596	YY_BREAK
2597case 13:
2598YY_RULE_SETUP
2599return T_ENDCHOICE;
2600	YY_BREAK
2601case 14:
2602YY_RULE_SETUP
2603return T_ENDIF;
2604	YY_BREAK
2605case 15:
2606YY_RULE_SETUP
2607return T_ENDMENU;
2608	YY_BREAK
2609case 16:
2610YY_RULE_SETUP
2611return T_HELP;
2612	YY_BREAK
2613case 17:
2614YY_RULE_SETUP
2615return T_HEX;
2616	YY_BREAK
2617case 18:
2618YY_RULE_SETUP
2619return T_IF;
2620	YY_BREAK
2621case 19:
2622YY_RULE_SETUP
2623return T_IMPLY;
2624	YY_BREAK
2625case 20:
2626YY_RULE_SETUP
2627return T_INT;
2628	YY_BREAK
2629case 21:
2630YY_RULE_SETUP
2631return T_MAINMENU;
2632	YY_BREAK
2633case 22:
2634YY_RULE_SETUP
2635return T_MENU;
2636	YY_BREAK
2637case 23:
2638YY_RULE_SETUP
2639return T_MENUCONFIG;
2640	YY_BREAK
2641case 24:
2642YY_RULE_SETUP
2643return T_MODULES;
2644	YY_BREAK
2645case 25:
2646YY_RULE_SETUP
2647return T_ON;
2648	YY_BREAK
2649case 26:
2650YY_RULE_SETUP
2651return T_OPTIONAL;
2652	YY_BREAK
2653case 27:
2654YY_RULE_SETUP
2655return T_PROMPT;
2656	YY_BREAK
2657case 28:
2658YY_RULE_SETUP
2659return T_RANGE;
2660	YY_BREAK
2661case 29:
2662YY_RULE_SETUP
2663return T_SELECT;
2664	YY_BREAK
2665case 30:
2666YY_RULE_SETUP
2667return T_SOURCE;
2668	YY_BREAK
2669case 31:
2670YY_RULE_SETUP
2671return T_STRING;
2672	YY_BREAK
2673case 32:
2674YY_RULE_SETUP
2675return T_TRISTATE;
2676	YY_BREAK
2677case 33:
2678YY_RULE_SETUP
2679return T_VISIBLE;
2680	YY_BREAK
2681case 34:
2682YY_RULE_SETUP
2683return T_OR;
2684	YY_BREAK
2685case 35:
2686YY_RULE_SETUP
2687return T_AND;
2688	YY_BREAK
2689case 36:
2690YY_RULE_SETUP
2691return T_EQUAL;
2692	YY_BREAK
2693case 37:
2694YY_RULE_SETUP
2695return T_UNEQUAL;
2696	YY_BREAK
2697case 38:
2698YY_RULE_SETUP
2699return T_LESS;
2700	YY_BREAK
2701case 39:
2702YY_RULE_SETUP
2703return T_LESS_EQUAL;
2704	YY_BREAK
2705case 40:
2706YY_RULE_SETUP
2707return T_GREATER;
2708	YY_BREAK
2709case 41:
2710YY_RULE_SETUP
2711return T_GREATER_EQUAL;
2712	YY_BREAK
2713case 42:
2714YY_RULE_SETUP
2715return T_NOT;
2716	YY_BREAK
2717case 43:
2718YY_RULE_SETUP
2719return T_OPEN_PAREN;
2720	YY_BREAK
2721case 44:
2722YY_RULE_SETUP
2723return T_CLOSE_PAREN;
2724	YY_BREAK
2725case 45:
2726YY_RULE_SETUP
2727return T_COLON_EQUAL;
2728	YY_BREAK
2729case 46:
2730YY_RULE_SETUP
2731return T_PLUS_EQUAL;
2732	YY_BREAK
2733case 47:
2734YY_RULE_SETUP
2735{
2736				str = yytext[0];
2737				new_string();
2738				BEGIN(STRING);
2739			}
2740	YY_BREAK
2741case 48:
2742YY_RULE_SETUP
2743{
2744				alloc_string(yytext, yyleng);
2745				yylval.string = text;
2746				return T_WORD;
2747			}
2748	YY_BREAK
2749case 49:
2750YY_RULE_SETUP
2751{
2752				/* this token includes at least one '$' */
2753				yylval.string = expand_token(yytext, yyleng);
2754				if (strlen(yylval.string))
2755					return T_WORD;
2756				free(yylval.string);
2757			}
2758	YY_BREAK
2759case 50:
2760YY_RULE_SETUP
2761warn_ignored_character(*yytext);
2762	YY_BREAK
2763
2764case 51:
2765YY_RULE_SETUP
2766{
2767		alloc_string(yytext, yyleng);
2768		yylval.string = text;
2769		return T_ASSIGN_VAL;
2770	}
2771	YY_BREAK
2772case 52:
2773/* rule 52 can match eol */
2774YY_RULE_SETUP
2775{ BEGIN(INITIAL); return T_EOL; }
2776	YY_BREAK
2777case 53:
2778YY_RULE_SETUP
2779
2780	YY_BREAK
2781
2782case 54:
2783YY_RULE_SETUP
2784append_expanded_string(yytext);
2785	YY_BREAK
2786case 55:
2787YY_RULE_SETUP
2788{
2789		append_string(yytext, yyleng);
2790	}
2791	YY_BREAK
2792case 56:
2793YY_RULE_SETUP
2794{
2795		append_string(yytext + 1, yyleng - 1);
2796	}
2797	YY_BREAK
2798case 57:
2799YY_RULE_SETUP
2800{
2801		if (str == yytext[0]) {
2802			BEGIN(INITIAL);
2803			yylval.string = text;
2804			return T_WORD_QUOTE;
2805		} else
2806			append_string(yytext, 1);
2807	}
2808	YY_BREAK
2809case 58:
2810/* rule 58 can match eol */
2811YY_RULE_SETUP
2812{
2813		fprintf(stderr,
2814			"%s:%d:warning: multi-line strings not supported\n",
2815			zconf_curname(), zconf_lineno());
2816		unput('\n');
2817		BEGIN(INITIAL);
2818		yylval.string = text;
2819		return T_WORD_QUOTE;
2820	}
2821	YY_BREAK
2822case YY_STATE_EOF(STRING):
2823{
2824		BEGIN(INITIAL);
2825		yylval.string = text;
2826		return T_WORD_QUOTE;
2827	}
2828	YY_BREAK
2829
2830case 59:
2831YY_RULE_SETUP
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
2855case 60:
2856/* rule 60 can match eol */
2857*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2858YY_LINENO_REWIND_TO(yy_cp - 1);
2859(yy_c_buf_p) = yy_cp -= 1;
2860YY_DO_BEFORE_ACTION; /* set up yytext again */
2861YY_RULE_SETUP
2862{
2863		zconf_endhelp();
2864		return T_HELPTEXT;
2865	}
2866	YY_BREAK
2867case 61:
2868/* rule 61 can match eol */
2869YY_RULE_SETUP
2870{
2871		append_string("\n", 1);
2872	}
2873	YY_BREAK
2874case 62:
2875YY_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
2887case YY_STATE_EOF(HELP):
2888{
2889		zconf_endhelp();
2890		return T_HELPTEXT;
2891	}
2892	YY_BREAK
2893
2894case YY_STATE_EOF(INITIAL):
2895case 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
2911case 63:
2912YY_RULE_SETUP
2913YY_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 */
3053static 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
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 */
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
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
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 */
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 */
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
3398static 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 */
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 */
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 */
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 */
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 */
3516void 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 */
3546void 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 */
3565static 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 */
3614YY_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 */
3651YY_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 */
3664YY_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
3698static 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 */
3726int yyget_lineno  (void)
3727{
3728
3729    return yylineno;
3730}
3731
3732/** Get the input stream.
3733 *
3734 */
3735FILE *yyget_in  (void)
3736{
3737        return yyin;
3738}
3739
3740/** Get the output stream.
3741 *
3742 */
3743FILE *yyget_out  (void)
3744{
3745        return yyout;
3746}
3747
3748/** Get the length of the current token.
3749 *
3750 */
3751int yyget_leng  (void)
3752{
3753        return yyleng;
3754}
3755
3756/** Get the current token.
3757 *
3758 */
3759
3760char *yyget_text  (void)
3761{
3762        return yytext;
3763}
3764
3765/** Set the current line number.
3766 * @param _line_number line number
3767 *
3768 */
3769void 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 */
3781void yyset_in (FILE *  _in_str )
3782{
3783        yyin = _in_str ;
3784}
3785
3786void yyset_out (FILE *  _out_str )
3787{
3788        yyout = _out_str ;
3789}
3790
3791int yyget_debug  (void)
3792{
3793        return yy_flex_debug;
3794}
3795
3796void yyset_debug (int  _bdebug )
3797{
3798        yy_flex_debug = _bdebug ;
3799}
3800
3801static 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. */
3833int 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
3859static 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
3869static 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
3879void *yyalloc (yy_size_t  size )
3880{
3881			return malloc(size);
3882}
3883
3884void *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
3897void 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 */
3905int yylex(void)
3906{
3907	int token;
3908
3909repeat:
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
3938static 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
3971static 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
3990void zconf_starthelp(void)
3991{
3992	new_string();
3993	last_ts = first_ts = 0;
3994	BEGIN(HELP);
3995}
3996
3997static 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 */
4011FILE *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
4028void 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
4043void 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
4084void zconf_nextfiles(const char *wildcard)
4085{
4086	glob_t g;
4087	char **w;
4088	int i;
4089
4090	if (glob(wildcard, 0, NULL, &g) != 0) {
4091		return;
4092	}
4093	if (g.gl_pathv == NULL) {
4094		globfree(&g);
4095		return;
4096	}
4097
4098	/* working through files backwards, since
4099	 * we're first pushing them on a stack
4100	 * before actually handling them.
4101	 */
4102	for (i = g.gl_pathc; i > 0; i--) {
4103		w = &g.gl_pathv[i - 1];
4104		zconf_nextfile(*w);
4105	}
4106
4107	globfree(&g);
4108}
4109
4110static void zconf_endfile(void)
4111{
4112	struct buffer *parent;
4113
4114	current_file = current_file->parent;
4115	if (current_file)
4116		yylineno = current_file->lineno;
4117
4118	parent = current_buf->parent;
4119	if (parent) {
4120		fclose(yyin);
4121		yy_delete_buffer(YY_CURRENT_BUFFER);
4122		yy_switch_to_buffer(parent->state);
4123	}
4124	free(current_buf);
4125	current_buf = parent;
4126}
4127
4128int zconf_lineno(void)
4129{
4130	return current_pos.lineno;
4131}
4132
4133const char *zconf_curname(void)
4134{
4135	return current_pos.file ? current_pos.file->name : "<none>";
4136}
4137
4138