Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Allow cluster tag to use the core tag...
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 380
407 #define YY_END_OF_BUFFER 381
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[2221] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,  381,  379,   15,   10,   10,   15,
437        15,  359,   10,  359,    5,    6,    5,    8,    9,    8,
438
439       375,  367,  368,  376,  373,  376,  374,  378,  367,  368,
440       378,  379,   22,   10,   22,   22,   22,   20,   22,   26,
441        10,   26,   26,   26,  379,  379,   26,   37,   10,   37,
442        37,   37,   35,   37,   37,   37,  376,  375,   59,   10,
443        59,   59,   59,   57,   59,   59,   59,   59,   63,   10,
444        63,  379,   63,   82,   10,   82,   82,   82,   80,   82,
445        82,   82,   86,   10,   86,   95,   10,   95,   95,   95,
446        93,   95,   95,   99,   10,   99,   99,  379,   99,   99,
447       379,  379,   99,  379,   99,  379,   99,  122,   10,  122,
448       122,  122,  120,  122,  122,  122,  122,  122,  126,   10,
449
450       126,  126,  161,   10,  161,  161,  161,  159,  161,  161,
451       161,  161,  161,  161,  161,  165,   10,  165,  186,   10,
452       186,  186,  186,  184,  186,  186,  186,  186,  186,  186,
453       190,   10,  190,  199,   10,  199,  199,  199,  197,  199,
454       199,  203,   10,  203,  230,   10,  230,  230,  230,  228,
455       230,  230,  230,  230,  234,   10,  234,  234,  247,   10,
456       247,  247,  247,  245,  247,  247,  251,   10,  251,  379,
457       251,  268,   10,  268,  268,  268,  266,  268,  268,  268,
458       272,   10,  272,  272,  285,   10,  285,  285,  285,  283,
459       285,  285,  289,   10,  289,  302,   10,  302,  302,  302,
460
461       300,  302,  302,  302,  306,   10,  306,  306,  319,   10,
462       319,  319,  319,  317,  319,  319,  319,  319,  323,   10,
463       323,  379,  323,  330,   10,  330,  330,  330,  328,  330,
464       334,   10,  334,  341,   10,  341,  341,  341,  339,  341,
465       345,   10,  345,  345,  345,  354,   10,  354,  354,  354,
466       352,  354,  354,  358,   10,  358,   10,    0,    2,    2,
467         0,    4,    7,  370,  369,    0,    0,    0,    0,    0,
468         0,    0,   21,   23,   23,    0,    0,    0,    0,    0,
469         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
470         0,    0,   36,   38,   38,   38,   38,    0,    0,    0,
471
472        58,   60,   60,   60,   60,   60,   60,   60,    0,    0,
473        81,   83,   83,   83,   83,    0,   94,   96,   96,   96,
474         0,    0,    0,    0,    0,    0,    0,    0,    0,  121,
475       123,  123,  123,  123,  123,  123,    0,  160,  162,  162,
476       162,  162,  162,  162,  162,  162,  162,  162,  162,    0,
477       185,  187,  187,  187,  187,  187,  187,  187,    0,  198,
478       200,  200,  200,    0,  229,  231,  231,  231,  231,  231,
479       231,    0,  246,  248,  248,  248,  248,    0,    0,  267,
480       269,  269,  269,  269,  269,    0,  284,  286,  286,  286,
481         0,  301,  303,  303,  303,  303,    0,  318,  320,  320,
482
483       320,  320,  320,    0,    0,  329,  331,  331,    0,  340,
484       342,  342,    0,    0,  353,  355,  355,  355,    0,    0,
485         0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
486         0,  377,    0,   23,    0,    0,   88,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
488        87,    0,    0,    0,    0,   38,    0,    0,   38,    0,
489         0,    0,  372,   60,    0,    0,   60,   60,   60,   60,
490         0,    0,    0,   83,   83,   83,    0,    0,    0,    0,
491        96,    0,    0,   88,    0,    0,    0,    0,   87,    0,
492         0,  123,  123,  123,    0,    0,  123,  123,    0,    0,
493
494       162,    0,    0,  162,    0,    0,  162,  162,  162,  162,
495       162,  162,    0,    0,  187,  187,    0,    0,  187,  187,
496       187,    0,    0,  200,    0,    0,    0,    0,  231,    0,
497         0,  231,  231,  231,    0,    0,  248,  248,  248,    0,
498         0,    0,  269,  269,  269,  269,    0,    0,  286,    0,
499         0,    0,    0,  303,  303,  303,    0,    0,  320,  320,
500       320,  320,    0,    0,    0,  331,    0,    0,    0,    0,
501         0,    0,    0,    0,    0,  355,    0,    0,    0,   14,
502         1,    0,    0,  365,    0,    0,    0,  362,  361,    0,
503         0,   23,    0,    0,   25,    0,   88,    0,    0,    0,
504
505         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
506         0,   87,    0,    0,    0,    0,   38,    0,   30,   29,
507        38,    0,    0,    0,   40,    0,   60,    0,   44,   43,
508         0,    0,   60,    0,    0,   60,    0,    0,   62,    0,
509         0,   83,   83,   83,    0,    0,   85,    0,    0,   90,
510        89,   96,    0,    0,   98,    0,    0,    0,    0,    0,
511         0,    0,    0,  123,  123,  123,    0,  103,  102,  123,
512       123,    0,    0,  125,    0,  162,  162,  162,    0,  142,
513       141,  162,    0,  130,  129,    0,    0,  162,  162,  162,
514       162,  162,    0,    0,  164,    0,  187,  187,  187,    0,
515
516       169,  168,    0,    0,  187,  187,    0,    0,  189,    0,
517       200,    0,  194,  193,    0,    0,  202,    0,  231,    0,
518       207,  206,  231,  231,  231,    0,    0,  233,    0,    0,
519         0,    0,    0,  248,    0,    0,  250,    0,    0,    0,
520         0,  269,  269,    0,    0,  269,    0,    0,  271,    0,
521       286,    0,  276,  275,    0,    0,  288,    0,    0,    0,
522       303,  303,    0,    0,    0,    0,  305,    0,  320,  320,
523       320,  320,    0,    0,  322,    0,    0,  331,    0,    0,
524       333,    0,    0,  338,  337,    0,    0,  344,    0,    0,
525         0,  349,  348,  355,    0,    0,  357,    0,    0,    0,
526
527       366,  360,    0,    0,    0,   23,    0,    0,    0,    0,
528         0,    0,  100,  204,  167,    0,    0,  346,    0,    0,
529         0,    0,    0,  166,    0,    0,    0,    0,   38,    0,
530         0,   60,    0,   48,   47,    0,    0,    0,   46,   45,
531        60,    0,  347,   83,    0,    0,   83,    0,   96,    0,
532        97,    0,    0,  101,  205,    0,    0,    0,  123,  123,
533         0,    0,  123,  123,    0,  162,  162,  162,    0,    0,
534         0,  144,  143,  162,  162,  162,  162,  162,    0,  187,
535       187,  187,    0,  177,  176,  187,  187,    0,  200,    0,
536       231,  231,  231,  231,    0,    0,  240,  239,    0,  238,
537
538       237,  248,    0,  204,    0,  257,  256,  269,  269,    0,
539       255,  254,  269,    0,  286,    0,    0,  295,  294,  303,
540       303,    0,  293,  292,    0,  320,    0,    0,  320,  320,
541         0,    0,  331,    0,    0,    0,  355,    0,    0,    0,
542         0,   12,    0,  363,  364,    0,   23,    0,    0,    0,
543         0,    0,    0,  100,  204,    0,  167,    0,    0,  346,
544         0,  235,   28,    0,    0,  166,   27,    0,    0,   32,
545        31,   38,    0,    0,   60,    0,   50,   49,   60,    0,
546       347,   83,    0,    0,    0,    0,    0,    0,   96,    0,
547         0,  101,  205,  236,  236,  235,  123,  123,    0,  107,
548
549       106,    0,    0,    0,    0,  123,    0,    0,    0,  162,
550       162,    0,  140,  139,    0,    0,  162,  162,  162,  162,
551         0,    0,    0,  187,  187,    0,    0,  187,    0,  200,
552         0,  231,  231,  231,    0,    0,  231,    0,  248,    0,
553         0,  269,  269,  269,    0,  286,    0,  303,  303,    0,
554       320,    0,  310,  309,  320,  320,    0,    0,    0,    0,
555         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
556         0,   23,    0,    0,    0,    0,    0,  336,    0,    0,
557         0,   41,  235,  191,   28,    0,  335,    0,   27,    0,
558         0,   38,    0,    0,   60,   60,    0,   83,    0,    0,
559
560         0,    0,    0,    0,    0,    0,    0,   77,   76,    0,
561        96,    0,    0,  236,  192,  123,  123,    0,  105,  104,
562         0,    0,    0,  123,    0,  124,    0,  152,  151,    0,
563         0,  162,    0,  138,  137,    0,    0,  162,  162,    0,
564         0,    0,    0,  173,  172,    0,    0,  187,    0,  171,
565       170,  187,    0,  188,  200,    0,  231,  231,  231,    0,
566         0,    0,  231,    0,  232,  248,    0,    0,    0,    0,
567         0,    0,  269,    0,  286,    0,    0,    0,    0,    0,
568         0,  320,  320,  320,    0,    0,    0,  327,  326,    0,
569         0,   42,    0,  351,  350,    0,  356,    0,    0,    0,
570
571         0,    0,    0,    0,  252,    0,    0,  128,  336,    0,
572         0,  308,   41,  191,    0,  335,  127,    0,  307,   38,
573         0,    0,   39,   60,   60,    0,    0,    0,    0,    0,
574         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
575         0,  253,    0,  192,  123,  123,    0,    0,  123,    0,
576       154,  153,  162,    0,  132,  131,    0,    0,  162,    0,
577       134,  133,    0,    0,  175,  174,  187,  187,  200,    0,
578       231,    0,    0,  231,  231,    0,    0,  231,  248,    0,
579       249,    0,    0,  261,  260,    0,  259,  258,  269,    0,
580       286,    0,    0,  299,  298,    0,  297,  296,    0,  320,
581
582       320,  320,    0,    0,    0,    0,   42,    0,    0,    0,
583        17,    0,   19,   18,    0,  252,  324,    0,  128,  273,
584        16,  308,    0,  127,    0,  307,   38,  371,   60,   60,
585         0,   61,    0,   79,   78,    0,    0,    0,    0,    0,
586         0,    0,    0,    0,    0,    0,    0,   92,   91,  253,
587         0,  123,  123,    0,    0,    0,    0,  123,  162,    0,
588       136,  135,  162,    0,  187,  187,  200,    0,  201,  231,
589         0,  213,  212,  231,  231,    0,    0,    0,    0,  231,
590       248,  274,  269,    0,  286,    0,    0,    0,    0,  320,
591       320,    0,  325,    0,    0,  343,    0,    0,    0,   17,
592
593         0,  324,    0,  273,   16,    0,    0,   38,    0,    0,
594        60,    0,    0,    0,    0,    0,    0,    0,    0,    0,
595         0,    0,    0,  123,  123,    0,  113,    0,  112,  123,
596       162,  162,    0,  163,  187,  187,  200,    0,    0,  231,
597       231,  231,    0,  217,    0,  216,  231,  248,  274,  269,
598         0,  270,    0,    0,    0,    0,    0,  312,  311,    0,
599         0,  320,    0,  321,  325,    0,    0,    0,    0,    0,
600        24,    0,    0,    0,   38,    0,    0,    0,   60,    0,
601         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
602         0,  123,  123,  115,  114,    0,    0,  162,  162,  187,
603
604       187,  200,    0,  209,  208,  231,  231,  231,  219,  218,
605         0,    0,  248,  269,    0,    0,    0,    0,  287,    0,
606         0,  316,  315,    0,    0,    0,  332,    0,    0,    0,
607       290,    0,    0,    0,    0,    0,    0,    0,    0,   60,
608         0,    0,    0,    0,   69,    0,    0,    0,    0,   68,
609         0,  291,  123,    0,    0,    0,  117,  116,  162,  162,
610         0,    0,  187,    0,    0,  231,  231,  231,    0,  221,
611       220,    0,    0,    0,    0,    0,    0,    0,    0,    0,
612         0,    0,    0,  314,  313,    0,    0,    0,  290,    0,
613         0,    0,   34,   33,    0,    0,    0,    0,   60,    0,
614
615         0,    0,    0,    0,    0,    0,    0,    0,  291,    0,
616         0,  123,    0,  119,  118,  162,  162,    0,  179,  178,
617       187,    0,  196,  195,  231,    0,    0,  231,    0,    0,
618         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
619         0,    0,    0,    0,    0,   65,   64,    0,    0,    0,
620         0,    0,    0,    0,    0,   75,    0,    0,    0,   74,
621         0,    0,    0,  109,  108,  123,  162,  162,  187,  231,
622         0,  215,  214,  231,    0,    0,    0,    0,    0,    0,
623         0,    0,    0,    0,  278,    0,    0,  277,    0,  304,
624         0,    0,    0,    0,    0,    0,   65,   64,    0,    0,
625
626         0,    0,    0,   52,   51,    0,    0,    0,    0,    0,
627         0,    0,  123,  162,    0,    0,    0,    0,    0,    0,
628         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
629         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
630         0,   56,    0,   55,   73,    0,    0,   72,    0,    0,
631         0,   84,  123,  162,    0,    0,    0,    0,    0,    0,
632         0,  211,  210,    0,    0,    0,  244,    0,  243,    0,
633       265,    0,  264,    0,  280,  282,  279,  281,    0,    0,
634         0,   12,    0,   12,    0,    0,    0,   67,   71,   66,
635        70,  123,  162,    0,    0,    0,    0,    0,    0,    0,
636
637         0,    0,    0,    0,    0,  242,  241,  263,  262,    0,
638         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
639         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
640         0,    0,    0,    0,    0,    0,    0,    0,   54,   53,
641         0,  111,  110,    0,    0,    0,    0,    0,    0,    0,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
643         0,    0,    0,   11,    0,    0,    0,    0,    0,    0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,  146,    0,    0,  145,    0,  181,    0,
652       180,    0,    0,  223,    0,    0,  222,    0,    0,    0,
653         0,    0,  150,    0,  149,    0,    0,    0,  225,    0,
654       224,    0,    0,    0,    0,    0,    0,    0,    0,    0,
655         0,    0,    0,    0,    0,  156,    0,  155,    0,    0,
656         0,    0,    0,    0,    0,    0,  158,  157,  148,  147,
657       183,  182,  227,  226,    0,    0,    0,    0,    0,    0,
658
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,   13,    0
661     } ;
662
663 static yyconst flex_int32_t yy_ec[256] =
664     {   0,
665         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
666         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
667         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
668         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
669         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
670        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
671        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
672        16,   28,   29,   16,   30,   31,   32,   33,   34,   35,
673        16,   36,   37,   38,   39,   40,   41,   42,   43,   16,
674        44,    1,   45,    1,   46,    1,   47,   48,   49,   50,
675
676        51,   52,   53,   54,   55,   16,   56,   57,   58,   59,
677        60,   61,   62,   63,   64,   65,   66,   67,   68,   69,
678        70,   16,    1,    1,    1,    1,    1,    1,    1,    1,
679         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
680         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
681         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
682         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
683         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
684         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
685         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
686
687         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
688         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
689         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
690         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
691         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
692         1,    1,    1,    1,    1
693     } ;
694
695 static yyconst flex_int32_t yy_meta[71] =
696     {   0,
697         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
698         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
699         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
700         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
701         5,    5,    5,    1,    1,    5,    9,    9,    9,    9,
702         9,    9,    5,    5,    5,    5,    5,    5,    5,    5,
703         5,    5,    5,    5,    5,    5,    5,    5,    5,    5
704     } ;
705
706 static yyconst flex_int16_t yy_base[2497] =
707     {   0,
708         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
709        14,   17,   33,   36,   49,   55,   45,   61,   66,   73,
710       106,  173,   76,   79,   83,  126,  129,  134,  137,  154,
711       193,  196,  201,  204,  221,  224,  227,  230,  248,  309,
712       280,  286,  370,  434,  268,  273,  277,  330,  333,  337,
713       340,  390,  498,  563,  393,  398,  628,  691,  401,  454,
714       457,  462,  465,  518,  521,  526,  529,  583,  586,  591,
715       594,  648,  651,  656,  659,  711,  714,  719,  722,  739,
716       745,  748,  756,  765,  768,  773,  776,  785,  803,  867,
717       823,  826,  831,  835,  887,  890,  895,  899,  931,    0,
718
719      1000, 1003, 1021, 1085, 1041, 1044, 1149, 1204, 1049, 1053,
720      1259, 1323, 1105, 1108, 1113, 1117, 1169, 1172, 1177, 1181,
721      1387, 1451, 1224, 1227, 1232, 1236, 1279, 1282, 1287, 1290,
722      1515, 1579, 1343, 1346, 1351, 1354, 1407, 1410, 1415, 1418,
723      1643, 1698, 1471, 1474, 1753, 1817, 1479, 1482, 1535, 1538,
724      1543, 1546, 1599, 1602, 1881, 1945, 1607, 1610, 1663, 1666,
725      1671, 1674, 1718, 1721, 2009, 2076, 1726, 1729, 2143, 2198,
726      1773, 1776, 1781, 1784, 1837, 1840, 1845, 1848, 2253, 2320,
727      1901, 1904,    0,    0, 5394, 7748, 7748,   96,  100,   29,
728        41, 7748,  157,   51, 7748, 7748, 5383, 7748, 7748, 5372,
729
730      7748, 5385, 5367,  360, 7748, 7748, 7748, 7748, 5365, 5365,
731      5322,   84, 7748,  160, 5346,    0,  144, 7748, 5314, 7748,
732       164, 2383, 5314,  492,  224, 5349, 5299, 7748,  167, 5338,
733         0,  216, 7748, 5294, 5294, 5292,  344, 5280, 7748,  303,
734      5303,    0,  341, 7748, 5263, 5261,   41, 5244, 7748,  427,
735        13,   81,  141, 7748,  482, 5278,    0,  342, 7748, 5236,
736      5235, 5225, 7748,  491,  345, 7748,  548, 5260,    0,  347,
737      7748, 5222, 5211, 7748,  556, 1919, 1920, 5204,   80, 5238,
738       198,  252,  364,  613,   59, 5246,   83, 7748,  613, 5224,
739         0,  405, 7748, 5176, 5180, 5187, 5175, 5168, 7748,  618,
740
741       177,  235, 7748,  676, 5212,    0,  469, 7748,  167, 5170,
742      5166, 5168,  149, 5166,  147, 7748,  682,  476, 7748,  685,
743      5188,    0,  535, 7748, 5139, 5145, 5150, 5152, 5137, 5137,
744      7748,  793,  606, 7748,  796, 5169,    0,  540, 7748, 5125,
745      5133, 7748,  852,  780, 7748,  857, 5162,    0,  541, 7748,
746      5133, 5125, 5127,  243, 7748,  916,  348,  357, 7748,  921,
747      5146,    0,  605, 7748, 5101,  275, 7748, 1006,  670, 5142,
748      5082, 7748, 1009, 5117,    0,  660, 7748, 5072, 5066,  336,
749      7748, 1012, 5114,  420, 7748, 1070, 5101,    0,  723, 7748,
750      5065, 5068, 7748, 1077, 1056, 7748, 1134, 5093,    0,  734,
751
752      7748, 5048, 5039, 5043, 7748, 1141, 5092,  470, 7748, 1198,
753      5075,    0,  740, 7748, 5028, 5032, 5032, 5021, 7748, 1253,
754      1071, 5069,  240, 7748, 1307, 5060,    0,  760, 7748, 5031,
755      7748, 1315, 1294, 7748, 1318, 5049,    0,  841, 7748, 5018,
756      7748, 1371, 1864, 5003,  180, 7748, 1379, 5041,    0,  905,
757      7748, 5004, 5006, 7748, 1382, 1358, 1436,   18, 4982, 7748,
758      5033, 5022, 7748, 7748, 7748, 1429,  241, 4975, 4970, 4966,
759      5010, 4969, 7748,    0, 4961, 4961, 4974, 4947, 4934,  364,
760      4942, 4943,  794,  373, 4927,  413, 4948,  477,  858, 4921,
761      1140, 1195, 7748,    0, 4925, 1910, 4914,  234, 4907, 4951,
762
763      7748,    0, 4910, 1968, 4899, 4919, 4899, 4903, 4888, 1372,
764      7748,    0, 4899, 4889, 4888, 4869, 7748,    0, 1975, 4866,
765      4905, 4886, 4850, 4859, 4862,  403, 4872,  488,  532, 7748,
766         0, 4861,  539, 1981, 4834, 4852, 4837, 7748,    0, 4844,
767      1989, 4818, 2029, 4813, 4808, 4816, 4799, 4801, 4785, 4787,
768      7748,    0, 4788, 4766, 2032, 4754, 4750, 4769, 4745, 7748,
769         0, 4744, 2036, 4736, 7748,    0, 4739, 2039, 4726, 4739,
770      4737, 4725, 7748,    0, 4712, 4716, 4706, 4678, 4685, 7748,
771         0, 4673, 4691, 4686, 4676, 4710, 7748,    0, 4668, 2042,
772      4665, 7748,    0, 4656, 4656, 4646, 4646, 7748,    0, 4633,
773
774      4616, 4622, 4621, 4605, 4602, 7748,    0, 4606, 4614, 7748,
775         0, 2096, 4611,  553, 7748,    0, 2099, 4601, 4583, 4623,
776      4623,  442, 4574, 7748, 1432,    0, 4569, 4561, 4603, 4600,
777      4555, 7748, 4564, 4530, 1914, 2102, 1500, 4526, 4517, 4507,
778      4513, 4501, 4497, 4504, 4505, 4486, 4465, 4452, 4469, 4456,
779      1503, 4435, 4448, 4448, 4433, 4441, 2105, 1567, 4435, 4458,
780      2108, 2163, 7748, 4429, 2123, 1631, 2166, 4420, 2170, 4431,
781      2173, 2176, 4416, 4416, 4419, 4412, 2218, 2225, 2228, 1805,
782      4395, 2231, 2273, 1509, 4397, 4386, 4388, 4376, 1747, 4375,
783      4369, 4375, 4366, 4376, 2276, 1869, 4371, 4356, 2279, 2282,
784
785      1510, 2287, 2060, 4368, 2341, 2127, 2344, 4360, 4357, 4349,
786      4340, 4349, 2347, 2350,  436, 4326, 2353, 2188, 2374, 4336,
787      4323, 2377, 2382, 4320, 2387, 2309, 2396, 2406, 4332, 2409,
788      2415, 4329, 4310, 4273, 2432, 2439, 2451, 2454, 2458, 2447,
789      2461, 4273, 2472, 2476, 2480, 2483, 2486, 2494, 4276, 2501,
790      2506, 2515, 2525, 2520, 2534, 2530, 2540, 2544, 4276, 4259,
791      4265, 4251, 2548, 2552, 4260, 4241, 2555, 2559, 2563, 2567,
792      2583, 2586, 4246, 2589, 2593, 4234, 2607, 2614, 4275, 7748,
793      7748,  196, 4237, 7748, 4270, 4269, 4220, 7748, 7748, 4204,
794      4203, 4211, 2617, 2621, 7748, 2627, 1506, 4201, 4188, 4206,
795
796      4187, 4184, 4170, 4177, 4169, 4165,  477, 4172, 4156, 4170,
797      4165, 1692, 4152, 4151, 4163,  542, 2636, 2647, 7748, 7748,
798      2640, 4186, 2658, 2661, 7748, 2664, 4146, 2667, 7748, 7748,
799      2683, 2686, 2694, 2701, 2706, 4145, 2714, 2719, 7748, 2722,
800       595, 4142, 2725, 4141, 2728, 2733, 7748, 2743, 2748, 7748,
801      7748, 4133, 2756, 2762, 7748, 2765, 4127, 4138, 4107, 4114,
802      4102, 4097, 4096, 4098, 4100, 2768, 2771, 7748, 7748, 4086,
803      4096, 2789, 2792, 7748, 2795, 4071, 4091, 4082, 2798, 7748,
804      7748, 2814, 2817, 7748, 7748, 2825, 2828, 4072, 4078, 4083,
805      4075, 4063, 2836, 2843, 7748, 2846, 4058, 4049, 4057, 2849,
806
807      7748, 7748, 2858, 2865, 4043, 4045, 2876, 2879, 7748, 2882,
808      4048, 2885, 7748, 7748, 2901, 2904, 7748, 2907, 4029, 2911,
809      7748, 7748, 4036, 4035, 4033, 2926, 2932, 7748, 2935, 2938,
810      2941, 2956, 2959, 4032, 2967, 2975, 7748, 2978, 4025, 2981,
811      2987, 4012, 4008, 2999, 3002, 4019, 3010, 3013, 7748, 3017,
812      4019, 3020, 7748, 7748, 3032, 3036, 7748, 3039, 3043, 3051,
813      3999, 3993, 3046, 3064, 3072, 3075, 7748, 3079, 3983, 3082,
814      3994, 3973, 3085, 3100, 7748, 3104, 3971, 3984, 3107, 3110,
815      7748, 3113, 3119, 7748, 7748, 3132, 3135, 7748, 3139, 3983,
816      3142, 7748, 7748, 3981, 3154, 3158, 7748, 3165,  585, 3168,
817
818      7748, 7748, 4013, 3987, 3931, 3921, 3173, 3914, 3920, 3913,
819      3907, 3913, 1936, 2001, 2068, 3908, 3905, 2071, 3894, 3901,
820      3899, 3894, 3878, 2135, 3890, 3882, 3177, 3188, 3882, 3903,
821      3180, 3877, 3199, 7748, 7748, 3207, 3210, 3218, 7748, 7748,
822      3871, 3228, 2237, 3861, 3231, 3237, 3249, 3252, 3860, 3255,
823      7748, 3850, 3851, 2246, 3258, 3848, 3846, 3844, 3846, 3837,
824      3261, 3267, 3279, 3283, 3286, 3289, 3292, 3311, 3314, 3317,
825      3332, 7748, 7748, 3340, 3343, 3346, 3350, 3364, 3368, 3371,
826      3375, 3382, 3393, 7748, 7748, 3401, 3404, 3378, 3835, 3411,
827      3834, 3838, 3826, 3415, 3422, 3441, 7748, 7748, 3449, 7748,
828
829      7748, 3819, 3426, 3462, 3465, 7748, 7748, 3810, 3825, 3477,
830      7748, 7748, 3801, 3485, 3795, 3490, 3493, 7748, 7748, 3794,
831      3804, 3509, 7748, 7748, 3517, 3790, 3520, 3523, 3779, 3792,
832      3531, 3777, 3538, 3545, 3550, 3750, 3556, 3559,  687, 3789,
833      3564, 7748, 3787, 7748, 7748, 3742, 3737, 3569, 3730, 3742,
834      3728, 3739, 3736, 2301, 2839, 3738, 3574, 3726, 3705, 3579,
835      3710, 3583, 3588, 3713, 3714, 3591, 3594, 3699, 3597, 7748,
836      7748, 3703, 3719, 3605, 3686, 3610, 7748, 7748, 3683, 3624,
837      3620, 3683, 3633, 2338, 2392, 3645, 3648, 3656, 3684, 3671,
838      3670, 3659, 3663, 3666, 3669, 3675, 3685, 3672, 3679, 7748,
839
840      7748, 3687, 3690, 3698, 3706, 3676, 3701, 3716, 3721, 3737,
841      3740, 3743, 7748, 7748, 3751, 3758, 3769, 3772, 3775, 3778,
842      3781, 3796, 3802, 3814, 3817, 3820, 3828, 3838, 3823, 3667,
843      3845, 3672, 3646, 3661, 3848, 3852, 3661, 3860, 3648, 3866,
844      3649, 3869, 3875, 3879, 3898, 3642, 3901, 3904, 3907, 3910,
845      3635, 3925, 7748, 7748, 3632, 3621, 3933, 3629, 3936, 3942,
846      3955, 3959, 3617, 3963, 3967, 3983,  655,  339,  713, 7748,
847      3611, 3986, 3989, 3604, 3594, 3609, 3580, 3810, 3576, 3575,
848      3569, 3992, 3995, 3998, 4004, 3583, 4008, 3567, 4013, 3580,
849      3554, 3568, 3588, 4016, 3545, 3549, 4019, 4022, 3566, 3540,
850
851       635, 3535, 3534, 3521,  814, 3516, 4025, 7748, 7748, 4040,
852      4043, 3493, 3507, 4048, 4051, 3483, 3489, 4055, 7748, 7748,
853      4063, 3497, 3496, 3473, 4071, 7748, 4076, 7748, 7748, 4085,
854      4090, 3462, 4099, 7748, 7748, 4107, 4110, 4118, 3470, 4121,
855      4125, 4139, 4142, 7748, 7748, 4150, 4154, 3467, 4162, 7748,
856      7748, 3463, 4171, 7748, 3460, 4174, 3441, 4177, 3458, 4180,
857      3469, 3467, 3445, 4195, 7748, 3443, 4198, 3425, 4201, 4204,
858      4222, 4225, 3430, 4236, 3424, 4240, 4243, 4246, 4255, 4261,
859      4273, 3423, 3419, 3420, 4276, 3414, 4279, 7748, 7748, 4288,
860      4295, 4269, 4300, 7748, 7748, 4308, 7748,   40,  733,  699,
861
862      3414, 4314, 4317, 4327, 4332, 3405, 3402, 4339, 4342, 3401,
863      3401, 4347, 4350, 4353, 3397, 4356, 4359, 3396, 4362, 3399,
864      3405, 4365, 7748, 3385, 3392, 4368, 4372, 4375, 3405, 3399,
865      3397, 3394, 3380, 3383, 3374, 3372, 3356, 3346, 4390, 4393,
866      4396, 4404, 3316, 4411, 3307, 3298,  757,  873, 3303, 4414,
867      7748, 7748, 3297, 4422, 7748, 7748, 4430, 4434, 3267, 4442,
868      7748, 7748, 4450, 4453, 7748, 7748, 3262, 3263, 3240, 4461,
869      3246, 4464, 4469, 3247, 3223, 1027, 1031, 3210, 3174, 4482,
870      7748, 3159, 4485, 7748, 7748, 4494, 7748, 7748, 3105, 4502,
871      3088, 4505, 4508, 7748, 7748, 4517, 7748, 7748, 4525, 4528,
872
873      3080,   37, 4531,   70, 4534, 4537, 4540, 4546,  782,  604,
874      4556, 4565, 7748, 7748, 4560, 4573, 4579,   88, 4582, 4585,
875      4588, 4594,  223, 4597,  412, 4600,  490, 7748, 4603,  541,
876      4606, 7748, 4610, 7748, 7748,  646,  682,  708,  708,  730,
877       748,  755,  793,  801,  806, 4621, 4625, 7748, 7748, 4633,
878       774,  808,  814,  839,  877,  868,  887,  853,  854, 4636,
879      7748, 7748,  867, 4644,  878,  870,  966, 4647, 7748, 4650,
880      4653, 7748, 7748,  964,  960, 1010, 1043, 1023, 1054, 1024,
881      1037, 4668, 1054, 4671, 4674, 4680, 4683, 4686, 4695, 4704,
882      1062, 4707, 4710, 4713, 4716, 7748, 4722, 1127, 1395, 4726,
883
884      4742, 4745, 1049, 4748, 4751, 1063, 1065, 1055, 4754, 4757,
885      1072, 1087, 1093, 1108, 1102, 1129, 1137, 1136, 1153, 1142,
886      1153, 4765, 1127, 1131, 1156, 1226, 7748, 1224, 7748, 4768,
887      1191, 1184, 4772, 7748, 1179, 1187, 1183, 4777, 4791, 1199,
888      1218, 1230, 1282, 7748, 1286, 7748, 4786, 1239, 4799, 1241,
889      4805, 7748, 4808, 4811, 4819, 4826, 4829, 7748, 7748, 4838,
890      4841, 4849, 4852, 7748, 4856, 4859, 1282, 1459, 1292, 4862,
891      7748, 1250, 1262, 1300, 4867, 4871, 1340, 1341, 1299, 1331,
892      1340, 1379, 1394, 1418, 1397, 1405, 1406, 1412, 1432, 4881,
893      1397, 1397, 4885, 7748, 7748, 4891, 4894, 1419, 1432, 4903,
894
895      1433, 4909, 4912, 7748, 7748, 1435, 1440, 1438, 7748, 7748,
896      4922, 4927, 4935, 4940, 4943, 1518, 1582, 4953, 7748, 4958,
897      4961, 7748, 7748, 4972, 4977, 4985, 7748, 1575, 1557, 1621,
898      4990, 1445, 1450, 4993, 4997, 1495, 1522, 1516, 1532, 1496,
899      1537, 1535, 1535, 1568, 7748, 1593, 1579, 1583, 1587, 7748,
900      5005, 5011, 5014, 5017, 5025, 5035, 7748, 7748, 1570, 1582,
901      5043, 5046, 1587, 5055, 5061, 1581, 5069, 1590, 5073, 7748,
902      7748, 5081, 5087, 5095, 5099, 1608, 1625, 1636, 1638, 1645,
903      1647, 5107, 5113, 7748, 7748, 1670, 1762, 5121, 5126, 1618,
904      1620, 5129, 7748, 7748, 1664, 1658, 1675, 1681, 5140, 1688,
905
906      1705, 1728, 1715, 1700, 1718, 1732, 1723, 5143, 5146, 5149,
907      5158, 1694, 5167, 7748, 7748, 1695, 1699, 5175, 7748, 7748,
908      1711, 5184, 7748, 7748, 1738, 5153, 5192, 1720, 5200, 1762,
909      1813, 5208, 1821, 1826, 1751, 1760, 1790, 1759, 1768, 1795,
910      5216, 1793, 5219, 5222, 5225, 5244, 5247, 1779, 1791, 1800,
911      1828, 5250, 5253, 1829, 1831, 7748, 1836, 1840, 1845, 7748,
912      1848, 5261, 5264, 7748, 7748, 1824, 1825, 5272, 5275, 5280,
913      5283, 7748, 7748, 5293, 1863, 1883, 1876, 1889, 1886, 1895,
914      1889, 1898, 1895, 1904, 7748, 1903, 1917, 7748, 5298, 7748,
915      2005, 5301, 5304, 5313, 5333, 5378, 5325, 5328, 1919, 1955,
916
917      1949, 1966, 5353, 7748, 7748, 1974, 1955, 1957, 1986, 1965,
918      1967, 5344, 1945, 1957, 5369, 5398, 5372, 5406, 5414, 5422,
919      5417, 5435, 2001, 2000, 2040, 2013, 2046, 2019, 2048, 2022,
920      2054, 2061, 2059, 2083, 2121, 5443, 2175, 2114, 5463, 5508,
921      2099, 7748, 2100, 7748, 7748, 2110, 2111, 7748, 2110, 2123,
922      5453, 7748, 2084, 2070, 5483, 2187, 2209, 5491, 2280, 2282,
923      5528, 7748, 7748, 5536, 2331, 2355, 7748, 2165, 7748, 2173,
924      7748, 2180, 7748, 2216, 7748, 7748, 7748, 7748, 2316, 2281,
925      2418, 2231, 2374, 2235, 5456, 2237, 2254, 7748, 7748, 7748,
926      7748, 5499, 5502, 2491, 2264, 2555, 2266, 2257, 2272, 2275,
927
928      2288, 2561, 2331, 2606, 2334, 7748, 7748, 7748, 7748, 5544,
929      2365, 2375, 2392, 5547, 2397, 2405, 5552, 5556, 5566, 5570,
930      2384, 2394, 2407, 2407, 2416, 2446, 2438, 2449, 2441, 2470,
931      2455, 2469, 2479, 2469, 2480, 2503, 5579, 2554, 7748, 7748,
932      5584, 7748, 7748, 5598, 2599, 2621, 2543, 2550, 2565, 2569,
933      2574, 2571, 2581, 2577, 2601, 2597, 2600, 2621, 2618, 2622,
934      2641, 2639, 2663, 7748, 2657, 2652, 2660, 2663, 2664, 2669,
935      2673, 2672, 2682, 2688, 2694, 2707, 2713, 2714, 2712, 2718,
936      2723, 2726, 2731, 2735, 2742, 2740, 2761, 2746, 2764, 2753,
937      2750, 2778, 2770, 2767, 2783, 2771, 2786, 2774, 2789, 2787,
938
939      2785, 2800, 2800, 2797, 2829, 2837, 2829, 2829, 2835, 2836,
940      2847, 2841, 2884, 2866, 2858, 2886, 2862, 2892, 2865, 2892,
941      2890, 2883, 2913, 2896, 2888, 2916, 2906, 2902, 2922, 2920,
942      2925, 2947, 2923, 7748, 2947, 2933, 7748, 2935, 7748, 2936,
943      7748, 2966, 2943, 7748, 2967, 2955, 7748, 2977, 2953, 2967,
944      2964, 2982, 7748, 2984, 7748, 2999, 3001, 3002, 7748, 3005,
945      7748, 3006, 5592, 3025, 3052, 3035, 3054, 3022, 3027, 3029,
946      3030, 3048, 3049, 5611, 3087, 7748, 3085, 7748, 3090, 3088,
947      3094, 3109, 3113, 3117, 3109, 3143, 7748, 7748, 7748, 7748,
948      7748, 7748, 7748, 7748, 3222, 3224, 3129, 3179, 3112, 3133,
949
950      3184, 3186, 3254, 3277, 3195, 3216, 3292, 3311, 3287, 3290,
951      3130, 3335, 3341, 3372, 3319, 3208, 5606, 5619, 7748, 7748,
952      5639, 5648, 5657, 5666, 5675, 5684, 5693, 5702, 5711, 5720,
953      5729, 5738, 5747, 5756, 5765, 5774, 5783, 5792, 5801, 5810,
954      5819, 5828, 5837, 5846, 5855, 5864, 5873, 5882, 5891, 5900,
955      5909, 5918, 5927, 5936, 5945, 5954, 5963, 5972, 5981, 5990,
956      5999, 6006, 6013, 6020, 6027, 6034, 6041, 6048, 6055, 6062,
957      6069, 6076, 6083, 6090, 6097, 6104, 6111, 6118, 6125, 6134,
958      6141, 6146, 6153, 6158, 6165, 6170, 6177, 6182, 6189, 6194,
959      6199, 6206, 6211, 6218, 6223, 6230, 6235, 6242, 6247, 6254,
960
961      6259, 6266, 6271, 6278, 6283, 6290, 6295, 6302, 6307, 6314,
962      6319, 6326, 6331, 6338, 6343, 6352, 6358, 6365, 6373, 6380,
963      6388, 6395, 6403, 6410, 6418, 6425, 6433, 6440, 6448, 6455,
964      6463, 6470, 6478, 6485, 6493, 6500, 6508, 6516, 6524, 6532,
965      6540, 6547, 6555, 6563, 6571, 6578, 6586, 6593, 6601, 6609,
966      6616, 6624, 6633, 6639, 6646, 6654, 6662, 6670, 6677, 6685,
967      6692, 6700, 6707, 6715, 6722, 6730, 6737, 6745, 6752, 6760,
968      6767, 6775, 6782, 6790, 6797, 6805, 6812, 6820, 6827, 6835,
969      6842, 6850, 6857, 6865, 6872, 6880, 6888, 6895, 6903, 6912,
970      6921, 6928, 6936, 6943, 6951, 6958, 6966, 6973, 6981, 6988,
971
972      6995, 7003, 7011, 7019, 7027, 7035, 7042, 7050, 7057, 7065,
973      7072, 7080, 7087, 7095, 7102, 7110, 7117, 7125, 7132, 7140,
974      7148, 7156, 7164, 7172, 7180, 7189, 7198, 7205, 7213, 7220,
975      7228, 7235, 7243, 7250, 7258, 7265, 7272, 7280, 7288, 7296,
976      7304, 7312, 7319, 7327, 7334, 7342, 7349, 7357, 7365, 7373,
977      7380, 7388, 7396, 7404, 7411, 7419, 7427, 7435, 7443, 7452,
978      7461, 7469, 7477, 7484, 7492, 7499, 7507, 7515, 7523, 7531,
979      7538, 7545, 7553, 7560, 7567, 7575, 7582, 7589, 7597, 7604,
980      7612, 7619, 7627, 7635, 7642, 7650, 7658, 7666, 7675, 7684,
981      7693, 7702, 7711, 7720, 7729, 7738
982
983     } ;
984
985 static yyconst flex_int16_t yy_def[2497] =
986     {   0,
987      2221, 2221, 2222, 2222, 2222, 2222, 2223, 2223, 2224, 2224,
988      2225, 2225, 2226, 2226, 2226, 2226, 2227, 2227, 2221, 2221,
989      2228, 2228, 2229, 2229, 2229, 2229, 2229, 2229, 2221, 2221,
990      2229, 2229, 2221, 2221, 2229, 2229, 2229, 2229, 2230, 2230,
991      2226, 2226, 2231, 2231, 2232, 2232, 2221, 2221, 2232, 2232,
992      2232, 2232, 2233, 2233, 2234, 2234, 2235, 2235, 2236, 2236,
993      2236, 2236, 2221, 2221, 2236, 2236, 2236, 2236, 2221, 2221,
994      2236, 2236, 2221, 2221, 2236, 2236, 2236, 2236, 2221, 2221,
995      2236, 2236, 2221, 2221, 2236, 2236, 2236, 2236, 2237, 2237,
996      2238, 2238, 2221, 2221, 2238, 2238, 2238, 2238, 2220,   99,
997
998      2239, 2239, 2240, 2240, 2241, 2241, 2242, 2242, 2243, 2243,
999      2244, 2244, 2245, 2245, 2221, 2221, 2245, 2245, 2245, 2245,
1000      2246, 2246, 2247, 2247, 2221, 2221, 2247, 2247, 2247, 2247,
1001      2248, 2248, 2249, 2249, 2221, 2221, 2249, 2249, 2249, 2249,
1002      2250, 2250, 2251, 2251, 2252, 2252, 2253, 2253, 2221, 2221,
1003      2253, 2253, 2253, 2253, 2254, 2254, 2255, 2255, 2221, 2221,
1004      2255, 2255, 2255, 2255, 2256, 2256, 2257, 2257, 2258, 2258,
1005      2259, 2259, 2221, 2221, 2259, 2259, 2259, 2259, 2260, 2260,
1006      2261, 2261, 2221, 2221, 2220, 2220, 2220, 2220, 2220, 2220,
1007      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1008
1009      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1010      2220, 2220, 2220, 2220, 2220, 2262, 2220, 2220, 2262, 2220,
1011      2220, 2220,  222,  222,  222,  224,  224, 2220, 2220, 2220,
1012      2263, 2220, 2220, 2263, 2263, 2263, 2220, 2220, 2220, 2220,
1013      2220, 2264, 2220, 2220, 2264, 2264, 2264, 2264, 2220, 2220,
1014       224,  224,  224, 2220, 2220, 2220, 2265, 2220, 2220, 2265,
1015      2265, 2265, 2220, 2220, 2220, 2220, 2220, 2220, 2266, 2220,
1016      2220, 2266, 2266, 2220, 2220,  225,  225,  225,  276,  277,
1017       277,  277,  277,  283,  284,  283,  283, 2220, 2220, 2220,
1018      2267, 2220, 2220, 2267, 2267, 2267, 2267, 2267, 2220, 2220,
1019
1020       224,  224, 2220, 2220, 2220, 2268, 2220, 2220, 2268, 2268,
1021      2268, 2268, 2268, 2268, 2268, 2220, 2220, 2220, 2220, 2220,
1022      2220, 2269, 2220, 2220, 2269, 2269, 2269, 2269, 2269, 2269,
1023      2220, 2220, 2220, 2220, 2220, 2220, 2270, 2220, 2220, 2270,
1024      2270, 2220, 2220, 2220, 2220, 2220, 2220, 2271, 2220, 2220,
1025      2271, 2271, 2271, 2271, 2220, 2220,  224,  224, 2220, 2220,
1026      2220, 2272, 2220, 2220, 2272, 2272, 2220, 2220,  224,  369,
1027       369, 2220, 2220, 2220, 2273, 2220, 2220, 2273, 2273, 2273,
1028      2220, 2220,  369,  369, 2220, 2220, 2220, 2274, 2220, 2220,
1029      2274, 2274, 2220, 2220, 2220, 2220, 2220, 2220, 2275, 2220,
1030
1031      2220, 2275, 2275, 2275, 2220, 2220,  369,  369, 2220, 2220,
1032      2220, 2276, 2220, 2220, 2276, 2276, 2276, 2276, 2220, 2220,
1033       224,  421,  421, 2220, 2220, 2220, 2277, 2220, 2220, 2277,
1034      2220, 2220, 2220, 2220, 2220, 2220, 2278, 2220, 2220, 2278,
1035      2220, 2220,  421,  443,  443, 2220, 2220, 2220, 2279, 2220,
1036      2220, 2279, 2279, 2220, 2220, 2220, 2220, 2280, 2220, 2220,
1037      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1038      2220, 2220, 2220, 2281, 2281, 2282, 2220, 2220, 2220, 2220,
1039      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1040      2220, 2220, 2220, 2283, 2283, 2283, 2283, 2220, 2284, 2220,
1041
1042      2220, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2286, 2220,
1043      2220, 2287, 2287, 2287, 2287, 2288, 2220, 2289, 2289, 2289,
1044      2290, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1045      2267, 2267, 2267, 2267, 2267, 2267, 2291, 2220, 2292, 2292,
1046      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2293,
1047      2220, 2294, 2294, 2294, 2294, 2294, 2294, 2294, 2295, 2220,
1048      2296, 2296, 2296, 2297, 2220, 2298, 2298, 2298, 2298, 2298,
1049      2298, 2299, 2220, 2300, 2300, 2300, 2300, 2301, 2220, 2220,
1050      2302, 2302, 2302, 2302, 2302, 2303, 2220, 2304, 2304, 2304,
1051      2305, 2220, 2306, 2306, 2306, 2306, 2307, 2220, 2308, 2308,
1052
1053      2308, 2308, 2308, 2309, 2220, 2220, 2310, 2310, 2311, 2220,
1054      2312, 2312, 2313, 2220, 2220, 2314, 2314, 2314, 2315, 2316,
1055      2220, 2316, 2220, 2220, 2220, 2317, 2220, 2220, 2220, 2220,
1056      2220, 2220, 2220, 2318, 2319, 2319, 2220, 2220, 2220, 2220,
1057      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1058      2220, 2220, 2220, 2220, 2220, 2320, 2220, 2220, 2320, 2220,
1059      2321, 2321, 2220, 2322, 2220, 2220, 2322, 2322, 2322, 2322,
1060      2323, 2323, 2220, 2324, 2324, 2324, 2325, 2325, 2220, 2220,
1061      2326, 2327, 2327, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1062      2220, 2328, 2328, 2328, 2220, 2220, 2328, 2328, 2329, 2329,
1063
1064      2330, 2220, 2220, 2330, 2220, 2220, 2330, 2330, 2330, 2330,
1065      2330, 2330, 2331, 2331, 2332, 2332, 2220, 2220, 2332, 2332,
1066      2332, 2333, 2333, 2334, 2220, 2220, 2335, 2335, 2336, 2220,
1067      2220, 2336, 2336, 2336, 2337, 2337, 2338, 2338, 2338, 2339,
1068      2339, 2220, 2340, 2340, 2340, 2340, 2341, 2341, 2342, 2220,
1069      2220, 2343, 2343, 2344, 2344, 2344, 2345, 2345, 2346, 2346,
1070      2346, 2346, 2347, 2347, 2220, 2348, 2349, 2349, 2220, 2220,
1071      2350, 2350, 2220, 2220, 2220, 2351, 2352, 2352, 2353, 2220,
1072      2220, 2353, 2220, 2220, 2354, 2220, 2220, 2220, 2220, 2220,
1073      2220, 2355, 2220, 2356, 2220, 2356, 2220, 2220, 2220, 2220,
1074
1075      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1076      2220, 2220, 2220, 2220, 2220, 2220, 2357, 2220, 2220, 2220,
1077      2357, 2220, 2220, 2358, 2220, 2358, 2359, 2220, 2220, 2220,
1078      2220, 2220, 2359, 2220, 2220, 2359, 2220, 2360, 2220, 2360,
1079      2220, 2361, 2361, 2361, 2220, 2362, 2220, 2362, 2220, 2220,
1080      2220, 2363, 2220, 2364, 2220, 2364, 2220, 2220, 2220, 2220,
1081      2220, 2220, 2220, 2365, 2365, 2365, 2220, 2220, 2220, 2365,
1082      2365, 2220, 2366, 2220, 2366, 2367, 2367, 2367, 2220, 2220,
1083      2220, 2367, 2220, 2220, 2220, 2220, 2220, 2367, 2367, 2367,
1084      2367, 2367, 2220, 2368, 2220, 2368, 2369, 2369, 2369, 2220,
1085
1086      2220, 2220, 2220, 2220, 2369, 2369, 2220, 2370, 2220, 2370,
1087      2371, 2220, 2220, 2220, 2220, 2372, 2220, 2372, 2373, 2220,
1088      2220, 2220, 2373, 2373, 2373, 2220, 2374, 2220, 2374, 2220,
1089      2220, 2220, 2220, 2375, 2220, 2376, 2220, 2376, 2220, 2220,
1090      2220, 2377, 2377, 2220, 2220, 2377, 2220, 2378, 2220, 2378,
1091      2379, 2220, 2220, 2220, 2220, 2380, 2220, 2380, 2220, 2220,
1092      2381, 2381, 2220, 2220, 2220, 2382, 2220, 2382, 2383, 2383,
1093      2383, 2383, 2220, 2384, 2220, 2384, 2220, 2385, 2220, 2386,
1094      2220, 2386, 2220, 2220, 2220, 2220, 2387, 2220, 2387, 2220,
1095      2220, 2220, 2220, 2388, 2220, 2389, 2220, 2389, 2390, 2391,
1096
1097      2220, 2220, 2220, 2220, 2220, 2392, 2393, 2220, 2220, 2220,
1098      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1099      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2394, 2220,
1100      2395, 2396, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1101      2396, 2397, 2220, 2398, 2220, 2220, 2398, 2399, 2400, 2220,
1102      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2401, 2401,
1103      2220, 2220, 2401, 2401, 2402, 2403, 2403, 2403, 2220, 2220,
1104      2220, 2220, 2220, 2403, 2403, 2403, 2403, 2403, 2404, 2405,
1105      2405, 2405, 2220, 2220, 2220, 2405, 2405, 2406, 2407, 2408,
1106      2409, 2409, 2409, 2409, 2410, 2220, 2220, 2220, 2220, 2220,
1107
1108      2220, 2411, 2412, 2220, 2220, 2220, 2220, 2413, 2413, 2220,
1109      2220, 2220, 2413, 2414, 2415, 2416, 2220, 2220, 2220, 2417,
1110      2417, 2220, 2220, 2220, 2418, 2419, 2220, 2220, 2419, 2419,
1111      2420, 2220, 2421, 2422, 2423, 2220, 2424, 2425, 2426, 2427,
1112      2427, 2220, 2427, 2220, 2220, 2220, 2428, 2429, 2220, 2220,
1113      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1114      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1115      2220, 2430, 2220, 2431, 2432, 2220, 2220, 2220, 2432, 2433,
1116      2220, 2434, 2220, 2220, 2220, 2220, 2220, 2435, 2436, 2220,
1117      2220, 2220, 2220, 2220, 2220, 2220, 2437, 2437, 2220, 2220,
1118
1119      2220, 2220, 2220, 2220, 2220, 2437, 2438, 2220, 2220, 2439,
1120      2439, 2220, 2220, 2220, 2220, 2220, 2439, 2439, 2439, 2439,
1121      2440, 2220, 2220, 2441, 2441, 2220, 2220, 2441, 2442, 2443,
1122      2444, 2445, 2445, 2445, 2220, 2220, 2445, 2446, 2447, 2448,
1123      2220, 2449, 2449, 2449, 2450, 2451, 2452, 2453, 2453, 2454,
1124      2455, 2220, 2220, 2220, 2455, 2455, 2456, 2220, 2220, 2220,
1125      2457, 2458, 2220, 2220, 2220, 2459, 2460, 2461, 2461, 2220,
1126      2220, 2462, 2463, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1127      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1128      2220, 2464, 2220, 2465, 2466, 2466, 2467, 2468, 2220, 2220,
1129
1130      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2469,
1131      2470, 2220, 2220, 2220, 2220, 2471, 2471, 2220, 2220, 2220,
1132      2220, 2220, 2220, 2471, 2220, 2220, 2220, 2220, 2220, 2220,
1133      2220, 2472, 2220, 2220, 2220, 2220, 2220, 2472, 2472, 2220,
1134      2220, 2473, 2220, 2220, 2220, 2220, 2220, 2474, 2220, 2220,
1135      2220, 2474, 2220, 2220, 2475, 2476, 2477, 2477, 2477, 2220,
1136      2220, 2220, 2477, 2220, 2220, 2478, 2479, 2220, 2220, 2220,
1137      2220, 2220, 2480, 2481, 2482, 2483, 2220, 2220, 2220, 2220,
1138      2484, 2485, 2485, 2485, 2486, 2220, 2220, 2220, 2220, 2487,
1139      2488, 2220, 2220, 2220, 2220, 2220, 2220, 2489, 2490, 2490,
1140
1141      2220, 2220, 2220, 2463, 2220, 2220, 2220, 2220, 2220, 2220,
1142      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2464,
1143      2220, 2220, 2220, 2466, 2466, 2467, 2220, 2220, 2220, 2220,
1144      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2469, 2220,
1145      2220, 2220, 2220, 2220, 2471, 2471, 2220, 2220, 2471, 2220,
1146      2220, 2220, 2472, 2220, 2220, 2220, 2220, 2220, 2472, 2220,
1147      2220, 2220, 2473, 2220, 2220, 2220, 2474, 2474, 2475, 2476,
1148      2477, 2220, 2220, 2477, 2477, 2220, 2220, 2477, 2478, 2220,
1149      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2480, 2481,
1150      2482, 2483, 2220, 2220, 2220, 2220, 2220, 2220, 2484, 2485,
1151
1152      2485, 2485, 2486, 2220, 2487, 2488, 2220, 2489, 2490, 2490,
1153      2220, 2220, 2220, 2220, 2463, 2220, 2220, 2220, 2220, 2220,
1154      2220, 2220, 2220, 2220, 2220, 2220, 2464, 2220, 2466, 2466,
1155      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1156      2220, 2220, 2220, 2220, 2220, 2469, 2220, 2220, 2220, 2220,
1157      2220, 2471, 2471, 2220, 2220, 2220, 2220, 2471, 2472, 2220,
1158      2220, 2220, 2472, 2473, 2474, 2474, 2475, 2220, 2220, 2477,
1159      2220, 2220, 2220, 2477, 2477, 2220, 2220, 2220, 2220, 2477,
1160      2478, 2220, 2480, 2481, 2482, 2483, 2484, 2220, 2220, 2485,
1161      2485, 2486, 2220, 2487, 2220, 2220, 2489, 2490, 2490, 2220,
1162
1163      2463, 2220, 2220, 2220, 2220, 2220, 2220, 2464, 2220, 2220,
1164      2466, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1165      2220, 2469, 2220, 2471, 2471, 2220, 2220, 2220, 2220, 2471,
1166      2472, 2472, 2220, 2220, 2474, 2474, 2475, 2220, 2220, 2477,
1167      2477, 2477, 2220, 2220, 2220, 2220, 2477, 2478, 2220, 2480,
1168      2220, 2220, 2220, 2220, 2483, 2484, 2220, 2220, 2220, 2220,
1169      2220, 2485, 2220, 2220, 2220, 2487, 2489, 2490, 2490, 2220,
1170      2220, 2220, 2220, 2220, 2464, 2220, 2220, 2220, 2466, 2220,
1171      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2469,
1172      2220, 2471, 2471, 2220, 2220, 2220, 2220, 2472, 2472, 2474,
1173
1174      2474, 2475, 2220, 2220, 2220, 2477, 2477, 2477, 2220, 2220,
1175      2220, 2220, 2478, 2480, 2220, 2220, 2220, 2220, 2220, 2484,
1176      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2489, 2490, 2490,
1177      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2466,
1178      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1179      2469, 2220, 2471, 2220, 2220, 2220, 2220, 2220, 2472, 2472,
1180      2220, 2220, 2474, 2220, 2220, 2477, 2477, 2477, 2220, 2220,
1181      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1182      2220, 2484, 2220, 2220, 2220, 2489, 2490, 2490, 2220, 2220,
1183      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2466, 2220,
1184
1185      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2469, 2220, 2220,
1186      2220, 2471, 2220, 2220, 2220, 2472, 2472, 2220, 2220, 2220,
1187      2474, 2220, 2220, 2220, 2477, 2220, 2220, 2477, 2220, 2220,
1188      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1189      2484, 2489, 2490, 2490, 2490, 2220, 2220, 2220, 2220, 2220,
1190      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1191      2220, 2469, 2220, 2220, 2220, 2471, 2472, 2472, 2474, 2477,
1192      2220, 2220, 2220, 2477, 2220, 2220, 2220, 2220, 2220, 2220,
1193      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1194      2489, 2490, 2490, 2490, 2491, 2492, 2220, 2220, 2220, 2220,
1195
1196      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1197      2220, 2469, 2471, 2472, 2220, 2220, 2220, 2220, 2220, 2220,
1198      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1199      2220, 2220, 2220, 2220, 2489, 2490, 2493, 2494, 2491, 2492,
1200      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1201      2220, 2220, 2471, 2472, 2220, 2220, 2220, 2220, 2220, 2220,
1202      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1203      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2489, 2493,
1204      2490, 2495, 2494, 2496, 2490, 2220, 2220, 2220, 2220, 2220,
1205      2220, 2471, 2472, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1206
1207      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2489,
1208      2495, 2220, 2496, 2490, 2220, 2220, 2220, 2220, 2220, 2220,
1209      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1210      2220, 2220, 2220, 2220, 2220, 2220, 2489, 2220, 2220, 2220,
1211      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1212      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1213      2220, 2220, 2489, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1214      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1215      2220, 2220, 2220, 2220, 2489, 2220, 2220, 2220, 2220, 2220,
1216      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1217
1218      2220, 2220, 2220, 2220, 2220, 2489, 2220, 2220, 2220, 2220,
1219      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1220      2220, 2220, 2220, 2220, 2220, 2220, 2489, 2220, 2220, 2220,
1221      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1222      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2489, 2220, 2220,
1223      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1224      2220, 2220, 2489, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1225      2220, 2220, 2220, 2489, 2220, 2220, 2220, 2220, 2220, 2220,
1226      2220, 2220, 2220, 2220, 2489, 2489, 2220, 2220, 2220, 2220,
1227      2220, 2220, 2220, 2220, 2489, 2489, 2489, 2489, 2489, 2489,
1228
1229      2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489,
1230      2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2220,    0,
1231      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1232      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1233      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1234      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1235      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1236      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1237      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1238      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1239
1240      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1241      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1242      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1243      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1244      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1245      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1246      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1247      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1248      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1249      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1250
1251      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1252      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1253      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1254      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1255      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1256      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1257      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1258      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1259      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
1260      2220, 2220, 2220, 2220, 2220, 2220
1261
1262     } ;
1263
1264 static yyconst flex_int16_t yy_nxt[7819] =
1265     {   0,
1266      2220,  188,  189,  188,  188,  189,  188,  188,  189,  188,
1267       188,  189,  188,  193,  189,  193,  199,  190,  196,  199,
1268       190,  196, 2220,  191,  509,  197,  191,  621,  197,  194,
1269       193,  189,  193,  458,  200,  202,  203,  200,  202,  203,
1270       204,  205,  622,  204,  205,  458,  194,  209,  210,  459,
1271       206,  202,  203,  206,  207,  461,  204,  202,  203,  780,
1272       207,  460,  204,  209,  210, 1508,  206,  189,  189,  189,
1273       521,  460,  206,  510,  189,  189,  189,  221,  189,  221,
1274       221,  189,  221,  212,  221,  189,  221,  505,  461,  211,
1275       212,  506, 2220,  222, 1591,  507,  222,  457,  457,  457,
1276
1277       223,  457,  457,  457,  460,  211,  213,  214,  189,  214,
1278       213,  213,  213,  213,  213,  213,  213,  215,  213,  213,
1279       213,  526,  213,  217,  213,  218,  213,  221,  189,  221,
1280       221,  189,  221,  481, 1593,  221,  189,  221,  189,  189,
1281       189,  510,  484,  223,  472,  484,  224,  490,  461,  213,
1282       213,  224,  509, 1603,  225,  189,  189,  189,  457,  457,
1283       457,  457,  457,  457,  460,  457,  457,  457,  457,  457,
1284       457,  225,  219,  213,  214,  189,  214,  213,  213,  213,
1285       213,  213,  213,  213,  215,  213,  213,  213,  537,  213,
1286       217,  213,  218,  213,  221,  189,  221,  221,  189,  221,
1287
1288       548,  492,  189,  189,  189,  189,  189,  189,  545, 2220,
1289       223,  546,  549,  223,  540,  780,  213,  213,  226,  999,
1290       461,  226,  221,  189,  221,  221,  189,  221,  221,  189,
1291       221,  221,  189,  221,  541, 2220,  460,  510,  224,  219,
1292       492,  224,  484,  621,  227,  479,  537,  227,  228,  229,
1293       189,  229,  228,  228,  228,  228,  228,  228,  228,  230,
1294       228,  228,  228, 2220,  228,  232,  228,  233,  228,  250,
1295       189,  250,  486,  487,  250,  189,  250,  660,  189,  189,
1296       189, 1606,  202,  203,  491,  251,  478,  204,  202,  203,
1297       251,  228,  228,  204,  252,  492,  570,  237,  627,  234,
1298
1299       492,  628,  235,  237,  457,  457,  457,  571,  236,  228,
1300       229,  189,  229,  228,  228,  228,  228,  228,  228,  228,
1301       230,  228,  228,  228,  238,  228,  232,  228,  233,  228,
1302       238,  189,  189,  189,  250,  189,  250,  576,  250,  189,
1303       250,  250,  189,  250,  577,  461,  461,  252,  498,  461,
1304       251,  461,  228,  228,  251,  499,  516,  253, 1142,  572,
1305       234,  460,  460,  235,  460,  460,  466,  460,  572,  236,
1306       239,  240,  189,  240,  239,  239,  239,  239,  239,  239,
1307       239,  241,  239,  239,  239,  487,  239,  243,  239,  244,
1308       239,  250,  189,  250,  264,  189,  264, 1399,  584,  264,
1309
1310       189,  264,  275,  189,  275,  585,  467,  253,  510,  461,
1311       265,  479,  468,  239,  239,  265,  469,  492,  276,  647,
1312       640,  470,  245,  641,  246,  460,  528,  247,  457,  457,
1313       457,  586,  648,  248,  239,  240,  189,  240,  239,  239,
1314       239,  239,  239,  239,  239,  241,  239,  239,  239,  647,
1315       239,  243,  239,  244,  239,  275,  189,  275,  275,  189,
1316       275,  780,  688,  275,  189,  275,  189,  189,  189,  640,
1317      1607,  276,  650,  461,  277,  782,  482,  239,  239,  277,
1318       461,  597,  278,  457,  457,  457,  245,  550,  246,  460,
1319       897,  247,  457,  457,  457,  898,  460,  248,  254,  255,
1320
1321       189,  255,  254,  254,  254,  254,  254,  254,  254,  256,
1322       254,  254,  254,  487,  254,  258,  254,  259,  254,  189,
1323       189,  189,  275,  189,  275, 1017,  482,  275,  189,  275,
1324       275,  189,  275,  652,  647,  278,  650, 1018,  279,  461,
1325       488,  254,  254,  279,  461,  461,  280,  690,  260,  457,
1326       457,  457,  489,  261, 1608,  460,  490,  457,  457,  457,
1327       460,  460,  262,  254,  255,  189,  255,  254,  254,  254,
1328       254,  254,  254,  254,  256,  254,  254,  254,  647,  254,
1329       258,  254,  259,  254,  275,  189,  275,  189,  189,  189,
1330      1026,  691,  189,  189,  189,  275,  189,  275,  693,  773,
1331
1332       280,  694, 1018,  281,  780, 1611,  254,  254,  281,  461,
1333       461,  277,  648,  260,  457,  457,  457,  559,  261,  457,
1334       457,  457, 1139, 1142, 2220,  460,  460,  262,  266,  267,
1335       189,  267,  266,  266,  266,  266,  266,  266,  266,  268,
1336       266,  266,  266, 1026,  266,  270,  266,  271,  266,  275,
1337       189,  275,  189,  189,  189, 1043, 1431,  189,  189,  189,
1338       275,  189,  275, 1432,  461,  277,  524, 1599,  282,  525,
1339      1612,  266,  266,  282,  780,  529,  280,  457,  457,  457,
1340       460,  578,  272,  457,  457,  457,  457,  457,  457, 1398,
1341       273,  266,  267,  189,  267,  266,  266,  266,  266,  266,
1342
1343       266,  266,  268,  266,  266,  266,  780,  266,  270,  266,
1344       271,  266,  275,  189,  275,  275,  189,  275, 1142, 1613,
1345       275,  189,  275,  189,  189,  189,  579,  461,  280, 1267,
1346       492,  283, 1142, 1614,  266,  266,  283, 1615,  461,  284,
1347       189,  189,  189,  460,  461,  272,  275,  189,  275,  275,
1348       189,  275, 1142,  273,  460, 1616,  284,  189,  189,  189,
1349       460, 1510,  285, 1400,  461,  285,  189,  189,  189,  275,
1350       189,  275, 1617,  286,  275,  189,  275,  275,  189,  275,
1351       460, 1509,  286, 1554,  461,  283,  275,  189,  275, 1555,
1352       283,  564, 1618,  287,  457,  457,  457,  457,  457,  457,
1353
1354       460, 1142,  287,  288,  289,  189,  289,  288,  288,  288,
1355       288,  288,  288,  288,  290,  288,  288,  288, 1619,  288,
1356       292,  288,  293,  288,  300,  189,  300,  300,  189,  300,
1357      1620, 1621,  189,  189,  189, 1436,  189,  189,  189, 1623,
1358       301, 1598, 1437,  301,  644,  461,  288,  288,  252,  294,
1359       645,  295,  252,  457,  457,  457,  646,  296,  457,  457,
1360       457,  460, 1624,  297, 1625, 1626,  298,  288,  289,  189,
1361       289,  288,  288,  288,  288,  288,  288,  288,  290,  288,
1362       288,  288, 1627,  288,  292,  288,  293,  288,  300,  189,
1363       300,  300,  189,  300, 1628, 1629,  300,  189,  300, 1556,
1364
1365       300,  189,  300, 1630,  301, 1557, 1631,  301,  653,  461,
1366       288,  288,  302,  294,  645,  295,  302,  457,  457,  457,
1367       646,  296,  457,  457,  457,  460, 1632,  297, 1635, 1636,
1368       298,  303,  304,  189,  304,  303,  303,  303,  303,  303,
1369       303,  303,  305,  303,  303,  303,  306,  303,  307,  303,
1370       308,  303,  306,  306,  306,  306,  306,  306,  306,  306,
1371       306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
1372       306,  306,  306,  306,  303,  303,  306,  306,  309,  310,
1373       306,  306,  306,  306,  306,  311,  306,  312,  306,  306,
1374       306,  313,  306,  314,  315,  306,  306,  306,  306,  306,
1375
1376       306,  317,  189,  317,  317,  189,  317,  457,  457,  457,
1377       457,  457,  457,  457,  457,  457, 1637,  318, 1641, 1642,
1378       318,  319,  320,  189,  320,  319,  319,  319,  319,  319,
1379       319,  319,  321,  319,  319,  319, 1643,  319,  323,  319,
1380       324,  319,  332,  189,  332,  332,  189,  332, 1644, 1645,
1381       343,  189,  343, 1576,  343,  189,  343, 1578,  333, 1577,
1382       461,  333, 1646, 1579,  319,  319,  344,  591,  325,  326,
1383       344,  457,  457,  457, 1647,  327,  460,  328,  457,  457,
1384       457,  329,  604, 1648,  330,  319,  320,  189,  320,  319,
1385       319,  319,  319,  319,  319,  319,  321,  319,  319,  319,
1386
1387      1650,  319,  323,  319,  324,  319,  356,  189,  356,  356,
1388       189,  356, 1662, 1672,  189,  189,  189,  605,  189,  189,
1389       189, 1673,  357, 1674, 1675,  357, 1679, 1680,  319,  319,
1390       252,  510,  325,  326,  252,  457,  457,  457, 1681,  327,
1391      1682,  328,  457,  457,  457,  329, 1142, 1683,  330,  334,
1392       335,  189,  335,  334,  334,  334,  334,  334,  334,  334,
1393       336,  334,  334,  334, 1684,  334,  338,  334,  339,  334,
1394       356,  189,  356,  356,  189,  356, 1668, 1685,  356,  189,
1395       356, 1686,  356,  189,  356, 1687,  357, 1688, 1689,  357,
1396       644, 1691,  334,  334,  358, 1692,  645,  340,  358,  457,
1397
1398       457,  457,  655,  341,  334,  335,  189,  335,  334,  334,
1399       334,  334,  334,  334,  334,  336,  334,  334,  334, 1693,
1400       334,  338,  334,  339,  334,  368,  189,  368,  368,  189,
1401       368, 1694, 1695,  189,  189,  189, 1698,  189,  189,  189,
1402      1699,  369, 1700, 1701,  369,  653, 1702,  334,  334,  370,
1403      1706,  645,  340,  370,  457,  457,  457,  655,  341,  345,
1404       346,  189,  346,  345,  345,  345,  345,  345,  345,  345,
1405       347,  345,  345,  345, 1707,  345,  349,  345,  350,  345,
1406       368,  189,  368,  368,  189,  368, 1708, 1709,  368,  189,
1407       368,  368,  189,  368, 1710, 1713,  369, 1714,  461,  369,
1408
1409      1731,  780,  345,  345,  371,  609,  351,  371,  457,  457,
1410       457, 1142, 1732,  352,  460,  353,  457,  457,  457,  457,
1411       457,  457,  354,  345,  346,  189,  346,  345,  345,  345,
1412       345,  345,  345,  345,  347,  345,  345,  345, 1728,  345,
1413       349,  345,  350,  345,  382,  189,  382,  382,  189,  382,
1414      1733, 1730,  189,  189,  189,  189,  189,  189, 1740, 1741,
1415       383, 1742,  461,  383, 1736, 1738,  345,  345,  370,  619,
1416       351,  370,  457,  457,  457, 1737, 1739,  352,  460,  353,
1417       457,  457,  457,  457,  457,  457,  354,  359,  360,  189,
1418       360,  359,  359,  359,  359,  359,  359,  359,  361,  359,
1419
1420       359,  359, 1743,  359,  363,  359,  364,  359,  382,  189,
1421       382,  382,  189,  382, 1142, 1744,  382,  189,  382,  382,
1422       189,  382,  653, 1745,  383, 1746, 1747,  383,  645, 1748,
1423       359,  359,  384, 1749,  673,  384,  365,  457,  457,  457,
1424      1750,  625,  625,  625,  625,  625,  625, 1752,  784, 1669,
1425       366,  359,  360,  189,  360,  359,  359,  359,  359,  359,
1426       359,  359,  361,  359,  359,  359, 1753,  359,  363,  359,
1427       364,  359,  394,  189,  394,  394,  189,  394, 1142, 1759,
1428       406,  189,  406,  406,  189,  406, 1760, 1763,  395, 1766,
1429      1767,  395, 1768, 1790,  359,  359,  407,  626, 1791,  407,
1430
1431       365,  797,  797,  797,  812,  812,  812,  797,  797,  797,
1432       797,  797,  797, 1729,  366,  372,  373,  189,  373,  372,
1433       372,  372,  372,  372,  372,  372,  374,  372,  372,  372,
1434      1795,  372,  376,  372,  377,  372,  189,  189,  189,  189,
1435       189,  189, 1776, 1796,  406,  189,  406,  406,  189,  406,
1436      1777, 1797,  370, 1798, 1799,  370, 1778,  876,  372,  372,
1437       407, 1800,  798,  407,  378,  798,  877,  379,  818,  818,
1438       818,  857,  819,  878, 1801,  820, 1142, 1802,  380,  372,
1439       373,  189,  373,  372,  372,  372,  372,  372,  372,  372,
1440       374,  372,  372,  372,  780,  372,  376,  372,  377,  372,
1441
1442       406,  189,  406,  406,  189,  406, 1779, 1803,  420,  189,
1443       420,  420,  189,  420, 1780, 1787,  408, 1804, 1805,  408,
1444      1781, 1786,  372,  372,  421, 1806, 1807,  421,  378, 1816,
1445      1817,  379,  828,  828,  828, 1821,  829, 1825, 1828,  830,
1446      1142, 1835,  380,  385,  386,  189,  386,  385,  385,  385,
1447       385,  385,  385,  385,  387,  385,  385,  385, 1836,  385,
1448       389,  385,  390,  385,  189,  189,  189,  189,  189,  189,
1449      1837, 1838,  420,  189,  420,  420,  189,  420, 1839, 1788,
1450       422, 1840, 1846,  422, 1847, 1848,  385,  385,  421,  780,
1451      1849,  421,  391,  812,  812,  812, 1850,  392,  385,  386,
1452
1453       189,  386,  385,  385,  385,  385,  385,  385,  385,  387,
1454       385,  385,  385, 1851,  385,  389,  385,  390,  385,  420,
1455       189,  420,  420,  189,  420, 1854, 1855,  432,  189,  432,
1456       432,  189,  432, 1856, 1842,  423, 1857, 1858,  423, 1859,
1457      1860,  385,  385,  433, 1861, 1866,  433,  391,  812,  812,
1458       812, 1867,  392,  396,  397,  189,  397,  396,  396,  396,
1459       396,  396,  396,  396,  398,  396,  396,  396, 1868,  396,
1460       400,  396,  401,  396,  442,  189,  442,  442,  189,  442,
1461      1869, 1142,  189,  189,  189,  189,  189,  189, 1870, 1874,
1462       443, 1883, 1884,  443, 1875, 1885,  396,  396,  252, 1886,
1463
1464      1887,  252,  402, 1888, 1876,  403,  849,  849,  849,  857,
1465       850, 1899,  780,  851, 1843, 1900,  404,  396,  397,  189,
1466       397,  396,  396,  396,  396,  396,  396,  396,  398,  396,
1467       396,  396, 1901,  396,  400,  396,  401,  396,  442,  189,
1468       442,  442,  189,  442, 1891, 1877,  442,  189,  442,  442,
1469       189,  442, 1902, 1879,  444, 1878, 1906,  444, 1881, 1907,
1470       396,  396,  445, 1880, 1908,  445,  402, 1909, 1882,  403,
1471       867,  867,  867, 1910,  868,  613, 1911,  869, 1913, 1914,
1472       404,  409,  410,  189,  410,  409,  409,  409,  409,  409,
1473       409,  409,  411,  409,  409,  409, 1923,  409,  413,  409,
1474
1475       414,  409,  455,  189,  455,  455,  189,  455, 1924, 1925,
1476       478,  657,  657,  657, 1926,  793,  793,  793,  456, 1927,
1477      1928,  456, 1929, 1930,  409,  409,  614, 1931,  658, 1932,
1478       521,  521,  415,  795,  416, 1933,  417, 1154, 1154, 1154,
1479       522,  527, 1934, 1941,  418,  409,  410,  189,  410,  409,
1480       409,  409,  409,  409,  409,  409,  411,  409,  409,  409,
1481      1942,  409,  413,  409,  414,  409,  523,  523,  488,  665,
1482       665,  665,  524, 1943, 1944,  525,  679,  679,  679, 1945,
1483       492,  526,  695,  695,  695, 1946,  666, 1947,  409,  409,
1484       702,  702,  702,  680, 1948, 1949,  415, 1950,  416,  696,
1485
1486       417, 1953, 1155, 1155, 1155, 1954, 1967,  703,  418,  424,
1487       425,  189,  425,  424,  424,  424,  424,  424,  424,  424,
1488       426,  424,  424,  424,  780,  424,  428,  424,  429,  424,
1489       705,  705,  705,  717,  717,  717, 1968,  725,  725,  725,
1490       730,  730,  730,  750,  750,  750, 1156,  706, 1969, 1970,
1491       718, 1971,  424,  424,  726, 1972, 1973,  731, 1974, 1975,
1492       751,  879,  879,  879, 1935,  880, 1976, 1977,  881, 1157,
1493      1157, 1157, 1160, 1160, 1160,  430,  424,  425,  189,  425,
1494       424,  424,  424,  424,  424,  424,  424,  426,  424,  424,
1495       424, 1978,  424,  428,  424,  429,  424,  769,  769,  769,
1496
1497       774,  774,  774,  793,  793,  793,  657,  657,  657,  823,
1498       823,  823, 1986, 1987,  770, 1988, 1989,  775, 1990,  424,
1499       424,  795, 1981,  658,  665,  665,  665,  825,  883,  883,
1500       883, 1991,  884, 1984, 1992,  885, 1166, 1166, 1166, 1993,
1501       780,  666,  430,  434,  435,  189,  435,  434,  434,  434,
1502       434,  434,  434,  434,  436,  434,  434,  434,  796,  434,
1503       438,  434,  439,  434,  823,  823,  823,  831,  831,  831,
1504      2006,  834,  834,  834,  837,  837,  837,  837,  837,  837,
1505      1981, 2007,  825, 1979,  832, 2008,  434,  434,  835,  900,
1506       900,  900,  839,  901, 1982,  839,  902,  440,  434,  435,
1507
1508       189,  435,  434,  434,  434,  434,  434,  434,  434,  436,
1509       434,  434,  434, 1994,  434,  438,  434,  439,  434,  845,
1510       845,  845,  840, 1995, 2009,  826,  845,  845,  845,  679,
1511       679,  679,  853,  853,  853, 1996, 2012,  847, 1181, 1181,
1512      1181,  434,  434, 2012,  847, 1997,  680, 1192, 1192, 1192,
1513       855, 2015,  440,  446,  447,  189,  447,  446,  446,  446,
1514       446,  446,  446,  446,  448,  446,  446,  446, 2016,  446,
1515       450,  446,  451,  446,  853,  853,  853,  695,  695,  695,
1516       872,  872,  872,  872,  872,  872, 1981,  848,  702,  702,
1517       702, 2023,  855, 2026,  696, 2027,  446,  446,  874, 2028,
1518
1519      1982,  874, 1154, 1154, 1154,  703, 1998,  452, 2000,  856,
1520       912,  912,  912, 2029,  913, 2030, 1999,  914, 2001,  453,
1521       446,  447,  189,  447,  446,  446,  446,  446,  446,  446,
1522       446,  448,  446,  446,  446,  780,  446,  450,  446,  451,
1523       446,  875,  705,  705,  705,  886,  886,  886,  893,  893,
1524       893,  893,  893,  893,  717,  717,  717, 2002, 2033,  706,
1525      1299, 2036,  887,  446,  446, 1300,  895, 2003, 1301,  895,
1526      2012,  718, 1302, 2010,  452,  903,  903,  903,  907,  907,
1527       907, 2004, 1981,  907,  907,  907,  453,  461,  725,  725,
1528       725, 2005,  904, 1984,  476, 2038,  909,  915,  915,  915,
1529
1530      2012,  909, 2039,  460,  477,  726,  896,  915,  915,  915,
1531       730,  730,  730, 2040, 1303,  917,  920,  920,  920, 1304,
1532       921, 2047, 1305,  922, 2048,  917, 1306,  731, 2049,  478,
1533       479,  480,  910,  926,  926,  926,  481, 1142, 1143,  482,
1534       926,  926,  926,  483, 2050,  484, 2051,  485,  935,  935,
1535       935,  928,  930,  930,  930,  932,  932,  932,  928, 2220,
1536      2220, 2220,  935,  935,  935,  918,  937, 2052, 2053,  931,
1537      2054, 2055,  933,  940,  940,  940, 2220, 2220, 2220, 2220,
1538       937,  944,  944,  944, 2220, 2220, 2220,  947,  947,  947,
1539       941, 2056, 2057,  929, 2220,  947,  947,  947,  945, 2058,
1540
1541      2059, 2220,  750,  750,  750,  949, 2060,  952,  952,  952,
1542      2061,  953, 2021,  949,  954,  934,  955,  955,  955,  751,
1543       938,  959,  959,  959, 2062,  942,  955,  955,  955, 2022,
1544       950,  963,  963,  963,  957, 2220, 2220, 2220,  960,  943,
1545       946,  965,  965,  965,  957,  965,  965,  965,  964,  973,
1546       973,  973, 2220,  973,  973,  973,  979,  979,  979,  967,
1547       979,  979,  979,  967,  769,  769,  769,  975,  983,  983,
1548       983,  975,  984, 2064,  981,  985, 2024, 2069,  981,  958,
1549      2070,  770, 2031,  961,  986,  986,  986,  986,  986,  986,
1550       774,  774,  774, 2025,  991,  991,  991,  962,  992, 2032,
1551
1552      2071,  993,  988, 2072, 2073,  988, 2074,  775,  995,  995,
1553       995, 2075, 2076,  968,  976,  995,  995,  995,  793,  793,
1554       793,  982,  793,  793,  793, 2065,  997, 2034,  793,  793,
1555       793, 2077, 2078,  997, 2079, 2066,  795, 1027, 1027, 1027,
1556       795, 2220, 2220, 2220, 2035,  989,  795, 2067,  818,  818,
1557       818, 2080,  819, 2081, 1028,  820, 2082, 2068, 2220,  823,
1558       823,  823,  823,  823,  823,  823,  823,  823,  828,  828,
1559       828, 2083,  829, 1007, 2084,  830,  998,  825, 2086, 2087,
1560       825, 2088,  780,  825,  831,  831,  831, 1033, 1033, 1033,
1561      2089, 1034, 2090, 2091, 1035, 1036, 1036, 1036, 2092, 1029,
1562
1563      2093,  832,  834,  834,  834, 2085, 2094, 1038, 1038, 1038,
1564      1031, 1039, 1037, 2095, 1040,  837,  837,  837, 2096,  835,
1565       837,  837,  837,  837,  837,  837, 1045, 1045, 1045,  845,
1566       845,  845, 2097,  839,  845,  845,  845, 2098,  839, 2099,
1567      2100,  839, 2101, 1046,  845,  845,  845,  847, 2102,  849,
1568       849,  849,  847,  850, 2103, 2104,  851,  853,  853,  853,
1569      2105,  780,  847,  853,  853,  853, 1050, 1050, 1050, 1061,
1570      1061, 1061,  867,  867,  867,  855,  868, 2107, 2106,  869,
1571      1042,  855, 2108, 2109, 1051, 2110, 1062, 2111, 2112, 1048,
1572       872,  872,  872,  872,  872,  872,  872,  872,  872,  879,
1573
1574       879,  879, 2113,  880, 2114, 2115,  881, 2116,  874, 2117,
1575      2118,  874, 2119, 2120,  874, 1069, 1069, 1069,  883,  883,
1576       883, 2121,  884, 2122, 2123,  885,  886,  886,  886, 1071,
1577      1071, 1071, 1070, 1072, 2124, 2125, 1073,  893,  893,  893,
1578      1155, 1155, 1155,  887,  893,  893,  893,  893,  893,  893,
1579       900,  900,  900, 2126,  901,  895,  780,  902, 1065,  903,
1580       903,  903,  895, 2128, 2129,  895, 1083, 1083, 1083, 2130,
1581      1084, 2131, 2132, 1085, 2127, 2133,  904,  907,  907,  907,
1582       907,  907,  907,  907,  907,  907,  912,  912,  912, 2134,
1583       913, 2135, 2136,  914, 2137,  909, 2138, 2139,  909, 2140,
1584
1585      2141,  909,  915,  915,  915,  915,  915,  915,  915,  915,
1586       915, 1079,  920,  920,  920, 2142,  921, 2143, 2144,  922,
1587       917, 2145, 2146,  917, 2147,  780,  917,  926,  926,  926,
1588      2149, 2148, 1088,  926,  926,  926,  926,  926,  926,  930,
1589       930,  930, 1096, 1096, 1096,  928, 1097, 2150, 2151, 1098,
1590      2152,  928, 2153, 2154,  928, 2155,  931,  932,  932,  932,
1591      1099, 1099, 1099, 2156, 1100, 2157, 2158, 1101,  935,  935,
1592       935, 2159, 1090, 2160,  933, 2161,  935,  935,  935,  935,
1593       935,  935,  940,  940,  940, 2162,  937, 2164, 1105, 1105,
1594      1105, 2165, 1106, 1095,  937, 1107,  780,  937, 2166,  941,
1595
1596       944,  944,  944, 1110, 1110, 1110, 2167, 1111, 2163, 2168,
1597      1112,  947,  947,  947,  947,  947,  947,  945,  947,  947,
1598       947,  952,  952,  952, 2169,  953, 2170, 2171,  954,  949,
1599      2172, 2173,  949,  955,  955,  955,  949,  955,  955,  955,
1600       955,  955,  955, 1103,  959,  959,  959,  963,  963,  963,
1601      2175,  957, 1117, 1117, 1117,  957, 1118, 2176,  957, 1119,
1602      2177,  960, 2178, 2179,  964, 1122, 1122, 1122, 2180, 1123,
1603      2181, 2182, 1124,  965,  965,  965,  965,  965,  965, 1114,
1604       965,  965,  965, 1127, 1127, 1127,  973,  973,  973, 2183,
1605      2184,  967, 2187, 2188,  967, 2189, 2190, 1116,  967, 2191,
1606
1607      1128,  973,  973,  973,  975,  973,  973,  973,  979,  979,
1608       979,  979,  979,  979,  979,  979,  979, 2192, 2193,  975,
1609       983,  983,  983,  975,  984, 2194,  981,  985,  780,  981,
1610      1590,  780,  981,  986,  986,  986,  986,  986,  986, 1125,
1611       986,  986,  986,  991,  991,  991, 1585,  992,  780,  780,
1612       993,  988,  780, 1583,  988,  995,  995,  995,  988,  995,
1613       995,  995,  780, 1131, 2201, 1134,  995,  995,  995, 1141,
1614      1141, 1141, 2195,  997,  793,  793,  793,  997, 1027, 1027,
1615      1027,  823,  823,  823,  997, 2202, 2199, 1142, 1143, 1169,
1616      1169, 1169,  795, 1170, 2213, 1028, 1171, 1135,  780,  825,
1617
1618      1033, 1033, 1033,  780, 1034,  780, 2196, 1035, 1036, 1036,
1619      1036, 1176, 1176, 1176,  780, 1177, 2217, 1582, 1178, 1038,
1620      1038, 1038, 1581, 1039, 1138, 1037, 1040,  780, 1174,  837,
1621       837,  837, 1045, 1045, 1045,  780, 2200, 1148, 1183, 1183,
1622      1183,  780, 1184,  780, 2207, 1185, 2203,  839, 2204, 1046,
1623      1186, 1186, 1186,  845,  845,  845, 1050, 1050, 1050, 1193,
1624      1193, 1193, 1061, 1061, 1061, 2208, 1580, 1187, 1199, 1199,
1625      1199,  847, 1200,  780, 1051, 1201, 2197, 1180, 2198, 1062,
1626      1202, 1202, 1202, 1575, 1204, 1204, 1204,  872,  872,  872,
1627      1208, 1208, 1208, 2220, 2220, 2220,  780, 1203, 1574, 1570,
1628
1629      1188, 1205, 2209, 1156, 1567,  874,  780, 1209, 2205,  780,
1630      2220,  780, 2220, 2220, 2220, 1069, 1069, 1069, 1212, 1212,
1631      1212, 2210, 1213, 1566, 2217, 1214, 1565, 1563, 1206, 2220,
1632       780, 2206, 1070, 1071, 1071, 1071, 2211, 1072,  780, 2212,
1633      1073, 1215, 1215, 1215, 2220, 2220, 2220, 2220, 2220, 2220,
1634      1207, 2220, 2220, 2220,  780, 1559, 1210, 1211, 1216, 1558,
1635       780, 2220, 1553, 1552, 2220, 2220, 2220, 2220, 2220,  893,
1636       893,  893, 1222, 1222, 1222, 1551, 2220, 2220, 2220,  907,
1637       907,  907, 2220, 2220, 2220, 2220, 1545,  895, 1544, 1223,
1638      2215,  780, 1218, 2220, 1083, 1083, 1083,  909, 1084, 2214,
1639
1640      2220, 1085, 1226, 1226, 1226, 2220, 2220, 2220, 1219, 1543,
1641      1542, 1217,  915,  915,  915, 1541, 1235, 1235, 1235, 1227,
1642      1540, 2216, 2220,  926,  926,  926, 1539,  935,  935,  935,
1643       917, 1221, 1220, 1236, 1538, 1537, 1225, 1536, 1530, 1224,
1644      1229,  928, 1096, 1096, 1096,  937, 1097, 1529, 1528, 1098,
1645      1099, 1099, 1099, 1527, 1100, 1525, 1523, 1101, 1521, 1520,
1646      1237, 1518, 1228, 1155, 1155, 1155, 1105, 1105, 1105, 1517,
1647      1106, 1511, 1504, 1107, 1502, 1231, 1501, 1238, 1110, 1110,
1648      1110, 1500, 1111, 1491, 1489, 1112,  947,  947,  947, 1482,
1649      1240,  955,  955,  955, 1117, 1117, 1117, 1479, 1118, 1478,
1650
1651      1477, 1119, 1476, 1475,  949, 1471, 1469, 1241, 1468,  957,
1652      1122, 1122, 1122, 1467, 1123, 1459, 1453, 1124,  965,  965,
1653       965, 1127, 1127, 1127, 1252, 1252, 1252, 1449, 1253, 1448,
1654      1447, 1254,  973,  973,  973, 1446,  967, 1445, 1128, 1259,
1655      1259, 1259, 1443, 1442, 1245, 1247,  979,  979,  979, 1438,
1656       975,  986,  986,  986, 1435, 1434, 1260, 1264, 1264, 1264,
1657       995,  995,  995, 1250,  981, 1141, 1141, 1141, 1433,  988,
1658       793,  793,  793, 1430, 1265, 1157, 1157, 1157,  997, 1257,
1659      1160, 1160, 1160, 1142, 1283, 1283, 1283, 1429,  795, 1285,
1660      1285, 1285, 1166, 1166, 1166, 1289, 1289, 1289, 1169, 1169,
1661
1662      1169, 1262, 1170, 1425, 1424, 1171,  823,  823,  823, 1421,
1663      1261, 1176, 1176, 1176, 1268, 1177, 1420, 1419, 1178, 1266,
1664      1273, 1181, 1181, 1181,  825,  837,  837,  837, 1418, 1417,
1665      1269, 1415, 1412, 1286, 1183, 1183, 1183, 1411, 1184, 1290,
1666      1410, 1185, 1408,  839, 1407, 1284, 1186, 1186, 1186, 1307,
1667      1307, 1307, 1406, 1308, 1405, 1294, 1309,  845,  845,  845,
1668      1192, 1192, 1192, 1187, 1193, 1193, 1193, 1314, 1314, 1314,
1669      1314, 1314, 1314, 1401, 1392,  847, 1283, 1283, 1283, 1386,
1670      1199, 1199, 1199, 1297, 1200, 1384, 1383, 1201, 1202, 1202,
1671      1202, 1318, 1318, 1318, 1382, 1319, 1375, 1368, 1320, 1204,
1672
1673      1204, 1204, 1325, 1325, 1325, 1203, 1310, 1321, 1321, 1321,
1674      1366, 1322, 1363, 1359, 1323, 1358, 1205, 1208, 1208, 1208,
1675      1326, 1357, 1327, 1327, 1327, 1355, 1328, 1324, 1315, 1329,
1676      1317, 1284, 1316, 1313, 1209, 1312, 1311, 1315, 1330, 1330,
1677      1330, 2220, 2220, 2220, 1212, 1212, 1212, 1298, 1213, 1296,
1678      1295, 1214, 1215, 1215, 1215, 1331, 1293, 1292, 2220, 1333,
1679      1333, 1333, 1291, 1334, 1288, 1287, 1335, 1282, 1281, 1216,
1680      1336, 1336, 1336, 2220, 2220, 2220, 2220, 2220, 2220, 1340,
1681      1340, 1340,  893,  893,  893, 1280, 1279, 1337, 1278, 1277,
1682      2220, 1276, 1275, 2220, 1274, 1272, 1341, 1222, 1222, 1222,
1683
1684       895, 1271, 1332, 1343, 1343, 1343, 1270, 1344, 1142, 1263,
1685      1345, 1409, 1409, 1409, 1223, 1346, 1346, 1346, 2220, 2220,
1686      2220, 1226, 1226, 1226, 1353, 1353, 1353, 1339, 1338, 1349,
1687      1349, 1349, 1347, 1350, 1258, 2220, 1351, 1256, 1227, 2220,
1688      2220, 2220, 1354, 1255, 1251, 1342,  915,  915,  915, 1235,
1689      1235, 1235, 1249, 1360, 1360, 1360, 2220, 1361, 1248, 1246,
1690      1362, 1364, 1364, 1364,  917, 1244, 1236,  935,  935,  935,
1691      1369, 1369, 1369, 1243, 1242, 1348, 1371, 1371, 1371, 1365,
1692      2220, 2220, 2220, 1239, 1234,  937, 1233, 1370, 1232, 1230,
1693      1352, 1198, 1197, 1372, 1196, 1356, 1195, 2220, 1194,  947,
1694
1695       947,  947,  955,  955,  955, 1377, 1377, 1377, 1379, 1379,
1696      1379,  965,  965,  965, 1191, 1190, 1367,  949, 1189, 1182,
1697       957, 1179, 1378, 1175, 1173, 1380, 1252, 1252, 1252,  967,
1698      1253, 1172, 1168, 1254,  973,  973,  973, 1259, 1259, 1259,
1699      1167, 1373, 1165, 1387, 1387, 1387, 1376, 1388, 1164, 1163,
1700      1389, 1162,  975, 1161, 1260, 1159,  979,  979,  979, 1158,
1701       986,  986,  986, 1374, 1264, 1264, 1264, 1153, 1393, 1393,
1702      1393, 1152, 1394, 1381,  981, 1395, 1151, 1150,  988, 1149,
1703      1147, 1265, 1146, 1385, 1396, 1396, 1396, 1402, 1402, 1402,
1704       793,  793,  793, 1413, 1413, 1413, 1283, 1283, 1283, 1414,
1705
1706      1414, 1414, 1397, 1145, 1403, 1285, 1285, 1285,  795, 1416,
1707      1416, 1416, 1390, 1391, 1289, 1289, 1289, 1422, 1422, 1422,
1708       837,  837,  837, 1427, 1427, 1427, 1307, 1307, 1307, 1144,
1709      1308, 1137, 1136, 1309, 1133, 1423, 1132, 1130,  839, 1129,
1710      1428,  845,  845,  845, 1440, 1440, 1440, 1126, 1404, 1314,
1711      1314, 1314, 1444, 1444, 1444, 1121, 1318, 1318, 1318,  847,
1712      1319, 1441, 1120, 1320, 1321, 1321, 1321, 1115, 1322, 1113,
1713      1109, 1323, 1325, 1325, 1325, 1108, 1426, 1327, 1327, 1327,
1714      1104, 1328, 1102, 1094, 1329, 1439, 1330, 1330, 1330, 1093,
1715      1326, 1450, 1450, 1450, 1092, 1451, 1091, 1089, 1452, 1087,
1716
1717      1333, 1333, 1333, 1331, 1334, 1086, 1082, 1335, 1336, 1336,
1718      1336, 1454, 1454, 1454, 1081, 1455, 1080, 1078, 1456, 1457,
1719      1457, 1457, 1340, 1340, 1340, 1337, 1460, 1460, 1460, 1077,
1720      1461, 1076, 1075, 1462, 1074, 1068, 1458, 1067, 1066, 1341,
1721       893,  893,  893, 1343, 1343, 1343, 1064, 1344, 1063, 1060,
1722      1345, 1346, 1346, 1346, 1059, 1464, 1464, 1464,  895, 1465,
1723      1058, 1057, 1466, 1349, 1349, 1349, 1056, 1350, 1347, 1055,
1724      1351, 1054, 1353, 1353, 1353,  915,  915,  915, 1472, 1472,
1725      1472, 1360, 1360, 1360, 1053, 1361, 1052, 1049, 1362, 1463,
1726      1354, 1047, 1044,  917, 1041, 1473, 1364, 1364, 1364, 1480,
1727
1728      1480, 1480, 1369, 1369, 1369, 1483, 1483, 1483, 1032, 1484,
1729      1030, 1025, 1485, 1024, 1365, 1023, 1022, 1481, 1021, 1370,
1730      1020, 1019, 1474, 1371, 1371, 1371, 1486, 1486, 1486, 1016,
1731      1487, 1015, 1014, 1488, 1013, 1012, 1470,  947,  947,  947,
1732      1372,  955,  955,  955, 1377, 1377, 1377, 1493, 1493, 1493,
1733      1011, 1494, 1010, 1009, 1495,  949, 1379, 1379, 1379,  957,
1734      1008, 1378, 1496, 1496, 1496, 1006, 1497, 1005, 1004, 1498,
1735      1507, 1507, 1507, 1380,  965,  965,  965,  973,  973,  973,
1736      1387, 1387, 1387, 1003, 1388, 1002, 1001, 1389, 1492,  979,
1737       979,  979,  967, 1000,  780,  975,  986,  986,  986,  994,
1738
1739      1490, 1393, 1393, 1393,  990, 1394,  978,  981, 1395, 1396,
1740      1396, 1396,  977,  972,  988, 1402, 1402, 1402, 1512, 1512,
1741      1512,  971, 1513,  970,  969, 1514,  951, 1397,  793,  793,
1742       793,  939, 1403, 1516, 1516, 1516, 1499,  925, 1505, 1503,
1743      1519, 1519, 1519, 1409, 1409, 1409,  795, 1506, 1522, 1522,
1744      1522, 1413, 1413, 1413, 1414, 1414, 1414, 1416, 1416, 1416,
1745      1524, 1524, 1524, 1526, 1526, 1526, 1422, 1422, 1422, 1531,
1746      1531, 1531,  924, 1427, 1427, 1427, 1533, 1533, 1533,  923,
1747      1534,  919,  911, 1535, 1423,  906,  905, 1532,  899, 1515,
1748      1428,  845,  845,  845, 1440, 1440, 1440, 1547, 1547, 1547,
1749
1750       892, 1548,  891,  890, 1549, 1550, 1550, 1550,  889,  847,
1751       888, 1441, 1444, 1444, 1444, 1450, 1450, 1450,  882, 1451,
1752       871,  870, 1452, 1454, 1454, 1454,  866, 1455,  865,  864,
1753      1456, 1457, 1457, 1457,  863, 1560, 1560, 1560, 1546, 1561,
1754       862,  861, 1562, 1460, 1460, 1460,  860, 1461, 1458,  859,
1755      1462,  893,  893,  893, 1464, 1464, 1464,  858, 1465,  852,
1756       844, 1466, 1568, 1568, 1568, 1472, 1472, 1472,  843,  895,
1757      1571, 1571, 1571,  842, 1572,  841,  836, 1573,  833,  827,
1758      1569,  822, 1473, 1480, 1480, 1480, 1483, 1483, 1483,  821,
1759      1484,  817,  816, 1485,  815, 1486, 1486, 1486,  814, 1487,
1760
1761       813, 1481, 1488,  947,  947,  947,  955,  955,  955, 1493,
1762      1493, 1493, 1564, 1494,  811,  810, 1495,  809, 1496, 1496,
1763      1496,  949, 1497,  808,  957, 1498,  965,  965,  965, 1588,
1764      1588, 1588,  973,  973,  973,  979,  979,  979, 1595, 1595,
1765      1595, 1507, 1507, 1507,  967,  807, 1589, 1597, 1597, 1597,
1766       975,  806, 1584,  981,  805,  804, 1596, 1600, 1600, 1600,
1767      1587,  793,  793,  793,  803,  780, 1512, 1512, 1512, 1586,
1768      1513,  802,  801, 1514, 1516, 1516, 1516,  800,  799,  795,
1769      1602, 1602, 1602, 1519, 1519, 1519, 1604, 1604, 1604, 1605,
1770      1605, 1605, 1594,  792, 1592, 1522, 1522, 1522, 1524, 1524,
1771
1772      1524, 1526, 1526, 1526, 1609, 1609, 1609, 1531, 1531, 1531,
1773       791, 1533, 1533, 1533,  790, 1534,  789, 1601, 1535,  788,
1774       787, 1610,  845,  845,  845, 1532, 1547, 1547, 1547,  786,
1775      1548,  783,  781, 1549, 1550, 1550, 1550, 1560, 1560, 1560,
1776       847, 1561,  780,  778, 1562, 1633, 1633, 1633, 1568, 1568,
1777      1568, 1638, 1638, 1638, 1571, 1571, 1571,  776, 1572,  772,
1778       768, 1573,  766, 1634,  765,  764, 1569,  762, 1639, 1649,
1779      1649, 1649, 1651, 1651, 1651, 1653, 1653, 1653,  761,  760,
1780      1622,  955,  955,  955,  965,  965,  965, 1588, 1588, 1588,
1781      1652,  759, 1654,  758,  756, 1640, 1657, 1657, 1657,  957,
1782
1783      1658,  755,  967, 1659, 1589, 1660, 1660, 1660, 1663, 1663,
1784      1663, 1665, 1665, 1665,  979,  979,  979, 1595, 1595, 1595,
1785       754,  753, 1661, 1597, 1597, 1597, 1664, 1600, 1600, 1600,
1786       749,  748,  981,  746,  745, 1596,  744,  743, 1655,  742,
1787       741,  780, 1656, 1670, 1670, 1670, 1602, 1602, 1602, 1604,
1788      1604, 1604, 1605, 1605, 1605, 1609, 1609, 1609, 1676, 1676,
1789      1676, 1671, 1677,  739,  738, 1678,  845,  845,  845, 1696,
1790      1696, 1696, 1610, 1633, 1633, 1633,  737, 1666, 1638, 1638,
1791      1638,  736, 1667,  734,  847,  733, 1697, 1711, 1711, 1711,
1792       732, 1634, 1703, 1703, 1703, 1639, 1704,  729,  728, 1705,
1793
1794      1649, 1649, 1649,  724, 1712,  723, 1651, 1651, 1651, 1653,
1795      1653, 1653, 1715, 1715, 1715,  721, 1716,  720,  719, 1717,
1796      1718, 1718, 1718, 1690, 1652,  716, 1654,  965,  965,  965,
1797      1657, 1657, 1657,  715, 1658,  714,  712, 1659, 1719, 1660,
1798      1660, 1660, 1721, 1721, 1721,  967, 1722,  711,  710, 1723,
1799      1724, 1724, 1724, 1663, 1663, 1663, 1661, 1665, 1665, 1665,
1800      1726, 1726, 1726, 1670, 1670, 1670,  709, 1725, 1734, 1734,
1801      1734, 1664, 1676, 1676, 1676,  708, 1677,  707, 1727, 1678,
1802       704, 1671,  845,  845,  845, 1735, 1754, 1754, 1754,  701,
1803       700, 1720, 1696, 1696, 1696, 1756, 1756, 1756,  698, 1757,
1804
1805       847,  697, 1758, 1755, 1761, 1761, 1761,  692,  689, 1697,
1806      1764, 1764, 1764, 1703, 1703, 1703,  687, 1704,  686,  685,
1807      1705, 1762,  684, 1711, 1711, 1711,  683, 1765, 1769, 1769,
1808      1769,  681, 1770,  678,  676, 1771, 1772, 1772, 1772, 1751,
1809      1712, 1774, 1774, 1774, 1715, 1715, 1715,  675, 1716,  674,
1810       672, 1717,  670, 1773, 1718, 1718, 1718,  669, 1775,  965,
1811       965,  965, 1721, 1721, 1721,  668, 1722,  667,  664, 1723,
1812       663,  662, 1719, 1724, 1724, 1724,  659,  967, 1783, 1783,
1813      1783,  656, 1784,  654,  651, 1785, 1726, 1726, 1726,  649,
1814      1725, 1789, 1789, 1789, 1734, 1734, 1734,  643, 1792, 1792,
1815
1816      1792,  642, 1793,  639, 1727, 1794,  845,  845,  845,  638,
1817       637, 1735, 1809, 1809, 1809, 1810, 1810, 1810, 1754, 1754,
1818      1754,  636, 1782,  634,  847,  633, 1813, 1813, 1813,  632,
1819      1814,  631, 1811, 1815,  630, 1755, 1756, 1756, 1756,  629,
1820      1757,  624,  621, 1758, 1761, 1761, 1761, 1818, 1818, 1818,
1821       623, 1819,  618,  617, 1820, 1808, 1764, 1764, 1764, 1812,
1822       615, 1762, 1822, 1822, 1822,  484, 1823,  612,  610, 1824,
1823      1826, 1826, 1826, 1765, 1769, 1769, 1769,  608, 1770,  606,
1824      2220, 1771, 1772, 1772, 1772,  603,  602, 1827, 1829, 1829,
1825      1829,  601, 1830,  600,  598, 1831, 1774, 1774, 1774, 1773,
1826
1827      1832, 1832, 1832,  597, 1833,  596,  595, 1834,  965,  965,
1828       965,  594,  592, 1775, 1783, 1783, 1783,  590, 1784,  589,
1829       587, 1785, 1844, 1844, 1844,  586,  967, 1789, 1789, 1789,
1830      1792, 1792, 1792,  583, 1793,  582,  580, 1794,  482, 1845,
1831      1142, 1852, 1852, 1852,  845,  845,  845, 1809, 1809, 1809,
1832      1810, 1810, 1810, 2220, 1826, 1826, 1826, 1841, 1853, 1863,
1833      1863, 1863,  847, 1864,  575,  573, 1865, 1811, 1813, 1813,
1834      1813, 1827, 1814,  569,  568, 1815, 1818, 1818, 1818,  567,
1835      1819,  565,  563, 1820,  562, 1822, 1822, 1822,  560, 1823,
1836       558, 1862, 1824, 1871, 1871, 1871,  557, 1872,  556,  555,
1837
1838      1873, 1829, 1829, 1829,  554, 1830,  553,  551, 1831, 1832,
1839      1832, 1832,  547, 1833,  544,  543, 1834, 1889, 1889, 1889,
1840      1892, 1892, 1892, 1844, 1844, 1844, 1894, 1894, 1894,  542,
1841      1895,  538,  536, 1896,  535, 1890,  534, 1893, 1142,  533,
1842      1845, 1142,  532,  530, 1142, 1897, 1897, 1897, 1898, 1898,
1843      1898, 1852, 1852, 1852, 1903, 1903, 1903, 2220, 1904,  487,
1844       525, 1905,  845,  845,  845, 1863, 1863, 1863, 1853, 1864,
1845       520,  519, 1865, 1915, 1915, 1915, 1917, 1917, 1917,  517,
1846       847, 1919, 1919, 1919, 1871, 1871, 1871,  515, 1872,  514,
1847      1916, 1873,  513, 1918, 1921, 1921, 1921,  511, 1920, 1889,
1848
1849      1889, 1889, 1892, 1892, 1892, 1936, 1936, 1936,  508, 1937,
1850       504, 1922, 1938,  503, 1894, 1894, 1894, 1890, 1895, 1893,
1851      1142, 1896,  501, 1142,  500, 1912, 1897, 1897, 1897, 1898,
1852      1898, 1898, 1142, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
1853      1140, 1140,  497,  496, 1140, 1951, 1951, 1951,  495, 1140,
1854      1140, 1140, 1142, 1140, 1903, 1903, 1903,  493, 1904,  492,
1855      2220, 1905,  486, 1952,  475,  473,  471,  465,  464,  465,
1856      1915, 1915, 1915, 1917, 1917, 1917, 1140, 1140, 1140, 1140,
1857      1140, 1140, 1140, 1140, 1140, 1140, 1140, 1916,  464, 1140,
1858      1918,  463,  462, 2220, 1140, 1140, 1140, 1142, 1140, 1955,
1859
1860      1955, 1955, 2220, 1956, 2220, 2220, 1957, 1958, 1958, 1958,
1861      2220, 1959, 2220, 2220, 1960, 1919, 1919, 1919, 1921, 1921,
1862      1921, 1140, 1140, 1961, 1961, 1961, 2220, 1962, 2220, 2220,
1863      1963, 2220, 1920, 2220, 2220, 1922, 1964, 1964, 1964, 2220,
1864      1965, 2220, 2220, 1966, 1936, 1936, 1936, 2220, 1937, 2220,
1865      2220, 1938, 2220, 2220, 1951, 1951, 1951, 2014, 2014, 2014,
1866      2220, 2220, 1142, 1140, 1140, 1140, 1140, 1140, 1985, 1140,
1867      1140, 1140, 1952, 2220, 1140, 1142, 1143, 2220, 2220, 1140,
1868      1140, 1140, 1142, 1140, 1955, 1955, 1955, 2220, 1956, 2220,
1869      2220, 1957, 1958, 1958, 1958, 2220, 1959, 2220, 2220, 1960,
1870
1871      2017, 2017, 2017, 2019, 2019, 2019, 1140, 1140, 1140, 1140,
1872      1140, 1140, 1140, 1140, 1140, 1140, 1985, 2018, 2220, 1140,
1873      2020, 2220, 2220, 2220, 1140, 1140, 1140, 1142, 1140, 1961,
1874      1961, 1961, 2220, 1962, 2220, 2220, 1963, 1964, 1964, 1964,
1875      2220, 1965, 2220, 2220, 1966, 2037, 2037, 2037, 2014, 2014,
1876      2014, 1140, 1140, 2017, 2017, 2017, 2220, 2041, 2041, 2041,
1877      2220, 2042, 2220,  780, 2043, 2220, 1142, 2019, 2019, 2019,
1878      2018, 2044, 2044, 2044, 2220, 2045, 2220, 2220, 2046, 2220,
1879      2037, 2037, 2037, 2220, 2020, 2041, 2041, 2041, 2220, 2042,
1880      2220, 2220, 2043, 2174, 2174, 2174, 2220, 1268,  780, 2044,
1881
1882      2044, 2044, 2220, 2045, 2220, 2220, 2046, 2218, 2218, 2218,
1883      2220,  780, 2174, 2174, 2174, 2063, 2185, 2220, 2220, 2186,
1884      2218, 2218, 2218, 2220, 2220, 2219, 2220, 2220, 2220, 2220,
1885       780, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2219,  186,
1886       186,  186,  186,  186,  186,  186,  186,  186,  187,  187,
1887       187,  187,  187,  187,  187,  187,  187,  192,  192,  192,
1888       192,  192,  192,  192,  192,  192,  195,  195,  195,  195,
1889       195,  195,  195,  195,  195,  198,  198,  198,  198,  198,
1890       198,  198,  198,  198,  201,  201,  201,  201,  201,  201,
1891       201,  201,  201,  208,  208,  208,  208,  208,  208,  208,
1892
1893       208,  208,  216,  216,  216,  216,  216,  216,  216,  216,
1894       216,  220,  220,  220,  220,  220,  220,  220,  220,  220,
1895       231,  231,  231,  231,  231,  231,  231,  231,  231,  242,
1896       242,  242,  242,  242,  242,  242,  242,  242,  249,  249,
1897       249,  249,  249,  249,  249,  249,  249,  257,  257,  257,
1898       257,  257,  257,  257,  257,  257,  263,  263,  263,  263,
1899       263,  263,  263,  263,  263,  269,  269,  269,  269,  269,
1900       269,  269,  269,  269,  274,  274,  274,  274,  274,  274,
1901       274,  274,  274,  291,  291,  291,  291,  291,  291,  291,
1902       291,  291,  299,  299,  299,  299,  299,  299,  299,  299,
1903
1904       299,  316,  316,  316,  316,  316,  316,  316,  316,  316,
1905       322,  322,  322,  322,  322,  322,  322,  322,  322,  331,
1906       331,  331,  331,  331,  331,  331,  331,  331,  337,  337,
1907       337,  337,  337,  337,  337,  337,  337,  342,  342,  342,
1908       342,  342,  342,  342,  342,  342,  348,  348,  348,  348,
1909       348,  348,  348,  348,  348,  355,  355,  355,  355,  355,
1910       355,  355,  355,  355,  362,  362,  362,  362,  362,  362,
1911       362,  362,  362,  367,  367,  367,  367,  367,  367,  367,
1912       367,  367,  375,  375,  375,  375,  375,  375,  375,  375,
1913       375,  381,  381,  381,  381,  381,  381,  381,  381,  381,
1914
1915       388,  388,  388,  388,  388,  388,  388,  388,  388,  393,
1916       393,  393,  393,  393,  393,  393,  393,  393,  399,  399,
1917       399,  399,  399,  399,  399,  399,  399,  405,  405,  405,
1918       405,  405,  405,  405,  405,  405,  412,  412,  412,  412,
1919       412,  412,  412,  412,  412,  419,  419,  419,  419,  419,
1920       419,  419,  419,  419,  427,  427,  427,  427,  427,  427,
1921       427,  427,  427,  431,  431,  431,  431,  431,  431,  431,
1922       431,  431,  437,  437,  437,  437,  437,  437,  437,  437,
1923       437,  441,  441,  441,  441,  441,  441,  441,  441,  441,
1924       449,  449,  449,  449,  449,  449,  449,  449,  449,  454,
1925
1926       454,  454,  454,  454,  454,  454,  454,  454,  474,  474,
1927       474, 2220, 2220, 2220,  474,  494,  494,  494, 2220, 2220,
1928      2220,  494,  502,  502,  502, 2220, 2220, 2220,  502,  512,
1929       512,  512, 2220, 2220, 2220,  512,  518,  518,  518, 2220,
1930      2220, 2220,  518,  531,  531,  531, 2220, 2220, 2220,  531,
1931       539,  539,  539, 2220, 2220, 2220,  539,  552,  552,  552,
1932      2220, 2220, 2220,  552,  561,  561,  561, 2220, 2220, 2220,
1933       561,  566,  566,  566, 2220, 2220, 2220,  566,  574,  574,
1934       574, 2220, 2220, 2220,  574,  581,  581,  581, 2220, 2220,
1935      2220,  581,  588,  588,  588, 2220, 2220, 2220,  588,  593,
1936
1937       593,  593, 2220, 2220, 2220,  593,  599,  599,  599, 2220,
1938      2220, 2220,  599,  607,  607,  607, 2220, 2220, 2220,  607,
1939       611,  611,  611, 2220, 2220, 2220,  611,  616,  616,  616,
1940      2220, 2220, 2220,  616,  620,  620,  620,  620,  620,  620,
1941       620, 2220,  620,  474,  474,  474, 2220, 2220, 2220,  474,
1942       635, 2220, 2220, 2220,  635,  494,  494,  494, 2220, 2220,
1943      2220,  494,  661, 2220, 2220, 2220,  661,  502,  502,  502,
1944      2220, 2220, 2220,  502,  671, 2220, 2220, 2220,  671,  512,
1945       512,  512, 2220, 2220, 2220,  512,  677, 2220, 2220, 2220,
1946       677,  518,  518,  518, 2220, 2220, 2220,  518,  682, 2220,
1947
1948      2220, 2220,  682,  699, 2220, 2220, 2220,  699,  539,  539,
1949       539, 2220, 2220, 2220,  539,  713, 2220, 2220, 2220,  713,
1950       552,  552,  552, 2220, 2220, 2220,  552,  722, 2220, 2220,
1951      2220,  722,  561,  561,  561, 2220, 2220, 2220,  561,  727,
1952      2220, 2220, 2220,  727,  566,  566,  566, 2220, 2220, 2220,
1953       566,  735, 2220, 2220, 2220,  735,  574,  574,  574, 2220,
1954      2220, 2220,  574,  740, 2220, 2220, 2220,  740,  581,  581,
1955       581, 2220, 2220, 2220,  581,  747, 2220, 2220, 2220,  747,
1956       588,  588,  588, 2220, 2220, 2220,  588,  752, 2220, 2220,
1957      2220,  752,  593,  593,  593, 2220, 2220, 2220,  593,  757,
1958
1959      2220, 2220, 2220,  757,  599,  599,  599, 2220, 2220, 2220,
1960       599,  763, 2220, 2220, 2220,  763,  607,  607,  607, 2220,
1961      2220, 2220,  607,  767, 2220, 2220, 2220,  767,  611,  611,
1962       611, 2220, 2220, 2220,  611,  771, 2220, 2220, 2220,  771,
1963       616,  616,  616, 2220, 2220, 2220,  616,  777, 2220, 2220,
1964      2220,  777,  779,  779,  779,  779,  779,  779,  779,  779,
1965       779,  785, 2220, 2220, 2220, 2220,  785,  474,  474,  474,
1966      2220, 2220, 2220,  474,  794,  794,  794,  794, 2220, 2220,
1967       794,  794,  494,  494,  494, 2220, 2220, 2220,  494,  824,
1968       824,  824,  824, 2220, 2220,  824,  824,  502,  502,  502,
1969
1970      2220, 2220, 2220,  502,  838,  838,  838,  838, 2220, 2220,
1971       838,  838,  512,  512,  512, 2220, 2220, 2220,  512,  846,
1972       846,  846,  846, 2220, 2220,  846,  846,  518,  518,  518,
1973      2220, 2220, 2220,  518,  854,  854,  854,  854, 2220, 2220,
1974       854,  854,  531,  531,  531, 2220, 2220, 2220,  531,  873,
1975       873,  873,  873, 2220, 2220,  873,  873,  539,  539,  539,
1976      2220, 2220, 2220,  539,  894,  894,  894,  894, 2220, 2220,
1977       894,  894,  552,  552,  552, 2220, 2220, 2220,  552,  908,
1978       908,  908,  908, 2220, 2220,  908,  908,  561,  561,  561,
1979      2220, 2220, 2220,  561,  916,  916,  916,  916, 2220, 2220,
1980
1981       916,  916,  566,  566,  566, 2220, 2220, 2220,  566,  927,
1982       927,  927,  927, 2220, 2220,  927,  927,  574,  574,  574,
1983       574, 2220,  574, 2220,  574,  936,  936,  936,  936, 2220,
1984      2220,  936,  936,  581,  581,  581,  581, 2220,  581, 2220,
1985       581,  948,  948,  948,  948, 2220, 2220,  948,  948,  588,
1986       588,  588, 2220, 2220, 2220,  588,  956,  956,  956,  956,
1987      2220, 2220,  956,  956,  593,  593,  593,  593, 2220,  593,
1988      2220,  593,  966,  966,  966,  966, 2220, 2220,  966,  966,
1989       599,  599,  599, 2220, 2220, 2220,  599,  974,  974,  974,
1990       974, 2220, 2220,  974,  974,  607,  607,  607, 2220, 2220,
1991
1992      2220,  607,  980,  980,  980,  980, 2220, 2220,  980,  980,
1993       987,  987,  987,  987, 2220, 2220,  987,  987,  616,  616,
1994       616, 2220, 2220, 2220,  616,  996,  996,  996,  996, 2220,
1995      2220,  996,  996,  779,  779,  779,  779,  779,  779,  779,
1996       779,  779,  785, 2220,  785, 2220, 2220,  785,  474,  474,
1997       474, 2220, 2220, 2220,  474,  794,  794,  794,  794, 2220,
1998      2220,  794,  794,  494,  494,  494,  494, 2220,  494, 2220,
1999       494,  824,  824,  824,  824, 2220, 2220,  824,  824,  502,
2000       502,  502, 2220, 2220, 2220,  502,  838,  838,  838,  838,
2001      2220, 2220,  838,  838,  512,  512,  512, 2220, 2220, 2220,
2002
2003       512,  846,  846,  846,  846, 2220, 2220,  846,  846,  518,
2004       518,  518, 2220, 2220, 2220,  518,  854,  854,  854,  854,
2005      2220, 2220,  854,  854,  531,  531,  531, 2220, 2220, 2220,
2006       531,  873,  873,  873,  873, 2220, 2220,  873,  873,  539,
2007       539,  539, 2220, 2220, 2220,  539,  894,  894,  894,  894,
2008      2220, 2220,  894,  894,  552,  552,  552, 2220, 2220, 2220,
2009       552,  908,  908,  908,  908, 2220, 2220,  908,  908,  561,
2010       561,  561, 2220, 2220, 2220,  561,  916,  916,  916,  916,
2011      2220, 2220,  916,  916,  566,  566,  566, 2220, 2220, 2220,
2012       566,  927,  927,  927,  927, 2220, 2220,  927,  927,  574,
2013
2014       574,  574, 2220, 2220, 2220,  574,  936,  936,  936,  936,
2015      2220, 2220,  936,  936,  581,  581,  581, 2220, 2220, 2220,
2016       581,  948,  948,  948,  948, 2220, 2220,  948,  948,  588,
2017       588,  588, 2220, 2220, 2220,  588,  956,  956,  956,  956,
2018      2220, 2220,  956,  956,  593,  593,  593, 2220, 2220, 2220,
2019       593,  966,  966,  966,  966, 2220, 2220,  966,  966,  599,
2020       599,  599, 2220, 2220, 2220,  599,  974,  974,  974,  974,
2021      2220, 2220,  974,  974,  607,  607,  607, 2220, 2220, 2220,
2022       607,  980,  980,  980,  980, 2220, 2220,  980,  980,  987,
2023       987,  987,  987, 2220, 2220,  987,  987,  616,  616,  616,
2024
2025      2220, 2220, 2220,  616,  996,  996,  996,  996, 2220, 2220,
2026       996,  996,  779,  779,  779,  779,  779,  779,  779,  779,
2027       779, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
2028       474,  474,  474, 2220, 2220, 2220,  474,  794,  794,  794,
2029       794, 2220, 2220,  794,  794,  494,  494,  494, 2220, 2220,
2030      2220,  494,  824,  824,  824,  824, 2220, 2220,  824,  824,
2031       502,  502,  502, 2220, 2220, 2220,  502,  838,  838,  838,
2032       838, 2220, 2220,  838,  838,  512,  512,  512, 2220, 2220,
2033      2220,  512,  846,  846,  846,  846, 2220, 2220,  846,  846,
2034       518,  518,  518, 2220, 2220, 2220,  518,  531,  531,  531,
2035
2036      2220, 2220, 2220,  531,  873,  873,  873,  873, 2220, 2220,
2037       873,  873,  539,  539,  539,  539, 2220,  539, 2220,  539,
2038       894,  894,  894,  894, 2220, 2220,  894,  894,  552,  552,
2039       552,  552, 2220,  552, 2220,  552,  908,  908,  908,  908,
2040      2220, 2220,  908,  908,  561,  561,  561, 2220, 2220, 2220,
2041       561,  916,  916,  916,  916, 2220, 2220,  916,  916,  566,
2042       566,  566, 2220, 2220, 2220,  566,  927,  927,  927,  927,
2043      2220, 2220,  927,  927,  574,  574,  574, 2220, 2220, 2220,
2044       574,  936,  936,  936,  936, 2220, 2220,  936,  936,  581,
2045       581,  581, 2220, 2220, 2220,  581,  948,  948,  948,  948,
2046
2047      2220, 2220,  948,  948,  588,  588,  588, 2220, 2220, 2220,
2048       588,  956,  956,  956,  956, 2220, 2220,  956,  956,  593,
2049       593,  593, 2220, 2220, 2220,  593,  966,  966,  966,  966,
2050      2220, 2220,  966,  966,  599,  599,  599, 2220, 2220, 2220,
2051       599,  974,  974,  974,  974, 2220, 2220,  974,  974,  607,
2052       607,  607,  607, 2220,  607, 2220,  607,  980,  980,  980,
2053       980, 2220, 2220,  980,  980,  987,  987,  987,  987, 2220,
2054      2220,  987,  987,  616,  616,  616,  616, 2220,  616, 2220,
2055       616,  996,  996,  996,  996, 2220, 2220,  996,  996,  779,
2056       779,  779,  779,  779,  779,  779,  779,  779, 1140, 1140,
2057
2058      1140, 1140, 1140, 1140, 1140, 1140, 1140,  474,  474,  474,
2059      2220, 2220, 2220,  474,  794,  794,  794,  794, 2220, 2220,
2060       794,  794,  494,  494,  494, 2220, 2220, 2220,  494,  824,
2061       824,  824,  824, 2220, 2220,  824,  824,  502,  502,  502,
2062      2220, 2220, 2220,  502,  838,  838,  838,  838, 2220, 2220,
2063       838,  838,  512,  512,  512, 2220, 2220, 2220,  512,  846,
2064       846,  846,  846, 2220, 2220,  846,  846,  518,  518,  518,
2065      2220, 2220, 2220,  518,  531,  531,  531, 2220, 2220, 2220,
2066       531,  873,  873,  873,  873, 2220, 2220,  873,  873,  539,
2067       539,  539,  539, 2220,  539, 2220,  539,  894,  894,  894,
2068
2069       894, 2220, 2220,  894,  894,  552,  552,  552,  552, 2220,
2070       552, 2220,  552,  908,  908,  908,  908, 2220, 2220,  908,
2071       908,  561,  561,  561, 2220, 2220, 2220,  561,  916,  916,
2072       916,  916, 2220, 2220,  916,  916,  566,  566,  566, 2220,
2073      2220, 2220,  566,  927,  927,  927,  927, 2220, 2220,  927,
2074       927,  574,  574,  574, 2220, 2220, 2220,  574,  936,  936,
2075       936,  936, 2220, 2220,  936,  936,  581,  581,  581,  581,
2076      2220,  581, 2220,  581,  948,  948,  948,  948, 2220, 2220,
2077       948,  948,  588,  588,  588, 2220, 2220, 2220,  588,  956,
2078       956,  956,  956, 2220, 2220,  956,  956,  593,  593,  593,
2079
2080       593, 2220,  593, 2220,  593,  966,  966,  966,  966, 2220,
2081      2220,  966,  966,  599,  599,  599, 2220, 2220, 2220,  599,
2082       974,  974,  974,  974, 2220, 2220,  974,  974,  980,  980,
2083       980,  980, 2220, 2220,  980,  980,  987,  987,  987,  987,
2084      2220, 2220,  987,  987,  996,  996,  996,  996, 2220, 2220,
2085       996,  996,  779,  779,  779,  779,  779,  779,  779,  779,
2086       779, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
2087       474,  474,  474,  474, 2220,  474, 2220,  474,  794,  794,
2088       794,  794, 2220, 2220,  794,  794,  494,  494,  494, 2220,
2089      2220, 2220,  494,  824,  824,  824,  824, 2220, 2220,  824,
2090
2091       824,  502,  502,  502, 2220, 2220, 2220,  502,  838,  838,
2092       838,  838, 2220, 2220,  838,  838,  512,  512,  512,  512,
2093      2220,  512, 2220,  512,  846,  846,  846,  846, 2220, 2220,
2094       846,  846,  518,  518,  518,  518, 2220,  518, 2220,  518,
2095       531,  531,  531, 2220, 2220, 2220,  531,  539,  539,  539,
2096      2220, 2220, 2220,  539,  894,  894,  894,  894, 2220, 2220,
2097       894,  894,  552,  552,  552, 2220, 2220, 2220,  552,  561,
2098       561,  561, 2220, 2220, 2220,  561,  916,  916,  916,  916,
2099      2220, 2220,  916,  916,  566,  566,  566, 2220, 2220, 2220,
2100       566,  574,  574,  574, 2220, 2220, 2220,  574,  936,  936,
2101
2102       936,  936, 2220, 2220,  936,  936,  581,  581,  581, 2220,
2103      2220, 2220,  581,  948,  948,  948,  948, 2220, 2220,  948,
2104       948,  588,  588,  588, 2220, 2220, 2220,  588,  956,  956,
2105       956,  956, 2220, 2220,  956,  956,  966,  966,  966,  966,
2106      2220, 2220,  966,  966,  599,  599,  599, 2220, 2220, 2220,
2107       599,  974,  974,  974,  974, 2220, 2220,  974,  974,  980,
2108       980,  980,  980, 2220, 2220,  980,  980,  987,  987,  987,
2109       987, 2220, 2220,  987,  987,  779,  779,  779,  779,  779,
2110       779,  779,  779,  779, 1140, 1140, 1140, 1140, 1140, 1140,
2111      1140, 1140, 1140, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
2112
2113      1939, 1939, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2114      1940, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980,
2115      1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 2011,
2116      2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2013, 2013,
2117      2013, 2013, 2013, 2013, 2013, 2013, 2013,  185, 2220, 2220,
2118      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2119      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2120      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2121      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2122      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2123
2124      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2125      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220
2126     } ;
2127
2128 static yyconst flex_int16_t yy_chk[7819] =
2129     {   0,
2130         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2131         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2132         4,   10,    0,    5,  251,    9,    6,  458,   10,    7,
2133         8,    8,    8,  190,   11,   13,   13,   12,   14,   14,
2134        13,   13,  458,   14,   14,  191,    8,   17,   17,  190,
2135        13,   15,   15,   14,   15,  194,   15,   16,   16, 1398,
2136        16,  191,   16,   18,   18, 1398,   15,   19,   19,   19,
2137       285,  194,   16,  251,   20,   20,   20,   23,   23,   23,
2138        24,   24,   24,   19,   25,   25,   25,  247,  212,   17,
2139        20,  247,  252,   23, 1502,  247,   24,  188,  188,  188,
2140
2141        25,  189,  189,  189,  212,   18,   21,   21,   21,   21,
2142        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2143        21,  285,   21,   21,   21,   21,   21,   26,   26,   26,
2144        27,   27,   27,  279, 1504,   28,   28,   28,   29,   29,
2145        29,  252,  279,   26,  212,  287,   27,  287,  217,   21,
2146        21,   28,  253, 1518,   29,   30,   30,   30,  193,  193,
2147       193,  214,  214,  214,  217,  221,  221,  221,  229,  229,
2148       229,   30,   21,   22,   22,   22,   22,   22,   22,   22,
2149        22,   22,   22,   22,   22,   22,   22,   22,  301,   22,
2150        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
2151
2152       315,  253,   33,   33,   33,   34,   34,   34,  313,  281,
2153        31,  313,  315,   32,  309,  782,   22,   22,   33,  782,
2154       232,   34,   35,   35,   35,   36,   36,   36,   37,   37,
2155        37,   38,   38,   38,  309,  225,  232,  301,   35,   22,
2156       445,   36,  445,  498,   37,  281,  302,   38,   39,   39,
2157        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
2158        39,   39,   39,  282,   39,   39,   39,   39,   39,   45,
2159        45,   45,  225,  282,   46,   46,   46,  498,   47,   47,
2160        47, 1523,   41,   41,  225,   45,  423,   41,   42,   42,
2161        46,   39,   39,   42,   47,  302,  354,   41,  467,   39,
2162
2163       423,  467,   39,   42,  240,  240,  240,  354,   39,   40,
2164        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
2165        40,   40,   40,   40,   41,   40,   40,   40,   40,   40,
2166        42,   48,   48,   48,   49,   49,   49,  366,   50,   50,
2167        50,   51,   51,   51,  366,  243,  258,   48,  237,  265,
2168        49,  270,   40,   40,   50,  237,  265,   51, 1268,  357,
2169        40,  243,  258,   40,  237,  265,  204,  270,  358,   40,
2170        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2171        43,   43,   43,   43,   43,  283,   43,   43,   43,   43,
2172        43,   52,   52,   52,   55,   55,   55, 1268,  380,   56,
2173
2174        56,   56,   59,   59,   59,  380,  204,   52,  357,  292,
2175        55,  283,  204,   43,   43,   56,  204,  358,   59,  484,
2176       480,  204,   43,  480,   43,  292,  283,   43,  250,  250,
2177       250,  384,  484,   43,   44,   44,   44,   44,   44,   44,
2178        44,   44,   44,   44,   44,   44,   44,   44,   44,  526,
2179        44,   44,   44,   44,   44,   60,   60,   60,   61,   61,
2180        61,  622,  526,   62,   62,   62,   63,   63,   63,  486,
2181      1525,   60,  486,  307,   61,  622,  384,   44,   44,   62,
2182       318,  408,   63,  255,  255,  255,   44,  318,   44,  307,
2183       715,   44,  264,  264,  264,  715,  318,   44,   53,   53,
2184
2185        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
2186        53,   53,   53,  224,   53,   53,   53,   53,   53,   64,
2187        64,   64,   65,   65,   65,  807,  408,   66,   66,   66,
2188        67,   67,   67,  488,  528,   64,  488,  807,   65,  323,
2189       224,   53,   53,   66,  338,  349,   67,  528,   53,  267,
2190       267,  267,  224,   53, 1527,  323,  224,  275,  275,  275,
2191       338,  349,   53,   54,   54,   54,   54,   54,   54,   54,
2192        54,   54,   54,   54,   54,   54,   54,   54,  529,   54,
2193        54,   54,   54,   54,   68,   68,   68,   69,   69,   69,
2194       816,  529,   70,   70,   70,   71,   71,   71,  533,  614,
2195
2196        68,  533,  816,   69,  999, 1530,   54,   54,   70,  363,
2197       333,   71,  614,   54,  289,  289,  289,  333,   54,  300,
2198       300,  300,  999, 1510,  284,  363,  333,   54,   57,   57,
2199        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2200        57,   57,   57,  841,   57,   57,   57,   57,   57,   72,
2201        72,   72,   73,   73,   73,  841, 1301,   74,   74,   74,
2202        75,   75,   75, 1301,  376,   72,  284, 1510,   73,  284,
2203      1536,   57,   57,   74, 1267,  284,   75,  304,  304,  304,
2204       376,  369,   57,  317,  317,  317,  320,  320,  320, 1267,
2205        57,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2206
2207        58,   58,   58,   58,   58,   58, 1139,   58,   58,   58,
2208        58,   58,   76,   76,   76,   77,   77,   77, 1400, 1537,
2209        78,   78,   78,   79,   79,   79,  369,  389,   76, 1139,
2210       369,   77, 1269, 1538,   58,   58,   78, 1539,  400,   79,
2211        80,   80,   80,  389,  413,   58,   81,   81,   81,   82,
2212        82,   82, 1399,   58,  400, 1540,   80,   83,   83,   83,
2213       413, 1400,   81, 1269,  428,   82,   84,   84,   84,   85,
2214        85,   85, 1541,   83,   86,   86,   86,   87,   87,   87,
2215       428, 1399,   84, 1447,  344,   85,   88,   88,   88, 1447,
2216        86,  344, 1542,   87,  332,  332,  332,  335,  335,  335,
2217
2218       344, 1509,   88,   89,   89,   89,   89,   89,   89,   89,
2219        89,   89,   89,   89,   89,   89,   89,   89, 1543,   89,
2220        89,   89,   89,   89,   91,   91,   91,   92,   92,   92,
2221      1544, 1545,   93,   93,   93, 1305,   94,   94,   94, 1551,
2222        91, 1509, 1305,   92,  483,  438,   89,   89,   93,   89,
2223       483,   89,   94,  343,  343,  343,  483,   89,  346,  346,
2224       346,  438, 1552,   89, 1553, 1554,   89,   90,   90,   90,
2225        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2226        90,   90, 1555,   90,   90,   90,   90,   90,   95,   95,
2227        95,   96,   96,   96, 1556, 1557,   97,   97,   97, 1448,
2228
2229        98,   98,   98, 1558,   95, 1448, 1559,   96,  489,  450,
2230        90,   90,   97,   90,  489,   90,   98,  356,  356,  356,
2231       489,   90,  360,  360,  360,  450, 1563,   90, 1565, 1566,
2232        90,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2233        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2234        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2235        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2236        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2237        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2238        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2239
2240        99,  101,  101,  101,  102,  102,  102,  368,  368,  368,
2241       373,  373,  373,  382,  382,  382, 1567,  101, 1574, 1575,
2242       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2243       103,  103,  103,  103,  103,  103, 1576,  103,  103,  103,
2244       103,  103,  105,  105,  105,  106,  106,  106, 1577, 1578,
2245       109,  109,  109, 1476,  110,  110,  110, 1477,  105, 1476,
2246       395,  106, 1579, 1477,  103,  103,  109,  395,  103,  103,
2247       110,  386,  386,  386, 1580,  103,  395,  103,  394,  394,
2248       394,  103,  421, 1581,  103,  104,  104,  104,  104,  104,
2249       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2250
2251      1583,  104,  104,  104,  104,  104,  113,  113,  113,  114,
2252       114,  114, 1591, 1603,  115,  115,  115,  421,  116,  116,
2253       116, 1606,  113, 1607, 1608,  114, 1611, 1612,  104,  104,
2254       115,  421,  104,  104,  116,  397,  397,  397, 1613,  104,
2255      1614,  104,  406,  406,  406,  104, 1598, 1615,  104,  107,
2256       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2257       107,  107,  107,  107, 1616,  107,  107,  107,  107,  107,
2258       117,  117,  117,  118,  118,  118, 1598, 1617,  119,  119,
2259       119, 1618,  120,  120,  120, 1619,  117, 1620, 1621,  118,
2260       491, 1623,  107,  107,  119, 1624,  491,  107,  120,  410,
2261
2262       410,  410,  491,  107,  108,  108,  108,  108,  108,  108,
2263       108,  108,  108,  108,  108,  108,  108,  108,  108, 1625,
2264       108,  108,  108,  108,  108,  123,  123,  123,  124,  124,
2265       124, 1626, 1628,  125,  125,  125, 1631,  126,  126,  126,
2266      1632,  123, 1635, 1636,  124,  492, 1637,  108,  108,  125,
2267      1640,  492,  108,  126,  420,  420,  420,  492,  108,  111,
2268       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
2269       111,  111,  111,  111, 1641,  111,  111,  111,  111,  111,
2270       127,  127,  127,  128,  128,  128, 1642, 1643,  129,  129,
2271       129,  130,  130,  130, 1645, 1648,  127, 1650,  433,  128,
2272
2273      1672, 1667,  111,  111,  129,  433,  111,  130,  425,  425,
2274       425, 1669, 1673,  111,  433,  111,  432,  432,  432,  435,
2275       435,  435,  111,  112,  112,  112,  112,  112,  112,  112,
2276       112,  112,  112,  112,  112,  112,  112,  112, 1667,  112,
2277       112,  112,  112,  112,  133,  133,  133,  134,  134,  134,
2278      1674, 1669,  135,  135,  135,  136,  136,  136, 1679, 1680,
2279       133, 1681,  456,  134, 1677, 1678,  112,  112,  135,  456,
2280       112,  136,  442,  442,  442, 1677, 1678,  112,  456,  112,
2281       447,  447,  447,  455,  455,  455,  112,  121,  121,  121,
2282       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
2283
2284       121,  121, 1682,  121,  121,  121,  121,  121,  137,  137,
2285       137,  138,  138,  138, 1599, 1683,  139,  139,  139,  140,
2286       140,  140,  510, 1684,  137, 1685, 1686,  138,  510, 1687,
2287       121,  121,  139, 1688,  510,  140,  121,  457,  457,  457,
2288      1689,  466,  466,  466,  625,  625,  625, 1691,  625, 1599,
2289       121,  122,  122,  122,  122,  122,  122,  122,  122,  122,
2290       122,  122,  122,  122,  122,  122, 1692,  122,  122,  122,
2291       122,  122,  143,  143,  143,  144,  144,  144, 1668, 1698,
2292       147,  147,  147,  148,  148,  148, 1699, 1701,  143, 1706,
2293      1707,  144, 1708, 1732,  122,  122,  147,  466, 1733,  148,
2294
2295       122,  637,  637,  637,  651,  651,  651,  797,  797,  797,
2296       684,  684,  684, 1668,  122,  131,  131,  131,  131,  131,
2297       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2298      1736,  131,  131,  131,  131,  131,  149,  149,  149,  150,
2299       150,  150, 1716, 1737,  151,  151,  151,  152,  152,  152,
2300      1716, 1738,  149, 1739, 1740,  150, 1716,  701,  131,  131,
2301       151, 1741,  637,  152,  131,  651,  701,  131,  658,  658,
2302       658,  684,  658,  701, 1742,  658, 1729, 1743,  131,  132,
2303       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2304       132,  132,  132,  132, 1728,  132,  132,  132,  132,  132,
2305
2306       153,  153,  153,  154,  154,  154, 1717, 1744,  157,  157,
2307       157,  158,  158,  158, 1717, 1729,  153, 1746, 1747,  154,
2308      1717, 1728,  132,  132,  157, 1748, 1749,  158,  132, 1759,
2309      1760,  132,  666,  666,  666, 1763,  666, 1766, 1768,  666,
2310      1730, 1776,  132,  141,  141,  141,  141,  141,  141,  141,
2311       141,  141,  141,  141,  141,  141,  141,  141, 1777,  141,
2312       141,  141,  141,  141,  159,  159,  159,  160,  160,  160,
2313      1778, 1779,  161,  161,  161,  162,  162,  162, 1780, 1730,
2314       159, 1781, 1790,  160, 1791, 1795,  141,  141,  161, 1786,
2315      1796,  162,  141,  812,  812,  812, 1797,  141,  142,  142,
2316
2317       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
2318       142,  142,  142, 1798,  142,  142,  142,  142,  142,  163,
2319       163,  163,  164,  164,  164, 1800, 1801,  167,  167,  167,
2320       168,  168,  168, 1802, 1786,  163, 1803, 1804,  164, 1805,
2321      1806,  142,  142,  167, 1807, 1812,  168,  142,  689,  689,
2322       689, 1816,  142,  145,  145,  145,  145,  145,  145,  145,
2323       145,  145,  145,  145,  145,  145,  145,  145, 1817,  145,
2324       145,  145,  145,  145,  171,  171,  171,  172,  172,  172,
2325      1821, 1787,  173,  173,  173,  174,  174,  174, 1825, 1828,
2326       171, 1835, 1836,  172, 1830, 1837,  145,  145,  173, 1838,
2327
2328      1839,  174,  145, 1840, 1830,  145,  680,  680,  680,  689,
2329       680, 1848, 1842,  680, 1787, 1849,  145,  146,  146,  146,
2330       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2331       146,  146, 1850,  146,  146,  146,  146,  146,  175,  175,
2332       175,  176,  176,  176, 1842, 1831,  177,  177,  177,  178,
2333       178,  178, 1851, 1833,  175, 1831, 1854,  176, 1834, 1855,
2334       146,  146,  177, 1833, 1857,  178,  146, 1858, 1834,  146,
2335       696,  696,  696, 1859,  696,  443, 1861,  696, 1866, 1867,
2336       146,  155,  155,  155,  155,  155,  155,  155,  155,  155,
2337       155,  155,  155,  155,  155,  155, 1875,  155,  155,  155,
2338
2339       155,  155,  181,  181,  181,  182,  182,  182, 1876, 1877,
2340       443,  496,  496,  496, 1878,  635,  635,  635,  181, 1879,
2341      1880,  182, 1881, 1882,  155,  155,  443, 1883,  496, 1884,
2342       276,  277,  155,  635,  155, 1886,  155, 1013, 1013, 1013,
2343       276,  277, 1887, 1899,  155,  156,  156,  156,  156,  156,
2344       156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
2345      1900,  156,  156,  156,  156,  156,  276,  277,  277,  504,
2346       504,  504,  276, 1901, 1902,  276,  519,  519,  519, 1906,
2347       277,  276,  534,  534,  534, 1907,  504, 1908,  156,  156,
2348       541,  541,  541,  519, 1909, 1910,  156, 1911,  156,  534,
2349
2350       156, 1913, 1014, 1014, 1014, 1914, 1923,  541,  156,  165,
2351       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
2352       165,  165,  165,  165, 1891,  165,  165,  165,  165,  165,
2353       543,  543,  543,  555,  555,  555, 1924,  563,  563,  563,
2354       568,  568,  568,  590,  590,  590, 1014,  543, 1925, 1926,
2355       555, 1927,  165,  165,  563, 1928, 1929,  568, 1930, 1931,
2356       590,  703,  703,  703, 1891,  703, 1932, 1933,  703, 1015,
2357      1015, 1015, 1018, 1018, 1018,  165,  166,  166,  166,  166,
2358       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
2359       166, 1934,  166,  166,  166,  166,  166,  612,  612,  612,
2360
2361       617,  617,  617,  636,  636,  636,  657,  657,  657,  661,
2362       661,  661, 1941, 1943,  612, 1946, 1947,  617, 1949,  166,
2363       166,  636, 1938,  657,  665,  665,  665,  661,  706,  706,
2364       706, 1950,  706, 1938, 1953,  706, 1024, 1024, 1024, 1954,
2365      1935,  665,  166,  169,  169,  169,  169,  169,  169,  169,
2366       169,  169,  169,  169,  169,  169,  169,  169,  636,  169,
2367       169,  169,  169,  169,  662,  662,  662,  667,  667,  667,
2368      1968,  669,  669,  669,  671,  671,  671,  672,  672,  672,
2369      1937, 1970,  662, 1935,  667, 1972,  169,  169,  669,  718,
2370       718,  718,  671,  718, 1937,  672,  718,  169,  170,  170,
2371
2372       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
2373       170,  170,  170, 1956,  170,  170,  170,  170,  170,  677,
2374       677,  677,  672, 1956, 1974,  662,  678,  678,  678,  679,
2375       679,  679,  682,  682,  682, 1957, 1982,  677, 1043, 1043,
2376      1043,  170,  170, 1984,  678, 1957,  679, 1054, 1054, 1054,
2377       682, 1986,  170,  179,  179,  179,  179,  179,  179,  179,
2378       179,  179,  179,  179,  179,  179,  179,  179, 1987,  179,
2379       179,  179,  179,  179,  683,  683,  683,  695,  695,  695,
2380       699,  699,  699,  700,  700,  700, 1980,  678,  702,  702,
2381       702, 1995,  683, 1997,  695, 1998,  179,  179,  699, 1999,
2382
2383      1980,  700, 1154, 1154, 1154,  702, 1959,  179, 1960,  683,
2384       726,  726,  726, 2000,  726, 2001, 1959,  726, 1960,  179,
2385       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
2386       180,  180,  180,  180,  180, 1979,  180,  180,  180,  180,
2387       180,  700,  705,  705,  705,  707,  707,  707,  713,  713,
2388       713,  714,  714,  714,  717,  717,  717, 1965, 2003,  705,
2389      1184, 2005,  707,  180,  180, 1184,  713, 1965, 1184,  714,
2390      2011,  717, 1184, 1979,  180,  719,  719,  719,  722,  722,
2391       722, 1966, 1983,  723,  723,  723,  180,  222,  725,  725,
2392       725, 1966,  719, 1983,  222, 2012,  722,  727,  727,  727,
2393
2394      2013,  723, 2015,  222,  222,  725,  714,  728,  728,  728,
2395       730,  730,  730, 2016, 1185,  727,  731,  731,  731, 1185,
2396       731, 2021, 1185,  731, 2022,  728, 1185,  730, 2023,  222,
2397       222,  222,  723,  735,  735,  735,  222, 1981, 1981,  222,
2398       736,  736,  736,  222, 2024,  222, 2025,  222,  740,  740,
2399       740,  735,  737,  737,  737,  738,  738,  738,  736,  739,
2400       739,  739,  741,  741,  741,  728,  740, 2026, 2027,  737,
2401      2028, 2029,  738,  743,  743,  743,  739,  744,  744,  744,
2402       741,  745,  745,  745,  746,  746,  746,  747,  747,  747,
2403       743, 2030, 2031,  736,  744,  748,  748,  748,  745, 2032,
2404
2405      2033,  746,  750,  750,  750,  747, 2034,  751,  751,  751,
2406      2035,  751, 1994,  748,  751,  739,  752,  752,  752,  750,
2407       741,  754,  754,  754, 2036,  744,  753,  753,  753, 1994,
2408       748,  756,  756,  756,  752,  755,  755,  755,  754,  744,
2409       746,  757,  757,  757,  753,  758,  758,  758,  756,  763,
2410       763,  763,  755,  764,  764,  764,  767,  767,  767,  757,
2411       768,  768,  768,  758,  769,  769,  769,  763,  770,  770,
2412       770,  764,  770, 2038,  767,  770, 1996, 2047,  768,  753,
2413      2048,  769, 2002,  755,  771,  771,  771,  772,  772,  772,
2414       774,  774,  774, 1996,  775,  775,  775,  755,  775, 2002,
2415
2416      2049,  775,  771, 2050, 2051,  772, 2052,  774,  777,  777,
2417       777, 2053, 2054,  758,  764,  778,  778,  778,  793,  793,
2418       793,  768,  794,  794,  794, 2045,  777, 2004,  796,  796,
2419       796, 2055, 2056,  778, 2057, 2045,  793,  817,  817,  817,
2420       794,  821,  821,  821, 2004,  772,  796, 2046,  818,  818,
2421       818, 2058,  818, 2059,  817,  818, 2060, 2046,  821,  823,
2422       823,  823,  824,  824,  824,  826,  826,  826,  828,  828,
2423       828, 2061,  828,  796, 2062,  828,  778,  823, 2065, 2066,
2424       824, 2067, 2063,  826,  831,  831,  831,  832,  832,  832,
2425      2068,  832, 2069, 2070,  832,  833,  833,  833, 2071,  821,
2426
2427      2072,  831,  834,  834,  834, 2063, 2073,  835,  835,  835,
2428       826,  835,  833, 2074,  835,  837,  837,  837, 2075,  834,
2429       838,  838,  838,  840,  840,  840,  843,  843,  843,  845,
2430       845,  845, 2076,  837,  846,  846,  846, 2077,  838, 2078,
2431      2079,  840, 2080,  843,  848,  848,  848,  845, 2081,  849,
2432       849,  849,  846,  849, 2082, 2083,  849,  853,  853,  853,
2433      2084, 2085,  848,  854,  854,  854,  856,  856,  856,  866,
2434       866,  866,  867,  867,  867,  853,  867, 2086, 2085,  867,
2435       840,  854, 2087, 2088,  856, 2089,  866, 2090, 2091,  848,
2436       872,  872,  872,  873,  873,  873,  875,  875,  875,  879,
2437
2438       879,  879, 2092,  879, 2093, 2094,  879, 2095,  872, 2096,
2439      2097,  873, 2098, 2099,  875,  882,  882,  882,  883,  883,
2440       883, 2100,  883, 2101, 2102,  883,  886,  886,  886,  887,
2441       887,  887,  882,  887, 2103, 2104,  887,  893,  893,  893,
2442      1155, 1155, 1155,  886,  894,  894,  894,  896,  896,  896,
2443       900,  900,  900, 2105,  900,  893, 2106,  900,  875,  903,
2444       903,  903,  894, 2107, 2108,  896,  904,  904,  904, 2109,
2445       904, 2110, 2111,  904, 2106, 2112,  903,  907,  907,  907,
2446       908,  908,  908,  910,  910,  910,  912,  912,  912, 2113,
2447       912, 2114, 2115,  912, 2116,  907, 2117, 2118,  908, 2119,
2448
2449      2120,  910,  915,  915,  915,  916,  916,  916,  918,  918,
2450       918,  896,  920,  920,  920, 2121,  920, 2122, 2123,  920,
2451       915, 2124, 2125,  916, 2126, 2127,  918,  926,  926,  926,
2452      2128, 2127,  910,  927,  927,  927,  929,  929,  929,  930,
2453       930,  930,  931,  931,  931,  926,  931, 2129, 2130,  931,
2454      2131,  927, 2132, 2133,  929, 2135,  930,  932,  932,  932,
2455       933,  933,  933, 2136,  933, 2138, 2140,  933,  935,  935,
2456       935, 2142,  918, 2143,  932, 2145,  936,  936,  936,  938,
2457       938,  938,  940,  940,  940, 2146,  935, 2149,  941,  941,
2458       941, 2150,  941,  929,  936,  941, 2148,  938, 2151,  940,
2459
2460       944,  944,  944,  945,  945,  945, 2152,  945, 2148, 2154,
2461       945,  947,  947,  947,  948,  948,  948,  944,  950,  950,
2462       950,  952,  952,  952, 2156,  952, 2157, 2158,  952,  947,
2463      2160, 2162,  948,  955,  955,  955,  950,  956,  956,  956,
2464       958,  958,  958,  938,  959,  959,  959,  963,  963,  963,
2465      2164,  955,  960,  960,  960,  956,  960, 2165,  958,  960,
2466      2166,  959, 2167, 2168,  963,  964,  964,  964, 2169,  964,
2467      2170, 2171,  964,  965,  965,  965,  966,  966,  966,  950,
2468       968,  968,  968,  970,  970,  970,  973,  973,  973, 2172,
2469      2173,  965, 2175, 2177,  966, 2179, 2180,  958,  968, 2181,
2470
2471       970,  974,  974,  974,  973,  976,  976,  976,  979,  979,
2472       979,  980,  980,  980,  982,  982,  982, 2182, 2183,  974,
2473       983,  983,  983,  976,  983, 2184,  979,  983, 2185,  980,
2474      1501, 2199,  982,  986,  986,  986,  987,  987,  987,  968,
2475       989,  989,  989,  991,  991,  991, 1491,  991, 2197, 2211,
2476       991,  986, 2200, 1489,  987,  995,  995,  995,  989,  996,
2477       996,  996, 2186,  976, 2199,  982,  998,  998,  998, 1000,
2478      1000, 1000, 2185,  995, 1007, 1007, 1007,  996, 1027, 1027,
2479      1027, 1031, 1031, 1031,  998, 2200, 2197, 1000, 1000, 1028,
2480      1028, 1028, 1007, 1028, 2211, 1027, 1028,  989, 2198, 1031,
2481
2482      1033, 1033, 1033, 2201, 1033, 2202, 2186, 1033, 1036, 1036,
2483      1036, 1037, 1037, 1037, 2205, 1037, 2216, 1482, 1037, 1038,
2484      1038, 1038, 1479, 1038,  998, 1036, 1038, 2216, 1031, 1042,
2485      1042, 1042, 1045, 1045, 1045, 2206, 2198, 1007, 1046, 1046,
2486      1046, 2195, 1046, 2196, 2205, 1046, 2201, 1042, 2202, 1045,
2487      1047, 1047, 1047, 1048, 1048, 1048, 1050, 1050, 1050, 1055,
2488      1055, 1055, 1061, 1061, 1061, 2206, 1478, 1047, 1062, 1062,
2489      1062, 1048, 1062, 2203, 1050, 1062, 2195, 1042, 2196, 1061,
2490      1063, 1063, 1063, 1475, 1064, 1064, 1064, 1065, 1065, 1065,
2491      1066, 1066, 1066, 1067, 1067, 1067, 2204, 1063, 1474, 1471,
2492
2493      1048, 1064, 2207, 1055, 1469, 1065, 2209, 1066, 2203, 2210,
2494      1067, 2207, 1068, 1068, 1068, 1069, 1069, 1069, 1070, 1070,
2495      1070, 2208, 1070, 1468, 2215, 1070, 1467, 1459, 1064, 1068,
2496      2208, 2204, 1069, 1071, 1071, 1071, 2209, 1071, 2215, 2210,
2497      1071, 1074, 1074, 1074, 1075, 1075, 1075, 1076, 1076, 1076,
2498      1065, 1077, 1077, 1077, 2212, 1453, 1067, 1068, 1074, 1449,
2499      2213, 1075, 1446, 1445, 1076, 1078, 1078, 1078, 1077, 1079,
2500      1079, 1079, 1080, 1080, 1080, 1443, 1081, 1081, 1081, 1088,
2501      1088, 1088, 1078, 1082, 1082, 1082, 1438, 1079, 1437, 1080,
2502      2213, 2214, 1076, 1081, 1083, 1083, 1083, 1088, 1083, 2212,
2503
2504      1082, 1083, 1086, 1086, 1086, 1087, 1087, 1087, 1077, 1436,
2505      1435, 1075, 1090, 1090, 1090, 1434, 1094, 1094, 1094, 1086,
2506      1433, 2214, 1087, 1095, 1095, 1095, 1432, 1103, 1103, 1103,
2507      1090, 1079, 1078, 1094, 1431, 1430, 1082, 1429, 1425, 1081,
2508      1088, 1095, 1096, 1096, 1096, 1103, 1096, 1424, 1421, 1096,
2509      1099, 1099, 1099, 1420, 1099, 1418, 1415, 1099, 1411, 1410,
2510      1094, 1407, 1087, 1104, 1104, 1104, 1105, 1105, 1105, 1406,
2511      1105, 1401, 1386, 1105, 1384, 1090, 1383, 1095, 1110, 1110,
2512      1110, 1382, 1110, 1375, 1373, 1110, 1114, 1114, 1114, 1368,
2513      1103, 1116, 1116, 1116, 1117, 1117, 1117, 1366, 1117, 1363,
2514
2515      1362, 1117, 1361, 1359, 1114, 1357, 1355, 1104, 1352, 1116,
2516      1122, 1122, 1122, 1348, 1122, 1339, 1332, 1122, 1125, 1125,
2517      1125, 1127, 1127, 1127, 1128, 1128, 1128, 1324, 1128, 1323,
2518      1322, 1128, 1131, 1131, 1131, 1317, 1125, 1316, 1127, 1133,
2519      1133, 1133, 1313, 1312, 1114, 1116, 1134, 1134, 1134, 1306,
2520      1131, 1135, 1135, 1135, 1304, 1303, 1133, 1137, 1137, 1137,
2521      1138, 1138, 1138, 1125, 1134, 1141, 1141, 1141, 1302, 1135,
2522      1148, 1148, 1148, 1300, 1137, 1157, 1157, 1157, 1138, 1131,
2523      1160, 1160, 1160, 1141, 1162, 1162, 1162, 1299, 1148, 1163,
2524      1163, 1163, 1166, 1166, 1166, 1167, 1167, 1167, 1169, 1169,
2525
2526      1169, 1135, 1169, 1296, 1295, 1169, 1174, 1174, 1174, 1293,
2527      1134, 1176, 1176, 1176, 1141, 1176, 1292, 1291, 1176, 1138,
2528      1148, 1181, 1181, 1181, 1174, 1180, 1180, 1180, 1290, 1288,
2529      1141, 1286, 1281, 1163, 1183, 1183, 1183, 1280, 1183, 1167,
2530      1279, 1183, 1277, 1180, 1276, 1162, 1186, 1186, 1186, 1187,
2531      1187, 1187, 1275, 1187, 1274, 1174, 1187, 1188, 1188, 1188,
2532      1192, 1192, 1192, 1186, 1193, 1193, 1193, 1194, 1194, 1194,
2533      1195, 1195, 1195, 1271, 1263, 1188, 1196, 1196, 1196, 1258,
2534      1199, 1199, 1199, 1180, 1199, 1256, 1255, 1199, 1202, 1202,
2535      1202, 1203, 1203, 1203, 1251, 1203, 1246, 1241, 1203, 1204,
2536
2537      1204, 1204, 1207, 1207, 1207, 1202, 1188, 1205, 1205, 1205,
2538      1239, 1205, 1237, 1234, 1205, 1233, 1204, 1208, 1208, 1208,
2539      1207, 1232, 1209, 1209, 1209, 1230, 1209, 1206, 1194, 1209,
2540      1198, 1195, 1197, 1191, 1208, 1190, 1189, 1196, 1210, 1210,
2541      1210, 1211, 1211, 1211, 1212, 1212, 1212, 1182, 1212, 1179,
2542      1175, 1212, 1215, 1215, 1215, 1210, 1173, 1172, 1211, 1216,
2543      1216, 1216, 1168, 1216, 1165, 1164, 1216, 1161, 1159, 1215,
2544      1217, 1217, 1217, 1218, 1218, 1218, 1219, 1219, 1219, 1220,
2545      1220, 1220, 1221, 1221, 1221, 1158, 1156, 1217, 1153, 1152,
2546      1218, 1151, 1150, 1219, 1149, 1147, 1220, 1222, 1222, 1222,
2547
2548      1221, 1146, 1211, 1223, 1223, 1223, 1143, 1223, 1140, 1136,
2549      1223, 1278, 1278, 1278, 1222, 1224, 1224, 1224, 1225, 1225,
2550      1225, 1226, 1226, 1226, 1229, 1229, 1229, 1219, 1218, 1227,
2551      1227, 1227, 1224, 1227, 1132, 1225, 1227, 1130, 1226, 1228,
2552      1228, 1228, 1229, 1129, 1126, 1221, 1231, 1231, 1231, 1235,
2553      1235, 1235, 1121, 1236, 1236, 1236, 1228, 1236, 1120, 1115,
2554      1236, 1238, 1238, 1238, 1231, 1113, 1235, 1240, 1240, 1240,
2555      1242, 1242, 1242, 1109, 1108, 1225, 1243, 1243, 1243, 1238,
2556      1244, 1244, 1244, 1102, 1093, 1240, 1092, 1242, 1091, 1089,
2557      1228, 1060, 1059, 1243, 1058, 1231, 1057, 1244, 1056, 1245,
2558
2559      1245, 1245, 1247, 1247, 1247, 1248, 1248, 1248, 1249, 1249,
2560      1249, 1250, 1250, 1250, 1053, 1052, 1240, 1245, 1049, 1044,
2561      1247, 1041, 1248, 1032, 1030, 1249, 1252, 1252, 1252, 1250,
2562      1252, 1029, 1026, 1252, 1257, 1257, 1257, 1259, 1259, 1259,
2563      1025, 1244, 1023, 1260, 1260, 1260, 1247, 1260, 1022, 1021,
2564      1260, 1020, 1257, 1019, 1259, 1017, 1261, 1261, 1261, 1016,
2565      1262, 1262, 1262, 1245, 1264, 1264, 1264, 1012, 1265, 1265,
2566      1265, 1011, 1265, 1250, 1261, 1265, 1010, 1009, 1262, 1008,
2567      1006, 1264, 1005, 1257, 1266, 1266, 1266, 1272, 1272, 1272,
2568      1273, 1273, 1273, 1282, 1282, 1282, 1283, 1283, 1283, 1284,
2569
2570      1284, 1284, 1266, 1004, 1272, 1285, 1285, 1285, 1273, 1287,
2571      1287, 1287, 1261, 1262, 1289, 1289, 1289, 1294, 1294, 1294,
2572      1297, 1297, 1297, 1298, 1298, 1298, 1307, 1307, 1307, 1003,
2573      1307,  994,  990, 1307,  978, 1294,  977,  972, 1297,  971,
2574      1298, 1310, 1310, 1310, 1311, 1311, 1311,  969, 1273, 1314,
2575      1314, 1314, 1315, 1315, 1315,  962, 1318, 1318, 1318, 1310,
2576      1318, 1311,  961, 1318, 1321, 1321, 1321,  951, 1321,  946,
2577       943, 1321, 1325, 1325, 1325,  942, 1297, 1327, 1327, 1327,
2578       939, 1327,  934,  925, 1327, 1310, 1330, 1330, 1330,  924,
2579      1325, 1331, 1331, 1331,  923, 1331,  919,  911, 1331,  906,
2580
2581      1333, 1333, 1333, 1330, 1333,  905,  899, 1333, 1336, 1336,
2582      1336, 1337, 1337, 1337,  898, 1337,  897,  892, 1337, 1338,
2583      1338, 1338, 1340, 1340, 1340, 1336, 1341, 1341, 1341,  891,
2584      1341,  890,  889, 1341,  888,  878, 1338,  877,  876, 1340,
2585      1342, 1342, 1342, 1343, 1343, 1343,  871, 1343,  870,  865,
2586      1343, 1346, 1346, 1346,  864, 1347, 1347, 1347, 1342, 1347,
2587       863,  862, 1347, 1349, 1349, 1349,  861, 1349, 1346,  860,
2588      1349,  859, 1353, 1353, 1353, 1356, 1356, 1356, 1358, 1358,
2589      1358, 1360, 1360, 1360,  858, 1360,  857,  852, 1360, 1342,
2590      1353,  844,  842, 1356,  836, 1358, 1364, 1364, 1364, 1367,
2591
2592      1367, 1367, 1369, 1369, 1369, 1370, 1370, 1370,  827, 1370,
2593       822,  815, 1370,  814, 1364,  813,  811, 1367,  810, 1369,
2594       809,  808, 1358, 1371, 1371, 1371, 1372, 1372, 1372,  806,
2595      1372,  805,  804, 1372,  803,  802, 1356, 1374, 1374, 1374,
2596      1371, 1376, 1376, 1376, 1377, 1377, 1377, 1378, 1378, 1378,
2597       801, 1378,  800,  799, 1378, 1374, 1379, 1379, 1379, 1376,
2598       798, 1377, 1380, 1380, 1380,  792, 1380,  791,  790, 1380,
2599      1392, 1392, 1392, 1379, 1381, 1381, 1381, 1385, 1385, 1385,
2600      1387, 1387, 1387,  787, 1387,  786,  785, 1387, 1376, 1390,
2601      1390, 1390, 1381,  783,  779, 1385, 1391, 1391, 1391,  776,
2602
2603      1374, 1393, 1393, 1393,  773, 1393,  766, 1390, 1393, 1396,
2604      1396, 1396,  765,  762, 1391, 1402, 1402, 1402, 1403, 1403,
2605      1403,  761, 1403,  760,  759, 1403,  749, 1396, 1404, 1404,
2606      1404,  742, 1402, 1405, 1405, 1405, 1381,  734, 1390, 1385,
2607      1408, 1408, 1408, 1409, 1409, 1409, 1404, 1391, 1412, 1412,
2608      1412, 1413, 1413, 1413, 1414, 1414, 1414, 1416, 1416, 1416,
2609      1417, 1417, 1417, 1419, 1419, 1419, 1422, 1422, 1422, 1426,
2610      1426, 1426,  733, 1427, 1427, 1427, 1428, 1428, 1428,  732,
2611      1428,  729,  724, 1428, 1422,  721,  720, 1426,  716, 1404,
2612      1427, 1439, 1439, 1439, 1440, 1440, 1440, 1441, 1441, 1441,
2613
2614       712, 1441,  711,  710, 1441, 1442, 1442, 1442,  709, 1439,
2615       708, 1440, 1444, 1444, 1444, 1450, 1450, 1450,  704, 1450,
2616       698,  697, 1450, 1454, 1454, 1454,  694, 1454,  693,  692,
2617      1454, 1457, 1457, 1457,  691, 1458, 1458, 1458, 1439, 1458,
2618       690,  688, 1458, 1460, 1460, 1460,  687, 1460, 1457,  686,
2619      1460, 1463, 1463, 1463, 1464, 1464, 1464,  685, 1464,  681,
2620       676, 1464, 1470, 1470, 1470, 1472, 1472, 1472,  675, 1463,
2621      1473, 1473, 1473,  674, 1473,  673,  670, 1473,  668,  664,
2622      1470,  660, 1472, 1480, 1480, 1480, 1483, 1483, 1483,  659,
2623      1483,  656,  655, 1483,  654, 1486, 1486, 1486,  653, 1486,
2624
2625       652, 1480, 1486, 1490, 1490, 1490, 1492, 1492, 1492, 1493,
2626      1493, 1493, 1463, 1493,  650,  649, 1493,  648, 1496, 1496,
2627      1496, 1490, 1496,  647, 1492, 1496, 1499, 1499, 1499, 1500,
2628      1500, 1500, 1503, 1503, 1503, 1505, 1505, 1505, 1506, 1506,
2629      1506, 1507, 1507, 1507, 1499,  646, 1500, 1508, 1508, 1508,
2630      1503,  645, 1490, 1505,  644,  643, 1506, 1511, 1511, 1511,
2631      1499, 1515, 1515, 1515,  642, 1508, 1512, 1512, 1512, 1492,
2632      1512,  641,  640, 1512, 1516, 1516, 1516,  639,  638, 1515,
2633      1517, 1517, 1517, 1519, 1519, 1519, 1520, 1520, 1520, 1521,
2634      1521, 1521, 1505,  634, 1503, 1522, 1522, 1522, 1524, 1524,
2635
2636      1524, 1526, 1526, 1526, 1529, 1529, 1529, 1531, 1531, 1531,
2637       633, 1533, 1533, 1533,  631, 1533,  630, 1515, 1533,  629,
2638       628, 1529, 1546, 1546, 1546, 1531, 1547, 1547, 1547,  627,
2639      1547,  623,  621, 1547, 1550, 1550, 1550, 1560, 1560, 1560,
2640      1546, 1560,  620,  619, 1560, 1564, 1564, 1564, 1568, 1568,
2641      1568, 1570, 1570, 1570, 1571, 1571, 1571,  618, 1571,  613,
2642       609, 1571,  608, 1564,  605,  604, 1568,  603, 1570, 1582,
2643      1582, 1582, 1584, 1584, 1584, 1585, 1585, 1585,  602,  601,
2644      1546, 1586, 1586, 1586, 1587, 1587, 1587, 1588, 1588, 1588,
2645      1584,  600, 1585,  597,  596, 1570, 1589, 1589, 1589, 1586,
2646
2647      1589,  595, 1587, 1589, 1588, 1590, 1590, 1590, 1592, 1592,
2648      1592, 1593, 1593, 1593, 1594, 1594, 1594, 1595, 1595, 1595,
2649       594,  591, 1590, 1597, 1597, 1597, 1592, 1600, 1600, 1600,
2650       589,  586, 1594,  585,  584, 1595,  583,  582, 1586,  579,
2651       578, 1597, 1587, 1601, 1601, 1601, 1602, 1602, 1602, 1604,
2652      1604, 1604, 1605, 1605, 1605, 1609, 1609, 1609, 1610, 1610,
2653      1610, 1601, 1610,  577,  576, 1610, 1622, 1622, 1622, 1630,
2654      1630, 1630, 1609, 1633, 1633, 1633,  575, 1594, 1638, 1638,
2655      1638,  572, 1597,  571, 1622,  570, 1630, 1647, 1647, 1647,
2656       569, 1633, 1639, 1639, 1639, 1638, 1639,  567,  564, 1639,
2657
2658      1649, 1649, 1649,  562, 1647,  559, 1651, 1651, 1651, 1653,
2659      1653, 1653, 1654, 1654, 1654,  558, 1654,  557,  556, 1654,
2660      1655, 1655, 1655, 1622, 1651,  554, 1653, 1656, 1656, 1656,
2661      1657, 1657, 1657,  553, 1657,  550,  549, 1657, 1655, 1660,
2662      1660, 1660, 1661, 1661, 1661, 1656, 1661,  548,  547, 1661,
2663      1662, 1662, 1662, 1663, 1663, 1663, 1660, 1665, 1665, 1665,
2664      1666, 1666, 1666, 1670, 1670, 1670,  546, 1662, 1675, 1675,
2665      1675, 1663, 1676, 1676, 1676,  545, 1676,  544, 1666, 1676,
2666       542, 1670, 1690, 1690, 1690, 1675, 1693, 1693, 1693,  540,
2667       537, 1656, 1696, 1696, 1696, 1697, 1697, 1697,  536, 1697,
2668
2669      1690,  535, 1697, 1693, 1700, 1700, 1700,  532,  527, 1696,
2670      1702, 1702, 1702, 1703, 1703, 1703,  525, 1703,  524,  523,
2671      1703, 1700,  522, 1711, 1711, 1711,  521, 1702, 1712, 1712,
2672      1712,  520, 1712,  516,  515, 1712, 1713, 1713, 1713, 1690,
2673      1711, 1714, 1714, 1714, 1715, 1715, 1715,  514, 1715,  513,
2674       509, 1715,  508, 1713, 1718, 1718, 1718,  507, 1714, 1720,
2675      1720, 1720, 1721, 1721, 1721,  506, 1721,  505,  503, 1721,
2676       500,  499, 1718, 1724, 1724, 1724,  497, 1720, 1725, 1725,
2677      1725,  495, 1725,  490,  487, 1725, 1726, 1726, 1726,  485,
2678      1724, 1731, 1731, 1731, 1734, 1734, 1734,  482, 1735, 1735,
2679
2680      1735,  481, 1735,  479, 1726, 1735, 1751, 1751, 1751,  478,
2681       477, 1734, 1752, 1752, 1752, 1753, 1753, 1753, 1754, 1754,
2682      1754,  476, 1720,  475, 1751,  472, 1755, 1755, 1755,  471,
2683      1755,  470, 1753, 1755,  469, 1754, 1756, 1756, 1756,  468,
2684      1756,  462,  461, 1756, 1761, 1761, 1761, 1762, 1762, 1762,
2685       459, 1762,  453,  452, 1762, 1751, 1764, 1764, 1764, 1753,
2686       448, 1761, 1765, 1765, 1765,  444, 1765,  440,  436, 1765,
2687      1767, 1767, 1767, 1764, 1769, 1769, 1769,  430, 1769,  426,
2688       422, 1769, 1772, 1772, 1772,  418,  417, 1767, 1773, 1773,
2689      1773,  416, 1773,  415,  411, 1773, 1774, 1774, 1774, 1772,
2690
2691      1775, 1775, 1775,  407, 1775,  404,  403, 1775, 1782, 1782,
2692      1782,  402,  398, 1774, 1783, 1783, 1783,  392, 1783,  391,
2693       387, 1783, 1788, 1788, 1788,  383, 1782, 1789, 1789, 1789,
2694      1792, 1792, 1792,  379, 1792,  378,  374, 1792,  371, 1788,
2695      1788, 1799, 1799, 1799, 1808, 1808, 1808, 1809, 1809, 1809,
2696      1810, 1810, 1810,  370, 1826, 1826, 1826, 1782, 1799, 1811,
2697      1811, 1811, 1808, 1811,  365,  361, 1811, 1810, 1813, 1813,
2698      1813, 1826, 1813,  353,  352, 1813, 1818, 1818, 1818,  351,
2699      1818,  347,  341, 1818,  340, 1822, 1822, 1822,  336, 1822,
2700       330, 1808, 1822, 1827, 1827, 1827,  329, 1827,  328,  327,
2701
2702      1827, 1829, 1829, 1829,  326, 1829,  325,  321, 1829, 1832,
2703      1832, 1832,  314, 1832,  312,  311, 1832, 1841, 1841, 1841,
2704      1843, 1843, 1843, 1844, 1844, 1844, 1845, 1845, 1845,  310,
2705      1845,  305,  298, 1845,  297, 1841,  296, 1843, 1843,  295,
2706      1844, 1844,  294,  290, 1845, 1846, 1846, 1846, 1847, 1847,
2707      1847, 1852, 1852, 1852, 1853, 1853, 1853,  286, 1853,  280,
2708       278, 1853, 1862, 1862, 1862, 1863, 1863, 1863, 1852, 1863,
2709       273,  272, 1863, 1868, 1868, 1868, 1869, 1869, 1869,  268,
2710      1862, 1870, 1870, 1870, 1871, 1871, 1871,  262, 1871,  261,
2711      1868, 1871,  260, 1869, 1874, 1874, 1874,  256, 1870, 1889,
2712
2713      1889, 1889, 1892, 1892, 1892, 1893, 1893, 1893,  248, 1893,
2714       246, 1874, 1893,  245, 1894, 1894, 1894, 1889, 1894, 1892,
2715      1892, 1894,  241, 1893,  238, 1862, 1897, 1897, 1897, 1898,
2716      1898, 1898, 1894, 1895, 1895, 1895, 1895, 1895, 1895, 1895,
2717      1895, 1895,  236,  235, 1895, 1912, 1912, 1912,  234, 1895,
2718      1895, 1895, 1895, 1895, 1903, 1903, 1903,  230, 1903,  227,
2719       226, 1903,  223, 1912,  219,  215,  211,  210,  209,  203,
2720      1915, 1915, 1915, 1917, 1917, 1917, 1895, 1895, 1896, 1896,
2721      1896, 1896, 1896, 1896, 1896, 1896, 1896, 1915,  202, 1896,
2722      1917,  200,  197,  185, 1896, 1896, 1896, 1896, 1896, 1916,
2723
2724      1916, 1916,    0, 1916,    0,    0, 1916, 1918, 1918, 1918,
2725         0, 1918,    0,    0, 1918, 1919, 1919, 1919, 1921, 1921,
2726      1921, 1896, 1896, 1920, 1920, 1920,    0, 1920,    0,    0,
2727      1920,    0, 1919,    0,    0, 1921, 1922, 1922, 1922,    0,
2728      1922,    0,    0, 1922, 1936, 1936, 1936,    0, 1936,    0,
2729         0, 1936,    0,    0, 1951, 1951, 1951, 1985, 1985, 1985,
2730         0,    0, 1936, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
2731      1939, 1939, 1951,    0, 1939, 1985, 1985,    0,    0, 1939,
2732      1939, 1939, 1939, 1939, 1955, 1955, 1955,    0, 1955,    0,
2733         0, 1955, 1958, 1958, 1958,    0, 1958,    0,    0, 1958,
2734
2735      1992, 1992, 1992, 1993, 1993, 1993, 1939, 1939, 1940, 1940,
2736      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1992,    0, 1940,
2737      1993,    0,    0,    0, 1940, 1940, 1940, 1940, 1940, 1961,
2738      1961, 1961,    0, 1961,    0,    0, 1961, 1964, 1964, 1964,
2739         0, 1964,    0,    0, 1964, 2010, 2010, 2010, 2014, 2014,
2740      2014, 1940, 1940, 2017, 2017, 2017,    0, 2018, 2018, 2018,
2741         0, 2018,    0, 2010, 2018,    0, 2014, 2019, 2019, 2019,
2742      2017, 2020, 2020, 2020,    0, 2020,    0,    0, 2020,    0,
2743      2037, 2037, 2037,    0, 2019, 2041, 2041, 2041,    0, 2041,
2744         0,    0, 2041, 2163, 2163, 2163,    0, 2014, 2037, 2044,
2745
2746      2044, 2044,    0, 2044,    0,    0, 2044, 2217, 2217, 2217,
2747         0, 2163, 2174, 2174, 2174, 2037, 2174,    0,    0, 2174,
2748      2218, 2218, 2218,    0,    0, 2217,    0,    0,    0,    0,
2749      2174,    0,    0,    0,    0,    0,    0,    0, 2218, 2221,
2750      2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2222, 2222,
2751      2222, 2222, 2222, 2222, 2222, 2222, 2222, 2223, 2223, 2223,
2752      2223, 2223, 2223, 2223, 2223, 2223, 2224, 2224, 2224, 2224,
2753      2224, 2224, 2224, 2224, 2224, 2225, 2225, 2225, 2225, 2225,
2754      2225, 2225, 2225, 2225, 2226, 2226, 2226, 2226, 2226, 2226,
2755      2226, 2226, 2226, 2227, 2227, 2227, 2227, 2227, 2227, 2227,
2756
2757      2227, 2227, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
2758      2228, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
2759      2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2231,
2760      2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2232, 2232,
2761      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2233, 2233, 2233,
2762      2233, 2233, 2233, 2233, 2233, 2233, 2234, 2234, 2234, 2234,
2763      2234, 2234, 2234, 2234, 2234, 2235, 2235, 2235, 2235, 2235,
2764      2235, 2235, 2235, 2235, 2236, 2236, 2236, 2236, 2236, 2236,
2765      2236, 2236, 2236, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
2766      2237, 2237, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2767
2768      2238, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239,
2769      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2241,
2770      2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2242, 2242,
2771      2242, 2242, 2242, 2242, 2242, 2242, 2242, 2243, 2243, 2243,
2772      2243, 2243, 2243, 2243, 2243, 2243, 2244, 2244, 2244, 2244,
2773      2244, 2244, 2244, 2244, 2244, 2245, 2245, 2245, 2245, 2245,
2774      2245, 2245, 2245, 2245, 2246, 2246, 2246, 2246, 2246, 2246,
2775      2246, 2246, 2246, 2247, 2247, 2247, 2247, 2247, 2247, 2247,
2776      2247, 2247, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
2777      2248, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
2778
2779      2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2251,
2780      2251, 2251, 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2252,
2781      2252, 2252, 2252, 2252, 2252, 2252, 2252, 2253, 2253, 2253,
2782      2253, 2253, 2253, 2253, 2253, 2253, 2254, 2254, 2254, 2254,
2783      2254, 2254, 2254, 2254, 2254, 2255, 2255, 2255, 2255, 2255,
2784      2255, 2255, 2255, 2255, 2256, 2256, 2256, 2256, 2256, 2256,
2785      2256, 2256, 2256, 2257, 2257, 2257, 2257, 2257, 2257, 2257,
2786      2257, 2257, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258,
2787      2258, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259,
2788      2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2261,
2789
2790      2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2262, 2262,
2791      2262,    0,    0,    0, 2262, 2263, 2263, 2263,    0,    0,
2792         0, 2263, 2264, 2264, 2264,    0,    0,    0, 2264, 2265,
2793      2265, 2265,    0,    0,    0, 2265, 2266, 2266, 2266,    0,
2794         0,    0, 2266, 2267, 2267, 2267,    0,    0,    0, 2267,
2795      2268, 2268, 2268,    0,    0,    0, 2268, 2269, 2269, 2269,
2796         0,    0,    0, 2269, 2270, 2270, 2270,    0,    0,    0,
2797      2270, 2271, 2271, 2271,    0,    0,    0, 2271, 2272, 2272,
2798      2272,    0,    0,    0, 2272, 2273, 2273, 2273,    0,    0,
2799         0, 2273, 2274, 2274, 2274,    0,    0,    0, 2274, 2275,
2800
2801      2275, 2275,    0,    0,    0, 2275, 2276, 2276, 2276,    0,
2802         0,    0, 2276, 2277, 2277, 2277,    0,    0,    0, 2277,
2803      2278, 2278, 2278,    0,    0,    0, 2278, 2279, 2279, 2279,
2804         0,    0,    0, 2279, 2280, 2280, 2280, 2280, 2280, 2280,
2805      2280,    0, 2280, 2281, 2281, 2281,    0,    0,    0, 2281,
2806      2282,    0,    0,    0, 2282, 2283, 2283, 2283,    0,    0,
2807         0, 2283, 2284,    0,    0,    0, 2284, 2285, 2285, 2285,
2808         0,    0,    0, 2285, 2286,    0,    0,    0, 2286, 2287,
2809      2287, 2287,    0,    0,    0, 2287, 2288,    0,    0,    0,
2810      2288, 2289, 2289, 2289,    0,    0,    0, 2289, 2290,    0,
2811
2812         0,    0, 2290, 2291,    0,    0,    0, 2291, 2292, 2292,
2813      2292,    0,    0,    0, 2292, 2293,    0,    0,    0, 2293,
2814      2294, 2294, 2294,    0,    0,    0, 2294, 2295,    0,    0,
2815         0, 2295, 2296, 2296, 2296,    0,    0,    0, 2296, 2297,
2816         0,    0,    0, 2297, 2298, 2298, 2298,    0,    0,    0,
2817      2298, 2299,    0,    0,    0, 2299, 2300, 2300, 2300,    0,
2818         0,    0, 2300, 2301,    0,    0,    0, 2301, 2302, 2302,
2819      2302,    0,    0,    0, 2302, 2303,    0,    0,    0, 2303,
2820      2304, 2304, 2304,    0,    0,    0, 2304, 2305,    0,    0,
2821         0, 2305, 2306, 2306, 2306,    0,    0,    0, 2306, 2307,
2822
2823         0,    0,    0, 2307, 2308, 2308, 2308,    0,    0,    0,
2824      2308, 2309,    0,    0,    0, 2309, 2310, 2310, 2310,    0,
2825         0,    0, 2310, 2311,    0,    0,    0, 2311, 2312, 2312,
2826      2312,    0,    0,    0, 2312, 2313,    0,    0,    0, 2313,
2827      2314, 2314, 2314,    0,    0,    0, 2314, 2315,    0,    0,
2828         0, 2315, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316,
2829      2316, 2317,    0,    0,    0,    0, 2317, 2318, 2318, 2318,
2830         0,    0,    0, 2318, 2319, 2319, 2319, 2319,    0,    0,
2831      2319, 2319, 2320, 2320, 2320,    0,    0,    0, 2320, 2321,
2832      2321, 2321, 2321,    0,    0, 2321, 2321, 2322, 2322, 2322,
2833
2834         0,    0,    0, 2322, 2323, 2323, 2323, 2323,    0,    0,
2835      2323, 2323, 2324, 2324, 2324,    0,    0,    0, 2324, 2325,
2836      2325, 2325, 2325,    0,    0, 2325, 2325, 2326, 2326, 2326,
2837         0,    0,    0, 2326, 2327, 2327, 2327, 2327,    0,    0,
2838      2327, 2327, 2328, 2328, 2328,    0,    0,    0, 2328, 2329,
2839      2329, 2329, 2329,    0,    0, 2329, 2329, 2330, 2330, 2330,
2840         0,    0,    0, 2330, 2331, 2331, 2331, 2331,    0,    0,
2841      2331, 2331, 2332, 2332, 2332,    0,    0,    0, 2332, 2333,
2842      2333, 2333, 2333,    0,    0, 2333, 2333, 2334, 2334, 2334,
2843         0,    0,    0, 2334, 2335, 2335, 2335, 2335,    0,    0,
2844
2845      2335, 2335, 2336, 2336, 2336,    0,    0,    0, 2336, 2337,
2846      2337, 2337, 2337,    0,    0, 2337, 2337, 2338, 2338, 2338,
2847      2338,    0, 2338,    0, 2338, 2339, 2339, 2339, 2339,    0,
2848         0, 2339, 2339, 2340, 2340, 2340, 2340,    0, 2340,    0,
2849      2340, 2341, 2341, 2341, 2341,    0,    0, 2341, 2341, 2342,
2850      2342, 2342,    0,    0,    0, 2342, 2343, 2343, 2343, 2343,
2851         0,    0, 2343, 2343, 2344, 2344, 2344, 2344,    0, 2344,
2852         0, 2344, 2345, 2345, 2345, 2345,    0,    0, 2345, 2345,
2853      2346, 2346, 2346,    0,    0,    0, 2346, 2347, 2347, 2347,
2854      2347,    0,    0, 2347, 2347, 2348, 2348, 2348,    0,    0,
2855
2856         0, 2348, 2349, 2349, 2349, 2349,    0,    0, 2349, 2349,
2857      2350, 2350, 2350, 2350,    0,    0, 2350, 2350, 2351, 2351,
2858      2351,    0,    0,    0, 2351, 2352, 2352, 2352, 2352,    0,
2859         0, 2352, 2352, 2353, 2353, 2353, 2353, 2353, 2353, 2353,
2860      2353, 2353, 2354,    0, 2354,    0,    0, 2354, 2355, 2355,
2861      2355,    0,    0,    0, 2355, 2356, 2356, 2356, 2356,    0,
2862         0, 2356, 2356, 2357, 2357, 2357, 2357,    0, 2357,    0,
2863      2357, 2358, 2358, 2358, 2358,    0,    0, 2358, 2358, 2359,
2864      2359, 2359,    0,    0,    0, 2359, 2360, 2360, 2360, 2360,
2865         0,    0, 2360, 2360, 2361, 2361, 2361,    0,    0,    0,
2866
2867      2361, 2362, 2362, 2362, 2362,    0,    0, 2362, 2362, 2363,
2868      2363, 2363,    0,    0,    0, 2363, 2364, 2364, 2364, 2364,
2869         0,    0, 2364, 2364, 2365, 2365, 2365,    0,    0,    0,
2870      2365, 2366, 2366, 2366, 2366,    0,    0, 2366, 2366, 2367,
2871      2367, 2367,    0,    0,    0, 2367, 2368, 2368, 2368, 2368,
2872         0,    0, 2368, 2368, 2369, 2369, 2369,    0,    0,    0,
2873      2369, 2370, 2370, 2370, 2370,    0,    0, 2370, 2370, 2371,
2874      2371, 2371,    0,    0,    0, 2371, 2372, 2372, 2372, 2372,
2875         0,    0, 2372, 2372, 2373, 2373, 2373,    0,    0,    0,
2876      2373, 2374, 2374, 2374, 2374,    0,    0, 2374, 2374, 2375,
2877
2878      2375, 2375,    0,    0,    0, 2375, 2376, 2376, 2376, 2376,
2879         0,    0, 2376, 2376, 2377, 2377, 2377,    0,    0,    0,
2880      2377, 2378, 2378, 2378, 2378,    0,    0, 2378, 2378, 2379,
2881      2379, 2379,    0,    0,    0, 2379, 2380, 2380, 2380, 2380,
2882         0,    0, 2380, 2380, 2381, 2381, 2381,    0,    0,    0,
2883      2381, 2382, 2382, 2382, 2382,    0,    0, 2382, 2382, 2383,
2884      2383, 2383,    0,    0,    0, 2383, 2384, 2384, 2384, 2384,
2885         0,    0, 2384, 2384, 2385, 2385, 2385,    0,    0,    0,
2886      2385, 2386, 2386, 2386, 2386,    0,    0, 2386, 2386, 2387,
2887      2387, 2387, 2387,    0,    0, 2387, 2387, 2388, 2388, 2388,
2888
2889         0,    0,    0, 2388, 2389, 2389, 2389, 2389,    0,    0,
2890      2389, 2389, 2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
2891      2390, 2391, 2391, 2391, 2391, 2391, 2391, 2391, 2391, 2391,
2892      2392, 2392, 2392,    0,    0,    0, 2392, 2393, 2393, 2393,
2893      2393,    0,    0, 2393, 2393, 2394, 2394, 2394,    0,    0,
2894         0, 2394, 2395, 2395, 2395, 2395,    0,    0, 2395, 2395,
2895      2396, 2396, 2396,    0,    0,    0, 2396, 2397, 2397, 2397,
2896      2397,    0,    0, 2397, 2397, 2398, 2398, 2398,    0,    0,
2897         0, 2398, 2399, 2399, 2399, 2399,    0,    0, 2399, 2399,
2898      2400, 2400, 2400,    0,    0,    0, 2400, 2401, 2401, 2401,
2899
2900         0,    0,    0, 2401, 2402, 2402, 2402, 2402,    0,    0,
2901      2402, 2402, 2403, 2403, 2403, 2403,    0, 2403,    0, 2403,
2902      2404, 2404, 2404, 2404,    0,    0, 2404, 2404, 2405, 2405,
2903      2405, 2405,    0, 2405,    0, 2405, 2406, 2406, 2406, 2406,
2904         0,    0, 2406, 2406, 2407, 2407, 2407,    0,    0,    0,
2905      2407, 2408, 2408, 2408, 2408,    0,    0, 2408, 2408, 2409,
2906      2409, 2409,    0,    0,    0, 2409, 2410, 2410, 2410, 2410,
2907         0,    0, 2410, 2410, 2411, 2411, 2411,    0,    0,    0,
2908      2411, 2412, 2412, 2412, 2412,    0,    0, 2412, 2412, 2413,
2909      2413, 2413,    0,    0,    0, 2413, 2414, 2414, 2414, 2414,
2910
2911         0,    0, 2414, 2414, 2415, 2415, 2415,    0,    0,    0,
2912      2415, 2416, 2416, 2416, 2416,    0,    0, 2416, 2416, 2417,
2913      2417, 2417,    0,    0,    0, 2417, 2418, 2418, 2418, 2418,
2914         0,    0, 2418, 2418, 2419, 2419, 2419,    0,    0,    0,
2915      2419, 2420, 2420, 2420, 2420,    0,    0, 2420, 2420, 2421,
2916      2421, 2421, 2421,    0, 2421,    0, 2421, 2422, 2422, 2422,
2917      2422,    0,    0, 2422, 2422, 2423, 2423, 2423, 2423,    0,
2918         0, 2423, 2423, 2424, 2424, 2424, 2424,    0, 2424,    0,
2919      2424, 2425, 2425, 2425, 2425,    0,    0, 2425, 2425, 2426,
2920      2426, 2426, 2426, 2426, 2426, 2426, 2426, 2426, 2427, 2427,
2921
2922      2427, 2427, 2427, 2427, 2427, 2427, 2427, 2428, 2428, 2428,
2923         0,    0,    0, 2428, 2429, 2429, 2429, 2429,    0,    0,
2924      2429, 2429, 2430, 2430, 2430,    0,    0,    0, 2430, 2431,
2925      2431, 2431, 2431,    0,    0, 2431, 2431, 2432, 2432, 2432,
2926         0,    0,    0, 2432, 2433, 2433, 2433, 2433,    0,    0,
2927      2433, 2433, 2434, 2434, 2434,    0,    0,    0, 2434, 2435,
2928      2435, 2435, 2435,    0,    0, 2435, 2435, 2436, 2436, 2436,
2929         0,    0,    0, 2436, 2437, 2437, 2437,    0,    0,    0,
2930      2437, 2438, 2438, 2438, 2438,    0,    0, 2438, 2438, 2439,
2931      2439, 2439, 2439,    0, 2439,    0, 2439, 2440, 2440, 2440,
2932
2933      2440,    0,    0, 2440, 2440, 2441, 2441, 2441, 2441,    0,
2934      2441,    0, 2441, 2442, 2442, 2442, 2442,    0,    0, 2442,
2935      2442, 2443, 2443, 2443,    0,    0,    0, 2443, 2444, 2444,
2936      2444, 2444,    0,    0, 2444, 2444, 2445, 2445, 2445,    0,
2937         0,    0, 2445, 2446, 2446, 2446, 2446,    0,    0, 2446,
2938      2446, 2447, 2447, 2447,    0,    0,    0, 2447, 2448, 2448,
2939      2448, 2448,    0,    0, 2448, 2448, 2449, 2449, 2449, 2449,
2940         0, 2449,    0, 2449, 2450, 2450, 2450, 2450,    0,    0,
2941      2450, 2450, 2451, 2451, 2451,    0,    0,    0, 2451, 2452,
2942      2452, 2452, 2452,    0,    0, 2452, 2452, 2453, 2453, 2453,
2943
2944      2453,    0, 2453,    0, 2453, 2454, 2454, 2454, 2454,    0,
2945         0, 2454, 2454, 2455, 2455, 2455,    0,    0,    0, 2455,
2946      2456, 2456, 2456, 2456,    0,    0, 2456, 2456, 2457, 2457,
2947      2457, 2457,    0,    0, 2457, 2457, 2458, 2458, 2458, 2458,
2948         0,    0, 2458, 2458, 2459, 2459, 2459, 2459,    0,    0,
2949      2459, 2459, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
2950      2460, 2461, 2461, 2461, 2461, 2461, 2461, 2461, 2461, 2461,
2951      2462, 2462, 2462, 2462,    0, 2462,    0, 2462, 2463, 2463,
2952      2463, 2463,    0,    0, 2463, 2463, 2464, 2464, 2464,    0,
2953         0,    0, 2464, 2465, 2465, 2465, 2465,    0,    0, 2465,
2954
2955      2465, 2466, 2466, 2466,    0,    0,    0, 2466, 2467, 2467,
2956      2467, 2467,    0,    0, 2467, 2467, 2468, 2468, 2468, 2468,
2957         0, 2468,    0, 2468, 2469, 2469, 2469, 2469,    0,    0,
2958      2469, 2469, 2470, 2470, 2470, 2470,    0, 2470,    0, 2470,
2959      2471, 2471, 2471,    0,    0,    0, 2471, 2472, 2472, 2472,
2960         0,    0,    0, 2472, 2473, 2473, 2473, 2473,    0,    0,
2961      2473, 2473, 2474, 2474, 2474,    0,    0,    0, 2474, 2475,
2962      2475, 2475,    0,    0,    0, 2475, 2476, 2476, 2476, 2476,
2963         0,    0, 2476, 2476, 2477, 2477, 2477,    0,    0,    0,
2964      2477, 2478, 2478, 2478,    0,    0,    0, 2478, 2479, 2479,
2965
2966      2479, 2479,    0,    0, 2479, 2479, 2480, 2480, 2480,    0,
2967         0,    0, 2480, 2481, 2481, 2481, 2481,    0,    0, 2481,
2968      2481, 2482, 2482, 2482,    0,    0,    0, 2482, 2483, 2483,
2969      2483, 2483,    0,    0, 2483, 2483, 2484, 2484, 2484, 2484,
2970         0,    0, 2484, 2484, 2485, 2485, 2485,    0,    0,    0,
2971      2485, 2486, 2486, 2486, 2486,    0,    0, 2486, 2486, 2487,
2972      2487, 2487, 2487,    0,    0, 2487, 2487, 2488, 2488, 2488,
2973      2488,    0,    0, 2488, 2488, 2489, 2489, 2489, 2489, 2489,
2974      2489, 2489, 2489, 2489, 2490, 2490, 2490, 2490, 2490, 2490,
2975      2490, 2490, 2490, 2491, 2491, 2491, 2491, 2491, 2491, 2491,
2976
2977      2491, 2491, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492,
2978      2492, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493,
2979      2494, 2494, 2494, 2494, 2494, 2494, 2494, 2494, 2494, 2495,
2980      2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2496, 2496,
2981      2496, 2496, 2496, 2496, 2496, 2496, 2496, 2220, 2220, 2220,
2982      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2983      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2984      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2985      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2986      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2987
2988      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
2989      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220
2990     } ;
2991
2992 /* Table of booleans, true if rule could match eol. */
2993 static yyconst flex_int32_t yy_rule_can_match_eol[381] =
2994     {   0,
2995 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2996     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2997     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2998     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2999     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3000     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3001     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3002     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3003     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3004     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3005     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3006     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
3007     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3008     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3009     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3010     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3011     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
3012     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 
3013     0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
3014     0,     };
3015
3016 static yy_state_type yy_last_accepting_state;
3017 static char *yy_last_accepting_cpos;
3018
3019 extern int surf_parse__flex_debug;
3020 int surf_parse__flex_debug = 0;
3021
3022 /* The intent behind this definition is that it'll catch
3023  * any uses of REJECT which flex missed.
3024  */
3025 #define REJECT reject_used_but_not_detected
3026 #define yymore() yymore_used_but_not_detected
3027 #define YY_MORE_ADJ 0
3028 #define YY_RESTORE_YY_MORE_OFFSET
3029 char *surf_parse_text;
3030 /* Validating XML processor for src/surf/simgrid.dtd.
3031  * Generated 2010/12/03 11:37:14.
3032  *
3033  * This program was generated with the FleXML XML processor generator.
3034  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3035  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
3036  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
3037  * 
3038  * There are two, intertwined parts to this program, part A and part B.
3039  *
3040  * Part A
3041  * ------
3042  * 
3043  * Some parts, here collectively called "Part A", are found in the 
3044  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3045  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
3046  *
3047  * You can redistribute, use, perform, display and/or modify "Part A"
3048  * provided the following two conditions hold:
3049  *
3050  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3051  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3052  *    FITNESS FOR A PARTICULAR PURPOSE.
3053  *
3054  * 2. The program distribution conditions do not in any way affect the
3055  *    distribution conditions of the FleXML system used to generate this
3056  *    file or any version of FleXML derived from that system.
3057  *
3058  * Notice that these are explicit rights granted to you for files
3059  * generated by the FleXML system.  For your rights in connection with
3060  * the FleXML system itself please consult the GNU General Public License.
3061  * 
3062  * Part B
3063  * ------
3064  * 
3065  * The other parts, here collectively called "Part B", and which came 
3066  * from the DTD used by FleXML to generate this program, can be 
3067  * distributed (or not, as the case may be) under the terms of whoever
3068  * wrote them, provided these terms respect and obey the two conditions 
3069  * above under the heading "Part A".
3070  *
3071  * The author of and contributors to FleXML specifically disclaim
3072  * any copyright interest in "Part B", unless "Part B" was written 
3073  * by the author of or contributors to FleXML.
3074  * 
3075  */
3076
3077 /* Version strings. */
3078 const char rcs_surfxml_flexml_skeleton[] =
3079  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3080 const char rcs_surfxml_flexml[] =
3081  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
3082
3083 /* ANSI headers. */
3084 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3085 #include <stdio.h>
3086 #include <string.h>
3087 #include <assert.h>
3088 #include <stdarg.h>
3089 #include <ctype.h>
3090      
3091 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3092 # ifndef __STRICT_ANSI__
3093 #  include <io.h>
3094 #  include <process.h>
3095 # endif
3096 #else
3097 # include <unistd.h>
3098 #endif
3099      
3100 #ifndef FLEXML_INDEXSTACKSIZE
3101 #define FLEXML_INDEXSTACKSIZE 1000
3102 #endif
3103
3104 /* Generated definitions. */
3105 #define FLEXML_yylineno
3106 #ifndef FLEXML_BUFFERSTACKSIZE
3107 #define FLEXML_BUFFERSTACKSIZE 1000000
3108 #endif
3109 #define FLEXML_NEED_BUFFERLIT
3110
3111 /* XML processor api. */
3112 /* FleXML-provided data. */
3113 int surfxml_pcdata_ix;
3114 extern char *surfxml_bufferstack;
3115 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3116 AT_surfxml_random_generator AX_surfxml_random_generator;
3117 #define A_surfxml_random_generator AX_surfxml_random_generator
3118 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3119 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3120 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3121 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3122 AT_surfxml_prop_id AX_surfxml_prop_id;
3123 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3124 AT_surfxml_host_id AX_surfxml_host_id;
3125 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3126 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3127 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3128 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3129 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3130 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3131 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3132 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3133 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3134 AT_surfxml_host_state AX_surfxml_host_state;
3135 #define A_surfxml_host_state AX_surfxml_host_state
3136 AT_surfxml_AS_id AX_surfxml_AS_id;
3137 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3138 AT_surfxml_host_power AX_surfxml_host_power;
3139 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3140 AT_surfxml_router_id AX_surfxml_router_id;
3141 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3142 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3143 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3144 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3145 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3146 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3147 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3148 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3149 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3150 AT_surfxml_trace_file AX_surfxml_trace_file;
3151 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3152 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3153 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3154 AT_surfxml_random_min AX_surfxml_random_min;
3155 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3156 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3157 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3158 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3159 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3160 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3161 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3162 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3163 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3164 AT_surfxml_argument_value AX_surfxml_argument_value;
3165 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3166 AT_surfxml_link_state AX_surfxml_link_state;
3167 #define A_surfxml_link_state AX_surfxml_link_state
3168 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3169 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3170 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3171 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3172 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3173 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3174 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3175 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3176 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3177 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3178 AT_surfxml_random_mean AX_surfxml_random_mean;
3179 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3180 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3181 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3182 AT_surfxml_link_latency AX_surfxml_link_latency;
3183 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3184 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3185 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3186 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3187 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3188 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3189 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3190 AT_surfxml_random_id AX_surfxml_random_id;
3191 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3192 AT_surfxml_random_max AX_surfxml_random_max;
3193 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3194 AT_surfxml_link_id AX_surfxml_link_id;
3195 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3196 AT_surfxml_process_host AX_surfxml_process_host;
3197 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3198 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3199 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3200 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3201 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3202 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3203 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3204 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3205 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3206 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3207 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3208 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3209 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3210 AT_surfxml_prop_value AX_surfxml_prop_value;
3211 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3212 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3213 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3214 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3215 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3216 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3217 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3218 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3219 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3220 AT_surfxml_process_function AX_surfxml_process_function;
3221 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3222 AT_surfxml_peer_id AX_surfxml_peer_id;
3223 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3224 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3225 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3226 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3227 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3228 AT_surfxml_host_core AX_surfxml_host_core;
3229 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3230 AT_surfxml_host_availability AX_surfxml_host_availability;
3231 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3232 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3233 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3234 AT_surfxml_route_src AX_surfxml_route_src;
3235 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3236 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3237 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3238 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3239 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3240 AT_surfxml_trace_id AX_surfxml_trace_id;
3241 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3242 AT_surfxml_peer_sharing_policy AX_surfxml_peer_sharing_policy;
3243 #define A_surfxml_peer_sharing_policy AX_surfxml_peer_sharing_policy
3244 AT_surfxml_peer_power AX_surfxml_peer_power;
3245 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3246 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3247 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3248 AT_surfxml_config_id AX_surfxml_config_id;
3249 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3250 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3251 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3252 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3253 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3254 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3255 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3256 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3257 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3258 AT_surfxml_route_dst AX_surfxml_route_dst;
3259 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3260 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3261 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3262 AT_surfxml_platform_version AX_surfxml_platform_version;
3263 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3264
3265 /* XML state. */
3266 #ifdef FLEX_DEBUG
3267 # define ENTER(state)   debug_enter(state,#state)
3268 # define LEAVE          debug_leave()
3269 # define SET(state)     debug_set(state,#state)
3270   static void debug_enter(int, const char*);
3271   static void debug_leave(void);
3272   static void debug_set(int, const char*);
3273 #else
3274 # define ENTER(state)   (yy_push_state(state))
3275 # define LEAVE          (yy_pop_state())
3276 # define SET(state)     BEGIN(state)
3277 #endif
3278
3279 /* Generic actions. */
3280 #define SKIP    /*skip*/
3281 #define SUCCEED        CLEANUP; return 0
3282
3283 #define FAIL    return fail
3284 static int fail(const char*, ...);
3285
3286 enum {flexml_max_err_msg_size = 512};
3287 static char flexml_err_msg[flexml_max_err_msg_size];
3288 const char * surfxml_parse_err_msg()
3289 {
3290     return flexml_err_msg;
3291 }
3292 static void reset_surfxml_parse_err_msg()
3293 {
3294     flexml_err_msg[0] = '\0';
3295 }
3296
3297 /* Cleanup */
3298 static void cleanup(void);
3299 #define CLEANUP  cleanup()
3300
3301 /* Text buffer stack handling. */
3302 char *surfxml_bufferstack = NULL;
3303 static int blimit = FLEXML_BUFFERSTACKSIZE;
3304 static int bnext = 1;
3305
3306 static int *indexstack = NULL;
3307 static int ilimit = FLEXML_INDEXSTACKSIZE;
3308 static int inext = 1;
3309
3310 #define BUFFERSET(P)  (P = bnext)
3311 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3312 #define BUFFERDONE    (BUFFERPUTC('\0'))
3313
3314 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3315
3316 /* after this is called, there are at least 2 slots left in the stack */
3317 static int ck_blimit()
3318 {
3319      if (bnext >= blimit) {
3320          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3321          {
3322              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3323              assert(temp);
3324              surfxml_bufferstack = temp;
3325          }
3326      }
3327      return 0;
3328 }
3329
3330 /* after this is called, there are at least 2 slots left in the stack */
3331 static int ck_ilimit()
3332 {
3333      if (inext >= ilimit) {
3334          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3335          {
3336              int *temp = (int *) realloc(indexstack, ilimit);
3337              assert(temp);
3338              indexstack = temp;
3339          }
3340      }
3341      return 0;
3342 }
3343
3344 #ifdef FLEXML_NEED_BUFFERLIT
3345 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3346 {
3347   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3348   assert(s <= e); BUFFERSET(*pp);
3349   while (++s<e) {
3350     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3351     else BUFFERPUTC(*s);
3352   }
3353   BUFFERDONE;
3354 }
3355 #endif
3356
3357 static void pushbuffer(int p)
3358 {
3359     ck_ilimit();
3360     indexstack[inext++] = p;
3361     indexstack[inext++] = bnext;    
3362 }
3363
3364 static int popbuffer(void)
3365 {
3366     assert(inext >= 2);
3367     bnext = indexstack[--inext];
3368     return indexstack[--inext];
3369 }
3370
3371 /* General internal entities are `unput' back onto the input stream... */
3372 #define ENTITYTEXT(T) \
3373   { char *s = (T), *e = s+strlen(s);\
3374     while (--e >= s) { unput(*e); }}
3375
3376 /* Flex standard options. */
3377 #define YY_NO_INPUT 1
3378 /* Flex user-requested options. */
3379 /* XML character classes (currently restricted to ASCII). */
3380 /* "Common syntactic structures." */
3381 /* "Names and Tokens." */
3382 /* Miscellaneous. */
3383 /* Parser states (flex `exclusive start conditions'):
3384  *
3385  * PROLOG       the XML prolog of the document before <?xml...>
3386  * DOCTYPE      the XML prolog of the document after <?xml...>
3387  * EPILOG       after the root element
3388  * INCOMMENT    inside an XML comment <!--....-->
3389  * INPI         inside an XML PI <?...?>
3390  * VALUE1       inside a '...'-delimited literal
3391  * VALUE2       inside a "..."-delimited literal
3392  * CDATA        inside a <![CDATA[...] ]> section.
3393  * ROOT_<tag>   expect root element <tag>
3394  * AL_<tag>     inside the attribute list for <tag>
3395  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3396  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3397  */
3398
3399 /* State names. */
3400 const char* *surfxml_statenames=NULL;
3401
3402 #define INITIAL 0
3403 #define PROLOG 1
3404 #define DOCTYPE 2
3405 #define EPILOG 3
3406 #define INCOMMENT 4
3407 #define INPI 5
3408 #define VALUE1 6
3409 #define VALUE2 7
3410 #define CDATA 8
3411 #define ROOT_surfxml_platform 9
3412 #define AL_surfxml_platform 10
3413 #define S_surfxml_platform 11
3414 #define S_surfxml_platform_1 12
3415 #define S_surfxml_platform_2 13
3416 #define S_surfxml_platform_3 14
3417 #define S_surfxml_platform_4 15
3418 #define S_surfxml_platform_5 16
3419 #define S_surfxml_platform_6 17
3420 #define E_surfxml_platform 18
3421 #define AL_surfxml_trace 19
3422 #define IN_trace 20
3423 #define AL_surfxml_random 21
3424 #define S_surfxml_random 22
3425 #define S_surfxml_random_1 23
3426 #define S_surfxml_random_2 24
3427 #define E_surfxml_random 25
3428 #define AL_surfxml_trace_connect 26
3429 #define E_surfxml_trace_connect 27
3430 #define AL_surfxml_AS 28
3431 #define S_surfxml_AS 29
3432 #define S_surfxml_AS_1 30
3433 #define S_surfxml_AS_2 31
3434 #define S_surfxml_AS_3 32
3435 #define S_surfxml_AS_4 33
3436 #define S_surfxml_AS_5 34
3437 #define S_surfxml_AS_6 35
3438 #define S_surfxml_AS_7 36
3439 #define S_surfxml_AS_8 37
3440 #define S_surfxml_AS_9 38
3441 #define S_surfxml_AS_10 39
3442 #define S_surfxml_AS_11 40
3443 #define S_surfxml_AS_12 41
3444 #define S_surfxml_AS_13 42
3445 #define E_surfxml_AS 43
3446 #define AL_surfxml_host 44
3447 #define S_surfxml_host 45
3448 #define S_surfxml_host_1 46
3449 #define S_surfxml_host_2 47
3450 #define E_surfxml_host 48
3451 #define AL_surfxml_cluster 49
3452 #define E_surfxml_cluster 50
3453 #define AL_surfxml_peer 51
3454 #define E_surfxml_peer 52
3455 #define AL_surfxml_router 53
3456 #define E_surfxml_router 54
3457 #define AL_surfxml_link 55
3458 #define S_surfxml_link 56
3459 #define S_surfxml_link_1 57
3460 #define S_surfxml_link_2 58
3461 #define E_surfxml_link 59
3462 #define AL_surfxml_route 60
3463 #define S_surfxml_route 61
3464 #define S_surfxml_route_1 62
3465 #define S_surfxml_route_2 63
3466 #define E_surfxml_route 64
3467 #define AL_surfxml_ASroute 65
3468 #define S_surfxml_ASroute 66
3469 #define S_surfxml_ASroute_1 67
3470 #define S_surfxml_ASroute_2 68
3471 #define E_surfxml_ASroute 69
3472 #define AL_surfxml_link_ctn 70
3473 #define E_surfxml_link_ctn 71
3474 #define AL_surfxml_bypassRoute 72
3475 #define S_surfxml_bypassRoute 73
3476 #define S_surfxml_bypassRoute_1 74
3477 #define S_surfxml_bypassRoute_2 75
3478 #define E_surfxml_bypassRoute 76
3479 #define AL_surfxml_process 77
3480 #define S_surfxml_process 78
3481 #define S_surfxml_process_1 79
3482 #define S_surfxml_process_2 80
3483 #define E_surfxml_process 81
3484 #define AL_surfxml_argument 82
3485 #define E_surfxml_argument 83
3486 #define AL_surfxml_config 84
3487 #define S_surfxml_config 85
3488 #define S_surfxml_config_1 86
3489 #define S_surfxml_config_2 87
3490 #define E_surfxml_config 88
3491 #define AL_surfxml_prop 89
3492 #define E_surfxml_prop 90
3493 #define IMPOSSIBLE 91
3494
3495 #ifndef YY_NO_UNISTD_H
3496 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3497  * down here because we want the user's section 1 to have been scanned first.
3498  * The user has a chance to override it with an option.
3499  */
3500 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3501 #  ifndef __STRICT_ANSI__
3502 #    include <io.h>
3503 #    include <process.h>
3504 #  endif
3505 #else
3506 #  include <unistd.h>
3507 #endif
3508 #endif
3509
3510 #ifndef YY_EXTRA_TYPE
3511 #define YY_EXTRA_TYPE void *
3512 #endif
3513
3514 static int yy_init_globals (void );
3515
3516 /* Accessor methods to globals.
3517    These are made visible to non-reentrant scanners for convenience. */