Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
f0cd9b91d848c530ec5778778dbdc319b80a50cb
[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 388
407 #define YY_END_OF_BUFFER 389
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[2293] =
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,  389,  387,   15,   10,   10,   15,
437        15,  367,   10,  367,    5,    6,    5,    8,    9,    8,
438
439       383,  375,  376,  384,  381,  384,  382,  386,  375,  376,
440       386,  387,   22,   10,   22,   22,   22,   20,   22,   26,
441        10,   26,   26,   26,  387,  387,   26,   37,   10,   37,
442        37,   37,   35,   37,   37,   37,  384,  383,   59,   10,
443        59,   59,   59,   57,   59,   59,   59,   59,   63,   10,
444        63,  387,   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,  387,   99,   99,
447       387,  387,   99,  387,   99,  387,   99,  122,   10,  122,
448       122,  122,  120,  122,  122,  122,  122,  122,  126,   10,
449
450       126,  126,  165,   10,  165,  165,  165,  163,  165,  165,
451       165,  165,  165,  165,  165,  165,  169,   10,  169,  194,
452        10,  194,  194,  194,  192,  194,  194,  194,  194,  194,
453       194,  194,  198,   10,  198,  207,   10,  207,  207,  207,
454       205,  207,  207,  211,   10,  211,  238,   10,  238,  238,
455       238,  236,  238,  238,  238,  238,  242,   10,  242,  242,
456       255,   10,  255,  255,  255,  253,  255,  255,  259,   10,
457       259,  387,  259,  276,   10,  276,  276,  276,  274,  276,
458       276,  276,  280,   10,  280,  280,  293,   10,  293,  293,
459       293,  291,  293,  293,  297,   10,  297,  310,   10,  310,
460
461       310,  310,  308,  310,  310,  310,  314,   10,  314,  314,
462       327,   10,  327,  327,  327,  325,  327,  327,  327,  327,
463       331,   10,  331,  387,  331,  338,   10,  338,  338,  338,
464       336,  338,  342,   10,  342,  349,   10,  349,  349,  349,
465       347,  349,  353,   10,  353,  353,  353,  362,   10,  362,
466       362,  362,  360,  362,  362,  366,   10,  366,   10,    0,
467         2,    2,    0,    4,    7,  378,  377,    0,    0,    0,
468         0,    0,    0,    0,   21,   23,   23,    0,    0,    0,
469         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
470         0,    0,    0,    0,   36,   38,   38,   38,   38,    0,
471
472         0,    0,   58,   60,   60,   60,   60,   60,   60,   60,
473         0,    0,   81,   83,   83,   83,   83,    0,   94,   96,
474        96,   96,    0,    0,    0,    0,    0,    0,    0,    0,
475         0,  121,  123,  123,  123,  123,  123,  123,    0,  164,
476       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
477       166,  166,  166,    0,  193,  195,  195,  195,  195,  195,
478       195,  195,  195,  195,    0,  206,  208,  208,  208,    0,
479       237,  239,  239,  239,  239,  239,  239,    0,  254,  256,
480       256,  256,  256,    0,    0,  275,  277,  277,  277,  277,
481       277,    0,  292,  294,  294,  294,    0,  309,  311,  311,
482
483       311,  311,    0,  326,  328,  328,  328,  328,  328,    0,
484         0,  337,  339,  339,    0,  348,  350,  350,    0,    0,
485       361,  363,  363,  363,    0,    0,    0,    0,    0,    3,
486         0,    0,    0,    0,    0,    0,    0,  385,    0,   23,
487         0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
488         0,    0,    0,    0,    0,    0,   87,    0,    0,    0,
489         0,   38,    0,    0,   38,    0,    0,    0,  380,   60,
490         0,    0,   60,   60,   60,   60,    0,    0,    0,   83,
491        83,   83,    0,    0,    0,    0,   96,    0,    0,   88,
492         0,    0,    0,    0,   87,    0,    0,  123,  123,  123,
493
494         0,    0,  123,  123,    0,    0,  166,  166,    0,    0,
495       166,    0,    0,  166,  166,  166,  166,  166,  166,  166,
496         0,    0,  195,  195,  195,    0,    0,  195,  195,  195,
497       195,    0,    0,  208,    0,    0,    0,    0,  239,    0,
498         0,  239,  239,  239,    0,    0,  256,  256,  256,    0,
499         0,    0,  277,  277,  277,  277,    0,    0,  294,    0,
500         0,    0,    0,  311,  311,  311,    0,    0,  328,  328,
501       328,  328,    0,    0,    0,  339,    0,    0,    0,    0,
502         0,    0,    0,    0,    0,  363,    0,    0,    0,   14,
503         1,    0,    0,  373,    0,    0,    0,  370,  369,    0,
504
505         0,   23,    0,    0,   25,    0,   88,    0,    0,    0,
506         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,   87,    0,    0,    0,    0,   38,    0,   30,   29,
508        38,    0,    0,    0,   40,    0,   60,    0,   44,   43,
509         0,    0,   60,    0,    0,   60,    0,    0,   62,    0,
510         0,   83,   83,   83,    0,    0,   85,    0,    0,   90,
511        89,   96,    0,    0,   98,    0,    0,    0,    0,    0,
512         0,    0,    0,  123,  123,  123,    0,  103,  102,  123,
513       123,    0,    0,  125,    0,  166,  166,  166,  166,    0,
514       142,  141,  166,    0,  130,  129,    0,    0,  166,  166,
515
516       166,  166,  166,  166,    0,    0,  168,    0,  195,  195,
517       195,  195,    0,  173,  172,    0,    0,  195,  195,  195,
518         0,    0,  197,    0,  208,    0,  202,  201,    0,    0,
519       210,    0,  239,    0,  215,  214,  239,  239,  239,    0,
520         0,  241,    0,    0,    0,    0,    0,  256,    0,    0,
521       258,    0,    0,    0,    0,  277,  277,    0,    0,  277,
522         0,    0,  279,    0,  294,    0,  284,  283,    0,    0,
523       296,    0,    0,    0,  311,  311,    0,    0,    0,    0,
524       313,    0,  328,  328,  328,  328,    0,    0,  330,    0,
525         0,  339,    0,    0,  341,    0,    0,  346,  345,    0,
526
527         0,  352,    0,    0,    0,  357,  356,  363,    0,    0,
528       365,    0,    0,    0,  374,  368,    0,    0,    0,   23,
529         0,    0,    0,    0,    0,    0,  100,  212,  171,    0,
530         0,  354,    0,    0,    0,    0,    0,  170,    0,    0,
531         0,    0,   38,    0,    0,   60,    0,   48,   47,    0,
532         0,    0,   46,   45,   60,    0,  355,   83,    0,    0,
533        83,    0,   96,    0,   97,    0,    0,  101,  213,    0,
534         0,    0,  123,  123,    0,    0,  123,  123,    0,  166,
535       166,  166,  166,    0,    0,    0,  144,  143,  166,  166,
536       166,  166,  166,  166,    0,  195,  195,  195,  195,    0,
537
538       181,  180,  195,  195,  195,    0,  208,    0,  239,  239,
539       239,  239,    0,    0,  248,  247,    0,  246,  245,  256,
540         0,  212,    0,  265,  264,  277,  277,    0,  263,  262,
541       277,    0,  294,    0,    0,  303,  302,  311,  311,    0,
542       301,  300,    0,  328,    0,    0,  328,  328,    0,    0,
543       339,    0,    0,    0,  363,    0,    0,    0,    0,   12,
544         0,  371,  372,    0,   23,    0,    0,    0,    0,    0,
545         0,  100,  212,    0,  171,    0,    0,  354,    0,  243,
546        28,    0,    0,  170,   27,    0,    0,   32,   31,   38,
547         0,    0,   60,    0,   50,   49,   60,    0,  355,   83,
548
549         0,    0,    0,    0,    0,    0,   96,    0,    0,  101,
550       213,  244,  244,  243,  123,  123,    0,  107,  106,    0,
551         0,    0,    0,  123,    0,  166,    0,    0,  166,  166,
552         0,  140,  139,    0,    0,  166,  166,  166,  166,  166,
553         0,  195,    0,    0,  195,  195,    0,    0,  195,  195,
554         0,  208,    0,  239,  239,  239,    0,    0,  239,    0,
555       256,    0,    0,  277,  277,  277,    0,  294,    0,  311,
556       311,    0,  328,    0,  318,  317,  328,  328,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558         0,   11,    0,   23,    0,    0,    0,    0,    0,  344,
559
560         0,    0,    0,   41,  243,  199,   28,    0,  343,    0,
561        27,    0,    0,   38,    0,    0,   60,   60,    0,   83,
562         0,    0,    0,    0,    0,    0,    0,    0,    0,   77,
563        76,    0,   96,    0,    0,  244,  200,  123,  123,    0,
564       105,  104,    0,    0,    0,  123,    0,  124,  166,    0,
565       152,  151,    0,    0,  166,    0,  138,  137,    0,    0,
566       166,  166,  166,    0,    0,    0,  195,    0,  177,  176,
567         0,    0,  195,    0,  175,  174,  195,  195,    0,  196,
568       208,    0,  239,  239,  239,    0,    0,    0,  239,    0,
569       240,  256,    0,    0,    0,    0,    0,    0,  277,    0,
570
571       294,    0,    0,    0,    0,    0,    0,  328,  328,  328,
572         0,    0,    0,  335,  334,    0,    0,   42,    0,  359,
573       358,    0,  364,    0,    0,    0,    0,    0,    0,    0,
574       260,    0,    0,  128,  344,    0,    0,  316,   41,  199,
575         0,  343,  127,    0,  315,   38,    0,    0,   39,   60,
576        60,    0,    0,    0,    0,    0,    0,    0,    0,    0,
577         0,    0,    0,    0,    0,    0,    0,  261,    0,  200,
578       123,  123,    0,    0,  123,  166,    0,  154,  153,  166,
579         0,  132,  131,    0,    0,  166,  166,    0,  134,  133,
580         0,  195,    0,  179,  178,  195,  195,  195,  208,    0,
581
582       239,    0,    0,  239,  239,    0,    0,  239,  256,    0,
583       257,    0,    0,  269,  268,    0,  267,  266,  277,    0,
584       294,    0,    0,  307,  306,    0,  305,  304,    0,  328,
585       328,  328,    0,    0,    0,    0,   42,    0,    0,    0,
586        17,    0,   19,   18,    0,  260,  332,    0,  128,  281,
587        16,  316,    0,  127,    0,  315,   38,  379,   60,   60,
588         0,   61,    0,   79,   78,    0,    0,    0,    0,    0,
589         0,    0,    0,    0,    0,    0,    0,   92,   91,  261,
590         0,  123,  123,    0,    0,    0,    0,  123,  166,  166,
591         0,  136,  135,  166,  166,    0,  195,  195,  195,  195,
592
593       208,    0,  209,  239,    0,  221,  220,  239,  239,    0,
594         0,    0,    0,  239,  256,  282,  277,    0,  294,    0,
595         0,    0,    0,  328,  328,    0,  333,    0,    0,  351,
596         0,    0,    0,   17,    0,  332,    0,  281,   16,    0,
597         0,   38,    0,    0,   60,    0,    0,    0,    0,    0,
598         0,    0,    0,    0,    0,    0,    0,  123,  123,    0,
599       113,    0,  112,  123,  166,  166,  166,  166,    0,  167,
600       195,  195,  195,  195,  208,    0,    0,  239,  239,  239,
601         0,  225,    0,  224,  239,  256,  282,  277,    0,  278,
602         0,    0,    0,    0,    0,  320,  319,    0,    0,  328,
603
604         0,  329,  333,    0,    0,    0,    0,    0,   24,    0,
605         0,    0,   38,    0,    0,    0,   60,    0,    0,    0,
606         0,    0,    0,    0,    0,    0,    0,    0,    0,  123,
607       123,  115,  114,    0,    0,  166,  166,  166,    0,    0,
608       195,  195,  195,    0,    0,  208,    0,  217,  216,  239,
609       239,  239,  227,  226,    0,    0,  256,  277,    0,    0,
610         0,    0,  295,    0,    0,  324,  323,    0,    0,    0,
611       340,    0,    0,    0,  298,    0,    0,    0,    0,    0,
612         0,    0,    0,   60,    0,    0,    0,    0,   69,    0,
613         0,    0,    0,   68,    0,  299,  123,    0,    0,    0,
614
615       117,  116,  166,  166,  166,    0,  162,  161,  195,    0,
616         0,  195,    0,  191,  190,    0,    0,  239,  239,  239,
617         0,  229,  228,    0,    0,    0,    0,    0,    0,    0,
618         0,    0,    0,    0,    0,  322,  321,    0,    0,    0,
619       298,    0,    0,    0,   34,   33,    0,    0,    0,    0,
620        60,    0,    0,    0,    0,    0,    0,    0,    0,    0,
621       299,    0,    0,  123,    0,  119,  118,  166,  166,  166,
622       195,    0,  183,  182,  195,    0,  204,  203,  239,    0,
623         0,  239,    0,    0,    0,    0,    0,    0,    0,    0,
624         0,    0,    0,    0,    0,    0,    0,    0,    0,   65,
625
626        64,    0,    0,    0,    0,    0,    0,    0,    0,   75,
627         0,    0,    0,   74,    0,    0,    0,  109,  108,  123,
628       166,  166,  166,  195,  195,  239,    0,  223,  222,  239,
629         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
630       286,    0,    0,  285,    0,  312,    0,    0,    0,    0,
631         0,    0,   65,   64,    0,    0,    0,    0,    0,   52,
632        51,    0,    0,    0,    0,    0,    0,    0,  123,  166,
633       166,    0,    0,  195,    0,    0,    0,    0,    0,    0,
634         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
635         0,    0,    0,    0,    0,    0,    0,    0,    0,   56,
636
637         0,   55,   73,    0,    0,   72,    0,    0,    0,   84,
638       123,  166,  166,    0,    0,    0,  195,    0,    0,    0,
639         0,  219,  218,    0,    0,    0,  252,    0,  251,    0,
640       273,    0,  272,    0,  288,  290,  287,  289,    0,    0,
641         0,   12,    0,   12,    0,    0,    0,   67,   71,   66,
642        70,  123,  166,  166,    0,    0,    0,    0,  195,    0,
643         0,    0,    0,    0,    0,    0,    0,  250,  249,  271,
644       270,    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,   54,   53,    0,  111,  110,    0,
649       160,  159,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,  189,  188,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,   11,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
653         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
655         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658
659         0,    0,    0,    0,    0,  146,    0,    0,  145,    0,
660       185,    0,  184,    0,    0,  231,    0,    0,  230,    0,
661         0,    0,    0,    0,  150,    0,  149,    0,    0,    0,
662       233,    0,  232,    0,    0,    0,    0,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,    0,  156,    0,  155,
664         0,    0,    0,    0,    0,    0,    0,    0,  158,  157,
665       148,  147,  187,  186,  235,  234,    0,    0,    0,    0,
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668        13,    0
669
670     } ;
671
672 static yyconst flex_int32_t yy_ec[256] =
673     {   0,
674         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
675         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
676         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
677         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
678         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
679        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
680        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
681        16,   28,   29,   16,   30,   31,   32,   33,   34,   35,
682        16,   36,   37,   38,   39,   40,   41,   42,   43,   16,
683        44,    1,   45,    1,   46,    1,   47,   48,   49,   50,
684
685        51,   52,   53,   54,   55,   16,   56,   57,   58,   59,
686        60,   61,   62,   63,   64,   65,   66,   67,   68,   69,
687        70,   16,    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,    1,    1,    1,    1,    1,
693         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
694         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
695
696         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
697         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
698         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
699         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
700         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
701         1,    1,    1,    1,    1
702     } ;
703
704 static yyconst flex_int32_t yy_meta[71] =
705     {   0,
706         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
707         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
708         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
709         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
710         5,    5,    5,    1,    1,    5,    9,    9,    9,    9,
711         9,    9,    5,    5,    5,    5,    5,    5,    5,    5,
712         5,    5,    5,    5,    5,    5,    5,    5,    5,    5
713     } ;
714
715 static yyconst flex_int16_t yy_base[2568] =
716     {   0,
717         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
718        14,   17,   33,   36,   49,   55,   45,   61,   66,   73,
719       106,  173,   76,   79,   83,  126,  129,  134,  137,  154,
720       193,  196,  201,  204,  221,  224,  227,  230,  248,  309,
721       280,  286,  370,  434,  268,  273,  277,  330,  333,  337,
722       340,  390,  498,  563,  393,  398,  628,  691,  401,  454,
723       457,  462,  465,  518,  521,  526,  529,  583,  586,  591,
724       594,  648,  651,  656,  659,  711,  714,  719,  722,  739,
725       745,  748,  756,  765,  768,  773,  776,  785,  803,  867,
726       823,  826,  831,  835,  887,  890,  895,  899,  931,    0,
727
728      1000, 1003, 1021,    0, 1090, 1093, 1111, 1166, 1131, 1134,
729      1221, 1285, 1139, 1143, 1186, 1189, 1194, 1198, 1241, 1244,
730      1349, 1413, 1249, 1252, 1305, 1308, 1313, 1316, 1369, 1372,
731      1477, 1541, 1377, 1380, 1433, 1436, 1441, 1444, 1497, 1500,
732      1605, 1660, 1505, 1508, 1715, 1779, 1561, 1564, 1569, 1572,
733      1625, 1628, 1633, 1636, 1843, 1907, 1680, 1683, 1688, 1691,
734      1735, 1738, 1743, 1746, 1971, 2038, 1799, 1802, 2105, 2160,
735      1807, 1810, 1863, 1866, 1871, 1874, 1927, 1930, 2215, 2282,
736      1935, 1938,    0,    0, 5643, 7751, 7751,   96,  100,   29,
737        41, 7751,  157,   51, 7751, 7751, 5632, 7751, 7751, 5620,
738
739      7751, 5628, 5628,  360, 7751, 7751, 7751, 7751, 5625, 5617,
740      5573,   84, 7751,  160, 5594,    0,  144, 7751, 5561, 7751,
741       164, 2345, 5562,  492,  224, 5597, 5542, 7751,  167, 5581,
742         0,  216, 7751, 5542, 5545, 5543,  344, 5539, 7751,  303,
743      5563,    0,  341, 7751, 5530, 5522,   41, 5506, 7751,  427,
744        13,   81,  141, 7751,  482, 5549,    0,  342, 7751, 5511,
745      5511, 5498, 7751,  491,  345, 7751,  548, 5540,    0,  347,
746      7751, 5506, 5494, 7751,  556, 1945, 1946, 5496,   80, 5529,
747       198,  252,  364,  613,   59, 5531,   83, 7751,  613, 5520,
748         0,  405, 7751, 5470, 5472, 5481, 5451, 5445, 7751,  618,
749
750       177,  235, 7751,  676, 5488,    0,  469, 7751, 5436,  167,
751      5442, 5450, 5444,  149, 5443,  355, 7751,  682,  476, 7751,
752       685, 5469,    0,  535, 7751, 5419, 5398, 5405, 5413, 5411,
753      5397,  243, 7751,  793,  606, 7751,  796, 5435,    0,  540,
754      7751, 5386, 5395, 7751,  852,  780, 7751,  857, 5421,    0,
755       541, 7751, 5382, 5378, 5374,  408, 7751,  916,  357,  421,
756      7751,  921, 5400,    0,  605, 7751, 5354,  150, 7751, 1006,
757       670, 5405, 5358, 7751, 1009, 5390,    0,  660, 7751, 5345,
758      5339,  275, 7751, 1012, 5390,  420, 7751, 1096, 5381,    0,
759       723, 7751, 5344, 5347, 7751, 1099, 1252, 7751, 1102, 5376,
760
761         0,  734, 7751, 5330, 5313, 5317, 7751, 1160, 5366,  522,
762      7751, 1215, 5353,    0,  740, 7751, 5306, 5310, 5306, 5295,
763      7751, 1277, 1097, 5347,  240, 7751, 1280, 5336,    0,  760,
764      7751, 5290, 7751, 1333, 1256, 7751, 1341, 5316,    0,  841,
765      7751, 5285, 7751, 1344, 1950, 5271,  180, 7751, 1398, 5313,
766         0,  905, 7751, 5282, 5283, 7751, 1401, 1320, 1404,   18,
767      5259, 7751, 5317, 5305, 7751, 7751, 7751, 1396,  241, 5251,
768      5246, 5244, 5272, 5233, 7751,    0, 5218, 5217, 5239, 5202,
769      5190,  478, 5197, 5200,  794,  403, 5184,  542, 5202,  543,
770       858, 5175, 1102, 1157, 7751,    0, 5171, 2001, 5164,  234,
771
772      5160, 5191, 7751,    0, 5151, 2007, 5138, 5157, 5143, 5150,
773      5136, 1334, 7751,    0, 5146, 5124, 5135, 5115, 7751,    0,
774      2015, 5109, 5152, 5135, 5097, 5106, 5109,  545, 5122,  597,
775       660, 7751,    0, 5111,  608, 2058, 5083, 5103, 5094, 7751,
776         0, 5096, 5096, 2061, 5077, 2065, 5069, 5060, 5075, 5074,
777      5075, 5074, 5051, 5052, 7751,    0, 5053, 5052, 5033, 2068,
778      5020, 5016, 5027, 5026, 5002, 7751,    0, 5002, 2071, 4989,
779      7751,    0, 4992, 2125, 4976, 4993, 4991, 4973, 7751,    0,
780      4964, 4978, 4964, 4957, 4964, 7751,    0, 4952, 4966, 4962,
781      4951, 4982, 7751,    0, 4940, 2128, 4944, 7751,    0, 4931,
782
783      4949, 4944, 4940, 7751,    0, 4928, 4921, 4927, 4934, 4914,
784      4901, 7751,    0, 4902, 4910, 7751,    0, 2132, 4907,  772,
785      7751,    0, 2135, 4897, 4885, 4925, 4930,  699, 4881, 7751,
786      1453,    0, 4867, 4867, 4908, 4896, 4852, 7751, 4863, 4845,
787      2138, 2180, 1469, 4854, 4834, 4828, 4833, 4823, 4827, 4830,
788      4833, 4818, 4810, 4802, 4819, 4804, 1472, 4785, 4799, 4801,
789      4783, 4791, 2183, 1593, 4781, 4811, 2186, 2189, 7751, 4782,
790      2192, 1767, 2195, 4766, 2236, 4778, 2241, 2260, 4759, 4760,
791      4761, 4757, 2245, 2254, 2302, 1831, 4740, 2308, 2311, 1535,
792      4742, 4738, 4734, 4726, 1709, 4709, 4707, 4717, 4707, 4714,
793
794      2316, 2019, 4713, 4697, 2320, 2340, 4702, 1472, 2343, 2027,
795      4705, 2349, 2089, 2352, 4703, 4689, 4684, 4671, 4668, 4679,
796      2361, 2370, 4675,  416, 4653, 2376, 2269, 2382, 4664, 4649,
797      4645, 2385, 2394, 4643, 2409, 2330, 2413, 2416, 4654, 2419,
798      2428, 4652, 4631, 4627, 2422, 2437, 2444, 2447, 2450, 2457,
799      2468, 4631, 2471, 2476, 2479, 2483, 2497, 2501, 4634, 2508,
800      2516, 2511, 2530, 2533, 2540, 2543, 2551, 2554, 4624, 4607,
801      4592, 4585, 2561, 2564, 4593, 4579, 2573, 2576, 2584, 2596,
802      2605, 2608, 4584, 2611, 2614, 4576, 2629, 2632, 4620, 7751,
803      7751,  710, 4582, 7751, 4613, 4612, 4546, 7751, 7751, 4538,
804
805      4537, 4545, 2638, 2641, 7751, 2644, 1654, 4528, 4521, 4529,
806      4510, 4521, 4506, 4513, 4505, 4501,  741, 4502, 4486, 4492,
807      4488, 1898, 4474, 4466, 4479,  782, 2651, 2663, 7751, 7751,
808      2671, 4500, 2674, 2677, 7751, 2680, 4460, 2683, 7751, 7751,
809      2699, 2702, 2710, 2713, 2717, 4469, 2731, 2734, 7751, 2737,
810       834, 4451, 2740, 4436, 2743, 2746, 7751, 2758, 2765, 7751,
811      7751, 4431, 2773, 2777, 7751, 2780, 4421, 4433, 4408, 4408,
812      4398, 4395, 4389, 4375, 4376, 2783, 2786, 7751, 7751, 4361,
813      4372, 2804, 2807, 7751, 2810, 4352, 4339, 4356, 4347, 2813,
814      7751, 7751, 2829, 2832, 7751, 7751, 2840, 2843, 4337, 4343,
815
816      4341, 4333, 4336, 4330, 2851, 2858, 7751, 2861, 4327, 4323,
817      4311, 4319, 2864, 7751, 7751, 2873, 2880, 4305, 4311, 4307,
818      2891, 2894, 7751, 2897, 4305, 2900, 7751, 7751, 2916, 2919,
819      7751, 2922, 4282, 2926, 7751, 7751, 4290, 4288, 4287, 2941,
820      2947, 7751, 2950, 2953, 2956, 2971, 2974, 4286, 2982, 2990,
821      7751, 2993, 4279, 2996, 3002, 4266, 4266, 3014, 3017, 4276,
822      3025, 3028, 7751, 3032, 4270, 3035, 7751, 7751, 3047, 3051,
823      7751, 3054, 3058, 3066, 4253, 4249, 3061, 3079, 3087, 3090,
824      7751, 3094, 4246, 3097, 4263, 4232, 3100, 3115, 7751, 3119,
825      4229, 4243, 3122, 3125, 7751, 3128, 3134, 7751, 7751, 3147,
826
827      3150, 7751, 3154, 4241, 3157, 7751, 7751, 4239, 3169, 3173,
828      7751, 3180,  386, 3183, 7751, 7751, 4271, 4264, 4194, 4180,
829      3188, 4169, 4175, 4168, 4165, 4167, 1901, 2097, 1962, 4169,
830      4164, 2100, 4153, 4157, 4152, 4147, 4130, 2153, 4143, 4141,
831      3192, 3203, 4127, 4154, 3195, 4127, 3214, 7751, 7751, 3222,
832      3225, 3233, 7751, 7751, 4118, 3243, 2264, 4103, 3246, 3252,
833      3264, 3267, 4102, 3270, 7751, 4093, 4080, 2373, 3273, 4092,
834      4090, 4089, 4091, 4075, 3276, 3282, 3294, 3298, 3301, 4082,
835      3304, 4062, 4078, 3307, 3325, 3333, 7751, 7751, 3343, 4055,
836      4075, 4061, 4073, 4048, 3347, 4056, 3350, 4036, 4045, 3354,
837
838      7751, 7751, 3368, 4037, 4049, 3371, 4038, 3374, 4025, 4029,
839      4016, 3377, 3380, 3386, 7751, 7751, 3395, 7751, 7751, 4005,
840      3404, 3410, 3413, 7751, 7751, 4004, 4014, 3423, 7751, 7751,
841      3993, 3438, 3992, 3441, 3444, 7751, 7751, 3990, 3998, 3461,
842      7751, 7751, 3469, 3991, 3472, 3475, 3979, 3997, 3483, 3983,
843      3490, 3497, 3502, 3980, 3508, 3511,  820, 4018, 3516, 7751,
844      4006, 7751, 7751, 3965, 3964, 3521, 3949, 3961, 3943, 3955,
845      3951, 2854, 3526, 3946, 3531, 3934, 3928, 3535, 3928, 3540,
846      3543, 3930, 3927, 3546, 3549, 3913, 3553, 7751, 7751, 3915,
847      3918, 3562, 3886, 3572, 7751, 7751, 3882, 3566, 3588, 3883,
848
849      3595, 1863, 2566, 3603, 3606, 3614, 3893, 3879, 3879, 3617,
850      3621, 3625, 3628, 3633, 3893, 3853, 3636, 7751, 7751, 3644,
851      3647, 3655, 3658, 3839, 3666, 3841, 3673, 3676, 3691, 3825,
852      3695, 7751, 7751, 3703, 3709, 3717, 3826, 3826, 3819, 3721,
853      3669, 3819, 3724, 3729, 3742, 3805, 3745, 3748, 3809, 3809,
854      3756, 3796, 3763, 3803, 3782, 3795, 3766, 3769, 3794, 3777,
855      3781, 3784, 3794, 3787, 3790, 3796, 3799, 3781, 3808, 3814,
856      3818, 3821, 3774, 3836, 7751, 7751, 3777, 3762, 3827, 3775,
857      3847, 3854, 3866, 3870, 3755, 3873, 3878, 3891,  181,  339,
858       476, 7751, 3745, 3894, 3897, 3756, 3746, 3760, 3732, 3900,
859
860      3719, 3719, 3713, 3903, 3906, 3912, 3916, 3725, 3919, 3700,
861      3924, 3713, 3692, 3706, 3731, 3927, 3682, 3686, 3930, 3933,
862      3717, 3703,  526, 3695, 3694, 3680,  584, 3675, 3936, 7751,
863      7751, 3951, 3956, 3657, 3667, 3959, 3962, 3647, 3643, 3970,
864      7751, 7751, 3978, 3649, 3647, 3611, 3965, 7751, 3600, 3987,
865      7751, 7751, 3996, 3999, 3597, 4007, 7751, 7751, 4015, 4018,
866      4026, 3597, 3547, 4029, 4033, 4047, 3545, 4050, 7751, 7751,
867      4058, 4062, 3549, 4070, 7751, 7751, 3547, 3532, 4079, 7751,
868      3532, 4082, 3512, 4085, 3515, 4088, 3526, 3506, 3466, 4103,
869      7751, 3453, 4106, 3425, 4109, 4112, 4130, 4133, 3433, 4144,
870
871      3420, 4148, 4151, 4154, 4163, 4169, 4181, 3395, 3373, 3375,
872      4184, 3351, 4187, 7751, 7751, 4196, 4203, 4177, 4208, 7751,
873      7751, 4216, 7751,   40,  733,  773,   37, 4222, 4225, 4235,
874      4240,   70,   94, 4247, 4250,  223,  302, 4255, 4258, 4261,
875       339, 4264, 4267,  410, 4270,  436,  482, 4273, 7751,  474,
876       544, 4276, 4280, 4283,  590,  587,  618,  631,  634,  657,
877       701,  718,  729,  723, 4298, 4301, 4304, 4312,  713, 4319,
878       727,  777,  873, 1121,  808,  809, 4322, 7751, 7751,  837,
879      4330, 7751, 7751, 4338, 4342,  843,  850, 4350, 7751, 7751,
880      4358,  870, 4361, 7751, 7751,  864,  869,  960,  954, 4369,
881
882       966, 4372, 4377, 1055, 1049, 1172, 1176, 1070, 1090, 4390,
883      7751, 1081, 4393, 7751, 7751, 4402, 7751, 7751, 1101, 4410,
884      1092, 4413, 4416, 7751, 7751, 4425, 7751, 7751, 4433, 4436,
885      1131, 1136, 4439, 1130, 4442, 4445, 4448, 4454, 1254, 1186,
886      4464, 4473, 7751, 7751, 4468, 4481, 4487, 1147, 4490, 4493,
887      4496, 4502, 1178, 4505, 1190, 4508, 1193, 7751, 4511, 1195,
888      4514, 7751, 4518, 7751, 7751, 1238, 1233, 1246, 1245, 1275,
889      1288, 1283, 1296, 1294, 1301, 4529, 4533, 7751, 7751, 4541,
890      1262, 1283, 1288, 1338, 1371, 1351, 1377, 1337, 1334, 1339,
891      4544, 7751, 7751, 1336, 1361, 4552, 1374, 1390, 1382, 1398,
892
893      1399, 4555, 7751, 4558, 4561, 7751, 7751, 1397, 1393, 1428,
894      1450, 1433, 1452, 1413, 1422, 4576, 1446, 4579, 4582, 4588,
895      4591, 4594, 4603, 4612, 1454, 4615, 4618, 4621, 4624, 7751,
896      4630, 1520, 1514, 4634, 4650, 4653, 1441, 4656, 4659, 1454,
897      1455, 1446, 4662, 4665, 1462, 1478, 1478, 1492, 1482, 1495,
898      1492, 1511, 1544, 1532, 1544, 4673, 1516, 1518, 1520, 1582,
899      7751, 1580, 7751, 4676, 1527, 1547, 1543, 4680, 4685, 7751,
900      1536, 1539, 1547, 4694, 1557, 4698, 4705, 1581, 1577, 1584,
901      1636, 7751, 1635, 7751, 4716, 1588, 4719, 1590, 4722, 7751,
902      4725, 4734, 4743, 4746, 4749, 7751, 7751, 4757, 4765, 4775,
903
904      4778, 7751, 4781, 4784, 1632, 1633, 1639, 4787, 7751, 1597,
905      1625, 1645, 4797, 4811, 1672, 1678, 1640, 1673, 1685, 1707,
906      1721, 1738, 1722, 1730, 1730, 1733, 1748, 4806, 1707, 1692,
907      4819, 7751, 7751, 4825, 4828, 1693, 1705, 1712, 4837, 4843,
908      1704, 4851, 1720, 4855, 4858, 4869, 4873, 7751, 7751, 1722,
909      1727, 1740, 7751, 7751, 4881, 4887, 4895, 4899, 4902, 1782,
910      1783, 4913, 7751, 4917, 4920, 7751, 7751, 4928, 4932, 4940,
911      7751, 1859, 1821, 1876, 4793, 1769, 1770, 4946, 4949, 1790,
912      1805, 1794, 1809, 1777, 1813, 1799, 1799, 1819, 7751, 1846,
913      1832, 1839, 1843, 7751, 4959, 4964, 4967, 4970, 4974, 4988,
914
915      7751, 7751, 1839, 1830, 1844, 4996, 7751, 7751, 1877, 5004,
916      5012, 1887, 5022, 7751, 7751, 5030, 5033, 1886, 5041, 1895,
917      5044, 7751, 7751, 5052, 5055, 5063, 5066, 1912, 1913, 1914,
918      1916, 1920, 1920, 5074, 5077, 7751, 7751, 1949, 2068, 5085,
919      5088, 1895, 1905, 5093, 7751, 7751, 1965, 1963, 1976, 1967,
920      5104, 1963, 1984, 2006, 2002, 1989, 2010, 2026, 2015, 5107,
921      5110, 5113, 5127, 2002, 5135, 7751, 7751, 2014, 2019, 2008,
922      2027, 5143, 7751, 7751, 2011, 5151, 7751, 7751, 2034, 5116,
923      5159, 2016, 5167, 2170, 2198, 5175, 2236, 2265, 2048, 2061,
924      2090, 2056, 2100, 2136, 5183, 2156, 5186, 5189, 5192, 5211,
925
926      5214, 2113, 2123, 2119, 2128, 5217, 5220, 2131, 2172, 7751,
927      2178, 2182, 2183, 7751, 2213, 5228, 5231, 7751, 7751, 2191,
928      2195, 2196, 5239, 2198, 5242, 5247, 5250, 7751, 7751, 5260,
929      2220, 2250, 2243, 2255, 2275, 2290, 2291, 2303, 2297, 2312,
930      7751, 2308, 2332, 7751, 5265, 7751, 2349, 5268, 5271, 5280,
931      5300, 5345, 5292, 5295, 2334, 2355, 2345, 2373, 5320, 7751,
932      7751, 2377, 2360, 2372, 2395, 2376, 2398, 5311, 2378, 2386,
933      2395, 5336, 5365, 2398, 5339, 5373, 5381, 5389, 5384, 5402,
934      2450, 2421, 2453, 2427, 2459, 2430, 2459, 2447, 2483, 2485,
935      2484, 2485, 2476, 5410, 2503, 2540, 5430, 5475, 2483, 7751,
936
937      2492, 7751, 7751, 2501, 2510, 7751, 2515, 2520, 5420, 7751,
938      2479, 2497, 2481, 5450, 2545, 2546, 2510, 5458, 2592, 2623,
939      5495, 7751, 7751, 5503, 2661, 2672, 7751, 2563, 7751, 2561,
940      7751, 2585, 7751, 2583, 7751, 7751, 7751, 7751, 2601, 2631,
941      2636, 2589, 2687, 2597, 5423, 2607, 2611, 7751, 7751, 7751,
942      7751, 5466, 5469, 5511, 2671, 2610, 2731, 2634, 5514, 2624,
943      2643, 2683, 2696, 2733, 2697, 2734, 2700, 7751, 7751, 7751,
944      7751, 5519, 2724, 2731, 2749, 5522, 2758, 2756, 5525, 5532,
945      5543, 5546, 5555, 5561, 2753, 2763, 2776, 2761, 2770, 2781,
946      5573, 5576, 2773, 2796, 2789, 2799, 2785, 2794, 2804, 2790,
947
948      2798, 2815, 5584, 2819, 7751, 7751, 5587, 7751, 7751, 5596,
949      7751, 7751, 5604, 2813, 2842, 2816, 2841, 2844, 2850, 2856,
950      2852, 5613, 7751, 7751, 2859, 2855, 2874, 2871, 2873, 2879,
951      2876, 2878, 2884, 2880, 2920, 7751, 2909, 2905, 2912, 2909,
952      2909, 2916, 2920, 2918, 2939, 2940, 2943, 2943, 2946, 2953,
953      2952, 2957, 2961, 2960, 2966, 2975, 2987, 2965, 2990, 2976,
954      3000, 2990, 3001, 3017, 3008, 3007, 3022, 3027, 3048, 3037,
955      3053, 3044, 3045, 3061, 3052, 3066, 3081, 3095, 3073, 3073,
956      3076, 3076, 3108, 3106, 3138, 3120, 3112, 3153, 3129, 3159,
957      3133, 3160, 3152, 3145, 3182, 3175, 3167, 3201, 3212, 3185,
958
959      3193, 3192, 3196, 3224, 3202, 7751, 3234, 3220, 7751, 3221,
960      7751, 3226, 7751, 3253, 3229, 7751, 3253, 3233, 7751, 3262,
961      3246, 3264, 3257, 3274, 7751, 3286, 7751, 3288, 3289, 3292,
962      7751, 3294, 7751, 3296, 5621, 3298, 3319, 3304, 3323, 3291,
963      3296, 3298, 3299, 3301, 3306, 5624, 3349, 7751, 3350, 7751,
964      3355, 3355, 3359, 3359, 3379, 3377, 3373, 3385, 7751, 7751,
965      7751, 7751, 7751, 7751, 7751, 7751, 3383, 3400, 3401, 3408,
966      3382, 3398, 3389, 3463, 3413, 3440, 3538, 3564, 3560, 3574,
967      3591, 3634, 3437, 3442, 3667, 3680, 3476, 3624, 5632, 5635,
968      7751, 7751, 5655, 5664, 5673, 5682, 5691, 5700, 5709, 5718,
969
970      5727, 5736, 5745, 5754, 5763, 5772, 5781, 5790, 5799, 5808,
971      5817, 5826, 5835, 5844, 5853, 5862, 5871, 5880, 5889, 5898,
972      5907, 5916, 5925, 5934, 5943, 5952, 5961, 5970, 5979, 5988,
973      5997, 6006, 6013, 6020, 6027, 6034, 6041, 6048, 6055, 6062,
974      6069, 6076, 6083, 6090, 6097, 6104, 6111, 6118, 6125, 6132,
975      6141, 6148, 6153, 6160, 6165, 6172, 6177, 6184, 6189, 6196,
976      6201, 6206, 6213, 6218, 6225, 6230, 6237, 6242, 6249, 6254,
977      6261, 6266, 6273, 6278, 6285, 6290, 6297, 6302, 6309, 6314,
978      6321, 6326, 6333, 6338, 6345, 6350, 6359, 6365, 6372, 6380,
979      6387, 6395, 6402, 6410, 6417, 6425, 6432, 6440, 6447, 6455,
980
981      6462, 6470, 6477, 6485, 6492, 6500, 6507, 6515, 6523, 6531,
982      6539, 6547, 6554, 6562, 6570, 6578, 6585, 6593, 6600, 6608,
983      6616, 6623, 6631, 6640, 6646, 6653, 6661, 6669, 6677, 6684,
984      6692, 6699, 6707, 6714, 6722, 6729, 6737, 6744, 6752, 6759,
985      6767, 6774, 6782, 6789, 6797, 6804, 6812, 6819, 6827, 6834,
986      6842, 6849, 6857, 6864, 6872, 6879, 6887, 6895, 6902, 6910,
987      6919, 6928, 6935, 6943, 6950, 6958, 6965, 6973, 6980, 6988,
988      6995, 7002, 7010, 7017, 7025, 7032, 7040, 7047, 7055, 7062,
989      7070, 7077, 7085, 7092, 7100, 7107, 7115, 7122, 7130, 7137,
990      7145, 7153, 7161, 7169, 7177, 7185, 7194, 7203, 7210, 7218,
991
992      7225, 7233, 7240, 7248, 7255, 7263, 7270, 7277, 7285, 7292,
993      7300, 7307, 7315, 7322, 7330, 7337, 7345, 7352, 7360, 7368,
994      7376, 7383, 7391, 7399, 7407, 7414, 7422, 7430, 7438, 7446,
995      7455, 7464, 7472, 7480, 7487, 7495, 7502, 7510, 7518, 7526,
996      7534, 7541, 7548, 7556, 7563, 7570, 7578, 7585, 7592, 7600,
997      7607, 7615, 7622, 7630, 7638, 7645, 7653, 7661, 7669, 7678,
998      7687, 7696, 7705, 7714, 7723, 7732, 7741
999     } ;
1000
1001 static yyconst flex_int16_t yy_def[2568] =
1002     {   0,
1003      2293, 2293, 2294, 2294, 2294, 2294, 2295, 2295, 2296, 2296,
1004      2297, 2297, 2298, 2298, 2298, 2298, 2299, 2299, 2293, 2293,
1005      2300, 2300, 2301, 2301, 2301, 2301, 2301, 2301, 2293, 2293,
1006      2301, 2301, 2293, 2293, 2301, 2301, 2301, 2301, 2302, 2302,
1007      2298, 2298, 2303, 2303, 2304, 2304, 2293, 2293, 2304, 2304,
1008      2304, 2304, 2305, 2305, 2306, 2306, 2307, 2307, 2308, 2308,
1009      2308, 2308, 2293, 2293, 2308, 2308, 2308, 2308, 2293, 2293,
1010      2308, 2308, 2293, 2293, 2308, 2308, 2308, 2308, 2293, 2293,
1011      2308, 2308, 2293, 2293, 2308, 2308, 2308, 2308, 2309, 2309,
1012      2310, 2310, 2293, 2293, 2310, 2310, 2310, 2310, 2292,   99,
1013
1014      2311, 2311, 2292,  103, 2312, 2312, 2313, 2313, 2314, 2314,
1015      2315, 2315, 2316, 2316, 2293, 2293, 2316, 2316, 2316, 2316,
1016      2317, 2317, 2318, 2318, 2293, 2293, 2318, 2318, 2318, 2318,
1017      2319, 2319, 2320, 2320, 2293, 2293, 2320, 2320, 2320, 2320,
1018      2321, 2321, 2322, 2322, 2323, 2323, 2324, 2324, 2293, 2293,
1019      2324, 2324, 2324, 2324, 2325, 2325, 2326, 2326, 2293, 2293,
1020      2326, 2326, 2326, 2326, 2327, 2327, 2328, 2328, 2329, 2329,
1021      2330, 2330, 2293, 2293, 2330, 2330, 2330, 2330, 2331, 2331,
1022      2332, 2332, 2293, 2293, 2292, 2292, 2292, 2292, 2292, 2292,
1023      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1024
1025      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1026      2292, 2292, 2292, 2292, 2292, 2333, 2292, 2292, 2333, 2292,
1027      2292, 2292,  222,  222,  222,  224,  224, 2292, 2292, 2292,
1028      2334, 2292, 2292, 2334, 2334, 2334, 2292, 2292, 2292, 2292,
1029      2292, 2335, 2292, 2292, 2335, 2335, 2335, 2335, 2292, 2292,
1030       224,  224,  224, 2292, 2292, 2292, 2336, 2292, 2292, 2336,
1031      2336, 2336, 2292, 2292, 2292, 2292, 2292, 2292, 2337, 2292,
1032      2292, 2337, 2337, 2292, 2292,  225,  225,  225,  276,  277,
1033       277,  277,  277,  283,  284,  283,  283, 2292, 2292, 2292,
1034      2338, 2292, 2292, 2338, 2338, 2338, 2338, 2338, 2292, 2292,
1035
1036       224,  224, 2292, 2292, 2292, 2339, 2292, 2292, 2339, 2339,
1037      2339, 2339, 2339, 2339, 2339, 2339, 2292, 2292, 2292, 2292,
1038      2292, 2292, 2340, 2292, 2292, 2340, 2340, 2340, 2340, 2340,
1039      2340, 2340, 2292, 2292, 2292, 2292, 2292, 2292, 2341, 2292,
1040      2292, 2341, 2341, 2292, 2292, 2292, 2292, 2292, 2292, 2342,
1041      2292, 2292, 2342, 2342, 2342, 2342, 2292, 2292,  224,  224,
1042      2292, 2292, 2292, 2343, 2292, 2292, 2343, 2343, 2292, 2292,
1043       224,  371,  371, 2292, 2292, 2292, 2344, 2292, 2292, 2344,
1044      2344, 2344, 2292, 2292,  371,  371, 2292, 2292, 2292, 2345,
1045      2292, 2292, 2345, 2345, 2292, 2292, 2292, 2292, 2292, 2292,
1046
1047      2346, 2292, 2292, 2346, 2346, 2346, 2292, 2292,  371,  371,
1048      2292, 2292, 2292, 2347, 2292, 2292, 2347, 2347, 2347, 2347,
1049      2292, 2292,  224,  423,  423, 2292, 2292, 2292, 2348, 2292,
1050      2292, 2348, 2292, 2292, 2292, 2292, 2292, 2292, 2349, 2292,
1051      2292, 2349, 2292, 2292,  423,  445,  445, 2292, 2292, 2292,
1052      2350, 2292, 2292, 2350, 2350, 2292, 2292, 2292, 2292, 2351,
1053      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1054      2292, 2292, 2292, 2292, 2292, 2352, 2352, 2353, 2292, 2292,
1055      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1056      2292, 2292, 2292, 2292, 2292, 2354, 2354, 2354, 2354, 2292,
1057
1058      2355, 2292, 2292, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
1059      2357, 2292, 2292, 2358, 2358, 2358, 2358, 2359, 2292, 2360,
1060      2360, 2360, 2361, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1061      2292, 2292, 2338, 2338, 2338, 2338, 2338, 2338, 2362, 2292,
1062      2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
1063      2363, 2363, 2363, 2364, 2292, 2365, 2365, 2365, 2365, 2365,
1064      2365, 2365, 2365, 2365, 2366, 2292, 2367, 2367, 2367, 2368,
1065      2292, 2369, 2369, 2369, 2369, 2369, 2369, 2370, 2292, 2371,
1066      2371, 2371, 2371, 2372, 2292, 2292, 2373, 2373, 2373, 2373,
1067      2373, 2374, 2292, 2375, 2375, 2375, 2376, 2292, 2377, 2377,
1068
1069      2377, 2377, 2378, 2292, 2379, 2379, 2379, 2379, 2379, 2380,
1070      2292, 2292, 2381, 2381, 2382, 2292, 2383, 2383, 2384, 2292,
1071      2292, 2385, 2385, 2385, 2386, 2387, 2292, 2387, 2292, 2292,
1072      2292, 2388, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2389,
1073      2390, 2390, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1074      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1075      2292, 2391, 2292, 2292, 2391, 2292, 2392, 2392, 2292, 2393,
1076      2292, 2292, 2393, 2393, 2393, 2393, 2394, 2394, 2292, 2395,
1077      2395, 2395, 2396, 2396, 2292, 2292, 2397, 2398, 2398, 2292,
1078      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2399, 2399, 2399,
1079
1080      2292, 2292, 2399, 2399, 2400, 2400, 2401, 2401, 2292, 2292,
1081      2401, 2292, 2292, 2401, 2401, 2401, 2401, 2401, 2401, 2401,
1082      2402, 2402, 2403, 2403, 2403, 2292, 2292, 2403, 2403, 2403,
1083      2403, 2404, 2404, 2405, 2292, 2292, 2406, 2406, 2407, 2292,
1084      2292, 2407, 2407, 2407, 2408, 2408, 2409, 2409, 2409, 2410,
1085      2410, 2292, 2411, 2411, 2411, 2411, 2412, 2412, 2413, 2292,
1086      2292, 2414, 2414, 2415, 2415, 2415, 2416, 2416, 2417, 2417,
1087      2417, 2417, 2418, 2418, 2292, 2419, 2420, 2420, 2292, 2292,
1088      2421, 2421, 2292, 2292, 2292, 2422, 2423, 2423, 2424, 2292,
1089      2292, 2424, 2292, 2292, 2425, 2292, 2292, 2292, 2292, 2292,
1090
1091      2292, 2426, 2292, 2427, 2292, 2427, 2292, 2292, 2292, 2292,
1092      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1093      2292, 2292, 2292, 2292, 2292, 2292, 2428, 2292, 2292, 2292,
1094      2428, 2292, 2292, 2429, 2292, 2429, 2430, 2292, 2292, 2292,
1095      2292, 2292, 2430, 2292, 2292, 2430, 2292, 2431, 2292, 2431,
1096      2292, 2432, 2432, 2432, 2292, 2433, 2292, 2433, 2292, 2292,
1097      2292, 2434, 2292, 2435, 2292, 2435, 2292, 2292, 2292, 2292,
1098      2292, 2292, 2292, 2436, 2436, 2436, 2292, 2292, 2292, 2436,
1099      2436, 2292, 2437, 2292, 2437, 2438, 2438, 2438, 2438, 2292,
1100      2292, 2292, 2438, 2292, 2292, 2292, 2292, 2292, 2438, 2438,
1101
1102      2438, 2438, 2438, 2438, 2292, 2439, 2292, 2439, 2440, 2440,
1103      2440, 2440, 2292, 2292, 2292, 2292, 2292, 2440, 2440, 2440,
1104      2292, 2441, 2292, 2441, 2442, 2292, 2292, 2292, 2292, 2443,
1105      2292, 2443, 2444, 2292, 2292, 2292, 2444, 2444, 2444, 2292,
1106      2445, 2292, 2445, 2292, 2292, 2292, 2292, 2446, 2292, 2447,
1107      2292, 2447, 2292, 2292, 2292, 2448, 2448, 2292, 2292, 2448,
1108      2292, 2449, 2292, 2449, 2450, 2292, 2292, 2292, 2292, 2451,
1109      2292, 2451, 2292, 2292, 2452, 2452, 2292, 2292, 2292, 2453,
1110      2292, 2453, 2454, 2454, 2454, 2454, 2292, 2455, 2292, 2455,
1111      2292, 2456, 2292, 2457, 2292, 2457, 2292, 2292, 2292, 2292,
1112
1113      2458, 2292, 2458, 2292, 2292, 2292, 2292, 2459, 2292, 2460,
1114      2292, 2460, 2461, 2462, 2292, 2292, 2292, 2292, 2292, 2463,
1115      2464, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1116      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1117      2292, 2292, 2465, 2292, 2466, 2467, 2292, 2292, 2292, 2292,
1118      2292, 2292, 2292, 2292, 2467, 2468, 2292, 2469, 2292, 2292,
1119      2469, 2470, 2471, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1120      2292, 2292, 2472, 2472, 2292, 2292, 2472, 2472, 2473, 2474,
1121      2474, 2474, 2474, 2292, 2292, 2292, 2292, 2292, 2474, 2474,
1122      2474, 2474, 2474, 2474, 2475, 2476, 2476, 2476, 2476, 2292,
1123
1124      2292, 2292, 2476, 2476, 2476, 2477, 2478, 2479, 2480, 2480,
1125      2480, 2480, 2481, 2292, 2292, 2292, 2292, 2292, 2292, 2482,
1126      2483, 2292, 2292, 2292, 2292, 2484, 2484, 2292, 2292, 2292,
1127      2484, 2485, 2486, 2487, 2292, 2292, 2292, 2488, 2488, 2292,
1128      2292, 2292, 2489, 2490, 2292, 2292, 2490, 2490, 2491, 2292,
1129      2492, 2493, 2494, 2292, 2495, 2496, 2497, 2498, 2498, 2292,
1130      2498, 2292, 2292, 2292, 2499, 2500, 2292, 2292, 2292, 2292,
1131      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1132      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2501,
1133      2292, 2502, 2503, 2292, 2292, 2292, 2503, 2504, 2292, 2505,
1134
1135      2292, 2292, 2292, 2292, 2292, 2506, 2507, 2292, 2292, 2292,
1136      2292, 2292, 2292, 2292, 2508, 2508, 2292, 2292, 2292, 2292,
1137      2292, 2292, 2292, 2508, 2509, 2510, 2292, 2292, 2510, 2510,
1138      2292, 2292, 2292, 2292, 2292, 2510, 2510, 2510, 2510, 2510,
1139      2511, 2512, 2292, 2292, 2512, 2512, 2292, 2292, 2512, 2512,
1140      2513, 2514, 2515, 2516, 2516, 2516, 2292, 2292, 2516, 2517,
1141      2518, 2519, 2292, 2520, 2520, 2520, 2521, 2522, 2523, 2524,
1142      2524, 2525, 2526, 2292, 2292, 2292, 2526, 2526, 2527, 2292,
1143      2292, 2292, 2528, 2529, 2292, 2292, 2292, 2530, 2531, 2532,
1144      2532, 2292, 2292, 2533, 2534, 2292, 2292, 2292, 2292, 2292,
1145
1146      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1147      2292, 2292, 2292, 2535, 2292, 2536, 2537, 2537, 2538, 2539,
1148      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1149      2292, 2540, 2541, 2292, 2292, 2292, 2292, 2542, 2542, 2292,
1150      2292, 2292, 2292, 2292, 2292, 2542, 2292, 2292, 2543, 2292,
1151      2292, 2292, 2292, 2292, 2543, 2292, 2292, 2292, 2292, 2292,
1152      2543, 2543, 2543, 2292, 2292, 2544, 2545, 2292, 2292, 2292,
1153      2292, 2292, 2545, 2292, 2292, 2292, 2545, 2545, 2292, 2292,
1154      2546, 2547, 2548, 2548, 2548, 2292, 2292, 2292, 2548, 2292,
1155      2292, 2549, 2550, 2292, 2292, 2292, 2292, 2292, 2551, 2552,
1156
1157      2553, 2554, 2292, 2292, 2292, 2292, 2555, 2556, 2556, 2556,
1158      2557, 2292, 2292, 2292, 2292, 2558, 2559, 2292, 2292, 2292,
1159      2292, 2292, 2292, 2560, 2561, 2561, 2292, 2292, 2292, 2534,
1160      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1161      2292, 2292, 2292, 2292, 2292, 2535, 2292, 2292, 2292, 2537,
1162      2537, 2538, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1163      2292, 2292, 2292, 2292, 2540, 2292, 2292, 2292, 2292, 2292,
1164      2542, 2542, 2292, 2292, 2542, 2543, 2292, 2292, 2292, 2543,
1165      2292, 2292, 2292, 2292, 2292, 2543, 2543, 2292, 2292, 2292,
1166      2544, 2545, 2292, 2292, 2292, 2545, 2545, 2545, 2546, 2547,
1167
1168      2548, 2292, 2292, 2548, 2548, 2292, 2292, 2548, 2549, 2292,
1169      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2551, 2552,
1170      2553, 2554, 2292, 2292, 2292, 2292, 2292, 2292, 2555, 2556,
1171      2556, 2556, 2557, 2292, 2558, 2559, 2292, 2560, 2561, 2561,
1172      2292, 2292, 2292, 2292, 2534, 2292, 2292, 2292, 2292, 2292,
1173      2292, 2292, 2292, 2292, 2292, 2292, 2535, 2292, 2537, 2537,
1174      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1175      2292, 2292, 2292, 2292, 2292, 2540, 2292, 2292, 2292, 2292,
1176      2292, 2542, 2542, 2292, 2292, 2292, 2292, 2542, 2543, 2543,
1177      2292, 2292, 2292, 2543, 2543, 2544, 2545, 2545, 2545, 2545,
1178
1179      2546, 2292, 2292, 2548, 2292, 2292, 2292, 2548, 2548, 2292,
1180      2292, 2292, 2292, 2548, 2549, 2292, 2551, 2552, 2553, 2554,
1181      2555, 2292, 2292, 2556, 2556, 2557, 2292, 2558, 2292, 2292,
1182      2560, 2561, 2561, 2292, 2534, 2292, 2292, 2292, 2292, 2292,
1183      2292, 2535, 2292, 2292, 2537, 2292, 2292, 2292, 2292, 2292,
1184      2292, 2292, 2292, 2292, 2292, 2540, 2292, 2542, 2542, 2292,
1185      2292, 2292, 2292, 2542, 2543, 2543, 2543, 2543, 2292, 2292,
1186      2545, 2545, 2545, 2545, 2546, 2292, 2292, 2548, 2548, 2548,
1187      2292, 2292, 2292, 2292, 2548, 2549, 2292, 2551, 2292, 2292,
1188      2292, 2292, 2554, 2555, 2292, 2292, 2292, 2292, 2292, 2556,
1189
1190      2292, 2292, 2292, 2558, 2560, 2561, 2561, 2292, 2292, 2292,
1191      2292, 2292, 2535, 2292, 2292, 2292, 2537, 2292, 2292, 2292,
1192      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2540, 2292, 2542,
1193      2542, 2292, 2292, 2292, 2292, 2543, 2543, 2543, 2292, 2292,
1194      2545, 2545, 2545, 2292, 2292, 2546, 2292, 2292, 2292, 2548,
1195      2548, 2548, 2292, 2292, 2292, 2292, 2549, 2551, 2292, 2292,
1196      2292, 2292, 2292, 2555, 2292, 2292, 2292, 2292, 2292, 2292,
1197      2292, 2560, 2561, 2561, 2292, 2292, 2292, 2292, 2292, 2292,
1198      2292, 2292, 2292, 2537, 2292, 2292, 2292, 2292, 2292, 2292,
1199      2292, 2292, 2292, 2292, 2540, 2292, 2542, 2292, 2292, 2292,
1200
1201      2292, 2292, 2543, 2543, 2543, 2292, 2292, 2292, 2545, 2292,
1202      2292, 2545, 2292, 2292, 2292, 2292, 2292, 2548, 2548, 2548,
1203      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1204      2292, 2292, 2292, 2555, 2292, 2292, 2292, 2560, 2561, 2561,
1205      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1206      2537, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2540,
1207      2292, 2292, 2292, 2542, 2292, 2292, 2292, 2543, 2543, 2543,
1208      2545, 2292, 2292, 2292, 2545, 2292, 2292, 2292, 2548, 2292,
1209      2292, 2548, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1210      2292, 2292, 2292, 2292, 2555, 2560, 2561, 2561, 2561, 2292,
1211
1212      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1213      2292, 2292, 2292, 2292, 2292, 2540, 2292, 2292, 2292, 2542,
1214      2543, 2543, 2543, 2545, 2545, 2548, 2292, 2292, 2292, 2548,
1215      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1216      2292, 2292, 2292, 2292, 2292, 2292, 2560, 2561, 2561, 2561,
1217      2562, 2563, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1218      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2540, 2542, 2543,
1219      2543, 2292, 2292, 2545, 2292, 2292, 2292, 2292, 2292, 2292,
1220      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1221      2292, 2292, 2560, 2561, 2564, 2565, 2562, 2563, 2292, 2292,
1222
1223      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1224      2542, 2543, 2543, 2292, 2292, 2292, 2545, 2292, 2292, 2292,
1225      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1226      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2560, 2564,
1227      2561, 2566, 2565, 2567, 2561, 2292, 2292, 2292, 2292, 2292,
1228      2292, 2542, 2543, 2543, 2292, 2292, 2292, 2292, 2545, 2292,
1229      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1230      2292, 2560, 2566, 2292, 2567, 2561, 2292, 2292, 2292, 2292,
1231      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1232      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1233
1234      2292, 2292, 2560, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1235      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1236      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1237      2292, 2292, 2292, 2292, 2560, 2292, 2292, 2292, 2292, 2292,
1238      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1239      2292, 2292, 2292, 2292, 2292, 2292, 2560, 2292, 2292, 2292,
1240      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1241      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2560, 2292, 2292,
1242      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1243      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2560, 2292,
1244
1245      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1246      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2560,
1247      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1248      2292, 2292, 2292, 2292, 2560, 2292, 2292, 2292, 2292, 2292,
1249      2292, 2292, 2292, 2292, 2292, 2560, 2292, 2292, 2292, 2292,
1250      2292, 2292, 2292, 2292, 2292, 2292, 2560, 2560, 2292, 2292,
1251      2292, 2292, 2292, 2292, 2292, 2292, 2560, 2560, 2560, 2560,
1252      2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560,
1253      2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560,
1254      2292,    0, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1255
1256      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1257      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1258      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1259      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1260      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1261      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1262      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1263      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1264      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1265      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1266
1267      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1268      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1269      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1270      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1271      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1272      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1273      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1274      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1275      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1276      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1277
1278      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1279      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1280      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1281      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1282      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1283      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
1284      2292, 2292, 2292, 2292, 2292, 2292, 2292
1285     } ;
1286
1287 static yyconst flex_int16_t yy_nxt[7822] =
1288     {   0,
1289      2292,  188,  189,  188,  188,  189,  188,  188,  189,  188,
1290       188,  189,  188,  193,  189,  193,  199,  190,  196,  199,
1291       190,  196, 2292,  191,  511,  197,  191,  627,  197,  194,
1292       193,  189,  193,  460,  200,  202,  203,  200,  202,  203,
1293       204,  205,  628,  204,  205,  460,  194,  209,  210,  461,
1294       206,  202,  203,  206,  207,  463,  204,  202,  203,  790,
1295       207,  462,  204,  209,  210, 1538,  206,  189,  189,  189,
1296       523,  462,  206,  512,  189,  189,  189,  221,  189,  221,
1297       221,  189,  221,  212,  221,  189,  221,  507,  463,  211,
1298       212,  508, 2292,  222, 1541,  509,  222,  459,  459,  459,
1299
1300       223,  459,  459,  459,  462,  211,  213,  214,  189,  214,
1301       213,  213,  213,  213,  213,  213,  213,  215,  213,  213,
1302       213,  528,  213,  217,  213,  218,  213,  221,  189,  221,
1303       221,  189,  221,  483, 1547,  221,  189,  221,  189,  189,
1304       189,  512,  486,  223,  474,  486,  224,  492,  463,  213,
1305       213,  224,  511, 1548,  225,  189,  189,  189,  459,  459,
1306       459,  459,  459,  459,  462,  459,  459,  459,  459,  459,
1307       459,  225,  219,  213,  214,  189,  214,  213,  213,  213,
1308       213,  213,  213,  213,  215,  213,  213,  213,  539,  213,
1309       217,  213,  218,  213,  221,  189,  221,  221,  189,  221,
1310
1311       790,  494,  189,  189,  189,  189,  189,  189,  548, 2292,
1312       223,  549,  582,  223,  543, 1424,  213,  213,  226,  583,
1313       463,  226,  221,  189,  221,  221,  189,  221,  221,  189,
1314       221,  221,  189,  221,  544, 2292,  462,  512,  224,  219,
1315       494,  224,  486,  627,  227,  481,  539,  227,  228,  229,
1316       189,  229,  228,  228,  228,  228,  228,  228,  228,  230,
1317       228,  228,  228, 2292,  228,  232,  228,  233,  228,  250,
1318       189,  250,  488,  489,  250,  189,  250,  666,  189,  189,
1319       189, 1550,  202,  203,  493,  251,  480,  204,  202,  203,
1320       251,  228,  228,  204,  252,  494,  563,  237,  633,  234,
1321
1322       494,  634,  235,  237,  459,  459,  459,  564,  236,  228,
1323       229,  189,  229,  228,  228,  228,  228,  228,  228,  228,
1324       230,  228,  228,  228,  238,  228,  232,  228,  233,  228,
1325       238,  189,  189,  189,  250,  189,  250,  590,  250,  189,
1326       250,  250,  189,  250,  591,  463,  463,  252,  500,  463,
1327       251,  463,  228,  228,  251,  501,  518,  253, 1160, 1551,
1328       234,  462,  462,  235,  462,  462,  468,  462,  578,  236,
1329       239,  240,  189,  240,  239,  239,  239,  239,  239,  239,
1330       239,  241,  239,  239,  239,  489,  239,  243,  239,  244,
1331       239,  250,  189,  250,  264,  189,  264, 1425, 1553,  264,
1332
1333       189,  264,  275,  189,  275,  790,  469,  253,  551,  463,
1334       265,  481,  470,  239,  239,  265,  471,  512,  276,  552,
1335       553,  472,  245, 1157,  246,  462,  530,  247,  459,  459,
1336       459,  592,  578,  248,  239,  240,  189,  240,  239,  239,
1337       239,  239,  239,  239,  239,  241,  239,  239,  239,  653,
1338       239,  243,  239,  244,  239,  275,  189,  275,  275,  189,
1339       275,  576,  654,  275,  189,  275,  189,  189,  189, 1555,
1340       910,  276,  577,  463,  277,  911,  484,  239,  239,  277,
1341       463,  494,  278,  459,  459,  459,  245,  554,  246,  462,
1342      1557,  247,  459,  459,  459, 1160,  462,  248,  254,  255,
1343
1344       189,  255,  254,  254,  254,  254,  254,  254,  254,  256,
1345       254,  254,  254,  489,  254,  258,  254,  259,  254,  189,
1346       189,  189,  275,  189,  275, 1558, 1426,  275,  189,  275,
1347       275,  189,  275,  603,  646,  278, 1559,  647,  279,  463,
1348       490,  254,  254,  279,  463,  463,  280, 1457,  260,  459,
1349       459,  459,  491,  261, 1458,  462,  492,  459,  459,  459,
1350       462,  462,  262,  254,  255,  189,  255,  254,  254,  254,
1351       254,  254,  254,  254,  256,  254,  254,  254,  484,  254,
1352       258,  254,  259,  254,  275,  189,  275,  189,  189,  189,
1353      1560,  653,  189,  189,  189,  275,  189,  275,  646,  658,
1354
1355       280,  656,  656,  281,  694, 1462,  254,  254,  281,  463,
1356       463,  277, 1463,  260,  459,  459,  459,  565,  261,  459,
1357       459,  459, 1566, 1567, 2292,  462,  462,  262,  266,  267,
1358       189,  267,  266,  266,  266,  266,  266,  266,  266,  268,
1359       266,  266,  266,  653,  266,  270,  266,  271,  266,  275,
1360       189,  275,  189,  189,  189, 1568,  696,  189,  189,  189,
1361       275,  189,  275, 1569,  463,  277,  526,  699,  282,  527,
1362       700,  266,  266,  282, 1570,  531,  280,  459,  459,  459,
1363       462,  584,  272,  459,  459,  459,  459,  459,  459, 1571,
1364       273,  266,  267,  189,  267,  266,  266,  266,  266,  266,
1365
1366       266,  266,  268,  266,  266,  266,  653,  266,  270,  266,
1367       271,  266,  275,  189,  275,  275,  189,  275,  790,  697,
1368       275,  189,  275,  189,  189,  189,  585,  463,  280,  790,
1369       494,  283,  792, 1013,  266,  266,  283, 1572,  463,  284,
1370       189,  189,  189,  462,  463,  272,  275,  189,  275,  275,
1371       189,  275, 1160,  273,  462, 1573,  284,  189,  189,  189,
1372       462, 1574,  285, 1575,  463,  285,  189,  189,  189,  275,
1373       189,  275, 1581,  286,  275,  189,  275,  275,  189,  275,
1374       462, 1539,  286, 1582,  463,  283,  275,  189,  275, 1031,
1375       283,  570, 1160,  287,  459,  459,  459,  459,  459,  459,
1376
1377       462, 1032,  287,  288,  289,  189,  289,  288,  288,  288,
1378       288,  288,  288,  288,  290,  288,  288,  288,  783,  288,
1379       292,  288,  293,  288,  300,  189,  300,  300,  189,  300,
1380      1040,  654,  189,  189,  189, 1540,  189,  189,  189,  790,
1381       301, 1583, 1032,  301,  650,  463,  288,  288,  252,  294,
1382       651,  295,  252,  459,  459,  459,  652,  296,  459,  459,
1383       459,  462, 1289,  297, 1588, 1589,  298,  288,  289,  189,
1384       289,  288,  288,  288,  288,  288,  288,  288,  290,  288,
1385       288,  288, 1040,  288,  292,  288,  293,  288,  300,  189,
1386       300,  300,  189,  300, 1057, 1590,  300,  189,  300, 1584,
1387
1388       300,  189,  300, 1594,  301, 1585, 1595,  301,  659,  463,
1389       288,  288,  302,  294,  651,  295,  302,  459,  459,  459,
1390       652,  296,  459,  459,  459,  462, 1597,  297, 1598, 1599,
1391       298,  303,  304,  189,  304,  303,  303,  303,  303,  303,
1392       303,  303,  305,  303,  303,  303,  306,  303,  307,  303,
1393       308,  303,  306,  306,  306,  306,  306,  306,  306,  306,
1394       306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
1395       306,  306,  306,  306,  303,  303,  306,  309,  310,  311,
1396       306,  306,  306,  306,  306,  312,  306,  313,  306,  306,
1397       306,  314,  306,  315,  316,  306,  306,  306,  306,  306,
1398
1399       306,  318,  189,  318,  318,  189,  318,  459,  459,  459,
1400       459,  459,  459,  459,  459,  459, 1600,  319, 1601, 1604,
1401       319,  320,  321,  189,  321,  320,  320,  320,  320,  320,
1402       320,  320,  322,  320,  320,  320,  323,  320,  324,  320,
1403       325,  320,  323,  323,  323,  323,  323,  323,  323,  323,
1404       323,  323,  323,  323,  323,  323,  323,  323,  323,  323,
1405       323,  323,  323,  323,  320,  320,  323,  326,  327,  328,
1406       323,  323,  323,  323,  323,  329,  323,  330,  323,  323,
1407       323,  331,  323,  323,  332,  323,  323,  323,  323,  323,
1408       323,  334,  189,  334,  334,  189,  334,  459,  459,  459,
1409
1410       459,  459,  459,  459,  459,  459, 1608,  335,  610, 1609,
1411       335,  336,  337,  189,  337,  336,  336,  336,  336,  336,
1412       336,  336,  338,  336,  336,  336, 1614,  336,  340,  336,
1413       341,  336,  345,  189,  345,  345,  189,  345, 1615, 1616,
1414       358,  189,  358,  611,  358,  189,  358, 1586,  346, 1617,
1415      1619,  346,  650, 1587,  336,  336,  359,  512,  651,  342,
1416       359,  459,  459,  459,  661,  343,  336,  337,  189,  337,
1417       336,  336,  336,  336,  336,  336,  336,  338,  336,  336,
1418       336, 1624,  336,  340,  336,  341,  336,  189,  189,  189,
1419       189,  189,  189, 1625, 1627,  358,  189,  358, 1610,  358,
1420
1421       189,  358, 1612,  252, 1611, 1160,  252,  659, 1613,  336,
1422       336,  359, 1637,  651,  342,  359,  459,  459,  459,  661,
1423       343,  347,  348,  189,  348,  347,  347,  347,  347,  347,
1424       347,  347,  349,  347,  347,  347, 1640,  347,  351,  347,
1425       352,  347,  358,  189,  358,  358,  189,  358, 1641, 1633,
1426       370,  189,  370,  370,  189,  370,  463, 1642,  360, 1645,
1427       463,  360, 1646,  597,  347,  347,  371,  615,  353,  371,
1428      1647, 1648,  462, 1160, 1649,  354,  462,  355,  459,  459,
1429       459,  459,  459,  459,  356,  347,  348,  189,  348,  347,
1430       347,  347,  347,  347,  347,  347,  349,  347,  347,  347,
1431
1432      1650,  347,  351,  347,  352,  347,  189,  189,  189,  189,
1433       189,  189, 1651, 1632,  370,  189,  370,  370,  189,  370,
1434      1652, 1653,  372, 1654,  463,  372, 1655, 1657,  347,  347,
1435       371,  625,  353,  371,  459,  459,  459, 1658, 1659,  354,
1436       462,  355,  459,  459,  459,  459,  459,  459,  356,  361,
1437       362,  189,  362,  361,  361,  361,  361,  361,  361,  361,
1438       363,  361,  361,  361, 1660,  361,  365,  361,  366,  361,
1439       370,  189,  370,  370,  189,  370, 1661, 1662,  384,  189,
1440       384,  384,  189,  384,  659, 1663,  373, 1664, 1665,  373,
1441       651, 1666,  361,  361,  385, 1667,  679,  385,  367,  459,
1442
1443       459,  459,  459,  459,  459,  459,  459,  459,  631,  631,
1444       631, 1668,  368,  361,  362,  189,  362,  361,  361,  361,
1445       361,  361,  361,  361,  363,  361,  361,  361, 1671,  361,
1446       365,  361,  366,  361,  189,  189,  189,  189,  189,  189,
1447      1672, 1673,  384,  189,  384,  384,  189,  384, 1674, 1675,
1448       372, 1679, 1680,  372, 1681, 1682,  361,  361,  385, 1683,
1449      1684,  385,  367, 1685,  632,  631,  631,  631, 1686,  794,
1450       807,  807,  807,  822,  822,  822,  368,  374,  375,  189,
1451       375,  374,  374,  374,  374,  374,  374,  374,  376,  374,
1452       374,  374, 1688,  374,  378,  374,  379,  374,  384,  189,
1453
1454       384,  384,  189,  384, 1700, 1710,  396,  189,  396,  396,
1455       189,  396, 1711, 1712,  386, 1713, 1717,  386, 1718,  887,
1456       374,  374,  397, 1719, 1720,  397,  380, 1721,  888,  381,
1457      1722,  808, 1723, 1160,  808,  889,  807,  807,  807, 1160,
1458       382,  374,  375,  189,  375,  374,  374,  374,  374,  374,
1459       374,  374,  376,  374,  374,  374, 1724,  374,  378,  374,
1460       379,  374,  408,  189,  408,  408,  189,  408, 1707, 1706,
1461       189,  189,  189,  189,  189,  189, 1725, 1726,  409, 1727,
1462      1729,  409, 1730, 1731,  374,  374,  372, 1732, 1733,  372,
1463       380, 1736, 1737,  381,  828,  828,  828,  867,  829, 1738,
1464
1465      1741,  830, 1742, 1743,  382,  387,  388,  189,  388,  387,
1466       387,  387,  387,  387,  387,  387,  389,  387,  387,  387,
1467      1746,  387,  391,  387,  392,  387,  408,  189,  408,  408,
1468       189,  408, 1750, 1751,  408,  189,  408,  408,  189,  408,
1469      1752, 1753,  409, 1754, 1757,  409, 1758, 1775,  387,  387,
1470       410,  790, 1160,  410,  393,  807,  807,  807, 1160,  394,
1471       387,  388,  189,  388,  387,  387,  387,  387,  387,  387,
1472       387,  389,  387,  387,  387, 1776,  387,  391,  387,  392,
1473       387,  422,  189,  422,  422,  189,  422, 1773, 1772,  189,
1474       189,  189,  189,  189,  189, 1777, 1780,  423, 1774, 1784,
1475
1476       423, 1785, 1782,  387,  387,  424, 1786, 1781,  424,  393,
1477       822,  822,  822, 1783,  394,  398,  399,  189,  399,  398,
1478       398,  398,  398,  398,  398,  398,  400,  398,  398,  398,
1479      1787,  398,  402,  398,  403,  398,  422,  189,  422,  422,
1480       189,  422, 1788, 1789,  422,  189,  422,  422,  189,  422,
1481      1790, 1791,  423, 1792, 1793,  423, 1794, 1796,  398,  398,
1482       425, 1797, 1803,  425,  404, 1804, 1805,  405,  838,  838,
1483       838,  867,  839, 1809, 1812,  840, 1818, 1819,  406,  398,
1484       399,  189,  399,  398,  398,  398,  398,  398,  398,  398,
1485       400,  398,  398,  398, 1820,  398,  402,  398,  403,  398,
1486
1487       434,  189,  434,  434,  189,  434, 1828, 1831,  444,  189,
1488       444,  444,  189,  444, 1829, 1832,  435, 1842, 1843,  435,
1489      1830, 1833,  398,  398,  445, 1847, 1848,  445,  404, 1849,
1490      1850,  405,  859,  859,  859, 1851,  860, 1852, 1853,  861,
1491      1160, 1854,  406,  411,  412,  189,  412,  411,  411,  411,
1492       411,  411,  411,  411,  413,  411,  411,  411, 1855,  411,
1493       415,  411,  416,  411,  189,  189,  189,  189,  189,  189,
1494      1856, 1857,  444,  189,  444,  444,  189,  444,  790, 1839,
1495       252, 1858, 1859,  252, 1868, 1321,  411,  411,  446, 1869,
1496      1322,  446, 1870, 1323,  417, 1160,  418, 1324,  419,  822,
1497
1498       822,  822, 1172, 1172, 1172, 1838,  420,  411,  412,  189,
1499       412,  411,  411,  411,  411,  411,  411,  411,  413,  411,
1500       411,  411, 1871,  411,  415,  411,  416,  411,  444,  189,
1501       444,  444,  189,  444, 1840, 1875,  457,  189,  457,  457,
1502       189,  457, 1879, 1882,  447, 1889, 1890,  447, 1891, 1892,
1503       411,  411,  458, 1893, 1894,  458,  523,  523,  417, 1900,
1504       418,  619,  419, 1175, 1175, 1175,  524,  529,  790, 1901,
1505       420,  426,  427,  189,  427,  426,  426,  426,  426,  426,
1506       426,  426,  428,  426,  426,  426, 1902,  426,  430,  426,
1507       431,  426,  525,  525,  490, 1903,  480, 1904,  526, 1905,
1508
1509      1908,  527,  663,  663,  663, 1909,  494,  528,  671,  671,
1510       671, 1910,  620, 1896,  426,  426,  685,  685,  685,  664,
1511       877,  877,  877, 1911,  878,  672, 1912,  879,  890,  890,
1512       890, 1913,  891,  686, 1914,  892, 1915,  432,  426,  427,
1513       189,  427,  426,  426,  426,  426,  426,  426,  426,  428,
1514       426,  426,  426, 1920,  426,  430,  426,  431,  426,  701,
1515       701,  701,  709,  709,  709, 1921,  712,  712,  712,  726,
1516       726,  726,  735,  735,  735, 1922,  702, 1923, 1924,  710,
1517      1925,  426,  426,  713, 1926, 1930,  727, 1160, 1939,  736,
1518       894,  894,  894, 1940,  895, 1941, 1942,  896, 1173, 1173,
1519
1520      1173, 1178, 1178, 1178,  432,  436,  437,  189,  437,  436,
1521       436,  436,  436,  436,  436,  436,  438,  436,  436,  436,
1522      1897,  436,  440,  436,  441,  436,  740,  740,  740,  760,
1523       760,  760, 1943,  779,  779,  779,  784,  784,  784,  803,
1524       803,  803, 1174,  741, 1944, 1955,  761, 1956,  436,  436,
1525       780, 1957, 1958,  785, 1184, 1184, 1184,  805, 1962,  442,
1526       436,  437,  189,  437,  436,  436,  436,  436,  436,  436,
1527       436,  438,  436,  436,  436,  790,  436,  440,  436,  441,
1528       436,  803,  803,  803,  663,  663,  663,  833,  833,  833,
1529       833,  833,  833,  671,  671,  671,  841,  841,  841,  805,
1530
1531      1963,  664, 1931,  436,  436,  835, 1964, 1947,  835, 1965,
1532       672, 1966, 1932,  842,  442,  448,  449,  189,  449,  448,
1533       448,  448,  448,  448,  448,  448,  450,  448,  448,  448,
1534      1933,  448,  452,  448,  453,  448,  806,  844,  844,  844,
1535      1934, 1967,  847,  847,  847, 1969,  855,  855,  855, 1970,
1536      1971,  836, 1974, 1981,  845,  855,  855,  855,  448,  448,
1537       849,  847,  847,  847,  857, 1199, 1199, 1199, 1935,  454,
1538       913,  913,  913,  857,  914, 1982, 1983,  915, 1936,  849,
1539      1984,  455,  448,  449,  189,  449,  448,  448,  448,  448,
1540       448,  448,  448,  450,  448,  448,  448, 1937,  448,  452,
1541
1542       448,  453,  448,  685,  685,  685,  850, 1938, 1985,  863,
1543       863,  863,  863,  863,  863, 1986,  858,  701,  701,  701,
1544       686,  882,  882,  882, 1987,  448,  448,  865, 1988, 1989,
1545       865,  926,  926,  926,  702,  927,  454, 1990,  928,  884,
1546      1991,  882,  882,  882,  709,  709,  709,  866,  455,  463,
1547       712,  712,  712,  897,  897,  897,  478, 1992, 1999,  884,
1548      2000,  710,  905,  905,  905,  462,  479,  713,  790, 2001,
1549       898,  905,  905,  905, 1210, 1210, 1210,  726,  726,  726,
1550       907, 2002, 2003,  916,  916,  916,  921,  921,  921,  907,
1551      2004,  480,  481,  482,  727,  921,  921,  921,  483,  885,
1552
1553       917,  484, 2005, 2006,  923,  485, 2007,  486, 1993,  487,
1554       735,  735,  735,  923,  929,  929,  929,  929,  929,  929,
1555       740,  740,  740,  940,  940,  940,  908,  736, 2008,  934,
1556       934,  934,  931,  935, 2011,  931,  936,  741,  940,  940,
1557       940,  942, 2012, 2013,  924,  944,  944,  944,  946,  946,
1558       946, 2292, 2292, 2292, 2017, 2027,  942, 2028,  949,  949,
1559       949, 2029,  945, 2030, 2031,  947, 2032, 2033, 2292,  949,
1560       949,  949,  954,  954,  954,  932,  951, 2292, 2292, 2292,
1561       958,  958,  958, 2034, 2292, 2292, 2292,  951, 2035,  955,
1562      2036,  943, 2037, 2038, 2292,  790, 2046,  959,  961,  961,
1563
1564       961, 2292,  961,  961,  961, 2047, 2048,  948, 2041,  760,
1565       760,  760,  969,  969,  969, 2049,  963,  966,  966,  966,
1566       963,  967, 2042, 2050,  968,  956,  761,  952, 2051, 2052,
1567       971,  969,  969,  969,  973,  973,  973,  964, 2039,  957,
1568       960, 2292, 2292, 2292,  977,  977,  977, 2053, 2041,  971,
1569      2054,  974,  979,  979,  979,  979,  979,  979, 2292, 2044,
1570      2059,  978,  987,  987,  987,  987,  987,  987, 2068, 2069,
1571       981, 2055, 2057,  981,  993,  993,  993,  993,  993,  993,
1572       989, 2056, 2058,  989,  972,  779,  779,  779, 1325,  975,
1573      2070, 2071,  995, 1326, 2074,  995, 1327,  997,  997,  997,
1574
1575      1328,  998,  780,  976,  999, 2074, 1000, 1000, 1000, 1000,
1576      1000, 1000,  784,  784,  784, 1005, 1005, 1005, 2060, 1006,
1577       790, 2077, 1007,  982, 1002, 2078,  990, 1002, 2061,  785,
1578      1009, 1009, 1009, 1009, 1009, 1009, 2041, 2087,  996,  803,
1579       803,  803,  803,  803,  803,  803,  803,  803, 1011, 2062,
1580      2042, 1011, 1041, 1041, 1041, 1160, 1161,  805, 2072, 2063,
1581       805, 2090, 2093,  805,  828,  828,  828, 1003,  829, 1042,
1582      2094,  830, 2292, 2292, 2292,  833,  833,  833,  833,  833,
1583       833,  833,  833,  833,  838,  838,  838, 2064,  839, 2292,
1584      1021,  840, 2085,  835, 1012, 2041,  835, 2065, 2066,  835,
1585
1586       841,  841,  841, 1047, 1047, 1047, 2044, 1048, 2067, 2086,
1587      1049, 1050, 1050, 1050,  844,  844,  844,  842, 1052, 1052,
1588      1052, 2095, 1053, 2096, 2099, 1054, 1045, 2102, 1051, 2074,
1589      1043,  845,  847,  847,  847,  847,  847,  847,  847,  847,
1590       847, 1059, 1059, 1059,  855,  855,  855,  855,  855,  855,
1591       849, 2104, 2088,  849, 2097, 2100,  849, 2074, 1060,  855,
1592       855,  855,  857, 2105, 2106,  857,  859,  859,  859, 2089,
1593       860, 2098, 2101,  861,  863,  863,  863,  857,  863,  863,
1594       863, 1064, 1064, 1064, 1075, 1075, 1075,  877,  877,  877,
1595      2116,  878,  865, 2117,  879, 1056,  865, 2118, 2119, 1065,
1596
1597      2120, 1076, 2121, 2125, 1062,  882,  882,  882,  882,  882,
1598       882,  882,  882,  882,  890,  890,  890, 2126,  891, 2127,
1599      2128,  892, 2129,  884, 2130, 2131,  884, 2132, 2133,  884,
1600      1084, 1084, 1084,  894,  894,  894, 2134,  895, 2136, 2137,
1601       896,  897,  897,  897, 1086, 1086, 1086, 1085, 1087, 2138,
1602      2141, 1088,  905,  905,  905, 1172, 1172, 1172,  898,  905,
1603       905,  905,  905,  905,  905,  913,  913,  913, 2139,  914,
1604       907, 2142,  915, 1079,  916,  916,  916,  907, 2140, 2143,
1605       907, 1100, 1100, 1100, 2144, 1101, 2145, 2146, 1102, 2147,
1606      2148,  917,  921,  921,  921,  921,  921,  921,  921,  921,
1607
1608       921,  926,  926,  926, 2149,  927, 2150, 2151,  928, 2152,
1609       923, 2153, 2154,  923, 2155, 2156,  923,  929,  929,  929,
1610       929,  929,  929,  929,  929,  929, 1095,  934,  934,  934,
1611      2158,  935, 2159, 2160,  936,  931, 2161, 2162,  931,  790,
1612      2163,  931,  940,  940,  940, 2164, 2165, 1106,  940,  940,
1613       940,  940,  940,  940,  944,  944,  944, 1114, 1114, 1114,
1614       942, 1115, 2157, 2166, 1116, 2167,  942, 2168, 2169,  942,
1615      2170,  945,  946,  946,  946, 1117, 1117, 1117, 2171, 1118,
1616      2172, 2173, 1119,  949,  949,  949, 2174, 1108, 2175,  947,
1617      2176,  949,  949,  949,  949,  949,  949,  954,  954,  954,
1618
1619      2177,  951, 2179, 1123, 1123, 1123,  790, 1124, 1113,  951,
1620      1125, 2180,  951, 2181,  955,  958,  958,  958, 1128, 1128,
1621      1128, 2182, 1129, 2178, 2183, 1130,  961,  961,  961,  961,
1622       961,  961,  959,  961,  961,  961,  966,  966,  966, 2184,
1623       967, 2185, 2186,  968,  963, 2187, 2188,  963,  969,  969,
1624       969,  963,  969,  969,  969,  969,  969,  969, 1121,  973,
1625       973,  973,  977,  977,  977, 2189,  971, 1135, 1135, 1135,
1626       971, 1136, 2190,  971, 1137, 2191,  974, 2192, 2193,  978,
1627      1140, 1140, 1140, 2194, 1141, 2195, 2196, 1142,  979,  979,
1628       979,  979,  979,  979, 1132,  979,  979,  979, 1145, 1145,
1629
1630      1145,  987,  987,  987, 2197, 2198,  981, 2200, 2201,  981,
1631      2202, 2203, 1134,  981,  790, 1146,  987,  987,  987,  989,
1632       987,  987,  987,  993,  993,  993,  993,  993,  993,  993,
1633       993,  993, 2199, 2204,  989,  997,  997,  997,  989,  998,
1634      2205,  995,  999, 2206,  995, 2207, 2208,  995, 1000, 1000,
1635      1000, 1000, 1000, 1000, 1143, 1000, 1000, 1000, 1005, 1005,
1636      1005, 2209, 1006, 2210, 2211, 1007, 1002, 2212, 2213, 1002,
1637      1009, 1009, 1009, 1002, 1009, 1009, 1009, 2214, 1149, 2215,
1638      1152, 1009, 1009, 1009, 1159, 1159, 1159, 2216, 1011,  803,
1639       803,  803, 1011, 1041, 1041, 1041,  833,  833,  833, 1011,
1640
1641      2217, 2218, 1160, 1161, 1187, 1187, 1187,  805, 1188, 2219,
1642      1042, 1189, 1153, 2221,  835, 1047, 1047, 1047, 2222, 1048,
1643      2223, 2224, 1049, 1050, 1050, 1050, 1194, 1194, 1194, 2225,
1644      1195,  790, 2226, 1196, 1052, 1052, 1052, 2220, 1053, 1156,
1645      1051, 1054, 2227, 1192,  847,  847,  847, 1059, 1059, 1059,
1646      2228, 2229, 1166, 1201, 1201, 1201, 2230, 1202, 2231, 2232,
1647      1203, 2233,  849, 2234, 1060, 1204, 1204, 1204,  855,  855,
1648       855, 1064, 1064, 1064, 1211, 1211, 1211, 1075, 1075, 1075,
1649      2236,  790, 1205, 1217, 1217, 1217,  857, 1218, 2237, 1065,
1650      1219, 2238, 1198, 2235, 1076, 1220, 1220, 1220, 2239, 1222,
1651
1652      1222, 1222,  882,  882,  882, 1227, 1227, 1227, 1084, 1084,
1653      1084, 2240, 1221, 2241, 2242, 1206, 1223, 2243, 1174, 2244,
1654       884, 2245, 1228, 2247, 2248, 1085, 1231, 1231, 1231, 2249,
1655      1232, 2250, 2251, 1233, 1086, 1086, 1086, 2252, 1087, 2253,
1656      2254, 1088, 2255, 1224, 1234, 1234, 1234, 2256,  905,  905,
1657       905, 1243, 1243, 1243, 2259, 1100, 1100, 1100, 2260, 1101,
1658      2261, 1235, 1102, 2262, 2263, 1225,  907, 2264, 1244, 1247,
1659      1247, 1247,  921,  921,  921,  929,  929,  929, 1257, 1257,
1660      1257,  940,  940,  940, 2265, 2266, 1248, 1114, 1114, 1114,
1661       923, 1115,  790,  931, 1116, 1258, 1117, 1117, 1117,  942,
1662
1663      1118,  790,  790, 1119,  790,  949,  949,  949,  790, 1534,
1664      1241, 1173, 1173, 1173, 1123, 1123, 1123,  790, 1124,  790,
1665       790, 1125, 1259,  951, 1128, 1128, 1128,  790, 1129, 1532,
1666      1531, 1130,  790, 1251, 2273, 1260, 2267, 2269, 1253,  961,
1667       961,  961,  969,  969,  969, 1135, 1135, 1135, 2268, 1136,
1668      2274, 2275, 1137, 1530, 2270, 1263,  790,  963, 2271,  790,
1669       971,  790, 1140, 1140, 1140, 2272, 1141, 2277, 1262, 1142,
1670       979,  979,  979, 1145, 1145, 1145, 1274, 1274, 1274, 1521,
1671      1275, 2289,  790, 1276,  987,  987,  987, 1519,  981, 1512,
1672      1146, 1281, 1281, 1281, 2278,  790, 1269, 1267,  993,  993,
1673
1674       993, 2285,  989, 1000, 1000, 1000, 2286, 1509, 1282, 1286,
1675      1286, 1286, 1009, 1009, 1009, 1272,  995, 1159, 1159, 1159,
1676      1508, 1002,  803,  803,  803, 2276, 1287, 1173, 1173, 1173,
1677      1011, 1279, 1175, 1175, 1175, 1160, 1178, 1178, 1178, 1507,
1678       805, 1305, 1305, 1305, 1307, 1307, 1307, 1184, 1184, 1184,
1679      1311, 1311, 1311, 1284, 1187, 1187, 1187,  790, 1188, 1506,
1680      1505, 1189, 1283,  833,  833,  833, 1290,  847,  847,  847,
1681      2281, 1288, 1295, 1194, 1194, 1194, 1501, 1195, 1499,  790,
1682      1196,  835, 1291,  790, 2282,  849, 1498, 2279, 1308, 1199,
1683      1199, 1199, 1497,  790, 1312, 1496, 1201, 1201, 1201, 1492,
1684
1685      1202, 1487, 1306, 1203, 1204, 1204, 1204, 1329, 1329, 1329,
1686       790, 1330, 1316, 2280, 1331,  855,  855,  855, 1210, 1210,
1687      1210, 1205, 1211, 1211, 1211, 1319, 1336, 1336, 1336, 1336,
1688      1336, 1336, 2289,  857, 1305, 1305, 1305, 1217, 1217, 1217,
1689      2283, 1218, 1486,  790, 1219, 1220, 1220, 1220, 1340, 1340,
1690      1340, 1480, 1341,  790, 1476, 1342, 1222, 1222, 1222, 1343,
1691      1343, 1343, 1221, 1344, 1332, 1475, 1345, 1347, 1347, 1347,
1692       905,  905,  905, 1223, 1227, 1227, 1227, 1350, 1350, 1350,
1693      1474, 1351, 1473, 2284, 1352, 1348,  790, 1337,  907, 1472,
1694      1306, 1228, 1353, 1353, 1353, 1337, 1231, 1231, 1231,  790,
1695
1696      1232, 1471, 1469, 1233, 1234, 1234, 1234, 1468, 1464, 1354,
1697      1356, 1356, 1356, 1461, 1357, 1460, 2287, 1358, 1359, 1359,
1698      1359, 1235, 1364, 1364, 1364, 1243, 1243, 1243, 1459, 2288,
1699      1368, 1368, 1368, 1366, 1369, 1360, 1456, 1370, 1455, 1365,
1700      1451, 1450, 1244, 1371, 1371, 1371, 1247, 1247, 1247, 1374,
1701      1374, 1374, 1447, 1375, 1446, 1445, 1376, 1379, 1379, 1379,
1702      1372, 1444, 1443, 1248,  929,  929,  929, 1257, 1257, 1257,
1703      1386, 1386, 1386, 1441, 1387, 1380, 1438, 1388, 1390, 1390,
1704      1390, 1437,  931, 1436, 1258,  949,  949,  949, 1395, 1395,
1705      1395, 1397, 1397, 1397, 1434, 1433, 1391, 2292, 2292, 2292,
1706
1707       961,  961,  961,  951, 1432, 1396, 1431, 1427, 1398,  969,
1708       969,  969, 1418, 1382, 2292, 1403, 1403, 1403,  963, 1405,
1709      1405, 1405,  979,  979,  979, 1412, 1410,  971,  987,  987,
1710       987, 1409, 1404, 1408, 1393, 1401, 1406, 1274, 1274, 1274,
1711       981, 1275, 1394, 1392, 1276, 1389,  989, 1385, 1281, 1281,
1712      1281, 1384, 1383, 1402, 1381, 1413, 1413, 1413, 1399, 1414,
1713      1378, 1377, 1415, 1373, 1400, 1282, 1367,  993,  993,  993,
1714      1363, 1000, 1000, 1000, 1286, 1286, 1286, 1411, 1362, 1419,
1715      1419, 1419, 1361, 1420, 1407,  995, 1421, 1355, 1349, 1002,
1716      1346, 1287, 1422, 1422, 1422, 1428, 1428, 1428,  803,  803,
1717
1718       803, 1435, 1435, 1435, 1439, 1439, 1439, 1305, 1305, 1305,
1719      1423, 1339, 1429, 1440, 1440, 1440,  805, 1307, 1307, 1307,
1720      1442, 1442, 1442, 1416, 1417, 1311, 1311, 1311, 1448, 1448,
1721      1448,  847,  847,  847, 1453, 1453, 1453, 1329, 1329, 1329,
1722      1338, 1330, 1335, 1334, 1331, 1333, 1449, 1320, 1318,  849,
1723      1317, 1454,  855,  855,  855, 1315, 1430, 1466, 1466, 1466,
1724      1336, 1336, 1336, 1470, 1470, 1470, 1347, 1347, 1347, 1314,
1725       857, 1340, 1340, 1340, 1467, 1341, 1313, 1310, 1342, 1343,
1726      1343, 1343, 1309, 1344, 1348, 1304, 1345, 1452, 1350, 1350,
1727      1350, 1303, 1351, 1302, 1301, 1352, 1465, 1353, 1353, 1353,
1728
1729      1477, 1477, 1477, 1300, 1478, 1299, 1298, 1479, 1356, 1356,
1730      1356, 1297, 1357, 1296, 1354, 1358, 1359, 1359, 1359, 1481,
1731      1481, 1481, 1294, 1482, 1293, 1292, 1483, 1484, 1484, 1484,
1732      1364, 1364, 1364, 1360, 1488, 1488, 1488, 1160, 1489, 1285,
1733      1280, 1490, 1278, 1277, 1485, 1273, 1271, 1365,  905,  905,
1734       905, 1368, 1368, 1368, 1270, 1369, 1268, 1266, 1370, 1371,
1735      1371, 1371, 1265, 1493, 1493, 1493,  907, 1494, 1264, 1261,
1736      1495, 1374, 1374, 1374, 1256, 1375, 1372, 1255, 1376, 1254,
1737      1379, 1379, 1379,  929,  929,  929, 1502, 1502, 1502, 1386,
1738      1386, 1386, 1252, 1387, 1250, 1249, 1388, 1491, 1380, 1246,
1739
1740      1245,  931, 1242, 1503, 1390, 1390, 1390, 1510, 1510, 1510,
1741      1395, 1395, 1395, 1513, 1513, 1513, 1240, 1514, 1239, 1238,
1742      1515, 1237, 1391, 1236, 1230, 1511, 1229, 1396, 1226, 1216,
1743      1504, 1397, 1397, 1397, 1516, 1516, 1516, 1215, 1517, 1214,
1744      1213, 1518, 1212, 1209, 1500,  961,  961,  961, 1398,  969,
1745       969,  969, 1403, 1403, 1403, 1523, 1523, 1523, 1208, 1524,
1746      1207, 1200, 1525,  963, 1405, 1405, 1405,  971, 1197, 1404,
1747      1526, 1526, 1526, 1193, 1527, 1191, 1190, 1528, 1537, 1537,
1748      1537, 1406,  979,  979,  979,  987,  987,  987, 1413, 1413,
1749      1413, 1186, 1414, 1185, 1183, 1415, 1522,  993,  993,  993,
1750
1751       981, 1182, 1181,  989, 1000, 1000, 1000, 1180, 1520, 1419,
1752      1419, 1419, 1179, 1420, 1177,  995, 1421, 1422, 1422, 1422,
1753      1176, 1171, 1002, 1428, 1428, 1428, 1542, 1542, 1542, 1170,
1754      1543, 1169, 1168, 1544, 1167, 1423,  803,  803,  803, 1165,
1755      1429, 1546, 1546, 1546, 1529, 1164, 1535, 1533, 1549, 1549,
1756      1549, 1435, 1435, 1435,  805, 1536, 1552, 1552, 1552, 1439,
1757      1439, 1439, 1440, 1440, 1440, 1442, 1442, 1442, 1554, 1554,
1758      1554, 1556, 1556, 1556, 1448, 1448, 1448, 1561, 1561, 1561,
1759      1163, 1453, 1453, 1453, 1563, 1563, 1563, 1162, 1564, 1155,
1760      1154, 1565, 1449, 1151, 1150, 1562, 1148, 1545, 1454,  855,
1761
1762       855,  855, 1466, 1466, 1466, 1577, 1577, 1577, 1147, 1578,
1763      1144, 1139, 1579, 1580, 1580, 1580, 1138,  857, 1133, 1467,
1764      1470, 1470, 1470, 1477, 1477, 1477, 1131, 1478, 1127, 1126,
1765      1479, 1481, 1481, 1481, 1122, 1482, 1120, 1112, 1483, 1484,
1766      1484, 1484, 1111, 1591, 1591, 1591, 1576, 1592, 1110, 1109,
1767      1593, 1488, 1488, 1488, 1107, 1489, 1485, 1105, 1490,  905,
1768       905,  905, 1493, 1493, 1493, 1104, 1494, 1103, 1099, 1495,
1769      1602, 1602, 1602, 1502, 1502, 1502, 1098,  907, 1605, 1605,
1770      1605, 1097, 1606, 1096, 1094, 1607, 1093, 1092, 1603, 1091,
1771      1503, 1510, 1510, 1510, 1513, 1513, 1513, 1090, 1514, 1089,
1772
1773      1083, 1515, 1082, 1516, 1516, 1516, 1081, 1517, 1080, 1511,
1774      1518,  961,  961,  961,  969,  969,  969, 1523, 1523, 1523,
1775      1596, 1524, 1078, 1077, 1525, 1074, 1526, 1526, 1526,  963,
1776      1527, 1073,  971, 1528,  979,  979,  979, 1622, 1622, 1622,
1777       987,  987,  987,  993,  993,  993, 1629, 1629, 1629, 1537,
1778      1537, 1537,  981, 1072, 1623, 1631, 1631, 1631,  989, 1071,
1779      1618,  995, 1070, 1069, 1630, 1634, 1634, 1634, 1621,  803,
1780       803,  803, 1068,  790, 1542, 1542, 1542, 1620, 1543, 1067,
1781      1066, 1544, 1546, 1546, 1546, 1063, 1061,  805, 1636, 1636,
1782      1636, 1549, 1549, 1549, 1638, 1638, 1638, 1639, 1639, 1639,
1783
1784      1628, 1058, 1626, 1552, 1552, 1552, 1554, 1554, 1554, 1556,
1785      1556, 1556, 1643, 1643, 1643, 1561, 1561, 1561, 1055, 1563,
1786      1563, 1563, 1046, 1564, 1044, 1635, 1565, 1039, 1038, 1644,
1787       855,  855,  855, 1562, 1577, 1577, 1577, 1037, 1578, 1036,
1788      1035, 1579, 1580, 1580, 1580, 1591, 1591, 1591,  857, 1592,
1789      1034, 1033, 1593, 1669, 1669, 1669, 1602, 1602, 1602, 1676,
1790      1676, 1676, 1605, 1605, 1605, 1030, 1606, 1029, 1028, 1607,
1791      1027, 1670, 1026, 1025, 1603, 1024, 1677, 1687, 1687, 1687,
1792      1689, 1689, 1689, 1691, 1691, 1691, 1023, 1022, 1656,  969,
1793       969,  969,  979,  979,  979, 1622, 1622, 1622, 1690, 1020,
1794
1795      1692, 1019, 1018, 1678, 1695, 1695, 1695,  971, 1696, 1017,
1796       981, 1697, 1623, 1698, 1698, 1698, 1701, 1701, 1701, 1703,
1797      1703, 1703,  993,  993,  993, 1629, 1629, 1629, 1016, 1015,
1798      1699, 1631, 1631, 1631, 1702, 1634, 1634, 1634, 1014,  790,
1799       995, 1008, 1004, 1630,  992,  991, 1693,  986,  985,  790,
1800      1694, 1708, 1708, 1708, 1636, 1636, 1636, 1638, 1638, 1638,
1801      1639, 1639, 1639, 1643, 1643, 1643, 1714, 1714, 1714, 1709,
1802      1715,  984,  983, 1716,  855,  855,  855, 1734, 1734, 1734,
1803      1644, 1739, 1739, 1739,  965, 1704, 1669, 1669, 1669,  953,
1804      1705,  939,  857,  938, 1735, 1744, 1744, 1744, 1740, 1676,
1805
1806      1676, 1676,  937,  933, 1670,  925, 1747, 1747, 1747,  920,
1807      1748,  919, 1745, 1749,  918,  912, 1677, 1755, 1755, 1755,
1808      1687, 1687, 1687, 1689, 1689, 1689, 1691, 1691, 1691,  909,
1809       904, 1728,  903,  902, 1756, 1759, 1759, 1759,  901, 1760,
1810       900, 1690, 1761, 1692, 1762, 1762, 1762,  979,  979,  979,
1811      1695, 1695, 1695,  899, 1696,  893,  886, 1697, 1698, 1698,
1812      1698,  881, 1763,  880,  876,  981, 1765, 1765, 1765,  875,
1813      1766,  874,  873, 1767,  872, 1699, 1768, 1768, 1768, 1701,
1814      1701, 1701, 1703, 1703, 1703, 1770, 1770, 1770, 1708, 1708,
1815      1708,  871,  870, 1769, 1841, 1841, 1841, 1702, 1778, 1778,
1816
1817      1778,  869,  868, 1771,  862,  854, 1709,  855,  855,  855,
1818       853, 1764, 1714, 1714, 1714, 1779, 1715,  852,  851, 1716,
1819      1798, 1798, 1798,  846,  843,  857, 1734, 1734, 1734, 1800,
1820      1800, 1800,  837, 1801,  832,  831, 1802, 1799, 1739, 1739,
1821      1739,  827,  826, 1735, 1806, 1806, 1806,  825, 1807,  824,
1822       823, 1808, 1810, 1810, 1810, 1740, 1744, 1744, 1744, 1813,
1823      1813, 1813,  821, 1814, 1795,  820, 1815,  819,  818, 1811,
1824      1816, 1816, 1816, 1745, 1747, 1747, 1747,  817, 1748,  816,
1825       815, 1749, 1755, 1755, 1755,  814,  813, 1817, 1821, 1821,
1826      1821,  812, 1822,  811,  810, 1823, 1824, 1824, 1824, 1756,
1827
1828      1826, 1826, 1826, 1759, 1759, 1759,  809, 1760,  802,  801,
1829      1761,  800,  799, 1825, 1762, 1762, 1762, 1827,  979,  979,
1830       979, 1765, 1765, 1765,  798, 1766,  797,  796, 1767, 1768,
1831      1768, 1768, 1763, 1835, 1835, 1835,  981, 1836,  793,  791,
1832      1837, 1770, 1770, 1770,  790,  788, 1769, 1778, 1778, 1778,
1833      1844, 1844, 1844,  786, 1845,  782,  778, 1846,  776, 1771,
1834       855,  855,  855,  775, 1779, 1861, 1861, 1861, 1862, 1862,
1835      1862, 1798, 1798, 1798,  774, 1865, 1865, 1865,  857, 1866,
1836       772, 1834, 1867,  771,  770, 1863,  769,  768, 1799, 1800,
1837      1800, 1800,  766, 1801,  765,  764, 1802, 1806, 1806, 1806,
1838
1839       763, 1807,  759,  758, 1808, 1810, 1810, 1810,  756, 1860,
1840       755,  754, 1864, 1872, 1872, 1872,  753, 1873,  752,  751,
1841      1874,  749, 1811, 1813, 1813, 1813,  748, 1814,  747,  746,
1842      1815, 1816, 1816, 1816, 1876, 1876, 1876,  744, 1877,  743,
1843       742, 1878, 1880, 1880, 1880, 1821, 1821, 1821, 1817, 1822,
1844       739,  738, 1823, 1824, 1824, 1824, 1883, 1883, 1883, 1881,
1845      1884,  734,  733, 1885, 1826, 1826, 1826, 1886, 1886, 1886,
1846      1825, 1887,  731,  730, 1888,  979,  979,  979, 1835, 1835,
1847      1835, 1827, 1836,  729,  728, 1837, 1898, 1898, 1898, 1841,
1848      1841, 1841,  725,  981, 1844, 1844, 1844,  724, 1845,  723,
1849
1850       722, 1846,  720, 1899, 1160, 1906, 1906, 1906,  855,  855,
1851       855, 1861, 1861, 1861, 1862, 1862, 1862, 1880, 1880, 1880,
1852       719,  718, 1907,  717, 1895,  716,  857,  715, 1917, 1917,
1853      1917, 1863, 1918,  714, 1881, 1919, 1865, 1865, 1865,  711,
1854      1866,  708,  707, 1867, 1872, 1872, 1872,  706, 1873,  704,
1855       703, 1874, 1876, 1876, 1876, 1916, 1877,  698,  695, 1878,
1856      1927, 1927, 1927,  693, 1928,  692,  691, 1929, 1883, 1883,
1857      1883,  690, 1884,  689,  687, 1885, 1886, 1886, 1886,  684,
1858      1887,  682,  681, 1888, 1945, 1945, 1945, 1948, 1948, 1948,
1859      1898, 1898, 1898, 1950, 1950, 1950,  680, 1951,  678,  676,
1860
1861      1952,  675, 1946,  674, 1949, 1160,  673, 1899, 1160,  670,
1862       669, 1160, 1953, 1953, 1953, 1954, 1954, 1954, 1906, 1906,
1863      1906, 1959, 1959, 1959,  668, 1960,  665,  662, 1961,  855,
1864       855,  855, 1917, 1917, 1917, 1907, 1918,  660,  657, 1919,
1865      1972, 1972, 1972, 1975, 1975, 1975,  655,  857, 1977, 1977,
1866      1977, 1927, 1927, 1927,  649, 1928,  648, 1973, 1929,  645,
1867      1976, 1979, 1979, 1979,  644, 1978, 1945, 1945, 1945, 1948,
1868      1948, 1948, 1994, 1994, 1994,  643, 1995,  642, 1980, 1996,
1869       640, 1950, 1950, 1950, 1946, 1951, 1949, 1160, 1952,  639,
1870      1160,  638, 1968, 1953, 1953, 1953, 1954, 1954, 1954, 1160,
1871
1872      1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,  637,
1873       636, 1158, 2009, 2009, 2009,  635, 1158, 1158, 1158, 1160,
1874      1158, 1959, 1959, 1959,  630, 1960,  627,  629, 1961,  624,
1875      2010,  623,  621,  486,  618,  616,  614, 1972, 1972, 1972,
1876      1975, 1975, 1975, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1877      1158, 1158, 1158, 1158, 1973,  612, 1158, 1976, 2292,  609,
1878       608, 1158, 1158, 1158, 1160, 1158, 2014, 2014, 2014,  607,
1879      2015,  606,  604, 2016, 2018, 2018, 2018,  603, 2019,  602,
1880       601, 2020, 1977, 1977, 1977, 1979, 1979, 1979, 1158, 1158,
1881      2021, 2021, 2021,  600, 2022,  598,  596, 2023,  595, 1978,
1882
1883       593,  592, 1980, 2024, 2024, 2024,  589, 2025,  588,  586,
1884      2026, 1994, 1994, 1994,  484, 1995, 2292,  581, 1996,  579,
1885       575, 2009, 2009, 2009, 2076, 2076, 2076,  574,  573, 1160,
1886      1158, 1158, 1158, 1158, 1158, 2045, 1158, 1158, 1158, 2010,
1887       571, 1158, 1160, 1161,  569,  568, 1158, 1158, 1158, 1160,
1888      1158, 2014, 2014, 2014,  566, 2015,  562,  561, 2016, 2018,
1889      2018, 2018,  560, 2019,  559,  558, 2020, 2079, 2079, 2079,
1890      2081, 2081, 2081, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1891      1158, 1158, 1158, 2045, 2080,  557, 1158, 2082,  555,  550,
1892       547, 1158, 1158, 1158, 1160, 1158, 2021, 2021, 2021,  546,
1893
1894      2022,  545,  542, 2023, 2024, 2024, 2024,  540, 2025,  538,
1895       537, 2026, 2083, 2083, 2083, 2091, 2091, 2091, 1158, 1158,
1896      2103, 2103, 2103, 2076, 2076, 2076, 2079, 2079, 2079, 2084,
1897       536,  535, 2092, 2107, 2107, 2107,  534, 2108,  790,  532,
1898      2109, 1160, 2292, 2080, 2081, 2081, 2081, 2110, 2110, 2110,
1899       489, 2111,  527,  522, 2112,  521, 2083, 2083, 2083,  519,
1900       517, 2082, 2113, 2113, 2113,  516, 2114,  515,  513, 2115,
1901       510,  506, 1290, 2084, 2091, 2091, 2091, 2122, 2122, 2122,
1902       505, 2123,  503,  502, 2124, 2103, 2103, 2103, 2107, 2107,
1903      2107, 2092, 2108,  499,  498, 2109,  497, 2110, 2110, 2110,
1904
1905       495, 2111,  494,  790, 2112, 2113, 2113, 2113, 2292, 2114,
1906       488,  477, 2115,  475, 2122, 2122, 2122,  473, 2123,  467,
1907      2135, 2124, 2246, 2246, 2246, 2246, 2246, 2246,  466, 2257,
1908       467,  466, 2258, 2290, 2290, 2290, 2290, 2290, 2290,  465,
1909       790,  464, 2292,  790, 2292, 2292, 2292, 2292, 2292, 2292,
1910      2292, 2291, 2292, 2292, 2291,  186,  186,  186,  186,  186,
1911       186,  186,  186,  186,  187,  187,  187,  187,  187,  187,
1912       187,  187,  187,  192,  192,  192,  192,  192,  192,  192,
1913       192,  192,  195,  195,  195,  195,  195,  195,  195,  195,
1914       195,  198,  198,  198,  198,  198,  198,  198,  198,  198,
1915
1916       201,  201,  201,  201,  201,  201,  201,  201,  201,  208,
1917       208,  208,  208,  208,  208,  208,  208,  208,  216,  216,
1918       216,  216,  216,  216,  216,  216,  216,  220,  220,  220,
1919       220,  220,  220,  220,  220,  220,  231,  231,  231,  231,
1920       231,  231,  231,  231,  231,  242,  242,  242,  242,  242,
1921       242,  242,  242,  242,  249,  249,  249,  249,  249,  249,
1922       249,  249,  249,  257,  257,  257,  257,  257,  257,  257,
1923       257,  257,  263,  263,  263,  263,  263,  263,  263,  263,
1924       263,  269,  269,  269,  269,  269,  269,  269,  269,  269,
1925       274,  274,  274,  274,  274,  274,  274,  274,  274,  291,
1926
1927       291,  291,  291,  291,  291,  291,  291,  291,  299,  299,
1928       299,  299,  299,  299,  299,  299,  299,  317,  317,  317,
1929       317,  317,  317,  317,  317,  317,  333,  333,  333,  333,
1930       333,  333,  333,  333,  333,  339,  339,  339,  339,  339,
1931       339,  339,  339,  339,  344,  344,  344,  344,  344,  344,
1932       344,  344,  344,  350,  350,  350,  350,  350,  350,  350,
1933       350,  350,  357,  357,  357,  357,  357,  357,  357,  357,
1934       357,  364,  364,  364,  364,  364,  364,  364,  364,  364,
1935       369,  369,  369,  369,  369,  369,  369,  369,  369,  377,
1936       377,  377,  377,  377,  377,  377,  377,  377,  383,  383,
1937
1938       383,  383,  383,  383,  383,  383,  383,  390,  390,  390,
1939       390,  390,  390,  390,  390,  390,  395,  395,  395,  395,
1940       395,  395,  395,  395,  395,  401,  401,  401,  401,  401,
1941       401,  401,  401,  401,  407,  407,  407,  407,  407,  407,
1942       407,  407,  407,  414,  414,  414,  414,  414,  414,  414,
1943       414,  414,  421,  421,  421,  421,  421,  421,  421,  421,
1944       421,  429,  429,  429,  429,  429,  429,  429,  429,  429,
1945       433,  433,  433,  433,  433,  433,  433,  433,  433,  439,
1946       439,  439,  439,  439,  439,  439,  439,  439,  443,  443,
1947       443,  443,  443,  443,  443,  443,  443,  451,  451,  451,
1948
1949       451,  451,  451,  451,  451,  451,  456,  456,  456,  456,
1950       456,  456,  456,  456,  456,  476,  476,  476, 2292, 2292,
1951      2292,  476,  496,  496,  496, 2292, 2292, 2292,  496,  504,
1952       504,  504, 2292, 2292, 2292,  504,  514,  514,  514, 2292,
1953      2292, 2292,  514,  520,  520,  520, 2292, 2292, 2292,  520,
1954       533,  533,  533, 2292, 2292, 2292,  533,  541,  541,  541,
1955      2292, 2292, 2292,  541,  556,  556,  556, 2292, 2292, 2292,
1956       556,  567,  567,  567, 2292, 2292, 2292,  567,  572,  572,
1957       572, 2292, 2292, 2292,  572,  580,  580,  580, 2292, 2292,
1958      2292,  580,  587,  587,  587, 2292, 2292, 2292,  587,  594,
1959
1960       594,  594, 2292, 2292, 2292,  594,  599,  599,  599, 2292,
1961      2292, 2292,  599,  605,  605,  605, 2292, 2292, 2292,  605,
1962       613,  613,  613, 2292, 2292, 2292,  613,  617,  617,  617,
1963      2292, 2292, 2292,  617,  622,  622,  622, 2292, 2292, 2292,
1964       622,  626,  626,  626,  626,  626,  626,  626, 2292,  626,
1965       476,  476,  476, 2292, 2292, 2292,  476,  641, 2292, 2292,
1966      2292,  641,  496,  496,  496, 2292, 2292, 2292,  496,  667,
1967      2292, 2292, 2292,  667,  504,  504,  504, 2292, 2292, 2292,
1968       504,  677, 2292, 2292, 2292,  677,  514,  514,  514, 2292,
1969      2292, 2292,  514,  683, 2292, 2292, 2292,  683,  520,  520,
1970
1971       520, 2292, 2292, 2292,  520,  688, 2292, 2292, 2292,  688,
1972       705, 2292, 2292, 2292,  705,  541,  541,  541, 2292, 2292,
1973      2292,  541,  721, 2292, 2292, 2292,  721,  556,  556,  556,
1974      2292, 2292, 2292,  556,  732, 2292, 2292, 2292,  732,  567,
1975       567,  567, 2292, 2292, 2292,  567,  737, 2292, 2292, 2292,
1976       737,  572,  572,  572, 2292, 2292, 2292,  572,  745, 2292,
1977      2292, 2292,  745,  580,  580,  580, 2292, 2292, 2292,  580,
1978       750, 2292, 2292, 2292,  750,  587,  587,  587, 2292, 2292,
1979      2292,  587,  757, 2292, 2292, 2292,  757,  594,  594,  594,
1980      2292, 2292, 2292,  594,  762, 2292, 2292, 2292,  762,  599,
1981
1982       599,  599, 2292, 2292, 2292,  599,  767, 2292, 2292, 2292,
1983       767,  605,  605,  605, 2292, 2292, 2292,  605,  773, 2292,
1984      2292, 2292,  773,  613,  613,  613, 2292, 2292, 2292,  613,
1985       777, 2292, 2292, 2292,  777,  617,  617,  617, 2292, 2292,
1986      2292,  617,  781, 2292, 2292, 2292,  781,  622,  622,  622,
1987      2292, 2292, 2292,  622,  787, 2292, 2292, 2292,  787,  789,
1988       789,  789,  789,  789,  789,  789,  789,  789,  795, 2292,
1989      2292, 2292, 2292,  795,  476,  476,  476, 2292, 2292, 2292,
1990       476,  804,  804,  804,  804, 2292, 2292,  804,  804,  496,
1991       496,  496, 2292, 2292, 2292,  496,  834,  834,  834,  834,
1992
1993      2292, 2292,  834,  834,  504,  504,  504, 2292, 2292, 2292,
1994       504,  848,  848,  848,  848, 2292, 2292,  848,  848,  514,
1995       514,  514, 2292, 2292, 2292,  514,  856,  856,  856,  856,
1996      2292, 2292,  856,  856,  520,  520,  520, 2292, 2292, 2292,
1997       520,  864,  864,  864,  864, 2292, 2292,  864,  864,  533,
1998       533,  533, 2292, 2292, 2292,  533,  883,  883,  883,  883,
1999      2292, 2292,  883,  883,  541,  541,  541, 2292, 2292, 2292,
2000       541,  906,  906,  906,  906, 2292, 2292,  906,  906,  556,
2001       556,  556, 2292, 2292, 2292,  556,  922,  922,  922,  922,
2002      2292, 2292,  922,  922,  567,  567,  567, 2292, 2292, 2292,
2003
2004       567,  930,  930,  930,  930, 2292, 2292,  930,  930,  572,
2005       572,  572, 2292, 2292, 2292,  572,  941,  941,  941,  941,
2006      2292, 2292,  941,  941,  580,  580,  580,  580, 2292,  580,
2007      2292,  580,  950,  950,  950,  950, 2292, 2292,  950,  950,
2008       587,  587,  587,  587, 2292,  587, 2292,  587,  962,  962,
2009       962,  962, 2292, 2292,  962,  962,  594,  594,  594, 2292,
2010      2292, 2292,  594,  970,  970,  970,  970, 2292, 2292,  970,
2011       970,  599,  599,  599,  599, 2292,  599, 2292,  599,  980,
2012       980,  980,  980, 2292, 2292,  980,  980,  605,  605,  605,
2013      2292, 2292, 2292,  605,  988,  988,  988,  988, 2292, 2292,
2014
2015       988,  988,  613,  613,  613, 2292, 2292, 2292,  613,  994,
2016       994,  994,  994, 2292, 2292,  994,  994, 1001, 1001, 1001,
2017      1001, 2292, 2292, 1001, 1001,  622,  622,  622, 2292, 2292,
2018      2292,  622, 1010, 1010, 1010, 1010, 2292, 2292, 1010, 1010,
2019       789,  789,  789,  789,  789,  789,  789,  789,  789,  795,
2020      2292,  795, 2292, 2292,  795,  476,  476,  476, 2292, 2292,
2021      2292,  476,  804,  804,  804,  804, 2292, 2292,  804,  804,
2022       496,  496,  496,  496, 2292,  496, 2292,  496,  834,  834,
2023       834,  834, 2292, 2292,  834,  834,  504,  504,  504, 2292,
2024      2292, 2292,  504,  848,  848,  848,  848, 2292, 2292,  848,
2025
2026       848,  514,  514,  514, 2292, 2292, 2292,  514,  856,  856,
2027       856,  856, 2292, 2292,  856,  856,  520,  520,  520, 2292,
2028      2292, 2292,  520,  864,  864,  864,  864, 2292, 2292,  864,
2029       864,  533,  533,  533, 2292, 2292, 2292,  533,  883,  883,
2030       883,  883, 2292, 2292,  883,  883,  541,  541,  541, 2292,
2031      2292, 2292,  541,  906,  906,  906,  906, 2292, 2292,  906,
2032       906,  556,  556,  556, 2292, 2292, 2292,  556,  922,  922,
2033       922,  922, 2292, 2292,  922,  922,  567,  567,  567, 2292,
2034      2292, 2292,  567,  930,  930,  930,  930, 2292, 2292,  930,
2035       930,  572,  572,  572, 2292, 2292, 2292,  572,  941,  941,
2036
2037       941,  941, 2292, 2292,  941,  941,  580,  580,  580, 2292,
2038      2292, 2292,  580,  950,  950,  950,  950, 2292, 2292,  950,
2039       950,  587,  587,  587, 2292, 2292, 2292,  587,  962,  962,
2040       962,  962, 2292, 2292,  962,  962,  594,  594,  594, 2292,
2041      2292, 2292,  594,  970,  970,  970,  970, 2292, 2292,  970,
2042       970,  599,  599,  599, 2292, 2292, 2292,  599,  980,  980,
2043       980,  980, 2292, 2292,  980,  980,  605,  605,  605, 2292,
2044      2292, 2292,  605,  988,  988,  988,  988, 2292, 2292,  988,
2045       988,  613,  613,  613, 2292, 2292, 2292,  613,  994,  994,
2046       994,  994, 2292, 2292,  994,  994, 1001, 1001, 1001, 1001,
2047
2048      2292, 2292, 1001, 1001,  622,  622,  622, 2292, 2292, 2292,
2049       622, 1010, 1010, 1010, 1010, 2292, 2292, 1010, 1010,  789,
2050       789,  789,  789,  789,  789,  789,  789,  789, 1158, 1158,
2051      1158, 1158, 1158, 1158, 1158, 1158, 1158,  476,  476,  476,
2052      2292, 2292, 2292,  476,  804,  804,  804,  804, 2292, 2292,
2053       804,  804,  496,  496,  496, 2292, 2292, 2292,  496,  834,
2054       834,  834,  834, 2292, 2292,  834,  834,  504,  504,  504,
2055      2292, 2292, 2292,  504,  848,  848,  848,  848, 2292, 2292,
2056       848,  848,  514,  514,  514, 2292, 2292, 2292,  514,  856,
2057       856,  856,  856, 2292, 2292,  856,  856,  520,  520,  520,
2058
2059      2292, 2292, 2292,  520,  533,  533,  533, 2292, 2292, 2292,
2060       533,  883,  883,  883,  883, 2292, 2292,  883,  883,  541,
2061       541,  541, 2292, 2292, 2292,  541,  906,  906,  906,  906,
2062      2292, 2292,  906,  906,  556,  556,  556, 2292, 2292, 2292,
2063       556,  922,  922,  922,  922, 2292, 2292,  922,  922,  567,
2064       567,  567, 2292, 2292, 2292,  567,  930,  930,  930,  930,
2065      2292, 2292,  930,  930,  572,  572,  572, 2292, 2292, 2292,
2066       572,  941,  941,  941,  941, 2292, 2292,  941,  941,  580,
2067       580,  580, 2292, 2292, 2292,  580,  950,  950,  950,  950,
2068      2292, 2292,  950,  950,  587,  587,  587, 2292, 2292, 2292,
2069
2070       587,  962,  962,  962,  962, 2292, 2292,  962,  962,  594,
2071       594,  594, 2292, 2292, 2292,  594,  970,  970,  970,  970,
2072      2292, 2292,  970,  970,  599,  599,  599, 2292, 2292, 2292,
2073       599,  980,  980,  980,  980, 2292, 2292,  980,  980,  605,
2074       605,  605, 2292, 2292, 2292,  605,  988,  988,  988,  988,
2075      2292, 2292,  988,  988,  613,  613,  613,  613, 2292,  613,
2076      2292,  613,  994,  994,  994,  994, 2292, 2292,  994,  994,
2077      1001, 1001, 1001, 1001, 2292, 2292, 1001, 1001,  622,  622,
2078       622,  622, 2292,  622, 2292,  622, 1010, 1010, 1010, 1010,
2079      2292, 2292, 1010, 1010,  789,  789,  789,  789,  789,  789,
2080
2081       789,  789,  789, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
2082      1158, 1158,  476,  476,  476, 2292, 2292, 2292,  476,  804,
2083       804,  804,  804, 2292, 2292,  804,  804,  496,  496,  496,
2084      2292, 2292, 2292,  496,  834,  834,  834,  834, 2292, 2292,
2085       834,  834,  504,  504,  504, 2292, 2292, 2292,  504,  848,
2086       848,  848,  848, 2292, 2292,  848,  848,  514,  514,  514,
2087      2292, 2292, 2292,  514,  856,  856,  856,  856, 2292, 2292,
2088       856,  856,  520,  520,  520, 2292, 2292, 2292,  520,  533,
2089       533,  533, 2292, 2292, 2292,  533,  883,  883,  883,  883,
2090      2292, 2292,  883,  883,  541,  541,  541, 2292, 2292, 2292,
2091
2092       541,  906,  906,  906,  906, 2292, 2292,  906,  906,  556,
2093       556,  556, 2292, 2292, 2292,  556,  922,  922,  922,  922,
2094      2292, 2292,  922,  922,  567,  567,  567, 2292, 2292, 2292,
2095       567,  930,  930,  930,  930, 2292, 2292,  930,  930,  572,
2096       572,  572, 2292, 2292, 2292,  572,  941,  941,  941,  941,
2097      2292, 2292,  941,  941,  580,  580,  580, 2292, 2292, 2292,
2098       580,  950,  950,  950,  950, 2292, 2292,  950,  950,  587,
2099       587,  587,  587, 2292,  587, 2292,  587,  962,  962,  962,
2100       962, 2292, 2292,  962,  962,  594,  594,  594, 2292, 2292,
2101      2292,  594,  970,  970,  970,  970, 2292, 2292,  970,  970,
2102
2103       599,  599,  599,  599, 2292,  599, 2292,  599,  980,  980,
2104       980,  980, 2292, 2292,  980,  980,  605,  605,  605, 2292,
2105      2292, 2292,  605,  988,  988,  988,  988, 2292, 2292,  988,
2106       988,  994,  994,  994,  994, 2292, 2292,  994,  994, 1001,
2107      1001, 1001, 1001, 2292, 2292, 1001, 1001, 1010, 1010, 1010,
2108      1010, 2292, 2292, 1010, 1010,  789,  789,  789,  789,  789,
2109       789,  789,  789,  789, 1158, 1158, 1158, 1158, 1158, 1158,
2110      1158, 1158, 1158,  476,  476,  476,  476, 2292,  476, 2292,
2111       476,  804,  804,  804,  804, 2292, 2292,  804,  804,  496,
2112       496,  496, 2292, 2292, 2292,  496,  834,  834,  834,  834,
2113
2114      2292, 2292,  834,  834,  504,  504,  504, 2292, 2292, 2292,
2115       504,  848,  848,  848,  848, 2292, 2292,  848,  848,  514,
2116       514,  514,  514, 2292,  514, 2292,  514,  856,  856,  856,
2117       856, 2292, 2292,  856,  856,  520,  520,  520,  520, 2292,
2118       520, 2292,  520,  533,  533,  533, 2292, 2292, 2292,  533,
2119       541,  541,  541, 2292, 2292, 2292,  541,  906,  906,  906,
2120       906, 2292, 2292,  906,  906,  556,  556,  556, 2292, 2292,
2121      2292,  556,  567,  567,  567, 2292, 2292, 2292,  567,  930,
2122       930,  930,  930, 2292, 2292,  930,  930,  572,  572,  572,
2123      2292, 2292, 2292,  572,  580,  580,  580, 2292, 2292, 2292,
2124
2125       580,  950,  950,  950,  950, 2292, 2292,  950,  950,  587,
2126       587,  587, 2292, 2292, 2292,  587,  962,  962,  962,  962,
2127      2292, 2292,  962,  962,  594,  594,  594, 2292, 2292, 2292,
2128       594,  970,  970,  970,  970, 2292, 2292,  970,  970,  980,
2129       980,  980,  980, 2292, 2292,  980,  980,  605,  605,  605,
2130      2292, 2292, 2292,  605,  988,  988,  988,  988, 2292, 2292,
2131       988,  988,  994,  994,  994,  994, 2292, 2292,  994,  994,
2132      1001, 1001, 1001, 1001, 2292, 2292, 1001, 1001,  789,  789,
2133       789,  789,  789,  789,  789,  789,  789, 1158, 1158, 1158,
2134      1158, 1158, 1158, 1158, 1158, 1158, 1997, 1997, 1997, 1997,
2135
2136      1997, 1997, 1997, 1997, 1997, 1998, 1998, 1998, 1998, 1998,
2137      1998, 1998, 1998, 1998, 2040, 2040, 2040, 2040, 2040, 2040,
2138      2040, 2040, 2040, 2043, 2043, 2043, 2043, 2043, 2043, 2043,
2139      2043, 2043, 2073, 2073, 2073, 2073, 2073, 2073, 2073, 2073,
2140      2073, 2075, 2075, 2075, 2075, 2075, 2075, 2075, 2075, 2075,
2141       185, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2142      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2143      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2144      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2145      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2146
2147      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2148      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
2149      2292
2150     } ;
2151
2152 static yyconst flex_int16_t yy_chk[7822] =
2153     {   0,
2154         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2155         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2156         4,   10,    0,    5,  251,    9,    6,  460,   10,    7,
2157         8,    8,    8,  190,   11,   13,   13,   12,   14,   14,
2158        13,   13,  460,   14,   14,  191,    8,   17,   17,  190,
2159        13,   15,   15,   14,   15,  194,   15,   16,   16, 1424,
2160        16,  191,   16,   18,   18, 1424,   15,   19,   19,   19,
2161       285,  194,   16,  251,   20,   20,   20,   23,   23,   23,
2162        24,   24,   24,   19,   25,   25,   25,  247,  212,   17,
2163        20,  247,  252,   23, 1427,  247,   24,  188,  188,  188,
2164
2165        25,  189,  189,  189,  212,   18,   21,   21,   21,   21,
2166        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2167        21,  285,   21,   21,   21,   21,   21,   26,   26,   26,
2168        27,   27,   27,  279, 1432,   28,   28,   28,   29,   29,
2169        29,  252,  279,   26,  212,  287,   27,  287,  217,   21,
2170        21,   28,  253, 1433,   29,   30,   30,   30,  193,  193,
2171       193,  214,  214,  214,  217,  221,  221,  221,  229,  229,
2172       229,   30,   21,   22,   22,   22,   22,   22,   22,   22,
2173        22,   22,   22,   22,   22,   22,   22,   22,  301,   22,
2174        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
2175
2176      1289,  253,   33,   33,   33,   34,   34,   34,  314,  281,
2177        31,  314,  368,   32,  310, 1289,   22,   22,   33,  368,
2178       232,   34,   35,   35,   35,   36,   36,   36,   37,   37,
2179        37,   38,   38,   38,  310,  225,  232,  301,   35,   22,
2180       447,   36,  447,  500,   37,  281,  302,   38,   39,   39,
2181        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
2182        39,   39,   39,  282,   39,   39,   39,   39,   39,   45,
2183        45,   45,  225,  282,   46,   46,   46,  500,   47,   47,
2184        47, 1436,   41,   41,  225,   45,  425,   41,   42,   42,
2185        46,   39,   39,   42,   47,  302,  332,   41,  469,   39,
2186
2187       425,  469,   39,   42,  240,  240,  240,  332,   39,   40,
2188        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
2189        40,   40,   40,   40,   41,   40,   40,   40,   40,   40,
2190        42,   48,   48,   48,   49,   49,   49,  382,   50,   50,
2191        50,   51,   51,   51,  382,  243,  258,   48,  237,  265,
2192        49,  270,   40,   40,   50,  237,  265,   51, 1290, 1437,
2193        40,  243,  258,   40,  237,  265,  204,  270,  359,   40,
2194        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2195        43,   43,   43,   43,   43,  283,   43,   43,   43,   43,
2196        43,   52,   52,   52,   55,   55,   55, 1290, 1441,   56,
2197
2198        56,   56,   59,   59,   59, 1013,  204,   52,  316,  292,
2199        55,  283,  204,   43,   43,   56,  204,  359,   59,  316,
2200       316,  204,   43, 1013,   43,  292,  283,   43,  250,  250,
2201       250,  386,  360,   43,   44,   44,   44,   44,   44,   44,
2202        44,   44,   44,   44,   44,   44,   44,   44,   44,  486,
2203        44,   44,   44,   44,   44,   60,   60,   60,   61,   61,
2204        61,  356,  486,   62,   62,   62,   63,   63,   63, 1444,
2205       724,   60,  356,  307,   61,  724,  386,   44,   44,   62,
2206       319,  360,   63,  255,  255,  255,   44,  319,   44,  307,
2207      1446,   44,  264,  264,  264, 1291,  319,   44,   53,   53,
2208
2209        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
2210        53,   53,   53,  224,   53,   53,   53,   53,   53,   64,
2211        64,   64,   65,   65,   65, 1447, 1291,   66,   66,   66,
2212        67,   67,   67,  410,  482,   64, 1450,  482,   65,  324,
2213       224,   53,   53,   66,  340,  351,   67, 1323,   53,  267,
2214       267,  267,  224,   53, 1323,  324,  224,  275,  275,  275,
2215       340,  351,   53,   54,   54,   54,   54,   54,   54,   54,
2216        54,   54,   54,   54,   54,   54,   54,   54,  410,   54,
2217        54,   54,   54,   54,   68,   68,   68,   69,   69,   69,
2218      1451,  528,   70,   70,   70,   71,   71,   71,  488,  490,
2219
2220        68,  488,  490,   69,  528, 1327,   54,   54,   70,  365,
2221       335,   71, 1327,   54,  289,  289,  289,  335,   54,  300,
2222       300,  300, 1455, 1456,  284,  365,  335,   54,   57,   57,
2223        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2224        57,   57,   57,  530,   57,   57,   57,   57,   57,   72,
2225        72,   72,   73,   73,   73, 1457,  530,   74,   74,   74,
2226        75,   75,   75, 1458,  378,   72,  284,  535,   73,  284,
2227       535,   57,   57,   74, 1459,  284,   75,  304,  304,  304,
2228       378,  371,   57,  318,  318,  318,  321,  321,  321, 1460,
2229        57,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2230
2231        58,   58,   58,   58,   58,   58,  531,   58,   58,   58,
2232        58,   58,   76,   76,   76,   77,   77,   77,  628,  531,
2233        78,   78,   78,   79,   79,   79,  371,  391,   76,  792,
2234       371,   77,  628,  792,   58,   58,   78, 1461,  402,   79,
2235        80,   80,   80,  391,  415,   58,   81,   81,   81,   82,
2236        82,   82, 1425,   58,  402, 1462,   80,   83,   83,   83,
2237       415, 1463,   81, 1464,  430,   82,   84,   84,   84,   85,
2238        85,   85, 1469,   83,   86,   86,   86,   87,   87,   87,
2239       430, 1425,   84, 1471,  346,   85,   88,   88,   88,  817,
2240        86,  346, 1426,   87,  334,  334,  334,  337,  337,  337,
2241
2242       346,  817,   88,   89,   89,   89,   89,   89,   89,   89,
2243        89,   89,   89,   89,   89,   89,   89,   89,  620,   89,
2244        89,   89,   89,   89,   91,   91,   91,   92,   92,   92,
2245       826,  620,   93,   93,   93, 1426,   94,   94,   94, 1157,
2246        91, 1472,  826,   92,  485,  440,   89,   89,   93,   89,
2247       485,   89,   94,  345,  345,  345,  485,   89,  348,  348,
2248       348,  440, 1157,   89, 1475, 1476,   89,   90,   90,   90,
2249        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2250        90,   90,  851,   90,   90,   90,   90,   90,   95,   95,
2251        95,   96,   96,   96,  851, 1480,   97,   97,   97, 1473,
2252
2253        98,   98,   98, 1486,   95, 1473, 1487,   96,  491,  452,
2254        90,   90,   97,   90,  491,   90,   98,  358,  358,  358,
2255       491,   90,  362,  362,  362,  452, 1492,   90, 1496, 1497,
2256        90,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2257        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2258        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2259        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2260        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2261        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2262        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2263
2264        99,  101,  101,  101,  102,  102,  102,  370,  370,  370,
2265       375,  375,  375,  384,  384,  384, 1498,  101, 1499, 1501,
2266       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2267       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2268       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2269       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2270       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2271       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2272       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2273       103,  105,  105,  105,  106,  106,  106,  388,  388,  388,
2274
2275       396,  396,  396,  399,  399,  399, 1504,  105,  423, 1505,
2276       106,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2277       107,  107,  107,  107,  107,  107, 1508,  107,  107,  107,
2278       107,  107,  109,  109,  109,  110,  110,  110, 1509, 1512,
2279       113,  113,  113,  423,  114,  114,  114, 1474,  109, 1519,
2280      1521,  110,  493, 1474,  107,  107,  113,  423,  493,  107,
2281       114,  408,  408,  408,  493,  107,  108,  108,  108,  108,
2282       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
2283       108, 1531,  108,  108,  108,  108,  108,  115,  115,  115,
2284       116,  116,  116, 1532, 1534,  117,  117,  117, 1506,  118,
2285
2286       118,  118, 1507,  115, 1506, 1540,  116,  494, 1507,  108,
2287       108,  117, 1548,  494,  108,  118,  412,  412,  412,  494,
2288       108,  111,  111,  111,  111,  111,  111,  111,  111,  111,
2289       111,  111,  111,  111,  111,  111, 1553,  111,  111,  111,
2290       111,  111,  119,  119,  119,  120,  120,  120, 1555, 1540,
2291       123,  123,  123,  124,  124,  124,  397, 1557,  119, 1560,
2292       435,  120, 1566,  397,  111,  111,  123,  435,  111,  124,
2293      1567, 1568,  397, 1539, 1569,  111,  435,  111,  422,  422,
2294       422,  427,  427,  427,  111,  112,  112,  112,  112,  112,
2295       112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
2296
2297      1570,  112,  112,  112,  112,  112,  125,  125,  125,  126,
2298       126,  126, 1571, 1539,  127,  127,  127,  128,  128,  128,
2299      1572, 1573,  125, 1574,  458,  126, 1575, 1581,  112,  112,
2300       127,  458,  112,  128,  434,  434,  434, 1582, 1583,  112,
2301       458,  112,  437,  437,  437,  444,  444,  444,  112,  121,
2302       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
2303       121,  121,  121,  121, 1584,  121,  121,  121,  121,  121,
2304       129,  129,  129,  130,  130,  130, 1585, 1586,  133,  133,
2305       133,  134,  134,  134,  512, 1587,  129, 1588, 1589,  130,
2306       512, 1590,  121,  121,  133, 1594,  512,  134,  121,  449,
2307
2308       449,  449,  457,  457,  457,  459,  459,  459,  468,  468,
2309       468, 1595,  121,  122,  122,  122,  122,  122,  122,  122,
2310       122,  122,  122,  122,  122,  122,  122,  122, 1597,  122,
2311       122,  122,  122,  122,  135,  135,  135,  136,  136,  136,
2312      1598, 1599,  137,  137,  137,  138,  138,  138, 1600, 1601,
2313       135, 1608, 1609,  136, 1610, 1611,  122,  122,  137, 1612,
2314      1613,  138,  122, 1614,  468,  631,  631,  631, 1615,  631,
2315       643,  643,  643,  657,  657,  657,  122,  131,  131,  131,
2316       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2317       131,  131, 1617,  131,  131,  131,  131,  131,  139,  139,
2318
2319       139,  140,  140,  140, 1625, 1637,  143,  143,  143,  144,
2320       144,  144, 1640, 1641,  139, 1642, 1645,  140, 1646,  708,
2321       131,  131,  143, 1647, 1648,  144,  131, 1649,  708,  131,
2322      1650,  643, 1651, 1633,  657,  708,  690,  690,  690, 1632,
2323       131,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2324       132,  132,  132,  132,  132,  132, 1652,  132,  132,  132,
2325       132,  132,  147,  147,  147,  148,  148,  148, 1633, 1632,
2326       149,  149,  149,  150,  150,  150, 1653, 1654,  147, 1655,
2327      1657,  148, 1658, 1659,  132,  132,  149, 1660, 1662,  150,
2328       132, 1665, 1666,  132,  664,  664,  664,  690,  664, 1667,
2329
2330      1671,  664, 1672, 1673,  132,  141,  141,  141,  141,  141,
2331       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2332      1675,  141,  141,  141,  141,  141,  151,  151,  151,  152,
2333       152,  152, 1678, 1679,  153,  153,  153,  154,  154,  154,
2334      1680, 1681,  151, 1683, 1686,  152, 1688, 1710,  141,  141,
2335       153, 1705, 1706,  154,  141,  807,  807,  807, 1707,  141,
2336       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
2337       142,  142,  142,  142,  142, 1711,  142,  142,  142,  142,
2338       142,  157,  157,  157,  158,  158,  158, 1706, 1705,  159,
2339       159,  159,  160,  160,  160, 1712, 1715,  157, 1707, 1717,
2340
2341       158, 1718, 1716,  142,  142,  159, 1719, 1715,  160,  142,
2342       695,  695,  695, 1716,  142,  145,  145,  145,  145,  145,
2343       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2344      1720,  145,  145,  145,  145,  145,  161,  161,  161,  162,
2345       162,  162, 1721, 1722,  163,  163,  163,  164,  164,  164,
2346      1723, 1724,  161, 1725, 1726,  162, 1727, 1729,  145,  145,
2347       163, 1730, 1736,  164,  145, 1737, 1738,  145,  672,  672,
2348       672,  695,  672, 1741, 1743,  672, 1750, 1751,  145,  146,
2349       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2350       146,  146,  146,  146, 1752,  146,  146,  146,  146,  146,
2351
2352       167,  167,  167,  168,  168,  168, 1760, 1761,  171,  171,
2353       171,  172,  172,  172, 1760, 1761,  167, 1776, 1777,  168,
2354      1760, 1761,  146,  146,  171, 1780, 1781,  172,  146, 1782,
2355      1783,  146,  686,  686,  686, 1784,  686, 1785, 1786,  686,
2356      1773, 1787,  146,  155,  155,  155,  155,  155,  155,  155,
2357       155,  155,  155,  155,  155,  155,  155,  155, 1788,  155,
2358       155,  155,  155,  155,  173,  173,  173,  174,  174,  174,
2359      1790, 1791,  175,  175,  175,  176,  176,  176, 1772, 1773,
2360       173, 1792, 1793,  174, 1803, 1202,  155,  155,  175, 1804,
2361      1202,  176, 1805, 1202,  155, 1774,  155, 1202,  155,  822,
2362
2363       822,  822, 1027, 1027, 1027, 1772,  155,  156,  156,  156,
2364       156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
2365       156,  156, 1809,  156,  156,  156,  156,  156,  177,  177,
2366       177,  178,  178,  178, 1774, 1812,  181,  181,  181,  182,
2367       182,  182, 1818, 1820,  177, 1828, 1829,  178, 1830, 1831,
2368       156,  156,  181, 1832, 1833,  182,  276,  277,  156, 1842,
2369       156,  445,  156, 1029, 1029, 1029,  276,  277, 1838, 1843,
2370       156,  165,  165,  165,  165,  165,  165,  165,  165,  165,
2371       165,  165,  165,  165,  165,  165, 1847,  165,  165,  165,
2372       165,  165,  276,  277,  277, 1848,  445, 1849,  276, 1850,
2373
2374      1852,  276,  498,  498,  498, 1853,  277,  276,  506,  506,
2375       506, 1854,  445, 1838,  165,  165,  521,  521,  521,  498,
2376       702,  702,  702, 1855,  702,  506, 1856,  702,  710,  710,
2377       710, 1857,  710,  521, 1858,  710, 1859,  165,  166,  166,
2378       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
2379       166,  166,  166, 1864,  166,  166,  166,  166,  166,  536,
2380       536,  536,  544,  544,  544, 1868,  546,  546,  546,  560,
2381       560,  560,  569,  569,  569, 1869,  536, 1870, 1871,  544,
2382      1875,  166,  166,  546, 1879, 1882,  560, 1839, 1889,  569,
2383       713,  713,  713, 1890,  713, 1891, 1892,  713, 1028, 1028,
2384
2385      1028, 1032, 1032, 1032,  166,  169,  169,  169,  169,  169,
2386       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
2387      1839,  169,  169,  169,  169,  169,  574,  574,  574,  596,
2388       596,  596, 1893,  618,  618,  618,  623,  623,  623,  641,
2389       641,  641, 1028,  574, 1894, 1902,  596, 1903,  169,  169,
2390       618, 1904, 1905,  623, 1038, 1038, 1038,  641, 1908,  169,
2391       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
2392       170,  170,  170,  170,  170, 1896,  170,  170,  170,  170,
2393       170,  642,  642,  642,  663,  663,  663,  667,  667,  667,
2394       668,  668,  668,  671,  671,  671,  673,  673,  673,  642,
2395
2396      1909,  663, 1884,  170,  170,  667, 1911, 1896,  668, 1912,
2397       671, 1913, 1884,  673,  170,  179,  179,  179,  179,  179,
2398       179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
2399      1885,  179,  179,  179,  179,  179,  642,  675,  675,  675,
2400      1885, 1915,  677,  677,  677, 1920,  683,  683,  683, 1921,
2401      1922,  668, 1924, 1931,  675,  684,  684,  684,  179,  179,
2402       677,  678,  678,  678,  683, 1057, 1057, 1057, 1887,  179,
2403       727,  727,  727,  684,  727, 1932, 1933,  727, 1887,  678,
2404      1934,  179,  180,  180,  180,  180,  180,  180,  180,  180,
2405       180,  180,  180,  180,  180,  180,  180, 1888,  180,  180,
2406
2407       180,  180,  180,  685,  685,  685,  678, 1888, 1935,  688,
2408       688,  688,  689,  689,  689, 1936,  684,  701,  701,  701,
2409       685,  705,  705,  705, 1937,  180,  180,  688, 1938, 1939,
2410       689,  736,  736,  736,  701,  736,  180, 1940,  736,  705,
2411      1942,  706,  706,  706,  709,  709,  709,  689,  180,  222,
2412       712,  712,  712,  714,  714,  714,  222, 1943, 1955,  706,
2413      1956,  709,  721,  721,  721,  222,  222,  712, 1947, 1957,
2414       714,  722,  722,  722, 1068, 1068, 1068,  726,  726,  726,
2415       721, 1958, 1962,  728,  728,  728,  732,  732,  732,  722,
2416      1963,  222,  222,  222,  726,  733,  733,  733,  222,  706,
2417
2418       728,  222, 1964, 1965,  732,  222, 1966,  222, 1947,  222,
2419       735,  735,  735,  733,  737,  737,  737,  738,  738,  738,
2420       740,  740,  740,  745,  745,  745,  722,  735, 1967,  741,
2421       741,  741,  737,  741, 1969,  738,  741,  740,  746,  746,
2422       746,  745, 1970, 1971,  733,  747,  747,  747,  748,  748,
2423       748,  749,  749,  749, 1974, 1981,  746, 1982,  750,  750,
2424       750, 1983,  747, 1984, 1985,  748, 1986, 1987,  749,  751,
2425       751,  751,  753,  753,  753,  738,  750,  754,  754,  754,
2426       755,  755,  755, 1988,  756,  756,  756,  751, 1989,  753,
2427      1990,  746, 1991, 1992,  754, 1993, 1999,  755,  757,  757,
2428
2429       757,  756,  758,  758,  758, 2001, 2004,  749, 1995,  760,
2430       760,  760,  762,  762,  762, 2005,  757,  761,  761,  761,
2431       758,  761, 1995, 2007,  761,  754,  760,  751, 2008, 2011,
2432       762,  763,  763,  763,  764,  764,  764,  758, 1993,  754,
2433       756,  765,  765,  765,  766,  766,  766, 2012, 1996,  763,
2434      2013,  764,  767,  767,  767,  768,  768,  768,  765, 1996,
2435      2017,  766,  773,  773,  773,  774,  774,  774, 2028, 2030,
2436       767, 2015, 2016,  768,  777,  777,  777,  778,  778,  778,
2437       773, 2015, 2016,  774,  763,  779,  779,  779, 1203,  765,
2438      2032, 2034,  777, 1203, 2042,  778, 1203,  780,  780,  780,
2439
2440      1203,  780,  779,  765,  780, 2044,  781,  781,  781,  782,
2441       782,  782,  784,  784,  784,  785,  785,  785, 2019,  785,
2442      2039, 2046,  785,  768,  781, 2047,  774,  782, 2019,  784,
2443       787,  787,  787,  788,  788,  788, 2040, 2056,  778,  803,
2444       803,  803,  804,  804,  804,  806,  806,  806,  787, 2020,
2445      2040,  788,  827,  827,  827, 2041, 2041,  803, 2039, 2020,
2446       804, 2058, 2060,  806,  828,  828,  828,  782,  828,  827,
2447      2061,  828,  831,  831,  831,  833,  833,  833,  834,  834,
2448       834,  836,  836,  836,  838,  838,  838, 2025,  838,  831,
2449       806,  838, 2055,  833,  788, 2043,  834, 2025, 2026,  836,
2450
2451       841,  841,  841,  842,  842,  842, 2043,  842, 2026, 2055,
2452       842,  843,  843,  843,  844,  844,  844,  841,  845,  845,
2453       845, 2062,  845, 2063, 2065,  845,  836, 2067,  843, 2073,
2454       831,  844,  847,  847,  847,  848,  848,  848,  850,  850,
2455       850,  853,  853,  853,  855,  855,  855,  856,  856,  856,
2456       847, 2074, 2057,  848, 2064, 2066,  850, 2075,  853,  858,
2457       858,  858,  855, 2077, 2078,  856,  859,  859,  859, 2057,
2458       859, 2064, 2066,  859,  863,  863,  863,  858,  864,  864,
2459       864,  866,  866,  866,  876,  876,  876,  877,  877,  877,
2460      2085,  877,  863, 2086,  877,  850,  864, 2087, 2088,  866,
2461
2462      2089,  876, 2090, 2093,  858,  882,  882,  882,  883,  883,
2463       883,  885,  885,  885,  890,  890,  890, 2094,  890, 2095,
2464      2096,  890, 2097,  882, 2098, 2099,  883, 2100, 2101,  885,
2465       893,  893,  893,  894,  894,  894, 2102,  894, 2104, 2114,
2466       894,  897,  897,  897,  898,  898,  898,  893,  898, 2114,
2467      2116,  898,  905,  905,  905, 1172, 1172, 1172,  897,  906,
2468       906,  906,  908,  908,  908,  913,  913,  913, 2115,  913,
2469       905, 2117,  913,  885,  916,  916,  916,  906, 2115, 2118,
2470       908,  917,  917,  917, 2119,  917, 2120, 2121,  917, 2125,
2471      2126,  916,  921,  921,  921,  922,  922,  922,  924,  924,
2472
2473       924,  926,  926,  926, 2127,  926, 2128, 2129,  926, 2130,
2474       921, 2131, 2132,  922, 2133, 2134,  924,  929,  929,  929,
2475       930,  930,  930,  932,  932,  932,  908,  934,  934,  934,
2476      2137,  934, 2138, 2139,  934,  929, 2140, 2141,  930, 2135,
2477      2142,  932,  940,  940,  940, 2143, 2144,  924,  941,  941,
2478       941,  943,  943,  943,  944,  944,  944,  945,  945,  945,
2479       940,  945, 2135, 2145,  945, 2146,  941, 2147, 2148,  943,
2480      2149,  944,  946,  946,  946,  947,  947,  947, 2150,  947,
2481      2151, 2152,  947,  949,  949,  949, 2153,  932, 2154,  946,
2482      2155,  950,  950,  950,  952,  952,  952,  954,  954,  954,
2483
2484      2156,  949, 2158,  955,  955,  955, 2157,  955,  943,  950,
2485       955, 2159,  952, 2160,  954,  958,  958,  958,  959,  959,
2486       959, 2161,  959, 2157, 2162,  959,  961,  961,  961,  962,
2487       962,  962,  958,  964,  964,  964,  966,  966,  966, 2163,
2488       966, 2164, 2165,  966,  961, 2166, 2167,  962,  969,  969,
2489       969,  964,  970,  970,  970,  972,  972,  972,  952,  973,
2490       973,  973,  977,  977,  977, 2168,  969,  974,  974,  974,
2491       970,  974, 2169,  972,  974, 2170,  973, 2171, 2172,  977,
2492       978,  978,  978, 2173,  978, 2174, 2175,  978,  979,  979,
2493       979,  980,  980,  980,  964,  982,  982,  982,  984,  984,
2494
2495       984,  987,  987,  987, 2176, 2177,  979, 2179, 2180,  980,
2496      2181, 2182,  972,  982, 2178,  984,  988,  988,  988,  987,
2497       990,  990,  990,  993,  993,  993,  994,  994,  994,  996,
2498       996,  996, 2178, 2183,  988,  997,  997,  997,  990,  997,
2499      2184,  993,  997, 2185,  994, 2186, 2187,  996, 1000, 1000,
2500      1000, 1001, 1001, 1001,  982, 1003, 1003, 1003, 1005, 1005,
2501      1005, 2188, 1005, 2189, 2190, 1005, 1000, 2191, 2192, 1001,
2502      1009, 1009, 1009, 1003, 1010, 1010, 1010, 2193,  990, 2194,
2503       996, 1012, 1012, 1012, 1014, 1014, 1014, 2195, 1009, 1021,
2504      1021, 1021, 1010, 1041, 1041, 1041, 1045, 1045, 1045, 1012,
2505
2506      2196, 2197, 1014, 1014, 1042, 1042, 1042, 1021, 1042, 2198,
2507      1041, 1042, 1003, 2200, 1045, 1047, 1047, 1047, 2201, 1047,
2508      2202, 2203, 1047, 1050, 1050, 1050, 1051, 1051, 1051, 2204,
2509      1051, 2199, 2205, 1051, 1052, 1052, 1052, 2199, 1052, 1012,
2510      1050, 1052, 2207, 1045, 1056, 1056, 1056, 1059, 1059, 1059,
2511      2208, 2210, 1021, 1060, 1060, 1060, 2212, 1060, 2214, 2215,
2512      1060, 2217, 1056, 2218, 1059, 1061, 1061, 1061, 1062, 1062,
2513      1062, 1064, 1064, 1064, 1069, 1069, 1069, 1075, 1075, 1075,
2514      2221, 2220, 1061, 1076, 1076, 1076, 1062, 1076, 2222, 1064,
2515      1076, 2223, 1056, 2220, 1075, 1077, 1077, 1077, 2224, 1078,
2516
2517      1078, 1078, 1079, 1079, 1079, 1081, 1081, 1081, 1084, 1084,
2518      1084, 2226, 1077, 2228, 2229, 1062, 1078, 2230, 1069, 2232,
2519      1079, 2234, 1081, 2236, 2237, 1084, 1085, 1085, 1085, 2238,
2520      1085, 2239, 2240, 1085, 1086, 1086, 1086, 2241, 1086, 2242,
2521      2243, 1086, 2244, 1078, 1089, 1089, 1089, 2245, 1095, 1095,
2522      1095, 1097, 1097, 1097, 2247, 1100, 1100, 1100, 2249, 1100,
2523      2251, 1089, 1100, 2252, 2253, 1079, 1095, 2254, 1097, 1103,
2524      1103, 1103, 1106, 1106, 1106, 1108, 1108, 1108, 1112, 1112,
2525      1112, 1113, 1113, 1113, 2255, 2256, 1103, 1114, 1114, 1114,
2526      1106, 1114, 2257, 1108, 1114, 1112, 1117, 1117, 1117, 1113,
2527
2528      1117, 2271, 2267, 1117, 2258, 1121, 1121, 1121, 2273, 1412,
2529      1095, 1122, 1122, 1122, 1123, 1123, 1123, 2272, 1123, 2268,
2530      2269, 1123, 1112, 1121, 1128, 1128, 1128, 2270, 1128, 1410,
2531      1409, 1128, 2275, 1106, 2271, 1113, 2257, 2267, 1108, 1132,
2532      1132, 1132, 1134, 1134, 1134, 1135, 1135, 1135, 2258, 1135,
2533      2272, 2273, 1135, 1408, 2268, 1122, 2283, 1132, 2269, 2276,
2534      1134, 2284, 1140, 1140, 1140, 2270, 1140, 2275, 1121, 1140,
2535      1143, 1143, 1143, 1145, 1145, 1145, 1146, 1146, 1146, 1401,
2536      1146, 2287, 2274, 1146, 1149, 1149, 1149, 1399, 1143, 1394,
2537      1145, 1151, 1151, 1151, 2276, 2287, 1134, 1132, 1152, 1152,
2538
2539      1152, 2283, 1149, 1153, 1153, 1153, 2284, 1392, 1151, 1155,
2540      1155, 1155, 1156, 1156, 1156, 1143, 1152, 1159, 1159, 1159,
2541      1389, 1153, 1166, 1166, 1166, 2274, 1155, 1173, 1173, 1173,
2542      1156, 1149, 1175, 1175, 1175, 1159, 1178, 1178, 1178, 1388,
2543      1166, 1180, 1180, 1180, 1181, 1181, 1181, 1184, 1184, 1184,
2544      1185, 1185, 1185, 1153, 1187, 1187, 1187, 2277, 1187, 1387,
2545      1385, 1187, 1152, 1192, 1192, 1192, 1159, 1198, 1198, 1198,
2546      2279, 1156, 1166, 1194, 1194, 1194, 1383, 1194, 1381, 2279,
2547      1194, 1192, 1159, 2278, 2280, 1198, 1378, 2277, 1181, 1199,
2548      1199, 1199, 1377, 2280, 1185, 1373, 1201, 1201, 1201, 1367,
2549
2550      1201, 1363, 1180, 1201, 1204, 1204, 1204, 1205, 1205, 1205,
2551      2281, 1205, 1192, 2278, 1205, 1206, 1206, 1206, 1210, 1210,
2552      1210, 1204, 1211, 1211, 1211, 1198, 1212, 1212, 1212, 1213,
2553      1213, 1213, 2288, 1206, 1214, 1214, 1214, 1217, 1217, 1217,
2554      2281, 1217, 1362, 2288, 1217, 1220, 1220, 1220, 1221, 1221,
2555      1221, 1355, 1221, 2282, 1349, 1221, 1222, 1222, 1222, 1223,
2556      1223, 1223, 1220, 1223, 1206, 1346, 1223, 1225, 1225, 1225,
2557      1241, 1241, 1241, 1222, 1227, 1227, 1227, 1228, 1228, 1228,
2558      1345, 1228, 1344, 2282, 1228, 1225, 2285, 1212, 1241, 1339,
2559      1213, 1227, 1229, 1229, 1229, 1214, 1231, 1231, 1231, 2286,
2560
2561      1231, 1338, 1335, 1231, 1234, 1234, 1234, 1334, 1328, 1229,
2562      1235, 1235, 1235, 1326, 1235, 1325, 2285, 1235, 1236, 1236,
2563      1236, 1234, 1240, 1240, 1240, 1243, 1243, 1243, 1324, 2286,
2564      1244, 1244, 1244, 1241, 1244, 1236, 1322, 1244, 1321, 1240,
2565      1318, 1317, 1243, 1245, 1245, 1245, 1247, 1247, 1247, 1248,
2566      1248, 1248, 1315, 1248, 1314, 1313, 1248, 1251, 1251, 1251,
2567      1245, 1312, 1310, 1247, 1253, 1253, 1253, 1257, 1257, 1257,
2568      1258, 1258, 1258, 1308, 1258, 1251, 1303, 1258, 1260, 1260,
2569      1260, 1302, 1253, 1301, 1257, 1262, 1262, 1262, 1264, 1264,
2570      1264, 1265, 1265, 1265, 1299, 1298, 1260, 1266, 1266, 1266,
2571
2572      1267, 1267, 1267, 1262, 1297, 1264, 1296, 1293, 1265, 1269,
2573      1269, 1269, 1285, 1253, 1266, 1270, 1270, 1270, 1267, 1271,
2574      1271, 1271, 1272, 1272, 1272, 1280, 1278, 1269, 1279, 1279,
2575      1279, 1277, 1270, 1273, 1262, 1268, 1271, 1274, 1274, 1274,
2576      1272, 1274, 1263, 1261, 1274, 1259, 1279, 1256, 1281, 1281,
2577      1281, 1255, 1254, 1269, 1252, 1282, 1282, 1282, 1266, 1282,
2578      1250, 1249, 1282, 1246, 1267, 1281, 1242, 1283, 1283, 1283,
2579      1239, 1284, 1284, 1284, 1286, 1286, 1286, 1279, 1238, 1287,
2580      1287, 1287, 1237, 1287, 1272, 1283, 1287, 1230, 1226, 1284,
2581      1224, 1286, 1288, 1288, 1288, 1294, 1294, 1294, 1295, 1295,
2582
2583      1295, 1300, 1300, 1300, 1304, 1304, 1304, 1305, 1305, 1305,
2584      1288, 1216, 1294, 1306, 1306, 1306, 1295, 1307, 1307, 1307,
2585      1309, 1309, 1309, 1283, 1284, 1311, 1311, 1311, 1316, 1316,
2586      1316, 1319, 1319, 1319, 1320, 1320, 1320, 1329, 1329, 1329,
2587      1215, 1329, 1209, 1208, 1329, 1207, 1316, 1200, 1197, 1319,
2588      1193, 1320, 1332, 1332, 1332, 1191, 1295, 1333, 1333, 1333,
2589      1336, 1336, 1336, 1337, 1337, 1337, 1347, 1347, 1347, 1190,
2590      1332, 1340, 1340, 1340, 1333, 1340, 1186, 1183, 1340, 1343,
2591      1343, 1343, 1182, 1343, 1347, 1179, 1343, 1319, 1350, 1350,
2592      1350, 1177, 1350, 1176, 1174, 1350, 1332, 1353, 1353, 1353,
2593
2594      1354, 1354, 1354, 1171, 1354, 1170, 1169, 1354, 1356, 1356,
2595      1356, 1168, 1356, 1167, 1353, 1356, 1359, 1359, 1359, 1360,
2596      1360, 1360, 1165, 1360, 1164, 1161, 1360, 1361, 1361, 1361,
2597      1364, 1364, 1364, 1359, 1365, 1365, 1365, 1158, 1365, 1154,
2598      1150, 1365, 1148, 1147, 1361, 1144, 1139, 1364, 1366, 1366,
2599      1366, 1368, 1368, 1368, 1138, 1368, 1133, 1131, 1368, 1371,
2600      1371, 1371, 1127, 1372, 1372, 1372, 1366, 1372, 1126, 1120,
2601      1372, 1374, 1374, 1374, 1111, 1374, 1371, 1110, 1374, 1109,
2602      1379, 1379, 1379, 1382, 1382, 1382, 1384, 1384, 1384, 1386,
2603      1386, 1386, 1107, 1386, 1105, 1104, 1386, 1366, 1379, 1099,
2604
2605      1098, 1382, 1096, 1384, 1390, 1390, 1390, 1393, 1393, 1393,
2606      1395, 1395, 1395, 1396, 1396, 1396, 1094, 1396, 1093, 1092,
2607      1396, 1091, 1390, 1090, 1083, 1393, 1082, 1395, 1080, 1074,
2608      1384, 1397, 1397, 1397, 1398, 1398, 1398, 1073, 1398, 1072,
2609      1071, 1398, 1070, 1067, 1382, 1400, 1400, 1400, 1397, 1402,
2610      1402, 1402, 1403, 1403, 1403, 1404, 1404, 1404, 1066, 1404,
2611      1063, 1058, 1404, 1400, 1405, 1405, 1405, 1402, 1055, 1403,
2612      1406, 1406, 1406, 1046, 1406, 1044, 1043, 1406, 1418, 1418,
2613      1418, 1405, 1407, 1407, 1407, 1411, 1411, 1411, 1413, 1413,
2614      1413, 1040, 1413, 1039, 1037, 1413, 1402, 1416, 1416, 1416,
2615
2616      1407, 1036, 1035, 1411, 1417, 1417, 1417, 1034, 1400, 1419,
2617      1419, 1419, 1033, 1419, 1031, 1416, 1419, 1422, 1422, 1422,
2618      1030, 1026, 1417, 1428, 1428, 1428, 1429, 1429, 1429, 1025,
2619      1429, 1024, 1023, 1429, 1022, 1422, 1430, 1430, 1430, 1020,
2620      1428, 1431, 1431, 1431, 1407, 1019, 1416, 1411, 1434, 1434,
2621      1434, 1435, 1435, 1435, 1430, 1417, 1438, 1438, 1438, 1439,
2622      1439, 1439, 1440, 1440, 1440, 1442, 1442, 1442, 1443, 1443,
2623      1443, 1445, 1445, 1445, 1448, 1448, 1448, 1452, 1452, 1452,
2624      1018, 1453, 1453, 1453, 1454, 1454, 1454, 1017, 1454, 1008,
2625      1004, 1454, 1448,  992,  991, 1452,  986, 1430, 1453, 1465,
2626
2627      1465, 1465, 1466, 1466, 1466, 1467, 1467, 1467,  985, 1467,
2628       983,  976, 1467, 1468, 1468, 1468,  975, 1465,  965, 1466,
2629      1470, 1470, 1470, 1477, 1477, 1477,  960, 1477,  957,  956,
2630      1477, 1481, 1481, 1481,  953, 1481,  948,  939, 1481, 1484,
2631      1484, 1484,  938, 1485, 1485, 1485, 1465, 1485,  937,  933,
2632      1485, 1488, 1488, 1488,  925, 1488, 1484,  920, 1488, 1491,
2633      1491, 1491, 1493, 1493, 1493,  919, 1493,  918,  912, 1493,
2634      1500, 1500, 1500, 1502, 1502, 1502,  911, 1491, 1503, 1503,
2635      1503,  910, 1503,  909,  904, 1503,  903,  902, 1500,  901,
2636      1502, 1510, 1510, 1510, 1513, 1513, 1513,  900, 1513,  899,
2637
2638       889, 1513,  888, 1516, 1516, 1516,  887, 1516,  886, 1510,
2639      1516, 1520, 1520, 1520, 1522, 1522, 1522, 1523, 1523, 1523,
2640      1491, 1523,  881,  880, 1523,  875, 1526, 1526, 1526, 1520,
2641      1526,  874, 1522, 1526, 1529, 1529, 1529, 1530, 1530, 1530,
2642      1533, 1533, 1533, 1535, 1535, 1535, 1536, 1536, 1536, 1537,
2643      1537, 1537, 1529,  873, 1530, 1538, 1538, 1538, 1533,  872,
2644      1520, 1535,  871,  870, 1536, 1541, 1541, 1541, 1529, 1545,
2645      1545, 1545,  869, 1538, 1542, 1542, 1542, 1522, 1542,  868,
2646       867, 1542, 1546, 1546, 1546,  862,  854, 1545, 1547, 1547,
2647      1547, 1549, 1549, 1549, 1550, 1550, 1550, 1551, 1551, 1551,
2648
2649      1535,  852, 1533, 1552, 1552, 1552, 1554, 1554, 1554, 1556,
2650      1556, 1556, 1559, 1559, 1559, 1561, 1561, 1561,  846, 1563,
2651      1563, 1563,  837, 1563,  832, 1545, 1563,  825,  824, 1559,
2652      1576, 1576, 1576, 1561, 1577, 1577, 1577,  823, 1577,  821,
2653       820, 1577, 1580, 1580, 1580, 1591, 1591, 1591, 1576, 1591,
2654       819,  818, 1591, 1596, 1596, 1596, 1602, 1602, 1602, 1604,
2655      1604, 1604, 1605, 1605, 1605,  816, 1605,  815,  814, 1605,
2656       813, 1596,  812,  811, 1602,  810, 1604, 1616, 1616, 1616,
2657      1618, 1618, 1618, 1619, 1619, 1619,  809,  808, 1576, 1620,
2658      1620, 1620, 1621, 1621, 1621, 1622, 1622, 1622, 1618,  802,
2659
2660      1619,  801,  800, 1604, 1623, 1623, 1623, 1620, 1623,  797,
2661      1621, 1623, 1622, 1624, 1624, 1624, 1626, 1626, 1626, 1627,
2662      1627, 1627, 1628, 1628, 1628, 1629, 1629, 1629,  796,  795,
2663      1624, 1631, 1631, 1631, 1626, 1634, 1634, 1634,  793,  789,
2664      1628,  786,  783, 1629,  776,  775, 1620,  772,  771, 1631,
2665      1621, 1635, 1635, 1635, 1636, 1636, 1636, 1638, 1638, 1638,
2666      1639, 1639, 1639, 1643, 1643, 1643, 1644, 1644, 1644, 1635,
2667      1644,  770,  769, 1644, 1656, 1656, 1656, 1664, 1664, 1664,
2668      1643, 1668, 1668, 1668,  759, 1628, 1669, 1669, 1669,  752,
2669      1631,  744, 1656,  743, 1664, 1674, 1674, 1674, 1668, 1676,
2670
2671      1676, 1676,  742,  739, 1669,  734, 1677, 1677, 1677,  731,
2672      1677,  730, 1674, 1677,  729,  725, 1676, 1685, 1685, 1685,
2673      1687, 1687, 1687, 1689, 1689, 1689, 1691, 1691, 1691,  723,
2674       720, 1656,  719,  718, 1685, 1692, 1692, 1692,  717, 1692,
2675       716, 1689, 1692, 1691, 1693, 1693, 1693, 1694, 1694, 1694,
2676      1695, 1695, 1695,  715, 1695,  711,  707, 1695, 1698, 1698,
2677      1698,  704, 1693,  703,  700, 1694, 1699, 1699, 1699,  699,
2678      1699,  698,  697, 1699,  696, 1698, 1700, 1700, 1700, 1701,
2679      1701, 1701, 1703, 1703, 1703, 1704, 1704, 1704, 1708, 1708,
2680      1708,  694,  693, 1700, 1775, 1775, 1775, 1701, 1713, 1713,
2681
2682      1713,  692,  691, 1704,  687,  682, 1708, 1728, 1728, 1728,
2683       681, 1694, 1714, 1714, 1714, 1713, 1714,  680,  679, 1714,
2684      1731, 1731, 1731,  676,  674, 1728, 1734, 1734, 1734, 1735,
2685      1735, 1735,  670, 1735,  666,  665, 1735, 1731, 1739, 1739,
2686      1739,  662,  661, 1734, 1740, 1740, 1740,  660, 1740,  659,
2687       658, 1740, 1742, 1742, 1742, 1739, 1744, 1744, 1744, 1745,
2688      1745, 1745,  656, 1745, 1728,  655, 1745,  654,  653, 1742,
2689      1746, 1746, 1746, 1744, 1747, 1747, 1747,  652, 1747,  651,
2690       650, 1747, 1755, 1755, 1755,  649,  648, 1746, 1756, 1756,
2691      1756,  647, 1756,  646,  645, 1756, 1757, 1757, 1757, 1755,
2692
2693      1758, 1758, 1758, 1759, 1759, 1759,  644, 1759,  640,  639,
2694      1759,  637,  636, 1757, 1762, 1762, 1762, 1758, 1764, 1764,
2695      1764, 1765, 1765, 1765,  635, 1765,  634,  633, 1765, 1768,
2696      1768, 1768, 1762, 1769, 1769, 1769, 1764, 1769,  629,  627,
2697      1769, 1770, 1770, 1770,  626,  625, 1768, 1778, 1778, 1778,
2698      1779, 1779, 1779,  624, 1779,  619,  615, 1779,  614, 1770,
2699      1795, 1795, 1795,  611, 1778, 1796, 1796, 1796, 1797, 1797,
2700      1797, 1798, 1798, 1798,  610, 1799, 1799, 1799, 1795, 1799,
2701       609, 1764, 1799,  608,  607, 1797,  606,  603, 1798, 1800,
2702      1800, 1800,  602, 1800,  601,  600, 1800, 1806, 1806, 1806,
2703
2704       597, 1806,  595,  592, 1806, 1810, 1810, 1810,  591, 1795,
2705       590,  589, 1797, 1811, 1811, 1811,  588, 1811,  585,  584,
2706      1811,  583, 1810, 1813, 1813, 1813,  582, 1813,  581,  578,
2707      1813, 1816, 1816, 1816, 1817, 1817, 1817,  577, 1817,  576,
2708       575, 1817, 1819, 1819, 1819, 1821, 1821, 1821, 1816, 1821,
2709       573,  570, 1821, 1824, 1824, 1824, 1825, 1825, 1825, 1819,
2710      1825,  568,  565, 1825, 1826, 1826, 1826, 1827, 1827, 1827,
2711      1824, 1827,  564,  563, 1827, 1834, 1834, 1834, 1835, 1835,
2712      1835, 1826, 1835,  562,  561, 1835, 1840, 1840, 1840, 1841,
2713      1841, 1841,  559, 1834, 1844, 1844, 1844,  558, 1844,  557,
2714
2715       554, 1844,  553, 1840, 1840, 1851, 1851, 1851, 1860, 1860,
2716      1860, 1861, 1861, 1861, 1862, 1862, 1862, 1880, 1880, 1880,
2717       552,  551, 1851,  550, 1834,  549, 1860,  548, 1863, 1863,
2718      1863, 1862, 1863,  547, 1880, 1863, 1865, 1865, 1865,  545,
2719      1865,  543,  542, 1865, 1872, 1872, 1872,  539, 1872,  538,
2720       537, 1872, 1876, 1876, 1876, 1860, 1876,  534,  529, 1876,
2721      1881, 1881, 1881,  527, 1881,  526,  525, 1881, 1883, 1883,
2722      1883,  524, 1883,  523,  522, 1883, 1886, 1886, 1886,  518,
2723      1886,  517,  516, 1886, 1895, 1895, 1895, 1897, 1897, 1897,
2724      1898, 1898, 1898, 1899, 1899, 1899,  515, 1899,  511,  510,
2725
2726      1899,  509, 1895,  508, 1897, 1897,  507, 1898, 1898,  505,
2727       502, 1899, 1900, 1900, 1900, 1901, 1901, 1901, 1906, 1906,
2728      1906, 1907, 1907, 1907,  501, 1907,  499,  497, 1907, 1916,
2729      1916, 1916, 1917, 1917, 1917, 1906, 1917,  492,  489, 1917,
2730      1923, 1923, 1923, 1925, 1925, 1925,  487, 1916, 1926, 1926,
2731      1926, 1927, 1927, 1927,  484, 1927,  483, 1923, 1927,  481,
2732      1925, 1930, 1930, 1930,  480, 1926, 1945, 1945, 1945, 1948,
2733      1948, 1948, 1949, 1949, 1949,  479, 1949,  478, 1930, 1949,
2734       477, 1950, 1950, 1950, 1945, 1950, 1948, 1948, 1950,  474,
2735      1949,  473, 1916, 1953, 1953, 1953, 1954, 1954, 1954, 1950,
2736
2737      1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951,  472,
2738       471, 1951, 1968, 1968, 1968,  470, 1951, 1951, 1951, 1951,
2739      1951, 1959, 1959, 1959,  464, 1959,  463,  461, 1959,  455,
2740      1968,  454,  450,  446,  442,  438,  432, 1972, 1972, 1972,
2741      1975, 1975, 1975, 1951, 1951, 1952, 1952, 1952, 1952, 1952,
2742      1952, 1952, 1952, 1952, 1972,  428, 1952, 1975,  424,  420,
2743       419, 1952, 1952, 1952, 1952, 1952, 1973, 1973, 1973,  418,
2744      1973,  417,  413, 1973, 1976, 1976, 1976,  409, 1976,  406,
2745       405, 1976, 1977, 1977, 1977, 1979, 1979, 1979, 1952, 1952,
2746      1978, 1978, 1978,  404, 1978,  400,  394, 1978,  393, 1977,
2747
2748       389,  385, 1979, 1980, 1980, 1980,  381, 1980,  380,  376,
2749      1980, 1994, 1994, 1994,  373, 1994,  372,  367, 1994,  363,
2750       355, 2009, 2009, 2009, 2045, 2045, 2045,  354,  353, 1994,
2751      1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 2009,
2752       349, 1997, 2045, 2045,  343,  342, 1997, 1997, 1997, 1997,
2753      1997, 2014, 2014, 2014,  338, 2014,  331,  330, 2014, 2018,
2754      2018, 2018,  329, 2018,  328,  327, 2018, 2052, 2052, 2052,
2755      2053, 2053, 2053, 1997, 1997, 1998, 1998, 1998, 1998, 1998,
2756      1998, 1998, 1998, 1998, 2052,  326, 1998, 2053,  322,  315,
2757       313, 1998, 1998, 1998, 1998, 1998, 2021, 2021, 2021,  312,
2758
2759      2021,  311,  309, 2021, 2024, 2024, 2024,  305, 2024,  298,
2760       297, 2024, 2054, 2054, 2054, 2059, 2059, 2059, 1998, 1998,
2761      2072, 2072, 2072, 2076, 2076, 2076, 2079, 2079, 2079, 2054,
2762       296,  295, 2059, 2080, 2080, 2080,  294, 2080, 2072,  290,
2763      2080, 2076,  286, 2079, 2081, 2081, 2081, 2082, 2082, 2082,
2764       280, 2082,  278,  273, 2082,  272, 2083, 2083, 2083,  268,
2765       262, 2081, 2084, 2084, 2084,  261, 2084,  260,  256, 2084,
2766       248,  246, 2076, 2083, 2091, 2091, 2091, 2092, 2092, 2092,
2767       245, 2092,  241,  238, 2092, 2103, 2103, 2103, 2107, 2107,
2768      2107, 2091, 2107,  236,  235, 2107,  234, 2110, 2110, 2110,
2769
2770       230, 2110,  227, 2103, 2110, 2113, 2113, 2113,  226, 2113,
2771       223,  219, 2113,  215, 2122, 2122, 2122,  211, 2122,  210,
2772      2103, 2122, 2235, 2235, 2235, 2246, 2246, 2246,  209, 2246,
2773       203,  202, 2246, 2289, 2289, 2289, 2290, 2290, 2290,  200,
2774      2235,  197,  185, 2246,    0,    0,    0,    0,    0,    0,
2775         0, 2289,    0,    0, 2290, 2293, 2293, 2293, 2293, 2293,
2776      2293, 2293, 2293, 2293, 2294, 2294, 2294, 2294, 2294, 2294,
2777      2294, 2294, 2294, 2295, 2295, 2295, 2295, 2295, 2295, 2295,
2778      2295, 2295, 2296, 2296, 2296, 2296, 2296, 2296, 2296, 2296,
2779      2296, 2297, 2297, 2297, 2297, 2297, 2297, 2297, 2297, 2297,
2780
2781      2298, 2298, 2298, 2298, 2298, 2298, 2298, 2298, 2298, 2299,
2782      2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2300, 2300,
2783      2300, 2300, 2300, 2300, 2300, 2300, 2300, 2301, 2301, 2301,
2784      2301, 2301, 2301, 2301, 2301, 2301, 2302, 2302, 2302, 2302,
2785      2302, 2302, 2302, 2302, 2302, 2303, 2303, 2303, 2303, 2303,
2786      2303, 2303, 2303, 2303, 2304, 2304, 2304, 2304, 2304, 2304,
2787      2304, 2304, 2304, 2305, 2305, 2305, 2305, 2305, 2305, 2305,
2788      2305, 2305, 2306, 2306, 2306, 2306, 2306, 2306, 2306, 2306,
2789      2306, 2307, 2307, 2307, 2307, 2307, 2307, 2307, 2307, 2307,
2790      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2309,
2791
2792      2309, 2309, 2309, 2309, 2309, 2309, 2309, 2309, 2310, 2310,
2793      2310, 2310, 2310, 2310, 2310, 2310, 2310, 2311, 2311, 2311,
2794      2311, 2311, 2311, 2311, 2311, 2311, 2312, 2312, 2312, 2312,
2795      2312, 2312, 2312, 2312, 2312, 2313, 2313, 2313, 2313, 2313,
2796      2313, 2313, 2313, 2313, 2314, 2314, 2314, 2314, 2314, 2314,
2797      2314, 2314, 2314, 2315, 2315, 2315, 2315, 2315, 2315, 2315,
2798      2315, 2315, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316,
2799      2316, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
2800      2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2319,
2801      2319, 2319, 2319, 2319, 2319, 2319, 2319, 2319, 2320, 2320,
2802
2803      2320, 2320, 2320, 2320, 2320, 2320, 2320, 2321, 2321, 2321,
2804      2321, 2321, 2321, 2321, 2321, 2321, 2322, 2322, 2322, 2322,
2805      2322, 2322, 2322, 2322, 2322, 2323, 2323, 2323, 2323, 2323,
2806      2323, 2323, 2323, 2323, 2324, 2324, 2324, 2324, 2324, 2324,
2807      2324, 2324, 2324, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2808      2325, 2325, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326,
2809      2326, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327,
2810      2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2329,
2811      2329, 2329, 2329, 2329, 2329, 2329, 2329, 2329, 2330, 2330,
2812      2330, 2330, 2330, 2330, 2330, 2330, 2330, 2331, 2331, 2331,
2813
2814      2331, 2331, 2331, 2331, 2331, 2331, 2332, 2332, 2332, 2332,
2815      2332, 2332, 2332, 2332, 2332, 2333, 2333, 2333,    0,    0,
2816         0, 2333, 2334, 2334, 2334,    0,    0,    0, 2334, 2335,
2817      2335, 2335,    0,    0,    0, 2335, 2336, 2336, 2336,    0,
2818         0,    0, 2336, 2337, 2337, 2337,    0,    0,    0, 2337,
2819      2338, 2338, 2338,    0,    0,    0, 2338, 2339, 2339, 2339,
2820         0,    0,    0, 2339, 2340, 2340, 2340,    0,    0,    0,
2821      2340, 2341, 2341, 2341,    0,    0,    0, 2341, 2342, 2342,
2822      2342,    0,    0,    0, 2342, 2343, 2343, 2343,    0,    0,
2823         0, 2343, 2344, 2344, 2344,    0,    0,    0, 2344, 2345,
2824
2825      2345, 2345,    0,    0,    0, 2345, 2346, 2346, 2346,    0,
2826         0,    0, 2346, 2347, 2347, 2347,    0,    0,    0, 2347,
2827      2348, 2348, 2348,    0,    0,    0, 2348, 2349, 2349, 2349,
2828         0,    0,    0, 2349, 2350, 2350, 2350,    0,    0,    0,
2829      2350, 2351, 2351, 2351, 2351, 2351, 2351, 2351,    0, 2351,
2830      2352, 2352, 2352,    0,    0,    0, 2352, 2353,    0,    0,
2831         0, 2353, 2354, 2354, 2354,    0,    0,    0, 2354, 2355,
2832         0,    0,    0, 2355, 2356, 2356, 2356,    0,    0,    0,
2833      2356, 2357,    0,    0,    0, 2357, 2358, 2358, 2358,    0,
2834         0,    0, 2358, 2359,    0,    0,    0, 2359, 2360, 2360,
2835
2836      2360,    0,    0,    0, 2360, 2361,    0,    0,    0, 2361,
2837      2362,    0,    0,    0, 2362, 2363, 2363, 2363,    0,    0,
2838         0, 2363, 2364,    0,    0,    0, 2364, 2365, 2365, 2365,
2839         0,    0,    0, 2365, 2366,    0,    0,    0, 2366, 2367,
2840      2367, 2367,    0,    0,    0, 2367, 2368,    0,    0,    0,
2841      2368, 2369, 2369, 2369,    0,    0,    0, 2369, 2370,    0,
2842         0,    0, 2370, 2371, 2371, 2371,    0,    0,    0, 2371,
2843      2372,    0,    0,    0, 2372, 2373, 2373, 2373,    0,    0,
2844         0, 2373, 2374,    0,    0,    0, 2374, 2375, 2375, 2375,
2845         0,    0,    0, 2375, 2376,    0,    0,    0, 2376, 2377,
2846
2847      2377, 2377,    0,    0,    0, 2377, 2378,    0,    0,    0,
2848      2378, 2379, 2379, 2379,    0,    0,    0, 2379, 2380,    0,
2849         0,    0, 2380, 2381, 2381, 2381,    0,    0,    0, 2381,
2850      2382,    0,    0,    0, 2382, 2383, 2383, 2383,    0,    0,
2851         0, 2383, 2384,    0,    0,    0, 2384, 2385, 2385, 2385,
2852         0,    0,    0, 2385, 2386,    0,    0,    0, 2386, 2387,
2853      2387, 2387, 2387, 2387, 2387, 2387, 2387, 2387, 2388,    0,
2854         0,    0,    0, 2388, 2389, 2389, 2389,    0,    0,    0,
2855      2389, 2390, 2390, 2390, 2390,    0,    0, 2390, 2390, 2391,
2856      2391, 2391,    0,    0,    0, 2391, 2392, 2392, 2392, 2392,
2857
2858         0,    0, 2392, 2392, 2393, 2393, 2393,    0,    0,    0,
2859      2393, 2394, 2394, 2394, 2394,    0,    0, 2394, 2394, 2395,
2860      2395, 2395,    0,    0,    0, 2395, 2396, 2396, 2396, 2396,
2861         0,    0, 2396, 2396, 2397, 2397, 2397,    0,    0,    0,
2862      2397, 2398, 2398, 2398, 2398,    0,    0, 2398, 2398, 2399,
2863      2399, 2399,    0,    0,    0, 2399, 2400, 2400, 2400, 2400,
2864         0,    0, 2400, 2400, 2401, 2401, 2401,    0,    0,    0,
2865      2401, 2402, 2402, 2402, 2402,    0,    0, 2402, 2402, 2403,
2866      2403, 2403,    0,    0,    0, 2403, 2404, 2404, 2404, 2404,
2867         0,    0, 2404, 2404, 2405, 2405, 2405,    0,    0,    0,
2868
2869      2405, 2406, 2406, 2406, 2406,    0,    0, 2406, 2406, 2407,
2870      2407, 2407,    0,    0,    0, 2407, 2408, 2408, 2408, 2408,
2871         0,    0, 2408, 2408, 2409, 2409, 2409, 2409,    0, 2409,
2872         0, 2409, 2410, 2410, 2410, 2410,    0,    0, 2410, 2410,
2873      2411, 2411, 2411, 2411,    0, 2411,    0, 2411, 2412, 2412,
2874      2412, 2412,    0,    0, 2412, 2412, 2413, 2413, 2413,    0,
2875         0,    0, 2413, 2414, 2414, 2414, 2414,    0,    0, 2414,
2876      2414, 2415, 2415, 2415, 2415,    0, 2415,    0, 2415, 2416,
2877      2416, 2416, 2416,    0,    0, 2416, 2416, 2417, 2417, 2417,
2878         0,    0,    0, 2417, 2418, 2418, 2418, 2418,    0,    0,
2879
2880      2418, 2418, 2419, 2419, 2419,    0,    0,    0, 2419, 2420,
2881      2420, 2420, 2420,    0,    0, 2420, 2420, 2421, 2421, 2421,
2882      2421,    0,    0, 2421, 2421, 2422, 2422, 2422,    0,    0,
2883         0, 2422, 2423, 2423, 2423, 2423,    0,    0, 2423, 2423,
2884      2424, 2424, 2424, 2424, 2424, 2424, 2424, 2424, 2424, 2425,
2885         0, 2425,    0,    0, 2425, 2426, 2426, 2426,    0,    0,
2886         0, 2426, 2427, 2427, 2427, 2427,    0,    0, 2427, 2427,
2887      2428, 2428, 2428, 2428,    0, 2428,    0, 2428, 2429, 2429,
2888      2429, 2429,    0,    0, 2429, 2429, 2430, 2430, 2430,    0,
2889         0,    0, 2430, 2431, 2431, 2431, 2431,    0,    0, 2431,
2890
2891      2431, 2432, 2432, 2432,    0,    0,    0, 2432, 2433, 2433,
2892      2433, 2433,    0,    0, 2433, 2433, 2434, 2434, 2434,    0,
2893         0,    0, 2434, 2435, 2435, 2435, 2435,    0,    0, 2435,
2894      2435, 2436, 2436, 2436,    0,    0,    0, 2436, 2437, 2437,
2895      2437, 2437,    0,    0, 2437, 2437, 2438, 2438, 2438,    0,
2896         0,    0, 2438, 2439, 2439, 2439, 2439,    0,    0, 2439,
2897      2439, 2440, 2440, 2440,    0,    0,    0, 2440, 2441, 2441,
2898      2441, 2441,    0,    0, 2441, 2441, 2442, 2442, 2442,    0,
2899         0,    0, 2442, 2443, 2443, 2443, 2443,    0,    0, 2443,
2900      2443, 2444, 2444, 2444,    0,    0,    0, 2444, 2445, 2445,
2901
2902      2445, 2445,    0,    0, 2445, 2445, 2446, 2446, 2446,    0,
2903         0,    0, 2446, 2447, 2447, 2447, 2447,    0,    0, 2447,
2904      2447, 2448, 2448, 2448,    0,    0,    0, 2448, 2449, 2449,
2905      2449, 2449,    0,    0, 2449, 2449, 2450, 2450, 2450,    0,
2906         0,    0, 2450, 2451, 2451, 2451, 2451,    0,    0, 2451,
2907      2451, 2452, 2452, 2452,    0,    0,    0, 2452, 2453, 2453,
2908      2453, 2453,    0,    0, 2453, 2453, 2454, 2454, 2454,    0,
2909         0,    0, 2454, 2455, 2455, 2455, 2455,    0,    0, 2455,
2910      2455, 2456, 2456, 2456,    0,    0,    0, 2456, 2457, 2457,
2911      2457, 2457,    0,    0, 2457, 2457, 2458, 2458, 2458, 2458,
2912
2913         0,    0, 2458, 2458, 2459, 2459, 2459,    0,    0,    0,
2914      2459, 2460, 2460, 2460, 2460,    0,    0, 2460, 2460, 2461,
2915      2461, 2461, 2461, 2461, 2461, 2461, 2461, 2461, 2462, 2462,
2916      2462, 2462, 2462, 2462, 2462, 2462, 2462, 2463, 2463, 2463,
2917         0,    0,    0, 2463, 2464, 2464, 2464, 2464,    0,    0,
2918      2464, 2464, 2465, 2465, 2465,    0,    0,    0, 2465, 2466,
2919      2466, 2466, 2466,    0,    0, 2466, 2466, 2467, 2467, 2467,
2920         0,    0,    0, 2467, 2468, 2468, 2468, 2468,    0,    0,
2921      2468, 2468, 2469, 2469, 2469,    0,    0,    0, 2469, 2470,
2922      2470, 2470, 2470,    0,    0, 2470, 2470, 2471, 2471, 2471,
2923
2924         0,    0,    0, 2471, 2472, 2472, 2472,    0,    0,    0,
2925      2472, 2473, 2473, 2473, 2473,    0,    0, 2473, 2473, 2474,
2926      2474, 2474,    0,    0,    0, 2474, 2475, 2475, 2475, 2475,
2927         0,    0, 2475, 2475, 2476, 2476, 2476,    0,    0,    0,
2928      2476, 2477, 2477, 2477, 2477,    0,    0, 2477, 2477, 2478,
2929      2478, 2478,    0,    0,    0, 2478, 2479, 2479, 2479, 2479,
2930         0,    0, 2479, 2479, 2480, 2480, 2480,    0,    0,    0,
2931      2480, 2481, 2481, 2481, 2481,    0,    0, 2481, 2481, 2482,
2932      2482, 2482,    0,    0,    0, 2482, 2483, 2483, 2483, 2483,
2933         0,    0, 2483, 2483, 2484, 2484, 2484,    0,    0,    0,
2934
2935      2484, 2485, 2485, 2485, 2485,    0,    0, 2485, 2485, 2486,
2936      2486, 2486,    0,    0,    0, 2486, 2487, 2487, 2487, 2487,
2937         0,    0, 2487, 2487, 2488, 2488, 2488,    0,    0,    0,
2938      2488, 2489, 2489, 2489, 2489,    0,    0, 2489, 2489, 2490,
2939      2490, 2490,    0,    0,    0, 2490, 2491, 2491, 2491, 2491,
2940         0,    0, 2491, 2491, 2492, 2492, 2492, 2492,    0, 2492,
2941         0, 2492, 2493, 2493, 2493, 2493,    0,    0, 2493, 2493,
2942      2494, 2494, 2494, 2494,    0,    0, 2494, 2494, 2495, 2495,
2943      2495, 2495,    0, 2495,    0, 2495, 2496, 2496, 2496, 2496,
2944         0,    0, 2496, 2496, 2497, 2497, 2497, 2497, 2497, 2497,
2945
2946      2497, 2497, 2497, 2498, 2498, 2498, 2498, 2498, 2498, 2498,
2947      2498, 2498, 2499, 2499, 2499,    0,    0,    0, 2499, 2500,
2948      2500, 2500, 2500,    0,    0, 2500, 2500, 2501, 2501, 2501,
2949         0,    0,    0, 2501, 2502, 2502, 2502, 2502,    0,    0,
2950      2502, 2502, 2503, 2503, 2503,    0,    0,    0, 2503, 2504,
2951      2504, 2504, 2504,    0,    0, 2504, 2504, 2505, 2505, 2505,
2952         0,    0,    0, 2505, 2506, 2506, 2506, 2506,    0,    0,
2953      2506, 2506, 2507, 2507, 2507,    0,    0,    0, 2507, 2508,
2954      2508, 2508,    0,    0,    0, 2508, 2509, 2509, 2509, 2509,
2955         0,    0, 2509, 2509, 2510, 2510, 2510,    0,    0,    0,
2956
2957      2510, 2511, 2511, 2511, 2511,    0,    0, 2511, 2511, 2512,
2958      2512, 2512,    0,    0,    0, 2512, 2513, 2513, 2513, 2513,
2959         0,    0, 2513, 2513, 2514, 2514, 2514,    0,    0,    0,
2960      2514, 2515, 2515, 2515, 2515,    0,    0, 2515, 2515, 2516,
2961      2516, 2516,    0,    0,    0, 2516, 2517, 2517, 2517, 2517,
2962         0,    0, 2517, 2517, 2518, 2518, 2518,    0,    0,    0,
2963      2518, 2519, 2519, 2519, 2519,    0,    0, 2519, 2519, 2520,
2964      2520, 2520, 2520,    0, 2520,    0, 2520, 2521, 2521, 2521,
2965      2521,    0,    0, 2521, 2521, 2522, 2522, 2522,    0,    0,
2966         0, 2522, 2523, 2523, 2523, 2523,    0,    0, 2523, 2523,
2967
2968      2524, 2524, 2524, 2524,    0, 2524,    0, 2524, 2525, 2525,
2969      2525, 2525,    0,    0, 2525, 2525, 2526, 2526, 2526,    0,
2970         0,    0, 2526, 2527, 2527, 2527, 2527,    0,    0, 2527,
2971      2527, 2528, 2528, 2528, 2528,    0,    0, 2528, 2528, 2529,
2972      2529, 2529, 2529,    0,    0, 2529, 2529, 2530, 2530, 2530,
2973      2530,    0,    0, 2530, 2530, 2531, 2531, 2531, 2531, 2531,
2974      2531, 2531, 2531, 2531, 2532, 2532, 2532, 2532, 2532, 2532,
2975      2532, 2532, 2532, 2533, 2533, 2533, 2533,    0, 2533,    0,
2976      2533, 2534, 2534, 2534, 2534,    0,    0, 2534, 2534, 2535,
2977      2535, 2535,    0,    0,    0, 2535, 2536, 2536, 2536, 2536,
2978
2979         0,    0, 2536, 2536, 2537, 2537, 2537,    0,    0,    0,
2980      2537, 2538, 2538, 2538, 2538,    0,    0, 2538, 2538, 2539,
2981      2539, 2539, 2539,    0, 2539,    0, 2539, 2540, 2540, 2540,
2982      2540,    0,    0, 2540, 2540, 2541, 2541, 2541, 2541,    0,
2983      2541,    0, 2541, 2542, 2542, 2542,    0,    0,    0, 2542,
2984      2543, 2543, 2543,    0,    0,    0, 2543, 2544, 2544, 2544,
2985      2544,    0,    0, 2544, 2544, 2545, 2545, 2545,    0,    0,
2986         0, 2545, 2546, 2546, 2546,    0,    0,    0, 2546, 2547,
2987      2547, 2547, 2547,    0,    0, 2547, 2547, 2548, 2548, 2548,
2988         0,    0,    0, 2548, 2549, 2549, 2549,    0,    0,    0,
2989
2990      2549, 2550, 2550, 2550, 2550,    0,    0, 2550, 2550, 2551,
2991      2551, 2551,    0,    0,    0, 2551, 2552, 2552, 2552, 2552,
2992         0,    0, 2552, 2552, 2553, 2553, 2553,    0,    0,    0,
2993      2553, 2554, 2554, 2554, 2554,    0,    0, 2554, 2554, 2555,
2994      2555, 2555, 2555,    0,    0, 2555, 2555, 2556, 2556, 2556,
2995         0,    0,    0, 2556, 2557, 2557, 2557, 2557,    0,    0,
2996      2557, 2557, 2558, 2558, 2558, 2558,    0,    0, 2558, 2558,
2997      2559, 2559, 2559, 2559,    0,    0, 2559, 2559, 2560, 2560,
2998      2560, 2560, 2560, 2560, 2560, 2560, 2560, 2561, 2561, 2561,
2999      2561, 2561, 2561, 2561, 2561, 2561, 2562, 2562, 2562, 2562,
3000
3001      2562, 2562, 2562, 2562, 2562, 2563, 2563, 2563, 2563, 2563,
3002      2563, 2563, 2563, 2563, 2564, 2564, 2564, 2564, 2564, 2564,
3003      2564, 2564, 2564, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
3004      2565, 2565, 2566, 2566, 2566, 2566, 2566, 2566, 2566, 2566,
3005      2566, 2567, 2567, 2567, 2567, 2567, 2567, 2567, 2567, 2567,
3006      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3007      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3008      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3009      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3010      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3011
3012      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3013      2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292,
3014      2292
3015     } ;
3016
3017 /* Table of booleans, true if rule could match eol. */
3018 static yyconst flex_int32_t yy_rule_can_match_eol[389] =
3019     {   0,
3020 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3021     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
3022     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3023     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3024     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3025     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3026     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3027     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3028     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3029     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3030     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3031     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3032     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3033     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
3034     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3035     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
3036     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
3037     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3038     0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 
3039     0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3040
3041 static yy_state_type yy_last_accepting_state;
3042 static char *yy_last_accepting_cpos;
3043
3044 extern int surf_parse__flex_debug;
3045 int surf_parse__flex_debug = 0;
3046
3047 /* The intent behind this definition is that it'll catch
3048  * any uses of REJECT which flex missed.
3049  */
3050 #define REJECT reject_used_but_not_detected
3051 #define yymore() yymore_used_but_not_detected
3052 #define YY_MORE_ADJ 0
3053 #define YY_RESTORE_YY_MORE_OFFSET
3054 char *surf_parse_text;
3055 /* Validating XML processor for src/surf/simgrid.dtd.
3056  * Generated 2010/12/08 16:11:56.
3057  *
3058  * This program was generated with the FleXML XML processor generator.
3059  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3060  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
3061  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
3062  * 
3063  * There are two, intertwined parts to this program, part A and part B.
3064  *
3065  * Part A
3066  * ------
3067  * 
3068  * Some parts, here collectively called "Part A", are found in the 
3069  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3070  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
3071  *
3072  * You can redistribute, use, perform, display and/or modify "Part A"
3073  * provided the following two conditions hold:
3074  *
3075  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3076  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3077  *    FITNESS FOR A PARTICULAR PURPOSE.
3078  *
3079  * 2. The program distribution conditions do not in any way affect the
3080  *    distribution conditions of the FleXML system used to generate this
3081  *    file or any version of FleXML derived from that system.
3082  *
3083  * Notice that these are explicit rights granted to you for files
3084  * generated by the FleXML system.  For your rights in connection with
3085  * the FleXML system itself please consult the GNU General Public License.
3086  * 
3087  * Part B
3088  * ------
3089  * 
3090  * The other parts, here collectively called "Part B", and which came 
3091  * from the DTD used by FleXML to generate this program, can be 
3092  * distributed (or not, as the case may be) under the terms of whoever
3093  * wrote them, provided these terms respect and obey the two conditions 
3094  * above under the heading "Part A".
3095  *
3096  * The author of and contributors to FleXML specifically disclaim
3097  * any copyright interest in "Part B", unless "Part B" was written 
3098  * by the author of or contributors to FleXML.
3099  * 
3100  */
3101
3102 /* Version strings. */
3103 const char rcs_surfxml_flexml_skeleton[] =
3104  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3105 const char rcs_surfxml_flexml[] =
3106  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
3107
3108 /* ANSI headers. */
3109 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3110 #include <stdio.h>
3111 #include <string.h>
3112 #include <assert.h>
3113 #include <stdarg.h>
3114 #include <ctype.h>
3115      
3116 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3117 # ifndef __STRICT_ANSI__
3118 #  include <io.h>
3119 #  include <process.h>
3120 # endif
3121 #else
3122 # include <unistd.h>
3123 #endif
3124      
3125 #ifndef FLEXML_INDEXSTACKSIZE
3126 #define FLEXML_INDEXSTACKSIZE 1000
3127 #endif
3128
3129 /* Generated definitions. */
3130 #define FLEXML_yylineno
3131 #ifndef FLEXML_BUFFERSTACKSIZE
3132 #define FLEXML_BUFFERSTACKSIZE 1000000
3133 #endif
3134 #define FLEXML_NEED_BUFFERLIT
3135
3136 /* XML processor api. */
3137 /* FleXML-provided data. */
3138 int surfxml_pcdata_ix;
3139 extern char *surfxml_bufferstack;
3140 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3141 AT_surfxml_random_generator AX_surfxml_random_generator;
3142 #define A_surfxml_random_generator AX_surfxml_random_generator
3143 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3144 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3145 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3146 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3147 AT_surfxml_prop_id AX_surfxml_prop_id;
3148 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3149 AT_surfxml_host_id AX_surfxml_host_id;
3150 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3151 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3152 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3153 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3154 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3155 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3156 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3157 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3158 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3159 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3160 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3161 AT_surfxml_host_state AX_surfxml_host_state;
3162 #define A_surfxml_host_state AX_surfxml_host_state
3163 AT_surfxml_AS_id AX_surfxml_AS_id;
3164 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3165 AT_surfxml_host_power AX_surfxml_host_power;
3166 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3167 AT_surfxml_router_id AX_surfxml_router_id;
3168 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3169 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3170 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3171 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3172 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3173 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3174 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3175 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3176 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3177 AT_surfxml_trace_file AX_surfxml_trace_file;
3178 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3179 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3180 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3181 AT_surfxml_random_min AX_surfxml_random_min;
3182 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3183 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3184 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3185 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3186 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3187 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3188 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3189 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3190 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3191 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3192 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3193 AT_surfxml_argument_value AX_surfxml_argument_value;
3194 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3195 AT_surfxml_link_state AX_surfxml_link_state;
3196 #define A_surfxml_link_state AX_surfxml_link_state
3197 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3198 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3199 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3200 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3201 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3202 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3203 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3204 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3205 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3206 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3207 AT_surfxml_random_mean AX_surfxml_random_mean;
3208 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3209 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3210 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3211 AT_surfxml_link_latency AX_surfxml_link_latency;
3212 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3213 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3214 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3215 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3216 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3217 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3218 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3219 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3220 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3221 AT_surfxml_random_id AX_surfxml_random_id;
3222 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3223 AT_surfxml_random_max AX_surfxml_random_max;
3224 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3225 AT_surfxml_link_id AX_surfxml_link_id;
3226 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3227 AT_surfxml_process_host AX_surfxml_process_host;
3228 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3229 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3230 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3231 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3232 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3233 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3234 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3235 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3236 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3237 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3238 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3239 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3240 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3241 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
3242 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
3243 AT_surfxml_prop_value AX_surfxml_prop_value;
3244 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3245 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3246 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3247 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3248 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3249 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3250 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3251 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3252 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3253 AT_surfxml_process_function AX_surfxml_process_function;
3254 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3255 AT_surfxml_peer_id AX_surfxml_peer_id;
3256 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3257 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3258 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3259 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3260 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3261 AT_surfxml_host_core AX_surfxml_host_core;
3262 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3263 AT_surfxml_host_availability AX_surfxml_host_availability;
3264 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3265 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3266 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3267 AT_surfxml_route_src AX_surfxml_route_src;
3268 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3269 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3270 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3271 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3272 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3273 AT_surfxml_trace_id AX_surfxml_trace_id;
3274 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3275 AT_surfxml_peer_sharing_policy AX_surfxml_peer_sharing_policy;
3276 #define A_surfxml_peer_sharing_policy AX_surfxml_peer_sharing_policy
3277 AT_surfxml_peer_power AX_surfxml_peer_power;
3278 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3279 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3280 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3281 AT_surfxml_config_id AX_surfxml_config_id;
3282 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3283 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3284 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3285 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3286 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3287 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3288 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3289 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3290 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3291 AT_surfxml_route_dst AX_surfxml_route_dst;
3292 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3293 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3294 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3295 AT_surfxml_platform_version AX_surfxml_platform_version;
3296 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3297
3298 /* XML state. */
3299 #ifdef FLEX_DEBUG
3300 # define ENTER(state)   debug_enter(state,#state)
3301 # define LEAVE          debug_leave()
3302 # define SET(state)     debug_set(state,#state)
3303   static void debug_enter(int, const char*);
3304   static void debug_leave(void);
3305   static void debug_set(int, const char*);
3306 #else
3307 # define ENTER(state)   (yy_push_state(state))
3308 # define LEAVE          (yy_pop_state())
3309 # define SET(state)     BEGIN(state)
3310 #endif
3311
3312 /* Generic actions. */
3313 #define SKIP    /*skip*/
3314 #define SUCCEED        CLEANUP; return 0
3315
3316 #define FAIL    return fail
3317 static int fail(const char*, ...);
3318
3319 enum {flexml_max_err_msg_size = 512};
3320 static char flexml_err_msg[flexml_max_err_msg_size];
3321 const char * surfxml_parse_err_msg()
3322 {
3323     return flexml_err_msg;
3324 }
3325 static void reset_surfxml_parse_err_msg()
3326 {
3327     flexml_err_msg[0] = '\0';
3328 }
3329
3330 /* Cleanup */
3331 static void cleanup(void);
3332 #define CLEANUP  cleanup()
3333
3334 /* Text buffer stack handling. */
3335 char *surfxml_bufferstack = NULL;
3336 static int blimit = FLEXML_BUFFERSTACKSIZE;
3337 static int bnext = 1;
3338
3339 static int *indexstack = NULL;
3340 static int ilimit = FLEXML_INDEXSTACKSIZE;
3341 static int inext = 1;
3342
3343 #define BUFFERSET(P)  (P = bnext)
3344 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3345 #define BUFFERDONE    (BUFFERPUTC('\0'))
3346
3347 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3348
3349 /* after this is called, there are at least 2 slots left in the stack */
3350 static int ck_blimit()
3351 {
3352      if (bnext >= blimit) {
3353          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3354          {
3355              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3356              assert(temp);
3357              surfxml_bufferstack = temp;
3358          }
3359      }
3360      return 0;
3361 }
3362
3363 /* after this is called, there are at least 2 slots left in the stack */
3364 static int ck_ilimit()
3365 {
3366      if (inext >= ilimit) {
3367          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3368          {
3369              int *temp = (int *) realloc(indexstack, ilimit);
3370              assert(temp);
3371              indexstack = temp;
3372          }
3373      }
3374      return 0;
3375 }
3376
3377 #ifdef FLEXML_NEED_BUFFERLIT
3378 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3379 {
3380   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3381   assert(s <= e); BUFFERSET(*pp);
3382   while (++s<e) {
3383     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3384     else BUFFERPUTC(*s);
3385   }
3386   BUFFERDONE;
3387 }
3388 #endif
3389
3390 static void pushbuffer(int p)
3391 {
3392     ck_ilimit();
3393     indexstack[inext++] = p;
3394     indexstack[inext++] = bnext;    
3395 }
3396
3397 static int popbuffer(void)
3398 {
3399     assert(inext >= 2);
3400     bnext = indexstack[--inext];
3401     return indexstack[--inext];
3402 }
3403
3404 /* General internal entities are `unput' back onto the input stream... */
3405 #define ENTITYTEXT(T) \
3406   { char *s = (T), *e = s+strlen(s);\
3407     while (--e >= s) { unput(*e); }}
3408
3409 /* Flex standard options. */
3410 #define YY_NO_INPUT 1
3411 /* Flex user-requested options. */
3412 /* XML character classes (currently restricted to ASCII). */
3413 /* "Common syntactic structures." */
3414 /* "Names and Tokens." */
3415 /* Miscellaneous. */
3416 /* Parser states (flex `exclusive start conditions'):
3417  *
3418  * PROLOG       the XML prolog of the document before <?xml...>
3419  * DOCTYPE      the XML prolog of the document after <?xml...>
3420  * EPILOG       after the root element
3421  * INCOMMENT    inside an XML comment <!--....-->
3422  * INPI         inside an XML PI <?...?>
3423  * VALUE1       inside a '...'-delimited literal
3424  * VALUE2       inside a "..."-delimited literal
3425  * CDATA        inside a <![CDATA[...] ]> section.
3426  * ROOT_<tag>   expect root element <tag>
3427  * AL_<tag>     inside the attribute list for <tag>
3428  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3429  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3430  */
3431
3432 /* State names. */
3433 const char* *surfxml_statenames=NULL;
3434
3435 #define INITIAL 0
3436 #define PROLOG 1
3437 #define DOCTYPE 2
3438 #define EPILOG 3
3439 #define INCOMMENT 4
3440 #define INPI 5
3441 #define VALUE1 6
3442 #define VALUE2 7
3443 #define CDATA 8
3444 #define ROOT_surfxml_platform 9
3445 #define AL_surfxml_platform 10
3446 #define S_surfxml_platform 11
3447 #define S_surfxml_platform_1 12
3448 #define S_surfxml_platform_2 13
3449 #define S_surfxml_platform_3 14
3450 #define S_surfxml_platform_4 15
3451 #define S_surfxml_platform_5 16
3452 #define S_surfxml_platform_6 17
3453 #define E_surfxml_platform 18
3454 #define AL_surfxml_trace 19
3455 #define IN_trace 20
3456 #define AL_surfxml_random 21
3457 #define S_surfxml_random 22
3458 #define S_surfxml_random_1 23
3459 #define S_surfxml_random_2 24
3460 #define E_surfxml_random 25
3461 #define AL_surfxml_trace_connect 26
3462 #define E_surfxml_trace_connect 27
3463 #define AL_surfxml_AS 28
3464 #define S_surfxml_AS 29
3465 #define S_surfxml_AS_1 30
3466 #define S_surfxml_AS_2 31
3467 #define S_surfxml_AS_3 32
3468 #define S_surfxml_AS_4 33
3469 #define S_surfxml_AS_5 34
3470 #define S_surfxml_AS_6 35
3471 #define S_surfxml_AS_7 36
3472 #define S_surfxml_AS_8 37
3473 #define S_surfxml_AS_9 38
3474 #define S_surfxml_AS_10 39
3475 #define S_surfxml_AS_11 40
3476 #define S_surfxml_AS_12 41
3477 #define S_surfxml_AS_13 42
3478 #define E_surfxml_AS 43
3479 #define AL_surfxml_host 44
3480 #define S_surfxml_host 45
3481 #define S_surfxml_host_1 46
3482 #define S_surfxml_host_2 47
3483 #define E_surfxml_host 48
3484 #define AL_surfxml_cluster 49
3485 #define E_surfxml_cluster 50
3486 #define AL_surfxml_peer 51
3487 #define E_surfxml_peer 52
3488 #define AL_surfxml_router 53
3489 #define E_surfxml_router 54
3490 #define AL_surfxml_link 55
3491 #define S_surfxml_link 56
3492 #define S_surfxml_link_1 57
3493 #define S_surfxml_link_2 58
3494 #define E_surfxml_link 59
3495 #define AL_surfxml_route 60
3496 #define S_surfxml_route 61
3497 #define S_surfxml_route_1 62
3498 #define S_surfxml_route_2 63
3499 #define E_surfxml_route 64