1
2#line 2 "<stdout>"
3
4#define  YY_INT_ALIGNED short int
5
6/* A lexical scanner generated by flex */
7
8#define FLEX_SCANNER
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 6
11#define YY_FLEX_SUBMINOR_VERSION 4
12#if YY_FLEX_SUBMINOR_VERSION > 0
13#define FLEX_BETA
14#endif
15
16/* First, we deal with  platform-specific or compiler-specific issues. */
17
18/* begin standard C headers. */
19#include <stdio.h>
20#include <string.h>
21#include <errno.h>
22#include <stdlib.h>
23
24/* end standard C headers. */
25
26/* flex integer type definitions */
27
28#ifndef FLEXINT_H
29#define FLEXINT_H
30
31/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33#if defined(__FreeBSD__) || \
34    (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
35
36/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37 * if you want the limit (max/min) macros for int types.
38 */
39#ifndef __STDC_LIMIT_MACROS
40#define __STDC_LIMIT_MACROS 1
41#endif
42
43#include <inttypes.h>
44typedef int8_t flex_int8_t;
45typedef uint8_t flex_uint8_t;
46typedef int16_t flex_int16_t;
47typedef uint16_t flex_uint16_t;
48typedef int32_t flex_int32_t;
49typedef uint32_t flex_uint32_t;
50#else
51typedef signed char flex_int8_t;
52typedef short int flex_int16_t;
53typedef int flex_int32_t;
54typedef unsigned char flex_uint8_t;
55typedef unsigned short int flex_uint16_t;
56typedef unsigned int flex_uint32_t;
57
58/* Limits of integral types. */
59#ifndef INT8_MIN
60#define INT8_MIN               (-128)
61#endif
62#ifndef INT16_MIN
63#define INT16_MIN              (-32767-1)
64#endif
65#ifndef INT32_MIN
66#define INT32_MIN              (-2147483647-1)
67#endif
68#ifndef INT8_MAX
69#define INT8_MAX               (127)
70#endif
71#ifndef INT16_MAX
72#define INT16_MAX              (32767)
73#endif
74#ifndef INT32_MAX
75#define INT32_MAX              (2147483647)
76#endif
77#ifndef UINT8_MAX
78#define UINT8_MAX              (255U)
79#endif
80#ifndef UINT16_MAX
81#define UINT16_MAX             (65535U)
82#endif
83#ifndef UINT32_MAX
84#define UINT32_MAX             (4294967295U)
85#endif
86
87#ifndef SIZE_MAX
88#define SIZE_MAX               (~(size_t)0)
89#endif
90
91#endif /* ! C99 */
92
93#endif /* ! FLEXINT_H */
94
95/* begin standard C++ headers. */
96
97/* TODO: this is always defined, so inline it */
98#define yyconst const
99
100#if defined(__GNUC__) && __GNUC__ >= 3
101#define yynoreturn __attribute__((__noreturn__))
102#else
103#define yynoreturn
104#endif
105
106/* Returned upon end-of-file. */
107#define YY_NULL 0
108
109/* Promotes a possibly negative, possibly signed char to an
110 *   integer in range [0..255] for use as an array index.
111 */
112#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
113
114/* Enter a start condition.  This macro really ought to take a parameter,
115 * but we do it the disgusting crufty way forced on us by the ()-less
116 * definition of BEGIN.
117 */
118#define BEGIN (yy_start) = 1 + 2 *
119/* Translate the current start state into a value that can be later handed
120 * to BEGIN to return to the state.  The YYSTATE alias is for lex
121 * compatibility.
122 */
123#define YY_START (((yy_start) - 1) / 2)
124#define YYSTATE YY_START
125/* Action number for EOF rule of a given start state. */
126#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
127/* Special action meaning "start processing a new file". */
128#define YY_NEW_FILE yyrestart( yyin  )
129#define YY_END_OF_BUFFER_CHAR 0
130
131/* Size of default input buffer. */
132#ifndef YY_BUF_SIZE
133#ifdef __ia64__
134/* On IA-64, the buffer size is 16k, not 8k.
135 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
136 * Ditto for the __ia64__ case accordingly.
137 */
138#define YY_BUF_SIZE 32768
139#else
140#define YY_BUF_SIZE 16384
141#endif /* __ia64__ */
142#endif
143
144/* The state buf must be large enough to hold one state per character in the main buffer.
145 */
146#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
147
148#ifndef YY_TYPEDEF_YY_BUFFER_STATE
149#define YY_TYPEDEF_YY_BUFFER_STATE
150typedef struct yy_buffer_state *YY_BUFFER_STATE;
151#endif
152
153#ifndef YY_TYPEDEF_YY_SIZE_T
154#define YY_TYPEDEF_YY_SIZE_T
155typedef size_t yy_size_t;
156#endif
157
158extern int yyleng;
159
160extern FILE *yyin, *yyout;
161
162#define EOB_ACT_CONTINUE_SCAN 0
163#define EOB_ACT_END_OF_FILE 1
164#define EOB_ACT_LAST_MATCH 2
165
166    #define YY_LESS_LINENO(n)
167    #define YY_LINENO_REWIND_TO(ptr)
168
169/* Return all but the first "n" matched characters back to the input stream. */
170#define yyless(n) \
171	do \
172		{ \
173		/* Undo effects of setting up yytext. */ \
174        int yyless_macro_arg = (n); \
175        YY_LESS_LINENO(yyless_macro_arg);\
176		*yy_cp = (yy_hold_char); \
177		YY_RESTORE_YY_MORE_OFFSET \
178		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
179		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
180		} \
181	while ( 0 )
182#define unput(c) yyunput( c, (yytext_ptr)  )
183
184#ifndef YY_STRUCT_YY_BUFFER_STATE
185#define YY_STRUCT_YY_BUFFER_STATE
186struct yy_buffer_state
187	{
188	FILE *yy_input_file;
189
190	char *yy_ch_buf;		/* input buffer */
191	char *yy_buf_pos;		/* current position in input buffer */
192
193	/* Size of input buffer in bytes, not including room for EOB
194	 * characters.
195	 */
196	int yy_buf_size;
197
198	/* Number of characters read into yy_ch_buf, not including EOB
199	 * characters.
200	 */
201	int yy_n_chars;
202
203	/* Whether we "own" the buffer - i.e., we know we created it,
204	 * and can realloc() it to grow it, and should free() it to
205	 * delete it.
206	 */
207	int yy_is_our_buffer;
208
209	/* Whether this is an "interactive" input source; if so, and
210	 * if we're using stdio for input, then we want to use getc()
211	 * instead of fread(), to make sure we stop fetching input after
212	 * each newline.
213	 */
214	int yy_is_interactive;
215
216	/* Whether we're considered to be at the beginning of a line.
217	 * If so, '^' rules will be active on the next match, otherwise
218	 * not.
219	 */
220	int yy_at_bol;
221
222    int yy_bs_lineno; /**< The line count. */
223    int yy_bs_column; /**< The column count. */
224
225	/* Whether to try to fill the input buffer when we reach the
226	 * end of it.
227	 */
228	int yy_fill_buffer;
229
230	int yy_buffer_status;
231
232#define YY_BUFFER_NEW 0
233#define YY_BUFFER_NORMAL 1
234	/* When an EOF's been seen but there's still some text to process
235	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
236	 * shouldn't try reading from the input source any more.  We might
237	 * still have a bunch of tokens to match, though, because of
238	 * possible backing-up.
239	 *
240	 * When we actually see the EOF, we change the status to "new"
241	 * (via yyrestart()), so that the user can continue scanning by
242	 * just pointing yyin at a new input file.
243	 */
244#define YY_BUFFER_EOF_PENDING 2
245
246	};
247#endif /* !YY_STRUCT_YY_BUFFER_STATE */
248
249/* Stack of input buffers. */
250static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
251static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
252static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
253
254/* We provide macros for accessing buffer states in case in the
255 * future we want to put the buffer states in a more general
256 * "scanner state".
257 *
258 * Returns the top of the stack, or NULL.
259 */
260#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
261                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
262                          : NULL)
263#define yy_current_buffer YY_CURRENT_BUFFER
264/* Same as previous macro, but useful when we know that the buffer stack is not
265 * NULL or when we need an lvalue. For internal use only.
266 */
267#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
268
269/* yy_hold_char holds the character lost when yytext is formed. */
270static char yy_hold_char;
271static int yy_n_chars;		/* number of characters read into yy_ch_buf */
272int yyleng;
273
274/* Points to current character in buffer. */
275static char *yy_c_buf_p = NULL;
276static int yy_init = 0;		/* whether we need to initialize */
277static int yy_start = 0;	/* start state number */
278
279/* Flag which is used to allow yywrap()'s to do buffer switches
280 * instead of setting up a fresh yyin.  A bit of a hack ...
281 */
282static int yy_did_buffer_switch_on_eof;
283
284void yyrestart ( FILE *input_file  );
285void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
286YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
287void yy_delete_buffer ( YY_BUFFER_STATE b  );
288void yy_flush_buffer ( YY_BUFFER_STATE b  );
289void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
290void yypop_buffer_state ( void );
291
292static void yyensure_buffer_stack ( void );
293static void yy_load_buffer_state ( void );
294static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
295#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
296
297YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
298YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
299YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
300
301void *yyalloc ( yy_size_t  );
302void *yyrealloc ( void *, yy_size_t  );
303void yyfree ( void *  );
304
305#define yy_new_buffer yy_create_buffer
306#define yy_set_interactive(is_interactive) \
307	{ \
308	if ( ! YY_CURRENT_BUFFER ){ \
309        yyensure_buffer_stack (); \
310		YY_CURRENT_BUFFER_LVALUE =    \
311            yy_create_buffer( yyin, YY_BUF_SIZE ); \
312	} \
313	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
314	}
315#define yy_set_bol(at_bol) \
316	{ \
317	if ( ! YY_CURRENT_BUFFER ){\
318        yyensure_buffer_stack (); \
319		YY_CURRENT_BUFFER_LVALUE =    \
320            yy_create_buffer( yyin, YY_BUF_SIZE ); \
321	} \
322	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
323	}
324#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
325
326/* Begin user sect3 */
327typedef flex_uint8_t YY_CHAR;
328
329FILE *yyin = NULL, *yyout = NULL;
330
331typedef int yy_state_type;
332
333extern int yylineno;
334int yylineno = 1;
335
336extern char *yytext;
337#ifdef yytext_ptr
338#undef yytext_ptr
339#endif
340#define yytext_ptr yytext
341
342static yy_state_type yy_get_previous_state ( void );
343static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
344static int yy_get_next_buffer ( void );
345static void yynoreturn yy_fatal_error ( const char* msg  );
346
347/* Done after the current pattern has been matched and before the
348 * corresponding action - sets up yytext.
349 */
350#define YY_DO_BEFORE_ACTION \
351	(yytext_ptr) = yy_bp; \
352	yyleng = (int) (yy_cp - yy_bp); \
353	(yy_hold_char) = *yy_cp; \
354	*yy_cp = '\0'; \
355	(yy_c_buf_p) = yy_cp;
356#define YY_NUM_RULES 253
357#define YY_END_OF_BUFFER 254
358/* This struct is not used in this scanner,
359   but its presence is necessary. */
360struct yy_trans_info
361	{
362	flex_int32_t yy_verify;
363	flex_int32_t yy_nxt;
364	};
365static const flex_int16_t yy_accept[1114] =
366    {   0,
367        0,    0,    0,    0,    0,    0,  246,  246,   40,   40,
368        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
369        0,    0,    0,    0,    0,    0,    0,    0,   21,   21,
370      239,  239,    0,    0,    0,    0,    0,    0,    0,    0,
371        0,    0,    0,    0,    0,    0,    0,    0,   21,   21,
372      250,  250,  239,  239,  254,  252,    9,   20,  252,   18,
373        1,   19,  252,  252,  252,  252,   17,  163,  148,  149,
374      163,  141,  163,  160,  161,  162,  162,  163,  163,  163,
375      162,  147,  137,  163,  163,  139,  140,  135,  136,  135,
376      134,  133,  134,  246,  247,  247,   40,   42,   40,   41,
377
378       40,   40,   41,   41,   41,   50,   49,   51,  252,  169,
379      169,  164,  169,  165,  166,  168,  170,  218,  219,  218,
380      216,  215,  217,  171,  173,  171,  172,  171,  185,  185,
381      185,  185,  187,  189,  187,  187,  187,  187,  188,  228,
382      233,  228,  232,  231,  234,  229,  229,  229,  234,  234,
383      226,  227,  252,  130,  252,   21,   23,   21,   22,   22,
384       22,  235,  241,  235,  236,  242,  242,  242,  224,  224,
385      225,  224,  224,  224,  224,  224,  224,  224,  129,   53,
386       52,  129,  129,  129,  129,   54,  129,  129,  129,  129,
387      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
388
389      129,  129,  129,  129,  129,  129,  129,   36,   33,   36,
390       34,   48,   45,  252,   48,   48,   44,   43,  175,  174,
391      176,  177,  178,  179,  180,  181,  182,   31,   32,   31,
392       30,   28,   29,   28,   27,   22,  250,  251,  251,  237,
393      237,  238,    9,   20,    0,   18,    1,   19,    0,    0,
394        0,   16,   10,    0,    0,    0,    0,    4,   16,    5,
395        0,    2,   17,  148,  149,    0,    0,    0,  143,    0,
396      159,  157,    0,  153,  153,    0,  243,  243,  243,    0,
397        0,  142,    0,  147,  137,    0,    0,    0,  139,  140,
398      152,  138,    0,  136,  134,  133,  131,  132,  246,  244,
399
400      245,   40,   42,   40,   40,   37,   38,    0,   50,   49,
401       51,    0,  164,    0,  164,  167,  168,  219,  215,  173,
402        0,  183,  184,  189,  186,  228,  233,    0,    0,  221,
403      229,  229,  229,    0,  130,    0,   21,   23,   24,  235,
404      241,  240,  239,  240,    0,    0,  225,  220,    0,    0,
405       53,   52,    0,  128,    0,    0,  129,  129,  129,  129,
406      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
407      129,  129,  129,  129,  129,  129,   55,  129,  129,  129,
408      129,  129,  129,  129,  129,  129,  129,  129,    0,   35,
409       34,   48,   45,   46,   47,   31,   32,   29,   26,   25,
410
411      250,  248,  249,  237,    0,   16,   10,    0,   14,    0,
412        0,    0,    0,    0,    4,   16,    5,    0,    6,    0,
413      144,    0,  145,    0,  158,    0,  153,  153,    0,  153,
414      153,  153,  243,  243,  155,  154,    0,  156,  138,  146,
415        0,  152,    0,  131,  132,   40,   40,    0,   39,    0,
416        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417        0,    0,  230,  229,  229,    0,    0,  220,    0,    0,
418        0,    0,  129,  129,  129,  129,  129,  129,   65,  129,
419      129,  129,   70,  129,  129,  129,  129,  129,  129,  129,
420      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
421
422      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
423      129,  129,  129,  129,  129,  129,  129,  129,    0,    0,
424        0,    0,   14,    0,    0,    0,    0,    0,    0,    4,
425        8,    5,    0,  153,  153,  153,  153,  153,  153,  153,
426      243,  156,    0,    0,   40,   40,    0,    0,    0,    0,
427        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428        0,    0,    0,    0,    0,    0,    0,    0,  229,  229,
429        0,    0,   56,   57,  129,  129,  129,  129,  129,  129,
430      129,  129,  129,  129,   71,   72,  129,  129,  129,  129,
431       77,   78,  129,  129,  129,  129,  129,  129,  129,   83,
432
433      129,  129,  129,  129,  129,  129,  129,  129,  129,   92,
434      129,  129,  129,  129,  129,  129,  129,  129,  129,    0,
435        0,    0,    0,   15,    0,    0,    0,    0,    0,    8,
436        8,    8,    0,  153,  153,  153,  153,  153,  153,  153,
437        0,    0,   40,   40,  214,    0,    0,    0,    0,    0,
438        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439        0,    0,    0,    0,    0,    0,    0,    0,  229,  229,
440        0,    0,   58,  129,   60,  129,   62,  129,  129,  129,
441      129,   68,  129,  129,  129,   73,  129,  129,  129,  129,
442      129,  129,  129,  129,  129,  129,  129,   86,  129,  129,
443
444      129,  129,   90,  129,  129,  129,  129,  129,  129,  129,
445      129,  129,  129,    0,    0,    0,    0,    3,    0,    0,
446        0,    8,    7,    8,    0,  153,  153,  153,    0,    0,
447       40,   40,    0,    0,    0,    0,    0,    0,    0,    0,
448        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449        0,    0,    0,    0,    0,    0,  222,  223,  222,  223,
450      129,   61,  129,  129,  129,  129,  129,  129,  129,  125,
451      129,  129,  129,  129,  129,  129,  129,  129,  123,  129,
452       85,  129,   88,  129,   89,  129,  129,  129,  104,    0,
453      129,   94,  129,    0,   95,    0,    0,    0,    0,    0,
454
455       12,    0,   13,    0,  151,    0,  150,    0,    0,    0,
456        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
457        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
458        0,  129,  129,  129,  129,  129,   66,  129,   69,  129,
459      129,  129,  129,  129,  129,  122,  129,   82,  129,  129,
460       87,  129,   91,  102,  124,    0,    0,    0,    0,    0,
461        0,  129,  129,    0,    0,    0,    0,    0,    0,    0,
462        0,    0,    0,  150,    0,    0,    0,    0,    0,    0,
463        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464        0,    0,    0,    0,    0,    0,    0,    0,  129,  129,
465
466      129,  129,  129,   67,  129,  129,  129,  129,   79,  129,
467      129,  129,  129,  129,  129,    0,    0,  113,    0,    0,
468        0,    0,    0,    0,   93,  129,    0,    0,  114,    0,
469        0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
470      190,  191,  192,  193,  194,  195,  196,  197,  198,  199,
471      200,    0,    0,    0,    0,    0,    0,    0,    0,    0,
472        0,    0,    0,    0,  129,  129,  129,  129,  129,  129,
473      129,  129,  129,  129,  129,  129,   84,  129,  129,    0,
474        0,    0,    0,    0,    0,  115,    0,  103,    0,    0,
475        0,    0,    0,  116,    0,    0,    0,    0,    0,  201,
476
477      202,  203,  204,  205,  206,  207,  208,  209,  210,  211,
478      212,    0,  129,  129,  129,  129,  129,  121,  129,  129,
479       75,  129,  129,  129,  129,  129,    0,    0,  109,    0,
480      119,  117,  110,    0,    0,    0,  120,  118,    0,    0,
481        0,    0,    0,    0,  213,  129,  129,  129,  129,  129,
482      125,   74,  129,   81,  129,  126,  129,  105,  107,    0,
483      106,  108,    0,    0,    0,    0,    0,    0,    0,  129,
484       63,  129,  129,  129,  129,   76,  129,  111,  112,   97,
485        0,    0,    0,    0,   98,  129,  129,  129,  129,  129,
486      127,   96,    0,  100,    0,  129,  129,  129,   66,  129,
487
488       99,  101,  129,   64,  129,  129,  129,   67,  129,  129,
489       80,   59,    0
490    } ;
491
492static const YY_CHAR yy_ec[256] =
493    {   0,
494        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
495        4,    4,    5,    1,    1,    1,    1,    1,    1,    1,
496        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
497        1,    2,    1,    6,    7,    8,    9,    1,   10,   11,
498       12,   13,   14,   15,   16,   17,   18,   19,   19,   19,
499       19,   19,   19,   19,   20,   21,   22,   23,    1,   24,
500       25,   26,   27,    1,   28,   29,   30,   31,   32,   33,
501       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
502       44,   45,   46,   47,   48,   49,   50,   51,   52,   44,
503       53,   54,   55,   56,   57,    1,   58,   59,   60,   61,
504
505       62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
506       72,   73,   44,   74,   75,   76,   77,   78,   79,   80,
507       81,   44,   82,   83,   84,    1,    1,    1,    1,    1,
508        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
509        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
510        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
511        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
512        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
513        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
514        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
515
516        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
517        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
518        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
519        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
520        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
521        1,    1,    1,    1,    1
522    } ;
523
524static const YY_CHAR yy_meta[85] =
525    {   0,
526        1,    1,    2,    1,    3,    4,    1,    1,    5,    6,
527        1,    7,    8,    9,    1,   10,    1,   11,   12,   12,
528       12,   12,   13,    1,    1,    1,    1,   14,   14,   14,
529       14,   14,   14,   15,   15,   15,   15,   15,   15,   15,
530       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
531       15,   15,   16,   17,   18,    1,   19,   14,   14,   14,
532       14,   14,   14,   15,   15,   15,   15,   15,   15,   15,
533       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
534       15,   20,    1,   21
535    } ;
536
537static const flex_int16_t yy_base[1221] =
538    {   0,
539        0,   84,  167,  250,  171,  184,  135,  142,  220,  231,
540      196,  200,  334,    0, 3627, 3625,  211,  416,  203,  212,
541      189,  225,  266,  417,  500,    0,  207,  208,  234,  421,
542      424,  436,  583,  588,  669,    0,  294,  304,  584,  751,
543      579,  580,  417,  576,  287,  306,  241,  441,  595,  608,
544      169,  238,  440,  754, 3680, 4511,  325, 4511, 3676,    0,
545      446, 4511, 3673,  430,  827, 3661,    0, 4511,  758, 4511,
546     3650, 4511,  453, 3621, 4511, 4511, 3619, 3584,  129,  746,
547      445,  766, 4511, 3604,  198, 3582, 4511, 4511, 4511, 3600,
548        0, 3599,  214,    0, 3506, 3483,    0, 4511, 3532, 4511,
549
550      420,  119, 3481, 3478, 3446,    0, 3526, 4511, 3520, 4511,
551      482, 3520, 3518, 4511, 3455,    0, 4511, 4511, 4511, 3504,
552     4511,  598, 4511, 4511, 4511, 3499, 4511,  754, 4511, 3477,
553      759,  180, 4511, 4511, 3467,    0, 3442,  762, 4511,    0,
554     4511, 3459, 4511, 3406, 3434,    0,  562,  167, 3393, 3370,
555     4511, 4511,  326, 4511,  420,    0, 4511, 3418, 3402, 3366,
556     3342,    0, 4511, 3368, 4511, 3317,  444, 3314, 4511,  471,
557     4511, 3354, 3271, 3337,  572,  189, 3295, 3285, 4511, 3332,
558     4511, 3307, 3303,  585,  594, 4511,  746,  734,  744,  754,
559      763,  770,    0,  755,  748,  763,  818,  789,  240,  822,
560
561      762,  381,  802,  791,  813,  824,  577, 4511, 4511, 3302,
562      871,    0, 4511, 3302, 3250, 3231, 4511, 4511, 4511, 4511,
563     4511, 4511, 4511, 4511, 4511, 4511, 4511,    0, 4511, 3279,
564     4511, 4511, 4511, 3276, 3260, 3259,    0, 3221, 3214,    0,
565     3264, 4511,  835, 4511, 3262,    0,  903, 4511, 3257,  842,
566      817,    0,    0,  910,  914,  918,  922,    0,  814,    0,
567      457, 4511,    0,  943, 4511, 3241, 3141,  483, 4511, 3217,
568     3212, 4511,  826,  556,  903,  930, 4511,  757,    0, 3134,
569     3131, 4511, 3129,  964, 4511, 3190, 3110, 3174, 3161, 4511,
570        0, 4511,  896, 4511,    0, 3172,    0,    0,    0, 4511,
571
572     4511,    0, 4511,  910,  913, 4511, 4511,  602,    0, 3169,
573     4511,  957, 3164, 3161, 3127, 4511,    0, 4511,  976, 4511,
574     1020, 4511, 4511, 4511, 4511,    0, 4511, 3116,    0, 4511,
575        0,  926,  930,  644, 4511,  662,    0, 4511, 4511,    0,
576     4511, 4511, 3071, 3121,  794, 3037, 4511,    0,  934,  932,
577     3117, 4511, 3091, 4511,  938,  939,    0,  940,  738,  956,
578      802, 3059,  876,  978,  933,  933,  939,  948,  964, 1030,
579      938,  958,  976,  968,    0,  996, 4511,  999, 1057, 1068,
580      981, 1079, 1077, 1080, 1074, 1068, 1070, 1120, 3062, 4511,
581     1014,    0, 4511, 4511, 4511,    0, 4511, 4511, 4511, 4511,
582
583        0, 4511, 4511,    0, 1078,    0,    0, 1153, 4511, 3063,
584     1166, 1077, 1076, 1091,    0, 1089,    0, 1018, 4511, 1022,
585     4511, 1025, 4511, 1035, 4511, 1091, 1067, 1138, 1162, 1242,
586     1177, 1308, 1105,    0, 4511, 4511, 2954, 1198, 4511, 4511,
587     1144,    0, 1137,    0,    0, 1161, 1156, 1123, 4511, 1202,
588     1308, 1309, 1310, 1319, 3013, 1312, 1311, 1327, 1320, 1321,
589     1323, 1382, 4511, 1172, 1166, 2589, 2537,    0, 1178, 1169,
590     1169, 1298, 1315, 1324, 1330, 1321, 1330, 1323,    0, 1341,
591     1332, 1348,    0, 1346, 1350, 1348, 1361, 1350, 1367, 2573,
592     1370, 1366, 1380, 1382, 1382, 1385, 1378, 1387, 1391, 1400,
593
594     1393, 1403, 1406, 1414, 1400, 1401, 1404, 1429, 1419, 1424,
595     1428, 1425, 1436, 1435, 1430, 1441, 1442, 1432, 1432, 1450,
596     1209, 1508, 4511, 1215, 1512, 1219, 1461, 1455, 1451,    0,
597     1143,    0, 1461, 1534, 1600, 1636,  204, 2525, 1606, 1681,
598     4511, 4511, 1453, 1463, 1591, 1442, 2524, 1599, 1604, 1600,
599     1607, 1605, 1611, 1608, 1650, 1620, 1606, 1614, 1613, 1654,
600     1663, 1652, 1661, 1666, 1682, 1664, 1693, 1694, 1655, 1674,
601     1662, 1675, 4511, 4511, 1683, 1676, 1677, 1683, 1697, 1692,
602     1731, 1711, 1702, 1718,    0,    0, 1719, 1706, 1716, 1735,
603        0,    0, 2553, 1722, 1732, 2540, 1725, 1722, 1733,    0,
604
605     1727, 1747, 1740, 1739, 1735, 1752, 1739, 1740, 1746,    0,
606     1750, 1763, 1760, 1750, 1752, 1759, 1777, 1762, 1778, 1769,
607     1783, 1778, 2514, 4511, 1224, 1230, 1772, 1783, 1780,    0,
608     1507, 1234, 2364,  732, 2273, 1809, 1845, 1430, 1076, 1585,
609     1797, 2286, 1785, 1807, 4511, 1811, 1814, 1829, 1835, 1821,
610     1808, 1822, 1845, 1859, 1860, 1862, 1868, 1869, 1870, 1825,
611     1888, 1890, 1876, 1891, 1874, 1902, 1894, 1898, 1795, 1891,
612     1882, 1899,    0, 1887,    0, 1892,    0, 2260, 1900, 1891,
613     1909,    0, 1904, 2253, 1902,    0, 1916, 1907, 1918, 2227,
614     1912, 1909, 1924, 2201, 1908, 1918, 1922,    0, 1934, 1925,
615
616     1931, 1947,    0, 1936, 1942, 1941, 1953, 2103, 1957, 1958,
617     1952, 2085, 1950, 1951, 1950, 1969, 1956, 2133, 1515, 1961,
618     1971, 2002, 4511, 2117, 2038, 1981, 1592, 1842, 2025, 1983,
619        0,    0, 1972, 1990, 1999, 1987, 1994, 2008, 2005, 2007,
620     2015, 2023, 2016, 2021, 2017, 2024, 2022, 2026, 2030, 2029,
621     2037, 2035, 2045, 2051, 2054, 2061,    0,    0, 4511, 4511,
622     1922,    0, 2049, 2039, 2050, 2053, 2051, 2051, 2054, 1831,
623     2073, 2064, 2077, 2073, 2081, 2082, 2072, 2085,    0, 2091,
624        0, 2074,    0, 1824,    0, 2091, 2094, 2082,    0, 2116,
625     2088,    0, 2092, 2133,    0, 1728, 2097, 2095, 1714, 1678,
626
627     4511, 2135, 4511, 2096, 4511, 1726, 4511, 1703, 1612, 1601,
628     1514, 1500, 1477, 1377, 1373, 1333, 1274, 1203, 2133, 2128,
629     2148, 2151, 2144, 2150, 2156, 2158, 2161, 2163, 2184, 2167,
630     2164, 2157, 2151, 2159, 2158, 2173,    0, 2165,    0, 2166,
631     2182, 2173, 2179, 2178, 2186,    0, 2185,    0, 2187, 2193,
632        0, 2202,    0,    0,    0, 2204, 2187, 2201, 2224, 2200,
633     2222, 2213, 2219, 2230, 2199, 2227, 2239, 2222, 2225, 1162,
634     1158, 2228, 2278, 4511, 1112, 1109, 1081, 1063, 1057,  984,
635      976,  969,  923,  913,  910,  931,  895,  891,  887,  881,
636      874,  856,  848,  843,  840,  804,  788, 2259, 2248, 2258,
637
638     2265, 2264, 2241,    0, 2254, 2265, 2268, 2279,    0, 2262,
639     2268, 2271, 2266, 2278, 2283, 2289, 2273, 4511, 2280, 2281,
640     2281, 2300, 2283, 2281,    0, 2303, 2307, 2292, 4511, 2302,
641     2304, 2319, 2303, 2307, 2309, 2328, 2309, 2357, 4511, 2362,
642     4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
643     4511,  746,  725,  597,  577,  441,  426,  420,  267,  253,
644      247,  230,  183,  181, 2317, 2338, 2342, 2330, 2336, 2343,
645     2339, 2331, 2334, 2350, 2341, 2345,    0, 2350, 2346, 2344,
646     2349, 2361, 2364, 2367, 2359, 4511, 2357,    0, 2358, 2362,
647     2379, 2383, 2375, 4511, 2388, 2375, 2382, 2377, 2389, 4511,
648
649     4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
650     4511,  122, 2399, 2398, 2382, 2391, 2391,    0, 2407, 2408,
651        0, 2397, 2398, 2420, 2417, 2414, 2418, 2426, 4511, 2414,
652     4511, 4511, 4511, 2422, 2429, 2419, 4511, 4511, 2417, 2437,
653     2435, 2425, 2428, 2428, 4511, 2431, 2445, 2445, 2447, 2452,
654        0,    0, 2461,    0, 2444,    0, 2459, 4511, 4511, 2452,
655     4511, 4511, 2454, 2465, 2452, 2467, 2471, 2470, 2476, 2481,
656        0, 2468, 2465, 2465, 2485,    0, 2465, 4511, 4511, 4511,
657     2489, 2491, 2479, 2488, 4511, 2501, 2491, 2498, 2503, 2490,
658        0, 4511, 2497, 4511, 2510, 2500, 2502, 2500,    0, 2514,
659
660     4511, 4511, 2516,    0, 2523, 2508, 2509,    0, 2528, 2531,
661        0,    0, 4511, 2593, 2614, 2635, 2656, 2677, 2698, 2719,
662     2740, 2761, 2782, 2803, 2824, 2845, 2866, 2887, 2908, 2929,
663     2950, 2971, 2992, 3013, 3025, 3044, 3055, 3074, 3095, 3108,
664     3127, 3148, 3169, 3190, 3202, 3221, 3242, 3263, 3280, 3292,
665     3311, 3332, 3353, 3374, 3395, 3408, 2553, 3423, 3444, 3463,
666     3484, 3505, 3517, 3536, 3557, 2569, 3057, 3578, 3590, 3609,
667     3630, 3651, 2558, 3663, 3684, 3705, 3726, 3747, 3768, 3789,
668     3810, 3831, 3843, 3862, 3879, 3891, 3910, 3931, 3952, 3973,
669     3994, 4007, 4022, 4043, 4062, 4083, 4104, 4125, 4146, 4167,
670
671     4179, 4189, 4208, 4229, 4250, 2561, 4262, 4283, 4304, 4325,
672     4346, 4367, 3028, 4379, 4398, 4419, 4432, 4447, 4468, 4489
673    } ;
674
675static const flex_int16_t yy_def[1221] =
676    {   0,
677     1113, 1113, 1114, 1114, 1115, 1116, 1117, 1117, 1118, 1118,
678     1119, 1119, 1113,   13, 1120, 1120, 1121, 1121, 1122, 1122,
679     1123, 1123, 1124, 1124, 1113,   25, 1125, 1125, 1126, 1126,
680     1127, 1127, 1128, 1128, 1113,   35, 1129, 1129, 1130, 1130,
681     1120, 1120, 1120, 1120, 1131, 1131, 1132, 1132, 1126, 1126,
682     1133, 1133, 1134, 1134, 1113, 1113, 1113, 1113, 1113, 1135,
683     1113, 1113, 1113, 1113, 1136, 1113, 1137, 1113, 1113, 1113,
684     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1138, 1139,
685     1140, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
686     1141, 1113, 1141, 1142, 1113, 1113, 1143, 1113, 1143, 1113,
687
688     1143, 1143, 1113, 1113, 1113, 1144, 1113, 1113, 1113, 1113,
689     1113, 1113, 1113, 1113, 1113, 1145, 1113, 1113, 1113, 1113,
690     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1139, 1113, 1113,
691     1139, 1146, 1113, 1113, 1113, 1147, 1113, 1139, 1113, 1148,
692     1113, 1148, 1113, 1149, 1113, 1150, 1150, 1150, 1113, 1113,
693     1113, 1113, 1151, 1113, 1151, 1152, 1113, 1152, 1113, 1113,
694     1113, 1153, 1113, 1153, 1113, 1113, 1154, 1113, 1113, 1113,
695     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
696     1113, 1113, 1155, 1113, 1113, 1113, 1156, 1156, 1156, 1156,
697     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1156, 1156,
698
699     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1113, 1113, 1158,
700     1113, 1159, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
701     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1160, 1113, 1160,
702     1113, 1113, 1113, 1113, 1113, 1113, 1161, 1113, 1113, 1162,
703     1162, 1113, 1113, 1113, 1113, 1163, 1113, 1113, 1113, 1113,
704     1113, 1164, 1165, 1113, 1113, 1113, 1113, 1166, 1164, 1167,
705     1168, 1113, 1169, 1113, 1113, 1113, 1113, 1170, 1113, 1113,
706     1113, 1113, 1113, 1171, 1171, 1172, 1113, 1113, 1173, 1113,
707     1113, 1113, 1174, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
708     1175, 1113, 1113, 1113, 1176, 1113, 1177, 1178, 1179, 1113,
709
710     1113, 1180, 1113, 1180, 1180, 1113, 1113, 1181, 1182, 1113,
711     1113, 1113, 1113, 1113, 1113, 1113, 1183, 1113, 1113, 1113,
712     1113, 1113, 1113, 1113, 1113, 1184, 1113, 1113, 1185, 1113,
713     1186, 1186, 1186, 1187, 1113, 1187, 1188, 1113, 1113, 1189,
714     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1190, 1113, 1113,
715     1113, 1113, 1191, 1113, 1113, 1113, 1192, 1192, 1192, 1192,
716     1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
717     1192, 1192, 1192, 1192, 1192, 1192, 1113, 1192, 1192, 1192,
718     1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1113,
719     1113, 1194, 1113, 1113, 1113, 1195, 1113, 1113, 1113, 1113,
720
721     1196, 1113, 1113, 1197, 1113, 1198, 1199, 1200, 1113, 1113,
722     1113, 1113, 1113, 1113, 1201, 1198, 1202, 1203, 1113, 1203,
723     1113, 1204, 1113, 1204, 1113, 1113, 1205, 1205, 1205, 1113,
724     1205, 1205, 1113, 1206, 1113, 1113, 1207, 1113, 1113, 1113,
725     1113, 1208, 1113, 1209, 1210, 1211, 1211, 1212, 1113, 1212,
726     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
727     1213, 1213, 1113, 1214, 1214, 1113, 1215, 1216, 1113, 1113,
728     1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
729     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
730     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
731
732     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
733     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113,
734     1200, 1200, 1113, 1200, 1200, 1113, 1113, 1113, 1113, 1201,
735     1218, 1202, 1113, 1113, 1205,  432,  430,  430, 1205,  432,
736     1113, 1113, 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213,
737     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
738     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
739     1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217,
740     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
741     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
742
743     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
744     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
745     1113, 1113, 1113, 1113, 1200, 1200, 1113, 1113, 1113, 1218,
746     1218, 1218, 1113,  534,  534, 1205,  432, 1205, 1205, 1205,
747     1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213, 1213, 1213,
748     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
749     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
750     1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
751     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
752     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
753
754     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
755     1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1219, 1113,
756     1113, 1218, 1113, 1218, 1113, 1205, 1205, 1205, 1113, 1113,
757     1211, 1211, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
758     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
759     1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1113, 1113,
760     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
761     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
762     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
763     1217, 1217, 1217, 1113, 1217, 1113, 1113, 1113, 1113, 1219,
764
765     1113, 1219, 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213,
766     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
767     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
768     1213, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
769     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
770     1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
771     1113, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
772     1113, 1113, 1220, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
773     1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213, 1213, 1213,
774     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1217, 1217,
775
776     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
777     1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
778     1113, 1113, 1113, 1113, 1217, 1217, 1113, 1113, 1113, 1113,
779     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1220, 1113, 1220,
780     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
781     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
782     1113, 1113, 1113, 1213, 1217, 1217, 1217, 1217, 1217, 1217,
783     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
784     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217, 1113, 1113,
785     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
786
787     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
788     1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
789     1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113,
790     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
791     1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
792     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
793     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217,
794     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
795     1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
796     1217, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
797
798     1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
799     1217, 1217,    0, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
800     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
801     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
802     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
803     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
804     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
805     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
806     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
807     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
808
809     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
810     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113
811    } ;
812
813static const flex_int16_t yy_nxt[4596] =
814    {   0,
815       56,   57,   58,   56,   59,   56,   56,   56,   56,   56,
816       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
817       56,   56,   56,   56,   56,   56,   56,   60,   60,   60,
818       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
819       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
820       60,   60,   56,   56,   56,   56,   60,   60,   60,   60,
821       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
822       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
823       60,   56,   56,   56,   56,   61,   62,   56,   63,   56,
824       64,   56,   65,   56,   56,   56,   56,   56,   56,   56,
825
826       56,   66,   56,   56,   56,   56,   56,   56,   56,   56,
827       56,   67,   67,   67,   67,   67,   67,   67,   67,   67,
828       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
829       67,   67,   67,   67,   67,   67,   56,   56,   56,   56,
830       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
831       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
832       67,   67,   67,   67,   67,   56,   56,   56,   69,   70,
833      305,   71,   72,   89,   73,   90, 1045,   74,   75,   76,
834       76,  275,  276,   76,   77,   92,   89,   95,   90,   96,
835       78,   56,   93,   76,   95,  323,   96,  107,  108,  305,
836
837      109,  107,  108, 1012,  109,  125,  291,  126,  127,  154,
838      154,  155,  155,  119,  125,  120,  126,  127,  333,   79,
839       80,  238,   98,  239,   99,  121,  638,   56,  100,  122,
840      122,  122,  122,   98,  323,   99,  157, 1011,  158,  105,
841      350,  130,  131,  233,  132,  234,  159,  333,   81,   76,
842       76,   82,   83,  235,   84,   72,  128,   73,   85,  427,
843       74,   75,   76,   76,  101,  128,   76,   77,  134,  350,
844      135,  102,  103,   86,  104,  101,   76,  130,  131,  292,
845      132,  136,  102,  103, 1010,  104,  160,  378,  161,  229,
846      238,  230,  239,  101,  123,  297,  209,  298,  231,  210,
847
848      102, 1009,   79,   80,  101,   87,  209, 1008,  229,  210,
849      230,  102,  211,  211,  211,  211,  378,  231,  137,  138,
850      139, 1007,  211,  211,  211,  211,  243,  244,  335,  245,
851      336,   81,   76,   76,  110,  111,  112,  110,  113,  110,
852      110,  110,  110,  110,  110,  110,  114,  110,  114,  110,
853      110,  110,  110,  110,  110,  110,  110,  110,  110,  115,
854      110,  116,  116,  116,  116,  116,  116,  116,  116,  116,
855      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
856      116,  116,  116,  116,  116,  116,  110,  110,  110,  110,
857      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
858
859      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
860      116,  116,  116,  116,  116,  110,  110,  110,  119,  134,
861      120,  135,  335,  157,  336,  158,  163,  383,  164,  165,
862      121,  250,  136,  159,  122,  122,  122,  122,  163,  224,
863      164,  165,  163,  233,  241,  234,  343,  247,  248,  242,
864      249,  304,  225,  235,  269,  269,  383,  270,  280,  419,
865      281,  420,  226,  282,  282,  282,  282,  227,  251,  137,
866      138,  139,  345,  160, 1006,  161,  166,  167,  168,  346,
867     1005,  304,  225,  312,  313,  423,  314,  424,  166,  167,
868      168,  226,  166,  167,  168, 1004,  227,  344,  251,  123,
869
870      140,  140,  141,  140,  142,  143,  140,  140,  140,  144,
871      140,  140,  140,  140,  140,  140,  140,  145,  140,  140,
872      140,  140,  140,  140,  140,  140,  140,  146,  146,  146,
873      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
874      146,  146,  146,  146,  147,  146,  146,  146,  146,  146,
875      146,  148,  149,  140,  150,  140,  146,  146,  146,  146,
876      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
877      146,  146,  146,  147,  146,  146,  146,  146,  146,  146,
878      148,  151,  140,  152,  170,  171,  213,  172,  214,  170,
879      171,  173,  172,  332,  219,  219,  173,  157,  224,  158,
880
881      174,  220,  220,  349,  449,  174,  450,  236,  428,  429,
882      157,  225,  158,  355,  221,  221,  319,  319,  319,  319,
883      236,  226,  356,  332,  222,  222,  227,  175,  388,  223,
884      223, 1003,  175,  349,  176,  177,  215,  178,  216,  176,
885      177,  225,  178,  355,  221,  221,  335,  160,  336,  161,
886      226, 1002,  356,  222,  222,  227,  175,  388,  223,  223,
887      160,  175,  161,  176,  335,  217,  336,  218,  176,  179,
888      180,  181,  179,  182,  183,  179,  179,  179,  179,  179,
889      179,  179,  179,  179,  179,  179,  179,  179,  184,  185,
890      179,  179,  179,  186,  179,  179,  187,  188,  189,  190,
891
892      191,  192,  193,  194,  195,  193,  193,  196,  197,  198,
893      199,  200,  193,  201,  202,  203,  204,  205,  206,  193,
894      207,  179,  179,  179,  179,  179,  187,  188,  189,  190,
895      191,  192,  193,  194,  195,  193,  193,  196,  197,  198,
896      199,  200,  201,  202,  203,  204,  205,  206,  193,  207,
897      179,  179,  179,  213,  726,  214,  163,  362,  241,  264,
898      265,  360,  266,  242,  278,  278,  267,  284,  285,  361,
899      286,  363,  278,  278,  287,  433,  433,  278,  278, 1001,
900      278,  278,  475,  288,  358,  364,  369,  427,  370,  289,
901      359,  360,  365,  382,  371,  345,  279,  367,  372,  361,
902
903     1000,  363,  346,  215,  279,  216,  166,  167,  168,  279,
904      963,  475,  279,  366,  358,  364,  369,  368,  370,  359,
905      376,  290,  365,  382,  371,  279,  962,  367,  372,  384,
906      377,  385,  217,  279,  218,  253,  243,  244,  279,  245,
907      268,  279,  366,  250,  386,  373,  368,  478,  268,  374,
908      376,  387,  405,  379,  254,  416,  255,  426,  255,  384,
909      377,  385,  961,  380,  255,  960,  381,  255,  256,  257,
910      959,  255,  258,  259,  386,  373,  478,  260,  958,  374,
911      251,  387,  405,  379,  254,  416,  255,  426,  255,  391,
912      391,  391,  391,  380,  255,  381,  957,  255,  256,  257,
913
914      255,  258,  259,  956,  247,  248,  260,  249,  261,  955,
915      251,  408,  409,  954,  410,  408,  409,  953,  410,  408,
916      409,  480,  410,  408,  409,  430,  410,  443,  411,  411,
917      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
918      411,  411,  411,  411,  264,  265,  446,  266,  431,  431,
919      480,  267,  447,  952,  412,  428,  429,  443,  312,  313,
920      413,  314,  464,  414,  951,  284,  285,  950,  286,  465,
921      469,  470,  287,  471,  472,  473,  446,  949,  483,  484,
922      432,  288,  447,  412,  485,  476,  486,  289,  490,  474,
923      413,  487,  464,  414,  319,  319,  319,  319,  491,  465,
924
925      469,  470,  477,  471,  472,  473,  481,  483,  484,  432,
926      482,  492,  499,  485,  493,  476,  486,  490,  474,  290,
927      419,  487,  420,  948,  419,  268,  420,  423,  491,  424,
928      947,  477,  391,  391,  391,  391,  481,  423,  946,  424,
929      482,  492,  499,  493,  494,  495,  268,  451,  452,  453,
930      454,  455,  455,  456,  455,  455,  455,  455,  457,  455,
931      455,  455,  458,  455,  455,  459,  455,  460,  455,  455,
932      461,  455,  488,  494,  495,  462,  489,  451,  452,  453,
933      454,  455,  455,  456,  455,  455,  455,  455,  457,  455,
934      455,  455,  458,  455,  459,  455,  460,  455,  455,  461,
935
936      455,  496,  488,  497,  503,  489,  500,  504,  505,  506,
937      501,  945,  508,  498,  509,  502,  507,  944,  520,  428,
938      429,  527,  528,  277,  277,  449,  529,  450,  428,  429,
939      496,  531,  533,  497,  503,  943,  500,  504,  505,  506,
940      501,  508,  498,  509,  631,  502,  507,  510,  520,  511,
941      527,  528,  512,  513,  522,  523,  529,  524,  514,  515,
942      534,  531,  533,  942,  516,  517,  941,  526,  409,  518,
943      410,  525,  525,  525,  525,  543,  519,  510,  544,  511,
944      535,  535,  512,  513,  411,  411,  411,  411,  514,  515,
945      428,  429,  545,  516,  517,  539,  539,  546,  518,  542,
946
947      542,  542,  542,  569,  449,  543,  450,  570,  544,  571,
948      572,  624,  536,  625,  936,  573,  427,  523,  935,  625,
949      526,  409,  545,  410,  632,  885,  624,  546,  625,  428,
950      429,  626,  523,  569,  524,  722,  723,  570,  724,  571,
951      572,  536,  427,  427,  573,  427,  427,  427,  427,  427,
952      427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
953      427,  427,  427,  427,  427,  427,  427,  427,  427,  537,
954      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
955      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
956      537,  537,  537,  537,  428,  429,  884,  538,  427,  537,
957
958      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
959      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
960      537,  537,  537,  427,  427,  427,  540,  540,  540,  540,
961      547,  547,  547,  547,  547,  540,  540,  540,  540,  540,
962      540,  547,  547,  547,  574,  547,  548,  549,  575,  547,
963      550,  576,  553,  558,  551,  883,  552,  577,  578,  579,
964      428,  429,  556,  557,  580,  540,  540,  540,  540,  540,
965      540,  554,  581,  574,  555,  583,  548,  549,  575,  582,
966      550,  576,  553,  558,  551,  552,  586,  577,  578,  579,
967      584,  587,  556,  557,  580,  882,  585,  588,  589,  881,
968
969      554,  591,  581,  555, 1113,  583,  592,  593,  582,  559,
970      560,  561,  562,  594,  595,  563,  586,  596,  597,  584,
971      564,  587,  598,  599,  565,  585,  588,  566,  589,  567,
972      600,  591,  568,  601,  602,  603,  592,  593,  606,  559,
973      560,  561,  562,  594,  595,  563,  607,  596,  597,  604,
974      564,  608,  598,  599,  565,  605,  566,  609,  567,  610,
975      600,  568,  611,  601,  602,  603,  612,  614,  606,  613,
976      615,  616,  617,  618,  620,  607,  619,  621,  622,  604,
977      608,  623,  428,  429,  274,  605,  644,  609,  627,  610,
978      628,  629,  611,  633,  641,  642,  612,  614,  613,  880,
979
980      615,  616,  617,  618,  620,  619,  621,  622,  631,  522,
981      523,  623,  524,  626,  523,  644,  524,  801,  627,  802,
982      628,  629,  879,  633,  641,  642,  525,  525,  525,  525,
983      525,  525,  525,  525,  427,  427,  878,  427,  427,  427,
984      427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
985      427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
986      427,  634,  634,  634,  634,  634,  634,  634,  634,  634,
987      634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
988      634,  634,  634,  634,  634,  634,  428,  429,  632,  635,
989      427,  634,  634,  634,  634,  634,  634,  634,  634,  634,
990
991      634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
992      634,  634,  634,  634,  634,  427,  427,  427,  636,  636,
993      643,  547,  547,  877,  639,  639,  547,  547,  547,  547,
994      547,  648,  651,  547,  876,  547,  547,  428,  429,  646,
995      650,  647,  547,  653,  428,  429,  649,  655,  656,  657,
996      643,  658,  428,  429,  637,  637,  637,  637,  428,  429,
997      652,  648,  651,  637,  637,  637,  637,  637,  637,  646,
998      650,  647,  547,  653,  547,  649,  547,  655,  656,  657,
999      801,  658,  802,  547,  669,  547,  547,  661,  547,  652,
1000      654,  671,  659,  637,  637,  637,  637,  637,  637,  640,
1001
1002      640,  640,  640,  660,  547,  662,  666,  663,  640,  640,
1003      640,  640,  640,  640,  669,  547,  547,  661,  670,  672,
1004      654,  671,  659,  673,  668,  875,  664,  674,  675,  665,
1005      676,  677,  678,  660,  662,  667,  666,  663,  640,  640,
1006      640,  640,  640,  640,  682,  684,  679,  670,  672,  683,
1007      685,  874,  686,  673,  668,  664,  674,  675,  665,  676,
1008      687,  677,  678,  680,  688,  667,  690,  691,  695,  681,
1009      872,  693,  694,  696,  682,  684,  697,  698,  683,  699,
1010      685,  686,  700,  701,  869,  702,  703,  704,  705,  687,
1011      706,  707,  709,  680,  688,  690,  708,  691,  695,  681,
1012
1013      693,  694,  696,  710,  711,  713,  697,  698,  712,  699,
1014      714,  700,  716,  701,  702,  703,  715,  704,  705,  717,
1015      706,  707,  709,  719,  720,  708,  721,  727,  727,  729,
1016      547,  731,  710,  547,  711,  713,  547,  712,  732,  852,
1017      714,  757,  716,  547,  547,  715,  841,  547,  734,  717,
1018      738,  547,  719,  739,  720,  721,  737,  547,  733,  729,
1019      731,  428,  429,  728,  728,  728,  728,  547,  732,  735,
1020      757,  748,  728,  728,  728,  728,  728,  728,  734,  736,
1021      738,  547,  547,  739,  547,  740,  737,  733,  741,  742,
1022      547,  547,  547,  743,  428,  429,  547,  747,  547,  735,
1023
1024      748,  744,  728,  728,  728,  728,  728,  728,  736,  745,
1025      547,  746,  547,  547,  753,  740,  547,  750,  741,  742,
1026      547,  749,  758,  743,  547,  751,  752,  747,  759,  754,
1027      760,  744,  761,  756,  762,  764,  755,  832,  766,  745,
1028      767,  746,  768,  771,  753,  765,  770,  750,  772,  773,
1029      775,  749,  758,  776,  751,  777,  752,  759,  779,  754,
1030      760,  761,  780,  756,  762,  764,  755,  766,  781,  782,
1031      767,  783,  768,  771,  765,  770,  784,  785,  772,  773,
1032      775,  786,  776,  787,  789,  777,  788,  779,  791,  792,
1033      793,  780,  795,  796,  547,  797,  798,  781,  799,  782,
1034
1035      783,  803,  804,  722,  723,  784,  724,  785,  807,  547,
1036      786,  808,  547,  787,  789,  788,  547,  809,  791,  792,
1037      793,  547,  795,  796,  797,  811,  798,  547,  799,  547,
1038      547,  803,  804,  428,  429,  427,  810,  547,  547,  547,
1039      812,  808,  813,  547,  547,  547,  547,  809,  547,  814,
1040      806,  547,  547,  815,  817,  811,  819,  547,  821,  547,
1041      818,  816,  822,  805,  820,  824,  810,  547,  826,  812,
1042      823,  825,  813,  547,  828,  827,  547,  833,  814,  835,
1043      829,  836,  815,  547,  817,  830,  819,  834,  821,  818,
1044      816,  837,  822,  820,  831,  824,  838,  839,  826,  823,
1045
1046      840,  825,  842,  843,  828,  827,  844,  833,  845,  835,
1047      829,  836,  846,  847,  849,  830,  848,  834,  850,  723,
1048      851,  837,  853,  854,  831,  838,  839,  855,  862,  840,
1049      863,  870,  842,  843,  718,  871,  844,  801,  845,  802,
1050      873,  794,  846,  847,  849,  848,  856,  857,  850,  851,
1051      547,  858,  853,  854,  859,  547,  855,  860,  862,  790,
1052      863,  870,  861,  864,  865,  871,  547,  887,  866,  873,
1053      547,  867,  547,  547,  868,  888,  856,  857,  547,  886,
1054      547,  858,  890,  547,  859,  547,  547,  860,  889,  547,
1055      892,  861,  899,  864,  865,  900,  891,  887,  866,  898,
1056
1057      901,  867,  893,  902,  868,  888,  547,  894,  886,  895,
1058      904,  897,  890,  903,  906,  896,  778,  905,  889,  907,
1059      892,  908,  899,  909,  900,  891,  910,  911,  912,  898,
1060      901,  893,  902,  913,  914,  916,  894,  917,  895,  904,
1061      897,  918,  774,  903,  906,  896,  905,  923,  907,  928,
1062      915,  908,  909,  924,  925,  919,  910,  911,  912,  920,
1063      926,  927,  921,  913,  914,  916,  917,  929,  769,  933,
1064      934,  918,  922,  937,  930,  763,  923,  931,  928,  915,
1065      939,  547,  940,  924,  925,  919,  969,  932,  965,  920,
1066      926,  927,  921,  966,  967,  968,  970,  929,  933,  934,
1067
1068      971,  922,  937,  972,  930,  964,  973,  931,  974,  975,
1069      976,  730,  977,  978,  979,  969,  932,  980,  965,  981,
1070      982,  983,  984,  966,  967,  968,  970,  985,  427,  986,
1071      971,  987,  988,  972,  964,  989,  973,  974,  990,  975,
1072      976,  977,  991,  978,  979,  992,  993,  980,  981,  994,
1073      982,  983,  984,  995,  996,  999,  997,  985,  986,  939,
1074      987,  940,  988, 1013,  939,  989,  940,  990, 1014, 1015,
1075     1016, 1017,  991,  998, 1018,  992,  993, 1019,  994, 1020,
1076     1021, 1022,  995,  996,  999, 1023,  997, 1024, 1025,  725,
1077     1026, 1027, 1013, 1028, 1029, 1030, 1031, 1032, 1014, 1015,
1078
1079     1016, 1017,  998, 1033, 1018, 1034, 1035, 1019, 1020, 1021,
1080     1036, 1022, 1037, 1038, 1023, 1039, 1044, 1024, 1025, 1026,
1081     1027, 1040, 1028, 1043, 1029, 1030, 1031, 1032, 1048, 1041,
1082     1046, 1047, 1033, 1042, 1034, 1035, 1049, 1050, 1051, 1052,
1083     1036, 1053, 1037, 1038, 1054, 1039, 1044, 1055, 1056, 1057,
1084     1040, 1058, 1043, 1059, 1060, 1061, 1062, 1048, 1041, 1063,
1085     1046, 1047, 1042, 1064, 1065, 1049, 1050, 1066, 1051, 1052,
1086     1053, 1067, 1068, 1054, 1069, 1070, 1071, 1055, 1056, 1057,
1087     1072, 1058, 1073, 1059, 1060, 1061, 1062, 1074, 1075, 1063,
1088     1076, 1077, 1064, 1078, 1065, 1079, 1080, 1066, 1081, 1082,
1089
1090     1067, 1068, 1083, 1069, 1070, 1084, 1071, 1085, 1086, 1087,
1091     1072, 1088, 1073, 1089, 1090,  718, 1091, 1074, 1075, 1076,
1092     1092, 1077, 1093, 1078, 1094, 1079, 1080, 1081, 1095, 1082,
1093     1096, 1097, 1083, 1098, 1099, 1084, 1100, 1085, 1086, 1087,
1094     1088, 1101, 1089, 1102, 1090, 1091, 1103, 1104, 1105, 1106,
1095     1092, 1107, 1093, 1094, 1108,  692, 1109, 1110, 1095, 1111,
1096     1096, 1097, 1112, 1098, 1099, 1100,  375,  375,  689,  434,
1097     1101,  434,  541, 1102,  541, 1103, 1104, 1105,  645, 1106,
1098      427, 1107,  415,  415, 1108, 1109, 1110,  415,  590, 1111,
1099      344,  343, 1112,   68,   68,   68,   68,   68,   68,   68,
1100
1101       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
1102       68,   68,   68,   68,   88,   88,   88,   88,   88,   88,
1103       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
1104       88,   88,   88,   88,   88,   91,   91,   91,   91,   91,
1105       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1106       91,   91,   91,   91,   91,   91,   94,   94,   94,   94,
1107       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
1108       94,   94,   94,   94,   94,   94,   94,   97,   97,   97,
1109       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1110       97,   97,   97,   97,   97,   97,   97,   97,  106,  106,
1111
1112      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
1113      106,  106,  106,  106,  106,  106,  106,  106,  106,   56,
1114       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1115       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1116      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
1117      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
1118      118,  124,  124,  124,  124,  124,  124,  124,  124,  124,
1119      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
1120      124,  124,  129,  129,  129,  129,  129,  129,  129,  129,
1121      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
1122
1123      129,  129,  129,  133,  133,  133,  133,  133,  133,  133,
1124      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
1125      133,  133,  133,  133,  153,  153,  153,  153,  153,  153,
1126      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1127      153,  153,  153,  153,  153,  156,  156,  156,  156,  156,
1128      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
1129      156,  156,  156,  156,  156,  156,  162,  162,  162,  162,
1130      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
1131      162,  162,  162,  162,  162,  162,  162,  169,  169,  169,
1132      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
1133
1134      169,  169,  169,  169,  169,  169,  169,  169,  208,  208,
1135      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1136      208,  208,  208,  208,  208,  208,  208,  208,  208,  212,
1137      212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
1138      212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
1139      228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
1140      228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
1141      228,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1142      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1143      232,  232,  237,  237,  237,  237,  237,  237,  237,  237,
1144
1145      237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
1146      237,  237,  237,  240,  240,  240,  240,  240,  240,  240,
1147      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
1148      240,  240,  240,  240,  246,  547,  246,  438,  246,  246,
1149      455,  455,  455,  246,  252,  252,  252,  252,  252,  252,
1150      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
1151      252,  252,  252,  252,  263,  409,  263,  390,  263,  263,
1152      417,  417,  479,  263,  274,  417,  274,  274,  274,  274,
1153      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
1154      274,  274,  274,  274,  274,  277,  354,  277,  277,  277,
1155
1156      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
1157      277,  277,  277,  277,  277,  277,  283,  283,  351,  283,
1158      348,  283,  283,  467,  466,  463,  283,  295,  315,  295,
1159      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
1160      295,  295,  295,  295,  295,  295,  295,  295,  299,  299,
1161      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
1162      299,  299,  299,  313,  299,  315,  299,  299,  299,  302,
1163      310,  302,  302,  296,  302,  302,  302,  302,  302,  302,
1164      302,  302,  302,  302,  441,  302,  440,  302,  302,  302,
1165      309,  439,  285,  309,  309,  309,  309,  309,  309,  309,
1166
1167      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
1168      309,  317,  438,  317,  436,  317,  317,  435,  425,  269,
1169      317,  322,  421,  322,  322,  322,  322,  322,  322,  322,
1170      322,  322,  322,  322,  322,  322,  322,  322,  322,  322,
1171      322,  322,  325,  265,  325,  325,  325,  325,  325,  325,
1172      325,  325,  325,  325,  325,  325,  325,  325,  325,  248,
1173      325,  325,  325,  326,  244,  326,  341,  326,  403,  326,
1174      326,  326,  326,  402,  326,  326,  400,  399,  398,  326,
1175      328,  397,  328,  328,  328,  395,  328,  328,  328,  328,
1176      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
1177
1178      328,  331,  394,  331,  393,  331,  331,  390,  354,  352,
1179      331,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1180      334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1181      334,  334,  337,  351,  337,  337,  337,  337,  337,  307,
1182      337,  337,  337,  337,  337,  337,  337,  306,  337,  330,
1183      337,  337,  337,  340,  348,  340,  347,  340,  340,  340,
1184      340,  340,  340,  340,  340,  340,  340,  340,  307,  306,
1185      341,  340,  340,  340,  342,  342,  342,  342,  342,  342,
1186      342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1187      342,  342,  342,  342,  342,  353,  307,  353,  353,  353,
1188
1189      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
1190      353,  353,  353,  353,  353,  353,  357,  357,  306,  339,
1191      338,  357,  357,  389,  307,  389,  389,  389,  389,  389,
1192      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
1193      389,  389,  389,  389,  392,  306,  330,  392,  392,  392,
1194      392,  392,  392,  392,  392,  392,  392,  392,  392,  329,
1195      392,  327,  392,  396,  321,  396,  396,  396,  396,  324,
1196      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
1197      396,  396,  396,  396,  401,  401,  401,  401,  401,  401,
1198      401,  401,  401,  401,  401,  401,  401,  401,  401,  321,
1199
1200      401,  320,  401,  401,  401,  404,  318,  404,  404,  404,
1201      316,  404,  404,  404,  404,  404,  404,  404,  404,  404,
1202      313,  315,  311,  404,  404,  404,  246,  310,  246,  308,
1203      246,  246,  307,  306,  303,  246,  406,  301,  406,  406,
1204      406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
1205      406,  406,  406,  406,  406,  406,  406,  407,  300,  407,
1206      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
1207      407,  407,  407,  407,  407,  407,  407,  407,  418,  418,
1208      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
1209      418,  418,  418,  418,  418,  418,  418,  418,  418,  263,
1210
1211      296,  263,  294,  263,  263,  293,  285,  273,  263,  422,
1212      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1213      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1214      427,  272,  427,  427,  427,  427,  427,  427,  427,  427,
1215      427,  427,  427,  427,  427,  427,  427,  271,  427,  427,
1216      427,  274,  265,  274,  274,  274,  274,  274,  274,  274,
1217      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
1218      274,  274,  437,  262,  437,  248,  437,  437,  244, 1113,
1219      117,  437,  117,  437,  442, 1113,  442,  442,  442,  442,
1220      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
1221
1222      442,  442,  442,  442,  442,  295, 1113,  295,  295,  295,
1223      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
1224      295,  295,  295,  295,  295,  295,  444, 1113,  444,  444,
1225      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
1226      444,  444,  444,  444,  444,  444,  444,  445, 1113,  445,
1227      445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1228      445,  445,  445,  445,  445,  445,  445,  445,  299,  299,
1229      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
1230      299,  299,  299, 1113,  299, 1113,  299,  299,  299,  302,
1231     1113,  302,  302, 1113,  302,  302,  302,  302,  302,  302,
1232
1233      302,  302,  302,  302, 1113,  302, 1113,  302,  302,  302,
1234      448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
1235      448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
1236      448,  309, 1113, 1113,  309,  309,  309,  309,  309,  309,
1237      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
1238      309,  309,  317, 1113,  317, 1113,  317,  317, 1113, 1113,
1239     1113,  317,  326, 1113,  326, 1113,  326, 1113,  326,  326,
1240      326,  326, 1113,  326,  326, 1113, 1113, 1113,  326,  328,
1241     1113,  328,  328,  328,  328,  328,  328,  328,  328,  328,
1242      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
1243
1244      331, 1113,  331, 1113,  331,  331, 1113, 1113, 1113,  331,
1245      334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1246      334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1247      334,  337, 1113,  337,  337,  337,  337,  337, 1113,  337,
1248      337,  337,  337,  337,  337,  337, 1113,  337, 1113,  337,
1249      337,  337,  340, 1113,  340, 1113,  340,  340,  340,  340,
1250      340,  340,  340,  340,  340,  340,  340, 1113, 1113, 1113,
1251      340,  340,  340,  468, 1113,  468,  468,  468,  468,  468,
1252      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1253      468,  468,  468,  468,  353, 1113,  353,  353,  353,  353,
1254
1255      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
1256      353,  353,  353,  353,  353,  357,  357, 1113, 1113, 1113,
1257      357,  357,  389, 1113,  389,  389,  389,  389,  389,  389,
1258      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
1259      389,  389,  389,  392, 1113, 1113,  392,  392,  392,  392,
1260      392,  392,  392,  392,  392,  392,  392,  392, 1113,  392,
1261     1113,  392,  396, 1113,  396,  396,  396,  396, 1113,  396,
1262      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
1263      396,  396,  396,  401,  401,  401,  401,  401,  401,  401,
1264      401,  401,  401,  401,  401,  401,  401,  401, 1113,  401,
1265
1266     1113,  401,  401,  401,  404, 1113,  404,  404,  404, 1113,
1267      404,  404,  404,  404,  404,  404,  404,  404,  404, 1113,
1268     1113, 1113,  404,  404,  404,  406, 1113,  406,  406,  406,
1269      406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
1270      406,  406,  406,  406,  406,  406,  407, 1113,  407,  407,
1271      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
1272      407,  407,  407,  407,  407,  407,  407,  521,  521,  521,
1273      521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
1274      521,  521,  521,  521,  521,  521,  521,  521,  530, 1113,
1275      530, 1113,  530,  530, 1113, 1113, 1113,  530,  532, 1113,
1276
1277      532, 1113,  532,  532, 1113, 1113, 1113,  532,  418,  418,
1278      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
1279      418,  418,  418,  418,  418,  418,  418,  418,  418,  422,
1280      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1281      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1282      427, 1113,  427,  427,  427,  427,  427,  427,  427,  427,
1283      427,  427,  427,  427,  427,  427,  427, 1113,  427,  427,
1284      427,  437, 1113,  437, 1113,  437,  437, 1113, 1113, 1113,
1285      437, 1113,  437,  442, 1113,  442,  442,  442,  442,  442,
1286      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
1287
1288      442,  442,  442,  442,  444, 1113,  444,  444,  444,  444,
1289      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
1290      444,  444,  444,  444,  444,  445, 1113,  445,  445,  445,
1291      445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1292      445,  445,  445,  445,  445,  445,  302, 1113,  302,  302,
1293     1113,  302,  302,  302,  302,  302,  302,  302,  302,  302,
1294      302, 1113,  302, 1113,  302,  302,  302,  448,  448,  448,
1295      448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
1296      448,  448,  448,  448,  448,  448,  448,  448,  331, 1113,
1297      331, 1113,  331,  331, 1113, 1113, 1113,  331,  342, 1113,
1298
1299      342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1300      342,  342,  342,  342,  342,  342,  342,  342,  342,  468,
1301     1113,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1302      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1303      357,  357, 1113, 1113, 1113,  357,  357,  630, 1113,  630,
1304      630,  630,  630,  630,  630,  630,  630,  630,  630,  630,
1305      630,  630,  630,  630,  630,  630,  630,  630,  800,  800,
1306      800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
1307      800,  800,  800,  800,  800,  800,  800,  800,  800,  938,
1308      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
1309
1310      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
1311       55, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1312     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1313     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1314     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1315     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1316     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1317     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1318     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1319     1113, 1113, 1113, 1113, 1113
1320
1321    } ;
1322
1323static const flex_int16_t yy_chk[4596] =
1324    {   0,
1325        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1326        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1327        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1328        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1329        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1330        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1331        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1332        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1333        1,    1,    1,    1,    2,    2,    2,    2,    2,    2,
1334        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1335
1336        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1337        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1338        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1339        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1340        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1341        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1342        2,    2,    2,    2,    2,    2,    2,    2,    3,    3,
1343      102,    3,    3,    5,    3,    5, 1012,    3,    3,    3,
1344        3,   79,   79,    3,    3,    6,    6,    7,    6,    7,
1345        3,   21,    6,    3,    8,  132,    8,   11,   11,  102,
1346
1347       11,   12,   12,  964,   12,   19,   85,   19,   19,   27,
1348       28,   27,   28,   17,   20,   17,   20,   20,  148,    3,
1349        3,   51,    9,   51,    9,   17,  537,   22,    9,   17,
1350       17,   17,   17,   10,  132,   10,   29,  963,   29,   10,
1351      176,   21,   21,   47,   21,   47,   29,  148,    3,    3,
1352        3,    4,    4,   47,    4,    4,   19,    4,    4,  537,
1353        4,    4,    4,    4,    9,   20,    4,    4,   23,  176,
1354       23,    9,    9,    4,    9,   10,    4,   22,   22,   85,
1355       22,   23,   10,   10,  962,   10,   29,  199,   29,   45,
1356       52,   45,   52,    9,   17,   93,   37,   93,   45,   37,
1357
1358        9,  961,    4,    4,   10,    4,   38,  960,   46,   38,
1359       46,   10,   37,   37,   37,   37,  199,   46,   23,   23,
1360       23,  959,   38,   38,   38,   38,   57,   57,  153,   57,
1361      153,    4,    4,    4,   13,   13,   13,   13,   13,   13,
1362       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1363       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1364       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1365       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1366       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1367       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1368
1369       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1370       13,   13,   13,   13,   13,   13,   13,   13,   18,   24,
1371       18,   24,  155,   30,  155,   30,   31,  202,   31,   31,
1372       18,   64,   24,   30,   18,   18,   18,   18,   32,   43,
1373       32,   32,   53,   48,   53,   48,  167,   61,   61,   53,
1374       61,  101,   43,   48,   73,   73,  202,   73,   81,  261,
1375       81,  261,   43,   81,   81,   81,   81,   43,   64,   24,
1376       24,   24,  170,   30,  958,   30,   31,   31,   31,  170,
1377      957,  101,   43,  111,  111,  268,  111,  268,   32,   32,
1378       32,   43,   53,   53,   53,  956,   43,  167,   64,   18,
1379
1380       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1381       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1382       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1383       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1384       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1385       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1386       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1387       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1388       25,   25,   25,   25,   33,   33,   39,   33,   39,   34,
1389       34,   33,   34,  147,   41,   42,   34,   49,   44,   49,
1390
1391       33,   41,   42,  175,  308,   34,  308,   49,  274,  274,
1392       50,   44,   50,  184,   41,   42,  122,  122,  122,  122,
1393       50,   44,  185,  147,   41,   42,   44,   33,  207,   41,
1394       42,  955,   34,  175,   33,   33,   39,   33,   39,   34,
1395       34,   44,   34,  184,   41,   42,  334,   49,  334,   49,
1396       44,  954,  185,   41,   42,   44,   33,  207,   41,   42,
1397       50,   34,   50,   33,  336,   39,  336,   39,   34,   35,
1398       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1399       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1400       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1401
1402       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1403       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1404       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1405       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1406       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1407       35,   35,   35,   40,  634,   40,   54,  189,   54,   69,
1408       69,  188,   69,   54,   80,   80,   69,   82,   82,  188,
1409       82,  189,  128,  128,   82,  278,  278,  131,  131,  953,
1410      138,  138,  359,   82,  187,  190,  194,  634,  195,   82,
1411      187,  188,  191,  201,  196,  345,   80,  192,  196,  188,
1412
1413      952,  189,  345,   40,  128,   40,   54,   54,   54,  131,
1414      897,  359,  138,  191,  187,  190,  194,  192,  195,  187,
1415      198,   82,  191,  201,  196,   80,  896,  192,  196,  203,
1416      198,  204,   40,  128,   40,   65,  243,  243,  131,  243,
1417       69,  138,  191,  250,  205,  197,  192,  361,   82,  197,
1418      198,  206,  251,  200,   65,  259,   65,  273,   65,  203,
1419      198,  204,  895,  200,   65,  894,  200,   65,   65,   65,
1420      893,   65,   65,   65,  205,  197,  361,   65,  892,  197,
1421      250,  206,  251,  200,   65,  259,   65,  273,   65,  211,
1422      211,  211,  211,  200,   65,  200,  891,   65,   65,   65,
1423
1424       65,   65,   65,  890,  247,  247,   65,  247,   65,  889,
1425      250,  254,  254,  888,  254,  255,  255,  887,  255,  256,
1426      256,  363,  256,  257,  257,  275,  257,  293,  254,  254,
1427      254,  254,  255,  255,  255,  255,  256,  256,  256,  256,
1428      257,  257,  257,  257,  264,  264,  304,  264,  276,  276,
1429      363,  264,  305,  886,  254,  275,  275,  293,  312,  312,
1430      256,  312,  332,  257,  885,  284,  284,  884,  284,  333,
1431      349,  350,  284,  355,  356,  358,  304,  883,  365,  366,
1432      276,  284,  305,  254,  367,  360,  368,  284,  371,  358,
1433      256,  369,  332,  257,  319,  319,  319,  319,  372,  333,
1434
1435      349,  350,  360,  355,  356,  358,  364,  365,  366,  276,
1436      364,  373,  381,  367,  374,  360,  368,  371,  358,  284,
1437      418,  369,  418,  882,  420,  264,  420,  422,  372,  422,
1438      881,  360,  391,  391,  391,  391,  364,  424,  880,  424,
1439      364,  373,  381,  374,  376,  378,  284,  321,  321,  321,
1440      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1441      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1442      321,  321,  370,  376,  378,  321,  370,  321,  321,  321,
1443      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1444      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1445
1446      321,  379,  370,  380,  383,  370,  382,  383,  384,  385,
1447      382,  879,  386,  380,  387,  382,  385,  878,  405,  427,
1448      427,  412,  413,  433,  433,  448,  414,  448,  639,  639,
1449      379,  416,  426,  380,  383,  877,  382,  383,  384,  385,
1450      382,  386,  380,  387,  531,  382,  385,  388,  405,  388,
1451      412,  413,  388,  388,  408,  408,  414,  408,  388,  388,
1452      428,  416,  426,  876,  388,  388,  875,  411,  411,  388,
1453      411,  408,  408,  408,  408,  441,  388,  388,  443,  388,
1454      429,  429,  388,  388,  411,  411,  411,  411,  388,  388,
1455      428,  428,  446,  388,  388,  431,  431,  447,  388,  438,
1456
1457      438,  438,  438,  464,  450,  441,  450,  465,  443,  469,
1458      470,  521,  429,  521,  871,  471,  429,  524,  870,  524,
1459      526,  526,  446,  526,  531,  818,  625,  447,  625,  431,
1460      431,  626,  626,  464,  626,  632,  632,  465,  632,  469,
1461      470,  429,  430,  430,  471,  430,  430,  430,  430,  430,
1462      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1463      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1464      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1465      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1466      430,  430,  430,  430,  430,  430,  817,  430,  430,  430,
1467
1468      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1469      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1470      430,  430,  430,  430,  430,  430,  432,  432,  432,  432,
1471      451,  452,  453,  457,  456,  432,  432,  432,  432,  432,
1472      432,  454,  459,  460,  472,  461,  451,  452,  473,  458,
1473      453,  474,  457,  461,  454,  816,  456,  475,  476,  477,
1474      432,  432,  459,  460,  478,  432,  432,  432,  432,  432,
1475      432,  458,  480,  472,  458,  482,  451,  452,  473,  481,
1476      453,  474,  457,  461,  454,  456,  486,  475,  476,  477,
1477      484,  487,  459,  460,  478,  815,  485,  488,  489,  814,
1478
1479      458,  491,  480,  458,  462,  482,  492,  493,  481,  462,
1480      462,  462,  462,  494,  495,  462,  486,  496,  497,  484,
1481      462,  487,  498,  499,  462,  485,  488,  462,  489,  462,
1482      500,  491,  462,  501,  502,  503,  492,  493,  505,  462,
1483      462,  462,  462,  494,  495,  462,  506,  496,  497,  504,
1484      462,  507,  498,  499,  462,  504,  462,  508,  462,  509,
1485      500,  462,  510,  501,  502,  503,  511,  513,  505,  512,
1486      514,  515,  516,  517,  519,  506,  518,  519,  519,  504,
1487      507,  520,  638,  638,  638,  504,  546,  508,  527,  509,
1488      528,  529,  510,  533,  543,  544,  511,  513,  512,  813,
1489
1490      514,  515,  516,  517,  519,  518,  519,  519,  631,  522,
1491      522,  520,  522,  525,  525,  546,  525,  719,  527,  719,
1492      528,  529,  812,  533,  543,  544,  522,  522,  522,  522,
1493      525,  525,  525,  525,  534,  534,  811,  534,  534,  534,
1494      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1495      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1496      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1497      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1498      534,  534,  534,  534,  534,  534,  534,  534,  631,  534,
1499      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1500
1501      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1502      534,  534,  534,  534,  534,  534,  534,  534,  535,  535,
1503      545,  548,  550,  810,  539,  539,  549,  552,  557,  551,
1504      554,  549,  552,  553,  809,  559,  558,  640,  640,  548,
1505      551,  548,  556,  554,  727,  727,  550,  556,  557,  558,
1506      545,  559,  535,  535,  536,  536,  536,  536,  539,  539,
1507      553,  549,  552,  536,  536,  536,  536,  536,  536,  548,
1508      551,  548,  555,  554,  562,  550,  560,  556,  557,  558,
1509      800,  559,  800,  563,  569,  561,  566,  562,  564,  553,
1510      555,  571,  560,  536,  536,  536,  536,  536,  536,  540,
1511
1512      540,  540,  540,  561,  565,  563,  566,  564,  540,  540,
1513      540,  540,  540,  540,  569,  567,  568,  562,  570,  572,
1514      555,  571,  560,  575,  568,  808,  565,  576,  577,  565,
1515      578,  579,  580,  561,  563,  567,  566,  564,  540,  540,
1516      540,  540,  540,  540,  582,  584,  581,  570,  572,  583,
1517      587,  806,  588,  575,  568,  565,  576,  577,  565,  578,
1518      589,  579,  580,  581,  590,  567,  594,  595,  599,  581,
1519      799,  597,  598,  601,  582,  584,  602,  603,  583,  604,
1520      587,  588,  605,  606,  796,  607,  608,  609,  611,  589,
1521      612,  613,  615,  581,  590,  594,  614,  595,  599,  581,
1522
1523      597,  598,  601,  616,  617,  619,  602,  603,  618,  604,
1524      620,  605,  621,  606,  607,  608,  620,  609,  611,  622,
1525      612,  613,  615,  627,  628,  614,  629,  636,  636,  641,
1526      651,  643,  616,  646,  617,  619,  647,  618,  644,  784,
1527      620,  669,  621,  650,  652,  620,  770,  660,  647,  622,
1528      651,  648,  627,  652,  628,  629,  650,  649,  646,  641,
1529      643,  636,  636,  637,  637,  637,  637,  653,  644,  648,
1530      669,  660,  637,  637,  637,  637,  637,  637,  647,  649,
1531      651,  654,  655,  652,  656,  653,  650,  646,  654,  655,
1532      657,  658,  659,  656,  728,  728,  665,  659,  663,  648,
1533
1534      660,  657,  637,  637,  637,  637,  637,  637,  649,  658,
1535      661,  658,  662,  664,  665,  653,  667,  662,  654,  655,
1536      668,  661,  670,  656,  666,  663,  664,  659,  671,  666,
1537      672,  657,  674,  668,  676,  679,  667,  761,  680,  658,
1538      681,  658,  683,  687,  665,  679,  685,  662,  688,  689,
1539      691,  661,  670,  692,  663,  693,  664,  671,  695,  666,
1540      672,  674,  696,  668,  676,  679,  667,  680,  697,  699,
1541      681,  700,  683,  687,  679,  685,  701,  702,  688,  689,
1542      691,  704,  692,  705,  707,  693,  706,  695,  709,  710,
1543      711,  696,  713,  714,  733,  715,  716,  697,  717,  699,
1544
1545      700,  720,  721,  722,  722,  701,  722,  702,  730,  736,
1546      704,  733,  734,  705,  707,  706,  737,  734,  709,  710,
1547      711,  735,  713,  714,  715,  736,  716,  739,  717,  740,
1548      738,  720,  721,  726,  726,  726,  735,  741,  743,  745,
1549      737,  733,  738,  744,  747,  742,  746,  734,  748,  739,
1550      729,  750,  749,  740,  742,  736,  744,  752,  746,  751,
1551      743,  741,  747,  725,  745,  749,  735,  753,  751,  737,
1552      748,  750,  738,  754,  753,  752,  755,  763,  739,  764,
1553      754,  765,  740,  756,  742,  755,  744,  763,  746,  743,
1554      741,  766,  747,  745,  756,  749,  767,  768,  751,  748,
1555
1556      769,  750,  771,  772,  753,  752,  773,  763,  774,  764,
1557      754,  765,  775,  776,  778,  755,  777,  763,  780,  724,
1558      782,  766,  786,  787,  756,  767,  768,  788,  791,  769,
1559      793,  797,  771,  772,  718,  798,  773,  802,  774,  802,
1560      804,  712,  775,  776,  778,  777,  790,  790,  780,  782,
1561      820,  790,  786,  787,  790,  819,  788,  790,  791,  708,
1562      793,  797,  790,  794,  794,  798,  823,  820,  794,  804,
1563      821,  794,  824,  822,  794,  821,  790,  790,  825,  819,
1564      826,  790,  823,  827,  790,  828,  831,  790,  822,  830,
1565      825,  790,  832,  794,  794,  833,  824,  820,  794,  831,
1566
1567      834,  794,  826,  835,  794,  821,  829,  827,  819,  828,
1568      838,  830,  823,  836,  841,  829,  694,  840,  822,  842,
1569      825,  843,  832,  844,  833,  824,  845,  847,  849,  831,
1570      834,  826,  835,  850,  852,  856,  827,  857,  828,  838,
1571      830,  858,  690,  836,  841,  829,  840,  860,  842,  865,
1572      852,  843,  844,  861,  862,  859,  845,  847,  849,  859,
1573      863,  864,  859,  850,  852,  856,  857,  866,  684,  868,
1574      869,  858,  859,  872,  867,  678,  860,  867,  865,  852,
1575      873,  898,  873,  861,  862,  859,  903,  867,  899,  859,
1576      863,  864,  859,  900,  901,  902,  905,  866,  868,  869,
1577
1578      906,  859,  872,  907,  867,  898,  908,  867,  910,  911,
1579      912,  642,  913,  914,  915,  903,  867,  916,  899,  917,
1580      919,  920,  921,  900,  901,  902,  905,  922,  635,  923,
1581      906,  924,  926,  907,  898,  927,  908,  910,  928,  911,
1582      912,  913,  930,  914,  915,  931,  932,  916,  917,  933,
1583      919,  920,  921,  934,  935,  937,  936,  922,  923,  938,
1584      924,  938,  926,  965,  940,  927,  940,  928,  966,  967,
1585      968,  969,  930,  936,  970,  931,  932,  971,  933,  972,
1586      973,  974,  934,  935,  937,  975,  936,  976,  978,  633,
1587      979,  980,  965,  981,  982,  983,  984,  985,  966,  967,
1588
1589      968,  969,  936,  987,  970,  989,  990,  971,  972,  973,
1590      991,  974,  992,  993,  975,  995,  999,  976,  978,  979,
1591      980,  996,  981,  998,  982,  983,  984,  985, 1015,  997,
1592     1013, 1014,  987,  997,  989,  990, 1016, 1017, 1019, 1020,
1593      991, 1022,  992,  993, 1023,  995,  999, 1024, 1025, 1026,
1594      996, 1027,  998, 1028, 1030, 1034, 1035, 1015,  997, 1036,
1595     1013, 1014,  997, 1039, 1040, 1016, 1017, 1041, 1019, 1020,
1596     1022, 1042, 1043, 1023, 1044, 1046, 1047, 1024, 1025, 1026,
1597     1048, 1027, 1049, 1028, 1030, 1034, 1035, 1050, 1053, 1036,
1598     1055, 1057, 1039, 1060, 1040, 1063, 1064, 1041, 1065, 1066,
1599
1600     1042, 1043, 1067, 1044, 1046, 1068, 1047, 1069, 1070, 1072,
1601     1048, 1073, 1049, 1074, 1075,  623, 1077, 1050, 1053, 1055,
1602     1081, 1057, 1082, 1060, 1083, 1063, 1064, 1065, 1084, 1066,
1603     1086, 1087, 1067, 1088, 1089, 1068, 1090, 1069, 1070, 1072,
1604     1073, 1093, 1074, 1095, 1075, 1077, 1096, 1097, 1098, 1100,
1605     1081, 1103, 1082, 1083, 1105,  596, 1106, 1107, 1084, 1109,
1606     1086, 1087, 1110, 1088, 1089, 1090, 1157, 1157,  593, 1173,
1607     1093, 1173, 1206, 1095, 1206, 1096, 1097, 1098,  547, 1100,
1608      538, 1103, 1166, 1166, 1105, 1106, 1107, 1166,  490, 1109,
1609      467,  466, 1110, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
1610
1611     1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
1612     1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
1613     1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
1614     1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116,
1615     1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
1616     1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117,
1617     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
1618     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118,
1619     1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
1620     1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119,
1621
1622     1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
1623     1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,
1624     1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1625     1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1626     1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
1627     1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
1628     1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
1629     1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
1630     1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
1631     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
1632
1633     1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
1634     1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
1635     1124, 1124, 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125,
1636     1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
1637     1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126,
1638     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
1639     1126, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127,
1640     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
1641     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
1642     1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
1643
1644     1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129,
1645     1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
1646     1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130,
1647     1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
1648     1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
1649     1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
1650     1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
1651     1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
1652     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
1653     1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
1654
1655     1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
1656     1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
1657     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
1658     1134, 1134, 1134, 1134, 1135,  455, 1135,  437, 1135, 1135,
1659     1213, 1213, 1213, 1135, 1136, 1136, 1136, 1136, 1136, 1136,
1660     1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
1661     1136, 1136, 1136, 1136, 1137,  410, 1137,  389, 1137, 1137,
1662     1167, 1167,  362, 1137, 1138, 1167, 1138, 1138, 1138, 1138,
1663     1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
1664     1138, 1138, 1138, 1138, 1138, 1139,  353, 1139, 1139, 1139,
1665
1666     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
1667     1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140,  351, 1140,
1668      346, 1140, 1140,  344,  343,  328, 1140, 1141,  315, 1141,
1669     1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
1670     1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142,
1671     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
1672     1142, 1142, 1142,  314, 1142,  313, 1142, 1142, 1142, 1143,
1673      310, 1143, 1143,  296, 1143, 1143, 1143, 1143, 1143, 1143,
1674     1143, 1143, 1143, 1143,  289, 1143,  288, 1143, 1143, 1143,
1675     1144,  287,  286, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
1676
1677     1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
1678     1144, 1145,  283, 1145,  281, 1145, 1145,  280,  271,  270,
1679     1145, 1146,  267, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
1680     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
1681     1146, 1146, 1147,  266, 1147, 1147, 1147, 1147, 1147, 1147,
1682     1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,  249,
1683     1147, 1147, 1147, 1148,  245, 1148,  241, 1148,  239, 1148,
1684     1148, 1148, 1148,  238, 1148, 1148,  236,  235,  234, 1148,
1685     1149,  230, 1149, 1149, 1149,  216, 1149, 1149, 1149, 1149,
1686     1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
1687
1688     1149, 1150,  215, 1150,  214, 1150, 1150,  210,  183,  182,
1689     1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
1690     1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
1691     1151, 1151, 1152,  180, 1152, 1152, 1152, 1152, 1152,  178,
1692     1152, 1152, 1152, 1152, 1152, 1152, 1152,  177, 1152,  174,
1693     1152, 1152, 1152, 1153,  173, 1153,  172, 1153, 1153, 1153,
1694     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,  168,  166,
1695      164, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154,
1696     1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
1697     1154, 1154, 1154, 1154, 1154, 1155,  161, 1155, 1155, 1155,
1698
1699     1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
1700     1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156,  160,  159,
1701      158, 1156, 1156, 1158,  150, 1158, 1158, 1158, 1158, 1158,
1702     1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1703     1158, 1158, 1158, 1158, 1159,  149,  145, 1159, 1159, 1159,
1704     1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,  144,
1705     1159,  142, 1159, 1160,  137, 1160, 1160, 1160, 1160,  135,
1706     1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
1707     1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161,
1708     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,  130,
1709
1710     1161,  126, 1161, 1161, 1161, 1162,  120, 1162, 1162, 1162,
1711      115, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
1712      113,  112,  109, 1162, 1162, 1162, 1163,  107, 1163,  105,
1713     1163, 1163,  104,  103,   99, 1163, 1164,   96, 1164, 1164,
1714     1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
1715     1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165,   95, 1165,
1716     1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
1717     1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1168, 1168,
1718     1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
1719     1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169,
1720
1721       92, 1169,   90, 1169, 1169,   86,   84,   78, 1169, 1170,
1722     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
1723     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
1724     1171,   77, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
1725     1171, 1171, 1171, 1171, 1171, 1171, 1171,   74, 1171, 1171,
1726     1171, 1172,   71, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
1727     1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
1728     1172, 1172, 1174,   66, 1174,   63, 1174, 1174,   59,   55,
1729       16, 1174,   15, 1174, 1175,    0, 1175, 1175, 1175, 1175,
1730     1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
1731
1732     1175, 1175, 1175, 1175, 1175, 1176,    0, 1176, 1176, 1176,
1733     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
1734     1176, 1176, 1176, 1176, 1176, 1176, 1177,    0, 1177, 1177,
1735     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
1736     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,    0, 1178,
1737     1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
1738     1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179,
1739     1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
1740     1179, 1179, 1179,    0, 1179,    0, 1179, 1179, 1179, 1180,
1741        0, 1180, 1180,    0, 1180, 1180, 1180, 1180, 1180, 1180,
1742
1743     1180, 1180, 1180, 1180,    0, 1180,    0, 1180, 1180, 1180,
1744     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1745     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1746     1181, 1182,    0,    0, 1182, 1182, 1182, 1182, 1182, 1182,
1747     1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
1748     1182, 1182, 1183,    0, 1183,    0, 1183, 1183,    0,    0,
1749        0, 1183, 1184,    0, 1184,    0, 1184,    0, 1184, 1184,
1750     1184, 1184,    0, 1184, 1184,    0,    0,    0, 1184, 1185,
1751        0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
1752     1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
1753
1754     1186,    0, 1186,    0, 1186, 1186,    0,    0,    0, 1186,
1755     1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
1756     1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
1757     1187, 1188,    0, 1188, 1188, 1188, 1188, 1188,    0, 1188,
1758     1188, 1188, 1188, 1188, 1188, 1188,    0, 1188,    0, 1188,
1759     1188, 1188, 1189,    0, 1189,    0, 1189, 1189, 1189, 1189,
1760     1189, 1189, 1189, 1189, 1189, 1189, 1189,    0,    0,    0,
1761     1189, 1189, 1189, 1190,    0, 1190, 1190, 1190, 1190, 1190,
1762     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
1763     1190, 1190, 1190, 1190, 1191,    0, 1191, 1191, 1191, 1191,
1764
1765     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
1766     1191, 1191, 1191, 1191, 1191, 1192, 1192,    0,    0,    0,
1767     1192, 1192, 1193,    0, 1193, 1193, 1193, 1193, 1193, 1193,
1768     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
1769     1193, 1193, 1193, 1194,    0,    0, 1194, 1194, 1194, 1194,
1770     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,    0, 1194,
1771        0, 1194, 1195,    0, 1195, 1195, 1195, 1195,    0, 1195,
1772     1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
1773     1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
1774     1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,    0, 1196,
1775
1776        0, 1196, 1196, 1196, 1197,    0, 1197, 1197, 1197,    0,
1777     1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,    0,
1778        0,    0, 1197, 1197, 1197, 1198,    0, 1198, 1198, 1198,
1779     1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
1780     1198, 1198, 1198, 1198, 1198, 1198, 1199,    0, 1199, 1199,
1781     1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
1782     1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200,
1783     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
1784     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,    0,
1785     1201,    0, 1201, 1201,    0,    0,    0, 1201, 1202,    0,
1786
1787     1202,    0, 1202, 1202,    0,    0,    0, 1202, 1203, 1203,
1788     1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
1789     1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1204,
1790     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
1791     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
1792     1205,    0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
1793     1205, 1205, 1205, 1205, 1205, 1205, 1205,    0, 1205, 1205,
1794     1205, 1207,    0, 1207,    0, 1207, 1207,    0,    0,    0,
1795     1207,    0, 1207, 1208,    0, 1208, 1208, 1208, 1208, 1208,
1796     1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
1797
1798     1208, 1208, 1208, 1208, 1209,    0, 1209, 1209, 1209, 1209,
1799     1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
1800     1209, 1209, 1209, 1209, 1209, 1210,    0, 1210, 1210, 1210,
1801     1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
1802     1210, 1210, 1210, 1210, 1210, 1210, 1211,    0, 1211, 1211,
1803        0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
1804     1211,    0, 1211,    0, 1211, 1211, 1211, 1212, 1212, 1212,
1805     1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
1806     1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1214,    0,
1807     1214,    0, 1214, 1214,    0,    0,    0, 1214, 1215,    0,
1808
1809     1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
1810     1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216,
1811        0, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
1812     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
1813     1217, 1217,    0,    0,    0, 1217, 1217, 1218,    0, 1218,
1814     1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
1815     1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1219,
1816     1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
1817     1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1220,
1818     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
1819
1820     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
1821     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1822     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1823     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1824     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1825     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1826     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1827     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1828     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1829     1113, 1113, 1113, 1113, 1113
1830
1831    } ;
1832
1833static yy_state_type yy_last_accepting_state;
1834static char *yy_last_accepting_cpos;
1835
1836extern int yy_flex_debug;
1837int yy_flex_debug = 0;
1838
1839/* The intent behind this definition is that it'll catch
1840 * any uses of REJECT which flex missed.
1841 */
1842#define REJECT reject_used_but_not_detected
1843#define yymore() yymore_used_but_not_detected
1844#define YY_MORE_ADJ 0
1845#define YY_RESTORE_YY_MORE_OFFSET
1846char *yytext;
1847#line 1 "scan.l"
1848/* scan.l - scanner for flex input -*-C-*- */
1849#line 4 "scan.l"
1850/*  Copyright (c) 1990 The Regents of the University of California. */
1851/*  All rights reserved. */
1852
1853/*  This code is derived from software contributed to Berkeley by */
1854/*  Vern Paxson. */
1855
1856/*  The United States Government has rights in this work pursuant */
1857/*  to contract no. DE-AC03-76SF00098 between the United States */
1858/*  Department of Energy and the University of California. */
1859
1860/*  This file is part of flex. */
1861
1862/*  Redistribution and use in source and binary forms, with or without */
1863/*  modification, are permitted provided that the following conditions */
1864/*  are met: */
1865
1866/*  1. Redistributions of source code must retain the above copyright */
1867/*     notice, this list of conditions and the following disclaimer. */
1868/*  2. Redistributions in binary form must reproduce the above copyright */
1869/*     notice, this list of conditions and the following disclaimer in the */
1870/*     documentation and/or other materials provided with the distribution. */
1871
1872/*  Neither the name of the University nor the names of its contributors */
1873/*  may be used to endorse or promote products derived from this software */
1874/*  without specific prior written permission. */
1875
1876/*  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
1877/*  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
1878/*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
1879/*  PURPOSE. */
1880
1881#include "flexdef.h"
1882#include "parse.h"
1883extern bool tablesverify, tablesext;
1884extern int trlcontxt; /* Set in  parse.y for each rule. */
1885extern const char *escaped_qstart, *escaped_qend;
1886extern int yylval;
1887
1888#define M4QSTART "[""["
1889#define M4QEND "]""]"
1890
1891#define ESCAPED_QSTART "[" M4QEND M4QSTART "[" M4QEND M4QSTART
1892#define ESCAPED_QEND M4QEND "]" M4QSTART M4QEND "]" M4QSTART
1893
1894#define ACTION_ECHO add_action( yytext )
1895#define ACTION_IFDEF(def, should_define) \
1896	{ \
1897	if ( should_define ) \
1898		action_define( def, 1 ); \
1899	}
1900
1901#define ACTION_ECHO_QSTART add_action (ESCAPED_QSTART)
1902#define ACTION_ECHO_QEND   add_action (ESCAPED_QEND)
1903
1904#define ACTION_M4_IFDEF(def, should_define) \
1905    do{ \
1906        if ( should_define ) \
1907            buf_m4_define( &m4defs_buf, def, NULL);\
1908        else \
1909            buf_m4_undefine( &m4defs_buf, def);\
1910    } while(0)
1911
1912#define MARK_END_OF_PROLOG mark_prolog();
1913
1914#define YY_DECL \
1915	int flexscan(void)
1916
1917#define RETURNCHAR \
1918	yylval = (unsigned char) yytext[0]; \
1919	return CHAR;
1920
1921#define RETURNNAME \
1922	if(yyleng < MAXLINE) \
1923         { \
1924	strncpy( nmstr, yytext, sizeof(nmstr) ); \
1925	return NAME; \
1926	 } \
1927	else \
1928	 do { \
1929	   synerr(_("Input line too long\n")); \
1930	   FLEX_EXIT(EXIT_FAILURE);  \
1931	 } while (0)
1932
1933#define PUT_BACK_STRING(str, start) \
1934	{ size_t i = strlen( str );	\
1935	  while ( i > start )		\
1936	    unput((str)[--i]);		\
1937	}
1938
1939#define CHECK_REJECT(str) \
1940	if ( all_upper( str ) ) \
1941		reject = true;
1942
1943#define CHECK_YYMORE(str) \
1944	if ( all_lower( str ) ) \
1945		yymore_used = true;
1946
1947#define YY_USER_INIT \
1948	if ( getenv("POSIXLY_CORRECT") ) \
1949		posix_compat = true;
1950
1951#define START_CODEBLOCK(x) do { \
1952    /* Emit the needed line directive... */\
1953    if (indented_code == false) { \
1954        linenum++; \
1955        line_directive_out(NULL, 1); \
1956    } \
1957    add_action(M4QSTART); \
1958    yy_push_state(CODEBLOCK); \
1959    if ((indented_code = x)) ACTION_ECHO; \
1960} while(0)
1961
1962#define END_CODEBLOCK do { \
1963    yy_pop_state();\
1964    add_action(M4QEND); \
1965    if (!indented_code) line_directive_out(NULL, 0);\
1966} while (0)
1967
1968#line 1968 "<stdout>"
1969
1970#line 1970 "<stdout>"
1971
1972#define INITIAL 0
1973#define SECT2 1
1974#define SECT2PROLOG 2
1975#define SECT3 3
1976#define CODEBLOCK 4
1977#define PICKUPDEF 5
1978#define SC 6
1979#define CARETISBOL 7
1980#define NUM 8
1981#define QUOTE 9
1982#define FIRSTCCL 10
1983#define CCL 11
1984#define ACTION 12
1985#define RECOVER 13
1986#define COMMENT 14
1987#define ACTION_STRING 15
1988#define PERCENT_BRACE_ACTION 16
1989#define OPTION 17
1990#define LINEDIR 18
1991#define CODEBLOCK_MATCH_BRACE 19
1992#define GROUP_WITH_PARAMS 20
1993#define GROUP_MINUS_PARAMS 21
1994#define EXTENDED_COMMENT 22
1995#define COMMENT_DISCARD 23
1996#define CODE_COMMENT 24
1997#define SECT3_NOESCAPE 25
1998#define CHARACTER_CONSTANT 26
1999
2000#ifndef YY_NO_UNISTD_H
2001/* Special case for "unistd.h", since it is non-ANSI. We include it way
2002 * down here because we want the user's section 1 to have been scanned first.
2003 * The user has a chance to override it with an option.
2004 */
2005#include <unistd.h>
2006#endif
2007
2008#ifndef YY_EXTRA_TYPE
2009#define YY_EXTRA_TYPE void *
2010#endif
2011
2012static int yy_init_globals ( void );
2013
2014/* Accessor methods to globals.
2015   These are made visible to non-reentrant scanners for convenience. */
2016
2017int yylex_destroy ( void );
2018
2019int yyget_debug ( void );
2020
2021void yyset_debug ( int debug_flag  );
2022
2023YY_EXTRA_TYPE yyget_extra ( void );
2024
2025void yyset_extra ( YY_EXTRA_TYPE user_defined  );
2026
2027FILE *yyget_in ( void );
2028
2029void yyset_in  ( FILE * _in_str  );
2030
2031FILE *yyget_out ( void );
2032
2033void yyset_out  ( FILE * _out_str  );
2034
2035			int yyget_leng ( void );
2036
2037char *yyget_text ( void );
2038
2039int yyget_lineno ( void );
2040
2041void yyset_lineno ( int _line_number  );
2042
2043/* Macros after this point can all be overridden by user definitions in
2044 * section 1.
2045 */
2046
2047#ifndef YY_SKIP_YYWRAP
2048#ifdef __cplusplus
2049extern "C" int yywrap ( void );
2050#else
2051extern int yywrap ( void );
2052#endif
2053#endif
2054
2055#ifndef YY_NO_UNPUT
2056
2057    static void yyunput ( int c, char *buf_ptr  );
2058
2059#endif
2060
2061#ifndef yytext_ptr
2062static void yy_flex_strncpy ( char *, const char *, int );
2063#endif
2064
2065#ifdef YY_NEED_STRLEN
2066static int yy_flex_strlen ( const char * );
2067#endif
2068
2069#ifndef YY_NO_INPUT
2070#ifdef __cplusplus
2071static int yyinput ( void );
2072#else
2073static int input ( void );
2074#endif
2075
2076#endif
2077
2078        static int yy_start_stack_ptr = 0;
2079        static int yy_start_stack_depth = 0;
2080        static int *yy_start_stack = NULL;
2081
2082    static void yy_push_state ( int _new_state );
2083
2084    static void yy_pop_state ( void );
2085
2086/* Amount of stuff to slurp up with each read. */
2087#ifndef YY_READ_BUF_SIZE
2088#ifdef __ia64__
2089/* On IA-64, the buffer size is 16k, not 8k */
2090#define YY_READ_BUF_SIZE 16384
2091#else
2092#define YY_READ_BUF_SIZE 8192
2093#endif /* __ia64__ */
2094#endif
2095
2096/* Copy whatever the last rule matched to the standard output. */
2097#ifndef ECHO
2098/* This used to be an fputs(), but since the string might contain NUL's,
2099 * we now use fwrite().
2100 */
2101#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2102#endif
2103
2104/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2105 * is returned in "result".
2106 */
2107#ifndef YY_INPUT
2108#define YY_INPUT(buf,result,max_size) \
2109	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2110		{ \
2111		int c = '*'; \
2112		int n; \
2113		for ( n = 0; n < max_size && \
2114			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2115			buf[n] = (char) c; \
2116		if ( c == '\n' ) \
2117			buf[n++] = (char) c; \
2118		if ( c == EOF && ferror( yyin ) ) \
2119			YY_FATAL_ERROR( "input in flex scanner failed" ); \
2120		result = n; \
2121		} \
2122	else \
2123		{ \
2124		errno=0; \
2125		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2126			{ \
2127			if( errno != EINTR) \
2128				{ \
2129				YY_FATAL_ERROR( "input in flex scanner failed" ); \
2130				break; \
2131				} \
2132			errno=0; \
2133			clearerr(yyin); \
2134			} \
2135		}\
2136\
2137
2138#endif
2139
2140/* No semi-colon after return; correct usage is to write "yyterminate();" -
2141 * we don't want an extra ';' after the "return" because that will cause
2142 * some compilers to complain about unreachable statements.
2143 */
2144#ifndef yyterminate
2145#define yyterminate() return YY_NULL
2146#endif
2147
2148/* Number of entries by which start-condition stack grows. */
2149#ifndef YY_START_STACK_INCR
2150#define YY_START_STACK_INCR 25
2151#endif
2152
2153/* Report a fatal error. */
2154#ifndef YY_FATAL_ERROR
2155#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2156#endif
2157
2158/* end tables serialization structures and prototypes */
2159
2160/* Default declaration of generated scanner - a define so the user can
2161 * easily add parameters.
2162 */
2163#ifndef YY_DECL
2164#define YY_DECL_IS_OURS 1
2165
2166extern int yylex (void);
2167
2168#define YY_DECL int yylex (void)
2169#endif /* !YY_DECL */
2170
2171/* Code executed at the beginning of each rule, after yytext and yyleng
2172 * have been set up.
2173 */
2174#ifndef YY_USER_ACTION
2175#define YY_USER_ACTION
2176#endif
2177
2178/* Code executed at the end of each rule. */
2179#ifndef YY_BREAK
2180#define YY_BREAK /*LINTED*/break;
2181#endif
2182
2183#define YY_RULE_SETUP \
2184	if ( yyleng > 0 ) \
2185		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2186				(yytext[yyleng - 1] == '\n'); \
2187	YY_USER_ACTION
2188
2189/** The main scanner function which does all the work.
2190 */
2191YY_DECL
2192{
2193	yy_state_type yy_current_state;
2194	char *yy_cp, *yy_bp;
2195	int yy_act;
2196
2197	if ( !(yy_init) )
2198		{
2199		(yy_init) = 1;
2200
2201#ifdef YY_USER_INIT
2202		YY_USER_INIT;
2203#endif
2204
2205		if ( ! (yy_start) )
2206			(yy_start) = 1;	/* first start state */
2207
2208		if ( ! yyin )
2209			yyin = stdin;
2210
2211		if ( ! yyout )
2212			yyout = stdout;
2213
2214		if ( ! YY_CURRENT_BUFFER ) {
2215			yyensure_buffer_stack ();
2216			YY_CURRENT_BUFFER_LVALUE =
2217				yy_create_buffer( yyin, YY_BUF_SIZE );
2218		}
2219
2220		yy_load_buffer_state(  );
2221		}
2222
2223	{
2224#line 159 "scan.l"
2225
2226#line 161 "scan.l"
2227	static int bracelevel, didadef, indented_code;
2228	static int doing_rule_action = false;
2229	static int option_sense;
2230
2231	int doing_codeblock = false;
2232	int brace_depth=0, brace_start_line=0;
2233	char nmdef[MAXLINE];
2234
2235
2236#line 2236 "<stdout>"
2237
2238	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
2239		{
2240		yy_cp = (yy_c_buf_p);
2241
2242		/* Support of yytext. */
2243		*yy_cp = (yy_hold_char);
2244
2245		/* yy_bp points to the position in yy_ch_buf of the start of
2246		 * the current run.
2247		 */
2248		yy_bp = yy_cp;
2249
2250		yy_current_state = (yy_start);
2251		yy_current_state += YY_AT_BOL();
2252yy_match:
2253		do
2254			{
2255			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2256			if ( yy_accept[yy_current_state] )
2257				{
2258				(yy_last_accepting_state) = yy_current_state;
2259				(yy_last_accepting_cpos) = yy_cp;
2260				}
2261			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2262				{
2263				yy_current_state = (int) yy_def[yy_current_state];
2264				if ( yy_current_state >= 1114 )
2265					yy_c = yy_meta[yy_c];
2266				}
2267			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2268			++yy_cp;
2269			}
2270		while ( yy_base[yy_current_state] != 4511 );
2271
2272yy_find_action:
2273		yy_act = yy_accept[yy_current_state];
2274		if ( yy_act == 0 )
2275			{ /* have to back up */
2276			yy_cp = (yy_last_accepting_cpos);
2277			yy_current_state = (yy_last_accepting_state);
2278			yy_act = yy_accept[yy_current_state];
2279			}
2280
2281		YY_DO_BEFORE_ACTION;
2282
2283do_action:	/* This label is used only to access EOF actions. */
2284
2285		switch ( yy_act )
2286	{ /* beginning of action switch */
2287			case 0: /* must back up */
2288			/* undo the effects of YY_DO_BEFORE_ACTION */
2289			*yy_cp = (yy_hold_char);
2290			yy_cp = (yy_last_accepting_cpos);
2291			yy_current_state = (yy_last_accepting_state);
2292			goto yy_find_action;
2293
2294case 1:
2295YY_RULE_SETUP
2296#line 171 "scan.l"
2297START_CODEBLOCK(true);
2298	YY_BREAK
2299case 2:
2300YY_RULE_SETUP
2301#line 172 "scan.l"
2302add_action("/*[""["); yy_push_state( COMMENT );
2303	YY_BREAK
2304case 3:
2305YY_RULE_SETUP
2306#line 173 "scan.l"
2307yy_push_state( LINEDIR );
2308	YY_BREAK
2309case 4:
2310YY_RULE_SETUP
2311#line 174 "scan.l"
2312return SCDECL;
2313	YY_BREAK
2314case 5:
2315YY_RULE_SETUP
2316#line 175 "scan.l"
2317return XSCDECL;
2318	YY_BREAK
2319case 6:
2320/* rule 6 can match eol */
2321YY_RULE_SETUP
2322#line 176 "scan.l"
2323START_CODEBLOCK(false);
2324	YY_BREAK
2325case 7:
2326/* rule 7 can match eol */
2327YY_RULE_SETUP
2328#line 177 "scan.l"
2329{
2330                brace_start_line = linenum;
2331                ++linenum;
2332                buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum);
2333                brace_depth = 1;
2334                yy_push_state(CODEBLOCK_MATCH_BRACE);
2335            }
2336	YY_BREAK
2337case 8:
2338YY_RULE_SETUP
2339#line 185 "scan.l"
2340synerr( _("malformed '%top' directive") );
2341	YY_BREAK
2342case 9:
2343YY_RULE_SETUP
2344#line 187 "scan.l"
2345/* discard */
2346	YY_BREAK
2347case 10:
2348YY_RULE_SETUP
2349#line 189 "scan.l"
2350{
2351			sectnum = 2;
2352			bracelevel = 0;
2353			mark_defs1();
2354			line_directive_out(NULL, 1);
2355			BEGIN(SECT2PROLOG);
2356			return SECTEND;
2357			}
2358	YY_BREAK
2359case 11:
2360/* rule 11 can match eol */
2361YY_RULE_SETUP
2362#line 198 "scan.l"
2363yytext_is_array = false; ++linenum;
2364	YY_BREAK
2365case 12:
2366/* rule 12 can match eol */
2367YY_RULE_SETUP
2368#line 199 "scan.l"
2369yytext_is_array = true; ++linenum;
2370	YY_BREAK
2371case 13:
2372YY_RULE_SETUP
2373#line 201 "scan.l"
2374BEGIN(OPTION); return TOK_OPTION;
2375	YY_BREAK
2376case 14:
2377/* rule 14 can match eol */
2378YY_RULE_SETUP
2379#line 203 "scan.l"
2380++linenum; /* ignore */
2381	YY_BREAK
2382case 15:
2383/* rule 15 can match eol */
2384YY_RULE_SETUP
2385#line 204 "scan.l"
2386++linenum;	/* ignore */
2387	YY_BREAK
2388/* xgettext: no-c-format */
2389case 16:
2390/* rule 16 can match eol */
2391YY_RULE_SETUP
2392#line 207 "scan.l"
2393synerr( _( "unrecognized '%' directive" ) );
2394	YY_BREAK
2395case 17:
2396YY_RULE_SETUP
2397#line 209 "scan.l"
2398{
2399			if(yyleng < MAXLINE)
2400        		 {
2401			strncpy( nmstr, yytext, sizeof(nmstr) );
2402			 }
2403			else
2404			 {
2405			   synerr( _("Definition name too long\n"));
2406			   FLEX_EXIT(EXIT_FAILURE);
2407			 }
2408
2409			didadef = false;
2410			BEGIN(PICKUPDEF);
2411			}
2412	YY_BREAK
2413case 18:
2414YY_RULE_SETUP
2415#line 224 "scan.l"
2416RETURNNAME;
2417	YY_BREAK
2418case 19:
2419/* rule 19 can match eol */
2420YY_RULE_SETUP
2421#line 225 "scan.l"
2422++linenum; /* allows blank lines in section 1 */
2423	YY_BREAK
2424case 20:
2425/* rule 20 can match eol */
2426YY_RULE_SETUP
2427#line 226 "scan.l"
2428ACTION_ECHO; ++linenum; /* maybe end of comment line */
2429	YY_BREAK
2430
2431/* */
2432case 21:
2433YY_RULE_SETUP
2434#line 231 "scan.l"
2435ACTION_ECHO;
2436	YY_BREAK
2437case 22:
2438YY_RULE_SETUP
2439#line 232 "scan.l"
2440ACTION_ECHO;
2441	YY_BREAK
2442case 23:
2443/* rule 23 can match eol */
2444YY_RULE_SETUP
2445#line 234 "scan.l"
2446++linenum; ACTION_ECHO;
2447	YY_BREAK
2448
2449
2450case 24:
2451YY_RULE_SETUP
2452#line 237 "scan.l"
2453add_action("*/]""]"); yy_pop_state();
2454	YY_BREAK
2455
2456
2457case 25:
2458YY_RULE_SETUP
2459#line 240 "scan.l"
2460ACTION_ECHO; yy_pop_state();
2461	YY_BREAK
2462
2463
2464/* This is the same as COMMENT, but is discarded rather than output. */
2465case 26:
2466YY_RULE_SETUP
2467#line 245 "scan.l"
2468yy_pop_state();
2469	YY_BREAK
2470case 27:
2471YY_RULE_SETUP
2472#line 246 "scan.l"
2473;
2474	YY_BREAK
2475case 28:
2476YY_RULE_SETUP
2477#line 247 "scan.l"
2478;
2479	YY_BREAK
2480case 29:
2481/* rule 29 can match eol */
2482YY_RULE_SETUP
2483#line 248 "scan.l"
2484++linenum;
2485	YY_BREAK
2486
2487
2488case 30:
2489YY_RULE_SETUP
2490#line 252 "scan.l"
2491yy_pop_state();
2492	YY_BREAK
2493case 31:
2494YY_RULE_SETUP
2495#line 253 "scan.l"
2496;
2497	YY_BREAK
2498case 32:
2499/* rule 32 can match eol */
2500YY_RULE_SETUP
2501#line 254 "scan.l"
2502++linenum;
2503	YY_BREAK
2504
2505
2506case 33:
2507/* rule 33 can match eol */
2508YY_RULE_SETUP
2509#line 258 "scan.l"
2510yy_pop_state();
2511	YY_BREAK
2512case 34:
2513YY_RULE_SETUP
2514#line 259 "scan.l"
2515linenum = myctoi( yytext );
2516	YY_BREAK
2517case 35:
2518YY_RULE_SETUP
2519#line 261 "scan.l"
2520{
2521			free(infilename);
2522			infilename = xstrdup(yytext + 1);
2523			infilename[strlen( infilename ) - 1] = '\0';
2524			}
2525	YY_BREAK
2526case 36:
2527YY_RULE_SETUP
2528#line 266 "scan.l"
2529/* ignore spurious characters */
2530	YY_BREAK
2531
2532
2533case 37:
2534YY_RULE_SETUP
2535#line 269 "scan.l"
2536ACTION_ECHO_QSTART;
2537	YY_BREAK
2538case 38:
2539YY_RULE_SETUP
2540#line 270 "scan.l"
2541ACTION_ECHO_QEND;
2542	YY_BREAK
2543
2544
2545case 39:
2546/* rule 39 can match eol */
2547YY_RULE_SETUP
2548#line 274 "scan.l"
2549++linenum; END_CODEBLOCK;
2550	YY_BREAK
2551case 40:
2552YY_RULE_SETUP
2553#line 275 "scan.l"
2554ACTION_ECHO;
2555	YY_BREAK
2556case 41:
2557YY_RULE_SETUP
2558#line 276 "scan.l"
2559ACTION_ECHO;
2560	YY_BREAK
2561case 42:
2562/* rule 42 can match eol */
2563YY_RULE_SETUP
2564#line 277 "scan.l"
2565{
2566			++linenum;
2567			ACTION_ECHO;
2568			if ( indented_code ) END_CODEBLOCK;
2569			}
2570	YY_BREAK
2571
2572
2573case 43:
2574YY_RULE_SETUP
2575#line 285 "scan.l"
2576{
2577                if( --brace_depth == 0){
2578                    /* TODO: Matched. */
2579                    yy_pop_state();
2580                }else
2581                    buf_strnappend(&top_buf, yytext, yyleng);
2582            }
2583	YY_BREAK
2584case 44:
2585YY_RULE_SETUP
2586#line 293 "scan.l"
2587{
2588                brace_depth++;
2589                buf_strnappend(&top_buf, yytext, yyleng);
2590            }
2591	YY_BREAK
2592case 45:
2593/* rule 45 can match eol */
2594YY_RULE_SETUP
2595#line 298 "scan.l"
2596{
2597                ++linenum;
2598                buf_strnappend(&top_buf, yytext, yyleng);
2599            }
2600	YY_BREAK
2601case 46:
2602YY_RULE_SETUP
2603#line 303 "scan.l"
2604buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart));
2605	YY_BREAK
2606case 47:
2607YY_RULE_SETUP
2608#line 304 "scan.l"
2609buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend));
2610	YY_BREAK
2611case 48:
2612YY_RULE_SETUP
2613#line 305 "scan.l"
2614{
2615       buf_strnappend(&top_buf, yytext, yyleng);
2616    }
2617	YY_BREAK
2618case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE):
2619#line 309 "scan.l"
2620{
2621                linenum = brace_start_line;
2622                synerr(_("Unmatched '{'"));
2623                yyterminate();
2624                }
2625	YY_BREAK
2626
2627
2628case 49:
2629YY_RULE_SETUP
2630#line 318 "scan.l"
2631/* separates name and definition */
2632	YY_BREAK
2633case 50:
2634YY_RULE_SETUP
2635#line 320 "scan.l"
2636{
2637 		        if(yyleng < MAXLINE)
2638 		         {
2639			strncpy( nmdef, yytext, sizeof(nmdef) );
2640 		         }
2641 		        else
2642 		         {
2643 		           format_synerr( _("Definition value for {%s} too long\n"), nmstr);
2644 		           FLEX_EXIT(EXIT_FAILURE);
2645			 }
2646			/* Skip trailing whitespace. */
2647			{
2648			    size_t i = strlen( nmdef );
2649			    while (i > 0 && (nmdef[i-1] == ' ' || nmdef[i-1] == '\t'))
2650			       --i;
2651			    nmdef[i] = '\0';
2652			}
2653
2654			ndinstal( nmstr, nmdef );
2655			didadef = true;
2656			}
2657	YY_BREAK
2658case 51:
2659/* rule 51 can match eol */
2660YY_RULE_SETUP
2661#line 342 "scan.l"
2662{
2663			if ( ! didadef )
2664				synerr( _( "incomplete name definition" ) );
2665			BEGIN(INITIAL);
2666			++linenum;
2667			}
2668	YY_BREAK
2669
2670
2671case 52:
2672/* rule 52 can match eol */
2673YY_RULE_SETUP
2674#line 352 "scan.l"
2675++linenum; BEGIN(INITIAL);
2676	YY_BREAK
2677case 53:
2678YY_RULE_SETUP
2679#line 353 "scan.l"
2680option_sense = true;
2681	YY_BREAK
2682case 54:
2683YY_RULE_SETUP
2684#line 355 "scan.l"
2685return '=';
2686	YY_BREAK
2687case 55:
2688YY_RULE_SETUP
2689#line 357 "scan.l"
2690option_sense = ! option_sense;
2691	YY_BREAK
2692case 56:
2693YY_RULE_SETUP
2694#line 359 "scan.l"
2695csize = option_sense ? 128 : 256;
2696	YY_BREAK
2697case 57:
2698YY_RULE_SETUP
2699#line 360 "scan.l"
2700csize = option_sense ? 256 : 128;
2701	YY_BREAK
2702case 58:
2703YY_RULE_SETUP
2704#line 362 "scan.l"
2705long_align = option_sense;
2706	YY_BREAK
2707case 59:
2708YY_RULE_SETUP
2709#line 363 "scan.l"
2710{
2711			ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense );
2712            interactive = option_sense;
2713			}
2714	YY_BREAK
2715case 60:
2716YY_RULE_SETUP
2717#line 367 "scan.l"
2718yytext_is_array = option_sense;
2719	YY_BREAK
2720case 61:
2721YY_RULE_SETUP
2722#line 368 "scan.l"
2723backing_up_report = option_sense;
2724	YY_BREAK
2725case 62:
2726YY_RULE_SETUP
2727#line 369 "scan.l"
2728interactive = ! option_sense;
2729	YY_BREAK
2730case 63:
2731YY_RULE_SETUP
2732#line 370 "scan.l"
2733bison_bridge_lval = option_sense;
2734	YY_BREAK
2735case 64:
2736YY_RULE_SETUP
2737#line 371 "scan.l"
2738{ if((bison_bridge_lloc = option_sense))
2739                            bison_bridge_lval = true;
2740                     }
2741	YY_BREAK
2742case 65:
2743YY_RULE_SETUP
2744#line 374 "scan.l"
2745C_plus_plus = option_sense;
2746	YY_BREAK
2747case 66:
2748YY_RULE_SETUP
2749#line 375 "scan.l"
2750sf_set_case_ins(!option_sense);
2751	YY_BREAK
2752case 67:
2753YY_RULE_SETUP
2754#line 376 "scan.l"
2755sf_set_case_ins(option_sense);
2756	YY_BREAK
2757case 68:
2758YY_RULE_SETUP
2759#line 377 "scan.l"
2760ddebug = option_sense;
2761	YY_BREAK
2762case 69:
2763YY_RULE_SETUP
2764#line 378 "scan.l"
2765spprdflt = ! option_sense;
2766	YY_BREAK
2767case 70:
2768YY_RULE_SETUP
2769#line 379 "scan.l"
2770useecs = option_sense;
2771	YY_BREAK
2772case 71:
2773YY_RULE_SETUP
2774#line 380 "scan.l"
2775{
2776			useecs = usemecs = false;
2777			use_read = fullspd = true;
2778			}
2779	YY_BREAK
2780case 72:
2781YY_RULE_SETUP
2782#line 384 "scan.l"
2783{
2784			useecs = usemecs = false;
2785			use_read = fulltbl = true;
2786			}
2787	YY_BREAK
2788case 73:
2789YY_RULE_SETUP
2790#line 388 "scan.l"
2791ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
2792	YY_BREAK
2793case 74:
2794YY_RULE_SETUP
2795#line 389 "scan.l"
2796interactive = option_sense;
2797	YY_BREAK
2798case 75:
2799YY_RULE_SETUP
2800#line 390 "scan.l"
2801lex_compat = option_sense;
2802	YY_BREAK
2803case 76:
2804YY_RULE_SETUP
2805#line 391 "scan.l"
2806posix_compat = option_sense;
2807	YY_BREAK
2808case 77:
2809YY_RULE_SETUP
2810#line 392 "scan.l"
2811gen_line_dirs = option_sense;
2812	YY_BREAK
2813case 78:
2814YY_RULE_SETUP
2815#line 393 "scan.l"
2816{
2817			ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
2818            /* Override yywrap */
2819            if( option_sense == true )
2820                do_yywrap = false;
2821			}
2822	YY_BREAK
2823case 79:
2824YY_RULE_SETUP
2825#line 399 "scan.l"
2826usemecs = option_sense;
2827	YY_BREAK
2828case 80:
2829YY_RULE_SETUP
2830#line 400 "scan.l"
2831{
2832			ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense );
2833            interactive = !option_sense;
2834			}
2835	YY_BREAK
2836case 81:
2837YY_RULE_SETUP
2838#line 404 "scan.l"
2839performance_report += option_sense ? 1 : -1;
2840	YY_BREAK
2841case 82:
2842YY_RULE_SETUP
2843#line 405 "scan.l"
2844yytext_is_array = ! option_sense;
2845	YY_BREAK
2846case 83:
2847YY_RULE_SETUP
2848#line 406 "scan.l"
2849use_read = option_sense;
2850	YY_BREAK
2851case 84:
2852YY_RULE_SETUP
2853#line 407 "scan.l"
2854reentrant = option_sense;
2855	YY_BREAK
2856case 85:
2857YY_RULE_SETUP
2858#line 408 "scan.l"
2859reject_really_used = option_sense;
2860	YY_BREAK
2861case 86:
2862YY_RULE_SETUP
2863#line 409 "scan.l"
2864ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense );
2865	YY_BREAK
2866case 87:
2867YY_RULE_SETUP
2868#line 410 "scan.l"
2869do_stdinit = option_sense;
2870	YY_BREAK
2871case 88:
2872YY_RULE_SETUP
2873#line 411 "scan.l"
2874use_stdout = option_sense;
2875	YY_BREAK
2876case 89:
2877YY_RULE_SETUP
2878#line 412 "scan.l"
2879ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
2880	YY_BREAK
2881case 90:
2882YY_RULE_SETUP
2883#line 413 "scan.l"
2884ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense);
2885	YY_BREAK
2886case 91:
2887YY_RULE_SETUP
2888#line 414 "scan.l"
2889printstats = option_sense;
2890	YY_BREAK
2891case 92:
2892YY_RULE_SETUP
2893#line 415 "scan.l"
2894nowarn = ! option_sense;
2895	YY_BREAK
2896case 93:
2897YY_RULE_SETUP
2898#line 416 "scan.l"
2899do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense);
2900	YY_BREAK
2901case 94:
2902YY_RULE_SETUP
2903#line 417 "scan.l"
2904yymore_really_used = option_sense;
2905	YY_BREAK
2906case 95:
2907YY_RULE_SETUP
2908#line 418 "scan.l"
2909do_yywrap = option_sense;
2910	YY_BREAK
2911case 96:
2912YY_RULE_SETUP
2913#line 420 "scan.l"
2914ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense);
2915	YY_BREAK
2916case 97:
2917YY_RULE_SETUP
2918#line 421 "scan.l"
2919ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense);
2920	YY_BREAK
2921case 98:
2922YY_RULE_SETUP
2923#line 422 "scan.l"
2924ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense);
2925	YY_BREAK
2926case 99:
2927YY_RULE_SETUP
2928#line 424 "scan.l"
2929ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense);
2930	YY_BREAK
2931case 100:
2932YY_RULE_SETUP
2933#line 425 "scan.l"
2934ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense);
2935	YY_BREAK
2936case 101:
2937YY_RULE_SETUP
2938#line 426 "scan.l"
2939ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense);
2940	YY_BREAK
2941case 102:
2942YY_RULE_SETUP
2943#line 428 "scan.l"
2944ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense);
2945	YY_BREAK
2946case 103:
2947YY_RULE_SETUP
2948#line 429 "scan.l"
2949ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense);
2950	YY_BREAK
2951case 104:
2952YY_RULE_SETUP
2953#line 430 "scan.l"
2954ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense);
2955	YY_BREAK
2956case 105:
2957YY_RULE_SETUP
2958#line 432 "scan.l"
2959ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense);
2960	YY_BREAK
2961case 106:
2962YY_RULE_SETUP
2963#line 433 "scan.l"
2964ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense);
2965	YY_BREAK
2966case 107:
2967YY_RULE_SETUP
2968#line 434 "scan.l"
2969ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense);
2970	YY_BREAK
2971case 108:
2972YY_RULE_SETUP
2973#line 435 "scan.l"
2974ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense);
2975	YY_BREAK
2976case 109:
2977YY_RULE_SETUP
2978#line 436 "scan.l"
2979ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense);
2980	YY_BREAK
2981case 110:
2982YY_RULE_SETUP
2983#line 437 "scan.l"
2984ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense);
2985	YY_BREAK
2986case 111:
2987YY_RULE_SETUP
2988#line 438 "scan.l"
2989ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense);
2990	YY_BREAK
2991case 112:
2992YY_RULE_SETUP
2993#line 439 "scan.l"
2994ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense);
2995	YY_BREAK
2996case 113:
2997YY_RULE_SETUP
2998#line 440 "scan.l"
2999ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense);
3000	YY_BREAK
3001case 114:
3002YY_RULE_SETUP
3003#line 441 "scan.l"
3004ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense);
3005	YY_BREAK
3006case 115:
3007YY_RULE_SETUP
3008#line 442 "scan.l"
3009ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense);
3010	YY_BREAK
3011case 116:
3012YY_RULE_SETUP
3013#line 443 "scan.l"
3014ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense);
3015	YY_BREAK
3016case 117:
3017YY_RULE_SETUP
3018#line 444 "scan.l"
3019ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense);
3020	YY_BREAK
3021case 118:
3022YY_RULE_SETUP
3023#line 445 "scan.l"
3024ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense);
3025	YY_BREAK
3026case 119:
3027YY_RULE_SETUP
3028#line 446 "scan.l"
3029ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense);
3030	YY_BREAK
3031case 120:
3032YY_RULE_SETUP
3033#line 447 "scan.l"
3034ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense);
3035	YY_BREAK
3036case 121:
3037YY_RULE_SETUP
3038#line 449 "scan.l"
3039return TOK_EXTRA_TYPE;
3040	YY_BREAK
3041case 122:
3042YY_RULE_SETUP
3043#line 450 "scan.l"
3044return TOK_OUTFILE;
3045	YY_BREAK
3046case 123:
3047YY_RULE_SETUP
3048#line 451 "scan.l"
3049return TOK_PREFIX;
3050	YY_BREAK
3051case 124:
3052YY_RULE_SETUP
3053#line 452 "scan.l"
3054return TOK_YYCLASS;
3055	YY_BREAK
3056case 125:
3057YY_RULE_SETUP
3058#line 453 "scan.l"
3059return TOK_HEADER_FILE;
3060	YY_BREAK
3061case 126:
3062YY_RULE_SETUP
3063#line 454 "scan.l"
3064return TOK_TABLES_FILE;
3065	YY_BREAK
3066case 127:
3067YY_RULE_SETUP
3068#line 455 "scan.l"
3069{
3070                    tablesverify = option_sense;
3071                    if(!tablesext && option_sense)
3072                        tablesext = true;
3073                    }
3074	YY_BREAK
3075case 128:
3076YY_RULE_SETUP
3077#line 462 "scan.l"
3078{
3079			if(yyleng-1 < MAXLINE)
3080        		 {
3081			strncpy( nmstr, yytext + 1, sizeof(nmstr) );
3082			 }
3083			else
3084			 {
3085			   synerr( _("Option line too long\n"));
3086			   FLEX_EXIT(EXIT_FAILURE);
3087			 }
3088			nmstr[strlen( nmstr ) - 1] = '\0';
3089			return NAME;
3090			}
3091	YY_BREAK
3092case 129:
3093YY_RULE_SETUP
3094#line 476 "scan.l"
3095{
3096			format_synerr( _( "unrecognized %%option: %s" ),
3097				yytext );
3098			BEGIN(RECOVER);
3099			}
3100	YY_BREAK
3101
3102case 130:
3103/* rule 130 can match eol */
3104YY_RULE_SETUP
3105#line 483 "scan.l"
3106++linenum; BEGIN(INITIAL);
3107	YY_BREAK
3108
3109case 131:
3110YY_RULE_SETUP
3111#line 487 "scan.l"
3112++bracelevel; yyless( 2 );	/* eat only %{ */
3113	YY_BREAK
3114case 132:
3115YY_RULE_SETUP
3116#line 488 "scan.l"
3117--bracelevel; yyless( 2 );	/* eat only %} */
3118	YY_BREAK
3119case 133:
3120YY_RULE_SETUP
3121#line 490 "scan.l"
3122START_CODEBLOCK(true); /* indented code in prolog */
3123	YY_BREAK
3124case 134:
3125YY_RULE_SETUP
3126#line 492 "scan.l"
3127{
3128        /* non-indented code */
3129		if ( bracelevel <= 0 ) {
3130            /* not in %{ ... %} */
3131            yyless( 0 );	/* put it all back */
3132            yy_set_bol( 1 );
3133            mark_prolog();
3134            BEGIN(SECT2);
3135        } else {
3136            START_CODEBLOCK(true);
3137        }
3138    }
3139	YY_BREAK
3140case 135:
3141YY_RULE_SETUP
3142#line 505 "scan.l"
3143ACTION_ECHO;
3144	YY_BREAK
3145case 136:
3146/* rule 136 can match eol */
3147YY_RULE_SETUP
3148#line 506 "scan.l"
3149++linenum; ACTION_ECHO;
3150	YY_BREAK
3151case YY_STATE_EOF(SECT2PROLOG):
3152#line 508 "scan.l"
3153{
3154			mark_prolog();
3155			sectnum = 0;
3156			yyterminate(); /* to stop the parser */
3157			}
3158	YY_BREAK
3159
3160
3161case 137:
3162/* rule 137 can match eol */
3163YY_RULE_SETUP
3164#line 516 "scan.l"
3165++linenum; /* allow blank lines in section 2 */
3166	YY_BREAK
3167case 138:
3168YY_RULE_SETUP
3169#line 518 "scan.l"
3170{
3171			indented_code = false;
3172			doing_codeblock = true;
3173			bracelevel = 1;
3174			BEGIN(PERCENT_BRACE_ACTION);
3175			}
3176	YY_BREAK
3177case 139:
3178YY_RULE_SETUP
3179#line 525 "scan.l"
3180{
3181                        /* Allow "<" to appear in (?x) patterns. */
3182                        if (!sf_skip_ws())
3183                            BEGIN(SC);
3184                        return '<';
3185                    }
3186	YY_BREAK
3187case 140:
3188YY_RULE_SETUP
3189#line 531 "scan.l"
3190return '^';
3191	YY_BREAK
3192case 141:
3193YY_RULE_SETUP
3194#line 532 "scan.l"
3195BEGIN(QUOTE); return '"';
3196	YY_BREAK
3197case 142:
3198*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3199(yy_c_buf_p) = yy_cp = yy_bp + 1;
3200YY_DO_BEFORE_ACTION; /* set up yytext again */
3201YY_RULE_SETUP
3202#line 533 "scan.l"
3203{
3204			BEGIN(NUM);
3205			if ( lex_compat || posix_compat )
3206				return BEGIN_REPEAT_POSIX;
3207			else
3208				return BEGIN_REPEAT_FLEX;
3209			}
3210	YY_BREAK
3211case 143:
3212/* rule 143 can match eol */
3213*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3214YY_LINENO_REWIND_TO(yy_bp + 1);
3215(yy_c_buf_p) = yy_cp = yy_bp + 1;
3216YY_DO_BEFORE_ACTION; /* set up yytext again */
3217YY_RULE_SETUP
3218#line 540 "scan.l"
3219return '$';
3220	YY_BREAK
3221case 144:
3222YY_RULE_SETUP
3223#line 542 "scan.l"
3224{
3225			bracelevel = 1;
3226			BEGIN(PERCENT_BRACE_ACTION);
3227
3228			if ( in_rule )
3229				{
3230				doing_rule_action = true;
3231				in_rule = false;
3232				return '\n';
3233				}
3234			}
3235	YY_BREAK
3236case 145:
3237/* rule 145 can match eol */
3238YY_RULE_SETUP
3239#line 553 "scan.l"
3240{
3241                        if (sf_skip_ws()){
3242                            /* We're in the middle of a (?x: ) pattern. */
3243                            /* Push back everything starting at the "|" */
3244                            int amt = (int) (strchr (yytext, '|') - yytext);
3245                            yyless(amt);
3246                        }
3247                        else {
3248                            add_action("]""]");
3249                            continued_action = true;
3250                            ++linenum;
3251                            return '\n';
3252                        }
3253                    }
3254	YY_BREAK
3255case 146:
3256YY_RULE_SETUP
3257#line 568 "scan.l"
3258{
3259
3260                if (sf_skip_ws()){
3261                    /* We're in the middle of a (?x: ) pattern. */
3262                    yy_push_state(COMMENT_DISCARD);
3263                }
3264                else{
3265                    yyless( yyleng - 2 );	/* put back '/', '*' */
3266                    bracelevel = 0;
3267                    continued_action = false;
3268                    BEGIN(ACTION);
3269                }
3270			}
3271	YY_BREAK
3272case 147:
3273YY_RULE_SETUP
3274#line 582 "scan.l"
3275/* allow indented rules */ ;
3276	YY_BREAK
3277case 148:
3278YY_RULE_SETUP
3279#line 584 "scan.l"
3280{
3281            if (sf_skip_ws()){
3282                /* We're in the middle of a (?x: ) pattern. */
3283            }
3284            else{
3285                /* This rule is separate from the one below because
3286                 * otherwise we get variable trailing context, so
3287                 * we can't build the scanner using -{f,F}.
3288                 */
3289                bracelevel = 0;
3290                continued_action = false;
3291                BEGIN(ACTION);
3292
3293                if ( in_rule )
3294                    {
3295                    doing_rule_action = true;
3296                    in_rule = false;
3297                    return '\n';
3298                    }
3299            }
3300			}
3301	YY_BREAK
3302case 149:
3303/* rule 149 can match eol */
3304YY_RULE_SETUP
3305#line 606 "scan.l"
3306{
3307            if (sf_skip_ws()){
3308                /* We're in the middle of a (?x: ) pattern. */
3309                ++linenum;
3310            }
3311            else{
3312                bracelevel = 0;
3313                continued_action = false;
3314                BEGIN(ACTION);
3315                unput( '\n' );	/* so <ACTION> sees it */
3316
3317                if ( in_rule )
3318                    {
3319                    doing_rule_action = true;
3320                    in_rule = false;
3321                    return '\n';
3322                    }
3323            }
3324			}
3325	YY_BREAK
3326case 150:
3327#line 627 "scan.l"
3328case 151:
3329YY_RULE_SETUP
3330#line 627 "scan.l"
3331return EOF_OP;
3332	YY_BREAK
3333case 152:
3334YY_RULE_SETUP
3335#line 629 "scan.l"
3336{
3337			sectnum = 3;
3338			BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
3339			outn("/* Begin user sect3 */");
3340			yyterminate(); /* to stop the parser */
3341
3342			}
3343	YY_BREAK
3344case 153:
3345YY_RULE_SETUP
3346#line 637 "scan.l"
3347{
3348			int cclval;
3349
3350			if(yyleng < MAXLINE)
3351        		 {
3352			strncpy( nmstr, yytext, sizeof(nmstr) );
3353			 }
3354			else
3355			 {
3356			   synerr( _("Input line too long\n"));
3357			   FLEX_EXIT(EXIT_FAILURE);
3358			 }
3359
3360			/* Check to see if we've already encountered this
3361			 * ccl.
3362			 */
3363			if (0 /* <--- This "0" effectively disables the reuse of a
3364                   * character class (purely based on its source text).
3365                   * The reason it was disabled is so yacc/bison can parse
3366                   * ccl operations, such as ccl difference and union.
3367                   */
3368                &&  (cclval = ccllookup( nmstr )) != 0 )
3369				{
3370				if ( input() != ']' )
3371					synerr( _( "bad character class" ) );
3372
3373				yylval = cclval;
3374				++cclreuse;
3375				return PREVCCL;
3376				}
3377			else
3378				{
3379				/* We fudge a bit.  We know that this ccl will
3380				 * soon be numbered as lastccl + 1 by cclinit.
3381				 */
3382				cclinstal( nmstr, lastccl + 1 );
3383
3384				/* Push back everything but the leading bracket
3385				 * so the ccl can be rescanned.
3386				 */
3387				yyless( 1 );
3388
3389				BEGIN(FIRSTCCL);
3390				return '[';
3391				}
3392			}
3393	YY_BREAK
3394case 154:
3395YY_RULE_SETUP
3396#line 683 "scan.l"
3397return CCL_OP_DIFF;
3398	YY_BREAK
3399case 155:
3400YY_RULE_SETUP
3401#line 684 "scan.l"
3402return CCL_OP_UNION;
3403	YY_BREAK
3404/* Check for :space: at the end of the rule so we don't
3405     * wrap the expanded regex in '(' ')' -- breaking trailing
3406     * context.
3407     */
3408case 156:
3409/* rule 156 can match eol */
3410YY_RULE_SETUP
3411#line 691 "scan.l"
3412{
3413			char *nmdefptr;
3414            int end_is_ws, end_ch;
3415
3416            end_ch = yytext[yyleng-1];
3417            end_is_ws = end_ch != '}' ? 1 : 0;
3418
3419 			if(yyleng-1 < MAXLINE)
3420         		 {
3421			strncpy( nmstr, yytext + 1, sizeof(nmstr) );
3422 			 }
3423 			else
3424 			 {
3425 			   synerr( _("Input line too long\n"));
3426 			   FLEX_EXIT(EXIT_FAILURE);
3427 			 }
3428nmstr[yyleng - 2 - end_is_ws] = '\0';  /* chop trailing brace */
3429
3430			if ( (nmdefptr = ndlookup( nmstr )) == NULL )
3431				format_synerr(
3432					_( "undefined definition {%s}" ),
3433						nmstr );
3434
3435			else
3436				{ /* push back name surrounded by ()'s */
3437				size_t len = strlen( nmdefptr );
3438                if (end_is_ws)
3439                    unput(end_ch);
3440
3441				if ( lex_compat || nmdefptr[0] == '^' ||
3442				     (len > 0 && nmdefptr[len - 1] == '$')
3443                     || (end_is_ws && trlcontxt && !sf_skip_ws()))
3444					{ /* don't use ()'s after all */
3445					PUT_BACK_STRING(nmdefptr, 0);
3446
3447					if ( nmdefptr[0] == '^' )
3448						BEGIN(CARETISBOL);
3449					}
3450
3451				else
3452					{
3453					unput(')');
3454					PUT_BACK_STRING(nmdefptr, 0);
3455					unput('(');
3456					}
3457				}
3458			}
3459	YY_BREAK
3460case 157:
3461YY_RULE_SETUP
3462#line 739 "scan.l"
3463{
3464                    if (sf_skip_ws())
3465                        yy_push_state(COMMENT_DISCARD);
3466                    else{
3467                        /* Push back the "*" and return "/" as usual. */
3468                        yyless(1);
3469                        return '/';
3470                    }
3471                }
3472	YY_BREAK
3473case 158:
3474YY_RULE_SETUP
3475#line 749 "scan.l"
3476{
3477                    if (lex_compat || posix_compat){
3478                        /* Push back the "?#" and treat it like a normal parens. */
3479                        yyless(1);
3480                        sf_push();
3481                        return '(';
3482                    }
3483                    else
3484                        yy_push_state(EXTENDED_COMMENT);
3485                }
3486	YY_BREAK
3487case 159:
3488YY_RULE_SETUP
3489#line 759 "scan.l"
3490{
3491                    sf_push();
3492                    if (lex_compat || posix_compat)
3493                        /* Push back the "?" and treat it like a normal parens. */
3494                        yyless(1);
3495                    else
3496                        BEGIN(GROUP_WITH_PARAMS);
3497                    return '(';
3498                }
3499	YY_BREAK
3500case 160:
3501YY_RULE_SETUP
3502#line 768 "scan.l"
3503sf_push(); return '(';
3504	YY_BREAK
3505case 161:
3506YY_RULE_SETUP
3507#line 769 "scan.l"
3508{
3509                    if (_sf_top_ix > 0) {
3510                        sf_pop();
3511                        return ')';
3512                    } else
3513                        synerr(_("unbalanced parenthesis"));
3514                }
3515	YY_BREAK
3516case 162:
3517YY_RULE_SETUP
3518#line 777 "scan.l"
3519return (unsigned char) yytext[0];
3520	YY_BREAK
3521case 163:
3522YY_RULE_SETUP
3523#line 778 "scan.l"
3524RETURNCHAR;
3525	YY_BREAK
3526
3527
3528case 164:
3529/* rule 164 can match eol */
3530YY_RULE_SETUP
3531#line 783 "scan.l"
3532++linenum;	/* Allow blank lines & continuations */
3533	YY_BREAK
3534case 165:
3535YY_RULE_SETUP
3536#line 784 "scan.l"
3537return (unsigned char) yytext[0];
3538	YY_BREAK
3539case 166:
3540YY_RULE_SETUP
3541#line 785 "scan.l"
3542BEGIN(SECT2); return '>';
3543	YY_BREAK
3544case 167:
3545*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3546(yy_c_buf_p) = yy_cp = yy_bp + 1;
3547YY_DO_BEFORE_ACTION; /* set up yytext again */
3548YY_RULE_SETUP
3549#line 786 "scan.l"
3550BEGIN(CARETISBOL); return '>';
3551	YY_BREAK
3552case 168:
3553YY_RULE_SETUP
3554#line 787 "scan.l"
3555RETURNNAME;
3556	YY_BREAK
3557case 169:
3558YY_RULE_SETUP
3559#line 788 "scan.l"
3560{
3561			format_synerr( _( "bad <start condition>: %s" ),
3562				yytext );
3563			}
3564	YY_BREAK
3565
3566case 170:
3567YY_RULE_SETUP
3568#line 794 "scan.l"
3569BEGIN(SECT2); return '^';
3570	YY_BREAK
3571
3572case 171:
3573YY_RULE_SETUP
3574#line 798 "scan.l"
3575RETURNCHAR;
3576	YY_BREAK
3577case 172:
3578YY_RULE_SETUP
3579#line 799 "scan.l"
3580BEGIN(SECT2); return '"';
3581	YY_BREAK
3582case 173:
3583/* rule 173 can match eol */
3584YY_RULE_SETUP
3585#line 801 "scan.l"
3586{
3587			synerr( _( "missing quote" ) );
3588			BEGIN(SECT2);
3589			++linenum;
3590			return '"';
3591			}
3592	YY_BREAK
3593
3594
3595case 174:
3596YY_RULE_SETUP
3597#line 810 "scan.l"
3598BEGIN(SECT2);
3599	YY_BREAK
3600case 175:
3601YY_RULE_SETUP
3602#line 811 "scan.l"
3603BEGIN(GROUP_MINUS_PARAMS);
3604	YY_BREAK
3605case 176:
3606YY_RULE_SETUP
3607#line 812 "scan.l"
3608sf_set_case_ins(1);
3609	YY_BREAK
3610case 177:
3611YY_RULE_SETUP
3612#line 813 "scan.l"
3613sf_set_dot_all(1);
3614	YY_BREAK
3615case 178:
3616YY_RULE_SETUP
3617#line 814 "scan.l"
3618sf_set_skip_ws(1);
3619	YY_BREAK
3620
3621
3622case 179:
3623YY_RULE_SETUP
3624#line 817 "scan.l"
3625BEGIN(SECT2);
3626	YY_BREAK
3627case 180:
3628YY_RULE_SETUP
3629#line 818 "scan.l"
3630sf_set_case_ins(0);
3631	YY_BREAK
3632case 181:
3633YY_RULE_SETUP
3634#line 819 "scan.l"
3635sf_set_dot_all(0);
3636	YY_BREAK
3637case 182:
3638YY_RULE_SETUP
3639#line 820 "scan.l"
3640sf_set_skip_ws(0);
3641	YY_BREAK
3642
3643
3644case 183:
3645*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3646(yy_c_buf_p) = yy_cp = yy_bp + 1;
3647YY_DO_BEFORE_ACTION; /* set up yytext again */
3648YY_RULE_SETUP
3649#line 824 "scan.l"
3650BEGIN(CCL); return '^';
3651	YY_BREAK
3652case 184:
3653*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3654(yy_c_buf_p) = yy_cp = yy_bp + 1;
3655YY_DO_BEFORE_ACTION; /* set up yytext again */
3656YY_RULE_SETUP
3657#line 825 "scan.l"
3658return '^';
3659	YY_BREAK
3660case 185:
3661YY_RULE_SETUP
3662#line 826 "scan.l"
3663BEGIN(CCL); RETURNCHAR;
3664	YY_BREAK
3665
3666
3667case 186:
3668*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3669(yy_c_buf_p) = yy_cp = yy_bp + 1;
3670YY_DO_BEFORE_ACTION; /* set up yytext again */
3671YY_RULE_SETUP
3672#line 830 "scan.l"
3673return '-';
3674	YY_BREAK
3675case 187:
3676YY_RULE_SETUP
3677#line 831 "scan.l"
3678RETURNCHAR;
3679	YY_BREAK
3680case 188:
3681YY_RULE_SETUP
3682#line 832 "scan.l"
3683BEGIN(SECT2); return ']';
3684	YY_BREAK
3685case 189:
3686/* rule 189 can match eol */
3687YY_RULE_SETUP
3688#line 833 "scan.l"
3689{
3690			synerr( _( "bad character class" ) );
3691			BEGIN(SECT2);
3692			return ']';
3693			}
3694	YY_BREAK
3695
3696
3697case 190:
3698YY_RULE_SETUP
3699#line 841 "scan.l"
3700BEGIN(CCL); return CCE_ALNUM;
3701	YY_BREAK
3702case 191:
3703YY_RULE_SETUP
3704#line 842 "scan.l"
3705BEGIN(CCL); return CCE_ALPHA;
3706	YY_BREAK
3707case 192:
3708YY_RULE_SETUP
3709#line 843 "scan.l"
3710BEGIN(CCL); return CCE_BLANK;
3711	YY_BREAK
3712case 193:
3713YY_RULE_SETUP
3714#line 844 "scan.l"
3715BEGIN(CCL); return CCE_CNTRL;
3716	YY_BREAK
3717case 194:
3718YY_RULE_SETUP
3719#line 845 "scan.l"
3720BEGIN(CCL); return CCE_DIGIT;
3721	YY_BREAK
3722case 195:
3723YY_RULE_SETUP
3724#line 846 "scan.l"
3725BEGIN(CCL); return CCE_GRAPH;
3726	YY_BREAK
3727case 196:
3728YY_RULE_SETUP
3729#line 847 "scan.l"
3730BEGIN(CCL); return CCE_LOWER;
3731	YY_BREAK
3732case 197:
3733YY_RULE_SETUP
3734#line 848 "scan.l"
3735BEGIN(CCL); return CCE_PRINT;
3736	YY_BREAK
3737case 198:
3738YY_RULE_SETUP
3739#line 849 "scan.l"
3740BEGIN(CCL); return CCE_PUNCT;
3741	YY_BREAK
3742case 199:
3743YY_RULE_SETUP
3744#line 850 "scan.l"
3745BEGIN(CCL); return CCE_SPACE;
3746	YY_BREAK
3747case 200:
3748YY_RULE_SETUP
3749#line 851 "scan.l"
3750BEGIN(CCL); return CCE_UPPER;
3751	YY_BREAK
3752case 201:
3753YY_RULE_SETUP
3754#line 852 "scan.l"
3755BEGIN(CCL); return CCE_XDIGIT;
3756	YY_BREAK
3757case 202:
3758YY_RULE_SETUP
3759#line 854 "scan.l"
3760BEGIN(CCL); return CCE_NEG_ALNUM;
3761	YY_BREAK
3762case 203:
3763YY_RULE_SETUP
3764#line 855 "scan.l"
3765BEGIN(CCL); return CCE_NEG_ALPHA;
3766	YY_BREAK
3767case 204:
3768YY_RULE_SETUP
3769#line 856 "scan.l"
3770BEGIN(CCL); return CCE_NEG_BLANK;
3771	YY_BREAK
3772case 205:
3773YY_RULE_SETUP
3774#line 857 "scan.l"
3775BEGIN(CCL); return CCE_NEG_CNTRL;
3776	YY_BREAK
3777case 206:
3778YY_RULE_SETUP
3779#line 858 "scan.l"
3780BEGIN(CCL); return CCE_NEG_DIGIT;
3781	YY_BREAK
3782case 207:
3783YY_RULE_SETUP
3784#line 859 "scan.l"
3785BEGIN(CCL); return CCE_NEG_GRAPH;
3786	YY_BREAK
3787case 208:
3788YY_RULE_SETUP
3789#line 860 "scan.l"
3790BEGIN(CCL); return CCE_NEG_LOWER;
3791	YY_BREAK
3792case 209:
3793YY_RULE_SETUP
3794#line 861 "scan.l"
3795BEGIN(CCL); return CCE_NEG_PRINT;
3796	YY_BREAK
3797case 210:
3798YY_RULE_SETUP
3799#line 862 "scan.l"
3800BEGIN(CCL); return CCE_NEG_PUNCT;
3801	YY_BREAK
3802case 211:
3803YY_RULE_SETUP
3804#line 863 "scan.l"
3805BEGIN(CCL); return CCE_NEG_SPACE;
3806	YY_BREAK
3807case 212:
3808YY_RULE_SETUP
3809#line 864 "scan.l"
3810BEGIN(CCL); return CCE_NEG_UPPER;
3811	YY_BREAK
3812case 213:
3813YY_RULE_SETUP
3814#line 865 "scan.l"
3815BEGIN(CCL); return CCE_NEG_XDIGIT;
3816	YY_BREAK
3817case 214:
3818YY_RULE_SETUP
3819#line 866 "scan.l"
3820{
3821			format_synerr(
3822				_( "bad character class expression: %s" ),
3823					yytext );
3824			BEGIN(CCL); return CCE_ALNUM;
3825			}
3826	YY_BREAK
3827
3828
3829case 215:
3830YY_RULE_SETUP
3831#line 875 "scan.l"
3832{
3833			yylval = myctoi( yytext );
3834			return NUMBER;
3835			}
3836	YY_BREAK
3837case 216:
3838YY_RULE_SETUP
3839#line 880 "scan.l"
3840return ',';
3841	YY_BREAK
3842case 217:
3843YY_RULE_SETUP
3844#line 881 "scan.l"
3845{
3846			BEGIN(SECT2);
3847			if ( lex_compat || posix_compat )
3848				return END_REPEAT_POSIX;
3849			else
3850				return END_REPEAT_FLEX;
3851			}
3852	YY_BREAK
3853case 218:
3854YY_RULE_SETUP
3855#line 889 "scan.l"
3856{
3857			synerr( _( "bad character inside {}'s" ) );
3858			BEGIN(SECT2);
3859			return '}';
3860			}
3861	YY_BREAK
3862case 219:
3863/* rule 219 can match eol */
3864YY_RULE_SETUP
3865#line 895 "scan.l"
3866{
3867			synerr( _( "missing }" ) );
3868			BEGIN(SECT2);
3869			++linenum;
3870			return '}';
3871			}
3872	YY_BREAK
3873
3874
3875case 220:
3876YY_RULE_SETUP
3877#line 905 "scan.l"
3878bracelevel = 0;
3879	YY_BREAK
3880case 221:
3881YY_RULE_SETUP
3882#line 907 "scan.l"
3883ACTION_ECHO; yy_push_state( CODE_COMMENT );
3884	YY_BREAK
3885
3886case 222:
3887YY_RULE_SETUP
3888#line 910 "scan.l"
3889{
3890            ACTION_ECHO;
3891            CHECK_REJECT(yytext);
3892        }
3893	YY_BREAK
3894case 223:
3895YY_RULE_SETUP
3896#line 914 "scan.l"
3897{
3898            ACTION_ECHO;
3899            CHECK_YYMORE(yytext);
3900        }
3901	YY_BREAK
3902
3903case 224:
3904YY_RULE_SETUP
3905#line 920 "scan.l"
3906ACTION_ECHO;
3907	YY_BREAK
3908case 225:
3909/* rule 225 can match eol */
3910YY_RULE_SETUP
3911#line 921 "scan.l"
3912{
3913		++linenum;
3914		ACTION_ECHO;
3915		if (bracelevel <= 0 || (doing_codeblock && indented_code)) {
3916            if ( doing_rule_action )
3917                add_action( "\tYY_BREAK]""]\n" );
3918
3919            doing_rule_action = doing_codeblock = false;
3920            BEGIN(SECT2);
3921        }
3922    }
3923	YY_BREAK
3924
3925/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
3926
3927case 226:
3928YY_RULE_SETUP
3929#line 937 "scan.l"
3930ACTION_ECHO; ++bracelevel;
3931	YY_BREAK
3932case 227:
3933YY_RULE_SETUP
3934#line 938 "scan.l"
3935ACTION_ECHO; --bracelevel;
3936	YY_BREAK
3937case 228:
3938YY_RULE_SETUP
3939#line 939 "scan.l"
3940ACTION_ECHO;
3941	YY_BREAK
3942case 229:
3943YY_RULE_SETUP
3944#line 940 "scan.l"
3945ACTION_ECHO;
3946	YY_BREAK
3947case 230:
3948YY_RULE_SETUP
3949#line 941 "scan.l"
3950ACTION_ECHO; /* character constant */
3951	YY_BREAK
3952case 231:
3953YY_RULE_SETUP
3954#line 942 "scan.l"
3955ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
3956	YY_BREAK
3957case 232:
3958YY_RULE_SETUP
3959#line 943 "scan.l"
3960ACTION_ECHO; BEGIN(ACTION_STRING);
3961	YY_BREAK
3962case 233:
3963/* rule 233 can match eol */
3964YY_RULE_SETUP
3965#line 944 "scan.l"
3966{
3967                ++linenum;
3968                ACTION_ECHO;
3969                if (bracelevel <= 0) {
3970                   if ( doing_rule_action )
3971                      add_action( "\tYY_BREAK]""]\n" );
3972
3973                   doing_rule_action = false;
3974                   BEGIN(SECT2);
3975                }
3976             }
3977	YY_BREAK
3978case 234:
3979YY_RULE_SETUP
3980#line 955 "scan.l"
3981ACTION_ECHO;
3982	YY_BREAK
3983
3984
3985case 235:
3986YY_RULE_SETUP
3987#line 959 "scan.l"
3988ACTION_ECHO;
3989	YY_BREAK
3990case 236:
3991YY_RULE_SETUP
3992#line 960 "scan.l"
3993ACTION_ECHO; BEGIN(ACTION);
3994	YY_BREAK
3995
3996
3997case 237:
3998YY_RULE_SETUP
3999#line 963 "scan.l"
4000ACTION_ECHO;
4001	YY_BREAK
4002case 238:
4003YY_RULE_SETUP
4004#line 964 "scan.l"
4005ACTION_ECHO; BEGIN(ACTION);
4006	YY_BREAK
4007
4008
4009case 239:
4010/* rule 239 can match eol */
4011YY_RULE_SETUP
4012#line 967 "scan.l"
4013ACTION_ECHO;
4014	YY_BREAK
4015case 240:
4016/* rule 240 can match eol */
4017YY_RULE_SETUP
4018#line 968 "scan.l"
4019ACTION_ECHO;
4020	YY_BREAK
4021case 241:
4022/* rule 241 can match eol */
4023YY_RULE_SETUP
4024#line 969 "scan.l"
4025++linenum; ACTION_ECHO; if (bracelevel <= 0) { BEGIN(SECT2); } else { BEGIN(ACTION); }
4026	YY_BREAK
4027case 242:
4028YY_RULE_SETUP
4029#line 970 "scan.l"
4030ACTION_ECHO;
4031	YY_BREAK
4032
4033case YY_STATE_EOF(COMMENT):
4034case YY_STATE_EOF(CODE_COMMENT):
4035case YY_STATE_EOF(COMMENT_DISCARD):
4036case YY_STATE_EOF(ACTION):
4037case YY_STATE_EOF(ACTION_STRING):
4038case YY_STATE_EOF(CHARACTER_CONSTANT):
4039#line 973 "scan.l"
4040{
4041			synerr( _( "EOF encountered inside an action" ) );
4042			yyterminate();
4043			}
4044	YY_BREAK
4045case YY_STATE_EOF(EXTENDED_COMMENT):
4046case YY_STATE_EOF(GROUP_WITH_PARAMS):
4047case YY_STATE_EOF(GROUP_MINUS_PARAMS):
4048#line 978 "scan.l"
4049{
4050			synerr( _( "EOF encountered inside pattern" ) );
4051			yyterminate();
4052			}
4053	YY_BREAK
4054case 243:
4055YY_RULE_SETUP
4056#line 983 "scan.l"
4057{
4058			yylval = myesc( (unsigned char *) yytext );
4059
4060			if ( YY_START == FIRSTCCL )
4061				BEGIN(CCL);
4062
4063			return CHAR;
4064			}
4065	YY_BREAK
4066
4067case 244:
4068YY_RULE_SETUP
4069#line 993 "scan.l"
4070fputs(escaped_qstart, yyout);
4071	YY_BREAK
4072case 245:
4073YY_RULE_SETUP
4074#line 994 "scan.l"
4075fputs(escaped_qend, yyout);
4076	YY_BREAK
4077case 246:
4078/* rule 246 can match eol */
4079YY_RULE_SETUP
4080#line 995 "scan.l"
4081ECHO;
4082	YY_BREAK
4083case 247:
4084YY_RULE_SETUP
4085#line 996 "scan.l"
4086ECHO;
4087	YY_BREAK
4088case YY_STATE_EOF(SECT3):
4089#line 997 "scan.l"
4090{
4091        sectnum = 0;
4092        yyterminate();
4093    }
4094	YY_BREAK
4095
4096
4097case 248:
4098YY_RULE_SETUP
4099#line 1003 "scan.l"
4100fprintf(yyout, "[""[%s]""]", escaped_qstart);
4101	YY_BREAK
4102case 249:
4103YY_RULE_SETUP
4104#line 1004 "scan.l"
4105fprintf(yyout, "[""[%s]""]", escaped_qend);
4106	YY_BREAK
4107case 250:
4108/* rule 250 can match eol */
4109YY_RULE_SETUP
4110#line 1005 "scan.l"
4111ECHO;
4112	YY_BREAK
4113case 251:
4114YY_RULE_SETUP
4115#line 1006 "scan.l"
4116ECHO;
4117	YY_BREAK
4118case YY_STATE_EOF(SECT3_NOESCAPE):
4119#line 1007 "scan.l"
4120{
4121       sectnum = 0;
4122       yyterminate();
4123    }
4124	YY_BREAK
4125
4126case 252:
4127/* rule 252 can match eol */
4128YY_RULE_SETUP
4129#line 1012 "scan.l"
4130format_synerr( _( "bad character: %s" ), yytext );
4131	YY_BREAK
4132case 253:
4133YY_RULE_SETUP
4134#line 1014 "scan.l"
4135YY_FATAL_ERROR( "flex scanner jammed" );
4136	YY_BREAK
4137#line 4137 "<stdout>"
4138case YY_STATE_EOF(INITIAL):
4139case YY_STATE_EOF(SECT2):
4140case YY_STATE_EOF(CODEBLOCK):
4141case YY_STATE_EOF(PICKUPDEF):
4142case YY_STATE_EOF(SC):
4143case YY_STATE_EOF(CARETISBOL):
4144case YY_STATE_EOF(NUM):
4145case YY_STATE_EOF(QUOTE):
4146case YY_STATE_EOF(FIRSTCCL):
4147case YY_STATE_EOF(CCL):
4148case YY_STATE_EOF(RECOVER):
4149case YY_STATE_EOF(PERCENT_BRACE_ACTION):
4150case YY_STATE_EOF(OPTION):
4151case YY_STATE_EOF(LINEDIR):
4152	yyterminate();
4153
4154	case YY_END_OF_BUFFER:
4155		{
4156		/* Amount of text matched not including the EOB char. */
4157		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
4158
4159		/* Undo the effects of YY_DO_BEFORE_ACTION. */
4160		*yy_cp = (yy_hold_char);
4161		YY_RESTORE_YY_MORE_OFFSET
4162
4163		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4164			{
4165			/* We're scanning a new file or input source.  It's
4166			 * possible that this happened because the user
4167			 * just pointed yyin at a new source and called
4168			 * yylex().  If so, then we have to assure
4169			 * consistency between YY_CURRENT_BUFFER and our
4170			 * globals.  Here is the right place to do so, because
4171			 * this is the first action (other than possibly a
4172			 * back-up) that will match for the new input source.
4173			 */
4174			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4175			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4176			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4177			}
4178
4179		/* Note that here we test for yy_c_buf_p "<=" to the position
4180		 * of the first EOB in the buffer, since yy_c_buf_p will
4181		 * already have been incremented past the NUL character
4182		 * (since all states make transitions on EOB to the
4183		 * end-of-buffer state).  Contrast this with the test
4184		 * in input().
4185		 */
4186		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4187			{ /* This was really a NUL. */
4188			yy_state_type yy_next_state;
4189
4190			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
4191
4192			yy_current_state = yy_get_previous_state(  );
4193
4194			/* Okay, we're now positioned to make the NUL
4195			 * transition.  We couldn't have
4196			 * yy_get_previous_state() go ahead and do it
4197			 * for us because it doesn't know how to deal
4198			 * with the possibility of jamming (and we don't
4199			 * want to build jamming into it because then it
4200			 * will run more slowly).
4201			 */
4202
4203			yy_next_state = yy_try_NUL_trans( yy_current_state );
4204
4205			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4206
4207			if ( yy_next_state )
4208				{
4209				/* Consume the NUL. */
4210				yy_cp = ++(yy_c_buf_p);
4211				yy_current_state = yy_next_state;
4212				goto yy_match;
4213				}
4214
4215			else
4216				{
4217				yy_cp = (yy_c_buf_p);
4218				goto yy_find_action;
4219				}
4220			}
4221
4222		else switch ( yy_get_next_buffer(  ) )
4223			{
4224			case EOB_ACT_END_OF_FILE:
4225				{
4226				(yy_did_buffer_switch_on_eof) = 0;
4227
4228				if ( yywrap(  ) )
4229					{
4230					/* Note: because we've taken care in
4231					 * yy_get_next_buffer() to have set up
4232					 * yytext, we can now set up
4233					 * yy_c_buf_p so that if some total
4234					 * hoser (like flex itself) wants to
4235					 * call the scanner after we return the
4236					 * YY_NULL, it'll still work - another
4237					 * YY_NULL will get returned.
4238					 */
4239					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4240
4241					yy_act = YY_STATE_EOF(YY_START);
4242					goto do_action;
4243					}
4244
4245				else
4246					{
4247					if ( ! (yy_did_buffer_switch_on_eof) )
4248						YY_NEW_FILE;
4249					}
4250				break;
4251				}
4252
4253			case EOB_ACT_CONTINUE_SCAN:
4254				(yy_c_buf_p) =
4255					(yytext_ptr) + yy_amount_of_matched_text;
4256
4257				yy_current_state = yy_get_previous_state(  );
4258
4259				yy_cp = (yy_c_buf_p);
4260				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4261				goto yy_match;
4262
4263			case EOB_ACT_LAST_MATCH:
4264				(yy_c_buf_p) =
4265				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4266
4267				yy_current_state = yy_get_previous_state(  );
4268
4269				yy_cp = (yy_c_buf_p);
4270				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4271				goto yy_find_action;
4272			}
4273		break;
4274		}
4275
4276	default:
4277		YY_FATAL_ERROR(
4278			"fatal flex scanner internal error--no action found" );
4279	} /* end of action switch */
4280		} /* end of scanning one token */
4281	} /* end of user's declarations */
4282} /* end of yylex */
4283
4284/* yy_get_next_buffer - try to read in a new buffer
4285 *
4286 * Returns a code representing an action:
4287 *	EOB_ACT_LAST_MATCH -
4288 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4289 *	EOB_ACT_END_OF_FILE - end of file
4290 */
4291static int yy_get_next_buffer (void)
4292{
4293    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4294	char *source = (yytext_ptr);
4295	int number_to_move, i;
4296	int ret_val;
4297
4298	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4299		YY_FATAL_ERROR(
4300		"fatal flex scanner internal error--end of buffer missed" );
4301
4302	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4303		{ /* Don't try to fill the buffer, so this is an EOF. */
4304		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4305			{
4306			/* We matched a single character, the EOB, so
4307			 * treat this as a final EOF.
4308			 */
4309			return EOB_ACT_END_OF_FILE;
4310			}
4311
4312		else
4313			{
4314			/* We matched some text prior to the EOB, first
4315			 * process it.
4316			 */
4317			return EOB_ACT_LAST_MATCH;
4318			}
4319		}
4320
4321	/* Try to read more data. */
4322
4323	/* First move last chars to start of buffer. */
4324	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
4325
4326	for ( i = 0; i < number_to_move; ++i )
4327		*(dest++) = *(source++);
4328
4329	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4330		/* don't do the read, it's not guaranteed to return an EOF,
4331		 * just force an EOF
4332		 */
4333		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4334
4335	else
4336		{
4337			int num_to_read =
4338			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4339
4340		while ( num_to_read <= 0 )
4341			{ /* Not enough room in the buffer - grow it. */
4342
4343			/* just a shorter name for the current buffer */
4344			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4345
4346			int yy_c_buf_p_offset =
4347				(int) ((yy_c_buf_p) - b->yy_ch_buf);
4348
4349			if ( b->yy_is_our_buffer )
4350				{
4351				int new_size = b->yy_buf_size * 2;
4352
4353				if ( new_size <= 0 )
4354					b->yy_buf_size += b->yy_buf_size / 8;
4355				else
4356					b->yy_buf_size *= 2;
4357
4358				b->yy_ch_buf = (char *)
4359					/* Include room in for 2 EOB chars. */
4360					yyrealloc( (void *) b->yy_ch_buf,
4361							 (yy_size_t) (b->yy_buf_size + 2)  );
4362				}
4363			else
4364				/* Can't grow it, we don't own it. */
4365				b->yy_ch_buf = NULL;
4366
4367			if ( ! b->yy_ch_buf )
4368				YY_FATAL_ERROR(
4369				"fatal error - scanner input buffer overflow" );
4370
4371			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4372
4373			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4374						number_to_move - 1;
4375
4376			}
4377
4378		if ( num_to_read > YY_READ_BUF_SIZE )
4379			num_to_read = YY_READ_BUF_SIZE;
4380
4381		/* Read in more data. */
4382		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4383			(yy_n_chars), num_to_read );
4384
4385		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4386		}
4387
4388	if ( (yy_n_chars) == 0 )
4389		{
4390		if ( number_to_move == YY_MORE_ADJ )
4391			{
4392			ret_val = EOB_ACT_END_OF_FILE;
4393			yyrestart( yyin  );
4394			}
4395
4396		else
4397			{
4398			ret_val = EOB_ACT_LAST_MATCH;
4399			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4400				YY_BUFFER_EOF_PENDING;
4401			}
4402		}
4403
4404	else
4405		ret_val = EOB_ACT_CONTINUE_SCAN;
4406
4407	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4408		/* Extend the array by 50%, plus the number we really need. */
4409		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4410		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4411			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
4412		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4413			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4414		/* "- 2" to take care of EOB's */
4415		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4416	}
4417
4418	(yy_n_chars) += number_to_move;
4419	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4420	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4421
4422	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4423
4424	return ret_val;
4425}
4426
4427/* yy_get_previous_state - get the state just before the EOB char was reached */
4428
4429    static yy_state_type yy_get_previous_state (void)
4430{
4431	yy_state_type yy_current_state;
4432	char *yy_cp;
4433
4434	yy_current_state = (yy_start);
4435	yy_current_state += YY_AT_BOL();
4436
4437	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4438		{
4439		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4440		if ( yy_accept[yy_current_state] )
4441			{
4442			(yy_last_accepting_state) = yy_current_state;
4443			(yy_last_accepting_cpos) = yy_cp;
4444			}
4445		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4446			{
4447			yy_current_state = (int) yy_def[yy_current_state];
4448			if ( yy_current_state >= 1114 )
4449				yy_c = yy_meta[yy_c];
4450			}
4451		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4452		}
4453
4454	return yy_current_state;
4455}
4456
4457/* yy_try_NUL_trans - try to make a transition on the NUL character
4458 *
4459 * synopsis
4460 *	next_state = yy_try_NUL_trans( current_state );
4461 */
4462    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
4463{
4464	int yy_is_jam;
4465    	char *yy_cp = (yy_c_buf_p);
4466
4467	YY_CHAR yy_c = 1;
4468	if ( yy_accept[yy_current_state] )
4469		{
4470		(yy_last_accepting_state) = yy_current_state;
4471		(yy_last_accepting_cpos) = yy_cp;
4472		}
4473	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4474		{
4475		yy_current_state = (int) yy_def[yy_current_state];
4476		if ( yy_current_state >= 1114 )
4477			yy_c = yy_meta[yy_c];
4478		}
4479	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4480	yy_is_jam = (yy_current_state == 1113);
4481
4482		return yy_is_jam ? 0 : yy_current_state;
4483}
4484
4485#ifndef YY_NO_UNPUT
4486
4487    static void yyunput (int c, char * yy_bp )
4488{
4489	char *yy_cp;
4490
4491    yy_cp = (yy_c_buf_p);
4492
4493	/* undo effects of setting up yytext */
4494	*yy_cp = (yy_hold_char);
4495
4496	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4497		{ /* need to shift things up to make room */
4498		/* +2 for EOB chars. */
4499		int number_to_move = (yy_n_chars) + 2;
4500		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4501					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4502		char *source =
4503				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4504
4505		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4506			*--dest = *--source;
4507
4508		yy_cp += (int) (dest - source);
4509		yy_bp += (int) (dest - source);
4510		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4511			(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4512
4513		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4514			YY_FATAL_ERROR( "flex scanner push-back overflow" );
4515		}
4516
4517	*--yy_cp = (char) c;
4518
4519	(yytext_ptr) = yy_bp;
4520	(yy_hold_char) = *yy_cp;
4521	(yy_c_buf_p) = yy_cp;
4522}
4523
4524#endif
4525
4526#ifndef YY_NO_INPUT
4527#ifdef __cplusplus
4528    static int yyinput (void)
4529#else
4530    static int input  (void)
4531#endif
4532
4533{
4534	int c;
4535
4536	*(yy_c_buf_p) = (yy_hold_char);
4537
4538	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4539		{
4540		/* yy_c_buf_p now points to the character we want to return.
4541		 * If this occurs *before* the EOB characters, then it's a
4542		 * valid NUL; if not, then we've hit the end of the buffer.
4543		 */
4544		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4545			/* This was really a NUL. */
4546			*(yy_c_buf_p) = '\0';
4547
4548		else
4549			{ /* need more input */
4550			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
4551			++(yy_c_buf_p);
4552
4553			switch ( yy_get_next_buffer(  ) )
4554				{
4555				case EOB_ACT_LAST_MATCH:
4556					/* This happens because yy_g_n_b()
4557					 * sees that we've accumulated a
4558					 * token and flags that we need to
4559					 * try matching the token before
4560					 * proceeding.  But for input(),
4561					 * there's no matching to consider.
4562					 * So convert the EOB_ACT_LAST_MATCH
4563					 * to EOB_ACT_END_OF_FILE.
4564					 */
4565
4566					/* Reset buffer status. */
4567					yyrestart( yyin );
4568
4569					/*FALLTHROUGH*/
4570
4571				case EOB_ACT_END_OF_FILE:
4572					{
4573					if ( yywrap(  ) )
4574#ifdef YY_FLEX_LEX_COMPAT
4575						return 0;
4576#else
4577						return EOF;
4578#endif
4579
4580					if ( ! (yy_did_buffer_switch_on_eof) )
4581						YY_NEW_FILE;
4582#ifdef __cplusplus
4583					return yyinput();
4584#else
4585					return input();
4586#endif
4587					}
4588
4589				case EOB_ACT_CONTINUE_SCAN:
4590					(yy_c_buf_p) = (yytext_ptr) + offset;
4591					break;
4592				}
4593			}
4594		}
4595
4596	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
4597	*(yy_c_buf_p) = '\0';	/* preserve yytext */
4598	(yy_hold_char) = *++(yy_c_buf_p);
4599
4600	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4601
4602	return c;
4603}
4604#endif	/* ifndef YY_NO_INPUT */
4605
4606/** Immediately switch to a different input stream.
4607 * @param input_file A readable stream.
4608 *
4609 * @note This function does not reset the start condition to @c INITIAL .
4610 */
4611    void yyrestart  (FILE * input_file )
4612{
4613
4614	if ( ! YY_CURRENT_BUFFER ){
4615        yyensure_buffer_stack ();
4616		YY_CURRENT_BUFFER_LVALUE =
4617            yy_create_buffer( yyin, YY_BUF_SIZE );
4618	}
4619
4620	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
4621	yy_load_buffer_state(  );
4622}
4623
4624/** Switch to a different input buffer.
4625 * @param new_buffer The new input buffer.
4626 *
4627 */
4628    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4629{
4630
4631	/* TODO. We should be able to replace this entire function body
4632	 * with
4633	 *		yypop_buffer_state();
4634	 *		yypush_buffer_state(new_buffer);
4635     */
4636	yyensure_buffer_stack ();
4637	if ( YY_CURRENT_BUFFER == new_buffer )
4638		return;
4639
4640	if ( YY_CURRENT_BUFFER )
4641		{
4642		/* Flush out information for old buffer. */
4643		*(yy_c_buf_p) = (yy_hold_char);
4644		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4645		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4646		}
4647
4648	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4649	yy_load_buffer_state(  );
4650
4651	/* We don't actually know whether we did this switch during
4652	 * EOF (yywrap()) processing, but the only time this flag
4653	 * is looked at is after yywrap() is called, so it's safe
4654	 * to go ahead and always set it.
4655	 */
4656	(yy_did_buffer_switch_on_eof) = 1;
4657}
4658
4659static void yy_load_buffer_state  (void)
4660{
4661    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4662	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4663	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4664	(yy_hold_char) = *(yy_c_buf_p);
4665}
4666
4667/** Allocate and initialize an input buffer state.
4668 * @param file A readable stream.
4669 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4670 *
4671 * @return the allocated buffer state.
4672 */
4673    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4674{
4675	YY_BUFFER_STATE b;
4676
4677	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
4678	if ( ! b )
4679		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4680
4681	b->yy_buf_size = size;
4682
4683	/* yy_ch_buf has to be 2 characters longer than the size given because
4684	 * we need to put in 2 end-of-buffer characters.
4685	 */
4686	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
4687	if ( ! b->yy_ch_buf )
4688		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4689
4690	b->yy_is_our_buffer = 1;
4691
4692	yy_init_buffer( b, file );
4693
4694	return b;
4695}
4696
4697/** Destroy the buffer.
4698 * @param b a buffer created with yy_create_buffer()
4699 *
4700 */
4701    void yy_delete_buffer (YY_BUFFER_STATE  b )
4702{
4703
4704	if ( ! b )
4705		return;
4706
4707	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4708		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4709
4710	if ( b->yy_is_our_buffer )
4711		yyfree( (void *) b->yy_ch_buf  );
4712
4713	yyfree( (void *) b  );
4714}
4715
4716/* Initializes or reinitializes a buffer.
4717 * This function is sometimes called more than once on the same buffer,
4718 * such as during a yyrestart() or at EOF.
4719 */
4720    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4721
4722{
4723	int oerrno = errno;
4724
4725	yy_flush_buffer( b );
4726
4727	b->yy_input_file = file;
4728	b->yy_fill_buffer = 1;
4729
4730    /* If b is the current buffer, then yy_init_buffer was _probably_
4731     * called from yyrestart() or through yy_get_next_buffer.
4732     * In that case, we don't want to reset the lineno or column.
4733     */
4734    if (b != YY_CURRENT_BUFFER){
4735        b->yy_bs_lineno = 1;
4736        b->yy_bs_column = 0;
4737    }
4738
4739        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4740
4741	errno = oerrno;
4742}
4743
4744/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4745 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4746 *
4747 */
4748    void yy_flush_buffer (YY_BUFFER_STATE  b )
4749{
4750    	if ( ! b )
4751		return;
4752
4753	b->yy_n_chars = 0;
4754
4755	/* We always need two end-of-buffer characters.  The first causes
4756	 * a transition to the end-of-buffer state.  The second causes
4757	 * a jam in that state.
4758	 */
4759	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4760	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4761
4762	b->yy_buf_pos = &b->yy_ch_buf[0];
4763
4764	b->yy_at_bol = 1;
4765	b->yy_buffer_status = YY_BUFFER_NEW;
4766
4767	if ( b == YY_CURRENT_BUFFER )
4768		yy_load_buffer_state(  );
4769}
4770
4771/** Pushes the new state onto the stack. The new state becomes
4772 *  the current state. This function will allocate the stack
4773 *  if necessary.
4774 *  @param new_buffer The new state.
4775 *
4776 */
4777void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4778{
4779    	if (new_buffer == NULL)
4780		return;
4781
4782	yyensure_buffer_stack();
4783
4784	/* This block is copied from yy_switch_to_buffer. */
4785	if ( YY_CURRENT_BUFFER )
4786		{
4787		/* Flush out information for old buffer. */
4788		*(yy_c_buf_p) = (yy_hold_char);
4789		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4790		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4791		}
4792
4793	/* Only push if top exists. Otherwise, replace top. */
4794	if (YY_CURRENT_BUFFER)
4795		(yy_buffer_stack_top)++;
4796	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4797
4798	/* copied from yy_switch_to_buffer. */
4799	yy_load_buffer_state(  );
4800	(yy_did_buffer_switch_on_eof) = 1;
4801}
4802
4803/** Removes and deletes the top of the stack, if present.
4804 *  The next element becomes the new top.
4805 *
4806 */
4807void yypop_buffer_state (void)
4808{
4809    	if (!YY_CURRENT_BUFFER)
4810		return;
4811
4812	yy_delete_buffer(YY_CURRENT_BUFFER );
4813	YY_CURRENT_BUFFER_LVALUE = NULL;
4814	if ((yy_buffer_stack_top) > 0)
4815		--(yy_buffer_stack_top);
4816
4817	if (YY_CURRENT_BUFFER) {
4818		yy_load_buffer_state(  );
4819		(yy_did_buffer_switch_on_eof) = 1;
4820	}
4821}
4822
4823/* Allocates the stack if it does not exist.
4824 *  Guarantees space for at least one push.
4825 */
4826static void yyensure_buffer_stack (void)
4827{
4828	yy_size_t num_to_alloc;
4829
4830	if (!(yy_buffer_stack)) {
4831
4832		/* First allocation is just for 2 elements, since we don't know if this
4833		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4834		 * immediate realloc on the next call.
4835         */
4836      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
4837		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4838								(num_to_alloc * sizeof(struct yy_buffer_state*)
4839								);
4840		if ( ! (yy_buffer_stack) )
4841			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4842
4843		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4844
4845		(yy_buffer_stack_max) = num_to_alloc;
4846		(yy_buffer_stack_top) = 0;
4847		return;
4848	}
4849
4850	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4851
4852		/* Increase the buffer to prepare for a possible push. */
4853		yy_size_t grow_size = 8 /* arbitrary grow size */;
4854
4855		num_to_alloc = (yy_buffer_stack_max) + grow_size;
4856		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4857								((yy_buffer_stack),
4858								num_to_alloc * sizeof(struct yy_buffer_state*)
4859								);
4860		if ( ! (yy_buffer_stack) )
4861			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4862
4863		/* zero only the new slots.*/
4864		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4865		(yy_buffer_stack_max) = num_to_alloc;
4866	}
4867}
4868
4869/** Setup the input buffer state to scan directly from a user-specified character buffer.
4870 * @param base the character buffer
4871 * @param size the size in bytes of the character buffer
4872 *
4873 * @return the newly allocated buffer state object.
4874 */
4875YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
4876{
4877	YY_BUFFER_STATE b;
4878
4879	if ( size < 2 ||
4880	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
4881	     base[size-1] != YY_END_OF_BUFFER_CHAR )
4882		/* They forgot to leave room for the EOB's. */
4883		return NULL;
4884
4885	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
4886	if ( ! b )
4887		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4888
4889	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
4890	b->yy_buf_pos = b->yy_ch_buf = base;
4891	b->yy_is_our_buffer = 0;
4892	b->yy_input_file = NULL;
4893	b->yy_n_chars = b->yy_buf_size;
4894	b->yy_is_interactive = 0;
4895	b->yy_at_bol = 1;
4896	b->yy_fill_buffer = 0;
4897	b->yy_buffer_status = YY_BUFFER_NEW;
4898
4899	yy_switch_to_buffer( b  );
4900
4901	return b;
4902}
4903
4904/** Setup the input buffer state to scan a string. The next call to yylex() will
4905 * scan from a @e copy of @a str.
4906 * @param yystr a NUL-terminated string to scan
4907 *
4908 * @return the newly allocated buffer state object.
4909 * @note If you want to scan bytes that may contain NUL values, then use
4910 *       yy_scan_bytes() instead.
4911 */
4912YY_BUFFER_STATE yy_scan_string (const char * yystr )
4913{
4914
4915	return yy_scan_bytes( yystr, (int) strlen(yystr) );
4916}
4917
4918/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4919 * scan from a @e copy of @a bytes.
4920 * @param yybytes the byte buffer to scan
4921 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4922 *
4923 * @return the newly allocated buffer state object.
4924 */
4925YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
4926{
4927	YY_BUFFER_STATE b;
4928	char *buf;
4929	yy_size_t n;
4930	int i;
4931
4932	/* Get memory for full buffer, including space for trailing EOB's. */
4933	n = (yy_size_t) (_yybytes_len + 2);
4934	buf = (char *) yyalloc( n  );
4935	if ( ! buf )
4936		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4937
4938	for ( i = 0; i < _yybytes_len; ++i )
4939		buf[i] = yybytes[i];
4940
4941	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4942
4943	b = yy_scan_buffer( buf, n );
4944	if ( ! b )
4945		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4946
4947	/* It's okay to grow etc. this buffer, and we should throw it
4948	 * away when we're done.
4949	 */
4950	b->yy_is_our_buffer = 1;
4951
4952	return b;
4953}
4954
4955    static void yy_push_state (int  _new_state )
4956{
4957    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4958		{
4959		yy_size_t new_size;
4960
4961		(yy_start_stack_depth) += YY_START_STACK_INCR;
4962		new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
4963
4964		if ( ! (yy_start_stack) )
4965			(yy_start_stack) = (int *) yyalloc( new_size  );
4966
4967		else
4968			(yy_start_stack) = (int *) yyrealloc(
4969					(void *) (yy_start_stack), new_size  );
4970
4971		if ( ! (yy_start_stack) )
4972			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4973		}
4974
4975	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4976
4977	BEGIN(_new_state);
4978}
4979
4980    static void yy_pop_state  (void)
4981{
4982    	if ( --(yy_start_stack_ptr) < 0 )
4983		YY_FATAL_ERROR( "start-condition stack underflow" );
4984
4985	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4986}
4987
4988#ifndef YY_EXIT_FAILURE
4989#define YY_EXIT_FAILURE 2
4990#endif
4991
4992static void yynoreturn yy_fatal_error (const char* msg )
4993{
4994			fprintf( stderr, "%s\n", msg );
4995	exit( YY_EXIT_FAILURE );
4996}
4997
4998/* Redefine yyless() so it works in section 3 code. */
4999
5000#undef yyless
5001#define yyless(n) \
5002	do \
5003		{ \
5004		/* Undo effects of setting up yytext. */ \
5005        int yyless_macro_arg = (n); \
5006        YY_LESS_LINENO(yyless_macro_arg);\
5007		yytext[yyleng] = (yy_hold_char); \
5008		(yy_c_buf_p) = yytext + yyless_macro_arg; \
5009		(yy_hold_char) = *(yy_c_buf_p); \
5010		*(yy_c_buf_p) = '\0'; \
5011		yyleng = yyless_macro_arg; \
5012		} \
5013	while ( 0 )
5014
5015/* Accessor  methods (get/set functions) to struct members. */
5016
5017/** Get the current line number.
5018 *
5019 */
5020int yyget_lineno  (void)
5021{
5022
5023    return yylineno;
5024}
5025
5026/** Get the input stream.
5027 *
5028 */
5029FILE *yyget_in  (void)
5030{
5031        return yyin;
5032}
5033
5034/** Get the output stream.
5035 *
5036 */
5037FILE *yyget_out  (void)
5038{
5039        return yyout;
5040}
5041
5042/** Get the length of the current token.
5043 *
5044 */
5045int yyget_leng  (void)
5046{
5047        return yyleng;
5048}
5049
5050/** Get the current token.
5051 *
5052 */
5053
5054char *yyget_text  (void)
5055{
5056        return yytext;
5057}
5058
5059/** Set the current line number.
5060 * @param _line_number line number
5061 *
5062 */
5063void yyset_lineno (int  _line_number )
5064{
5065
5066    yylineno = _line_number;
5067}
5068
5069/** Set the input stream. This does not discard the current
5070 * input buffer.
5071 * @param _in_str A readable stream.
5072 *
5073 * @see yy_switch_to_buffer
5074 */
5075void yyset_in (FILE *  _in_str )
5076{
5077        yyin = _in_str ;
5078}
5079
5080void yyset_out (FILE *  _out_str )
5081{
5082        yyout = _out_str ;
5083}
5084
5085int yyget_debug  (void)
5086{
5087        return yy_flex_debug;
5088}
5089
5090void yyset_debug (int  _bdebug )
5091{
5092        yy_flex_debug = _bdebug ;
5093}
5094
5095static int yy_init_globals (void)
5096{
5097        /* Initialization is the same as for the non-reentrant scanner.
5098     * This function is called from yylex_destroy(), so don't allocate here.
5099     */
5100
5101    (yy_buffer_stack) = NULL;
5102    (yy_buffer_stack_top) = 0;
5103    (yy_buffer_stack_max) = 0;
5104    (yy_c_buf_p) = NULL;
5105    (yy_init) = 0;
5106    (yy_start) = 0;
5107
5108    (yy_start_stack_ptr) = 0;
5109    (yy_start_stack_depth) = 0;
5110    (yy_start_stack) =  NULL;
5111
5112/* Defined in main.c */
5113#ifdef YY_STDINIT
5114    yyin = stdin;
5115    yyout = stdout;
5116#else
5117    yyin = NULL;
5118    yyout = NULL;
5119#endif
5120
5121    /* For future reference: Set errno on error, since we are called by
5122     * yylex_init()
5123     */
5124    return 0;
5125}
5126
5127/* yylex_destroy is for both reentrant and non-reentrant scanners. */
5128int yylex_destroy  (void)
5129{
5130
5131    /* Pop the buffer stack, destroying each element. */
5132	while(YY_CURRENT_BUFFER){
5133		yy_delete_buffer( YY_CURRENT_BUFFER  );
5134		YY_CURRENT_BUFFER_LVALUE = NULL;
5135		yypop_buffer_state();
5136	}
5137
5138	/* Destroy the stack itself. */
5139	yyfree((yy_buffer_stack) );
5140	(yy_buffer_stack) = NULL;
5141
5142    /* Destroy the start condition stack. */
5143        yyfree( (yy_start_stack)  );
5144        (yy_start_stack) = NULL;
5145
5146    /* Reset the globals. This is important in a non-reentrant scanner so the next time
5147     * yylex() is called, initialization will occur. */
5148    yy_init_globals( );
5149
5150    return 0;
5151}
5152
5153/*
5154 * Internal utility routines.
5155 */
5156
5157#ifndef yytext_ptr
5158static void yy_flex_strncpy (char* s1, const char * s2, int n )
5159{
5160
5161	int i;
5162	for ( i = 0; i < n; ++i )
5163		s1[i] = s2[i];
5164}
5165#endif
5166
5167#ifdef YY_NEED_STRLEN
5168static int yy_flex_strlen (const char * s )
5169{
5170	int n;
5171	for ( n = 0; s[n]; ++n )
5172		;
5173
5174	return n;
5175}
5176#endif
5177
5178void *yyalloc (yy_size_t  size )
5179{
5180			return malloc(size);
5181}
5182
5183void *yyrealloc  (void * ptr, yy_size_t  size )
5184{
5185
5186	/* The cast to (char *) in the following accommodates both
5187	 * implementations that use char* generic pointers, and those
5188	 * that use void* generic pointers.  It works with the latter
5189	 * because both ANSI C and C++ allow castless assignment from
5190	 * any pointer type to void*, and deal with argument conversions
5191	 * as though doing an assignment.
5192	 */
5193	return realloc(ptr, size);
5194}
5195
5196void yyfree (void * ptr )
5197{
5198			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
5199}
5200
5201#define YYTABLES_NAME "yytables"
5202
5203#line 1014 "scan.l"
5204
5205
5206
5207int yywrap(void)
5208	{
5209	if ( --num_input_files > 0 )
5210		{
5211		set_input_file( *++input_files );
5212		return 0;
5213		}
5214
5215	else
5216		return 1;
5217	}
5218
5219
5220/* set_input_file - open the given file (if NULL, stdin) for scanning */
5221
5222void set_input_file( char *file )
5223	{
5224	if ( file && strcmp( file, "-" ) )
5225		{
5226		infilename = xstrdup(file);
5227		yyin = fopen( infilename, "r" );
5228
5229		if ( yyin == NULL )
5230			lerr( _( "can't open %s" ), file );
5231		}
5232
5233	else
5234		{
5235		yyin = stdin;
5236		infilename = xstrdup("<stdin>");
5237		}
5238
5239	linenum = 1;
5240	}
5241
5242