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