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