Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
40d97fafb14649cb5191588aa22d3cfddf14a912
[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 353
407 #define YY_END_OF_BUFFER 354
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[2035] =
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,  354,  352,   15,   10,   10,   15,   15,  332,
433        10,  332,    5,    6,    5,    8,    9,    8,  348,  340,
434       341,  349,  346,  349,  347,  351,  340,  341,  351,  352,
435        26,   10,   26,   26,   26,   24,   26,   26,   30,   10,
436        30,   30,  352,  352,   30,   37,   10,   37,   37,   37,
437        35,   37,   41,   10,   41,   52,   10,   52,   52,   52,
438
439        50,   52,   52,   52,  349,  348,   74,   10,   74,   74,
440        74,   72,   74,   74,   74,   74,   78,   10,   78,  352,
441        78,   97,   10,   97,   97,   97,   95,   97,   97,   97,
442       101,   10,  101,  114,   10,  114,  114,  114,  112,  114,
443       114,  114,  114,  118,   10,  118,  125,   10,  125,  125,
444       125,  123,  125,  352,  352,  129,   10,  129,  158,   10,
445       158,  158,  158,  156,  158,  158,  158,  158,  158,  158,
446       162,   10,  162,  162,  171,   10,  171,  171,  171,  169,
447       171,  171,  175,   10,  175,  198,   10,  198,  198,  198,
448       196,  198,  198,  198,  198,  198,  198,  202,   10,  202,
449
450       209,   10,  209,  209,  209,  207,  209,  213,   10,  213,
451       238,   10,  238,  238,  238,  236,  238,  238,  238,  238,
452       242,   10,  242,  242,  261,   10,  261,  261,  261,  259,
453       261,  261,  261,  352,  265,   10,  265,  265,  288,   10,
454       288,  288,  288,  286,  288,  288,  288,  288,  292,   10,
455       292,  292,  299,   10,  299,  299,  299,  297,  299,  303,
456        10,  303,  316,   10,  316,  316,  316,  314,  316,  316,
457       316,  316,  320,   10,  320,  352,  320,  327,   10,  327,
458       327,  327,  325,  327,  331,   10,  331,   10,    0,    2,
459         2,    0,    4,    7,  343,  342,    0,    0,    0,    0,
460
461         0,    0,    0,   25,   27,   27,   27,    0,    0,    0,
462         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
463         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464        36,   38,   38,    0,   51,   53,   53,   53,   53,    0,
465         0,    0,   73,   75,   75,   75,   75,   75,   75,   75,
466         0,    0,   96,   98,   98,   98,   98,    0,  113,  115,
467       115,  115,  115,  115,    0,  124,  126,  126,    0,  157,
468       159,  159,  159,  159,  159,  159,  159,  159,    0,  170,
469       172,  172,  172,    0,  197,  199,  199,  199,  199,  199,
470       199,  199,  199,  199,    0,  208,  210,  210,    0,  237,
471
472       239,  239,  239,  239,  239,  239,    0,  260,  262,  262,
473       262,  262,  262,    0,    0,  287,  289,  289,  289,  289,
474       289,    0,  298,  300,  300,    0,  315,  317,  317,  317,
475       317,  317,    0,    0,  326,  328,  328,    0,    0,    0,
476         0,    0,    3,    0,    0,    0,    0,    0,    0,    0,
477       350,    0,   27,   27,    0,    0,    0,    0,    0,    0,
478         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
479         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
480         0,   38,    0,    0,   53,    0,    0,   53,    0,    0,
481         0,  345,   75,    0,    0,   75,   75,   75,   75,    0,
482
483         0,    0,   98,   98,   98,    0,    0,    0,    0,  115,
484       115,  115,    0,    0,  126,    0,    0,  159,    0,    0,
485       159,  159,  159,  159,  159,    0,    0,    0,    0,  172,
486         0,    0,  199,    0,    0,    0,    0,  199,  199,  199,
487       199,  199,    0,    0,    0,    0,    0,    0,  239,    0,
488         0,  239,  239,  239,    0,    0,  262,  262,  262,  262,
489         0,    0,    0,  289,  289,  289,  289,    0,    0,    0,
490         0,    0,    0,  317,  317,  317,  317,    0,    0,    0,
491       328,    0,    0,    0,   14,    1,    0,    0,  338,    0,
492         0,    0,  335,  334,    0,    0,   27,   27,    0,    0,
493
494        29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
495         0,    0,  103,    0,    0,    0,    0,    0,    0,    0,
496       102,    0,    0,    0,    0,    0,    0,   38,    0,    0,
497        40,    0,   53,    0,   45,   44,   53,    0,    0,    0,
498        55,    0,   75,    0,   59,   58,    0,    0,   75,    0,
499         0,   75,    0,    0,   77,    0,    0,   98,   98,   98,
500         0,    0,  100,    0,    0,  105,  104,  115,  115,  115,
501         0,    0,  117,    0,  126,    0,    0,  128,    0,  159,
502         0,  133,  132,  159,  159,  159,  159,  159,    0,    0,
503       161,    0,    0,  166,  165,  172,    0,    0,  174,    0,
504
505       199,  199,    0,  189,  188,    0,  179,  178,    0,    0,
506       199,  199,  199,  199,    0,    0,  201,    0,    0,  206,
507       205,    0,    0,  212,    0,  239,    0,  217,  216,  239,
508       239,  239,    0,    0,  241,    0,  262,    0,    0,    0,
509         0,  262,    0,    0,    0,  264,    0,  289,    0,    0,
510       289,    0,    0,    0,    0,  291,    0,    0,  296,  295,
511         0,    0,  302,    0,  317,  317,  317,  317,    0,    0,
512       319,    0,    0,  328,    0,    0,  330,    0,    0,    0,
513       339,  333,    0,    0,    0,   27,   27,    0,    0,    0,
514         0,  131,    0,  215,    0,    0,  163,    0,    0,  103,
515
516         0,    0,    0,  130,  214,    0,    0,  102,    0,    0,
517         0,    0,    0,    0,    0,    0,    0,    0,    0,   53,
518         0,    0,   75,    0,   63,   62,    0,    0,    0,   61,
519        60,   75,    0,  164,   98,    0,    0,   98,    0,  115,
520       115,  115,    0,  126,    0,  159,  159,  159,  159,  159,
521       159,    0,  172,    0,  199,  199,    0,  191,  190,  199,
522       199,  199,  199,    0,    0,  239,  239,  239,  239,    0,
523       262,    0,  248,  247,    0,  246,  245,  262,  214,    0,
524       289,    0,  271,  270,  289,    0,  269,  268,    0,    0,
525       317,    0,    0,  317,  317,    0,    0,  328,    0,    0,
526
527         0,    0,   12,    0,  336,  337,    0,   27,   27,    0,
528         0,    0,    0,  131,    0,  215,    0,    0,    0,  163,
529         0,  267,   43,    0,    0,  130,  214,    0,  267,   42,
530         0,  266,    0,  266,   42,    0,   34,   33,    0,    0,
531        47,   46,   53,    0,    0,   75,    0,   65,   64,   75,
532         0,  164,   98,    0,    0,    0,    0,    0,    0,  115,
533       115,  115,    0,  116,  126,    0,  159,  159,  159,    0,
534         0,    0,    0,  159,  159,    0,    0,    0,    0,    0,
535         0,  199,    0,    0,  199,  199,  199,    0,    0,  239,
536       239,  239,    0,    0,  239,    0,  262,  262,    0,    0,
537
538       289,  289,    0,    0,  317,    0,  307,  306,  317,  317,
539         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
540        27,   27,   27,    0,    0,    0,    0,    0,    0,    0,
541         0,   57,  267,    0,  204,   43,    0,    0,    0,   56,
542       203,   42,    0,  266,    0,    0,    0,    0,   53,    0,
543         0,   75,   75,    0,   98,    0,    0,    0,    0,    0,
544         0,    0,    0,    0,   92,   91,    0,    0,    0,  115,
545         0,    0,    0,    0,    0,  159,  159,  159,    0,  135,
546       134,    0,    0,    0,  159,  159,    0,  160,    0,  168,
547       167,    0,  173,    0,  193,  192,    0,    0,    0,  187,
548
549       186,    0,    0,  199,    0,    0,    0,    0,  239,  239,
550       239,    0,    0,    0,  239,    0,  240,    0,    0,  262,
551         0,    0,    0,    0,  289,    0,    0,  317,  317,  317,
552         0,    0,    0,  324,  323,    0,    0,    0,    0,    0,
553         0,    0,   27,   27,    0,    0,  177,  120,   32,    0,
554         0,  305,   57,    0,  204,    0,  176,  119,   56,  203,
555       304,    0,   31,    0,    0,   53,    0,    0,   54,   75,
556        75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,  107,  106,    0,    0,
558         0,  109,  108,    0,  122,  121,    0,  159,  159,  159,
559
560         0,    0,  159,    0,    0,    0,  195,  194,    0,  181,
561       180,    0,    0,    0,  183,  182,    0,    0,  239,    0,
562         0,  239,  239,    0,    0,  239,    0,    0,    0,  262,
563         0,    0,    0,    0,    0,  289,    0,  290,    0,  317,
564       317,  317,    0,    0,    0,    0,    0,    0,   17,    0,
565        19,   18,   27,   27,    0,  321,  177,  120,   32,  293,
566        16,  305,    0,    0,  176,  119,  304,    0,   31,    0,
567         0,   53,  344,   75,   75,    0,   76,    0,   94,   93,
568         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
569         0,    0,  111,  110,    0,  159,  159,  159,    0,    0,
570
571         0,    0,  159,    0,  155,  154,    0,  185,  184,    0,
572         0,  211,  239,    0,  223,  222,  239,  239,    0,    0,
573         0,    0,  239,    0,    0,    0,    0,  262,  294,    0,
574         0,    0,    0,    0,  289,    0,    0,    0,  317,  317,
575         0,  322,    0,    0,    0,    0,   17,   27,   27,    0,
576       321,  293,   16,    0,    0,    0,    0,    0,   39,   53,
577         0,    0,   75,    0,    0,    0,    0,    0,    0,    0,
578         0,    0,    0,    0,    0,  127,  159,  159,  159,    0,
579       141,    0,  140,  159,    0,  200,    0,    0,  239,  239,
580       239,    0,  227,    0,  226,  239,    0,    0,    0,    0,
581
582         0,    0,    0,    0,  294,    0,    0,    0,    0,    0,
583         0,    0,  289,    0,    0,  309,  308,    0,    0,  317,
584         0,  318,  322,    0,    0,    0,    0,    0,    0,   27,
585         0,   28,    0,    0,    0,    0,   53,    0,    0,    0,
586        75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
587         0,    0,  159,  159,  159,  143,  142,    0,    0,    0,
588       219,  218,  239,  239,  239,  229,  228,    0,    0,    0,
589         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
590         0,    0,    0,    0,    0,  289,  289,    0,  301,    0,
591       313,  312,    0,    0,    0,  329,    0,    0,    0,    0,
592
593        21,   20,    0,    0,  244,    0,  243,    0,    0,    0,
594         0,    0,    0,    0,   75,    0,    0,    0,    0,   84,
595         0,    0,    0,    0,   83,    0,  159,  159,  159,    0,
596       145,  144,  239,  239,  239,    0,  231,  230,    0,    0,
597         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
598         0,    0,    0,    0,    0,  289,  289,    0,  311,  310,
599         0,    0,    0,    0,   23,   22,  244,    0,  243,    0,
600         0,   49,   48,    0,    0,    0,    0,   75,    0,    0,
601         0,    0,    0,    0,    0,    0,    0,    0,    0,  159,
602       159,  159,  239,    0,    0,  239,    0,    0,    0,    0,
603
604         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
605         0,    0,    0,  289,  289,    0,    0,    0,    0,   80,
606        79,    0,    0,    0,    0,    0,    0,    0,    0,   90,
607         0,    0,    0,   89,    0,    0,    0,  137,  136,  159,
608       159,  159,  159,  239,    0,  225,  224,  239,    0,    0,
609         0,    0,    0,    0,  258,    0,  257,    0,    0,  263,
610         0,    0,    0,    0,    0,    0,    0,    0,  289,    0,
611         0,  289,    0,    0,    0,    0,    0,    0,   80,   79,
612         0,    0,    0,    0,    0,   67,   66,    0,    0,    0,
613         0,    0,    0,    0,  159,  159,  159,  159,    0,    0,
614
615         0,    0,    0,    0,    0,    0,    0,    0,  256,  255,
616         0,    0,    0,    0,    0,    0,    0,  275,  274,  289,
617         0,  273,  272,  289,    0,    0,    0,    0,    0,    0,
618         0,   71,    0,   70,   88,    0,    0,   87,    0,    0,
619         0,   99,  159,  159,  159,  159,    0,  221,  220,    0,
620         0,    0,    0,    0,  252,    0,    0,  251,    0,    0,
621       283,    0,    0,  282,  289,  289,    0,    0,    0,   12,
622         0,   12,    0,    0,    0,   82,   86,   81,   85,  159,
623       159,  159,  159,    0,    0,    0,    0,  254,  250,  253,
624       249,  285,  281,  284,  280,  289,  289,    0,    0,    0,
625
626         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
627       159,    0,    0,    0,    0,    0,    0,  289,  289,    0,
628         0,   69,   68,    0,  139,  138,    0,  149,  148,    0,
629       147,  146,  159,    0,  153,  152,    0,    0,    0,    0,
630       289,  289,    0,   11,  159,    0,    0,    0,    0,  289,
631       289,    0,  159,    0,    0,    0,    0,  289,  289,    0,
632       159,    0,    0,    0,    0,  289,  289,    0,    0,    0,
633         0,  233,    0,  232,  289,  289,    0,    0,  151,  150,
634       235,  234,  289,  289,    0,  289,  289,    0,  289,  289,
635         0,    0,  289,  289,    0,    0,  289,  289,    0,    0,
636
637       289,  289,    0,    0,    0,    0,    0,    0,    0,    0,
638         0,  279,  278,    0,  277,  276,    0,    0,    0,    0,
639         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
640         0,    0,   13,    0
641     } ;
642
643 static yyconst flex_int32_t yy_ec[256] =
644     {   0,
645         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
646         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
647         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
648         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
649         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
650        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
651        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
652        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
653        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
654        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
655
656        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
657        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
658        69,   28,    1,    1,    1,    1,    1,    1,    1,    1,
659         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
660         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
661         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
662         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
663         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
664         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
665         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
666
667         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
668         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
669         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
670         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
671         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
672         1,    1,    1,    1,    1
673     } ;
674
675 static yyconst flex_int32_t yy_meta[70] =
676     {   0,
677         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
678         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
679         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
680         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
681         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
682         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
683         5,    5,    5,    5,    5,    5,    5,    5,    5
684     } ;
685
686 static yyconst flex_int16_t yy_base[2267] =
687     {   0,
688         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
689        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
690       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
691       193,  196,  200,  203,  206,  224,  242,  293,  262,  265,
692       344,  404,  271,  273,  464,  527,  269,  316,  320,  323,
693       364,  367,  371,  374,  590,  654,  424,  427,  718,  781,
694       431,  434,  844,  907,  484,  487,  491,  494,  497,  547,
695       970,    0,  550,  554,  557,  560,  610,  613,  617,  620,
696      1039, 1105,  623,  674, 1171,    0,  677,  681, 1240, 1294,
697       684,  687, 1348, 1411,  738,  741,  745,  748,  751,  801,
698
699       804,  808, 1474, 1537,  811,  814,  864,  867,  871,  874,
700       877,  927, 1600, 1663,  930,  934,  937,  940, 1059, 1062,
701      1066, 1069, 1726, 1780, 1072, 1125, 1834, 1897, 1128, 1132,
702      1135, 1138, 1260, 1263, 1267, 1270, 1960, 2026, 1273, 1314,
703         0,    0, 5080, 7131, 7131,   95,  100,   29,   41, 7131,
704       155,   51, 7131, 7131, 5068, 7131, 7131, 5053, 7131, 5068,
705      5062, 1273, 7131, 7131, 7131, 7131, 5060, 5058, 5016,  210,
706      7131,  158, 5038,    0,  142, 7131, 4994, 4986, 7131,  162,
707      2088, 2148,  160, 5028,  176, 7131,  165, 5018,    0,  149,
708      7131, 4980, 7131,  230,  378, 7131,  326, 5012,    0,  208,
709
710      7131, 4971, 4974, 4964,  379, 4965, 7131,  329, 4985,    0,
711       214, 7131, 4946, 4939,  238, 4923, 7131,  377,   11,   31,
712      4966, 7131,  399, 4943,    0,  435, 7131, 4906, 4906, 4896,
713      7131,  457,  441, 7131,  520, 4919,    0,  436, 7131, 4888,
714      4874, 4868, 4848, 7131,  583,  498, 7131,  640, 4882,    0,
715       499, 7131, 4848,  513, 4843, 7131,  644, 4881, 7131,  647,
716      4868,    0,  562, 7131, 4809,   34, 4828, 4813, 4803, 4811,
717      7131,  704,  177, 4852, 7131,  708, 4842,    0,  568, 7131,
718      4799, 4801, 7131,  711,  752, 7131,  772, 4811,    0,  631,
719      7131,  211, 4781, 4782,   93, 4777, 4756, 7131,  834,  818,
720
721      7131,  894, 4800,    0,  632, 7131, 4769, 7131,  897,  881,
722      7131,  901, 4784,    0,  695, 7131, 4746, 4739, 4738,   80,
723      7131,  957,  360, 4770, 7131,  960, 4761,    0,  696, 7131,
724      4731, 4708,   26,  304, 7131,  963,  330, 4755, 7131, 1092,
725      4742,    0,  885, 7131, 4713, 4696, 4698, 4691, 7131, 1095,
726       499, 4740, 7131, 1098, 4729,    0,  948, 7131, 4695, 7131,
727      1158, 1142, 7131, 1162, 4722,    0, 1083, 7131, 4676, 4680,
728      4677, 4660, 7131, 1165, 1043, 4710, 4706, 7131, 1318, 4693,
729         0, 1305, 7131, 4665, 7131, 1337, 1323, 1343,  429, 4638,
730      7131, 4693, 4672, 7131, 7131, 7131, 1359,  283, 4627, 4622,
731
732      4620, 4659, 4618, 7131,    0, 4611, 4607, 4602, 4598, 4595,
733      4591, 4582, 4582, 4584,    4,  166, 4584, 4569, 4572, 4568,
734      4566, 4570,  404, 4572, 4559,   38,  467, 4560,  712, 4538,
735      7131,    0, 4543, 4543, 7131,    0, 4536, 1374, 4523,  533,
736      4520, 4546, 7131,    0, 4507, 1377, 4495, 4509, 4496, 4503,
737      4482,   89, 7131,    0, 4489, 4480, 4490, 4468, 7131,    0,
738      1380, 4464, 4464, 4460, 4443, 7131,    0, 4436, 4448, 7131,
739         0, 4451, 1384, 4421, 4416, 4415, 4421, 4397, 4408, 7131,
740         0, 1431, 4400, 4395, 7131,    0, 4405, 1434, 1437, 4385,
741      4380, 4392, 4388, 4385, 4386, 7131,    0, 1440, 4367, 7131,
742
743         0, 4365, 1443, 4352, 4369, 4353, 4341, 7131,    0, 4328,
744      4327, 4341, 4324, 4326, 4312, 7131,    0, 4308, 4306, 4309,
745      4319, 4297, 7131,    0, 1494, 4296, 7131,    0, 4293, 4286,
746      4279, 4288, 4272, 4269, 7131,    0, 4273, 4277, 4302, 4307,
747       807, 4259, 7131, 1392,    0, 4254, 4254, 4293, 4292, 4239,
748      7131, 4248, 4229, 4233, 1499, 1504, 4237, 4215, 4216, 4213,
749      4227, 4215, 4213, 4199, 4198, 4190, 4185, 4202, 4181, 4173,
750      4170, 4173, 4166, 4158, 4144, 4161, 4143, 4136, 4151, 4130,
751      4148, 4142, 1507, 1512, 4127, 1559, 1527, 4122, 4141, 1562,
752      1565, 7131, 4114, 1569, 1587, 1573, 4100, 1620, 4111, 1627,
753
754      1633, 4096, 4096, 4103, 4094, 1630, 1638, 1683, 1653, 4073,
755      4069, 4065, 1688, 1701, 4068, 1691, 1694, 4058, 1746, 1716,
756      4057, 4061, 4039, 4023, 4039, 1752, 1755, 1758, 1800, 4019,
757      1808, 1813,  583, 1854, 1816, 1857, 1860, 1877, 4032, 4029,
758      4025, 4026, 1868, 1926, 1917, 1929, 1922, 1989, 4013, 1981,
759      1992, 4010, 3994, 3990, 1985, 2004, 3999, 2047, 2052, 3986,
760      3984, 2057, 2060, 3976, 2070, 3982, 2079, 2082, 2102, 2092,
761      2008, 2110, 2113, 3968, 3925, 3932, 3917, 2123, 2143, 3922,
762      3907, 2152, 2155, 3951, 7131, 7131,  315, 3913, 7131, 3951,
763      3943, 3896, 7131, 7131, 3887, 3884, 3888, 3869, 2162, 2175,
764
765      7131, 2183, 3861, 3858, 3870, 3839, 3846, 3845, 3825,  261,
766      3839, 3822, 1466, 3833, 3816, 3828, 3812, 3819, 3824, 3807,
767      1469, 3809,  384, 3790, 3796, 3783, 3798, 2187, 2211, 2216,
768      7131, 2219, 2222, 2016, 7131, 7131, 2230, 3819, 2240, 2243,
769      7131, 2248, 3774, 2252, 7131, 7131, 2262, 2267, 2276, 2280,
770      2284, 3786, 2294, 2298, 7131, 2301,  432, 3783, 2304, 3778,
771      2307, 2313, 7131, 2322, 2326, 7131, 7131, 3766, 3771, 3763,
772      2334, 2337, 7131, 2341, 3751, 2344, 2347, 7131, 2367, 3748,
773      2370, 7131, 7131, 3740, 3738, 3732, 3738, 3731, 2378, 2381,
774      7131, 2386, 2390, 7131, 7131, 3727, 2400, 2405, 7131, 2408,
775
776      3709, 3728, 2412, 7131, 7131, 2428, 7131, 7131, 2420, 2438,
777      3703, 3708, 3703, 3683, 2448, 2451, 7131, 2454, 2457, 7131,
778      7131, 2473, 2476, 7131, 2479, 3628, 2482, 7131, 7131, 3635,
779      3638, 3636, 2498, 2501, 7131, 2504, 3621, 2507, 2511, 2526,
780      2529, 3629, 3622, 2537, 2544, 7131, 2547, 3606, 2550, 2557,
781      3615, 2568, 2571, 2579, 2582, 7131, 2586, 2589, 7131, 7131,
782      2601, 2605, 7131, 2611, 3597, 2614, 3615, 3594, 2620, 2624,
783      7131, 2632, 3580, 3594, 2635, 2639, 7131, 2643,  726, 2646,
784      7131, 7131, 3611, 3610, 3566, 3556, 3594, 2654, 3552, 3543,
785      3550, 1595, 3529, 1941, 3542, 3541, 1764, 3530, 3538, 1827,
786
787      3536, 3508, 3525, 1880, 2668, 3510, 3518, 1888, 3516, 3515,
788      3513, 3486, 3500, 3498, 2658, 2676, 2684, 2690, 2694, 3491,
789      3517, 2703, 3486, 2708, 7131, 7131, 2717, 2722, 2735, 7131,
790      7131, 3481, 2730, 1891, 3471, 2743, 2750, 2761, 2764, 3456,
791      3477, 3449, 2767, 3467, 2770, 3459, 3453, 3437, 2773, 2779,
792      3441, 2791, 2797, 2801, 2804, 2811, 2823, 7131, 7131, 2815,
793      2833, 2837, 2840, 2843, 2846, 3434, 3436, 3424, 2866, 2869,
794      3423, 2875, 7131, 7131, 2884, 7131, 7131, 3407, 2893, 2896,
795      3412, 2911, 7131, 7131, 3404, 2919, 7131, 7131, 2927, 2930,
796      3406, 2900, 2933, 3395, 3412, 2941, 3395, 2949, 2952,  181,
797
798      3431, 2955, 7131, 3429, 7131, 7131, 3387, 3376,  518, 2960,
799      3373, 3372, 3372, 1951, 3370, 2963, 3369, 3353, 3348, 2967,
800      3348, 2974, 2979, 3354, 3354, 2984, 2990, 3344, 2994, 2997,
801      3336, 3000, 3349, 3004, 3021, 3024, 7131, 7131, 3037, 3040,
802      7131, 7131, 3332, 3319, 3048, 3293, 3061, 7131, 7131, 3289,
803      3051, 3056, 3290, 3070, 1428, 2828, 3078, 3081, 3089, 3092,
804      3097, 3101, 3104, 7131, 3110, 3115, 3305, 3301, 3285, 3119,
805      3124, 3138, 3141, 3291, 3276, 3152, 3156, 3160, 3174, 3177,
806      3180, 3188, 3195, 3199, 3207, 3213, 3216, 3219, 3225, 3279,
807      3257, 3272, 3234, 3238, 3272, 3246, 3252, 3255, 3273, 3258,
808
809      3261, 3282, 3285, 3290, 3250, 3293, 7131, 7131, 3253, 3240,
810      3309, 3253, 3312, 3316, 3330, 1307,  612,  568, 7131, 3238,
811      3334, 3337, 3341, 3344, 3240, 3229, 3237, 3232, 3217, 3217,
812      3214, 3359, 3363, 3219, 3366, 3369, 3225, 3210, 3217, 3372,
813      3375, 3378, 3205, 3381, 3210, 3202, 3203, 3386, 3198, 3221,
814      3390, 3175, 3179, 3393, 3405, 3209, 3195,  260, 3190, 3202,
815      3178,  421, 3177, 3412, 7131, 7131, 3423, 3426, 3438, 3429,
816      3434, 3452, 3460, 3463, 3471, 3152, 3142, 3148, 3474, 7131,
817      7131, 3483, 3160, 3158, 3134, 3491, 3494, 7131, 3497, 7131,
818      7131, 3505, 7131, 3509, 7131, 7131, 3518, 3524, 3532, 7131,
819
820      7131, 3540, 3543, 3551, 3554, 3558, 3572, 3575, 3123, 3578,
821      3140, 3581, 3139, 3138, 3117, 3596, 7131, 3599, 3602, 3610,
822      3106, 3622, 3617, 3637, 3628, 3631, 3646, 3110, 3110, 3111,
823      3650, 3094, 3653, 7131, 7131, 3665,  808, 1316,  747, 3094,
824      3669, 3672, 3680, 3687, 3694, 3085, 3698, 3701, 3705, 3090,
825      3089, 3708, 3714, 3072, 3717, 3077, 3720, 3723, 3726, 3729,
826      3732, 3069, 3737, 3073, 3740, 3077, 3082, 3743, 7131, 3053,
827      3043, 3746, 3751, 3755, 3054, 3048, 3039, 3043, 3034, 3035,
828      3023, 3009, 3013, 3004, 3765, 3769, 7131, 7131, 3777, 3780,
829      3789, 7131, 7131, 3797, 7131, 7131, 3805, 2982, 2985, 2975,
830
831       669,  743, 2976, 3808, 3812, 3820, 7131, 7131, 3828, 7131,
832      7131, 3836, 3839, 3847, 7131, 7131, 3857, 3860, 2978, 3863,
833      3866, 2978, 2962,  806,  857, 2963, 3881,  358,  361, 3889,
834      2960, 3892, 3895,  658,  785, 3903, 3907, 7131, 3911, 3914,
835      2965, 2957, 3921, 2948, 3932, 3926, 1272, 1058, 3936, 3941,
836      7131, 7131, 3951, 3954, 3960, 3963, 3974, 3979, 3983, 3989,
837      3992, 3995, 2953, 2926, 3998, 4001, 4005, 2923, 4008, 2916,
838      4011, 2909, 7131, 4017, 2885, 4020, 7131, 4023, 7131, 7131,
839      2923, 2907, 2914, 2907, 2901, 2901, 2879, 2881, 2861, 2856,
840      4031, 4035, 7131, 7131, 4043, 2820, 2796, 2779, 2801, 2772,
841
842      2715, 2721, 2672, 4046, 7131, 7131, 4055, 7131, 7131, 4063,
843      4066, 7131, 4069, 4072, 7131, 7131, 2610,   62,  479,  508,
844       490,  568,  532,  566,  912,  589,  919, 4089, 4092, 4095,
845       642, 1044,  694, 1120, 4098, 4101, 4107, 4116, 4125,  710,
846      4128, 4131, 4134, 4137,  748,  840, 4143, 4147, 4159, 4165,
847      4168, 4171, 4177,  715,  773,  808,  825, 4180, 7131,  854,
848      4184, 4187,  881,  905,  912,  934, 1022, 1048, 1045, 1046,
849      1058, 1088, 1107, 4202, 4208, 7131, 1081, 1103, 1094, 1152,
850      7131, 1161, 7131, 4211, 4214, 7131, 4217, 4223, 1205, 1212,
851      1223, 1276, 7131, 1277, 7131, 4235, 1261, 1251, 1264, 1267,
852
853      1285, 1298, 4238, 4241, 4249, 4259, 1304, 1295, 1316, 1344,
854      1333, 1349, 4262, 4265, 4268, 7131, 7131, 4280, 4284, 4293,
855      4298, 7131, 4301, 4304, 1443, 1446, 1390, 4317, 4324, 4335,
856      4338, 7131, 1331, 1339, 1336, 1344, 4341, 4344, 1497, 1591,
857      1338, 1368, 1378, 1377, 1386, 1442, 1422, 1439, 1466, 1482,
858      1496, 4353, 1443, 1471, 1473, 7131, 7131, 4359, 4362, 4373,
859      7131, 7131, 1472, 1478, 1481, 7131, 7131, 4381, 4384, 1516,
860      1520, 1538, 1542, 1545, 1551, 4392, 1618, 1681, 4400, 1557,
861      1556, 1589, 1589, 1599, 1609, 4403, 4406, 4410, 7131, 4415,
862      7131, 7131, 4424, 4429, 4437, 7131, 1696, 1631, 1641, 4442,
863
864      7131, 7131, 4450, 4456, 4468, 1600, 4471, 1640, 4474, 4477,
865      1664, 1688, 1676, 1702, 1694, 1738, 1724, 1729, 1733, 7131,
866      1749, 1736, 1736, 1739, 7131, 4485, 4488, 1751, 1760, 4492,
867      7131, 7131, 1751, 4500, 1760, 4506, 7131, 7131, 1776, 1785,
868      1800, 1790, 1796, 1824, 1830, 1841, 1833, 1848, 4514, 1849,
869      1877, 1896, 1886, 1891, 1908, 4518, 4521, 4539, 7131, 7131,
870      1938, 2001, 4527, 4547, 7131, 7131, 4524, 1873, 4555, 1875,
871      4558, 7131, 7131, 1925, 1915, 1929, 1922, 4568, 1920, 1954,
872      1980, 1968, 1958, 1977, 2004, 1993, 4571, 4574, 4577, 1965,
873      2005, 1961, 1992, 4586, 4592, 1983, 2027, 2039, 2041, 2046,
874
875      2052, 2045, 2081, 2050, 2081, 2053, 4600, 2067, 2073, 2067,
876      2073, 2081, 2074, 4604, 4607, 2098, 4610, 4613, 4633, 4641,
877      4644, 2076, 2095, 2087, 2098, 4652, 4655, 2095, 2098, 7131,
878      2099, 2102, 2102, 7131, 2105, 4663, 4666, 7131, 7131, 2083,
879      2088, 2090, 2116, 4674, 4678, 7131, 7131, 4686, 2143, 2136,
880      2146, 2148, 2140, 2151, 7131, 2174, 7131, 2172, 4692, 7131,
881      2158, 2150, 2163, 2167, 2159, 2172, 4695, 4698, 4706, 4713,
882      4717, 4726, 2178, 4731, 4734, 4754, 4793, 4837, 4744, 4762,
883      2175, 2201, 2184, 2207, 4766, 7131, 7131, 2221, 2196, 2198,
884      2226, 2206, 2208, 4783, 2192, 2205, 2199, 2195, 4787, 4774,
885
886      4805, 4813, 2236, 2247, 2268, 2249, 2252, 2276, 7131, 7131,
887      2265, 2267, 2306, 2287, 2294, 2311, 4823, 7131, 7131, 4831,
888      4857, 7131, 7131, 4849, 2333, 4867, 2346, 2366, 4903, 4947,
889      2308, 7131, 2317, 7131, 7131, 2328, 2349, 7131, 2347, 2349,
890      4875, 7131, 2310, 2296, 2314, 2315, 4880, 7131, 7131, 4888,
891      2400, 2408, 2371, 2372, 7131, 2382, 2388, 7131, 2394, 2407,
892      7131, 2408, 2410, 7131, 4897, 4915, 2413, 2442, 2444, 2420,
893      2478, 2427, 4923, 2428, 2430, 7131, 7131, 7131, 7131, 4926,
894      4938, 4967, 4970, 2447, 2443, 2451, 2460, 7131, 7131, 7131,
895      7131, 7131, 7131, 7131, 7131, 4973, 4978, 4981, 2484, 2471,
896
897      2485, 4991, 2489, 2488, 4996, 4929, 5000, 5004, 5014, 5018,
898      2450, 5026, 5033, 2477, 2500, 2484, 2503, 5044, 5047, 5050,
899      2507, 7131, 7131, 5053, 7131, 7131, 5065, 7131, 7131, 5073,
900      7131, 7131, 2484, 5081, 7131, 7131, 2500, 2500, 2506, 2506,
901      5091, 5094, 2536, 7131, 2507, 2528, 2539, 2538, 2550, 5097,
902      5100, 2559, 2528, 2560, 2575, 2565, 2585, 5103, 5121, 2591,
903      5124, 2593, 2614, 2603, 2623, 5127, 5130, 2655, 5133, 5156,
904      2647, 7131, 2645, 7131, 5164, 5167, 2656, 5185, 7131, 7131,
905      7131, 7131, 5193, 5196, 5199, 5202, 5205, 5214, 5228, 5233,
906      2645, 2653, 5240, 5247, 2648, 2681, 5251, 5254, 2670, 2728,
907
908      5258, 5272, 2663, 2709, 5277, 5283, 5299, 5302, 2693, 2729,
909      5310, 7131, 7131, 5319, 7131, 7131, 2768, 2777, 2737, 2740,
910      2842, 2847, 2789, 2845, 2679, 2738, 2856, 2892, 2790, 2871,
911      5327, 5330, 7131, 7131, 5350, 5359, 5368, 5377, 5386, 5395,
912      5404, 5413, 5422, 5431, 5440, 5449, 5458, 5467, 5476, 5485,
913      5494, 5503, 5512, 5521, 5530, 5539, 5548, 5557, 5566, 5575,
914      5584, 5593, 5602, 5611, 5620, 5629, 5638, 5647, 5656, 5665,
915      5674, 5683, 5690, 5697, 5704, 5711, 5718, 5725, 5732, 5739,
916      5746, 5753, 5760, 5767, 5774, 5781, 5788, 5795, 5802, 5811,
917      5816, 5821, 5826, 5831, 5836, 5841, 5846, 5851, 5856, 5863,
918
919      5868, 5875, 5880, 5887, 5892, 5899, 5904, 5911, 5916, 5923,
920      5928, 5935, 5940, 5947, 5952, 5961, 5967, 5974, 5982, 5989,
921      5997, 6004, 6012, 6019, 6027, 6034, 6042, 6049, 6057, 6064,
922      6072, 6079, 6087, 6094, 6102, 6109, 6117, 6125, 6132, 6140,
923      6147, 6155, 6162, 6170, 6178, 6185, 6193, 6200, 6208, 6217,
924      6223, 6230, 6238, 6246, 6254, 6262, 6270, 6277, 6285, 6292,
925      6300, 6307, 6315, 6322, 6330, 6337, 6345, 6352, 6360, 6367,
926      6375, 6383, 6390, 6398, 6405, 6413, 6420, 6428, 6436, 6443,
927      6451, 6458, 6466, 6475, 6484, 6491, 6499, 6507, 6514, 6522,
928      6529, 6537, 6544, 6552, 6559, 6567, 6574, 6582, 6589, 6597,
929
930      6605, 6613, 6621, 6629, 6637, 6644, 6652, 6659, 6667, 6674,
931      6682, 6690, 6697, 6705, 6713, 6721, 6730, 6739, 6746, 6754,
932      6762, 6769, 6777, 6784, 6792, 6799, 6807, 6815, 6823, 6831,
933      6838, 6846, 6854, 6862, 6870, 6878, 6885, 6893, 6901, 6909,
934      6917, 6925, 6933, 6940, 6948, 6956, 6965, 6974, 6982, 6990,
935      6998, 7005, 7013, 7020, 7028, 7036, 7044, 7052, 7060, 7067,
936      7076, 7085, 7094, 7103, 7112, 7121
937     } ;
938
939 static yyconst flex_int16_t yy_def[2267] =
940     {   0,
941      2035, 2035, 2036, 2036, 2036, 2036, 2037, 2037, 2038, 2038,
942      2039, 2039, 2040, 2040, 2040, 2040, 2041, 2041, 2035, 2035,
943      2042, 2042, 2043, 2043, 2043, 2043, 2035, 2035, 2043, 2043,
944      2035, 2035, 2043, 2043, 2043, 2043, 2044, 2044, 2045, 2045,
945      2046, 2046, 2040, 2040, 2047, 2047, 2048, 2048, 2035, 2035,
946      2048, 2048, 2048, 2048, 2049, 2049, 2050, 2050, 2051, 2051,
947      2052, 2052, 2053, 2053, 2035, 2035, 2035, 2035, 2054, 2054,
948      2034,   71, 2055, 2055, 2035, 2035, 2055, 2055, 2055, 2055,
949      2056, 2056, 2057, 2057, 2034,   85, 2058, 2058, 2059, 2059,
950      2060, 2060, 2061, 2061, 2062, 2062, 2035, 2035, 2062, 2062,
951
952      2062, 2062, 2063, 2063, 2035, 2035, 2035, 2035, 2064, 2064,
953      2064, 2064, 2065, 2065, 2066, 2066, 2035, 2035, 2066, 2066,
954      2066, 2066, 2067, 2067, 2068, 2068, 2069, 2069, 2070, 2070,
955      2035, 2035, 2070, 2070, 2070, 2070, 2071, 2071, 2072, 2072,
956      2035, 2035, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
957      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
958      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
959      2034, 2034, 2034, 2073, 2034, 2034, 2073, 2073, 2034, 2034,
960      2034, 2034,  181,  182,  182, 2034, 2034, 2034, 2074, 2034,
961      2034, 2074, 2034, 2034, 2034, 2034, 2034, 2034, 2075, 2034,
962
963      2034, 2075, 2075, 2075, 2034, 2034, 2034, 2034, 2034, 2076,
964      2034, 2034, 2076, 2076, 2076, 2076, 2034, 2034,  185,  185,
965       185, 2034, 2034, 2034, 2077, 2034, 2034, 2077, 2077, 2077,
966      2034, 2034, 2034, 2034, 2034, 2034, 2078, 2034, 2034, 2078,
967      2078, 2078, 2078, 2034, 2034, 2034, 2034, 2034, 2034, 2079,
968      2034, 2034, 2079,  185,  254, 2034, 2034,  185, 2034, 2034,
969      2034, 2080, 2034, 2034, 2080, 2080, 2080, 2080, 2080, 2080,
970      2034, 2034,  185,  185, 2034, 2034, 2034, 2081, 2034, 2034,
971      2081, 2081, 2034, 2034, 2034, 2034, 2034, 2034, 2082, 2034,
972      2034, 2082, 2082, 2082, 2082, 2082, 2082, 2034, 2034, 2034,
973
974      2034, 2034, 2034, 2083, 2034, 2034, 2083, 2034, 2034, 2034,
975      2034, 2034, 2034, 2084, 2034, 2034, 2084, 2084, 2084, 2084,
976      2034, 2034,  185,  185, 2034, 2034, 2034, 2085, 2034, 2034,
977      2085, 2085, 2085,  185, 2034, 2034,  185,  185, 2034, 2034,
978      2034, 2086, 2034, 2034, 2086, 2086, 2086, 2086, 2034, 2034,
979       185,  185, 2034, 2034, 2034, 2087, 2034, 2034, 2087, 2034,
980      2034, 2034, 2034, 2034, 2034, 2088, 2034, 2034, 2088, 2088,
981      2088, 2088, 2034, 2034,  185,  375,  185, 2034, 2034, 2034,
982      2089, 2034, 2034, 2089, 2034, 2034, 2034, 2034, 2090, 2034,
983      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
984
985      2034, 2034, 2034, 2034, 2073, 2073, 2073, 2091, 2034, 2034,
986      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
987      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
988      2034, 2074, 2074, 2092, 2034, 2075, 2075, 2075, 2075, 2034,
989      2093, 2034, 2034, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
990      2094, 2034, 2034, 2077, 2077, 2077, 2077, 2095, 2034, 2078,
991      2078, 2078, 2078, 2078, 2096, 2034, 2079, 2079, 2097, 2034,
992      2080, 2080, 2080, 2080, 2080, 2080, 2080, 2080, 2098, 2034,
993      2081, 2081, 2081, 2099, 2034, 2100, 2100, 2100, 2100, 2100,
994      2100, 2100, 2100, 2100, 2101, 2034, 2102, 2102, 2103, 2034,
995
996      2104, 2104, 2104, 2104, 2104, 2104, 2105, 2034, 2106, 2106,
997      2106, 2106, 2106, 2034, 2107, 2034, 2108, 2108, 2108, 2108,
998      2108, 2109, 2034, 2110, 2110, 2111, 2034, 2112, 2112, 2112,
999      2112, 2112, 2113, 2034, 2034, 2114, 2114, 2115, 2116, 2034,
1000      2116, 2034, 2034, 2034, 2117, 2034, 2034, 2034, 2034, 2034,
1001      2034, 2034, 2118, 2118, 2119, 2119, 2034, 2034, 2034, 2034,
1002      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1003      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1004      2034, 2120, 2121, 2121, 2122, 2034, 2034, 2122, 2034, 2123,
1005      2123, 2034, 2124, 2034, 2034, 2124, 2124, 2124, 2124, 2125,
1006
1007      2125, 2034, 2126, 2126, 2126, 2127, 2127, 2034, 2034, 2128,
1008      2128, 2128, 2129, 2129, 2130, 2131, 2131, 2132, 2034, 2034,
1009      2132, 2132, 2132, 2132, 2132, 2133, 2133, 2034, 2034, 2134,
1010      2135, 2135, 2136, 2034, 2034, 2034, 2034, 2136, 2136, 2136,
1011      2136, 2136, 2137, 2137, 2034, 2034, 2138, 2138, 2139, 2034,
1012      2034, 2139, 2139, 2139, 2140, 2140, 2141, 2141, 2141, 2141,
1013      2034, 2142, 2142, 2143, 2143, 2143, 2143, 2144, 2144, 2034,
1014      2034, 2145, 2145, 2146, 2146, 2146, 2146, 2147, 2147, 2034,
1015      2148, 2149, 2149, 2150, 2034, 2034, 2150, 2034, 2034, 2151,
1016      2034, 2034, 2034, 2034, 2034, 2034, 2152, 2152, 2034, 2153,
1017
1018      2034, 2153, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1019      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1020      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2154, 2034, 2155,
1021      2034, 2155, 2156, 2034, 2034, 2034, 2156, 2034, 2034, 2157,
1022      2034, 2157, 2158, 2034, 2034, 2034, 2034, 2034, 2158, 2034,
1023      2034, 2158, 2034, 2159, 2034, 2159, 2034, 2160, 2160, 2160,
1024      2034, 2161, 2034, 2161, 2034, 2034, 2034, 2162, 2162, 2162,
1025      2034, 2163, 2034, 2163, 2164, 2034, 2165, 2034, 2165, 2166,
1026      2034, 2034, 2034, 2166, 2166, 2166, 2166, 2166, 2034, 2167,
1027      2034, 2167, 2034, 2034, 2034, 2168, 2034, 2169, 2034, 2169,
1028
1029      2170, 2170, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1030      2170, 2170, 2170, 2170, 2034, 2171, 2034, 2171, 2034, 2034,
1031      2034, 2034, 2172, 2034, 2172, 2173, 2034, 2034, 2034, 2173,
1032      2173, 2173, 2034, 2174, 2034, 2174, 2175, 2034, 2034, 2034,
1033      2034, 2175, 2034, 2034, 2176, 2034, 2176, 2177, 2034, 2034,
1034      2177, 2034, 2034, 2034, 2178, 2034, 2178, 2034, 2034, 2034,
1035      2034, 2179, 2034, 2179, 2180, 2180, 2180, 2180, 2034, 2181,
1036      2034, 2181, 2034, 2182, 2034, 2183, 2034, 2183, 2184, 2185,
1037      2034, 2034, 2034, 2034, 2034, 2186, 2186, 2187, 2034, 2034,
1038      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1039
1040      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1041      2034, 2034, 2034, 2034, 2034, 2034, 2188, 2034, 2034, 2189,
1042      2034, 2190, 2191, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1043      2034, 2191, 2192, 2034, 2193, 2034, 2034, 2193, 2194, 2195,
1044      2195, 2195, 2196, 2197, 2198, 2199, 2199, 2199, 2199, 2199,
1045      2199, 2200, 2201, 2202, 2203, 2203, 2034, 2034, 2034, 2203,
1046      2203, 2203, 2203, 2204, 2205, 2206, 2206, 2206, 2206, 2207,
1047      2208, 2034, 2034, 2034, 2034, 2034, 2034, 2208, 2034, 2209,
1048      2210, 2034, 2034, 2034, 2210, 2034, 2034, 2034, 2211, 2212,
1049      2213, 2034, 2034, 2213, 2213, 2214, 2034, 2215, 2216, 2217,
1050
1051      2218, 2218, 2034, 2218, 2034, 2034, 2034, 2219, 2219, 2220,
1052      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1053      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1054      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2221, 2034,
1055      2034, 2034, 2222, 2034, 2223, 2224, 2034, 2034, 2034, 2224,
1056      2225, 2034, 2226, 2034, 2034, 2034, 2034, 2034, 2227, 2228,
1057      2228, 2228, 2034, 2034, 2229, 2230, 2231, 2231, 2231, 2034,
1058      2034, 2034, 2034, 2231, 2231, 2232, 2034, 2034, 2233, 2034,
1059      2034, 2234, 2034, 2034, 2234, 2234, 2234, 2235, 2236, 2237,
1060      2237, 2237, 2034, 2034, 2237, 2238, 2239, 2239, 2034, 2240,
1061
1062      2241, 2241, 2242, 2243, 2244, 2034, 2034, 2034, 2244, 2244,
1063      2245, 2034, 2034, 2034, 2246, 2247, 2248, 2248, 2034, 2034,
1064      2249, 2249, 2249, 2250, 2034, 2034, 2034, 2034, 2034, 2034,
1065      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1066      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2251, 2252, 2034,
1067      2253, 2254, 2254, 2255, 2256, 2034, 2034, 2034, 2034, 2034,
1068      2034, 2034, 2034, 2034, 2034, 2034, 2257, 2034, 2034, 2258,
1069      2034, 2034, 2034, 2034, 2259, 2260, 2260, 2260, 2034, 2034,
1070      2034, 2034, 2034, 2034, 2260, 2260, 2034, 2034, 2034, 2034,
1071      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1072
1073      2034, 2034, 2034, 2234, 2034, 2034, 2235, 2236, 2237, 2237,
1074      2237, 2034, 2034, 2034, 2237, 2034, 2034, 2034, 2034, 2239,
1075      2034, 2240, 2034, 2034, 2241, 2242, 2243, 2244, 2244, 2244,
1076      2245, 2034, 2034, 2034, 2034, 2246, 2247, 2248, 2248, 2034,
1077      2034, 2034, 2249, 2249, 2250, 2034, 2034, 2034, 2034, 2034,
1078      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1079      2034, 2034, 2034, 2034, 2251, 2252, 2034, 2034, 2034, 2254,
1080      2254, 2255, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1081      2034, 2034, 2034, 2034, 2257, 2034, 2034, 2034, 2034, 2034,
1082      2034, 2034, 2034, 2034, 2034, 2034, 2259, 2260, 2260, 2260,
1083
1084      2034, 2034, 2260, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1085      2034, 2034, 2034, 2034, 2034, 2034, 2235, 2236, 2237, 2034,
1086      2034, 2237, 2237, 2034, 2034, 2237, 2034, 2034, 2034, 2239,
1087      2034, 2240, 2034, 2034, 2034, 2241, 2034, 2034, 2243, 2244,
1088      2244, 2244, 2245, 2034, 2246, 2247, 2248, 2248, 2034, 2034,
1089      2034, 2034, 2249, 2249, 2250, 2034, 2034, 2034, 2034, 2034,
1090      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1091      2251, 2252, 2034, 2254, 2254, 2034, 2034, 2034, 2034, 2034,
1092      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1093      2257, 2034, 2034, 2034, 2259, 2260, 2260, 2260, 2034, 2034,
1094
1095      2034, 2034, 2260, 2034, 2034, 2034, 2034, 2034, 2034, 2235,
1096      2034, 2034, 2237, 2034, 2034, 2034, 2237, 2237, 2034, 2034,
1097      2034, 2034, 2237, 2034, 2034, 2034, 2034, 2239, 2034, 2240,
1098      2034, 2034, 2034, 2034, 2241, 2243, 2034, 2034, 2244, 2244,
1099      2245, 2034, 2246, 2247, 2248, 2248, 2034, 2249, 2249, 2250,
1100      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2252,
1101      2034, 2034, 2254, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1102      2034, 2034, 2034, 2257, 2034, 2034, 2260, 2260, 2260, 2034,
1103      2034, 2034, 2034, 2260, 2034, 2034, 2034, 2034, 2237, 2237,
1104      2237, 2034, 2034, 2034, 2034, 2237, 2034, 2034, 2034, 2034,
1105
1106      2034, 2034, 2034, 2034, 2034, 2240, 2034, 2034, 2034, 2034,
1107      2034, 2034, 2241, 2243, 2034, 2034, 2034, 2034, 2034, 2244,
1108      2034, 2034, 2034, 2246, 2247, 2248, 2248, 2034, 2034, 2249,
1109      2034, 2034, 2034, 2034, 2034, 2034, 2252, 2034, 2034, 2034,
1110      2254, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1111      2034, 2257, 2260, 2260, 2260, 2034, 2034, 2034, 2034, 2034,
1112      2034, 2034, 2237, 2237, 2237, 2034, 2034, 2034, 2034, 2034,
1113      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2240, 2034,
1114      2034, 2034, 2034, 2034, 2034, 2241, 2241, 2034, 2034, 2034,
1115      2034, 2034, 2034, 2034, 2034, 2034, 2247, 2248, 2248, 2034,
1116
1117      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1118      2034, 2034, 2034, 2034, 2254, 2034, 2034, 2034, 2034, 2034,
1119      2034, 2034, 2034, 2034, 2034, 2257, 2260, 2260, 2260, 2034,
1120      2034, 2034, 2237, 2237, 2237, 2034, 2034, 2034, 2034, 2034,
1121      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2240, 2034,
1122      2034, 2034, 2034, 2034, 2034, 2241, 2241, 2034, 2034, 2034,
1123      2247, 2248, 2248, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1124      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2254, 2034, 2034,
1125      2034, 2034, 2034, 2034, 2034, 2034, 2257, 2034, 2034, 2260,
1126      2260, 2260, 2237, 2034, 2034, 2237, 2034, 2034, 2034, 2034,
1127
1128      2034, 2034, 2034, 2034, 2034, 2034, 2240, 2034, 2034, 2034,
1129      2034, 2034, 2034, 2241, 2241, 2247, 2248, 2248, 2248, 2034,
1130      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1131      2034, 2034, 2034, 2034, 2034, 2257, 2034, 2034, 2034, 2260,
1132      2260, 2260, 2260, 2237, 2034, 2034, 2034, 2237, 2034, 2034,
1133      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1134      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2241, 2034,
1135      2034, 2241, 2247, 2248, 2248, 2248, 2261, 2262, 2034, 2034,
1136      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1137      2034, 2034, 2034, 2257, 2260, 2260, 2260, 2260, 2034, 2034,
1138
1139      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1140      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2241,
1141      2034, 2034, 2034, 2241, 2247, 2248, 2263, 2264, 2261, 2262,
1142      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1143      2034, 2034, 2260, 2260, 2260, 2260, 2034, 2034, 2034, 2034,
1144      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1145      2034, 2034, 2034, 2034, 2241, 2241, 2247, 2263, 2248, 2265,
1146      2264, 2266, 2248, 2034, 2034, 2034, 2034, 2034, 2034, 2260,
1147      2260, 2260, 2260, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1148      2034, 2034, 2034, 2034, 2034, 2241, 2241, 2247, 2265, 2034,
1149
1150      2266, 2248, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1151      2260, 2034, 2034, 2034, 2034, 2034, 2034, 2241, 2241, 2247,
1152      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1153      2034, 2034, 2260, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1154      2241, 2241, 2247, 2034, 2260, 2034, 2034, 2034, 2034, 2241,
1155      2241, 2247, 2260, 2034, 2034, 2034, 2034, 2241, 2241, 2247,
1156      2260, 2034, 2034, 2034, 2034, 2241, 2241, 2247, 2034, 2034,
1157      2034, 2034, 2034, 2034, 2241, 2241, 2247, 2034, 2034, 2034,
1158      2034, 2034, 2241, 2241, 2247, 2241, 2241, 2247, 2241, 2241,
1159      2247, 2247, 2241, 2241, 2247, 2247, 2241, 2241, 2247, 2247,
1160
1161      2241, 2241, 2247, 2247, 2034, 2034, 2034, 2034, 2247, 2247,
1162      2034, 2034, 2034, 2034, 2034, 2034, 2247, 2247, 2247, 2247,
1163      2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247,
1164      2247, 2247, 2034,    0, 2034, 2034, 2034, 2034, 2034, 2034,
1165      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1166      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1167      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1168      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1169      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1170      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1171
1172      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1173      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1174      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1175      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1176      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1177      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1178      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1179      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1180      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1181      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1182
1183      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1184      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1185      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1186      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1187      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1188      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1189      2034, 2034, 2034, 2034, 2034, 2034
1190     } ;
1191
1192 static yyconst flex_int16_t yy_nxt[7201] =
1193     {   0,
1194      2034,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1195       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1196       148,  154,  451,  149, 2034,  155,  149, 2034,  155,  152,
1197       151,  147,  151,  389,  158,  160,  161,  158,  160,  161,
1198       162,  163, 2034,  162,  163,  389,  152,  167,  168,  390,
1199       164,  160,  161,  164,  165,  392,  162,  160,  161,  563,
1200       165,  391,  162,  167,  168,  564,  164,  147,  147,  147,
1201       452,  391,  164,  147,  147,  147,  180,  147,  180,  180,
1202       147,  180,  473,  170,  180,  147,  180,  512,  169,  170,
1203       452,  474,  181,  563,  513,  181,  388,  388,  388,  577,
1204
1205       182,  388,  388,  388,  169,  171,  172,  147,  172,  171,
1206       171,  171,  171,  171,  171,  171,  173,  171,  171,  171,
1207      1491,  171,  175,  171,  176,  171,  180,  147,  180,  147,
1208       147,  147,  505,  147,  147,  147,  180,  147,  180,  180,
1209       147,  180,  182,  506,  563,  183,  392,  171,  171,  183,
1210       602,  491,  181,  392,  492,  181,  388,  388,  388,  388,
1211       388,  388,  391,  388,  388,  388,  388,  388,  388,  391,
1212       177, 2034,  178,  171,  172,  147,  172,  171,  171,  171,
1213       171,  171,  171,  171,  173,  171,  171,  171,  479,  171,
1214       175,  171,  176,  171,  147,  147,  147,  147,  147,  147,
1215
1216       685,  180,  147,  180,  180,  147,  180,  180,  147,  180,
1217       184,  565,  392,  184,  392,  171,  171,  182,  392,  426,
1218       182,  427, 1116,  185,  566,  180,  147,  180,  391,  428,
1219       391,  388,  388,  388,  391,  426,  452,  429,  177,  430,
1220       178,  185,  186,  187,  147,  187,  186,  186,  186,  186,
1221       186,  186,  186,  188,  186,  186,  186,  487,  186,  190,
1222       186,  191,  186,  194,  147,  194,  194,  147,  194,  403,
1223       218,  147,  218,  160,  161,  160,  161,  488,  162,  195,
1224       162, 1277,  195,  447,  186,  186,  219,  448,  205, 1278,
1225       205,  449,  192,  186,  187,  147,  187,  186,  186,  186,
1226
1227       186,  186,  186,  186,  188,  186,  186,  186,  896,  186,
1228       190,  186,  191,  186,  206, 2034,  206,  218,  147,  218,
1229       897,  147,  147,  147,  147,  147,  147,  388,  388,  388,
1230       388,  388,  388,  219,  685,  186,  186,  220,  879,  546,
1231       220,  515,  547,  192,  196,  197,  147,  197,  196,  196,
1232       196,  196,  196,  196,  196,  198,  196,  196,  196,  514,
1233       196,  200,  196,  201,  196,  218,  147,  218,  218,  147,
1234       218,  507,  218,  147,  218,  218,  147,  218,  388,  388,
1235       388,  219,  392,  440,  219,  514,  196,  196,  221,  434,
1236       441,  221, 1424, 1425,  202, 1426, 1427,  203,  391,  391,
1237
1238       388,  388,  388,  204,  196,  197,  147,  197,  196,  196,
1239       196,  196,  196,  196,  196,  198,  196,  196,  196,  452,
1240       196,  200,  196,  201,  196,  232,  147,  232,  232,  147,
1241       232,  910,  245,  147,  245,  245,  147,  245,  540,  392,
1242       392,  233, 1282,  897,  233,  392,  196,  196,  246,  573,
1243      1283,  246,  458,  541,  202,  391,  391,  203,  388,  388,
1244       388,  391,  574,  204,  207,  208,  147,  208,  207,  207,
1245       207,  207,  207,  207,  207,  209,  207,  207,  207,  910,
1246       207,  211,  207,  212,  207,  147,  147,  147,  147,  147,
1247       147,  934,  147,  147,  147,  147,  147,  147,  257,  147,
1248
1249       257,  254,  392,  392,  254, 1492,  207,  207,  255,  465,
1250       522,  255,  565, 1493,  258,  213, 1494,  214,  391,  391,
1251       215,  388,  388,  388, 2034,  578,  216,  207,  208,  147,
1252       208,  207,  207,  207,  207,  207,  207,  207,  209,  207,
1253       207,  207,  540,  207,  211,  207,  212,  207,  257,  147,
1254       257,  272,  147,  272,  514,  272,  147,  272,  147,  147,
1255       147,  147,  147,  147,  258,  412,  392,  273,  414,  207,
1256       207,  273,  392, 1122,  220,  589, 1495,  220,  213, 1123,
1257       214, 1496,  391,  215,  388,  388,  388, 1003,  391,  216,
1258       222,  223,  147,  223,  222,  222,  222,  222,  222,  222,
1259
1260       222,  224,  222,  222,  222, 1497,  222,  226,  222,  227,
1261       222,  272,  147,  272,  272,  147,  272, 1239,  272,  147,
1262       272,  272,  147,  272,  284,  147,  284,  273, 1500,  801,
1263       273, 1003,  222,  222,  274,  392,  392,  274,  802,  228,
1264       285,  388,  388,  388,  229,  388,  388,  388,  388,  388,
1265       388,  391,  391,  230,  222,  223,  147,  223,  222,  222,
1266       222,  222,  222,  222,  222,  224,  222,  222,  222, 1238,
1267       222,  226,  222,  227,  222,  284,  147,  284,  299,  147,
1268       299, 1507,  299,  147,  299,  309,  147,  309,  309,  147,
1269       309,  285, 1431, 1432,  300, 1399,  222,  222,  300,  392,
1270
1271       392,  310, 1400,  228,  310,  388,  388,  388,  229,  388,
1272       388,  388,  388,  388,  388,  391,  391,  230,  234,  235,
1273       147,  235,  234,  234,  234,  234,  234,  234,  234,  236,
1274       234,  234,  234, 1510,  234,  238,  234,  239,  234,  322,
1275       147,  322,  322,  147,  322,  685,  147,  147,  147,  147,
1276       147,  147,  322,  147,  322,  323,  392,  573,  323, 1520,
1277       234,  234,  220,  484, 1000,  220, 1003, 1003,  323, 1401,
1278       580,  240,  391,  388,  388,  388, 1402,  241, 1533,  242,
1279       243,  234,  235,  147,  235,  234,  234,  234,  234,  234,
1280       234,  234,  236,  234,  234,  234, 1526,  234,  238,  234,
1281
1282       239,  234,  322,  147,  322,  322,  147,  322, 1348,  322,
1283       147,  322,  147,  147,  147,  147,  147,  147,  323, 1433,
1284      1434,  324,  392,  234,  234,  324,  685,  685,  334,  495,
1285      1534,  334, 1419, 1346,  240,  388,  388,  388,  391, 1420,
1286       241,  687,  242,  243,  247,  248,  147,  248,  247,  247,
1287       247,  247,  247,  247,  247,  249,  247,  247,  247, 1003,
1288       247,  251,  247,  252,  247,  147,  147,  147,  147,  147,
1289       147, 1535,  336,  147,  336,  336,  147,  336,  336,  147,
1290       336,  334, 1536, 1421,  334,  392,  247,  247,  337,  392,
1291      1422,  337,  499, 1527,  338,  388,  388,  388,  388,  388,
1292
1293       388,  391,  388,  388,  388,  391,  253,  247,  248,  147,
1294       248,  247,  247,  247,  247,  247,  247,  247,  249,  247,
1295       247,  247, 1537,  247,  251,  247,  252,  247,  336,  147,
1296       336,  350,  147,  350, 1541,  350,  147,  350,  147,  147,
1297       147,  147,  147,  147,  338, 1542, 1498,  351, 1499,  247,
1298       247,  351,  392, 1501,  334, 1502, 1543,  334,  388,  388,
1299       388,  388,  388,  388,  388,  388,  388, 1544,  391,  253,
1300       259,  260,  147,  260,  259,  259,  259,  259,  259,  259,
1301       259,  261,  259,  259,  259,  262,  259,  263,  259,  264,
1302       259,  262,  262,  262,  262,  262,  262,  262,  262,  262,
1303
1304       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
1305       262,  262,  259,  259,  262,  265,  262,  262,  262,  262,
1306       262,  262,  262,  266,  262,  262,  267,  262,  262,  268,
1307       262,  262,  269,  262,  262,  270,  262,  262,  262,  275,
1308       276,  147,  276,  275,  275,  275,  275,  275,  275,  275,
1309       277,  275,  275,  275,  533,  275,  279,  275,  280,  275,
1310       350,  147,  350,  350,  147,  350, 1545,  350,  147,  350,
1311       350,  147,  350,  361,  147,  361,  351, 1003, 1508,  351,
1312      1509,  275,  275,  352, 1546, 1547,  352,  392,  534,  362,
1313      1548, 1549,  281,  388,  388,  388,  388,  388,  388,  388,
1314
1315       388,  388,  452,  391,  282,  275,  276,  147,  276,  275,
1316       275,  275,  275,  275,  275,  275,  277,  275,  275,  275,
1317      1446,  275,  279,  275,  280,  275,  361,  147,  361,  374,
1318       147,  374, 1550,  374,  147,  374,  147,  147,  147,  147,
1319       147,  147,  362, 1551, 1553,  375,  392,  275,  275,  375,
1320      1554, 1555,  376,  526, 1511,  376, 1512, 1556,  281,  388,
1321       388,  388,  391,  388,  388,  388,  388,  388,  388, 1557,
1322       282,  286,  287,  147,  287,  286,  286,  286,  286,  286,
1323       286,  286,  288,  286,  286,  286,  289,  286,  290,  286,
1324       291,  286,  289,  289,  289,  289,  289,  289,  289,  289,
1325
1326       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1327       289,  289,  289,  286,  286,  289,  289,  292,  289,  289,
1328       289,  289,  289,  289,  293,  289,  294,  289,  289,  289,
1329       295,  289,  296,  297,  289,  289,  289,  289,  289,  289,
1330       301,  302,  147,  302,  301,  301,  301,  301,  301,  301,
1331       301,  303,  301,  301,  301, 1563,  301,  305,  301,  306,
1332       301,  374,  147,  374,  374,  147,  374, 1564,  374,  147,
1333       374,  374,  147,  374,  386,  147,  386,  375, 1565,  397,
1334       375, 1566,  301,  301,  377, 1567, 1570,  377, 1571, 1572,
1335       387, 1003, 1573,  307,  301,  302,  147,  302,  301,  301,
1336
1337       301,  301,  301,  301,  301,  303,  301,  301,  301,  392,
1338       301,  305,  301,  306,  301,  386,  147,  386,  398,  388,
1339       388,  388, 1574, 1575,  399,  391,  685,  392,  400, 1580,
1340      1445,  387, 1581,  401,  538, 1003,  301,  301,  388,  388,
1341       388, 1582, 1237,  391,  388,  388,  388,  307,  311,  312,
1342       147,  312,  311,  311,  311,  311,  311,  311,  311,  313,
1343       311,  311,  311, 1347,  311,  315,  311,  316,  311, 1583,
1344      1584,  544,  544,  544, 1585,  586,  586,  586,  594,  594,
1345       594,  608,  608,  608, 1605,  619,  619,  619, 1606, 1607,
1346       311,  311,  587, 1608,  317,  595, 1615, 1616,  609, 1617,
1347
1348      1618,  318,  620,  319,  544,  544,  544, 1619,  689, 1003,
1349       320,  311,  312,  147,  312,  311,  311,  311,  311,  311,
1350       311,  311,  313,  311,  311,  311,  545,  311,  315,  311,
1351       316,  311,  628,  628,  628,  634,  634,  634,  636,  636,
1352       636,  645,  645,  645,  650,  650,  650, 1620, 1599,  629,
1353      1156, 1621,  635,  311,  311,  637, 1157,  317,  646, 1158,
1354      1622,  651,  685, 1159,  318, 1003,  319,  900,  900,  900,
1355       908,  908,  908,  320,  325,  326,  147,  326,  325,  325,
1356       325,  325,  325,  325,  325,  327,  325,  325,  325, 1623,
1357       325,  329,  325,  330,  325,  670,  670,  670, 1597, 1598,
1358
1359       699,  699,  699, 1624, 1625,  699,  699,  699,  729,  729,
1360       729, 1627,  671,  729,  729,  729,  325,  325,  701,  331,
1361      1628, 1611,  332,  701, 1629, 1633,  731, 1634,  734,  734,
1362       734,  731,  735, 1612, 1635,  736,  333,  325,  326,  147,
1363       326,  325,  325,  325,  325,  325,  325,  325,  327,  325,
1364       325,  325, 1639,  325,  329,  325,  330,  325, 1640,  702,
1365       586,  586,  586,  739,  739,  739,  739,  739,  739,  732,
1366       594,  594,  594, 1641,  747,  747,  747,  587, 1642,  325,
1367       325,  741,  331, 1643,  741,  332, 1644,  595,  744,  744,
1368       744,  748,  745, 1650, 1651,  746, 1014, 1014, 1014,  333,
1369
1370       339,  340,  147,  340,  339,  339,  339,  339,  339,  339,
1371       339,  341,  339,  339,  339, 1613,  339,  343,  339,  344,
1372       339,  750,  750,  750, 1652, 1653,  742, 1614,  753,  753,
1373       753,  761,  761,  761,  753,  753,  753, 1654,  751,  761,
1374       761,  761,  339,  339, 1655,  345,  755, 1668,  346,  763,
1375      1003, 1645,  755,  347,  765,  765,  765,  763,  766, 1646,
1376      1003,  767,  348,  339,  340,  147,  340,  339,  339,  339,
1377       339,  339,  339,  339,  341,  339,  339,  339,  756,  339,
1378       343,  339,  344,  339,  608,  608,  608, 1670, 1662,  771,
1379       771,  771,  776,  776,  776,  776,  776,  776, 1663,  764,
1380
1381      1674,  609,  771,  771,  771,  339,  339,  773,  345, 1675,
1382       778,  346, 1676,  778, 1647,  685,  347,  781,  781,  781,
1383       773,  782, 1648, 1677,  783,  348,  353,  354,  147,  354,
1384       353,  353,  353,  353,  353,  353,  353,  355,  353,  353,
1385       353, 1661,  353,  357,  353,  358,  353,  619,  619,  619,
1386       774, 1678,  779,  789,  789,  789,  789,  789,  789,  628,
1387       628,  628, 1679, 1680,  620, 1020, 1020, 1020,  353,  353,
1388      1681,  791, 1682, 1683,  791, 1684,  629, 1685, 1686,  359,
1389       353,  354,  147,  354,  353,  353,  353,  353,  353,  353,
1390       353,  355,  353,  353,  353, 1691,  353,  357,  353,  358,
1391
1392       353,  793,  793,  793, 1692,  794, 1693, 1696,  795,  797,
1393       797,  797, 1697,  792,  797,  797,  797,  803,  803,  803,
1394      1698,  804,  353,  353,  805, 1699, 1700,  799,  900,  900,
1395       900, 1701,  799,  359,  363,  364,  147,  364,  363,  363,
1396       363,  363,  363,  363,  363,  365,  363,  363,  363, 1702,
1397       363,  367,  363,  368,  363,  634,  634,  634,  636,  636,
1398       636,  806,  806,  806, 1703,  807, 1704, 1705,  808,  815,
1399       815,  815,  635, 1706,  800,  637,  363,  363,  809,  809,
1400       809, 1026, 1026, 1026,  369, 1708,  370,  817,  371,  908,
1401       908,  908, 1052, 1052, 1052,  810,  372,  363,  364,  147,
1402
1403       364,  363,  363,  363,  363,  363,  363,  363,  365,  363,
1404       363,  363, 1709,  363,  367,  363,  368,  363,  645,  645,
1405       645, 1710, 1711,  822,  822,  822, 1712,  815,  815,  815,
1406       819,  819,  819, 1713,  820,  646, 1720,  821, 1721,  363,
1407       363,  824, 1016, 1016, 1016,  817, 1722,  369, 1723,  370,
1408      1724,  371, 1014, 1014, 1014, 1725, 1017,  685, 1728,  372,
1409       378,  379,  147,  379,  378,  378,  378,  378,  378,  378,
1410       378,  380,  378,  378,  378, 1729,  378,  382,  378,  383,
1411       378,  818,  650,  650,  650, 1730,  833,  833,  833, 1731,
1412       822,  822,  822,  827,  827,  827, 1732,  828, 1733,  651,
1413
1414       829, 1716,  378,  378,  835,  833,  833,  833,  824,  858,
1415       858,  858, 1734,  859, 1735, 1740,  860,  734,  734,  734,
1416      1003,  735, 1743,  835,  736,  384,  378,  379,  147,  379,
1417       378,  378,  378,  378,  378,  378,  378,  380,  378,  378,
1418       378, 1744,  378,  382,  378,  383,  378,  825,  838,  838,
1419       838, 1748, 1717,  840,  840,  840, 1749,  836,  844,  844,
1420       844,  844,  844,  844, 1750,  839, 1741, 1742,  378,  378,
1421       841,  849,  849,  849, 1751, 1752,  846, 1753, 1754,  846,
1422       852,  852,  852,  854,  854,  854, 1755, 1756,  850, 1757,
1423      1758,  384,  392,  670,  670,  670, 1761,  853, 1762,  408,
1424
1425      1763,  856, 1764,  854,  854,  854, 1765, 1766,  391, 1781,
1426       671,  861,  861,  861,  861,  861,  861,  685,  847, 1782,
1427      1783,  856, 1784, 1788,  869,  869,  869, 1789, 1790,  863,
1428      1791, 1792,  863,  409, 1793,  410, 1795, 1796,  411, 1797,
1429       412,  413,  871,  414,  869,  869,  869,  415, 1773,  416,
1430       417,  418,  392,  875,  875,  875,  875,  875,  875,  408,
1431       857, 1798,  871,  699,  699,  699,  864, 1803,  391, 1804,
1432      1805,  877, 1806, 1807,  877, 1808,  699,  699,  699, 1809,
1433      1810,  701, 1811, 1812,  699,  699,  699, 1813,  915,  915,
1434       915, 1814, 1815,  409,  701,  419, 1816,  685,  420, 1831,
1435
1436       421,  413,  701,  422,  872,  916, 1832,  415, 1833,  423,
1437       424,  425,  729,  729,  729, 1834,  878,  729,  729,  729,
1438       729,  729,  729,  918,  918,  918, 1835, 1836,  888, 1837,
1439       731, 2034, 2034, 2034, 1838,  731, 1825, 1839,  731, 1840,
1440       919,  739,  739,  739,  739,  739,  739, 1843, 2034,  739,
1441       739,  739, 1844,  744,  744,  744, 1845,  745, 1846,  741,
1442       746, 1853,  741,  747,  747,  747,  917,  741,  924,  924,
1443       924, 1854,  925, 1855, 1856,  926, 1857,  927,  927,  927,
1444       748,  750,  750,  750, 1858,  929,  929,  929,  920,  930,
1445      1859, 1860,  931,  922,  928,  753,  753,  753,  751,  753,
1446
1447       753,  753,  753,  753,  753,  936,  936,  936,  761,  761,
1448       761, 1861, 1862,  755,  761,  761,  761,  755, 1863, 1864,
1449       755, 1874,  937,  761,  761,  761,  763,  765,  765,  765,
1450      1875,  766,  763, 1876,  767,  771,  771,  771,  771,  771,
1451       771,  763,  771,  771,  771,  776,  776,  776,  776,  776,
1452       776, 1869,  685,  773, 1877, 1878,  773, 1879,  933, 1880,
1453       773, 1881, 1882,  778, 1883, 1870,  778,  939,  776,  776,
1454       776,  781,  781,  781, 1869,  782, 1888, 1889,  783,  789,
1455       789,  789,  789,  789,  789, 1872,  778,  789,  789,  789,
1456      1890,  793,  793,  793, 1867,  794, 1891,  791,  795, 1892,
1457
1458       791,  797,  797,  797,  943,  791,  797,  797,  797,  797,
1459       797,  797, 1893,  803,  803,  803, 1894,  804, 1895,  799,
1460       805,  809,  809,  809,  799, 1900, 1884,  799,  945,  806,
1461       806,  806,  685,  807, 1886, 1900,  808, 1885,  810,  957,
1462       957,  957, 1903,  958, 1904, 1887,  959, 1869,  952,  815,
1463       815,  815,  815,  815,  815,  815,  815,  815,  819,  819,
1464       819, 1870,  820, 1003, 1004,  821,  954,  817, 1914, 1898,
1465       817, 1915, 1916,  817,  822,  822,  822,  822,  822,  822,
1466       822,  822,  822,  827,  827,  827, 1869,  828, 1917, 1900,
1467       829, 1921,  824, 1900, 1922,  824, 1923, 1872,  824,  833,
1468
1469       833,  833,  833,  833,  833,  833,  833,  833,  838,  838,
1470       838, 1933,  972,  972,  972, 1937,  973,  835,  964,  974,
1471       835, 1938, 1939,  835, 1940,  839, 1944,  840,  840,  840,
1472       975,  975,  975, 1945,  976, 1946, 1947,  977,  844,  844,
1473       844, 1948, 1949,  965,  841,  844,  844,  844,  844,  844,
1474       844,  849,  849,  849, 1953,  685,  846, 1954,  982,  982,
1475       982,  970,  983,  846, 1955,  984,  846, 1956,  850,  852,
1476       852,  852,  986,  986,  986, 1957,  987, 1952,  685,  988,
1477       854,  854,  854,  854,  854,  854,  853,  854,  854,  854,
1478       858,  858,  858, 1961,  859, 1962, 1960,  860,  856, 1963,
1479
1480      1964,  856,  861,  861,  861,  856,  861,  861,  861, 1965,
1481       685,  980,  861,  861,  861,  992,  992,  992, 1971, 1972,
1482       863,  869,  869,  869,  863,  869,  869,  869, 1973, 1968,
1483       863, 1974,  993,  869,  869,  869,  875,  875,  875,  871,
1484       875,  875,  875,  871,  875,  875,  875, 1002, 1002, 1002,
1485       989,  871, 1981, 1982,  877,  699,  699,  699,  877,  915,
1486       915,  915,  877, 1490,  685, 1003, 1004,  685,  990, 1027,
1487      1027, 1027,  685,  701,  685,  685,  916, 1036, 1036, 1036,
1488      1977, 1037,  685, 1017, 1038,  729,  729,  729, 1985,  685,
1489       996,  918,  918,  918,  999, 1040, 1040, 1040,  685, 1041,
1490
1491       685, 1999, 1042,  731,  739,  739,  739, 1995,  919,  924,
1492       924,  924,  685,  925, 2009, 1996,  926, 1010,  927,  927,
1493       927, 1484,  741, 1047, 1047, 1047, 2003, 1048,  685, 1483,
1494      1049,  753,  753,  753, 2000,  928,  929,  929,  929, 1039,
1495       930, 1482, 2027,  931,  936,  936,  936,  685,  685,  755,
1496      1045, 1054, 1054, 1054, 2017, 1055,  685,  685, 1056,  685,
1497      2010,  937, 1057, 1057, 1057,  761,  761,  761, 1063, 1063,
1498      1063,  776,  776,  776, 1070, 1070, 1070, 1481, 1051, 1058,
1499      1072, 1072, 1072,  763, 2004, 2021, 1064,  685, 2022,  778,
1500      2018, 1071,  789,  789,  789, 2031,  685, 1073, 1077, 1077,
1501
1502      1077, 2028,  797,  797,  797, 1080, 1080, 1080,  685,  685,
1503       791, 1059, 2034, 2034, 2034, 1078, 1083, 1083, 1083, 1066,
1504       799, 2019, 1081, 1074,  957,  957,  957, 1480,  958, 2034,
1505      2020,  959, 1479, 1084, 2034, 2034, 2034, 2025, 2034, 2034,
1506      2034, 2034, 2034, 2034,  815,  815,  815,  822,  822,  822,
1507      1160, 2034, 2023, 1478, 1076, 2034, 1161, 2024, 2034, 1162,
1508      1079,  685,  817, 1163,  685,  824,  685, 1093, 1093, 1093,
1509       833,  833,  833, 1477, 1082,  685,  972,  972,  972, 2031,
1510       973, 1473, 1086,  974, 1094,  975,  975,  975,  835,  976,
1511       685, 1472,  977, 2026, 1027, 1027, 1027,  844,  844,  844,
1512
1513      1085,  992,  992,  992, 2029, 1088, 1471, 1087, 1099, 1089,
1514      1095,  685,  982,  982,  982,  846,  983, 1470,  993,  984,
1515       986,  986,  986, 1096,  987, 1469, 1468,  988,  854,  854,
1516       854,  861,  861,  861, 1106, 1106, 1106, 1467, 1107, 1466,
1517      2030, 1108,  869,  869,  869, 1465,  856, 1464, 1463,  863,
1518      1113, 1113, 1113,  875,  875,  875, 1002, 1002, 1002, 1100,
1519       871,  699,  699,  699, 1016, 1016, 1016, 1114, 1020, 1020,
1520      1020,  877, 1460, 1457, 1003, 1133, 1133, 1133, 1456,  701,
1521      1136, 1136, 1136, 1455, 1104, 1026, 1026, 1026, 1111, 1134,
1522      1103, 1027, 1027, 1027, 1137, 1133, 1133, 1133, 1142, 1142,
1523
1524      1142, 1144, 1144, 1144, 1117, 1144, 1144, 1144, 1454, 1134,
1525      1124, 1442, 1137, 1440, 1439, 1145, 1115, 1429, 1423, 1145,
1526      1118, 1418, 1142, 1142, 1142, 1036, 1036, 1036, 1417, 1037,
1527      1413, 1403, 1038, 1398, 1397, 1135, 1147, 1396,  729,  729,
1528       729, 1040, 1040, 1040, 1390, 1041, 1389, 1388, 1042,  739,
1529       739,  739,  753,  753,  753, 1141,  731, 1052, 1052, 1052,
1530      1387, 1135, 1047, 1047, 1047, 1141, 1048,  741, 1386, 1049,
1531       755, 1054, 1054, 1054, 1385, 1055, 1384, 1383, 1056, 1057,
1532      1057, 1057, 1164, 1164, 1164, 1382, 1165, 1381, 1375, 1166,
1533       761,  761,  761, 1168, 1168, 1168, 1058, 1151, 2034, 2034,
1534
1535      2034, 1148, 1171, 1171, 1171, 1063, 1063, 1063,  763, 1154,
1536      1169, 1173, 1173, 1173, 1374, 2034,  776,  776,  776, 1172,
1537      1070, 1070, 1070, 1064, 1373, 1179, 1179, 1179, 1174, 1180,
1538      1372, 1370, 1181, 1368,  778, 1364, 1363, 1071, 1167, 1072,
1539      1072, 1072, 1182, 1182, 1182, 1361, 1183, 1360, 1356, 1184,
1540      1349, 1344, 1170, 1187, 1187, 1187, 1073, 1077, 1077, 1077,
1541      1175, 1189, 1189, 1189, 1342, 1190, 1341, 1340, 1191, 1331,
1542      1326, 1188, 1325, 1324, 1078, 1192, 1192, 1192, 1080, 1080,
1543      1080, 1194, 1194, 1194, 1323, 1195, 1319, 1303, 1196, 1197,
1544      1197, 1197, 1302, 1193, 1301, 1081, 1083, 1083, 1083, 1300,
1545
1546      1199, 1199, 1199, 1299, 1200, 1298, 1198, 1201, 1202, 1202,
1547      1202, 1284, 1281, 1084, 2034, 2034, 2034, 1205, 1205, 1205,
1548       815,  815,  815, 1280, 1279, 1203,  822,  822,  822, 1276,
1549      1275, 2034, 1271, 1270, 1206, 1093, 1093, 1093,  817, 1212,
1550      1212, 1212, 1267, 1213,  824, 1266, 1214, 1216, 1216, 1216,
1551      1264, 1263, 1094, 1218, 1218, 1218, 2034, 2034, 2034,  844,
1552       844,  844, 1223, 1223, 1223, 1217, 1262, 1261, 1204, 1258,
1553      1219, 1257, 1256, 2034, 1208, 1254, 1252,  846, 1251, 1224,
1554      1250, 1249, 1207, 2034, 2034, 2034,  854,  854,  854, 1248,
1555      1247,  861,  861,  861, 1106, 1106, 1106, 1246, 1107, 1240,
1556
1557      2034, 1108, 1232, 1230,  856, 1227, 1229, 1222, 1228,  863,
1558       869,  869,  869, 1113, 1113, 1113, 1220, 1233, 1233, 1233,
1559      1221, 1234, 1215, 1211, 1235, 1210, 1225, 1209,  871, 1186,
1560      1114,  875,  875,  875, 1226, 1241, 1241, 1241, 2034, 2034,
1561      2034, 1185, 2034, 2034, 2034,  699,  699,  699, 1178,  877,
1562      1177, 1176, 1242, 1155, 1153, 2034, 1152, 1150, 1231, 2034,
1563      1253, 1253, 1253,  701, 1133, 1133, 1133, 1255, 1255, 1255,
1564      1136, 1136, 1136, 1259, 1259, 1259, 1260, 1260, 1260, 1142,
1565      1142, 1142, 1144, 1144, 1144, 1149, 1236,  729,  729,  729,
1566      1243, 1268, 1268, 1268,  753,  753,  753, 1146, 1143, 1244,
1567
1568      1140, 1139, 1245, 1138, 1132,  731, 1273, 1273, 1273, 1269,
1569      1131, 1130,  755, 1164, 1164, 1164, 1129, 1165, 1128, 1127,
1570      1166, 1126, 1125, 1274,  761,  761,  761, 1168, 1168, 1168,
1571      1289, 1289, 1289, 1121, 1265, 1171, 1171, 1171, 1285, 1286,
1572      1286, 1286,  763, 1287, 1169, 1120, 1288, 1290, 1119, 1272,
1573      1003, 1112, 1172, 1291, 1291, 1291, 1110, 1292, 1109, 1105,
1574      1293, 1173, 1173, 1173, 1294, 1294, 1294, 1102, 1295, 1101,
1575      1098, 1296,  776,  776,  776, 1179, 1179, 1179, 1174, 1180,
1576      1097, 1092, 1181, 1091, 1182, 1182, 1182, 1090, 1183, 1075,
1577       778, 1184, 1304, 1304, 1304, 1187, 1187, 1187, 1189, 1189,
1578
1579      1189, 1069, 1190, 1068, 1067, 1191, 1192, 1192, 1192, 1305,
1580      1194, 1194, 1194, 1188, 1195, 1065, 1062, 1196, 1297, 1197,
1581      1197, 1197, 1061, 1060, 1193, 1306, 1306, 1306, 1053, 1307,
1582      1050, 1046, 1308, 1199, 1199, 1199, 1198, 1200, 1044, 1043,
1583      1201, 1202, 1202, 1202, 1309, 1309, 1309, 1035, 1310, 1034,
1584      1033, 1311, 1312, 1312, 1312, 1205, 1205, 1205, 1203, 1314,
1585      1314, 1314, 1032, 1315, 1031, 1030, 1316, 1029, 1028, 1313,
1586      1025, 1024, 1206,  815,  815,  815,  822,  822,  822, 1320,
1587      1320, 1320, 1212, 1212, 1212, 1023, 1213, 1022, 1021, 1214,
1588      1019,  817, 1018, 1015,  824, 1013, 1321, 1216, 1216, 1216,
1589
1590      1218, 1218, 1218, 1327, 1327, 1327, 1012, 1328, 1011, 1009,
1591      1329, 2034, 2034, 2034, 1008, 1217, 1007, 1219, 1223, 1223,
1592      1223, 1317, 1322,  844,  844,  844, 1006, 1005, 2034, 2034,
1593      2034, 2034, 1337, 1337, 1337, 1224, 1318, 1332, 1333, 1333,
1594      1333,  846, 1334,  998,  997, 1335, 2034,  861,  861,  861,
1595      1338,  869,  869,  869, 1233, 1233, 1233,  995, 1234,  994,
1596       991, 1235,  985, 1330,  981,  863,  875,  875,  875,  871,
1597      1241, 1241, 1241, 1350, 1350, 1350,  979, 1351,  978,  971,
1598      1352, 2034, 2034, 2034,  877,  969, 1336, 1242, 2034, 2034,
1599      2034,  968,  967, 1339,  966,  699,  699,  699, 2034, 1357,
1600
1601      1357, 1357, 1358, 1358, 1358, 2034, 1359, 1359, 1359, 1362,
1602      1362, 1362, 1343,  701, 1345, 1253, 1253, 1253, 1255, 1255,
1603      1255, 1365, 1365, 1365, 1366, 1366, 1366, 1259, 1259, 1259,
1604      1260, 1260, 1260, 1367, 1367, 1367,  963, 1353, 1369, 1369,
1605      1369,  729,  729,  729, 1268, 1268, 1268, 1376, 1376, 1376,
1606       962, 1354, 1273, 1273, 1273, 1355, 1378, 1378, 1378,  731,
1607      1379,  961, 1269, 1380,  960, 1377,  761,  761,  761, 1274,
1608      1286, 1286, 1286,  956, 1287,  955,  953, 1288, 1289, 1289,
1609      1289, 1392, 1392, 1392,  763, 1393,  951,  950, 1394, 1371,
1610      1291, 1291, 1291,  949, 1292, 1290,  948, 1293, 1294, 1294,
1611
1612      1294,  947, 1295,  946,  944, 1296,  776,  776,  776, 1304,
1613      1304, 1304, 1391, 1404, 1404, 1404,  942, 1405,  941,  940,
1614      1406, 1306, 1306, 1306,  778, 1307, 1305,  938, 1308, 1309,
1615      1309, 1309,  935, 1310,  932,  923, 1311, 1312, 1312, 1312,
1616      1407, 1407, 1407,  921, 1408,  914,  913, 1409, 1314, 1314,
1617      1314,  912, 1315,  911, 1313, 1316,  909, 1395,  815,  815,
1618       815, 1411, 1411, 1411, 1320, 1320, 1320, 1414, 1414, 1414,
1619       907, 1415,  906,  905, 1416,  904,  817,  903,  902, 1412,
1620       901, 1321, 1327, 1327, 1327,  899, 1328,  898,  895, 1329,
1621      2034, 2034, 2034,  844,  844,  844, 1333, 1333, 1333,  894,
1622
1623      1334,  893,  892, 1335, 2034, 2034, 2034, 2034, 1337, 1337,
1624      1337,  846,  861,  861,  861, 1437, 1437, 1437, 1410,  891,
1625       890, 2034,  869,  869,  869,  889, 1338, 1444, 1444, 1444,
1626       863,  887, 1438,  875,  875,  875, 1428, 1447, 1447, 1447,
1627       871,  886, 1350, 1350, 1350,  685, 1351,  885, 1430, 1352,
1628       884,  877, 2034, 2034, 2034, 2034, 2034, 2034,  883,  882,
1629      1435,  699,  699,  699, 1451, 1451, 1451,  881,  880, 2034,
1630       685,  874, 2034,  873, 1436, 1357, 1357, 1357,  868,  701,
1631      1358, 1358, 1358, 1441, 1359, 1359, 1359,  867,  866, 1443,
1632      1452, 1452, 1452, 1453, 1453, 1453, 1362, 1362, 1362, 1365,
1633
1634      1365, 1365, 1366, 1366, 1366, 1448, 1367, 1367, 1367, 1369,
1635      1369, 1369, 1458, 1458, 1458,  865, 1450, 1449, 1461, 1461,
1636      1461, 1376, 1376, 1376, 1378, 1378, 1378,  851, 1379,  848,
1637      1459, 1380,  761,  761,  761, 1462, 1392, 1392, 1392, 1377,
1638      1393,  843,  842, 1394, 1475, 1475, 1475, 1404, 1404, 1404,
1639       763, 1405,  837,  832, 1406,  831, 1407, 1407, 1407,  830,
1640      1408,  826, 1476, 1409, 1485, 1485, 1485, 1411, 1411, 1411,
1641      1487, 1487, 1487, 1414, 1414, 1414,  814, 1415,  813,  812,
1642      1416,  811, 1486,  796,  788, 1412,  787, 1488,  786, 1474,
1643      1503, 1503, 1503, 1505, 1505, 1505,  844,  844,  844, 2034,
1644
1645      2034, 2034,  861,  861,  861,  785,  784, 1504, 1437, 1437,
1646      1437,  780,  775, 1489,  846,  770, 2034, 1515, 1515, 1515,
1647       863, 1516,  769,  768, 1517, 1438, 1518, 1518, 1518, 1521,
1648      1521, 1521, 1523, 1523, 1523,  875,  875,  875, 1444, 1444,
1649      1444,  760, 1513, 1519, 1447, 1447, 1447, 1522, 1528, 1528,
1650      1528,  759,  758,  877,  757,  752,  685,  749, 1514, 1506,
1651      2034, 2034, 2034,  743,  738, 1529, 1531, 1531, 1531, 1451,
1652      1451, 1451, 1452, 1452, 1452,  737,  733, 2034, 1453, 1453,
1653      1453, 1458, 1458, 1458, 1532, 1461, 1461, 1461, 1538, 1538,
1654      1538,  728, 1539,  727,  726, 1540, 1525, 1524,  725, 1459,
1655
1656       724,  723, 1462,  761,  761,  761,  722,  721, 1530, 1475,
1657      1475, 1475, 1558, 1558, 1558, 1485, 1485, 1485, 1487, 1487,
1658      1487,  763,  720,  719, 1560, 1560, 1560, 1476, 1561, 1559,
1659       718, 1562,  717, 1486,  716, 1488, 1568, 1568, 1568, 1503,
1660      1503, 1503, 1576, 1576, 1576,  715, 1577,  714,  713, 1578,
1661      1505, 1505, 1505, 1569,  712,  711, 1504,  710,  709, 1552,
1662       844,  844,  844, 2034, 2034, 2034, 1588, 1588, 1588, 1515,
1663      1515, 1515,  708, 1516,  707,  706, 1517,  705,  846,  704,
1664      2034, 1518, 1518, 1518, 1589, 1590, 1590, 1590,  703, 1591,
1665       698,  697, 1592,  696, 1593, 1593, 1593,  695, 1519, 1521,
1666
1667      1521, 1521, 1523, 1523, 1523, 1595, 1595, 1595,  694,  693,
1668      1586, 1594,  692,  691, 1579,  688,  686, 1522, 1528, 1528,
1669      1528,  685,  683, 1596, 1587, 1600, 1600, 1600,  681, 1601,
1670       680,  679, 1602,  677,  676, 1529, 1603, 1603, 1603, 1531,
1671      1531, 1531, 1609, 1609, 1609, 1538, 1538, 1538,  675, 1539,
1672       674,  673, 1540, 1604,  761,  761,  761, 1532,  669, 1610,
1673      1558, 1558, 1558, 1630, 1630, 1630,  667, 1631,  666,  665,
1674      1632,  664,  763,  663, 1560, 1560, 1560, 1559, 1561,  661,
1675       660, 1562, 1568, 1568, 1568, 1636, 1636, 1636,  659, 1637,
1676       658,  657, 1638, 1576, 1576, 1576,  656, 1577,  654, 1569,
1677
1678      1578,  844,  844,  844, 2034, 2034, 2034, 2034, 2034, 2034,
1679      1626, 1588, 1588, 1588,  653,  652, 1590, 1590, 1590,  846,
1680      1591, 2034,  649, 1592, 2034, 1593, 1593, 1593,  648, 1589,
1681      1658, 1658, 1658,  644, 1659,  642,  641, 1660, 1595, 1595,
1682      1595,  640, 1594, 1600, 1600, 1600,  639, 1601,  638,  633,
1683      1602, 1603, 1603, 1603,  632,  630, 1596, 1664, 1664, 1664,
1684       627, 1665,  625, 1649, 1666, 1656,  624, 1657, 1604, 1667,
1685      1667, 1667, 1669, 1669, 1669, 1609, 1609, 1609, 1671, 1671,
1686      1671,  623, 1672,  622,  621, 1673,  761,  761,  761, 1688,
1687      1688, 1688, 1610, 1630, 1630, 1630,  618, 1631,  617,  615,
1688
1689      1632, 1694, 1694, 1694,  763,  614, 1689, 1636, 1636, 1636,
1690       612, 1637,  611,  610, 1638,  844,  844,  844, 1695, 2034,
1691      2034, 2034, 2034, 2034, 2034, 1667, 1667, 1667, 1718, 1718,
1692      1718,  607, 1690,  846, 1687,  605, 2034,  604,  603, 2034,
1693      1658, 1658, 1658,  601, 1659, 1719, 1003, 1660, 1664, 1664,
1694      1664,  599, 1665,  598,  597, 1666, 1669, 1669, 1669, 1671,
1695      1671, 1671,  596, 1672,  593,  592, 1673, 1707, 1715, 1726,
1696      1726, 1726,  761,  761,  761, 1688, 1688, 1688, 1737, 1737,
1697      1737, 1714, 1738,  591,  588, 1739, 1727, 1694, 1694, 1694,
1698       763,  585, 1689, 1745, 1745, 1745,  584, 1746,  582,  581,
1699
1700      1747, 1759, 1759, 1759, 1695, 1767, 1767, 1767, 1770, 1770,
1701      1770, 1774, 1774, 1774, 1718, 1718, 1718,  579, 1736, 1760,
1702       576,  575, 1768,  572,  571, 1771,  570,  569, 1775, 1003,
1703       568, 1719, 1003,  567, 1776, 1776, 1776,  562, 1777,  561,
1704       560, 1778, 1779, 1779, 1779, 1780, 1780, 1780, 1769,  559,
1705       558, 1772, 1003, 1726, 1726, 1726, 1785, 1785, 1785,  557,
1706      1786,  556,  554, 1787,  761,  761,  761, 1737, 1737, 1737,
1707      1727, 1738,  553,  552, 1739, 1799, 1799, 1799,  551, 1745,
1708      1745, 1745,  763, 1746,  550,  549, 1747, 1801, 1801, 1801,
1709       548,  543, 1800, 1759, 1759, 1759, 1767, 1767, 1767, 1817,
1710
1711      1817, 1817,  540, 1818, 1802,  542, 1819, 2034, 2034, 2034,
1712       537, 1760,  535, 1768, 1770, 1770, 1770,  533, 1821, 1821,
1713      1821, 2034, 1822,  532, 2034, 1823, 1794, 2034, 2034, 2034,
1714       531, 1771, 1774, 1774, 1774, 1826, 1826, 1826,  530, 1827,
1715       529,  527, 1828,  525, 2034, 1779, 1779, 1779,  523, 1775,
1716      1003,  522,  521, 1003,  520, 1776, 1776, 1776,  519, 1777,
1717       518,  516, 1778, 1780, 1780, 1780,  515, 1785, 1785, 1785,
1718       511, 1786, 1820, 1003, 1787, 1847, 1847, 1847,  510, 1848,
1719       508,  507, 1849,  504, 1841, 1841, 1841,  503, 1799, 1799,
1720      1799,  502, 1824, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
1721
1722      1001, 1001, 1842,  500, 1001, 1800, 1801, 1801, 1801, 1001,
1723      1001, 1001, 1003, 1001, 1850, 1850, 1850,  498, 1851,  496,
1724       494, 1852,  493, 1802, 1817, 1817, 1817,  490, 1818,  489,
1725       485, 1819, 2034, 2034, 2034, 1001, 1001, 1001, 1001, 1001,
1726      1001, 1001, 1001, 1001, 1001, 1001,  483,  482, 1001, 2034,
1727      2034, 2034, 2034, 1001, 1001, 1001, 1003, 1001, 1821, 1821,
1728      1821,  480, 1822,  479,  478, 1823,  477, 2034, 1826, 1826,
1729      1826,  476, 1827,  475,  472, 1828, 1841, 1841, 1841, 1001,
1730      1001, 1847, 1847, 1847, 1865, 1848, 1003,  470, 1849, 1850,
1731      1850, 1850,  469, 1851, 1842,  421, 1852,  468, 2034, 2034,
1732
1733      2034,  466, 1866, 1001, 1001, 1001, 1001, 1001, 1873, 1001,
1734      1001, 1001,  464,  463, 1001, 2034, 2034, 2034, 2034, 1001,
1735      1001, 1001, 1003, 1001, 1902, 1902, 1902, 1905, 1905, 1905,
1736      1924, 1924, 1924, 2034, 1925,  462,  461, 1926,  459, 1907,
1737      1907, 1907, 1003, 1004, 1906, 1001, 1001, 1001, 1001, 1001,
1738      1001, 1001, 1001, 1001, 1001, 1873, 1908,  457, 1001,  456,
1739      1896,  455,  453, 1001, 1001, 1001, 1003, 1001, 1909, 1909,
1740      1909, 1912, 1912, 1912, 2034, 2034, 2034,  451, 1897, 2034,
1741      2034, 2034, 1920, 1920, 1920, 1910,  450,  446, 1913, 1001,
1742      1001, 2034, 1902, 1902, 1902,  445, 2034, 1905, 1905, 1905,
1743
1744       685, 1907, 1907, 1907,  443, 1927, 1927, 1927,  442, 1928,
1745      1003, 1911, 1929,  439, 1906, 1909, 1909, 1909, 1908, 1930,
1746      1930, 1930,  438, 1931,  437, 1918, 1932, 1912, 1912, 1912,
1747      1919,  435, 1910,  433, 1934, 1934, 1934,  431, 1935, 2034,
1748      1117, 1936,  407,  406, 1913, 2034, 2034, 2034, 2034, 2034,
1749      2034, 1920, 1920, 1920, 1924, 1924, 1924,  404, 1925,  402,
1750       396, 1926, 2034,  395,  396, 2034, 1927, 1927, 1927,  685,
1751      1928,  395,  394, 1929, 1930, 1930, 1930,  393, 1931, 2034,
1752      2034, 1932, 1934, 1934, 1934, 2034, 1935, 1943, 1941, 1936,
1753      2034, 1942, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1754
1755      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1756      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1757      2034, 2034, 2034, 2034, 2034, 1969, 1969, 1969, 2034, 2034,
1758      2034, 2034, 2034, 2034, 1969, 1969, 1969, 2034, 2034, 2034,
1759      2034, 2034, 1970, 2034, 2034, 2034, 2034, 2034, 2034, 1950,
1760      2034, 1970, 1951, 2034, 2034, 1966, 2034, 1978, 1978, 1978,
1761      1958, 1979, 2034, 1959, 1980, 2034, 2034, 2034, 2034, 2034,
1762      2034, 2034, 2034, 1967, 2034, 2034, 1975, 2034, 2034, 1976,
1763      2034, 2034, 2034, 2034, 2034, 2034, 1978, 1978, 1978, 2034,
1764      1979, 2034, 2034, 1980, 2034, 2034, 2034, 2034, 2034, 2034,
1765
1766      1988, 1988, 1988, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1767      2034, 2034, 2034, 2034, 2034, 1988, 1988, 1988,  685, 1991,
1768      2034, 2034, 1992, 2034, 2034, 1983, 2034, 2034, 1984, 2034,
1769      2034, 2034, 2034,  685, 2034, 2034, 2034, 1986, 2034, 2034,
1770      1987, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1771      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2005,
1772      2005, 2005, 2034, 2034, 1989, 2034, 1990, 2034, 2034, 2034,
1773      2034, 2034, 2034, 2007, 2007, 2007, 2006, 1993, 2005, 2005,
1774      2005, 2034, 1994, 2034, 2011, 2011, 2011, 2034, 2012, 2034,
1775      2008, 2013, 2034, 2034, 1998, 2006, 2034, 1997, 2034, 2001,
1776
1777      2007, 2007, 2007, 2014, 2014, 2014, 2034, 2015, 2034, 2034,
1778      2016, 2011, 2011, 2011, 2034, 2012, 2034, 2008, 2013, 2002,
1779      2014, 2014, 2014, 2034, 2015, 2034, 2034, 2016, 2032, 2032,
1780      2032, 2032, 2032, 2032, 2034, 2034, 2034, 2034, 2034, 2034,
1781      2034, 2034, 2034, 2034, 2034, 2034, 2033, 2034, 2034, 2033,
1782       144,  144,  144,  144,  144,  144,  144,  144,  144,  145,
1783       145,  145,  145,  145,  145,  145,  145,  145,  150,  150,
1784       150,  150,  150,  150,  150,  150,  150,  153,  153,  153,
1785       153,  153,  153,  153,  153,  153,  156,  156,  156,  156,
1786       156,  156,  156,  156,  156,  159,  159,  159,  159,  159,
1787
1788       159,  159,  159,  159,  166,  166,  166,  166,  166,  166,
1789       166,  166,  166,  174,  174,  174,  174,  174,  174,  174,
1790       174,  174,  179,  179,  179,  179,  179,  179,  179,  179,
1791       179,  189,  189,  189,  189,  189,  189,  189,  189,  189,
1792       193,  193,  193,  193,  193,  193,  193,  193,  193,  199,
1793       199,  199,  199,  199,  199,  199,  199,  199,  210,  210,
1794       210,  210,  210,  210,  210,  210,  210,  217,  217,  217,
1795       217,  217,  217,  217,  217,  217,  225,  225,  225,  225,
1796       225,  225,  225,  225,  225,  231,  231,  231,  231,  231,
1797       231,  231,  231,  231,  237,  237,  237,  237,  237,  237,
1798
1799       237,  237,  237,  244,  244,  244,  244,  244,  244,  244,
1800       244,  244,  250,  250,  250,  250,  250,  250,  250,  250,
1801       250,  256,  256,  256,  256,  256,  256,  256,  256,  256,
1802       271,  271,  271,  271,  271,  271,  271,  271,  271,  278,
1803       278,  278,  278,  278,  278,  278,  278,  278,  283,  283,
1804       283,  283,  283,  283,  283,  283,  283,  298,  298,  298,
1805       298,  298,  298,  298,  298,  298,  304,  304,  304,  304,
1806       304,  304,  304,  304,  304,  308,  308,  308,  308,  308,
1807       308,  308,  308,  308,  314,  314,  314,  314,  314,  314,
1808       314,  314,  314,  321,  321,  321,  321,  321,  321,  321,
1809
1810       321,  321,  328,  328,  328,  328,  328,  328,  328,  328,
1811       328,  335,  335,  335,  335,  335,  335,  335,  335,  335,
1812       342,  342,  342,  342,  342,  342,  342,  342,  342,  349,
1813       349,  349,  349,  349,  349,  349,  349,  349,  356,  356,
1814       356,  356,  356,  356,  356,  356,  356,  360,  360,  360,
1815       360,  360,  360,  360,  360,  360,  366,  366,  366,  366,
1816       366,  366,  366,  366,  366,  373,  373,  373,  373,  373,
1817       373,  373,  373,  373,  381,  381,  381,  381,  381,  381,
1818       381,  381,  381,  385,  385,  385,  385,  385,  385,  385,
1819       385,  385,  405,  405,  405, 2034, 2034, 2034,  405,  432,
1820
1821       432,  432, 2034, 2034, 2034,  432,  436,  436,  436, 2034,
1822      2034, 2034,  436,  444,  444,  444, 2034, 2034, 2034,  444,
1823       454,  454,  454, 2034, 2034, 2034,  454,  460,  460,  460,
1824      2034, 2034, 2034,  460,  467,  467,  467, 2034, 2034, 2034,
1825       467,  471,  471,  471, 2034, 2034, 2034,  471,  481,  481,
1826       481, 2034, 2034, 2034,  481,  486,  486,  486, 2034, 2034,
1827      2034,  486,  497,  497,  497, 2034, 2034, 2034,  497,  501,
1828       501,  501, 2034, 2034, 2034,  501,  509,  509,  509, 2034,
1829      2034, 2034,  509,  517,  517,  517, 2034, 2034, 2034,  517,
1830       524,  524,  524, 2034, 2034, 2034,  524,  528,  528,  528,
1831
1832      2034, 2034, 2034,  528,  536,  536,  536, 2034, 2034, 2034,
1833       536,  539,  539,  539,  539,  539,  539,  539, 2034,  539,
1834       555, 2034, 2034, 2034,  555,  583, 2034, 2034, 2034,  583,
1835       590, 2034, 2034, 2034,  590,  600, 2034, 2034, 2034,  600,
1836       606, 2034, 2034, 2034,  606,  613, 2034, 2034, 2034,  613,
1837       616, 2034, 2034, 2034,  616,  626, 2034, 2034, 2034,  626,
1838       631, 2034, 2034, 2034,  631,  486,  486,  486, 2034, 2034,
1839      2034,  486,  643, 2034, 2034, 2034,  643,  497,  497,  497,
1840      2034, 2034, 2034,  497,  647, 2034, 2034, 2034,  647,  501,
1841       501,  501, 2034, 2034, 2034,  501,  655, 2034, 2034, 2034,
1842
1843       655,  509,  509,  509, 2034, 2034, 2034,  509,  662, 2034,
1844      2034, 2034,  662,  517,  517,  517, 2034, 2034, 2034,  517,
1845       668, 2034, 2034, 2034,  668,  524,  524,  524, 2034, 2034,
1846      2034,  524,  672, 2034, 2034, 2034,  672,  528,  528,  528,
1847      2034, 2034, 2034,  528,  678, 2034, 2034, 2034,  678,  536,
1848       536,  536, 2034, 2034, 2034,  536,  682, 2034, 2034, 2034,
1849       682,  684,  684,  684,  684,  684,  684,  684,  684,  684,
1850       690, 2034, 2034, 2034, 2034,  690,  405,  405,  405, 2034,
1851      2034, 2034,  405,  700,  700,  700,  700, 2034, 2034,  700,
1852       700,  432,  432,  432, 2034, 2034, 2034,  432,  730,  730,
1853
1854       730,  730, 2034, 2034,  730,  730,  436,  436,  436, 2034,
1855      2034, 2034,  436,  740,  740,  740,  740, 2034, 2034,  740,
1856       740,  444,  444,  444, 2034, 2034, 2034,  444,  754,  754,
1857       754,  754, 2034, 2034,  754,  754,  454,  454,  454, 2034,
1858      2034, 2034,  454,  762,  762,  762,  762, 2034, 2034,  762,
1859       762,  460,  460,  460, 2034, 2034, 2034,  460,  772,  772,
1860       772,  772, 2034, 2034,  772,  772,  467,  467,  467, 2034,
1861      2034, 2034,  467,  777,  777,  777,  777, 2034, 2034,  777,
1862       777,  471,  471,  471, 2034, 2034, 2034,  471,  790,  790,
1863       790,  790, 2034, 2034,  790,  790,  481,  481,  481, 2034,
1864
1865      2034, 2034,  481,  798,  798,  798,  798, 2034, 2034,  798,
1866       798,  486,  486,  486, 2034, 2034, 2034,  486,  816,  816,
1867       816,  816, 2034, 2034,  816,  816,  823,  823,  823,  823,
1868      2034, 2034,  823,  823,  501,  501,  501, 2034, 2034, 2034,
1869       501,  834,  834,  834,  834, 2034, 2034,  834,  834,  509,
1870       509,  509, 2034, 2034, 2034,  509,  845,  845,  845,  845,
1871      2034, 2034,  845,  845,  517,  517,  517, 2034, 2034, 2034,
1872       517,  855,  855,  855,  855, 2034, 2034,  855,  855,  862,
1873       862,  862,  862, 2034, 2034,  862,  862,  528,  528,  528,
1874      2034, 2034, 2034,  528,  870,  870,  870,  870, 2034, 2034,
1875
1876       870,  870,  536,  536,  536, 2034, 2034, 2034,  536,  876,
1877       876,  876,  876, 2034, 2034,  876,  876,  684,  684,  684,
1878       684,  684,  684,  684,  684,  684,  690, 2034,  690, 2034,
1879      2034,  690,  405,  405,  405, 2034, 2034, 2034,  405,  700,
1880       700,  700,  700, 2034, 2034,  700,  700,  432,  432,  432,
1881       432, 2034,  432, 2034,  432,  730,  730,  730,  730, 2034,
1882      2034,  730,  730,  436,  436,  436,  436, 2034,  436, 2034,
1883       436,  740,  740,  740,  740, 2034, 2034,  740,  740,  444,
1884       444,  444, 2034, 2034, 2034,  444,  754,  754,  754,  754,
1885      2034, 2034,  754,  754,  454,  454,  454, 2034, 2034, 2034,
1886
1887       454,  762,  762,  762,  762, 2034, 2034,  762,  762,  460,
1888       460,  460, 2034, 2034, 2034,  460,  772,  772,  772,  772,
1889      2034, 2034,  772,  772,  467,  467,  467, 2034, 2034, 2034,
1890       467,  777,  777,  777,  777, 2034, 2034,  777,  777,  471,
1891       471,  471, 2034, 2034, 2034,  471,  790,  790,  790,  790,
1892      2034, 2034,  790,  790,  481,  481,  481, 2034, 2034, 2034,
1893       481,  798,  798,  798,  798, 2034, 2034,  798,  798,  486,
1894       486,  486, 2034, 2034, 2034,  486,  816,  816,  816,  816,
1895      2034, 2034,  816,  816,  823,  823,  823,  823, 2034, 2034,
1896       823,  823,  501,  501,  501, 2034, 2034, 2034,  501,  834,
1897
1898       834,  834,  834, 2034, 2034,  834,  834,  509,  509,  509,
1899      2034, 2034, 2034,  509,  845,  845,  845,  845, 2034, 2034,
1900       845,  845,  517,  517,  517, 2034, 2034, 2034,  517,  855,
1901       855,  855,  855, 2034, 2034,  855,  855,  862,  862,  862,
1902       862, 2034, 2034,  862,  862,  528,  528,  528, 2034, 2034,
1903      2034,  528,  870,  870,  870,  870, 2034, 2034,  870,  870,
1904       536,  536,  536, 2034, 2034, 2034,  536,  876,  876,  876,
1905       876, 2034, 2034,  876,  876,  684,  684,  684,  684,  684,
1906       684,  684,  684,  684, 1001, 1001, 1001, 1001, 1001, 1001,
1907      1001, 1001, 1001,  405,  405,  405, 2034, 2034, 2034,  405,
1908
1909       700,  700,  700,  700, 2034, 2034,  700,  700,  730,  730,
1910       730,  730, 2034, 2034,  730,  730,  436,  436,  436, 2034,
1911      2034, 2034,  436,  740,  740,  740,  740, 2034, 2034,  740,
1912       740,  444,  444,  444, 2034, 2034, 2034,  444,  754,  754,
1913       754,  754, 2034, 2034,  754,  754,  454,  454,  454, 2034,
1914      2034, 2034,  454,  762,  762,  762,  762, 2034, 2034,  762,
1915       762,  460,  460,  460, 2034, 2034, 2034,  460,  772,  772,
1916       772,  772, 2034, 2034,  772,  772,  467,  467,  467, 2034,
1917      2034, 2034,  467,  777,  777,  777,  777, 2034, 2034,  777,
1918       777,  471,  471,  471, 2034, 2034, 2034,  471,  790,  790,
1919
1920       790,  790, 2034, 2034,  790,  790,  481,  481,  481,  481,
1921      2034,  481, 2034,  481,  798,  798,  798,  798, 2034, 2034,
1922       798,  798,  486,  486,  486,  486, 2034,  486, 2034,  486,
1923       816,  816,  816,  816, 2034, 2034,  816,  816,  823,  823,
1924       823,  823, 2034, 2034,  823,  823,  501,  501,  501, 2034,
1925      2034, 2034,  501,  834,  834,  834,  834, 2034, 2034,  834,
1926       834,  509,  509,  509, 2034, 2034, 2034,  509,  845,  845,
1927       845,  845, 2034, 2034,  845,  845,  517,  517,  517, 2034,
1928      2034, 2034,  517,  855,  855,  855,  855, 2034, 2034,  855,
1929       855,  862,  862,  862,  862, 2034, 2034,  862,  862,  528,
1930
1931       528,  528, 2034, 2034, 2034,  528,  870,  870,  870,  870,
1932      2034, 2034,  870,  870,  536,  536,  536,  536, 2034,  536,
1933      2034,  536,  876,  876,  876,  876, 2034, 2034,  876,  876,
1934       684,  684,  684,  684,  684,  684,  684,  684,  684, 1001,
1935      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,  405,  405,
1936       405, 2034, 2034, 2034,  405,  700,  700,  700,  700, 2034,
1937      2034,  700,  700,  730,  730,  730,  730, 2034, 2034,  730,
1938       730,  436,  436,  436, 2034, 2034, 2034,  436,  740,  740,
1939       740,  740, 2034, 2034,  740,  740,  444,  444,  444, 2034,
1940      2034, 2034,  444,  754,  754,  754,  754, 2034, 2034,  754,
1941
1942       754,  454,  454,  454, 2034, 2034, 2034,  454,  762,  762,
1943       762,  762, 2034, 2034,  762,  762,  460,  460,  460,  460,
1944      2034,  460, 2034,  460,  467,  467,  467,  467, 2034,  467,
1945      2034,  467,  777,  777,  777,  777, 2034, 2034,  777,  777,
1946       471,  471,  471, 2034, 2034, 2034,  471,  790,  790,  790,
1947       790, 2034, 2034,  790,  790,  798,  798,  798,  798, 2034,
1948      2034,  798,  798,  486,  486,  486,  486, 2034,  486, 2034,
1949       486,  816,  816,  816,  816, 2034, 2034,  816,  816,  823,
1950       823,  823,  823, 2034, 2034,  823,  823,  501,  501,  501,
1951      2034, 2034, 2034,  501,  834,  834,  834,  834, 2034, 2034,
1952
1953       834,  834,  509,  509,  509,  509, 2034,  509, 2034,  509,
1954       845,  845,  845,  845, 2034, 2034,  845,  845,  517,  517,
1955       517,  517, 2034,  517, 2034,  517,  855,  855,  855,  855,
1956      2034, 2034,  855,  855,  862,  862,  862,  862, 2034, 2034,
1957       862,  862,  528,  528,  528, 2034, 2034, 2034,  528,  870,
1958       870,  870,  870, 2034, 2034,  870,  870,  876,  876,  876,
1959       876, 2034, 2034,  876,  876,  684,  684,  684,  684,  684,
1960       684,  684,  684,  684, 1001, 1001, 1001, 1001, 1001, 1001,
1961      1001, 1001, 1001,  405,  405,  405,  405, 2034,  405, 2034,
1962       405,  700,  700,  700,  700, 2034, 2034,  700,  700,  730,
1963
1964       730,  730,  730, 2034, 2034,  730,  730,  436,  436,  436,
1965      2034, 2034, 2034,  436,  740,  740,  740,  740, 2034, 2034,
1966       740,  740,  444,  444,  444, 2034, 2034, 2034,  444,  754,
1967       754,  754,  754, 2034, 2034,  754,  754,  454,  454,  454,
1968       454, 2034,  454, 2034,  454,  762,  762,  762,  762, 2034,
1969      2034,  762,  762,  460,  460,  460,  460, 2034,  460, 2034,
1970       460,  777,  777,  777,  777, 2034, 2034,  777,  777,  471,
1971       471,  471, 2034, 2034, 2034,  471, 1829, 1829, 1829, 1829,
1972      1829, 1829, 1829, 1829, 1829, 1830, 1830, 1830, 1830, 1830,
1973      1830, 1830, 1830, 1830, 1868, 1868, 1868, 1868, 1868, 1868,
1974
1975      1868, 1868, 1868, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
1976      1871, 1871, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
1977      1899, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901,
1978       143, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1979      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1980      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1981      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1982      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1983      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
1984      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034
1985
1986     } ;
1987
1988 static yyconst flex_int16_t yy_chk[7201] =
1989     {   0,
1990         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1991         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1992         4,   10,  219,    5,    0,    9,    6,    0,   10,    7,
1993         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1994        13,   13,  220,   14,   14,  149,    8,   17,   17,  148,
1995        13,   15,   15,   14,   15,  152,   15,   16,   16,  415,
1996        16,  149,   16,   18,   18,  415,   15,   19,   19,   19,
1997       219,  152,   16,   20,   20,   20,   23,   23,   23,   24,
1998        24,   24,  266,   19,   25,   25,   25,  333,   17,   20,
1999       220,  266,   23,  426,  333,   24,  146,  146,  146,  426,
2000
2001        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
2002        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2003      1418,   21,   21,   21,   21,   21,   26,   26,   26,   27,
2004        27,   27,  320,   28,   28,   28,   29,   29,   29,   30,
2005        30,   30,   26,  320,  452,   27,  175,   21,   21,   28,
2006       452,  295,   29,  190,  295,   30,  151,  151,  151,  172,
2007       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
2008        21,  183,   21,   22,   22,   22,   22,   22,   22,   22,
2009        22,   22,   22,   22,   22,   22,   22,   22,  273,   22,
2010        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
2011
2012      1000,   33,   33,   33,   34,   34,   34,   35,   35,   35,
2013        31,  416,  200,   32,  170,   22,   22,   33,  211,  183,
2014        34,  183, 1000,   35,  416,   36,   36,   36,  200,  185,
2015       170,  194,  194,  194,  211,  185,  273,  185,   22,  185,
2016        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
2017        37,   37,   37,   37,   37,   37,   37,  292,   37,   37,
2018        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
2019        47,   47,   47,   43,   43,   44,   44,  292,   43,   39,
2020        44, 1158,   40,  215,   37,   37,   47,  215,   43, 1158,
2021        44,  215,   37,   38,   38,   38,   38,   38,   38,   38,
2022
2023        38,   38,   38,   38,   38,   38,   38,   38,  710,   38,
2024        38,   38,   38,   38,   43,  334,   44,   48,   48,   48,
2025       710,   49,   49,   49,   50,   50,   50,  197,  197,  197,
2026       208,  208,  208,   48,  687,   38,   38,   49,  687,  398,
2027        50,  337,  398,   38,   41,   41,   41,   41,   41,   41,
2028        41,   41,   41,   41,   41,   41,   41,   41,   41,  334,
2029        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
2030        52,  323,   53,   53,   53,   54,   54,   54,  218,  218,
2031       218,   51,  195,  205,   52,  337,   41,   41,   53,  195,
2032       205,   54, 1328, 1328,   41, 1329, 1329,   41,  195,  205,
2033
2034       223,  223,  223,   41,   42,   42,   42,   42,   42,   42,
2035        42,   42,   42,   42,   42,   42,   42,   42,   42,  323,
2036        42,   42,   42,   42,   42,   57,   57,   57,   58,   58,
2037        58,  723,   61,   61,   61,   62,   62,   62,  389,  226,
2038       238,   57, 1162,  723,   58,  233,   42,   42,   61,  423,
2039      1162,   62,  233,  389,   42,  226,  238,   42,  232,  232,
2040       232,  233,  423,   42,   45,   45,   45,   45,   45,   45,
2041        45,   45,   45,   45,   45,   45,   45,   45,   45,  757,
2042        45,   45,   45,   45,   45,   65,   65,   65,   66,   66,
2043        66,  757,   67,   67,   67,   68,   68,   68,   69,   69,
2044
2045        69,   65,  246,  251,   66, 1419,   45,   45,   67,  246,
2046       351,   68,  427, 1420,   69,   45, 1421,   45,  246,  251,
2047        45,  235,  235,  235,  254,  427,   45,   46,   46,   46,
2048        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
2049        46,   46,  440,   46,   46,   46,   46,   46,   70,   70,
2050        70,   73,   73,   73,  351,   74,   74,   74,   75,   75,
2051        75,   76,   76,   76,   70,  254,  263,   73,  254,   46,
2052        46,   74,  279, 1009,   75,  440, 1422,   76,   46, 1009,
2053        46, 1423,  263,   46,  245,  245,  245, 1118,  279,   46,
2054        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
2055
2056        55,   55,   55,   55,   55, 1424,   55,   55,   55,   55,
2057        55,   77,   77,   77,   78,   78,   78, 1118,   79,   79,
2058        79,   80,   80,   80,   83,   83,   83,   77, 1426,  633,
2059        78, 1117,   55,   55,   79,  290,  305,   80,  633,   55,
2060        83,  248,  248,  248,   55,  257,  257,  257,  260,  260,
2061       260,  290,  305,   55,   56,   56,   56,   56,   56,   56,
2062        56,   56,   56,   56,   56,   56,   56,   56,   56, 1117,
2063        56,   56,   56,   56,   56,   84,   84,   84,   87,   87,
2064        87, 1431,   88,   88,   88,   91,   91,   91,   92,   92,
2065        92,   84, 1334, 1334,   87, 1301,   56,   56,   88,  315,
2066
2067       329,   91, 1301,   56,   92,  272,  272,  272,   56,  276,
2068       276,  276,  284,  284,  284,  315,  329,   56,   59,   59,
2069        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2070        59,   59,   59, 1433,   59,   59,   59,   59,   59,   95,
2071        95,   95,   96,   96,   96,  879,   97,   97,   97,   98,
2072        98,   98,   99,   99,   99,   95,  285,  429,   96, 1440,
2073        59,   59,   97,  285,  879,   98, 1239, 1445,   99, 1302,
2074       429,   59,  285,  287,  287,  287, 1302,   59, 1454,   59,
2075        59,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2076        60,   60,   60,   60,   60,   60, 1445,   60,   60,   60,
2077
2078        60,   60,  100,  100,  100,  101,  101,  101, 1239,  102,
2079       102,  102,  105,  105,  105,  106,  106,  106,  100, 1335,
2080      1335,  101,  300,   60,   60,  102,  541, 1237,  105,  300,
2081      1455,  106, 1324, 1237,   60,  299,  299,  299,  300, 1324,
2082        60,  541,   60,   60,   63,   63,   63,   63,   63,   63,
2083        63,   63,   63,   63,   63,   63,   63,   63,   63, 1446,
2084        63,   63,   63,   63,   63,  107,  107,  107,  108,  108,
2085       108, 1456,  109,  109,  109,  110,  110,  110,  111,  111,
2086       111,  107, 1457, 1325,  108,  310,   63,   63,  109,  343,
2087      1325,  110,  310, 1446,  111,  302,  302,  302,  309,  309,
2088
2089       309,  310,  312,  312,  312,  343,   63,   64,   64,   64,
2090        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2091        64,   64, 1460,   64,   64,   64,   64,   64,  112,  112,
2092       112,  115,  115,  115, 1463,  116,  116,  116,  117,  117,
2093       117,  118,  118,  118,  112, 1464, 1425,  115, 1425,   64,
2094        64,  116,  357, 1427,  117, 1427, 1465,  118,  322,  322,
2095       322,  326,  326,  326,  336,  336,  336, 1466,  357,   64,
2096        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2097        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2098        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2099
2100        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2101        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2102        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2103        71,   71,   71,   71,   71,   71,   71,   71,   71,   81,
2104        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
2105        81,   81,   81,   81,  375,   81,   81,   81,   81,   81,
2106       119,  119,  119,  120,  120,  120, 1467,  121,  121,  121,
2107       122,  122,  122,  125,  125,  125,  119, 1348, 1432,  120,
2108      1432,   81,   81,  121, 1468, 1469,  122,  367,  375,  125,
2109      1470, 1471,   81,  340,  340,  340,  350,  350,  350,  354,
2110
2111       354,  354,  375,  367,   81,   82,   82,   82,   82,   82,
2112        82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
2113      1348,   82,   82,   82,   82,   82,  126,  126,  126,  129,
2114       129,  129, 1472,  130,  130,  130,  131,  131,  131,  132,
2115       132,  132,  126, 1473, 1477,  129,  362,   82,   82,  130,
2116      1478, 1479,  131,  362, 1434,  132, 1434, 1480,   82,  361,
2117       361,  361,  362,  364,  364,  364,  374,  374,  374, 1482,
2118        82,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2119        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2120        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2121
2122        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2123        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2124        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2125        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2126        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2127        89,   89,   89,   89,   89, 1489,   89,   89,   89,   89,
2128        89,  133,  133,  133,  134,  134,  134, 1490,  135,  135,
2129       135,  136,  136,  136,  139,  139,  139,  133, 1491,  162,
2130       134, 1492,   89,   89,  135, 1494, 1497,  136, 1498, 1499,
2131       139, 1347, 1500,   89,   90,   90,   90,   90,   90,   90,
2132
2133        90,   90,   90,   90,   90,   90,   90,   90,   90,  382,
2134        90,   90,   90,   90,   90,  140,  140,  140,  162,  379,
2135       379,  379, 1501, 1502,  162,  382, 1116,  387,  162, 1507,
2136      1347,  140, 1508,  162,  387, 1238,   90,   90,  386,  386,
2137       386, 1509, 1116,  387,  388,  388,  388,   90,   93,   93,
2138        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
2139        93,   93,   93, 1238,   93,   93,   93,   93,   93, 1510,
2140      1511,  397,  397,  397, 1512,  438,  438,  438,  446,  446,
2141       446,  461,  461,  461, 1533,  473,  473,  473, 1534, 1535,
2142        93,   93,  438, 1536,   93,  446, 1541, 1542,  461, 1543,
2143
2144      1544,   93,  473,   93,  544,  544,  544, 1545,  544, 1527,
2145        93,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2146        94,   94,   94,   94,   94,   94,  397,   94,   94,   94,
2147        94,   94,  482,  482,  482,  488,  488,  488,  489,  489,
2148       489,  498,  498,  498,  503,  503,  503, 1546, 1527,  482,
2149      1055, 1547,  488,   94,   94,  489, 1055,   94,  498, 1055,
2150      1548,  503, 1525, 1055,   94, 1526,   94,  713,  713,  713,
2151       721,  721,  721,   94,  103,  103,  103,  103,  103,  103,
2152       103,  103,  103,  103,  103,  103,  103,  103,  103, 1549,
2153       103,  103,  103,  103,  103,  525,  525,  525, 1525, 1526,
2154
2155       555,  555,  555, 1550, 1551,  556,  556,  556,  583,  583,
2156       583, 1553,  525,  584,  584,  584,  103,  103,  555,  103,
2157      1554, 1539,  103,  556, 1555, 1563,  583, 1564,  587,  587,
2158       587,  584,  587, 1539, 1565,  587,  103,  104,  104,  104,
2159       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2160       104,  104, 1570,  104,  104,  104,  104,  104, 1571,  556,
2161       586,  586,  586,  590,  590,  590,  591,  591,  591,  584,
2162       594,  594,  594, 1572,  596,  596,  596,  586, 1573,  104,
2163       104,  590,  104, 1574,  591,  104, 1575,  594,  595,  595,
2164       595,  596,  595, 1580, 1581,  595,  892,  892,  892,  104,
2165
2166       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2167       113,  113,  113,  113,  113, 1540,  113,  113,  113,  113,
2168       113,  598,  598,  598, 1582, 1583,  591, 1540,  600,  600,
2169       600,  606,  606,  606,  601,  601,  601, 1584,  598,  607,
2170       607,  607,  113,  113, 1585,  113,  600, 1606,  113,  606,
2171      1598, 1577,  601,  113,  609,  609,  609,  607,  609, 1577,
2172      1599,  609,  113,  114,  114,  114,  114,  114,  114,  114,
2173       114,  114,  114,  114,  114,  114,  114,  114,  601,  114,
2174       114,  114,  114,  114,  608,  608,  608, 1608, 1598,  613,
2175       613,  613,  616,  616,  616,  617,  617,  617, 1599,  607,
2176
2177      1611,  608,  614,  614,  614,  114,  114,  613,  114, 1612,
2178       616,  114, 1613,  617, 1578, 1597,  114,  620,  620,  620,
2179       614,  620, 1578, 1614,  620,  114,  123,  123,  123,  123,
2180       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2181       123, 1597,  123,  123,  123,  123,  123,  619,  619,  619,
2182       614, 1615,  617,  626,  626,  626,  627,  627,  627,  628,
2183       628,  628, 1616, 1617,  619,  897,  897,  897,  123,  123,
2184      1618,  626, 1619, 1621,  627, 1622,  628, 1623, 1624,  123,
2185       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2186       124,  124,  124,  124,  124, 1628,  124,  124,  124,  124,
2187
2188       124,  629,  629,  629, 1629,  629, 1633, 1635,  629,  631,
2189       631,  631, 1639,  627,  632,  632,  632,  635,  635,  635,
2190      1640,  635,  124,  124,  635, 1641, 1642,  631,  900,  900,
2191       900, 1643,  632,  124,  127,  127,  127,  127,  127,  127,
2192       127,  127,  127,  127,  127,  127,  127,  127,  127, 1644,
2193       127,  127,  127,  127,  127,  634,  634,  634,  636,  636,
2194       636,  637,  637,  637, 1645,  637, 1646, 1647,  637,  643,
2195       643,  643,  634, 1648,  632,  636,  127,  127,  638,  638,
2196       638,  904,  904,  904,  127, 1650,  127,  643,  127,  908,
2197       908,  908,  934,  934,  934,  638,  127,  128,  128,  128,
2198
2199       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
2200       128,  128, 1651,  128,  128,  128,  128,  128,  645,  645,
2201       645, 1652, 1653,  647,  647,  647, 1654,  644,  644,  644,
2202       646,  646,  646, 1655,  646,  645, 1668,  646, 1670,  128,
2203       128,  647,  894,  894,  894,  644, 1674,  128, 1675,  128,
2204      1676,  128, 1014, 1014, 1014, 1677,  894, 1661, 1679,  128,
2205       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2206       137,  137,  137,  137,  137, 1680,  137,  137,  137,  137,
2207       137,  644,  650,  650,  650, 1681,  655,  655,  655, 1682,
2208       648,  648,  648,  651,  651,  651, 1683,  651, 1684,  650,
2209
2210       651, 1661,  137,  137,  655,  656,  656,  656,  648,  671,
2211       671,  671, 1685,  671, 1686, 1690,  671,  734,  734,  734,
2212      1662,  734, 1692,  656,  734,  137,  138,  138,  138,  138,
2213       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
2214       138, 1693,  138,  138,  138,  138,  138,  648,  658,  658,
2215       658, 1696, 1662,  659,  659,  659, 1697,  656,  662,  662,
2216       662,  663,  663,  663, 1698,  658, 1691, 1691,  138,  138,
2217       659,  665,  665,  665, 1699, 1700,  662, 1701, 1702,  663,
2218       667,  667,  667,  668,  668,  668, 1703, 1704,  665, 1705,
2219      1706,  138,  181,  670,  670,  670, 1708,  667, 1709,  181,
2220
2221      1710,  668, 1711,  669,  669,  669, 1712, 1713,  181, 1722,
2222       670,  672,  672,  672,  673,  673,  673, 1716,  663, 1723,
2223      1724,  669, 1725, 1728,  678,  678,  678, 1729, 1731,  672,
2224      1732, 1733,  673,  181, 1735,  181, 1740, 1741,  181, 1742,
2225       181,  181,  678,  181,  679,  679,  679,  181, 1716,  181,
2226       181,  181,  182,  682,  682,  682,  683,  683,  683,  182,
2227       669, 1743,  679,  699,  699,  699,  673, 1749,  182, 1750,
2228      1751,  682, 1752, 1753,  683, 1754,  700,  700,  700, 1756,
2229      1758,  699, 1761, 1762,  702,  702,  702, 1763,  728,  728,
2230       728, 1764, 1765,  182,  700,  182, 1766, 1773,  182, 1781,
2231
2232       182,  182,  702,  182,  679,  728, 1782,  182, 1783,  182,
2233       182,  182,  729,  729,  729, 1784,  683,  730,  730,  730,
2234       732,  732,  732,  733,  733,  733, 1788, 1789,  702, 1790,
2235       729,  737,  737,  737, 1791,  730, 1773, 1792,  732, 1793,
2236       733,  739,  739,  739,  740,  740,  740, 1795,  737,  742,
2237       742,  742, 1796,  744,  744,  744, 1797,  744, 1798,  739,
2238       744, 1803,  740,  747,  747,  747,  732,  742,  748,  748,
2239       748, 1804,  748, 1805, 1806,  748, 1807,  749,  749,  749,
2240       747,  750,  750,  750, 1808,  751,  751,  751,  737,  751,
2241      1811, 1812,  751,  742,  749,  753,  753,  753,  750,  754,
2242
2243       754,  754,  756,  756,  756,  759,  759,  759,  761,  761,
2244       761, 1813, 1814,  753,  762,  762,  762,  754, 1815, 1816,
2245       756, 1831,  759,  764,  764,  764,  761,  765,  765,  765,
2246      1833,  765,  762, 1836,  765,  771,  771,  771,  772,  772,
2247       772,  764,  774,  774,  774,  776,  776,  776,  777,  777,
2248       777, 1827, 1825,  771, 1837, 1839,  772, 1840,  756, 1843,
2249       774, 1844, 1845,  776, 1846, 1827,  777,  764,  779,  779,
2250       779,  781,  781,  781, 1828,  781, 1853, 1854,  781,  789,
2251       789,  789,  790,  790,  790, 1828,  779,  792,  792,  792,
2252      1856,  793,  793,  793, 1825,  793, 1857,  789,  793, 1859,
2253
2254       790,  797,  797,  797,  774,  792,  798,  798,  798,  800,
2255       800,  800, 1860,  803,  803,  803, 1862,  803, 1863,  797,
2256       803,  809,  809,  809,  798, 1870, 1851,  800,  779,  806,
2257       806,  806, 1867,  806, 1852, 1872,  806, 1851,  809,  810,
2258       810,  810, 1874,  810, 1875, 1852,  810, 1868,  792,  815,
2259       815,  815,  816,  816,  816,  818,  818,  818,  819,  819,
2260       819, 1868,  819, 1869, 1869,  819,  800,  815, 1884, 1867,
2261       816, 1885, 1886,  818,  822,  822,  822,  823,  823,  823,
2262       825,  825,  825,  827,  827,  827, 1871,  827, 1887, 1899,
2263       827, 1900,  822, 1901, 1903,  823, 1904, 1871,  825,  833,
2264
2265       833,  833,  834,  834,  834,  836,  836,  836,  838,  838,
2266       838, 1911,  839,  839,  839, 1914,  839,  833,  818,  839,
2267       834, 1915, 1916,  836, 1917,  838, 1921,  840,  840,  840,
2268       841,  841,  841, 1933,  841, 1937, 1938,  841,  844,  844,
2269       844, 1939, 1940,  825,  840,  845,  845,  845,  847,  847,
2270       847,  849,  849,  849, 1945, 1943,  844, 1946,  850,  850,
2271       850,  836,  850,  845, 1947,  850,  847, 1948,  849,  852,
2272       852,  852,  853,  853,  853, 1949,  853, 1943, 1952,  853,
2273       854,  854,  854,  855,  855,  855,  852,  857,  857,  857,
2274       858,  858,  858, 1953,  858, 1954, 1952,  858,  854, 1955,
2275
2276      1956,  855,  861,  861,  861,  857,  862,  862,  862, 1957,
2277      1960,  847,  864,  864,  864,  866,  866,  866, 1962, 1963,
2278       861,  869,  869,  869,  862,  870,  870,  870, 1964, 1960,
2279       864, 1965,  866,  872,  872,  872,  875,  875,  875,  869,
2280       876,  876,  876,  870,  878,  878,  878,  880,  880,  880,
2281       857,  872, 1971, 1973,  875,  888,  888,  888,  876,  915,
2282       915,  915,  878, 1417, 1991,  880,  880, 1995,  864,  905,
2283       905,  905, 1992,  888, 1968, 1977,  915,  916,  916,  916,
2284      1968,  916, 2003,  905,  916,  917,  917,  917, 1977, 1999,
2285       872,  918,  918,  918,  878,  919,  919,  919, 2025,  919,
2286
2287      1996, 1995,  919,  917,  922,  922,  922, 1991,  918,  924,
2288       924,  924, 2009,  924, 2003, 1992,  924,  888,  927,  927,
2289       927, 1403,  922,  928,  928,  928, 1999,  928, 2004, 1402,
2290       928,  933,  933,  933, 1996,  927,  929,  929,  929,  917,
2291       929, 1401, 2025,  929,  936,  936,  936, 2000, 2010,  933,
2292       922,  937,  937,  937, 2009,  937, 2019, 2026,  937, 2020,
2293      2004,  936,  938,  938,  938,  939,  939,  939,  943,  943,
2294       943,  945,  945,  945,  949,  949,  949, 1400,  933,  938,
2295       950,  950,  950,  939, 2000, 2019,  943, 2017, 2020,  945,
2296      2010,  949,  952,  952,  952, 2029, 2018,  950,  953,  953,
2297
2298       953, 2026,  954,  954,  954,  955,  955,  955, 2023, 2029,
2299       952,  939,  956,  956,  956,  953,  960,  960,  960,  945,
2300       954, 2017,  955,  950,  957,  957,  957, 1399,  957,  956,
2301      2018,  957, 1398,  960,  961,  961,  961, 2023,  962,  962,
2302       962,  963,  963,  963,  964,  964,  964,  965,  965,  965,
2303      1056,  961, 2021, 1397,  952,  962, 1056, 2022,  963, 1056,
2304       954, 2021,  964, 1056, 2024,  965, 2022,  969,  969,  969,
2305       970,  970,  970, 1396,  956, 2027,  972,  972,  972, 2030,
2306       972, 1390,  962,  972,  969,  975,  975,  975,  970,  975,
2307      2030, 1389,  975, 2024,  979,  979,  979,  980,  980,  980,
2308
2309       961,  992,  992,  992, 2027,  964, 1388,  963,  979,  965,
2310       969, 2028,  982,  982,  982,  980,  982, 1387,  992,  982,
2311       986,  986,  986,  970,  986, 1386, 1385,  986,  989,  989,
2312       989,  990,  990,  990,  993,  993,  993, 1384,  993, 1383,
2313      2028,  993,  996,  996,  996, 1382,  989, 1381, 1375,  990,
2314       998,  998,  998,  999,  999,  999, 1002, 1002, 1002,  980,
2315       996, 1010, 1010, 1010, 1016, 1016, 1016,  998, 1020, 1020,
2316      1020,  999, 1372, 1370, 1002, 1022, 1022, 1022, 1368, 1010,
2317      1023, 1023, 1023, 1364,  990, 1026, 1026, 1026,  996, 1022,
2318       989, 1027, 1027, 1027, 1023, 1029, 1029, 1029, 1030, 1030,
2319
2320      1030, 1032, 1032, 1032, 1002, 1034, 1034, 1034, 1363, 1029,
2321      1010, 1344, 1030, 1342, 1341, 1032,  999, 1331, 1326, 1034,
2322      1002, 1323, 1035, 1035, 1035, 1036, 1036, 1036, 1322, 1036,
2323      1319, 1303, 1036, 1300, 1299, 1022, 1035, 1298, 1039, 1039,
2324      1039, 1040, 1040, 1040, 1284, 1040, 1283, 1282, 1040, 1045,
2325      1045, 1045, 1051, 1051, 1051, 1029, 1039, 1052, 1052, 1052,
2326      1281, 1032, 1047, 1047, 1047, 1034, 1047, 1045, 1280, 1047,
2327      1051, 1054, 1054, 1054, 1279, 1054, 1278, 1277, 1054, 1057,
2328      1057, 1057, 1058, 1058, 1058, 1276, 1058, 1275, 1271, 1058,
2329      1059, 1059, 1059, 1060, 1060, 1060, 1057, 1045, 1061, 1061,
2330
2331      1061, 1039, 1062, 1062, 1062, 1063, 1063, 1063, 1059, 1051,
2332      1060, 1065, 1065, 1065, 1270, 1061, 1066, 1066, 1066, 1062,
2333      1070, 1070, 1070, 1063, 1267, 1071, 1071, 1071, 1065, 1071,
2334      1266, 1264, 1071, 1262, 1066, 1256, 1254, 1070, 1059, 1072,
2335      1072, 1072, 1073, 1073, 1073, 1251, 1073, 1250, 1246, 1073,
2336      1240, 1232, 1061, 1076, 1076, 1076, 1072, 1077, 1077, 1077,
2337      1066, 1078, 1078, 1078, 1230, 1078, 1229, 1228, 1078, 1221,
2338      1215, 1076, 1214, 1213, 1077, 1079, 1079, 1079, 1080, 1080,
2339      1080, 1081, 1081, 1081, 1211, 1081, 1209, 1185, 1081, 1082,
2340      1082, 1082, 1184, 1079, 1183, 1080, 1083, 1083, 1083, 1178,
2341
2342      1084, 1084, 1084, 1177, 1084, 1176, 1082, 1084, 1085, 1085,
2343      1085, 1163, 1161, 1083, 1086, 1086, 1086, 1087, 1087, 1087,
2344      1088, 1088, 1088, 1160, 1159, 1085, 1089, 1089, 1089, 1157,
2345      1156, 1086, 1153, 1152, 1087, 1093, 1093, 1093, 1088, 1094,
2346      1094, 1094, 1150, 1094, 1089, 1149, 1094, 1096, 1096, 1096,
2347      1147, 1146, 1093, 1097, 1097, 1097, 1098, 1098, 1098, 1100,
2348      1100, 1100, 1101, 1101, 1101, 1096, 1145, 1143, 1086, 1139,
2349      1097, 1138, 1137, 1098, 1089, 1134, 1131, 1100, 1130, 1101,
2350      1129, 1128, 1088, 1102, 1102, 1102, 1103, 1103, 1103, 1127,
2351      1126, 1104, 1104, 1104, 1106, 1106, 1106, 1125, 1106, 1120,
2352
2353      1102, 1106, 1112, 1110, 1103, 1104, 1109, 1100, 1105, 1104,
2354      1111, 1111, 1111, 1113, 1113, 1113, 1098, 1114, 1114, 1114,
2355      1099, 1114, 1095, 1092, 1114, 1091, 1102, 1090, 1111, 1075,
2356      1113, 1115, 1115, 1115, 1103, 1121, 1121, 1121, 1122, 1122,
2357      1122, 1074, 1123, 1123, 1123, 1124, 1124, 1124, 1069, 1115,
2358      1068, 1067, 1121, 1053, 1050, 1122, 1046, 1044, 1111, 1123,
2359      1132, 1132, 1132, 1124, 1133, 1133, 1133, 1135, 1135, 1135,
2360      1136, 1136, 1136, 1140, 1140, 1140, 1141, 1141, 1141, 1142,
2361      1142, 1142, 1144, 1144, 1144, 1043, 1115, 1148, 1148, 1148,
2362      1122, 1151, 1151, 1151, 1154, 1154, 1154, 1033, 1031, 1123,
2363
2364      1028, 1025, 1124, 1024, 1021, 1148, 1155, 1155, 1155, 1151,
2365      1019, 1018, 1154, 1164, 1164, 1164, 1017, 1164, 1015, 1013,
2366      1164, 1012, 1011, 1155, 1167, 1167, 1167, 1168, 1168, 1168,
2367      1170, 1170, 1170, 1008, 1148, 1171, 1171, 1171, 1167, 1169,
2368      1169, 1169, 1167, 1169, 1168, 1007, 1169, 1170, 1004, 1154,
2369      1001,  997, 1171, 1172, 1172, 1172,  995, 1172,  994,  991,
2370      1172, 1173, 1173, 1173, 1174, 1174, 1174,  985, 1174,  981,
2371       978, 1174, 1175, 1175, 1175, 1179, 1179, 1179, 1173, 1179,
2372       971,  968, 1179,  967, 1182, 1182, 1182,  966, 1182,  951,
2373      1175, 1182, 1186, 1186, 1186, 1187, 1187, 1187, 1189, 1189,
2374
2375      1189,  948, 1189,  947,  946, 1189, 1192, 1192, 1192, 1186,
2376      1194, 1194, 1194, 1187, 1194,  944,  942, 1194, 1175, 1197,
2377      1197, 1197,  941,  940, 1192, 1198, 1198, 1198,  935, 1198,
2378       932,  923, 1198, 1199, 1199, 1199, 1197, 1199,  921,  920,
2379      1199, 1202, 1202, 1202, 1203, 1203, 1203,  914, 1203,  913,
2380       912, 1203, 1204, 1204, 1204, 1205, 1205, 1205, 1202, 1206,
2381      1206, 1206,  911, 1206,  910,  909, 1206,  907,  906, 1204,
2382       903,  902, 1205, 1207, 1207, 1207, 1208, 1208, 1208, 1210,
2383      1210, 1210, 1212, 1212, 1212,  901, 1212,  899,  898, 1212,
2384       896, 1207,  895,  893, 1208,  891, 1210, 1216, 1216, 1216,
2385
2386      1218, 1218, 1218, 1219, 1219, 1219,  890, 1219,  889,  887,
2387      1219, 1220, 1220, 1220,  886, 1216,  885, 1218, 1223, 1223,
2388      1223, 1207, 1210, 1222, 1222, 1222,  884,  883, 1220, 1225,
2389      1225, 1225, 1226, 1226, 1226, 1223, 1208, 1222, 1224, 1224,
2390      1224, 1222, 1224,  874,  873, 1224, 1225, 1227, 1227, 1227,
2391      1226, 1231, 1231, 1231, 1233, 1233, 1233,  868, 1233,  867,
2392       865, 1233,  851, 1220,  848, 1227, 1236, 1236, 1236, 1231,
2393      1241, 1241, 1241, 1242, 1242, 1242,  843, 1242,  842,  837,
2394      1242, 1243, 1243, 1243, 1236,  832, 1225, 1241, 1244, 1244,
2395      1244,  831,  830, 1227,  826, 1245, 1245, 1245, 1243, 1247,
2396
2397      1247, 1247, 1248, 1248, 1248, 1244, 1249, 1249, 1249, 1252,
2398      1252, 1252, 1231, 1245, 1236, 1253, 1253, 1253, 1255, 1255,
2399      1255, 1257, 1257, 1257, 1258, 1258, 1258, 1259, 1259, 1259,
2400      1260, 1260, 1260, 1261, 1261, 1261,  814, 1243, 1263, 1263,
2401      1263, 1265, 1265, 1265, 1268, 1268, 1268, 1272, 1272, 1272,
2402       813, 1244, 1273, 1273, 1273, 1245, 1274, 1274, 1274, 1265,
2403      1274,  812, 1268, 1274,  811, 1272, 1285, 1285, 1285, 1273,
2404      1286, 1286, 1286,  802, 1286,  801,  796, 1286, 1289, 1289,
2405      1289, 1290, 1290, 1290, 1285, 1290,  788,  787, 1290, 1265,
2406      1291, 1291, 1291,  786, 1291, 1289,  785, 1291, 1294, 1294,
2407
2408      1294,  784, 1294,  780,  775, 1294, 1297, 1297, 1297, 1304,
2409      1304, 1304, 1285, 1305, 1305, 1305,  770, 1305,  769,  768,
2410      1305, 1306, 1306, 1306, 1297, 1306, 1304,  760, 1306, 1309,
2411      1309, 1309,  758, 1309,  752,  743, 1309, 1312, 1312, 1312,
2412      1313, 1313, 1313,  738, 1313,  727,  726, 1313, 1314, 1314,
2413      1314,  725, 1314,  724, 1312, 1314,  722, 1297, 1317, 1317,
2414      1317, 1318, 1318, 1318, 1320, 1320, 1320, 1321, 1321, 1321,
2415       720, 1321,  719,  718, 1321,  717, 1317,  716,  715, 1318,
2416       714, 1320, 1327, 1327, 1327,  712, 1327,  711,  709, 1327,
2417      1330, 1330, 1330, 1332, 1332, 1332, 1333, 1333, 1333,  708,
2418
2419      1333,  707,  706, 1333, 1336, 1336, 1336, 1330, 1337, 1337,
2420      1337, 1332, 1339, 1339, 1339, 1340, 1340, 1340, 1317,  705,
2421       704, 1336, 1343, 1343, 1343,  703, 1337, 1346, 1346, 1346,
2422      1339,  698, 1340, 1345, 1345, 1345, 1330, 1349, 1349, 1349,
2423      1343,  697, 1350, 1350, 1350, 1346, 1350,  696, 1332, 1350,
2424       695, 1345, 1353, 1353, 1353, 1354, 1354, 1354,  692,  691,
2425      1336, 1355, 1355, 1355, 1356, 1356, 1356,  690,  688, 1353,
2426       684,  681, 1354,  680, 1339, 1357, 1357, 1357,  677, 1355,
2427      1358, 1358, 1358, 1343, 1359, 1359, 1359,  676,  675, 1345,
2428      1360, 1360, 1360, 1361, 1361, 1361, 1362, 1362, 1362, 1365,
2429
2430      1365, 1365, 1366, 1366, 1366, 1353, 1367, 1367, 1367, 1369,
2431      1369, 1369, 1371, 1371, 1371,  674, 1355, 1354, 1374, 1374,
2432      1374, 1376, 1376, 1376, 1378, 1378, 1378,  666, 1378,  664,
2433      1371, 1378, 1391, 1391, 1391, 1374, 1392, 1392, 1392, 1376,
2434      1392,  661,  660, 1392, 1395, 1395, 1395, 1404, 1404, 1404,
2435      1391, 1404,  657,  654, 1404,  653, 1407, 1407, 1407,  652,
2436      1407,  649, 1395, 1407, 1410, 1410, 1410, 1411, 1411, 1411,
2437      1413, 1413, 1413, 1414, 1414, 1414,  642, 1414,  641,  640,
2438      1414,  639, 1410,  630,  625, 1411,  624, 1413,  623, 1391,
2439      1428, 1428, 1428, 1429, 1429, 1429, 1430, 1430, 1430, 1435,
2440
2441      1435, 1435, 1436, 1436, 1436,  622,  621, 1428, 1437, 1437,
2442      1437,  618,  615, 1413, 1430,  612, 1435, 1438, 1438, 1438,
2443      1436, 1438,  611,  610, 1438, 1437, 1439, 1439, 1439, 1441,
2444      1441, 1441, 1442, 1442, 1442, 1443, 1443, 1443, 1444, 1444,
2445      1444,  605, 1435, 1439, 1447, 1447, 1447, 1441, 1448, 1448,
2446      1448,  604,  603, 1443,  602,  599, 1444,  597, 1436, 1430,
2447      1449, 1449, 1449,  593,  589, 1448, 1450, 1450, 1450, 1451,
2448      1451, 1451, 1452, 1452, 1452,  588,  585, 1449, 1453, 1453,
2449      1453, 1458, 1458, 1458, 1450, 1461, 1461, 1461, 1462, 1462,
2450      1462,  582, 1462,  581,  580, 1462, 1444, 1443,  579, 1458,
2451
2452       578,  577, 1461, 1474, 1474, 1474,  576,  575, 1449, 1475,
2453      1475, 1475, 1484, 1484, 1484, 1485, 1485, 1485, 1487, 1487,
2454      1487, 1474,  574,  573, 1488, 1488, 1488, 1475, 1488, 1484,
2455       572, 1488,  571, 1485,  570, 1487, 1496, 1496, 1496, 1503,
2456      1503, 1503, 1504, 1504, 1504,  569, 1504,  568,  567, 1504,
2457      1505, 1505, 1505, 1496,  566,  565, 1503,  564,  563, 1474,
2458      1506, 1506, 1506, 1513, 1513, 1513, 1514, 1514, 1514, 1515,
2459      1515, 1515,  562, 1515,  561,  560, 1515,  559, 1506,  558,
2460      1513, 1518, 1518, 1518, 1514, 1519, 1519, 1519,  557, 1519,
2461       554,  553, 1519,  552, 1520, 1520, 1520,  550, 1518, 1521,
2462
2463      1521, 1521, 1523, 1523, 1523, 1524, 1524, 1524,  549,  548,
2464      1513, 1520,  547,  546, 1506,  542,  540, 1521, 1528, 1528,
2465      1528,  539,  538, 1524, 1513, 1529, 1529, 1529,  537, 1529,
2466       534,  533, 1529,  532,  531, 1528, 1530, 1530, 1530, 1531,
2467      1531, 1531, 1537, 1537, 1537, 1538, 1538, 1538,  530, 1538,
2468       529,  526, 1538, 1530, 1552, 1552, 1552, 1531,  522, 1537,
2469      1558, 1558, 1558, 1559, 1559, 1559,  521, 1559,  520,  519,
2470      1559,  518, 1552,  515, 1560, 1560, 1560, 1558, 1560,  514,
2471       513, 1560, 1568, 1568, 1568, 1569, 1569, 1569,  512, 1569,
2472       511,  510, 1569, 1576, 1576, 1576,  507, 1576,  506, 1568,
2473
2474      1576, 1579, 1579, 1579, 1586, 1586, 1586, 1587, 1587, 1587,
2475      1552, 1588, 1588, 1588,  505,  504, 1590, 1590, 1590, 1579,
2476      1590, 1586,  502, 1590, 1587, 1593, 1593, 1593,  499, 1588,
2477      1594, 1594, 1594,  495, 1594,  494,  493, 1594, 1595, 1595,
2478      1595,  492, 1593, 1600, 1600, 1600,  491, 1600,  490,  487,
2479      1600, 1603, 1603, 1603,  484,  483, 1595, 1604, 1604, 1604,
2480       479, 1604,  478, 1579, 1604, 1586,  477, 1587, 1603, 1605,
2481      1605, 1605, 1607, 1607, 1607, 1609, 1609, 1609, 1610, 1610,
2482      1610,  476, 1610,  475,  474, 1610, 1626, 1626, 1626, 1627,
2483      1627, 1627, 1609, 1630, 1630, 1630,  472, 1630,  469,  468,
2484
2485      1630, 1634, 1634, 1634, 1626,  465, 1627, 1636, 1636, 1636,
2486       464, 1636,  463,  462, 1636, 1649, 1649, 1649, 1634, 1656,
2487      1656, 1656, 1657, 1657, 1657, 1667, 1667, 1667, 1663, 1663,
2488      1663,  458, 1627, 1649, 1626,  457, 1656,  456,  455, 1657,
2489      1658, 1658, 1658,  451, 1658, 1663, 1663, 1658, 1664, 1664,
2490      1664,  450, 1664,  449,  448, 1664, 1669, 1669, 1669, 1671,
2491      1671, 1671,  447, 1671,  445,  442, 1671, 1649, 1657, 1678,
2492      1678, 1678, 1687, 1687, 1687, 1688, 1688, 1688, 1689, 1689,
2493      1689, 1656, 1689,  441,  439, 1689, 1678, 1694, 1694, 1694,
2494      1687,  437, 1688, 1695, 1695, 1695,  434, 1695,  433,  430,
2495
2496      1695, 1707, 1707, 1707, 1694, 1714, 1714, 1714, 1715, 1715,
2497      1715, 1717, 1717, 1717, 1718, 1718, 1718,  428, 1687, 1707,
2498       425,  424, 1714,  422,  421, 1715,  420,  419, 1717, 1717,
2499       418, 1718, 1718,  417, 1719, 1719, 1719,  414, 1719,  413,
2500       412, 1719, 1720, 1720, 1720, 1721, 1721, 1721, 1714,  411,
2501       410, 1715, 1719, 1726, 1726, 1726, 1727, 1727, 1727,  409,
2502      1727,  408,  407, 1727, 1736, 1736, 1736, 1737, 1737, 1737,
2503      1726, 1737,  406,  403, 1737, 1744, 1744, 1744,  402, 1745,
2504      1745, 1745, 1736, 1745,  401,  400, 1745, 1748, 1748, 1748,
2505       399,  393, 1744, 1759, 1759, 1759, 1767, 1767, 1767, 1768,
2506
2507      1768, 1768,  392, 1768, 1748,  390, 1768, 1769, 1769, 1769,
2508       384, 1759,  380, 1767, 1770, 1770, 1770,  377, 1771, 1771,
2509      1771,  376, 1771,  372, 1769, 1771, 1736, 1772, 1772, 1772,
2510       371, 1770, 1774, 1774, 1774, 1775, 1775, 1775,  370, 1775,
2511       369,  365, 1775,  359, 1772, 1779, 1779, 1779,  355, 1774,
2512      1774,  352,  348, 1775,  347, 1776, 1776, 1776,  346, 1776,
2513       345,  341, 1776, 1780, 1780, 1780,  338, 1785, 1785, 1785,
2514       332, 1785, 1769, 1776, 1785, 1800, 1800, 1800,  331, 1800,
2515       327,  324, 1800,  319, 1794, 1794, 1794,  318, 1799, 1799,
2516      1799,  317, 1772, 1777, 1777, 1777, 1777, 1777, 1777, 1777,
2517
2518      1777, 1777, 1794,  313, 1777, 1799, 1801, 1801, 1801, 1777,
2519      1777, 1777, 1777, 1777, 1802, 1802, 1802,  307, 1802,  303,
2520       297, 1802,  296, 1801, 1817, 1817, 1817,  294, 1817,  293,
2521       288, 1817, 1820, 1820, 1820, 1777, 1777, 1778, 1778, 1778,
2522      1778, 1778, 1778, 1778, 1778, 1778,  282,  281, 1778, 1820,
2523      1824, 1824, 1824, 1778, 1778, 1778, 1778, 1778, 1821, 1821,
2524      1821,  277, 1821,  274,  270, 1821,  269, 1824, 1826, 1826,
2525      1826,  268, 1826,  267,  265, 1826, 1841, 1841, 1841, 1778,
2526      1778, 1847, 1847, 1847, 1820, 1847, 1826,  261, 1847, 1850,
2527      1850, 1850,  258, 1850, 1841,  255, 1850,  253, 1865, 1865,
2528
2529      1865,  249, 1824, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
2530      1829, 1829,  243,  242, 1829, 1865, 1866, 1866, 1866, 1829,
2531      1829, 1829, 1829, 1829, 1873, 1873, 1873, 1880, 1880, 1880,
2532      1906, 1906, 1906, 1866, 1906,  241,  240, 1906,  236, 1881,
2533      1881, 1881, 1873, 1873, 1880, 1829, 1829, 1830, 1830, 1830,
2534      1830, 1830, 1830, 1830, 1830, 1830, 1881,  230, 1830,  229,
2535      1865,  228,  224, 1830, 1830, 1830, 1830, 1830, 1882, 1882,
2536      1882, 1883, 1883, 1883, 1896, 1896, 1896,  221, 1866, 1897,
2537      1897, 1897, 1898, 1898, 1898, 1882,  216,  214, 1883, 1830,
2538      1830, 1896, 1902, 1902, 1902,  213, 1897, 1905, 1905, 1905,
2539
2540      1898, 1907, 1907, 1907,  209, 1908, 1908, 1908,  206, 1908,
2541      1902, 1882, 1908,  204, 1905, 1909, 1909, 1909, 1907, 1910,
2542      1910, 1910,  203, 1910,  202, 1896, 1910, 1912, 1912, 1912,
2543      1897,  198, 1909,  192, 1913, 1913, 1913,  188, 1913,  184,
2544      1902, 1913,  178,  177, 1912, 1918, 1918, 1918, 1919, 1919,
2545      1919, 1920, 1920, 1920, 1924, 1924, 1924,  173, 1924,  169,
2546       168, 1924, 1918,  167,  161, 1919, 1927, 1927, 1927, 1920,
2547      1927,  160,  158, 1927, 1930, 1930, 1930,  155, 1930,  143,
2548         0, 1930, 1934, 1934, 1934,    0, 1934, 1920, 1918, 1934,
2549         0, 1919, 1941, 1941, 1941, 1942, 1942, 1942, 1950, 1950,
2550
2551      1950, 1951, 1951, 1951, 1958, 1958, 1958,    0,    0, 1941,
2552         0,    0, 1942,    0,    0, 1950,    0,    0, 1951,    0,
2553         0, 1958, 1959, 1959, 1959, 1961, 1961, 1961, 1966, 1966,
2554      1966, 1967, 1967, 1967, 1969, 1969, 1969,    0,    0, 1959,
2555         0,    0, 1961,    0,    0, 1966,    0,    0, 1967, 1941,
2556         0, 1969, 1942,    0,    0, 1958,    0, 1970, 1970, 1970,
2557      1950, 1970,    0, 1951, 1970, 1975, 1975, 1975, 1976, 1976,
2558      1976,    0,    0, 1959,    0,    0, 1966,    0,    0, 1967,
2559         0,    0, 1975,    0,    0, 1976, 1978, 1978, 1978,    0,
2560      1978,    0,    0, 1978, 1983, 1983, 1983, 1984, 1984, 1984,
2561
2562      1985, 1985, 1985, 1986, 1986, 1986, 1987, 1987, 1987,    0,
2563         0, 1983,    0,    0, 1984, 1988, 1988, 1988, 1985, 1988,
2564      1986,    0, 1988, 1987,    0, 1975,    0,    0, 1976, 1989,
2565      1989, 1989,    0, 1988, 1990, 1990, 1990, 1983,    0,    0,
2566      1984, 1993, 1993, 1993,    0,    0, 1989,    0, 1994, 1994,
2567      1994, 1990, 1997, 1997, 1997, 1998, 1998, 1998, 1993, 2001,
2568      2001, 2001,    0,    0, 1986, 1994, 1987,    0,    0, 1997,
2569         0,    0, 1998, 2002, 2002, 2002, 2001, 1989, 2005, 2005,
2570      2005,    0, 1990,    0, 2006, 2006, 2006,    0, 2006,    0,
2571      2002, 2006,    0,    0, 1994, 2005,    0, 1993,    0, 1997,
2572
2573      2007, 2007, 2007, 2008, 2008, 2008,    0, 2008,    0,    0,
2574      2008, 2011, 2011, 2011,    0, 2011,    0, 2007, 2011, 1998,
2575      2014, 2014, 2014,    0, 2014,    0,    0, 2014, 2031, 2031,
2576      2031, 2032, 2032, 2032,    0,    0,    0,    0,    0,    0,
2577         0,    0,    0,    0,    0,    0, 2031,    0,    0, 2032,
2578      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2036,
2579      2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2037, 2037,
2580      2037, 2037, 2037, 2037, 2037, 2037, 2037, 2038, 2038, 2038,
2581      2038, 2038, 2038, 2038, 2038, 2038, 2039, 2039, 2039, 2039,
2582      2039, 2039, 2039, 2039, 2039, 2040, 2040, 2040, 2040, 2040,
2583
2584      2040, 2040, 2040, 2040, 2041, 2041, 2041, 2041, 2041, 2041,
2585      2041, 2041, 2041, 2042, 2042, 2042, 2042, 2042, 2042, 2042,
2586      2042, 2042, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043,
2587      2043, 2044, 2044, 2044, 2044, 2044, 2044, 2044, 2044, 2044,
2588      2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2046,
2589      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2047, 2047,
2590      2047, 2047, 2047, 2047, 2047, 2047, 2047, 2048, 2048, 2048,
2591      2048, 2048, 2048, 2048, 2048, 2048, 2049, 2049, 2049, 2049,
2592      2049, 2049, 2049, 2049, 2049, 2050, 2050, 2050, 2050, 2050,
2593      2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051, 2051, 2051,
2594
2595      2051, 2051, 2051, 2052, 2052, 2052, 2052, 2052, 2052, 2052,
2596      2052, 2052, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
2597      2053, 2054, 2054, 2054, 2054, 2054, 2054, 2054, 2054, 2054,
2598      2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2056,
2599      2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2057, 2057,
2600      2057, 2057, 2057, 2057, 2057, 2057, 2057, 2058, 2058, 2058,
2601      2058, 2058, 2058, 2058, 2058, 2058, 2059, 2059, 2059, 2059,
2602      2059, 2059, 2059, 2059, 2059, 2060, 2060, 2060, 2060, 2060,
2603      2060, 2060, 2060, 2060, 2061, 2061, 2061, 2061, 2061, 2061,
2604      2061, 2061, 2061, 2062, 2062, 2062, 2062, 2062, 2062, 2062,
2605
2606      2062, 2062, 2063, 2063, 2063, 2063, 2063, 2063, 2063, 2063,
2607      2063, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
2608      2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2066,
2609      2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2067, 2067,
2610      2067, 2067, 2067, 2067, 2067, 2067, 2067, 2068, 2068, 2068,
2611      2068, 2068, 2068, 2068, 2068, 2068, 2069, 2069, 2069, 2069,
2612      2069, 2069, 2069, 2069, 2069, 2070, 2070, 2070, 2070, 2070,
2613      2070, 2070, 2070, 2070, 2071, 2071, 2071, 2071, 2071, 2071,
2614      2071, 2071, 2071, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
2615      2072, 2072, 2073, 2073, 2073,    0,    0,    0, 2073, 2074,
2616
2617      2074, 2074,    0,    0,    0, 2074, 2075, 2075, 2075,    0,
2618         0,    0, 2075, 2076, 2076, 2076,    0,    0,    0, 2076,
2619      2077, 2077, 2077,    0,    0,    0, 2077, 2078, 2078, 2078,
2620         0,    0,    0, 2078, 2079, 2079, 2079,    0,    0,    0,
2621      2079, 2080, 2080, 2080,    0,    0,    0, 2080, 2081, 2081,
2622      2081,    0,    0,    0, 2081, 2082, 2082, 2082,    0,    0,
2623         0, 2082, 2083, 2083, 2083,    0,    0,    0, 2083, 2084,
2624      2084, 2084,    0,    0,    0, 2084, 2085, 2085, 2085,    0,
2625         0,    0, 2085, 2086, 2086, 2086,    0,    0,    0, 2086,
2626      2087, 2087, 2087,    0,    0,    0, 2087, 2088, 2088, 2088,
2627
2628         0,    0,    0, 2088, 2089, 2089, 2089,    0,    0,    0,
2629      2089, 2090, 2090, 2090, 2090, 2090, 2090, 2090,    0, 2090,
2630      2091,    0,    0,    0, 2091, 2092,    0,    0,    0, 2092,
2631      2093,    0,    0,    0, 2093, 2094,    0,    0,    0, 2094,
2632      2095,    0,    0,    0, 2095, 2096,    0,    0,    0, 2096,
2633      2097,    0,    0,    0, 2097, 2098,    0,    0,    0, 2098,
2634      2099,    0,    0,    0, 2099, 2100, 2100, 2100,    0,    0,
2635         0, 2100, 2101,    0,    0,    0, 2101, 2102, 2102, 2102,
2636         0,    0,    0, 2102, 2103,    0,    0,    0, 2103, 2104,
2637      2104, 2104,    0,    0,    0, 2104, 2105,    0,    0,    0,
2638
2639      2105, 2106, 2106, 2106,    0,    0,    0, 2106, 2107,    0,
2640         0,    0, 2107, 2108, 2108, 2108,    0,    0,    0, 2108,
2641      2109,    0,    0,    0, 2109, 2110, 2110, 2110,    0,    0,
2642         0, 2110, 2111,    0,    0,    0, 2111, 2112, 2112, 2112,
2643         0,    0,    0, 2112, 2113,    0,    0,    0, 2113, 2114,
2644      2114, 2114,    0,    0,    0, 2114, 2115,    0,    0,    0,
2645      2115, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
2646      2117,    0,    0,    0,    0, 2117, 2118, 2118, 2118,    0,
2647         0,    0, 2118, 2119, 2119, 2119, 2119,    0,    0, 2119,
2648      2119, 2120, 2120, 2120,    0,    0,    0, 2120, 2121, 2121,
2649
2650      2121, 2121,    0,    0, 2121, 2121, 2122, 2122, 2122,    0,
2651         0,    0, 2122, 2123, 2123, 2123, 2123,    0,    0, 2123,
2652      2123, 2124, 2124, 2124,    0,    0,    0, 2124, 2125, 2125,
2653      2125, 2125,    0,    0, 2125, 2125, 2126, 2126, 2126,    0,
2654         0,    0, 2126, 2127, 2127, 2127, 2127,    0,    0, 2127,
2655      2127, 2128, 2128, 2128,    0,    0,    0, 2128, 2129, 2129,
2656      2129, 2129,    0,    0, 2129, 2129, 2130, 2130, 2130,    0,
2657         0,    0, 2130, 2131, 2131, 2131, 2131,    0,    0, 2131,
2658      2131, 2132, 2132, 2132,    0,    0,    0, 2132, 2133, 2133,
2659      2133, 2133,    0,    0, 2133, 2133, 2134, 2134, 2134,    0,
2660
2661         0,    0, 2134, 2135, 2135, 2135, 2135,    0,    0, 2135,
2662      2135, 2136, 2136, 2136,    0,    0,    0, 2136, 2137, 2137,
2663      2137, 2137,    0,    0, 2137, 2137, 2138, 2138, 2138, 2138,
2664         0,    0, 2138, 2138, 2139, 2139, 2139,    0,    0,    0,
2665      2139, 2140, 2140, 2140, 2140,    0,    0, 2140, 2140, 2141,
2666      2141, 2141,    0,    0,    0, 2141, 2142, 2142, 2142, 2142,
2667         0,    0, 2142, 2142, 2143, 2143, 2143,    0,    0,    0,
2668      2143, 2144, 2144, 2144, 2144,    0,    0, 2144, 2144, 2145,
2669      2145, 2145, 2145,    0,    0, 2145, 2145, 2146, 2146, 2146,
2670         0,    0,    0, 2146, 2147, 2147, 2147, 2147,    0,    0,
2671
2672      2147, 2147, 2148, 2148, 2148,    0,    0,    0, 2148, 2149,
2673      2149, 2149, 2149,    0,    0, 2149, 2149, 2150, 2150, 2150,
2674      2150, 2150, 2150, 2150, 2150, 2150, 2151,    0, 2151,    0,
2675         0, 2151, 2152, 2152, 2152,    0,    0,    0, 2152, 2153,
2676      2153, 2153, 2153,    0,    0, 2153, 2153, 2154, 2154, 2154,
2677      2154,    0, 2154,    0, 2154, 2155, 2155, 2155, 2155,    0,
2678         0, 2155, 2155, 2156, 2156, 2156, 2156,    0, 2156,    0,
2679      2156, 2157, 2157, 2157, 2157,    0,    0, 2157, 2157, 2158,
2680      2158, 2158,    0,    0,    0, 2158, 2159, 2159, 2159, 2159,
2681         0,    0, 2159, 2159, 2160, 2160, 2160,    0,    0,    0,
2682
2683      2160, 2161, 2161, 2161, 2161,    0,    0, 2161, 2161, 2162,
2684      2162, 2162,    0,    0,    0, 2162, 2163, 2163, 2163, 2163,
2685         0,    0, 2163, 2163, 2164, 2164, 2164,    0,    0,    0,
2686      2164, 2165, 2165, 2165, 2165,    0,    0, 2165, 2165, 2166,
2687      2166, 2166,    0,    0,    0, 2166, 2167, 2167, 2167, 2167,
2688         0,    0, 2167, 2167, 2168, 2168, 2168,    0,    0,    0,
2689      2168, 2169, 2169, 2169, 2169,    0,    0, 2169, 2169, 2170,
2690      2170, 2170,    0,    0,    0, 2170, 2171, 2171, 2171, 2171,
2691         0,    0, 2171, 2171, 2172, 2172, 2172, 2172,    0,    0,
2692      2172, 2172, 2173, 2173, 2173,    0,    0,    0, 2173, 2174,
2693
2694      2174, 2174, 2174,    0,    0, 2174, 2174, 2175, 2175, 2175,
2695         0,    0,    0, 2175, 2176, 2176, 2176, 2176,    0,    0,
2696      2176, 2176, 2177, 2177, 2177,    0,    0,    0, 2177, 2178,
2697      2178, 2178, 2178,    0,    0, 2178, 2178, 2179, 2179, 2179,
2698      2179,    0,    0, 2179, 2179, 2180, 2180, 2180,    0,    0,
2699         0, 2180, 2181, 2181, 2181, 2181,    0,    0, 2181, 2181,
2700      2182, 2182, 2182,    0,    0,    0, 2182, 2183, 2183, 2183,
2701      2183,    0,    0, 2183, 2183, 2184, 2184, 2184, 2184, 2184,
2702      2184, 2184, 2184, 2184, 2185, 2185, 2185, 2185, 2185, 2185,
2703      2185, 2185, 2185, 2186, 2186, 2186,    0,    0,    0, 2186,
2704
2705      2187, 2187, 2187, 2187,    0,    0, 2187, 2187, 2188, 2188,
2706      2188, 2188,    0,    0, 2188, 2188, 2189, 2189, 2189,    0,
2707         0,    0, 2189, 2190, 2190, 2190, 2190,    0,    0, 2190,
2708      2190, 2191, 2191, 2191,    0,    0,    0, 2191, 2192, 2192,
2709      2192, 2192,    0,    0, 2192, 2192, 2193, 2193, 2193,    0,
2710         0,    0, 2193, 2194, 2194, 2194, 2194,    0,    0, 2194,
2711      2194, 2195, 2195, 2195,    0,    0,    0, 2195, 2196, 2196,
2712      2196, 2196,    0,    0, 2196, 2196, 2197, 2197, 2197,    0,
2713         0,    0, 2197, 2198, 2198, 2198, 2198,    0,    0, 2198,
2714      2198, 2199, 2199, 2199,    0,    0,    0, 2199, 2200, 2200,
2715
2716      2200, 2200,    0,    0, 2200, 2200, 2201, 2201, 2201, 2201,
2717         0, 2201,    0, 2201, 2202, 2202, 2202, 2202,    0,    0,
2718      2202, 2202, 2203, 2203, 2203, 2203,    0, 2203,    0, 2203,
2719      2204, 2204, 2204, 2204,    0,    0, 2204, 2204, 2205, 2205,
2720      2205, 2205,    0,    0, 2205, 2205, 2206, 2206, 2206,    0,
2721         0,    0, 2206, 2207, 2207, 2207, 2207,    0,    0, 2207,
2722      2207, 2208, 2208, 2208,    0,    0,    0, 2208, 2209, 2209,
2723      2209, 2209,    0,    0, 2209, 2209, 2210, 2210, 2210,    0,
2724         0,    0, 2210, 2211, 2211, 2211, 2211,    0,    0, 2211,
2725      2211, 2212, 2212, 2212, 2212,    0,    0, 2212, 2212, 2213,
2726
2727      2213, 2213,    0,    0,    0, 2213, 2214, 2214, 2214, 2214,
2728         0,    0, 2214, 2214, 2215, 2215, 2215, 2215,    0, 2215,
2729         0, 2215, 2216, 2216, 2216, 2216,    0,    0, 2216, 2216,
2730      2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2218,
2731      2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2219, 2219,
2732      2219,    0,    0,    0, 2219, 2220, 2220, 2220, 2220,    0,
2733         0, 2220, 2220, 2221, 2221, 2221, 2221,    0,    0, 2221,
2734      2221, 2222, 2222, 2222,    0,    0,    0, 2222, 2223, 2223,
2735      2223, 2223,    0,    0, 2223, 2223, 2224, 2224, 2224,    0,
2736         0,    0, 2224, 2225, 2225, 2225, 2225,    0,    0, 2225,
2737
2738      2225, 2226, 2226, 2226,    0,    0,    0, 2226, 2227, 2227,
2739      2227, 2227,    0,    0, 2227, 2227, 2228, 2228, 2228, 2228,
2740         0, 2228,    0, 2228, 2229, 2229, 2229, 2229,    0, 2229,
2741         0, 2229, 2230, 2230, 2230, 2230,    0,    0, 2230, 2230,
2742      2231, 2231, 2231,    0,    0,    0, 2231, 2232, 2232, 2232,
2743      2232,    0,    0, 2232, 2232, 2233, 2233, 2233, 2233,    0,
2744         0, 2233, 2233, 2234, 2234, 2234, 2234,    0, 2234,    0,
2745      2234, 2235, 2235, 2235, 2235,    0,    0, 2235, 2235, 2236,
2746      2236, 2236, 2236,    0,    0, 2236, 2236, 2237, 2237, 2237,
2747         0,    0,    0, 2237, 2238, 2238, 2238, 2238,    0,    0,
2748
2749      2238, 2238, 2239, 2239, 2239, 2239,    0, 2239,    0, 2239,
2750      2240, 2240, 2240, 2240,    0,    0, 2240, 2240, 2241, 2241,
2751      2241, 2241,    0, 2241,    0, 2241, 2242, 2242, 2242, 2242,
2752         0,    0, 2242, 2242, 2243, 2243, 2243, 2243,    0,    0,
2753      2243, 2243, 2244, 2244, 2244,    0,    0,    0, 2244, 2245,
2754      2245, 2245, 2245,    0,    0, 2245, 2245, 2246, 2246, 2246,
2755      2246,    0,    0, 2246, 2246, 2247, 2247, 2247, 2247, 2247,
2756      2247, 2247, 2247, 2247, 2248, 2248, 2248, 2248, 2248, 2248,
2757      2248, 2248, 2248, 2249, 2249, 2249, 2249,    0, 2249,    0,
2758      2249, 2250, 2250, 2250, 2250,    0,    0, 2250, 2250, 2251,
2759
2760      2251, 2251, 2251,    0,    0, 2251, 2251, 2252, 2252, 2252,
2761         0,    0,    0, 2252, 2253, 2253, 2253, 2253,    0,    0,
2762      2253, 2253, 2254, 2254, 2254,    0,    0,    0, 2254, 2255,
2763      2255, 2255, 2255,    0,    0, 2255, 2255, 2256, 2256, 2256,
2764      2256,    0, 2256,    0, 2256, 2257, 2257, 2257, 2257,    0,
2765         0, 2257, 2257, 2258, 2258, 2258, 2258,    0, 2258,    0,
2766      2258, 2259, 2259, 2259, 2259,    0,    0, 2259, 2259, 2260,
2767      2260, 2260,    0,    0,    0, 2260, 2261, 2261, 2261, 2261,
2768      2261, 2261, 2261, 2261, 2261, 2262, 2262, 2262, 2262, 2262,
2769      2262, 2262, 2262, 2262, 2263, 2263, 2263, 2263, 2263, 2263,
2770
2771      2263, 2263, 2263, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
2772      2264, 2264, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
2773      2265, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266,
2774      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2775      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2776      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2777      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2778      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2779      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2780      2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034
2781
2782     } ;
2783
2784 /* Table of booleans, true if rule could match eol. */
2785 static yyconst flex_int32_t yy_rule_can_match_eol[354] =
2786     {   0,
2787 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2788     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2789     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 
2790     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2791     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2792     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2793     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2794     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2795     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
2796     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2797     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
2798     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2799     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
2800     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2801     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
2802     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2803     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2804     1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2805
2806 static yy_state_type yy_last_accepting_state;
2807 static char *yy_last_accepting_cpos;
2808
2809 extern int surf_parse__flex_debug;
2810 int surf_parse__flex_debug = 0;
2811
2812 /* The intent behind this definition is that it'll catch
2813  * any uses of REJECT which flex missed.
2814  */
2815 #define REJECT reject_used_but_not_detected
2816 #define yymore() yymore_used_but_not_detected
2817 #define YY_MORE_ADJ 0
2818 #define YY_RESTORE_YY_MORE_OFFSET
2819 char *surf_parse_text;
2820 /* Validating XML processor for src/surf/simgrid.dtd.
2821  * Generated 2010/06/17 19:11:51.
2822  *
2823  * This program was generated with the FleXML XML processor generator.
2824  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2825  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2826  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
2827  * 
2828  * There are two, intertwined parts to this program, part A and part B.
2829  *
2830  * Part A
2831  * ------
2832  * 
2833  * Some parts, here collectively called "Part A", are found in the 
2834  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2835  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2836  *
2837  * You can redistribute, use, perform, display and/or modify "Part A"
2838  * provided the following two conditions hold:
2839  *
2840  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2841  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2842  *    FITNESS FOR A PARTICULAR PURPOSE.
2843  *
2844  * 2. The program distribution conditions do not in any way affect the
2845  *    distribution conditions of the FleXML system used to generate this
2846  *    file or any version of FleXML derived from that system.
2847  *
2848  * Notice that these are explicit rights granted to you for files
2849  * generated by the FleXML system.  For your rights in connection with
2850  * the FleXML system itself please consult the GNU General Public License.
2851  * 
2852  * Part B
2853  * ------
2854  * 
2855  * The other parts, here collectively called "Part B", and which came 
2856  * from the DTD used by FleXML to generate this program, can be 
2857  * distributed (or not, as the case may be) under the terms of whoever
2858  * wrote them, provided these terms respect and obey the two conditions 
2859  * above under the heading "Part A".
2860  *
2861  * The author of and contributors to FleXML specifically disclaim
2862  * any copyright interest in "Part B", unless "Part B" was written 
2863  * by the author of or contributors to FleXML.
2864  * 
2865  */
2866
2867 /* Version strings. */
2868 const char rcs_surfxml_flexml_skeleton[] =
2869  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2870 const char rcs_surfxml_flexml[] =
2871  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
2872
2873 /* ANSI headers. */
2874 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2875 #include <stdio.h>
2876 #include <string.h>
2877 #include <assert.h>
2878 #include <stdarg.h>
2879 #include <ctype.h>
2880      
2881 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2882 # ifndef __STRICT_ANSI__
2883 #  include <io.h>
2884 #  include <process.h>
2885 # endif
2886 #else
2887 # include <unistd.h>
2888 #endif
2889      
2890 #ifndef FLEXML_INDEXSTACKSIZE
2891 #define FLEXML_INDEXSTACKSIZE 1000
2892 #endif
2893
2894 /* Generated definitions. */
2895 #define FLEXML_yylineno
2896 #ifndef FLEXML_BUFFERSTACKSIZE
2897 #define FLEXML_BUFFERSTACKSIZE 1000000
2898 #endif
2899 #define FLEXML_NEED_BUFFERLIT
2900
2901 /* XML processor api. */
2902 /* FleXML-provided data. */
2903 int surfxml_pcdata_ix;
2904 extern char *surfxml_bufferstack;
2905 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2906 AT_surfxml_random_generator AX_surfxml_random_generator;
2907 #define A_surfxml_random_generator AX_surfxml_random_generator
2908 AT_surfxml_prop_id AX_surfxml_prop_id;
2909 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2910 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2911 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2912 AT_surfxml_host_id AX_surfxml_host_id;
2913 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2914 AT_surfxml_set_id AX_surfxml_set_id;
2915 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2916 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2917 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2918 AT_surfxml_host_state AX_surfxml_host_state;
2919 #define A_surfxml_host_state AX_surfxml_host_state
2920 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2921 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2922 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2923 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2924 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2925 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2926 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2927 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2928 AT_surfxml_host_power AX_surfxml_host_power;
2929 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2930 AT_surfxml_router_id AX_surfxml_router_id;
2931 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2932 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2933 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2934 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2935 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2936 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2937 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2938 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2939 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2940 AT_surfxml_trace_file AX_surfxml_trace_file;
2941 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2942 AT_surfxml_route_action AX_surfxml_route_action;
2943 #define A_surfxml_route_action AX_surfxml_route_action
2944 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2945 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2946 AT_surfxml_random_min AX_surfxml_random_min;
2947 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2948 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2949 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2950 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2951 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2952 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2953 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2954 AT_surfxml_argument_value AX_surfxml_argument_value;
2955 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2956 AT_surfxml_link_state AX_surfxml_link_state;
2957 #define A_surfxml_link_state AX_surfxml_link_state
2958 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2959 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2960 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2961 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2962 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2963 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2964 AT_surfxml_random_mean AX_surfxml_random_mean;
2965 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2966 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2967 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2968 AT_surfxml_link_latency AX_surfxml_link_latency;
2969 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2970 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2971 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2972 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2973 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2974 AT_surfxml_host_vivaldi AX_surfxml_host_vivaldi;
2975 #define A_surfxml_host_vivaldi (surfxml_bufferstack + AX_surfxml_host_vivaldi)
2976 AT_surfxml_random_id AX_surfxml_random_id;
2977 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2978 AT_surfxml_set_radical AX_surfxml_set_radical;
2979 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2980 AT_surfxml_random_max AX_surfxml_random_max;
2981 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2982 AT_surfxml_link_id AX_surfxml_link_id;
2983 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2984 AT_surfxml_process_host AX_surfxml_process_host;
2985 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2986 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2987 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2988 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2989 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2990 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2991 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2992 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2993 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2994 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2995 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2996 AT_surfxml_prop_value AX_surfxml_prop_value;
2997 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2998 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2999 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
3000 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3001 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3002 AT_surfxml_set_prefix AX_surfxml_set_prefix;
3003 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
3004 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3005 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3006 AT_surfxml_process_function AX_surfxml_process_function;
3007 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3008 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
3009 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
3010 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
3011 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
3012 AT_surfxml_host_availability AX_surfxml_host_availability;
3013 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3014 AT_surfxml_route_src AX_surfxml_route_src;
3015 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3016 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
3017 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
3018 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
3019 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
3020 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
3021 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
3022 AT_surfxml_trace_id AX_surfxml_trace_id;
3023 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3024 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3025 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3026 AT_surfxml_include_file AX_surfxml_include_file;
3027 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3028 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3029 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3030 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3031 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3032 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3033 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3034 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3035 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3036 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3037 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3038 AT_surfxml_route_dst AX_surfxml_route_dst;
3039 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3040 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3041 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3042 AT_surfxml_platform_version AX_surfxml_platform_version;
3043 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3044
3045 /* XML state. */
3046 #ifdef FLEX_DEBUG
3047 # define ENTER(state)   debug_enter(state,#state)
3048 # define LEAVE          debug_leave()
3049 # define SET(state)     debug_set(state,#state)
3050   static void debug_enter(int, const char*);
3051   static void debug_leave(void);
3052   static void debug_set(int, const char*);
3053 #else
3054 # define ENTER(state)   (yy_push_state(state))
3055 # define LEAVE          (yy_pop_state())
3056 # define SET(state)     BEGIN(state)
3057 #endif
3058
3059 /* Generic actions. */
3060 #define SKIP    /*skip*/
3061 #define SUCCEED        CLEANUP; return 0
3062
3063 #define FAIL    return fail
3064 static int fail(const char*, ...);
3065
3066 enum {flexml_max_err_msg_size = 512};
3067 static char flexml_err_msg[flexml_max_err_msg_size];
3068 const char * surfxml_parse_err_msg()
3069 {
3070     return flexml_err_msg;
3071 }
3072 static void reset_surfxml_parse_err_msg()
3073 {
3074     flexml_err_msg[0] = '\0';
3075 }
3076
3077 /* Cleanup */
3078 static void cleanup(void);
3079 #define CLEANUP  cleanup()
3080
3081 /* Text buffer stack handling. */
3082 char *surfxml_bufferstack = NULL;
3083 static int blimit = FLEXML_BUFFERSTACKSIZE;
3084 static int bnext = 1;
3085
3086 static int *indexstack = NULL;
3087 static int ilimit = FLEXML_INDEXSTACKSIZE;
3088 static int inext = 1;
3089
3090 #define BUFFERSET(P)  (P = bnext)
3091 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3092 #define BUFFERDONE    (BUFFERPUTC('\0'))
3093
3094 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3095
3096 /* after this is called, there are at least 2 slots left in the stack */
3097 static int ck_blimit()
3098 {
3099      if (bnext >= blimit) {
3100          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3101          {
3102              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3103              assert(temp);
3104              surfxml_bufferstack = temp;
3105          }
3106      }
3107      return 0;
3108 }
3109
3110 /* after this is called, there are at least 2 slots left in the stack */
3111 static int ck_ilimit()
3112 {
3113      if (inext >= ilimit) {
3114          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3115          {
3116              int *temp = (int *) realloc(indexstack, ilimit);
3117              assert(temp);
3118              indexstack = temp;
3119          }
3120      }
3121      return 0;
3122 }
3123
3124 #ifdef FLEXML_NEED_BUFFERLIT
3125 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3126 {
3127   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3128   assert(s <= e); BUFFERSET(*pp);
3129   while (++s<e) {
3130     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3131     else BUFFERPUTC(*s);
3132   }
3133   BUFFERDONE;
3134 }
3135 #endif
3136
3137 static void pushbuffer(int p)
3138 {
3139     ck_ilimit();
3140     indexstack[inext++] = p;
3141     indexstack[inext++] = bnext;    
3142 }
3143
3144 static int popbuffer(void)
3145 {
3146     assert(inext >= 2);
3147     bnext = indexstack[--inext];
3148     return indexstack[--inext];
3149 }
3150
3151 /* General internal entities are `unput' back onto the input stream... */
3152 #define ENTITYTEXT(T) \
3153   { char *s = (T), *e = s+strlen(s);\
3154     while (--e >= s) { unput(*e); }}
3155
3156 /* Flex standard options. */
3157 #define YY_NO_INPUT 1
3158 /* Flex user-requested options. */
3159 /* XML character classes (currently restricted to ASCII). */
3160 /* "Common syntactic structures." */
3161 /* "Names and Tokens." */
3162 /* Miscellaneous. */
3163 /* Parser states (flex `exclusive start conditions'):
3164  *
3165  * PROLOG       the XML prolog of the document before <?xml...>
3166  * DOCTYPE      the XML prolog of the document after <?xml...>
3167  * EPILOG       after the root element
3168  * INCOMMENT    inside an XML comment <!--....-->
3169  * INPI         inside an XML PI <?...?>
3170  * VALUE1       inside a '...'-delimited literal
3171  * VALUE2       inside a "..."-delimited literal
3172  * CDATA        inside a <![CDATA[...] ]> section.
3173  * ROOT_<tag>   expect root element <tag>
3174  * AL_<tag>     inside the attribute list for <tag>
3175  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3176  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3177  */
3178
3179 /* State names. */
3180 const char* *surfxml_statenames=NULL;
3181
3182 #define INITIAL 0
3183 #define PROLOG 1
3184 #define DOCTYPE 2
3185 #define EPILOG 3
3186 #define INCOMMENT 4
3187 #define INPI 5
3188 #define VALUE1 6
3189 #define VALUE2 7
3190 #define CDATA 8
3191 #define ROOT_surfxml_platform 9
3192 #define AL_surfxml_platform 10
3193 #define S_surfxml_platform 11
3194 #define S_surfxml_platform_1 12
3195 #define S_surfxml_platform_2 13
3196 #define S_surfxml_platform_3 14
3197 #define S_surfxml_platform_4 15
3198 #define S_surfxml_platform_5 16
3199 #define E_surfxml_platform 17
3200 #define AL_surfxml_include 18
3201 #define E_surfxml_include 19
3202 #define AL_surfxml_trace 20
3203 #define IN_trace 21
3204 #define AL_surfxml_random 22
3205 #define S_surfxml_random 23
3206 #define S_surfxml_random_1 24
3207 #define S_surfxml_random_2 25
3208 #define E_surfxml_random 26
3209 #define AL_surfxml_trace_c_connect 27
3210 #define E_surfxml_trace_c_connect 28
3211 #define AL_surfxml_set 29
3212 #define E_surfxml_set 30
3213 #define AL_surfxml_foreach 31
3214 #define S_surfxml_foreach 32
3215 #define S_surfxml_foreach_1 33
3216 #define E_surfxml_foreach 34
3217 #define AL_surfxml_host 35
3218 #define S_surfxml_host 36
3219 #define S_surfxml_host_1 37
3220 #define S_surfxml_host_2 38
3221 #define E_surfxml_host 39
3222 #define AL_surfxml_prop 40
3223 #define E_surfxml_prop 41
3224 #define AL_surfxml_cluster 42
3225 #define E_surfxml_cluster 43
3226 #define AL_surfxml_router 44
3227 #define E_surfxml_router 45
3228 #define AL_surfxml_link 46
3229 #define S_surfxml_link 47
3230 #define S_surfxml_link_1 48
3231 #define S_surfxml_link_2 49
3232 #define E_surfxml_link 50
3233 #define AL_surfxml_route_c_multi 51
3234 #define S_surfxml_route_c_multi 52
3235 #define S_surfxml_route_c_multi_1 53
3236 #define S_surfxml_route_c_multi_2 54
3237 #define E_surfxml_route_c_multi 55
3238 #define AL_surfxml_route 56
3239 #define S_surfxml_route 57
3240 #define S_surfxml_route_1 58
3241 #define S_surfxml_route_2 59
3242 #define E_surfxml_route 60
3243 #define AL_surfxml_link_c_ctn 61
3244 #define E_surfxml_link_c_ctn 62
3245 #define AL_surfxml_process 63
3246 #define S_surfxml_process 64
3247 #define S_surfxml_process_1 65
3248 #define S_surfxml_process_2 66
3249 #define E_surfxml_process 67
3250 #define AL_surfxml_argument 68
3251 #define E_surfxml_argument 69
3252 #define IMPOSSIBLE 70
3253
3254 #ifndef YY_NO_UNISTD_H
3255 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3256  * down here because we want the user's section 1 to have been scanned first.
3257  * The user has a chance to override it with an option.
3258  */
3259 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3260 #  ifndef __STRICT_ANSI__
3261 #    include <io.h>
3262 #    include <process.h>
3263 #  endif
3264 #else
3265 #  include <unistd.h>
3266 #endif
3267 #endif
3268
3269 #ifndef YY_EXTRA_TYPE
3270 #define YY_EXTRA_TYPE void *
3271 #endif
3272
3273 static int yy_init_globals (void );
3274
3275 /* Accessor methods to globals.
3276    These are made visible to non-reentrant scanners for convenience. */
3277
3278 int surf_parse_lex_destroy (void );
3279
3280 int surf_parse_get_debug (void );
3281
3282 void surf_parse_set_debug (int debug_flag  );
3283
3284 YY_EXTRA_TYPE surf_parse_get_extra (void );
3285
3286 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
3287
3288 FILE *surf_parse_get_in (void );
3289
3290 void surf_parse_set_in  (FILE * in_str  );
3291
3292 FILE *surf_parse_get_out (void );
3293
3294 void surf_parse_set_out  (FILE * out_str  );
3295
3296 int surf_parse_get_leng (void );
3297
3298 char *surf_parse_get_text (void );
3299
3300 int surf_parse_get_lineno (void );
3301
3302 void surf_parse_set_lineno (int line_number  );
3303
3304 /* Macros after this point can all be overridden by user definitions in
3305  * section 1.
3306  */
3307
3308 #ifndef YY_SKIP_YYWRAP
3309 #ifdef __cplusplus
3310 extern "C" int surf_parse_wrap (void );
3311 #else
3312 extern int surf_parse_wrap (void );
3313 #endif
3314 #endif
3315
3316 #ifndef yytext_ptr
3317 static void yy_flex_strncpy (char *,yyconst char *,int );
3318 #endif
3319
3320 #ifdef YY_NEED_STRLEN
3321 static int yy_flex_strlen (yyconst char * );
3322 #endif
3323
3324 #ifndef YY_NO_INPUT
3325
3326 #ifdef __cplusplus
3327 static int yyinput (void );
3328 #else
3329 static int input (void );
3330 #endif
3331
3332 #endif
3333
3334         static int yy_start_stack_ptr = 0;
3335         static int yy_start_stack_depth = 0;
3336         static int *yy_start_stack = NULL;
3337     
3338     static void yy_push_state (int new_state );
3339     
3340     static void yy_pop_state (void );
3341     
3342 /* Amount of stuff to slurp up with each read. */
3343 #ifndef YY_READ_BUF_SIZE
3344 #ifdef __ia64__
3345 /* On IA-64, the buffer size is 16k, not 8k */
3346 #define YY_READ_BUF_SIZE 16384
3347 #else
3348 #define YY_READ_BUF_SIZE 8192
3349 #endif /* __ia64__ */
3350 #endif
3351
3352 /* Copy whatever the last rule matched to the standard output. */
3353 #ifndef ECHO
3354 /* This used to be an fputs(), but since the string might contain NUL's,
3355  * we now use fwrite().
3356  */
3357 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3358 #endif
3359
3360 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3361  * is returned in "result".
3362  */
3363 #ifndef YY_INPUT
3364 #define YY_INPUT(buf,result,max_size) \
3365         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3366                 { \
3367                 int c = '*'; \
3368                 size_t n; \
3369                 for ( n = 0; n < max_size && \
3370                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3371                         buf[n] = (char) c; \
3372                 if ( c == '\n' ) \
3373                         buf[n++] = (char) c; \
3374                 if ( c == EOF && ferror( surf_parse_in ) ) \
3375                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3376                 result = n; \
3377                 } \
3378         else \
3379                 { \
3380                 errno=0; \
3381                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3382                         { \
3383                         if( errno != EINTR) \
3384                                 { \
3385                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3386                                 break; \
3387                                 } \
3388                         errno=0; \
3389                         clearerr(surf_parse_in); \
3390                         } \
3391                 }\
3392 \
3393
3394 #endif
3395
3396 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3397  * we don't want an extra ';' after the "return" because that will cause
3398  * some compilers to complain about unreachable statements.
3399  */
3400 #ifndef yyterminate
3401 #define yyterminate() return YY_NULL
3402 #endif
3403
3404 /* Number of entries by which start-condition stack grows. */
3405 #ifndef YY_START_STACK_INCR
3406 #define YY_START_STACK_INCR 25
3407 #endif
3408
3409 /* Report a fatal error. */
3410 #ifndef YY_FATAL_ERROR
3411 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3412 #endif
3413
3414 /* end tables serialization structures and prototypes */
3415
3416 /* Default declaration of generated scanner - a define so the user can
3417  * easily add parameters.
3418  */
3419 #ifndef YY_DECL
3420 #define YY_DECL_IS_OURS 1
3421
3422 extern int surf_parse_lex (void);
3423
3424 #define YY_DECL int surf_parse_lex (void)
3425 #endif /* !YY_DECL */
3426
3427 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3428  * have been set up.
3429  */
3430 #ifndef YY_USER_ACTION
3431 #define YY_USER_ACTION
3432 #endif
3433
3434 /* Code executed at the end of each rule. */
3435 #ifndef YY_BREAK
3436 #define YY_BREAK break;
3437 #endif
3438
3439 #define YY_RULE_SETUP \
3440         YY_USER_ACTION
3441
3442 /** The main scanner function which does all the work.
3443  */
3444 YY_DECL
3445 {
3446         register yy_state_type yy_current_state;
3447         register char *yy_cp, *yy_bp;
3448         register int yy_act;
3449     
3450  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3451  SET(PROLOG);
3452  reset_surfxml_parse_err_msg();
3453  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3454  assert(surfxml_bufferstack);
3455  #ifdef FLEX_DEBUG
3456  {
3457      int i;
3458      for (i = 0; i < blimit; i++) {
3459          surfxml_bufferstack[i] = '\377';
3460      }
3461  }
3462  #endif
3463  surfxml_bufferstack[0] = '\0';
3464  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3465  assert(indexstack);
3466  indexstack[0] = 0;
3467
3468   /* FleXML_init */
3469   bnext = inext = 1;
3470   surfxml_bufferliteral('\0', &bnext, "0.0");
3471   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3472   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3473   surfxml_bufferliteral('\0', &bnext, "1.0");
3474   surfxml_bufferliteral('\0', &bnext, "1.0");
3475   surfxml_bufferliteral('\0', &bnext, "1.0");
3476   surfxml_bufferliteral('\0', &bnext, "1.0");
3477   surfxml_bufferliteral('\0', &bnext, "-1.0");
3478   surfxml_bufferliteral('\0', &bnext, "0 0 0");
3479   surfxml_bufferliteral('\0', &bnext, "0.0");
3480   surfxml_bufferliteral('\0', &bnext, "0.0");
3481   surfxml_bufferliteral('\0', &bnext, "0.0");
3482   surfxml_bufferliteral('\0', &bnext, "0.0");
3483   surfxml_bufferliteral('\0', &bnext, "0.0");
3484   surfxml_bufferliteral('\0', &bnext, "-1.0");
3485   surfxml_bufferliteral('\0', &bnext, "-1.0");
3486   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3487   surfxml_statenames[PROLOG] = NULL;
3488   surfxml_statenames[DOCTYPE] = NULL;
3489   surfxml_statenames[EPILOG] = NULL;
3490   surfxml_statenames[INCOMMENT] = NULL;
3491   surfxml_statenames[INPI] = NULL;
3492   surfxml_statenames[VALUE1] = NULL;
3493   surfxml_statenames[VALUE2] = NULL;
3494   surfxml_statenames[CDATA] = NULL;
3495   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3496   surfxml_statenames[AL_surfxml_platform] = NULL;
3497   surfxml_statenames[S_surfxml_platform] = "platform";
3498   surfxml_statenames[S_surfxml_platform_1] = "platform";
3499   surfxml_statenames[S_surfxml_platform_2] = "platform";
3500   surfxml_statenames[S_surfxml_platform_3] = "platform";
3501   surfxml_statenames[S_surfxml_platform_4] = "platform";
3502   surfxml_statenames[S_surfxml_platform_5] = "platform";
3503   surfxml_statenames[E_surfxml_platform] = "platform";
3504   surfxml_statenames[AL_surfxml_include] = NULL;
3505   surfxml_statenames[E_surfxml_include] = "include";
3506   surfxml_statenames[AL_surfxml_trace] = NULL;
3507   surfxml_statenames[IN_trace] = "trace";
3508   surfxml_statenames[AL_surfxml_random] = NULL;
3509   surfxml_statenames[S_surfxml_random] = "random";
3510   surfxml_statenames[S_surfxml_random_1] = "random";
3511   surfxml_statenames[S_surfxml_random_2] = "random";
3512   surfxml_statenames[E_surfxml_random] = "random";
3513   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3514   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3515   surfxml_statenames[AL_surfxml_set] = NULL;
3516   surfxml_statenames[E_surfxml_set] = "set";
3517   surfxml_statenames[AL_surfxml_foreach] = NULL;
3518   surfxml_statenames[S_surfxml_foreach] = "foreach";
3519   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3520   surfxml_statenames[E_surfxml_foreach] = "foreach";
3521   surfxml_statenames[AL_surfxml_host] = NULL;
3522   surfxml_statenames[S_surfxml_host] = "host";
3523   surfxml_statenames[S_surfxml_host_1] = "host";
3524   surfxml_statenames[S_surfxml_host_2] = "host";
3525   surfxml_statenames[E_surfxml_host] = "host";
3526   surfxml_statenames[AL_surfxml_prop] = NULL;
3527   surfxml_statenames[E_surfxml_prop] = "prop";
3528   surfxml_statenames[AL_surfxml_cluster] = NULL;
3529   surfxml_statenames[E_surfxml_cluster] = "cluster";
3530   surfxml_statenames[AL_surfxml_router] = NULL;
3531   surfxml_statenames[E_surfxml_router] = "router";
3532   surfxml_statenames[AL_surfxml_link] = NULL;
3533   surfxml_statenames[S_surfxml_link] = "link";
3534   surfxml_statenames[S_surfxml_link_1] = "link";
3535   surfxml_statenames[S_surfxml_link_2] = "link";
3536   surfxml_statenames[E_surfxml_link] = "link";
3537   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3538   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3539   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3540   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3541   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3542   surfxml_statenames[AL_surfxml_route] = NULL;
3543   surfxml_statenames[S_surfxml_route] = "route";
3544   surfxml_statenames[S_surfxml_route_1] = "route";
3545   surfxml_statenames[S_surfxml_route_2] = "route";
3546   surfxml_statenames[E_surfxml_route] = "route";
3547   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3548   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3549   surfxml_statenames[AL_surfxml_process] = NULL;
3550   surfxml_statenames[S_surfxml_process] = "process";
3551   surfxml_statenames[S_surfxml_process_1] = "process";
3552   surfxml_statenames[S_surfxml_process_2] = "process";
3553   surfxml_statenames[E_surfxml_process] = "process";
3554   surfxml_statenames[AL_surfxml_argument] = NULL;
3555   surfxml_statenames[E_surfxml_argument] = "argument";
3556   }
3557
3558  /* COMMENTS and PIs: handled uniformly for efficiency. */
3559
3560         if ( !(yy_init) )
3561                 {
3562                 (yy_init) = 1;
3563
3564 #ifdef YY_USER_INIT
3565                 YY_USER_INIT;
3566 #endif
3567
3568                 if ( ! (yy_start) )
3569                         (yy_start) = 1; /* first start state */
3570
3571                 if ( ! surf_parse_in )
3572                         surf_parse_in = stdin;
3573
3574                 if ( ! surf_parse_out )
3575                         surf_parse_out = stdout