Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge changes of maxmin_selective_update branch into the trunk.
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "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[2036] =
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,   54,   10,   54,   54,   54,
438
439        52,   54,   54,   54,   54,  349,  348,   76,   10,   76,
440        76,   76,   74,   76,   76,   76,   76,   80,   10,   80,
441       352,   80,   99,   10,   99,   99,   99,   97,   99,   99,
442        99,  103,   10,  103,  116,   10,  116,  116,  116,  114,
443       116,  116,  116,  116,  120,   10,  120,  127,   10,  127,
444       127,  127,  125,  127,  352,  352,  131,   10,  131,  158,
445        10,  158,  158,  158,  156,  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,   53,   55,   55,   55,   55,   55,
465         0,    0,    0,   75,   77,   77,   77,   77,   77,   77,
466        77,    0,    0,   98,  100,  100,  100,  100,    0,  115,
467       117,  117,  117,  117,  117,    0,  126,  128,  128,    0,
468       157,  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,   55,    0,    0,   55,   55,    0,
481         0,    0,  345,   77,    0,    0,   77,   77,   77,   77,
482
483         0,    0,    0,  100,  100,  100,    0,    0,    0,    0,
484       117,  117,  117,    0,    0,  128,    0,    0,  159,    0,
485         0,  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,  105,    0,    0,    0,    0,    0,    0,    0,
496       104,    0,    0,    0,    0,    0,    0,   38,    0,    0,
497        40,    0,   55,    0,   45,   44,   55,   55,    0,    0,
498         0,   57,    0,   77,    0,   61,   60,    0,    0,   77,
499         0,    0,   77,    0,    0,   79,    0,    0,  100,  100,
500       100,    0,    0,  102,    0,    0,  107,  106,  117,  117,
501       117,    0,    0,  119,    0,  128,    0,    0,  130,    0,
502       159,    0,  135,  134,  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,  133,    0,  215,    0,    0,  163,    0,    0,  105,
515
516         0,    0,    0,  132,  214,    0,    0,  104,    0,    0,
517         0,    0,    0,    0,    0,    0,    0,    0,    0,   55,
518        55,    0,    0,   77,    0,   65,   64,    0,    0,    0,
519        63,   62,   77,    0,  164,  100,    0,    0,  100,    0,
520       117,  117,  117,    0,  128,    0,  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,  133,    0,  215,    0,    0,    0,  163,
529         0,  267,   43,    0,    0,  132,  214,    0,  267,   42,
530         0,  266,    0,  266,   42,    0,   34,   33,    0,    0,
531        47,   46,   55,   55,    0,    0,   77,    0,   67,   66,
532        77,    0,  164,  100,    0,    0,    0,    0,    0,    0,
533       117,  117,  117,    0,  118,  128,    0,  159,  159,  159,
534         0,    0,    0,    0,  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,   59,  267,    0,  204,   43,    0,    0,    0,   58,
542       203,   42,    0,  266,    0,    0,    0,    0,   55,   55,
543         0,    0,   77,   77,    0,  100,    0,    0,    0,    0,
544         0,    0,    0,    0,    0,   94,   93,    0,    0,    0,
545       117,    0,    0,    0,    0,    0,  159,  159,  159,    0,
546       137,  136,    0,    0,    0,  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,  122,   32,    0,
554         0,  305,   59,    0,  204,    0,  176,  121,   58,  203,
555       304,    0,   31,    0,    0,   55,   55,    0,    0,   56,
556        77,   77,    0,    0,    0,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,  109,  108,    0,
558         0,    0,  111,  110,    0,  124,  123,    0,  159,  159,
559
560       159,    0,    0,  159,    0,  195,  194,    0,  181,  180,
561         0,    0,    0,  183,  182,    0,    0,  239,    0,    0,
562       239,  239,    0,    0,  239,    0,    0,    0,  262,    0,
563         0,    0,    0,    0,  289,    0,  290,    0,  317,  317,
564       317,    0,    0,    0,    0,    0,    0,   17,    0,   19,
565        18,   27,   27,    0,  321,  177,  122,   32,  293,   16,
566       305,    0,    0,  176,  121,  304,    0,   31,    0,    0,
567        55,    0,    0,  344,   77,   77,    0,   78,    0,   96,
568        95,    0,    0,    0,    0,    0,    0,    0,    0,    0,
569         0,    0,    0,  113,  112,    0,  159,  159,  159,    0,
570
571         0,    0,    0,  159,    0,  185,  184,    0,    0,  211,
572       239,    0,  223,  222,  239,  239,    0,    0,    0,    0,
573       239,    0,    0,    0,    0,  262,  294,    0,    0,    0,
574         0,    0,  289,    0,    0,    0,  317,  317,    0,  322,
575         0,    0,    0,    0,   17,   27,   27,    0,  321,  293,
576        16,    0,    0,    0,    0,    0,   39,   55,    0,   51,
577        50,    0,    0,   77,    0,    0,    0,    0,    0,    0,
578         0,    0,    0,    0,    0,    0,  129,  159,  159,  159,
579         0,  143,    0,  142,  159,    0,  200,    0,    0,  239,
580       239,  239,    0,  227,    0,  226,  239,    0,    0,    0,
581
582         0,    0,    0,    0,    0,  294,    0,    0,    0,    0,
583         0,    0,    0,  289,    0,    0,  309,  308,    0,    0,
584       317,    0,  318,  322,    0,    0,    0,    0,    0,    0,
585        27,    0,   28,    0,    0,    0,    0,   55,    0,    0,
586         0,   77,    0,    0,    0,    0,    0,    0,    0,    0,
587         0,    0,    0,  159,  159,  159,  145,  144,    0,    0,
588         0,  219,  218,  239,  239,  239,  229,  228,    0,    0,
589         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
590         0,    0,    0,    0,    0,    0,  289,  289,    0,  301,
591         0,  313,  312,    0,    0,    0,  329,    0,    0,    0,
592
593         0,   21,   20,    0,    0,  244,    0,  243,    0,    0,
594         0,    0,    0,    0,    0,   77,    0,    0,    0,    0,
595        86,    0,    0,    0,    0,   85,    0,  159,  159,  159,
596         0,  147,  146,  239,  239,  239,    0,  231,  230,    0,
597         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
598         0,    0,    0,    0,    0,    0,  289,  289,    0,  311,
599       310,    0,    0,    0,    0,   23,   22,  244,    0,  243,
600         0,    0,   49,   48,    0,    0,    0,    0,   77,    0,
601         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
602       159,  159,  159,  239,    0,    0,  239,    0,    0,    0,
603
604         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
605         0,    0,    0,    0,  289,  289,    0,    0,    0,    0,
606        82,   81,    0,    0,    0,    0,    0,    0,    0,    0,
607        92,    0,    0,    0,   91,    0,    0,    0,  139,  138,
608       159,  159,  159,  159,  239,    0,  225,  224,  239,    0,
609         0,    0,    0,    0,    0,  258,    0,  257,    0,    0,
610       263,    0,    0,    0,    0,    0,    0,    0,    0,  289,
611         0,    0,  289,    0,    0,    0,    0,    0,    0,   82,
612        81,    0,    0,    0,    0,    0,   69,   68,    0,    0,
613         0,    0,    0,    0,    0,  159,  159,  159,  159,    0,
614
615         0,    0,    0,    0,    0,    0,    0,    0,    0,  256,
616       255,    0,    0,    0,    0,    0,    0,    0,  275,  274,
617       289,    0,  273,  272,  289,    0,    0,    0,    0,    0,
618         0,    0,   73,    0,   72,   90,    0,    0,   89,    0,
619         0,    0,  101,  159,  159,  159,  159,    0,  221,  220,
620         0,    0,    0,    0,    0,  252,    0,    0,  251,    0,
621         0,  283,    0,    0,  282,  289,  289,    0,    0,    0,
622        12,    0,   12,    0,    0,    0,   84,   88,   83,   87,
623       159,  159,  159,  159,    0,    0,    0,    0,  254,  250,
624       253,  249,  285,  281,  284,  280,  289,  289,    0,    0,
625
626         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
627         0,  159,    0,    0,    0,    0,    0,    0,  289,  289,
628         0,    0,   71,   70,    0,  141,  140,    0,  151,  150,
629         0,  149,  148,  159,    0,  155,  154,    0,    0,    0,
630         0,  289,  289,    0,   11,  159,    0,    0,    0,    0,
631       289,  289,    0,  159,    0,    0,    0,    0,  289,  289,
632         0,  159,    0,    0,    0,    0,  289,  289,    0,    0,
633         0,    0,  233,    0,  232,  289,  289,    0,    0,  153,
634       152,  235,  234,  289,  289,    0,  289,  289,    0,  289,
635       289,    0,    0,  289,  289,    0,    0,  289,  289,    0,
636
637         0,  289,  289,    0,    0,    0,    0,    0,    0,    0,
638         0,    0,  279,  278,    0,  277,  276,    0,    0,    0,
639         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
640         0,    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[2269] =
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,  408,  271,  273,  472,  535,  269,  316,  320,  323,
693       364,  367,  371,  374,  598,  662,  428,  431,  726,  789,
694       435,  438,  852,  915,  492,  495,  499,  502,  505,  555,
695       978, 1041,  558,  562,  565,  568,  618,  621,  625,  628,
696      1104, 1170,  631,  682, 1236,    0,  685,  689, 1305, 1359,
697       692,  695, 1413, 1476,  746,  749,  753,  756,  759,  809,
698
699       812,  816, 1539, 1602,  819,  822,  872,  875,  879,  882,
700       885,  935, 1665, 1728,  938,  942,  945,  948,  998, 1001,
701      1005, 1008, 1791, 1845, 1011, 1061, 1899, 1962, 1064, 1068,
702      1071, 1074, 1124, 1127, 1131, 1134, 2025, 2091, 1137, 1190,
703         0,    0, 5045, 7142, 7142,   95,  100,   29,   41, 7142,
704       155,   51, 7142, 7142, 5032, 7142, 7142, 5020, 7142, 5032,
705      5031, 1149, 7142, 7142, 7142, 7142, 5023, 5022, 4972,  210,
706      7142,  158, 4991,    0,  142, 7142, 4957, 4941, 7142,  162,
707      2153, 2213,  160, 4978,  176, 7142,  165, 4969,    0,  149,
708      7142, 4926, 7142,  230,  378, 7142,  326, 4945,    0,  208,
709
710      7142, 4910, 4913, 4910, 4887,  379, 4895, 7142,  329, 4918,
711         0,  214, 7142, 4866, 4866,  238, 4840, 7142,  377,   11,
712        31, 4888, 7142,  399, 4878,    0,  439, 7142, 4839, 4836,
713      4815, 7142,  403,  442, 7142,  462, 4856,    0,  440, 7142,
714      4825, 4807, 4821, 4801, 7142,  467,  506, 7142,  528, 4844,
715         0,  507, 7142, 4800,  521, 4796, 7142,  591, 4821, 7142,
716       648, 4812,    0,  570, 7142, 4764,   34, 4779, 4764, 4758,
717      7142,  652,  177, 4808, 7142,  655, 4786,    0,  576, 7142,
718      4745, 4744, 7142,  712,  697, 7142,  717, 4766,    0,  639,
719      7142,  211, 4735, 4737,   93, 4735, 4708, 7142,  720,  760,
720
721      7142,  780, 4749,    0,  640, 7142, 4715, 7142,  842,  826,
722      7142,  902, 4743,    0,  886, 7142, 4715, 4708, 4709,   80,
723      7142,  906,  522, 4742, 7142,  909, 4731,    0,  893, 7142,
724      4698, 4681,   26,  304, 7142,  965,  330, 4731, 7142,  968,
725      4721,    0,  952, 7142, 4685, 4663, 4667, 4658, 7142,  972,
726       507, 4703, 7142, 1157, 4693,    0,  956, 7142, 4659, 7142,
727      1160, 1013, 7142, 1163, 4685,    0, 1012, 7142, 4629, 4634,
728      4634, 4623, 7142, 1194, 1108, 4669, 4664, 7142, 1200, 4655,
729         0, 1015, 7142, 4619, 7142, 1213, 1076, 1216,  433, 4596,
730      7142, 4652, 4633, 7142, 7142, 7142, 1314,  283, 4588, 4579,
731
732      4577, 4620, 4580, 7142,    0, 4571, 4574, 4569, 4565, 4570,
733      4565, 4564, 4562, 4548,    4,  166, 4551, 4537, 4538, 4528,
734      4527, 4514,  720, 4517, 4503,   38,  782, 4499,  783, 4494,
735      7142,    0, 4498, 4492, 7142,    0, 4485, 1328, 4478, 4481,
736       329, 4470, 4496, 7142,    0, 4457, 1331, 4445, 4462, 4444,
737      4452, 4437,   89, 7142,    0, 4437, 4428, 4438, 4405, 7142,
738         0, 1334, 4417, 4416, 4412, 4399, 7142,    0, 4388, 4400,
739      7142,    0, 4403, 1337, 4376, 4371, 4370, 4386, 4378, 7142,
740         0, 1381, 4369, 4358, 7142,    0, 4368, 1385, 1388, 4337,
741      4332, 4344, 4344, 4340, 4335, 7142,    0, 1391, 4318, 7142,
742
743         0, 4316, 1433, 4309, 4325, 4317, 4305, 7142,    0, 4291,
744      4289, 4294, 4277, 4275, 4260, 7142,    0, 4257, 4246, 4246,
745      4256, 4241, 7142,    0, 1436, 4245, 7142,    0, 4234, 4228,
746      4232, 4240, 4222, 4212, 7142,    0, 4213, 4222, 4242, 4251,
747       815, 4202, 7142, 1208,    0, 4188, 4187, 4227, 4219, 4176,
748      7142, 4171, 4153, 4156, 1439, 1442, 4157, 4143, 4141, 4139,
749      4152, 4140, 4151, 4136, 4136, 4127, 4120, 4137, 4113, 4115,
750      4097, 4101, 4096, 4088, 4083, 4100, 4082, 4075, 4081, 4051,
751      4063, 4046, 1445, 1497, 4044, 1502, 1224, 4034, 4036, 4051,
752      1505, 1508, 7142, 4024, 1512, 1559, 1570, 4011, 1573, 4023,
753
754      1576, 1635, 4007, 4004, 4007, 4007, 1622, 1627, 1630, 1591,
755      4002, 3994, 3996, 1690, 1700, 3997, 1693, 1696, 3986, 1703,
756      1650, 3989, 3992, 3979, 3960, 1749, 1755, 1759, 1764, 3957,
757      1813, 1816,  401, 1819, 1777, 1822, 1865, 1825, 3971, 3968,
758      3956, 3932, 1873, 1877, 1919, 1881, 1924, 1927, 3933, 1932,
759      1985, 3923, 3906, 3902, 1937, 1994, 3911, 1997, 2000, 3906,
760      3904, 2047, 2054, 3900, 2005, 3907, 2051, 2057, 2060, 2069,
761      2080, 2112, 2118, 3897, 3878, 3880, 3864, 2121, 2124, 3868,
762      3850, 2127, 2146, 3894, 7142, 7142,  373, 3841, 7142, 3879,
763      3877, 3820, 7142, 7142, 3818, 3816, 3821, 3810, 2149, 2157,
764
765      7142, 2176, 3807, 3807, 3818, 3803, 3794, 3793, 3779,  261,
766      3793, 3776, 1340, 3783, 3766, 3775, 3759, 3767, 3771, 3748,
767      1394, 3762,  376, 3745, 3751, 3738, 3753, 2152, 2180, 2185,
768      7142, 2190, 2217, 2224, 7142, 7142, 2237, 2241, 3774, 2245,
769      2248, 7142, 2251, 3732, 2276, 7142, 7142, 2284, 2289, 2297,
770      2303, 2306, 3743, 2315, 2321, 7142, 2324,  407, 3741, 2327,
771      3739, 2330, 2334, 7142, 2345, 2349, 7142, 7142, 3730, 3735,
772      3727, 2357, 2360, 7142, 2364, 3722, 2367, 2370, 7142, 2390,
773      3719, 2393, 7142, 7142, 3711, 3706, 3702, 3711, 2401, 2404,
774      7142, 2409, 2413, 7142, 7142, 3710, 2423, 2428, 7142, 2431,
775
776      3686, 3697, 2435, 7142, 7142, 2451, 7142, 7142, 2443, 2461,
777      3667, 3633, 3637, 3630, 2471, 2474, 7142, 2477, 2480, 7142,
778      7142, 2496, 2499, 7142, 2502, 3611, 2505, 7142, 7142, 3614,
779      3617, 3619, 2521, 2524, 7142, 2527, 3598, 2530, 2534, 2549,
780      2552, 3605, 3598, 2560, 2567, 7142, 2570, 3593, 2573, 2580,
781      3602, 2591, 2594, 2602, 2605, 7142, 2609, 2612, 7142, 7142,
782      2624, 2628, 7142, 2634, 3573, 2637, 3591, 3556, 2643, 2647,
783      7142, 2655, 3554, 3559, 2658, 2662, 7142, 2666,  734, 2669,
784      7142, 7142, 3590, 3585, 3550, 3540, 3572, 2677, 3529, 3521,
785      3537, 1468, 3516, 2160, 3529, 3528, 1471, 3505, 3513, 1531,
786
787      3511, 3496, 3512, 1534, 2691, 3498, 3505, 1658, 3493, 3492,
788      3490, 3467, 3481, 3479, 2681, 2699, 2707, 2713, 2717, 3475,
789      3459, 3499, 2726, 3474, 2731, 7142, 7142, 2740, 2745, 2758,
790      7142, 7142, 3468, 2753, 1721, 3455, 2766, 2773, 2784, 2787,
791      3444, 3460, 3437, 2790, 3450, 2793, 3448, 3442, 3426, 2796,
792      2802, 2814, 2820, 2824, 2827, 2834, 2846, 7142, 7142, 2838,
793      2856, 2860, 2863, 2866, 2869, 3428, 3432, 3418, 2889, 2892,
794      3416, 2898, 7142, 7142, 2907, 7142, 7142, 3409, 2916, 2919,
795      3405, 2934, 7142, 7142, 3398, 2942, 7142, 7142, 2950, 2953,
796      3406, 2923, 2956, 3388, 3406, 2964, 3392, 2972, 2975,  181,
797
798      3428, 2978, 7142, 3426, 7142, 7142, 3386, 3381,  528, 2983,
799      3381, 3379, 3380, 1785, 3374, 1828, 3371, 3359, 3348, 1892,
800      3352, 2986, 2990, 3352, 3353, 1956, 2008, 3342, 2997, 3007,
801      3334, 3013, 3345, 3016, 3022, 3033, 7142, 7142, 3043, 3047,
802      7142, 7142, 3332, 3335, 3315, 3062, 3289, 3065, 7142, 7142,
803      3284, 3077, 2018, 3284, 3081, 1067, 1121, 3058, 3089, 3097,
804      3100, 3103, 3107, 3111, 7142, 3121, 3125, 3283, 3279, 3260,
805      3130, 3135, 3148, 3151, 3271, 3159, 3162, 3166, 3174, 3180,
806      3183, 3193, 3198, 3201, 3211, 3216, 3219, 3222, 3225, 3271,
807      3250, 3265, 3229, 3237, 3263, 3247, 3250, 3254, 3252, 3257,
808
809      3260, 3278, 3281, 3286, 3240, 3289, 7142, 7142, 3242, 3230,
810      3301, 3237, 3306, 3309, 3324, 1430,  430,  501, 7142, 3216,
811      3330, 3333, 3336, 3339, 3218, 3212, 3218, 3220, 3204, 3204,
812      3202, 3343, 3354, 3198, 3358, 3361, 3199, 3182, 3184, 3364,
813      3367, 3370, 3173, 3373, 3177, 3166, 3163, 3376, 3161, 3148,
814      3184, 3380, 3139, 3139, 3386, 3389, 3169, 3155,  260, 3153,
815      3158, 3139,  492, 3138, 3401, 7142, 7142, 3410, 3413, 3418,
816      3431, 3434, 3438, 3452, 3455, 3463, 3104, 3094, 3096, 3466,
817      7142, 7142, 3475, 3111, 3108, 3088, 3483, 7142, 3486, 7142,
818      7142, 3494, 7142, 3498, 7142, 7142, 3506, 3513, 3524, 7142,
819
820      7142, 3532, 3535, 3543, 3546, 3550, 3564, 3567, 3071, 3570,
821      3085, 3573, 3086, 3085, 3064, 3588, 7142, 3591, 3594, 3602,
822      3052, 3614, 3609, 3629, 3620, 3623, 3638, 3038, 3037, 3035,
823      3642, 3030, 3645, 7142, 7142, 3657, 1011, 1186,  576, 3029,
824      3661, 3664, 3672, 3679, 3686, 3012, 3690, 3693, 3697, 3015,
825      3015, 3700, 3706, 3005, 3709, 2999, 3712, 3715, 3718, 3721,
826      3724, 2992, 3729, 2996, 3732, 3000, 3735, 3009, 3738, 7142,
827      2981, 2995, 3743, 3747, 3753, 2999, 2993, 2991, 2993, 2981,
828      2987, 2969, 2966, 2970, 2956, 3765, 3768, 7142, 7142, 3776,
829      3784, 3794, 7142, 7142, 3802, 7142, 7142, 3812, 2940, 2922,
830
831      2912,  613,  674, 2913, 3815, 7142, 7142, 3824, 7142, 7142,
832      3832, 3835, 3843, 7142, 7142, 3851, 3854, 2911, 3857, 3860,
833      2912, 2901,  677,  741, 2894, 3875,  866,  919, 3883, 2891,
834      3886, 3889,  929,  992, 3897, 3901, 7142, 3905, 3908, 2891,
835      2878, 3915, 2866, 3926, 3920,  758,  722, 3930, 3935, 7142,
836      7142, 3945, 3948, 3954, 3957, 3968, 3973, 3977, 3983, 3986,
837      3989, 2872, 2859, 3992, 3995, 3999, 2859, 4002, 2856, 4005,
838      2841, 4011, 4014, 7142, 4024, 2839, 4029, 7142, 4032, 7142,
839      7142, 2874, 2858, 2864, 2857, 2861, 2858, 2842, 2851, 2843,
840      2835, 4042, 4048, 7142, 7142, 4056, 2779, 2726, 2724, 2731,
841
842      2747, 2718, 2695, 2646, 4061, 7142, 7142, 4069, 4075, 7142,
843      4078, 4081, 7142, 7142, 2570,   62,  308,  388,  369,  491,
844       475,  545,  857,  548, 1056, 4089, 4096, 4100,  574, 1065,
845       586, 1172, 4103, 4108, 4111, 4115, 4123,  587, 4129, 4132,
846      4135, 4141,  756,  986, 4148, 4154, 4160, 4165, 4168, 4172,
847      4178,  614,  632,  661,  729, 4184, 7142,  767, 4187, 7142,
848      7142, 4203, 4209,  785,  807,  823,  846,  854,  894,  902,
849       917,  960,  985, 1002, 4217, 4221, 7142,  993, 1021, 1022,
850      1077, 7142, 1085, 7142, 4224, 4227, 7142, 4230, 4236, 1081,
851      1087, 1090, 1145, 7142, 1160, 7142, 4248, 1160, 1161, 1174,
852
853      1185, 1174, 1203, 4251, 4254, 4262, 4269, 1205, 1194, 1209,
854      1295, 1307, 1320, 4274, 4277, 4281, 7142, 7142, 4292, 4296,
855      4305, 4310, 7142, 4313, 4316, 1355, 1332, 1392, 4324, 4329,
856      4337, 4342, 7142, 1297, 1304, 1301, 1307, 4345, 4348, 1544,
857      1561, 1299, 1351, 1377, 1377, 1383, 1400, 1378, 1387, 1405,
858      1431, 1445, 4356, 1389, 1411, 1411, 7142, 7142, 4363, 4366,
859      4375, 7142, 7142, 1410, 1418, 1438, 7142, 7142, 4383, 4386,
860      1465, 1464, 1477, 1481, 1483, 1488, 4394, 1557, 1593, 4402,
861      1489, 1488, 1493, 1527, 1527, 1531, 4405, 4408, 4413, 7142,
862      4417, 7142, 7142, 4426, 4432, 4440, 7142, 1598, 1570, 1630,
863
864      4444, 7142, 7142, 4452, 4455, 4470, 1523, 4473, 1536, 4476,
865      4479, 1550, 1579, 1599, 1618, 1583, 1618, 1617, 1616, 1623,
866      7142, 1639, 1647, 1648, 1651, 7142, 4487, 4490, 1656, 1667,
867      4494, 7142, 7142, 1659, 4502, 1669, 4508, 7142, 7142, 1681,
868      1685, 1700, 1690, 1708, 1728, 1721, 1734, 1729, 1739, 4516,
869      1739, 1748, 1759, 1753, 1771, 1787, 4520, 4523, 4541, 7142,
870      7142, 1822, 1820, 4529, 4549, 7142, 7142, 4526, 1773, 4557,
871      1775, 4560, 7142, 7142, 1821, 1827, 1848, 1839, 4570, 1843,
872      1869, 1886, 1876, 1876, 1902, 1916, 1910, 4573, 4576, 4579,
873      1886, 1883, 1886, 1899, 4588, 4594, 1884, 1925, 1930, 1927,
874
875      1948, 1958, 1951, 1984, 1954, 1984, 1957, 4602, 1988, 1997,
876      2007, 2017, 2026, 2031, 4606, 4609, 2056, 4612, 4615, 4635,
877      4643, 4646, 2032, 2050, 2044, 2054, 4654, 4657, 2052, 2055,
878      7142, 2057, 2061, 2087, 7142, 2088, 4665, 4668, 7142, 7142,
879      2079, 2086, 2087, 2093, 4676, 4680, 7142, 7142, 4688, 2115,
880      2108, 2118, 2120, 2112, 2142, 7142, 2162, 7142, 2161, 4694,
881      7142, 2148, 2141, 2156, 2160, 2156, 2166, 4697, 4700, 4708,
882      4715, 4719, 4728, 2178, 4733, 4736, 4756, 4795, 4839, 4746,
883      4764, 2170, 2191, 2177, 2194, 4768, 7142, 7142, 2205, 2180,
884      2182, 2214, 2192, 2197, 4785, 2175, 2184, 2177, 2178, 4789,
885
886      4776, 4807, 4815, 2220, 2232, 2252, 2236, 2238, 2261, 7142,
887      7142, 2246, 2249, 2275, 2257, 2259, 2280, 4825, 7142, 7142,
888      4833, 4859, 7142, 7142, 4851, 2294, 4869, 2337, 2293, 4905,
889      4949, 2276, 7142, 2280, 7142, 7142, 2305, 2314, 7142, 2312,
890      2330, 4877, 7142, 2290, 2276, 2296, 2325, 4882, 7142, 7142,
891      4890, 2351, 2371, 2370, 2373, 7142, 2372, 2374, 7142, 2379,
892      2380, 7142, 2379, 2391, 7142, 4899, 4917, 2430, 2436, 2438,
893      2395, 2476, 2405, 4925, 2403, 2405, 7142, 7142, 7142, 7142,
894      4928, 4940, 4969, 4972, 2401, 2407, 2418, 2420, 7142, 7142,
895      7142, 7142, 7142, 7142, 7142, 7142, 4975, 4980, 4983, 2455,
896
897      2445, 2459, 4993, 2463, 2462, 4998, 4931, 5002, 5006, 5016,
898      5020, 2426, 5028, 5035, 2453, 2471, 2456, 2488, 5046, 5049,
899      5052, 2492, 7142, 7142, 5055, 7142, 7142, 5067, 7142, 7142,
900      5075, 7142, 7142, 2463, 5083, 7142, 7142, 2479, 2480, 2482,
901      2483, 5093, 5096, 2515, 7142, 2473, 2509, 2519, 2516, 2522,
902      5099, 5102, 2540, 2484, 2523, 2540, 2530, 2554, 5105, 5123,
903      2581, 5126, 2555, 2582, 2565, 2590, 5129, 5132, 2597, 5135,
904      5158, 2596, 7142, 2610, 7142, 5166, 5169, 2622, 5187, 7142,
905      7142, 7142, 7142, 5195, 5198, 5201, 5204, 5207, 5216, 5230,
906      5235, 2613, 2614, 5242, 5249, 2633, 2668, 5253, 5256, 2679,
907
908      2693, 5260, 5274, 2686, 2719, 5279, 5285, 5301, 5304, 2704,
909      2752, 5312, 7142, 7142, 5321, 7142, 7142, 2671, 2711, 2732,
910      2760, 2632, 2800, 2763, 2805, 2781, 2812, 2831, 2836, 2692,
911      2799, 5329, 5332, 7142, 7142, 5352, 5361, 5370, 5379, 5388,
912      5397, 5406, 5415, 5424, 5433, 5442, 5451, 5460, 5469, 5478,
913      5487, 5496, 5505, 5514, 5523, 5532, 5541, 5550, 5559, 5568,
914      5577, 5586, 5595, 5604, 5613, 5622, 5631, 5640, 5649, 5658,
915      5667, 5676, 5685, 5694, 5701, 5708, 5715, 5722, 5729, 5736,
916      5743, 5750, 5757, 5764, 5771, 5778, 5785, 5792, 5799, 5806,
917      5813, 5822, 5827, 5832, 5837, 5842, 5847, 5852, 5857, 5862,
918
919      5867, 5874, 5879, 5886, 5891, 5898, 5903, 5910, 5915, 5922,
920      5927, 5934, 5939, 5946, 5951, 5958, 5963, 5972, 5978, 5985,
921      5993, 6000, 6008, 6015, 6023, 6030, 6038, 6045, 6053, 6060,
922      6068, 6075, 6083, 6090, 6098, 6105, 6113, 6120, 6128, 6136,
923      6143, 6151, 6158, 6166, 6173, 6181, 6189, 6196, 6204, 6211,
924      6219, 6228, 6234, 6241, 6249, 6257, 6265, 6273, 6281, 6288,
925      6296, 6303, 6311, 6318, 6326, 6333, 6341, 6348, 6356, 6363,
926      6371, 6378, 6386, 6394, 6401, 6409, 6416, 6424, 6431, 6439,
927      6447, 6454, 6462, 6469, 6477, 6486, 6495, 6502, 6510, 6518,
928      6525, 6533, 6540, 6548, 6555, 6563, 6570, 6578, 6585, 6593,
929
930      6600, 6608, 6616, 6624, 6632, 6640, 6648, 6655, 6663, 6670,
931      6678, 6685, 6693, 6701, 6708, 6716, 6724, 6732, 6741, 6750,
932      6757, 6765, 6773, 6780, 6788, 6795, 6803, 6810, 6818, 6826,
933      6834, 6842, 6849, 6857, 6865, 6873, 6881, 6889, 6896, 6904,
934      6912, 6920, 6928, 6936, 6944, 6951, 6959, 6967, 6976, 6985,
935      6993, 7001, 7009, 7016, 7024, 7031, 7039, 7047, 7055, 7063,
936      7071, 7078, 7087, 7096, 7105, 7114, 7123, 7132
937     } ;
938
939 static yyconst flex_int16_t yy_def[2269] =
940     {   0,
941      2036, 2036, 2037, 2037, 2037, 2037, 2038, 2038, 2039, 2039,
942      2040, 2040, 2041, 2041, 2041, 2041, 2042, 2042, 2036, 2036,
943      2043, 2043, 2044, 2044, 2044, 2044, 2036, 2036, 2044, 2044,
944      2036, 2036, 2044, 2044, 2044, 2044, 2045, 2045, 2046, 2046,
945      2047, 2047, 2041, 2041, 2048, 2048, 2049, 2049, 2036, 2036,
946      2049, 2049, 2049, 2049, 2050, 2050, 2051, 2051, 2052, 2052,
947      2053, 2053, 2054, 2054, 2036, 2036, 2036, 2036, 2055, 2055,
948      2056, 2056, 2057, 2057, 2036, 2036, 2057, 2057, 2057, 2057,
949      2058, 2058, 2059, 2059, 2035,   85, 2060, 2060, 2061, 2061,
950      2062, 2062, 2063, 2063, 2064, 2064, 2036, 2036, 2064, 2064,
951
952      2064, 2064, 2065, 2065, 2036, 2036, 2036, 2036, 2066, 2066,
953      2066, 2066, 2067, 2067, 2068, 2068, 2036, 2036, 2068, 2068,
954      2068, 2068, 2069, 2069, 2070, 2070, 2071, 2071, 2072, 2072,
955      2036, 2036, 2072, 2072, 2072, 2072, 2073, 2073, 2074, 2074,
956      2036, 2036, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
957      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
958      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
959      2035, 2035, 2035, 2075, 2035, 2035, 2075, 2075, 2035, 2035,
960      2035, 2035,  181,  182,  182, 2035, 2035, 2035, 2076, 2035,
961      2035, 2076, 2035, 2035, 2035, 2035, 2035, 2035, 2077, 2035,
962
963      2035, 2077, 2077, 2077, 2077, 2035, 2035, 2035, 2035, 2035,
964      2078, 2035, 2035, 2078, 2078, 2078, 2078, 2035, 2035,  185,
965       185,  185, 2035, 2035, 2035, 2079, 2035, 2035, 2079, 2079,
966      2079, 2035, 2035, 2035, 2035, 2035, 2035, 2080, 2035, 2035,
967      2080, 2080, 2080, 2080, 2035, 2035, 2035, 2035, 2035, 2035,
968      2081, 2035, 2035, 2081,  185,  255, 2035, 2035,  185, 2035,
969      2035, 2035, 2082, 2035, 2035, 2082, 2082, 2082, 2082, 2082,
970      2035, 2035,  185,  185, 2035, 2035, 2035, 2083, 2035, 2035,
971      2083, 2083, 2035, 2035, 2035, 2035, 2035, 2035, 2084, 2035,
972      2035, 2084, 2084, 2084, 2084, 2084, 2084, 2035, 2035, 2035,
973
974      2035, 2035, 2035, 2085, 2035, 2035, 2085, 2035, 2035, 2035,
975      2035, 2035, 2035, 2086, 2035, 2035, 2086, 2086, 2086, 2086,
976      2035, 2035,  185,  185, 2035, 2035, 2035, 2087, 2035, 2035,
977      2087, 2087, 2087,  185, 2035, 2035,  185,  185, 2035, 2035,
978      2035, 2088, 2035, 2035, 2088, 2088, 2088, 2088, 2035, 2035,
979       185,  185, 2035, 2035, 2035, 2089, 2035, 2035, 2089, 2035,
980      2035, 2035, 2035, 2035, 2035, 2090, 2035, 2035, 2090, 2090,
981      2090, 2090, 2035, 2035,  185,  375,  185, 2035, 2035, 2035,
982      2091, 2035, 2035, 2091, 2035, 2035, 2035, 2035, 2092, 2035,
983      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
984
985      2035, 2035, 2035, 2035, 2075, 2075, 2075, 2093, 2035, 2035,
986      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
987      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
988      2035, 2076, 2076, 2094, 2035, 2077, 2077, 2077, 2077, 2077,
989      2035, 2095, 2035, 2035, 2078, 2078, 2078, 2078, 2078, 2078,
990      2078, 2096, 2035, 2035, 2079, 2079, 2079, 2079, 2097, 2035,
991      2080, 2080, 2080, 2080, 2080, 2098, 2035, 2081, 2081, 2099,
992      2035, 2082, 2082, 2082, 2082, 2082, 2082, 2082, 2100, 2035,
993      2083, 2083, 2083, 2101, 2035, 2102, 2102, 2102, 2102, 2102,
994      2102, 2102, 2102, 2102, 2103, 2035, 2104, 2104, 2105, 2035,
995
996      2106, 2106, 2106, 2106, 2106, 2106, 2107, 2035, 2108, 2108,
997      2108, 2108, 2108, 2035, 2109, 2035, 2110, 2110, 2110, 2110,
998      2110, 2111, 2035, 2112, 2112, 2113, 2035, 2114, 2114, 2114,
999      2114, 2114, 2115, 2035, 2035, 2116, 2116, 2117, 2118, 2035,
1000      2118, 2035, 2035, 2035, 2119, 2035, 2035, 2035, 2035, 2035,
1001      2035, 2035, 2120, 2120, 2121, 2121, 2035, 2035, 2035, 2035,
1002      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1003      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1004      2035, 2122, 2123, 2123, 2124, 2035, 2035, 2124, 2124, 2035,
1005      2125, 2125, 2035, 2126, 2035, 2035, 2126, 2126, 2126, 2126,
1006
1007      2127, 2127, 2035, 2128, 2128, 2128, 2129, 2129, 2035, 2035,
1008      2130, 2130, 2130, 2131, 2131, 2132, 2133, 2133, 2134, 2035,
1009      2035, 2134, 2134, 2134, 2134, 2135, 2135, 2035, 2035, 2136,
1010      2137, 2137, 2138, 2035, 2035, 2035, 2035, 2138, 2138, 2138,
1011      2138, 2138, 2139, 2139, 2035, 2035, 2140, 2140, 2141, 2035,
1012      2035, 2141, 2141, 2141, 2142, 2142, 2143, 2143, 2143, 2143,
1013      2035, 2144, 2144, 2145, 2145, 2145, 2145, 2146, 2146, 2035,
1014      2035, 2147, 2147, 2148, 2148, 2148, 2148, 2149, 2149, 2035,
1015      2150, 2151, 2151, 2152, 2035, 2035, 2152, 2035, 2035, 2153,
1016      2035, 2035, 2035, 2035, 2035, 2035, 2154, 2154, 2035, 2155,
1017
1018      2035, 2155, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1019      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1020      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2156, 2035, 2157,
1021      2035, 2157, 2158, 2035, 2035, 2035, 2158, 2158, 2035, 2035,
1022      2159, 2035, 2159, 2160, 2035, 2035, 2035, 2035, 2035, 2160,
1023      2035, 2035, 2160, 2035, 2161, 2035, 2161, 2035, 2162, 2162,
1024      2162, 2035, 2163, 2035, 2163, 2035, 2035, 2035, 2164, 2164,
1025      2164, 2035, 2165, 2035, 2165, 2166, 2035, 2167, 2035, 2167,
1026      2168, 2035, 2035, 2035, 2168, 2168, 2168, 2168, 2035, 2169,
1027      2035, 2169, 2035, 2035, 2035, 2170, 2035, 2171, 2035, 2171,
1028
1029      2172, 2172, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1030      2172, 2172, 2172, 2172, 2035, 2173, 2035, 2173, 2035, 2035,
1031      2035, 2035, 2174, 2035, 2174, 2175, 2035, 2035, 2035, 2175,
1032      2175, 2175, 2035, 2176, 2035, 2176, 2177, 2035, 2035, 2035,
1033      2035, 2177, 2035, 2035, 2178, 2035, 2178, 2179, 2035, 2035,
1034      2179, 2035, 2035, 2035, 2180, 2035, 2180, 2035, 2035, 2035,
1035      2035, 2181, 2035, 2181, 2182, 2182, 2182, 2182, 2035, 2183,
1036      2035, 2183, 2035, 2184, 2035, 2185, 2035, 2185, 2186, 2187,
1037      2035, 2035, 2035, 2035, 2035, 2188, 2188, 2189, 2035, 2035,
1038      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1039
1040      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1041      2035, 2035, 2035, 2035, 2035, 2035, 2190, 2035, 2035, 2191,
1042      2191, 2035, 2192, 2193, 2035, 2035, 2035, 2035, 2035, 2035,
1043      2035, 2035, 2193, 2194, 2035, 2195, 2035, 2035, 2195, 2196,
1044      2197, 2197, 2197, 2198, 2199, 2200, 2201, 2201, 2201, 2201,
1045      2201, 2202, 2203, 2204, 2205, 2205, 2035, 2035, 2035, 2205,
1046      2205, 2205, 2205, 2206, 2207, 2208, 2208, 2208, 2208, 2209,
1047      2210, 2035, 2035, 2035, 2035, 2035, 2035, 2210, 2035, 2211,
1048      2212, 2035, 2035, 2035, 2212, 2035, 2035, 2035, 2213, 2214,
1049      2215, 2035, 2035, 2215, 2215, 2216, 2035, 2217, 2218, 2219,
1050
1051      2220, 2220, 2035, 2220, 2035, 2035, 2035, 2221, 2221, 2222,
1052      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1053      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1054      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2223, 2035,
1055      2035, 2035, 2224, 2224, 2035, 2225, 2226, 2035, 2035, 2035,
1056      2226, 2227, 2035, 2228, 2035, 2035, 2035, 2035, 2035, 2229,
1057      2230, 2230, 2230, 2035, 2035, 2231, 2232, 2233, 2233, 2233,
1058      2035, 2035, 2035, 2035, 2233, 2234, 2035, 2035, 2235, 2035,
1059      2035, 2236, 2035, 2035, 2236, 2236, 2236, 2237, 2238, 2239,
1060      2239, 2239, 2035, 2035, 2239, 2240, 2241, 2241, 2035, 2242,
1061
1062      2243, 2243, 2244, 2245, 2246, 2035, 2035, 2035, 2246, 2246,
1063      2247, 2035, 2035, 2035, 2248, 2249, 2250, 2250, 2035, 2035,
1064      2251, 2251, 2251, 2252, 2035, 2035, 2035, 2035, 2035, 2035,
1065      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1066      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2253, 2254, 2254,
1067      2035, 2255, 2256, 2256, 2257, 2258, 2035, 2035, 2035, 2035,
1068      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2259, 2035, 2035,
1069      2260, 2035, 2035, 2035, 2035, 2261, 2262, 2262, 2262, 2035,
1070      2035, 2035, 2035, 2035, 2035, 2262, 2035, 2035, 2035, 2035,
1071      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1072
1073      2035, 2035, 2035, 2236, 2035, 2035, 2237, 2238, 2239, 2239,
1074      2239, 2035, 2035, 2035, 2239, 2035, 2035, 2035, 2035, 2241,
1075      2035, 2242, 2035, 2035, 2243, 2244, 2245, 2246, 2246, 2246,
1076      2247, 2035, 2035, 2035, 2035, 2248, 2249, 2250, 2250, 2035,
1077      2035, 2035, 2251, 2251, 2252, 2035, 2035, 2035, 2035, 2035,
1078      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1079      2035, 2035, 2035, 2035, 2253, 2254, 2254, 2035, 2035, 2035,
1080      2256, 2256, 2257, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1081      2035, 2035, 2035, 2035, 2035, 2259, 2035, 2035, 2035, 2035,
1082      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2261, 2262, 2262,
1083
1084      2262, 2035, 2035, 2262, 2035, 2035, 2035, 2035, 2035, 2035,
1085      2035, 2035, 2035, 2035, 2035, 2237, 2238, 2239, 2035, 2035,
1086      2239, 2239, 2035, 2035, 2239, 2035, 2035, 2035, 2241, 2035,
1087      2242, 2035, 2035, 2035, 2243, 2035, 2035, 2245, 2246, 2246,
1088      2246, 2247, 2035, 2248, 2249, 2250, 2250, 2035, 2035, 2035,
1089      2035, 2251, 2251, 2252, 2035, 2035, 2035, 2035, 2035, 2035,
1090      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2253,
1091      2254, 2035, 2035, 2035, 2256, 2256, 2035, 2035, 2035, 2035,
1092      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1093      2035, 2259, 2035, 2035, 2035, 2261, 2262, 2262, 2262, 2035,
1094
1095      2035, 2035, 2035, 2262, 2035, 2035, 2035, 2237, 2035, 2035,
1096      2239, 2035, 2035, 2035, 2239, 2239, 2035, 2035, 2035, 2035,
1097      2239, 2035, 2035, 2035, 2035, 2241, 2035, 2242, 2035, 2035,
1098      2035, 2035, 2243, 2245, 2035, 2035, 2246, 2246, 2247, 2035,
1099      2248, 2249, 2250, 2250, 2035, 2251, 2251, 2252, 2035, 2035,
1100      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2254, 2035, 2035,
1101      2035, 2035, 2035, 2256, 2035, 2035, 2035, 2035, 2035, 2035,
1102      2035, 2035, 2035, 2035, 2259, 2035, 2035, 2262, 2262, 2262,
1103      2035, 2035, 2035, 2035, 2262, 2035, 2035, 2035, 2035, 2239,
1104      2239, 2239, 2035, 2035, 2035, 2035, 2239, 2035, 2035, 2035,
1105
1106      2035, 2035, 2035, 2035, 2035, 2035, 2242, 2035, 2035, 2035,
1107      2035, 2035, 2035, 2243, 2245, 2035, 2035, 2035, 2035, 2035,
1108      2246, 2035, 2035, 2035, 2248, 2249, 2250, 2250, 2035, 2035,
1109      2251, 2035, 2035, 2035, 2035, 2035, 2035, 2254, 2035, 2035,
1110      2035, 2256, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1111      2035, 2035, 2259, 2262, 2262, 2262, 2035, 2035, 2035, 2035,
1112      2035, 2035, 2035, 2239, 2239, 2239, 2035, 2035, 2035, 2035,
1113      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2242,
1114      2035, 2035, 2035, 2035, 2035, 2035, 2243, 2243, 2035, 2035,
1115      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2249, 2250, 2250,
1116
1117      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1118      2035, 2035, 2035, 2035, 2035, 2256, 2035, 2035, 2035, 2035,
1119      2035, 2035, 2035, 2035, 2035, 2035, 2259, 2262, 2262, 2262,
1120      2035, 2035, 2035, 2239, 2239, 2239, 2035, 2035, 2035, 2035,
1121      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2242,
1122      2035, 2035, 2035, 2035, 2035, 2035, 2243, 2243, 2035, 2035,
1123      2035, 2249, 2250, 2250, 2035, 2035, 2035, 2035, 2035, 2035,
1124      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2256, 2035,
1125      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2259, 2035, 2035,
1126      2262, 2262, 2262, 2239, 2035, 2035, 2239, 2035, 2035, 2035,
1127
1128      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2242, 2035, 2035,
1129      2035, 2035, 2035, 2035, 2243, 2243, 2249, 2250, 2250, 2250,
1130      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1131      2035, 2035, 2035, 2035, 2035, 2035, 2259, 2035, 2035, 2035,
1132      2262, 2262, 2262, 2262, 2239, 2035, 2035, 2035, 2239, 2035,
1133      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1134      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2243,
1135      2035, 2035, 2243, 2249, 2250, 2250, 2250, 2263, 2264, 2035,
1136      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1137      2035, 2035, 2035, 2035, 2259, 2262, 2262, 2262, 2262, 2035,
1138
1139      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1140      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1141      2243, 2035, 2035, 2035, 2243, 2249, 2250, 2265, 2266, 2263,
1142      2264, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1143      2035, 2035, 2035, 2262, 2262, 2262, 2262, 2035, 2035, 2035,
1144      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1145      2035, 2035, 2035, 2035, 2035, 2243, 2243, 2249, 2265, 2250,
1146      2267, 2266, 2268, 2250, 2035, 2035, 2035, 2035, 2035, 2035,
1147      2262, 2262, 2262, 2262, 2035, 2035, 2035, 2035, 2035, 2035,
1148      2035, 2035, 2035, 2035, 2035, 2035, 2243, 2243, 2249, 2267,
1149
1150      2035, 2268, 2250, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1151      2035, 2262, 2035, 2035, 2035, 2035, 2035, 2035, 2243, 2243,
1152      2249, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1153      2035, 2035, 2035, 2262, 2035, 2035, 2035, 2035, 2035, 2035,
1154      2035, 2243, 2243, 2249, 2035, 2262, 2035, 2035, 2035, 2035,
1155      2243, 2243, 2249, 2262, 2035, 2035, 2035, 2035, 2243, 2243,
1156      2249, 2262, 2035, 2035, 2035, 2035, 2243, 2243, 2249, 2035,
1157      2035, 2035, 2035, 2035, 2035, 2243, 2243, 2249, 2035, 2035,
1158      2035, 2035, 2035, 2243, 2243, 2249, 2243, 2243, 2249, 2243,
1159      2243, 2249, 2249, 2243, 2243, 2249, 2249, 2243, 2243, 2249,
1160
1161      2249, 2243, 2243, 2249, 2249, 2035, 2035, 2035, 2035, 2249,
1162      2249, 2035, 2035, 2035, 2035, 2035, 2035, 2249, 2249, 2249,
1163      2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
1164      2249, 2249, 2249, 2035,    0, 2035, 2035, 2035, 2035, 2035,
1165      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1166      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1167      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1168      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1169      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1170      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1171
1172      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1173      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1174      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1175      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1176      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1177      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1178      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1179      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1180      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1181      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1182
1183      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1184      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1185      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1186      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1187      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1188      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1189      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035
1190     } ;
1191
1192 static yyconst flex_int16_t yy_nxt[7212] =
1193     {   0,
1194      2035,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1195       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1196       148,  154,  452,  149, 2035,  155,  149, 2035,  155,  152,
1197       151,  147,  151,  389,  158,  160,  161,  158,  160,  161,
1198       162,  163, 2035,  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       453,  391,  164,  147,  147,  147,  180,  147,  180,  180,
1202       147,  180,  474,  170,  180,  147,  180,  512,  169,  170,
1203       453,  475,  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      1492,  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       603,  491,  181,  392,  492,  181,  388,  388,  388,  388,
1211       388,  388,  391,  388,  388,  388,  388,  388,  388,  391,
1212       177, 2035,  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,  453,  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       219,  147,  219,  160,  161,  160,  161,  488,  162,  195,
1224       162, 1278,  195,  448,  186,  186,  220,  449,  206, 1279,
1225       206,  450,  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,  207, 2035,  207,  219,  147,  219,
1229       897,  147,  147,  147,  147,  147,  147,  388,  388,  388,
1230       388,  388,  388,  220, 1493,  186,  186,  221,  540,  546,
1231       221,  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,  219,  147,  219,  219,  147,
1234       219,  590,  219,  147,  219,  219,  147,  219,  388,  388,
1235       388,  220,  392,  441,  220,  514,  196,  196,  222,  434,
1236       442,  222,  685, 1494,  202, 1495,  879,  203,  391,  391,
1237
1238       388,  388,  388,  204,  388,  388,  388,  205,  196,  197,
1239       147,  197,  196,  196,  196,  196,  196,  196,  196,  198,
1240       196,  196,  196,  910,  196,  200,  196,  201,  196,  233,
1241       147,  233,  233,  147,  233,  897,  246,  147,  246,  246,
1242       147,  246,  540,  392,  392,  234,  392,  801,  234, 1003,
1243       196,  196,  247,  459,  910,  247,  802,  541,  202,  391,
1244       391,  203,  391,  388,  388,  388,  935,  204,  388,  388,
1245       388,  205,  208,  209,  147,  209,  208,  208,  208,  208,
1246       208,  208,  208,  210,  208,  208,  208, 1238,  208,  212,
1247       208,  213,  208,  147,  147,  147,  147,  147,  147, 1496,
1248
1249       147,  147,  147,  147,  147,  147,  258,  147,  258,  255,
1250       392,  392,  255, 1283,  208,  208,  256,  466,  522,  256,
1251      1003, 1284,  259,  214, 1497,  215,  391,  391,  216,  388,
1252       388,  388, 2035,  507,  217,  208,  209,  147,  209,  208,
1253       208,  208,  208,  208,  208,  208,  210,  208,  208,  208,
1254      1239,  208,  212,  208,  213,  208,  258,  147,  258,  272,
1255       147,  272,  514,  272,  147,  272,  147,  147,  147,  147,
1256       147,  147,  259,  412,  392,  273,  414,  208,  208,  273,
1257       392,  453,  221, 1122, 1498,  221,  214, 1501,  215, 1123,
1258       391,  216,  388,  388,  388, 1003,  391,  217,  223,  224,
1259
1260       147,  224,  223,  223,  223,  223,  223,  223,  223,  225,
1261       223,  223,  223, 1508,  223,  227,  223,  228,  223,  272,
1262       147,  272,  272,  147,  272, 1511,  272,  147,  272,  272,
1263       147,  272,  284,  147,  284,  273, 1521, 1347,  273, 1400,
1264       223,  223,  274,  392,  392,  274, 1401,  229,  285,  388,
1265       388,  388,  230,  388,  388,  388,  388,  388,  388,  391,
1266       391,  231,  223,  224,  147,  224,  223,  223,  223,  223,
1267       223,  223,  223,  225,  223,  223,  223, 1534,  223,  227,
1268       223,  228,  223,  284,  147,  284,  299,  147,  299, 1535,
1269       299,  147,  299,  309,  147,  309,  309,  147,  309,  285,
1270
1271      1402,  392,  300, 1417,  223,  223,  300, 1403,  484,  310,
1272      1418,  229,  310,  388,  388,  388,  230,  391,  388,  388,
1273       388,  388,  388,  388, 1536,  231,  235,  236,  147,  236,
1274       235,  235,  235,  235,  235,  235,  235,  237,  235,  235,
1275       235, 1003,  235,  239,  235,  240,  235,  322,  147,  322,
1276       322,  147,  322,  685,  147,  147,  147,  147,  147,  147,
1277       322,  147,  322,  323,  392,  573,  323, 1419,  235,  235,
1278       221,  495, 1000,  221, 1420, 1003,  323, 1003,  574,  241,
1279       391,  388,  388,  388, 1444,  242, 1537,  243,  244,  235,
1280       236,  147,  236,  235,  235,  235,  235,  235,  235,  235,
1281
1282       237,  235,  235,  235, 1527,  235,  239,  235,  240,  235,
1283       322,  147,  322,  322,  147,  322, 1443,  322,  147,  322,
1284       147,  147,  147,  147,  147,  147,  323,  565,  573,  324,
1285       392,  235,  235,  324,  685, 1538,  334,  499, 1542,  334,
1286       578,  580,  241,  388,  388,  388,  391, 1543,  242,  687,
1287       243,  244,  248,  249,  147,  249,  248,  248,  248,  248,
1288       248,  248,  248,  250,  248,  248,  248, 1544,  248,  252,
1289       248,  253,  248,  147,  147,  147,  147,  147,  147, 1545,
1290       336,  147,  336,  336,  147,  336,  336,  147,  336,  334,
1291       392, 1499,  334, 1500,  248,  248,  337,  392, 1546,  337,
1292
1293      1422, 1423,  338,  388,  388,  388,  391,  388,  388,  388,
1294       388,  388,  388,  391,  254,  248,  249,  147,  249,  248,
1295       248,  248,  248,  248,  248,  248,  250,  248,  248,  248,
1296      1547,  248,  252,  248,  253,  248,  336,  147,  336,  350,
1297       147,  350, 1548,  350,  147,  350,  147,  147,  147,  147,
1298       147,  147,  338, 1424, 1425,  351,  392,  248,  248,  351,
1299       392, 1549,  334, 1429, 1430,  334,  388,  388,  388,  388,
1300       388,  388,  391,  388,  388,  388,  391,  254,  260,  261,
1301       147,  261,  260,  260,  260,  260,  260,  260,  260,  262,
1302       260,  260,  260, 1550,  260,  264,  260,  265,  260,  350,
1303
1304       147,  350,  350,  147,  350, 1003,  350,  147,  350,  350,
1305       147,  350,  361,  147,  361,  351,  392,  392,  351,  392,
1306       260,  260,  352,  266,  526,  352, 1431, 1432,  362, 1551,
1307       685,  267,  391,  391,  268,  391, 1345,  269, 1552, 1528,
1308       270,  260,  261,  147,  261,  260,  260,  260,  260,  260,
1309       260,  260,  262,  260,  260,  260, 1554,  260,  264,  260,
1310       265,  260,  361,  147,  361,  374,  147,  374, 1555,  374,
1311       147,  374,  147,  147,  147,  147,  147,  147,  362, 1556,
1312       392,  375, 1557,  260,  260,  375,  266,  538,  376, 1157,
1313      1502,  376, 1503, 1558,  267, 1158,  391,  268, 1159, 1509,
1314
1315       269, 1510, 1160,  270,  275,  276,  147,  276,  275,  275,
1316       275,  275,  275,  275,  275,  277,  275,  275,  275,  533,
1317       275,  279,  275,  280,  275,  374,  147,  374,  374,  147,
1318       374, 1564,  374,  147,  374,  374,  147,  374,  386,  147,
1319       386,  375, 1565, 1161,  375, 1566,  275,  275,  377, 1162,
1320      1567,  377, 1163,  534,  387,  397, 1164,  281,  388,  388,
1321       388,  388,  388,  388,  388,  388,  388,  453, 1568,  282,
1322       275,  276,  147,  276,  275,  275,  275,  275,  275,  275,
1323       275,  277,  275,  275,  275, 1571,  275,  279,  275,  280,
1324       275,  386,  147,  386,  398,  388,  388,  388, 1572, 1573,
1325
1326       399,  388,  388,  388,  400, 1003, 1512,  387, 1513,  401,
1327      1574, 1575,  275,  275,  388,  388,  388,  388,  388,  388,
1328       544,  544,  544,  281,  689,  734,  734,  734, 1576,  735,
1329      1581, 1582,  736, 1346, 1583,  282,  286,  287,  147,  287,
1330       286,  286,  286,  286,  286,  286,  286,  288,  286,  286,
1331       286,  289,  286,  290,  286,  291,  286,  289,  289,  289,
1332       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1333       289,  289,  289,  289,  289,  289,  289,  289,  286,  286,
1334       289,  289,  292,  289,  289,  289,  289,  289,  289,  293,
1335       289,  294,  289,  289,  289,  295,  289,  296,  297,  289,
1336
1337       289,  289,  289,  289,  289,  301,  302,  147,  302,  301,
1338       301,  301,  301,  301,  301,  301,  303,  301,  301,  301,
1339      1584,  301,  305,  301,  306,  301,  544,  544,  544,  586,
1340       586,  586,  595,  595,  595,  609,  609,  609,  620,  620,
1341       620,  900,  900,  900, 1585, 1586,  587,  301,  301,  596,
1342      1606, 1003,  610, 1607, 1608,  621, 1609, 1616,  307,  301,
1343       302,  147,  302,  301,  301,  301,  301,  301,  301,  301,
1344       303,  301,  301,  301,  685,  301,  305,  301,  306,  301,
1345      1617,  545,  628,  628,  628, 1599,  634,  634,  634,  636,
1346       636,  636,  645,  645,  645,  908,  908,  908, 1618,  629,
1347
1348      1619,  301,  301,  635, 1620, 1621,  637, 1622, 1623,  646,
1349      1598, 1003,  307,  311,  312,  147,  312,  311,  311,  311,
1350       311,  311,  311,  311,  313,  311,  311,  311, 1624,  311,
1351       315,  311,  316,  311,  650,  650,  650,  670,  670,  670,
1352       699,  699,  699,  699,  699,  699,  729,  729,  729,  685,
1353      1600,  651, 1625, 1626,  671,  311,  311, 1628,  701,  317,
1354      1629,  701, 1630, 1634,  731, 1237,  318, 1635,  319, 1014,
1355      1014, 1014, 1020, 1020, 1020,  320,  311,  312,  147,  312,
1356       311,  311,  311,  311,  311,  311,  311,  313,  311,  311,
1357       311, 1636,  311,  315,  311,  316,  311,  702,  729,  729,
1358
1359       729, 1640, 1641,  586,  586,  586,  740,  740,  740,  740,
1360       740,  740, 1642,  595,  595,  595,  731, 1643,  311,  311,
1361       587, 1644,  317, 1645,  742, 1651, 1652,  742, 1653,  318,
1362       596,  319,  900,  900,  900, 1026, 1026, 1026,  320,  325,
1363       326,  147,  326,  325,  325,  325,  325,  325,  325,  325,
1364       327,  325,  325,  325,  732,  325,  329,  325,  330,  325,
1365       745,  745,  745, 1654,  746, 1655, 1656,  747, 1612,  743,
1366      1669,  748,  748,  748,  751,  751,  751,  754,  754,  754,
1367      1613,  325,  325, 1671,  331, 1614, 1675,  332,  749, 1003,
1368      1646,  752,  766,  766,  766,  756,  767, 1615, 1647,  768,
1369
1370      1676,  333,  325,  326,  147,  326,  325,  325,  325,  325,
1371       325,  325,  325,  327,  325,  325,  325,  685,  325,  329,
1372       325,  330,  325,  762,  762,  762, 1648, 1663,  762,  762,
1373       762,  609,  609,  609, 1649, 1677,  754,  754,  754, 1678,
1374      1679,  764, 1680, 1662,  325,  325,  764,  331,  610, 1003,
1375       332,  782,  782,  782,  756,  783, 1681, 1682,  784,  908,
1376       908,  908, 1683, 1684,  333,  339,  340,  147,  340,  339,
1377       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1378       757,  339,  343,  339,  344,  339, 1685, 1664,  765, 1686,
1379      1687,  772,  772,  772,  777,  777,  777,  777,  777,  777,
1380
1381      1692,  772,  772,  772,  620,  620,  620,  339,  339,  774,
1382       345, 1693,  779,  346, 1694,  779, 1697, 1698,  347,  774,
1383      1699,  621, 1053, 1053, 1053, 1700, 1701,  348,  339,  340,
1384       147,  340,  339,  339,  339,  339,  339,  339,  339,  341,
1385       339,  339,  339, 1702,  339,  343,  339,  344,  339,  775,
1386       789,  789,  789, 1703,  780, 1704,  789,  789,  789, 1705,
1387       628,  628,  628, 1706, 1707,  793,  793,  793,  791,  794,
1388       339,  339,  795,  345,  791, 1709,  346,  629,  803,  803,
1389       803,  347,  804, 1710, 1711,  805, 1014, 1014, 1014, 1712,
1390       348,  353,  354,  147,  354,  353,  353,  353,  353,  353,
1391
1392       353,  353,  355,  353,  353,  353, 1713,  353,  357,  353,
1393       358,  353, 1714,  792,  797,  797,  797,  797,  797,  797,
1394       634,  634,  634,  636,  636,  636,  809,  809,  809, 1016,
1395      1016, 1016,  799,  353,  353,  799, 1721,  635, 1722, 1003,
1396       637,  685, 1723,  810,  359,  353,  354,  147,  354,  353,
1397       353,  353,  353,  353,  353,  353,  355,  353,  353,  353,
1398      1724,  353,  357,  353,  358,  353,  806,  806,  806, 1725,
1399       807, 1718, 1726,  808,  815,  815,  815,  800,  815,  815,
1400       815, 1729,  819,  819,  819, 1717,  820,  353,  353,  821,
1401      1730, 1731,  817, 1020, 1020, 1020,  817, 1732,  359,  363,
1402
1403       364,  147,  364,  363,  363,  363,  363,  363,  363,  363,
1404       365,  363,  363,  363, 1733,  363,  367,  363,  368,  363,
1405       645,  645,  645, 1734, 1735,  822,  822,  822,  822,  822,
1406       822, 1736,  818,  650,  650,  650, 1741,  646,  833,  833,
1407       833,  363,  363,  824, 1742, 1743,  824, 1744, 1745,  369,
1408       651,  370, 1749,  371, 1750, 1751,  835, 1026, 1026, 1026,
1409      1752,  372,  363,  364,  147,  364,  363,  363,  363,  363,
1410       363,  363,  363,  365,  363,  363,  363, 1753,  363,  367,
1411       363,  368,  363, 1754, 1755,  825,  827,  827,  827, 1756,
1412       828, 1757, 1758,  829, 1759,  833,  833,  833,  838,  838,
1413
1414       838,  840,  840,  840,  363,  363,  849,  849,  849, 1027,
1415      1027, 1027,  369,  835,  370,  839,  371, 1762,  841, 1053,
1416      1053, 1053, 1763,  850,  372,  378,  379,  147,  379,  378,
1417       378,  378,  378,  378,  378,  378,  380,  378,  378,  378,
1418      1764,  378,  382,  378,  383,  378, 1765,  836,  844,  844,
1419       844, 1766,  852,  852,  852,  844,  844,  844,  854,  854,
1420       854,  854,  854,  854, 1767, 1782,  846,  378,  378,  853,
1421       670,  670,  670,  846, 1783,  685,  856, 1784, 1785,  856,
1422      1789,  858,  858,  858, 1790,  859, 1791,  671,  860, 1792,
1423       384,  378,  379,  147,  379,  378,  378,  378,  378,  378,
1424
1425       378,  378,  380,  378,  378,  378, 1774,  378,  382,  378,
1426       383,  378,  847,  861,  861,  861, 1793, 1794,  857,  861,
1427       861,  861,  869,  869,  869,  869,  869,  869,  875,  875,
1428       875,  863, 1796,  378,  378, 1797, 1798,  863, 1799, 1804,
1429       871, 1805, 1806,  871, 1807, 1808,  877,  875,  875,  875,
1430       699,  699,  699,  915,  915,  915,  384,  392,  699,  699,
1431       699, 1016, 1016, 1016,  408,  877, 1809, 1810,  701, 1811,
1432       916,  864, 1812,  391, 1813, 1017,  701,  699,  699,  699,
1433      1814,  729,  729,  729, 1815,  872,  729,  729,  729, 1816,
1434      1817,  729,  729,  729, 1832,  701, 1833,  685,  409,  731,
1435
1436       410, 1834, 1835,  411,  731,  412,  413,  878,  414,  731,
1437      1836, 1837,  415, 1838,  416,  417,  418,  392,  918,  918,
1438       918,  888, 1839, 1840,  408,  734,  734,  734, 1841,  735,
1439      1844, 1845,  736,  391, 1846,  919, 1826,  917, 2035, 2035,
1440      2035, 1847, 2035, 2035, 2035, 1854,  740,  740,  740,  740,
1441       740,  740,  740,  740,  740, 2035, 1855, 1856,  409, 2035,
1442       419, 1857, 1858,  420,  742,  421,  413,  742,  422, 1859,
1443       742, 1860,  415, 1861,  423,  424,  425,  745,  745,  745,
1444      1862,  746, 1863, 1864,  747,  748,  748,  748, 1865, 1875,
1445       925,  925,  925, 1876,  926,  920,  923,  927,  928,  928,
1446
1447       928, 1870,  749,  921,  751,  751,  751,  930,  930,  930,
1448      1877,  931, 1873,  685,  932,  929,  754,  754,  754, 1878,
1449      1879,  752,  754,  754,  754,  754,  754,  754,  937,  937,
1450       937,  762,  762,  762,  756,  762,  762,  762, 1880, 1881,
1451       756, 1882, 1870,  756, 1883,  938,  762,  762,  762,  764,
1452       766,  766,  766,  764,  767, 1868, 1871,  768,  772,  772,
1453       772,  772,  772,  772,  764,  772,  772,  772,  777,  777,
1454       777,  777,  777,  777, 1884, 1889,  774, 1885, 1890,  774,
1455      1891,  934, 1892,  774, 1893, 1894,  779, 1895, 1886,  779,
1456       940,  777,  777,  777,  782,  782,  782, 1887,  783, 1896,
1457
1458      1901,  784,  789,  789,  789,  789,  789,  789, 1888,  779,
1459       789,  789,  789, 1901,  793,  793,  793, 1904,  794, 1905,
1460       791,  795, 1915,  791,  797,  797,  797,  944,  791,  797,
1461       797,  797,  797,  797,  797, 1916,  803,  803,  803, 1917,
1462       804, 1870,  799,  805,  809,  809,  809,  799, 1918,  685,
1463       799,  946,  806,  806,  806, 1871,  807, 1003, 1004,  808,
1464      1901,  810,  957,  957,  957, 1922,  958, 1901, 1923,  959,
1465      1924,  952,  815,  815,  815,  815,  815,  815,  815,  815,
1466       815,  819,  819,  819, 1870,  820, 1899, 1934,  821,  954,
1467       817, 1938, 1939,  817, 1940, 1873,  817,  822,  822,  822,
1468
1469       822,  822,  822,  822,  822,  822,  827,  827,  827, 1941,
1470       828, 1945, 1946,  829, 1947,  824, 1948, 1949,  824, 1950,
1471      1954,  824,  833,  833,  833,  833,  833,  833,  833,  833,
1472       833,  838,  838,  838,  685,  972,  972,  972, 1955,  973,
1473       835,  964,  974,  835, 1956, 1957,  835, 1958,  839, 1962,
1474       840,  840,  840,  975,  975,  975, 1953,  976, 1963,  685,
1475       977,  844,  844,  844, 1964, 1965,  965,  841,  844,  844,
1476       844,  844,  844,  844,  849,  849,  849, 1961, 1966,  846,
1477      1972,  982,  982,  982,  970,  983,  846, 1973,  984,  846,
1478      1974,  850,  852,  852,  852,  986,  986,  986, 1975,  987,
1479
1480       685, 1982,  988,  854,  854,  854,  854,  854,  854,  853,
1481       854,  854,  854,  858,  858,  858,  685,  859, 1983, 1969,
1482       860,  856, 1978, 1491,  856,  861,  861,  861,  856,  861,
1483       861,  861,  685,  685,  980,  861,  861,  861,  992,  992,
1484       992,  685, 2024,  863,  869,  869,  869,  863,  869,  869,
1485       869,  685,  685,  863, 1986,  993,  869,  869,  869,  875,
1486       875,  875,  871,  875,  875,  875,  871,  875,  875,  875,
1487      1002, 1002, 1002,  989,  871, 1996, 1997,  877,  699,  699,
1488       699,  877,  915,  915,  915,  877, 2000,  685, 1003, 1004,
1489       685,  990, 1027, 1027, 1027, 1485,  701, 2032,  685,  916,
1490
1491      1036, 1036, 1036, 1484, 1037,  685, 1017, 1038,  729,  729,
1492       729,  685,  685,  996,  918,  918,  918,  999, 1040, 1040,
1493      1040, 2001, 1041,  685, 2020, 1042,  731,  740,  740,  740,
1494       685,  919,  925,  925,  925, 2004,  926, 2010,  685,  927,
1495      1010,  928,  928,  928, 1483,  742, 1048, 1048, 1048, 2005,
1496      1049,  685, 1482, 1050,  754,  754,  754, 1481,  929,  930,
1497       930,  930, 1039,  931, 2021, 2018,  932,  937,  937,  937,
1498      2011,  685,  756, 1046, 1055, 1055, 1055, 1480, 1056,  685,
1499      2022, 1057,  685, 1479,  938, 1058, 1058, 1058,  762,  762,
1500       762, 1064, 1064, 1064,  777,  777,  777, 1071, 1071, 1071,
1501
1502       685, 1052, 1059, 1073, 1073, 1073,  764, 2032, 2023, 1065,
1503      2025, 2026,  779, 2019, 1072,  789,  789,  789,  685,  685,
1504      1074, 1077, 1077, 1077,  685,  797,  797,  797, 1080, 1080,
1505      1080,  685, 1478,  791, 1060, 2035, 2035, 2035, 1078, 1083,
1506      1083, 1083, 1067,  799, 2028, 1081, 1075,  957,  957,  957,
1507       685,  958, 2035, 2027,  959,  685, 1084, 2035, 2035, 2035,
1508      1474, 2035, 2035, 2035, 2035, 2035, 2035,  815,  815,  815,
1509       822,  822,  822, 1473, 2035, 2029, 1472, 1076, 2035, 2030,
1510      1471, 2035, 1470, 1079, 2031,  817, 1469, 1468,  824, 1467,
1511      1093, 1093, 1093,  833,  833,  833, 1466, 1082, 1465,  972,
1512
1513       972,  972, 1464,  973, 1458, 1086,  974, 1094,  975,  975,
1514       975,  835,  976, 1455, 1454,  977, 1453, 1027, 1027, 1027,
1515       844,  844,  844, 1085,  992,  992,  992, 1452, 1088, 1440,
1516      1087, 1099, 1089, 1095, 1438,  982,  982,  982,  846,  983,
1517      1437,  993,  984,  986,  986,  986, 1096,  987, 1427, 1421,
1518       988,  854,  854,  854,  861,  861,  861, 1106, 1106, 1106,
1519      1416, 1107, 1415, 1411, 1108,  869,  869,  869, 1404,  856,
1520      1399, 1398,  863, 1113, 1113, 1113,  875,  875,  875, 1002,
1521      1002, 1002, 1100,  871,  699,  699,  699, 1133, 1133, 1133,
1522      1114, 1136, 1136, 1136,  877, 1397, 1391, 1003, 1133, 1133,
1523
1524      1133, 1134,  701, 1390, 1389, 1137, 1388, 1104, 1142, 1142,
1525      1142, 1111, 1134, 1103, 1144, 1144, 1144, 1144, 1144, 1144,
1526      1387, 1386, 1137, 1142, 1142, 1142, 1385, 1117, 1145, 1384,
1527      1383, 1145, 1382, 1124, 1036, 1036, 1036, 1147, 1037, 1115,
1528      1376, 1038, 1375, 1118,  729,  729,  729, 1135, 1040, 1040,
1529      1040, 1374, 1041, 1371, 1369, 1042, 1367, 1363, 1141, 1058,
1530      1058, 1058,  731,  740,  740,  740, 1048, 1048, 1048, 1362,
1531      1049, 1360, 1359, 1050, 1135, 1355, 1059, 1141,  754,  754,
1532       754,  742, 1055, 1055, 1055, 1348, 1056, 1343, 1341, 1057,
1533      1165, 1165, 1165, 1340, 1166, 1339,  756, 1167,  762,  762,
1534
1535       762, 1169, 1169, 1169, 2035, 2035, 2035, 1148, 1172, 1172,
1536      1172, 1152, 1064, 1064, 1064, 1330,  764, 1325, 1170, 1324,
1537      1323, 2035, 1174, 1174, 1174, 1173,  777,  777,  777, 1322,
1538      1065, 1071, 1071, 1071, 1318, 1155, 1180, 1180, 1180, 1175,
1539      1181, 1304, 1303, 1182,  779, 1302, 1168, 1301, 1072, 1073,
1540      1073, 1073, 1183, 1183, 1183, 1300, 1184, 1299, 1171, 1185,
1541      1187, 1187, 1187, 1077, 1077, 1077, 1074, 1189, 1189, 1189,
1542      1176, 1190, 1285, 1282, 1191, 1192, 1192, 1192, 1188, 1281,
1543      1078, 1080, 1080, 1080, 1194, 1194, 1194, 1280, 1195, 1277,
1544      1276, 1196, 1272, 1193, 1197, 1197, 1197, 1271, 1081, 1083,
1545
1546      1083, 1083, 1199, 1199, 1199, 1268, 1200, 1267, 1266, 1201,
1547      1264, 1198, 1202, 1202, 1202, 1263, 1084, 2035, 2035, 2035,
1548      1205, 1205, 1205,  815,  815,  815,  822,  822,  822, 1203,
1549      1093, 1093, 1093, 1262, 2035, 1261, 1258, 1206, 1212, 1212,
1550      1212,  817, 1213, 1257,  824, 1214, 1256, 1094, 1216, 1216,
1551      1216, 1218, 1218, 1218, 1254, 2035, 2035, 2035,  844,  844,
1552       844, 1223, 1223, 1223, 1252, 1251, 1217, 1250, 1219, 1249,
1553      1248, 1204, 2035, 1247, 1208, 1246,  846, 1240, 1224, 2035,
1554      2035, 2035,  854,  854,  854, 1207, 1232,  861,  861,  861,
1555      1106, 1106, 1106, 1230, 1107, 1229, 2035, 1108, 1228, 1221,
1556
1557       856, 1227,  869,  869,  869,  863, 1222, 1113, 1113, 1113,
1558      1233, 1233, 1233, 1215, 1234, 1220, 1211, 1235, 1210, 1209,
1559       871, 1186, 1225, 1179, 1114,  875,  875,  875, 1178, 1177,
1560      1226, 1241, 1241, 1241, 2035, 2035, 2035, 2035, 2035, 2035,
1561       699,  699,  699,  877, 1253, 1253, 1253, 1156, 1242, 1154,
1562      1231, 2035, 1153, 1151, 2035, 1133, 1133, 1133,  701, 1255,
1563      1255, 1255, 1136, 1136, 1136, 1259, 1259, 1259, 1260, 1260,
1564      1260, 1142, 1142, 1142, 1144, 1144, 1144,  729,  729,  729,
1565      1236, 1269, 1269, 1269, 1150, 1149, 1243,  754,  754,  754,
1566      1274, 1274, 1274, 1146, 1244,  731, 1143, 1245, 1140, 1270,
1567
1568      1139, 1138, 1165, 1165, 1165,  756, 1166, 1275, 1132, 1167,
1569      1131,  762,  762,  762, 1169, 1169, 1169, 1130, 1129, 1287,
1570      1287, 1287, 1128, 1288, 1265, 1286, 1289, 1127, 1126,  764,
1571      1125, 1170, 1290, 1290, 1290, 1172, 1172, 1172, 1121, 1292,
1572      1292, 1292, 1273, 1293, 1120, 1119, 1294, 1003, 1112, 1291,
1573      1110, 1109, 1173, 1174, 1174, 1174, 1295, 1295, 1295, 1105,
1574      1296, 1102, 1101, 1297,  777,  777,  777, 1180, 1180, 1180,
1575      1175, 1181, 1098, 1097, 1182, 1092, 1183, 1183, 1183, 1091,
1576      1184, 1090,  779, 1185, 1187, 1187, 1187, 1189, 1189, 1189,
1577      1070, 1190, 1069, 1068, 1191, 1192, 1192, 1192, 1066, 1194,
1578
1579      1194, 1194, 1188, 1195, 1063, 1062, 1196, 1197, 1197, 1197,
1580      1298, 1061, 1054, 1193, 1305, 1305, 1305, 1051, 1306, 1047,
1581      1045, 1307, 1044, 1043, 1198, 1199, 1199, 1199, 1035, 1200,
1582      1034, 1033, 1201, 1202, 1202, 1202, 1308, 1308, 1308, 1032,
1583      1309, 1031, 1030, 1310, 1311, 1311, 1311, 1205, 1205, 1205,
1584      1203, 1313, 1313, 1313, 1029, 1314, 1028, 1025, 1315, 1024,
1585      1023, 1312, 1022, 1021, 1206,  815,  815,  815,  822,  822,
1586       822, 1319, 1319, 1319, 1212, 1212, 1212, 1019, 1213, 1018,
1587      1015, 1214, 1013,  817, 1012, 1011,  824, 1009, 1320, 1216,
1588      1216, 1216, 1218, 1218, 1218, 1326, 1326, 1326, 1008, 1327,
1589
1590      1007, 1006, 1328, 2035, 2035, 2035, 1005, 1217,  998, 1219,
1591      1223, 1223, 1223, 1316, 1321,  844,  844,  844,  997,  995,
1592      2035, 2035, 2035, 2035, 1336, 1336, 1336, 1224, 1317, 1331,
1593      1332, 1332, 1332,  846, 1333,  994,  991, 1334, 2035,  861,
1594       861,  861, 1337,  869,  869,  869, 1233, 1233, 1233,  985,
1595      1234,  981,  979, 1235,  978, 1329,  971,  863,  875,  875,
1596       875,  871, 1241, 1241, 1241, 1349, 1349, 1349,  969, 1350,
1597       968,  967, 1351, 2035, 2035, 2035,  877,  966, 1335, 1242,
1598      2035, 2035, 2035,  963,  962, 1338,  961,  699,  699,  699,
1599      2035, 1356, 1356, 1356, 1357, 1357, 1357, 2035, 1358, 1358,
1600
1601      1358, 1361, 1361, 1361, 1342,  701, 1344, 1253, 1253, 1253,
1602      1255, 1255, 1255, 1364, 1364, 1364, 1365, 1365, 1365, 1259,
1603      1259, 1259, 1260, 1260, 1260, 1366, 1366, 1366,  960, 1352,
1604      1368, 1368, 1368,  729,  729,  729, 1372, 1372, 1372, 1269,
1605      1269, 1269,  956, 1353, 1377, 1377, 1377, 1354, 1274, 1274,
1606      1274,  731,  955, 1373, 1379, 1379, 1379, 1270, 1380,  953,
1607       951, 1381, 1378,  950,  949, 1275,  762,  762,  762, 1287,
1608      1287, 1287,  948, 1288,  947,  945, 1289, 1290, 1290, 1290,
1609       943, 1370,  942,  941,  764, 1393, 1393, 1393,  939, 1394,
1610       936,  933, 1395,  924, 1291, 1292, 1292, 1292,  922, 1293,
1611
1612       914,  913, 1294, 1295, 1295, 1295,  912, 1296,  911,  909,
1613      1297,  907, 1392,  777,  777,  777, 1305, 1305, 1305,  906,
1614      1306,  905,  904, 1307,  903, 1308, 1308, 1308,  902, 1309,
1615       901,  779, 1310, 1311, 1311, 1311, 1405, 1405, 1405,  899,
1616      1406,  898,  895, 1407, 1313, 1313, 1313,  894, 1314,  893,
1617      1312, 1315,  815,  815,  815, 1409, 1409, 1409, 1319, 1319,
1618      1319, 1412, 1412, 1412, 1396, 1413,  892,  891, 1414,  890,
1619       817,  889,  887, 1410,  886, 1320, 1326, 1326, 1326,  885,
1620      1327,  884,  883, 1328, 2035, 2035, 2035,  844,  844,  844,
1621      1332, 1332, 1332,  882, 1333,  881,  880, 1334, 2035, 2035,
1622
1623      2035, 2035, 1336, 1336, 1336,  846,  861,  861,  861, 1435,
1624      1435, 1435, 1408,  685,  874, 2035,  869,  869,  869,  873,
1625      1337, 1442, 1442, 1442,  863,  868, 1436,  875,  875,  875,
1626      1426, 1445, 1445, 1445,  871,  867, 1349, 1349, 1349,  685,
1627      1350,  866, 1428, 1351,  865,  877, 2035, 2035, 2035, 2035,
1628      2035, 2035,  851,  848, 1433,  699,  699,  699, 1449, 1449,
1629      1449,  843,  842, 2035,  837,  832, 2035,  831, 1434, 1356,
1630      1356, 1356,  830,  701, 1357, 1357, 1357, 1439, 1358, 1358,
1631      1358,  826,  814, 1441, 1450, 1450, 1450, 1451, 1451, 1451,
1632      1361, 1361, 1361, 1364, 1364, 1364, 1365, 1365, 1365, 1446,
1633
1634      1366, 1366, 1366, 1368, 1368, 1368, 1456, 1456, 1456,  813,
1635      1448, 1447, 1372, 1372, 1372, 1459, 1459, 1459,  812, 1460,
1636       811,  796, 1461,  788, 1457, 1462, 1462, 1462,  787, 1373,
1637      1377, 1377, 1377, 1379, 1379, 1379,  786, 1380,  785,  781,
1638      1381,  776, 1463,  762,  762,  762,  771,  770, 1378, 1393,
1639      1393, 1393,  769, 1394,  761,  760, 1395, 1476, 1476, 1476,
1640       759,  764, 1405, 1405, 1405,  758, 1406,  753,  750, 1407,
1641      1486, 1486, 1486,  744,  739, 1477, 1409, 1409, 1409, 1488,
1642      1488, 1488, 1412, 1412, 1412,  738, 1413,  737, 1487, 1414,
1643      1504, 1504, 1504,  733, 1410,  728, 1489, 1506, 1506, 1506,
1644
1645      1475,  844,  844,  844, 2035, 2035, 2035, 1505,  727,  861,
1646       861,  861, 1435, 1435, 1435,  726, 1516, 1516, 1516,  846,
1647      1517, 2035, 1490, 1518, 1519, 1519, 1519,  863,  725, 1436,
1648      1522, 1522, 1522, 1524, 1524, 1524,  875,  875,  875,  724,
1649       723, 1520, 1442, 1442, 1442,  722,  721, 1514, 1523, 1445,
1650      1445, 1445,  720,  719,  877, 1529, 1529, 1529,  718,  717,
1651       685, 2035, 2035, 2035, 1507, 1515, 1532, 1532, 1532, 1449,
1652      1449, 1449, 1530, 1450, 1450, 1450,  716,  715, 2035, 1451,
1653      1451, 1451,  714,  713, 1533, 1456, 1456, 1456, 1459, 1459,
1654      1459,  712, 1460,  711,  710, 1461,  709,  708, 1525,  707,
1655
1656      1526,  706,  705, 1457, 1462, 1462, 1462,  704,  703, 1531,
1657      1539, 1539, 1539,  698, 1540,  697,  696, 1541,  762,  762,
1658       762, 1463, 1476, 1476, 1476, 1559, 1559, 1559, 1486, 1486,
1659      1486, 1488, 1488, 1488,  695,  694,  764, 1561, 1561, 1561,
1660      1477, 1562, 1560,  693, 1563,  692, 1487,  691, 1489, 1569,
1661      1569, 1569, 1504, 1504, 1504, 1577, 1577, 1577,  688, 1578,
1662       686,  685, 1579, 1506, 1506, 1506, 1570,  683,  681, 1505,
1663       844,  844,  844,  680, 1553, 2035, 2035, 2035, 1589, 1589,
1664      1589,  679, 1516, 1516, 1516,  677, 1517,  676,  846, 1518,
1665       675,  674, 2035, 1519, 1519, 1519, 1590, 1591, 1591, 1591,
1666
1667       673, 1592,  669,  667, 1593,  666, 1594, 1594, 1594,  665,
1668      1520, 1522, 1522, 1522, 1524, 1524, 1524, 1596, 1596, 1596,
1669       664,  663, 1587, 1595, 1580, 1529, 1529, 1529,  661, 1523,
1670      1601, 1601, 1601,  660, 1602, 1597, 1588, 1603, 1604, 1604,
1671      1604,  659, 1530, 1532, 1532, 1532, 1610, 1610, 1610, 1539,
1672      1539, 1539,  658, 1540,  657, 1605, 1541,  762,  762,  762,
1673       656, 1533,  654, 1611, 1559, 1559, 1559, 1631, 1631, 1631,
1674       653, 1632,  652,  649, 1633,  764, 1561, 1561, 1561,  648,
1675      1562, 1560,  644, 1563, 1569, 1569, 1569, 1637, 1637, 1637,
1676       642, 1638,  641,  640, 1639, 1577, 1577, 1577,  639, 1578,
1677
1678       638, 1570, 1579,  844,  844,  844, 2035, 2035, 2035, 2035,
1679      2035, 2035,  633, 1627, 1589, 1589, 1589,  632, 1591, 1591,
1680      1591,  846, 1592, 2035,  630, 1593, 2035, 1594, 1594, 1594,
1681       627,  625, 1590, 1659, 1659, 1659,  624, 1660,  623,  622,
1682      1661, 1596, 1596, 1596, 1595, 1601, 1601, 1601,  619, 1602,
1683       618,  616, 1603, 1604, 1604, 1604, 1665, 1665, 1665, 1597,
1684      1666,  615,  613, 1667,  612, 1650,  611, 1657,  608, 1658,
1685      1605, 1668, 1668, 1668, 1670, 1670, 1670, 1610, 1610, 1610,
1686      1672, 1672, 1672,  606, 1673,  605,  604, 1674,  762,  762,
1687       762, 1689, 1689, 1689, 1611, 1631, 1631, 1631,  602, 1632,
1688
1689       600,  599, 1633, 1695, 1695, 1695,  764,  598, 1690, 1637,
1690      1637, 1637,  597, 1638,  594,  593, 1639,  844,  844,  844,
1691      1696, 2035, 2035, 2035, 2035, 2035, 2035, 1668, 1668, 1668,
1692      1719, 1719, 1719,  592, 1691,  846, 1688,  589, 2035,  588,
1693       585, 2035, 1659, 1659, 1659,  584, 1660, 1720, 1003, 1661,
1694      1665, 1665, 1665,  582, 1666,  581,  579, 1667, 1670, 1670,
1695      1670, 1672, 1672, 1672,  576, 1673,  575,  572, 1674, 1708,
1696      1716, 1727, 1727, 1727,  762,  762,  762, 1689, 1689, 1689,
1697      1738, 1738, 1738, 1715, 1739,  571,  570, 1740, 1728, 1695,
1698      1695, 1695,  764,  569, 1690, 1746, 1746, 1746,  568, 1747,
1699
1700       567,  562, 1748, 1760, 1760, 1760, 1696, 1768, 1768, 1768,
1701      1771, 1771, 1771, 1775, 1775, 1775, 1719, 1719, 1719,  561,
1702      1737, 1761,  560,  559, 1769,  558,  557, 1772,  556,  554,
1703      1776, 1003,  553, 1720, 1003,  552, 1777, 1777, 1777,  551,
1704      1778,  550,  549, 1779, 1780, 1780, 1780, 1781, 1781, 1781,
1705      1770,  548,  543, 1773, 1003, 1727, 1727, 1727, 1786, 1786,
1706      1786,  540, 1787,  542,  537, 1788,  762,  762,  762, 1738,
1707      1738, 1738, 1728, 1739,  535,  533, 1740, 1800, 1800, 1800,
1708      2035, 1746, 1746, 1746,  764, 1747,  532,  531, 1748, 1802,
1709      1802, 1802,  530,  529, 1801, 1760, 1760, 1760, 1768, 1768,
1710
1711      1768, 1818, 1818, 1818,  527, 1819, 1803,  525, 1820, 2035,
1712      2035, 2035,  523, 1761,  522, 1769, 1771, 1771, 1771,  521,
1713      1822, 1822, 1822,  520, 1823,  519, 2035, 1824, 1795, 2035,
1714      2035, 2035,  518, 1772, 1775, 1775, 1775, 1827, 1827, 1827,
1715       516, 1828,  515,  511, 1829,  510, 2035, 1780, 1780, 1780,
1716       508, 1776, 1003,  507,  504, 1003,  503, 1777, 1777, 1777,
1717       502, 1778,  500,  498, 1779, 1781, 1781, 1781,  496, 1786,
1718      1786, 1786,  494, 1787, 1821, 1003, 1788, 1848, 1848, 1848,
1719       493, 1849,  490,  489, 1850,  485, 1842, 1842, 1842,  483,
1720      1800, 1800, 1800,  482, 1825, 1001, 1001, 1001, 1001, 1001,
1721
1722      1001, 1001, 1001, 1001, 1843,  480, 1001, 1801, 1802, 1802,
1723      1802, 1001, 1001, 1001, 1003, 1001, 1851, 1851, 1851,  479,
1724      1852,  478,  477, 1853,  476, 1803, 1818, 1818, 1818,  473,
1725      1819,  471,  470, 1820, 2035, 2035, 2035, 1001, 1001, 1001,
1726      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,  421,  469,
1727      1001, 2035, 2035, 2035, 2035, 1001, 1001, 1001, 1003, 1001,
1728      1822, 1822, 1822,  467, 1823,  465,  464, 1824,  463, 2035,
1729      1827, 1827, 1827,  462, 1828,  460,  458, 1829, 1842, 1842,
1730      1842, 1001, 1001, 1848, 1848, 1848, 1866, 1849, 1003,  457,
1731      1850, 1851, 1851, 1851,  456, 1852, 1843,  454, 1853,  452,
1732
1733      2035, 2035, 2035,  451, 1867, 1001, 1001, 1001, 1001, 1001,
1734      1874, 1001, 1001, 1001,  447,  446, 1001, 2035, 2035, 2035,
1735      2035, 1001, 1001, 1001, 1003, 1001, 1903, 1903, 1903, 1906,
1736      1906, 1906, 1925, 1925, 1925, 2035, 1926,  444,  443, 1927,
1737       440, 1908, 1908, 1908, 1003, 1004, 1907, 1001, 1001, 1001,
1738      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1874, 1909,  439,
1739      1001,  438, 1897,  437,  435, 1001, 1001, 1001, 1003, 1001,
1740      1910, 1910, 1910, 1913, 1913, 1913, 2035, 2035, 2035,  433,
1741      1898, 2035, 2035, 2035, 1921, 1921, 1921, 1911,  431, 2035,
1742      1914, 1001, 1001, 2035, 1903, 1903, 1903,  407, 2035, 1906,
1743
1744      1906, 1906,  685, 1908, 1908, 1908,  406, 1928, 1928, 1928,
1745       404, 1929, 1003, 1912, 1930,  402, 1907, 1910, 1910, 1910,
1746      1909, 1931, 1931, 1931,  396, 1932,  395, 1919, 1933, 1913,
1747      1913, 1913, 1920,  396, 1911,  395, 1935, 1935, 1935,  394,
1748      1936,  393, 1117, 1937, 2035, 2035, 1914, 2035, 2035, 2035,
1749      2035, 2035, 2035, 1921, 1921, 1921, 1925, 1925, 1925, 2035,
1750      1926, 2035, 2035, 1927, 2035, 2035, 2035, 2035, 1928, 1928,
1751      1928,  685, 1929, 2035, 2035, 1930, 1931, 1931, 1931, 2035,
1752      1932, 2035, 2035, 1933, 1935, 1935, 1935, 2035, 1936, 1944,
1753      1942, 1937, 2035, 1943, 2035, 2035, 2035, 2035, 2035, 2035,
1754
1755      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1756      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1757      2035, 2035, 2035, 2035, 2035, 2035, 2035, 1970, 1970, 1970,
1758      2035, 2035, 2035, 2035, 2035, 2035, 1970, 1970, 1970, 2035,
1759      2035, 2035, 2035, 2035, 1971, 2035, 2035, 2035, 2035, 2035,
1760      2035, 1951, 2035, 1971, 1952, 2035, 2035, 1967, 2035, 1979,
1761      1979, 1979, 1959, 1980, 2035, 1960, 1981, 2035, 2035, 2035,
1762      2035, 2035, 2035, 2035, 2035, 1968, 2035, 2035, 1976, 2035,
1763      2035, 1977, 2035, 2035, 2035, 2035, 2035, 2035, 1979, 1979,
1764      1979, 2035, 1980, 2035, 2035, 1981, 2035, 2035, 2035, 2035,
1765
1766      2035, 2035, 1989, 1989, 1989, 2035, 2035, 2035, 2035, 2035,
1767      2035, 2035, 2035, 2035, 2035, 2035, 2035, 1989, 1989, 1989,
1768       685, 1992, 2035, 2035, 1993, 2035, 2035, 1984, 2035, 2035,
1769      1985, 2035, 2035, 2035, 2035,  685, 2035, 2035, 2035, 1987,
1770      2035, 2035, 1988, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1771      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1772      2035, 2006, 2006, 2006, 2035, 2035, 1990, 2035, 1991, 2035,
1773      2035, 2035, 2035, 2035, 2035, 2008, 2008, 2008, 2007, 1994,
1774      2006, 2006, 2006, 2035, 1995, 2035, 2012, 2012, 2012, 2035,
1775      2013, 2035, 2009, 2014, 2035, 2035, 1999, 2007, 2035, 1998,
1776
1777      2035, 2002, 2008, 2008, 2008, 2015, 2015, 2015, 2035, 2016,
1778      2035, 2035, 2017, 2012, 2012, 2012, 2035, 2013, 2035, 2009,
1779      2014, 2003, 2015, 2015, 2015, 2035, 2016, 2035, 2035, 2017,
1780      2033, 2033, 2033, 2033, 2033, 2033, 2035, 2035, 2035, 2035,
1781      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2034, 2035,
1782      2035, 2034,  144,  144,  144,  144,  144,  144,  144,  144,
1783       144,  145,  145,  145,  145,  145,  145,  145,  145,  145,
1784       150,  150,  150,  150,  150,  150,  150,  150,  150,  153,
1785       153,  153,  153,  153,  153,  153,  153,  153,  156,  156,
1786       156,  156,  156,  156,  156,  156,  156,  159,  159,  159,
1787
1788       159,  159,  159,  159,  159,  159,  166,  166,  166,  166,
1789       166,  166,  166,  166,  166,  174,  174,  174,  174,  174,
1790       174,  174,  174,  174,  179,  179,  179,  179,  179,  179,
1791       179,  179,  179,  189,  189,  189,  189,  189,  189,  189,
1792       189,  189,  193,  193,  193,  193,  193,  193,  193,  193,
1793       193,  199,  199,  199,  199,  199,  199,  199,  199,  199,
1794       211,  211,  211,  211,  211,  211,  211,  211,  211,  218,
1795       218,  218,  218,  218,  218,  218,  218,  218,  226,  226,
1796       226,  226,  226,  226,  226,  226,  226,  232,  232,  232,
1797       232,  232,  232,  232,  232,  232,  238,  238,  238,  238,
1798
1799       238,  238,  238,  238,  238,  245,  245,  245,  245,  245,
1800       245,  245,  245,  245,  251,  251,  251,  251,  251,  251,
1801       251,  251,  251,  257,  257,  257,  257,  257,  257,  257,
1802       257,  257,  263,  263,  263,  263,  263,  263,  263,  263,
1803       263,  271,  271,  271,  271,  271,  271,  271,  271,  271,
1804       278,  278,  278,  278,  278,  278,  278,  278,  278,  283,
1805       283,  283,  283,  283,  283,  283,  283,  283,  298,  298,
1806       298,  298,  298,  298,  298,  298,  298,  304,  304,  304,
1807       304,  304,  304,  304,  304,  304,  308,  308,  308,  308,
1808       308,  308,  308,  308,  308,  314,  314,  314,  314,  314,
1809
1810       314,  314,  314,  314,  321,  321,  321,  321,  321,  321,
1811       321,  321,  321,  328,  328,  328,  328,  328,  328,  328,
1812       328,  328,  335,  335,  335,  335,  335,  335,  335,  335,
1813       335,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1814       349,  349,  349,  349,  349,  349,  349,  349,  349,  356,
1815       356,  356,  356,  356,  356,  356,  356,  356,  360,  360,
1816       360,  360,  360,  360,  360,  360,  360,  366,  366,  366,
1817       366,  366,  366,  366,  366,  366,  373,  373,  373,  373,
1818       373,  373,  373,  373,  373,  381,  381,  381,  381,  381,
1819       381,  381,  381,  381,  385,  385,  385,  385,  385,  385,
1820
1821       385,  385,  385,  405,  405,  405, 2035, 2035, 2035,  405,
1822       432,  432,  432, 2035, 2035, 2035,  432,  436,  436,  436,
1823      2035, 2035, 2035,  436,  445,  445,  445, 2035, 2035, 2035,
1824       445,  455,  455,  455, 2035, 2035, 2035,  455,  461,  461,
1825       461, 2035, 2035, 2035,  461,  468,  468,  468, 2035, 2035,
1826      2035,  468,  472,  472,  472, 2035, 2035, 2035,  472,  481,
1827       481,  481, 2035, 2035, 2035,  481,  486,  486,  486, 2035,
1828      2035, 2035,  486,  497,  497,  497, 2035, 2035, 2035,  497,
1829       501,  501,  501, 2035, 2035, 2035,  501,  509,  509,  509,
1830      2035, 2035, 2035,  509,  517,  517,  517, 2035, 2035, 2035,
1831
1832       517,  524,  524,  524, 2035, 2035, 2035,  524,  528,  528,
1833       528, 2035, 2035, 2035,  528,  536,  536,  536, 2035, 2035,
1834      2035,  536,  539,  539,  539,  539,  539,  539,  539, 2035,
1835       539,  555, 2035, 2035, 2035,  555,  583, 2035, 2035, 2035,
1836       583,  591, 2035, 2035, 2035,  591,  601, 2035, 2035, 2035,
1837       601,  607, 2035, 2035, 2035,  607,  614, 2035, 2035, 2035,
1838       614,  617, 2035, 2035, 2035,  617,  626, 2035, 2035, 2035,
1839       626,  631, 2035, 2035, 2035,  631,  486,  486,  486, 2035,
1840      2035, 2035,  486,  643, 2035, 2035, 2035,  643,  497,  497,
1841       497, 2035, 2035, 2035,  497,  647, 2035, 2035, 2035,  647,
1842
1843       501,  501,  501, 2035, 2035, 2035,  501,  655, 2035, 2035,
1844      2035,  655,  509,  509,  509, 2035, 2035, 2035,  509,  662,
1845      2035, 2035, 2035,  662,  517,  517,  517, 2035, 2035, 2035,
1846       517,  668, 2035, 2035, 2035,  668,  524,  524,  524, 2035,
1847      2035, 2035,  524,  672, 2035, 2035, 2035,  672,  528,  528,
1848       528, 2035, 2035, 2035,  528,  678, 2035, 2035, 2035,  678,
1849       536,  536,  536, 2035, 2035, 2035,  536,  682, 2035, 2035,
1850      2035,  682,  684,  684,  684,  684,  684,  684,  684,  684,
1851       684,  690, 2035, 2035, 2035, 2035,  690,  405,  405,  405,
1852      2035, 2035, 2035,  405,  700,  700,  700,  700, 2035, 2035,
1853
1854       700,  700,  432,  432,  432, 2035, 2035, 2035,  432,  730,
1855       730,  730,  730, 2035, 2035,  730,  730,  436,  436,  436,
1856      2035, 2035, 2035,  436,  741,  741,  741,  741, 2035, 2035,
1857       741,  741,  445,  445,  445, 2035, 2035, 2035,  445,  755,
1858       755,  755,  755, 2035, 2035,  755,  755,  455,  455,  455,
1859      2035, 2035, 2035,  455,  763,  763,  763,  763, 2035, 2035,
1860       763,  763,  461,  461,  461, 2035, 2035, 2035,  461,  773,
1861       773,  773,  773, 2035, 2035,  773,  773,  468,  468,  468,
1862      2035, 2035, 2035,  468,  778,  778,  778,  778, 2035, 2035,
1863       778,  778,  472,  472,  472, 2035, 2035, 2035,  472,  790,
1864
1865       790,  790,  790, 2035, 2035,  790,  790,  481,  481,  481,
1866      2035, 2035, 2035,  481,  798,  798,  798,  798, 2035, 2035,
1867       798,  798,  486,  486,  486, 2035, 2035, 2035,  486,  816,
1868       816,  816,  816, 2035, 2035,  816,  816,  823,  823,  823,
1869       823, 2035, 2035,  823,  823,  501,  501,  501, 2035, 2035,
1870      2035,  501,  834,  834,  834,  834, 2035, 2035,  834,  834,
1871       509,  509,  509, 2035, 2035, 2035,  509,  845,  845,  845,
1872       845, 2035, 2035,  845,  845,  517,  517,  517, 2035, 2035,
1873      2035,  517,  855,  855,  855,  855, 2035, 2035,  855,  855,
1874       862,  862,  862,  862, 2035, 2035,  862,  862,  528,  528,
1875
1876       528, 2035, 2035, 2035,  528,  870,  870,  870,  870, 2035,
1877      2035,  870,  870,  536,  536,  536, 2035, 2035, 2035,  536,
1878       876,  876,  876,  876, 2035, 2035,  876,  876,  684,  684,
1879       684,  684,  684,  684,  684,  684,  684,  690, 2035,  690,
1880      2035, 2035,  690,  405,  405,  405, 2035, 2035, 2035,  405,
1881       700,  700,  700,  700, 2035, 2035,  700,  700,  432,  432,
1882       432,  432, 2035,  432, 2035,  432,  730,  730,  730,  730,
1883      2035, 2035,  730,  730,  436,  436,  436,  436, 2035,  436,
1884      2035,  436,  741,  741,  741,  741, 2035, 2035,  741,  741,
1885       445,  445,  445, 2035, 2035, 2035,  445,  755,  755,  755,
1886
1887       755, 2035, 2035,  755,  755,  455,  455,  455, 2035, 2035,
1888      2035,  455,  763,  763,  763,  763, 2035, 2035,  763,  763,
1889       461,  461,  461, 2035, 2035, 2035,  461,  773,  773,  773,
1890       773, 2035, 2035,  773,  773,  468,  468,  468, 2035, 2035,
1891      2035,  468,  778,  778,  778,  778, 2035, 2035,  778,  778,
1892       472,  472,  472, 2035, 2035, 2035,  472,  790,  790,  790,
1893       790, 2035, 2035,  790,  790,  481,  481,  481, 2035, 2035,
1894      2035,  481,  798,  798,  798,  798, 2035, 2035,  798,  798,
1895       486,  486,  486, 2035, 2035, 2035,  486,  816,  816,  816,
1896       816, 2035, 2035,  816,  816,  823,  823,  823,  823, 2035,
1897
1898      2035,  823,  823,  501,  501,  501, 2035, 2035, 2035,  501,
1899       834,  834,  834,  834, 2035, 2035,  834,  834,  509,  509,
1900       509, 2035, 2035, 2035,  509,  845,  845,  845,  845, 2035,
1901      2035,  845,  845,  517,  517,  517, 2035, 2035, 2035,  517,
1902       855,  855,  855,  855, 2035, 2035,  855,  855,  862,  862,
1903       862,  862, 2035, 2035,  862,  862,  528,  528,  528, 2035,
1904      2035, 2035,  528,  870,  870,  870,  870, 2035, 2035,  870,
1905       870,  536,  536,  536, 2035, 2035, 2035,  536,  876,  876,
1906       876,  876, 2035, 2035,  876,  876,  684,  684,  684,  684,
1907       684,  684,  684,  684,  684, 1001, 1001, 1001, 1001, 1001,
1908
1909      1001, 1001, 1001, 1001,  405,  405,  405, 2035, 2035, 2035,
1910       405,  700,  700,  700,  700, 2035, 2035,  700,  700,  730,
1911       730,  730,  730, 2035, 2035,  730,  730,  436,  436,  436,
1912      2035, 2035, 2035,  436,  741,  741,  741,  741, 2035, 2035,
1913       741,  741,  445,  445,  445, 2035, 2035, 2035,  445,  755,
1914       755,  755,  755, 2035, 2035,  755,  755,  455,  455,  455,
1915      2035, 2035, 2035,  455,  763,  763,  763,  763, 2035, 2035,
1916       763,  763,  461,  461,  461, 2035, 2035, 2035,  461,  773,
1917       773,  773,  773, 2035, 2035,  773,  773,  468,  468,  468,
1918      2035, 2035, 2035,  468,  778,  778,  778,  778, 2035, 2035,
1919
1920       778,  778,  472,  472,  472, 2035, 2035, 2035,  472,  790,
1921       790,  790,  790, 2035, 2035,  790,  790,  481,  481,  481,
1922       481, 2035,  481, 2035,  481,  798,  798,  798,  798, 2035,
1923      2035,  798,  798,  486,  486,  486,  486, 2035,  486, 2035,
1924       486,  816,  816,  816,  816, 2035, 2035,  816,  816,  823,
1925       823,  823,  823, 2035, 2035,  823,  823,  501,  501,  501,
1926      2035, 2035, 2035,  501,  834,  834,  834,  834, 2035, 2035,
1927       834,  834,  509,  509,  509, 2035, 2035, 2035,  509,  845,
1928       845,  845,  845, 2035, 2035,  845,  845,  517,  517,  517,
1929      2035, 2035, 2035,  517,  855,  855,  855,  855, 2035, 2035,
1930
1931       855,  855,  862,  862,  862,  862, 2035, 2035,  862,  862,
1932       528,  528,  528, 2035, 2035, 2035,  528,  870,  870,  870,
1933       870, 2035, 2035,  870,  870,  536,  536,  536,  536, 2035,
1934       536, 2035,  536,  876,  876,  876,  876, 2035, 2035,  876,
1935       876,  684,  684,  684,  684,  684,  684,  684,  684,  684,
1936      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,  405,
1937       405,  405, 2035, 2035, 2035,  405,  700,  700,  700,  700,
1938      2035, 2035,  700,  700,  730,  730,  730,  730, 2035, 2035,
1939       730,  730,  436,  436,  436, 2035, 2035, 2035,  436,  741,
1940       741,  741,  741, 2035, 2035,  741,  741,  445,  445,  445,
1941
1942      2035, 2035, 2035,  445,  755,  755,  755,  755, 2035, 2035,
1943       755,  755,  455,  455,  455, 2035, 2035, 2035,  455,  763,
1944       763,  763,  763, 2035, 2035,  763,  763,  461,  461,  461,
1945       461, 2035,  461, 2035,  461,  468,  468,  468,  468, 2035,
1946       468, 2035,  468,  778,  778,  778,  778, 2035, 2035,  778,
1947       778,  472,  472,  472, 2035, 2035, 2035,  472,  790,  790,
1948       790,  790, 2035, 2035,  790,  790,  798,  798,  798,  798,
1949      2035, 2035,  798,  798,  486,  486,  486,  486, 2035,  486,
1950      2035,  486,  816,  816,  816,  816, 2035, 2035,  816,  816,
1951       823,  823,  823,  823, 2035, 2035,  823,  823,  501,  501,
1952
1953       501, 2035, 2035, 2035,  501,  834,  834,  834,  834, 2035,
1954      2035,  834,  834,  509,  509,  509,  509, 2035,  509, 2035,
1955       509,  845,  845,  845,  845, 2035, 2035,  845,  845,  517,
1956       517,  517,  517, 2035,  517, 2035,  517,  855,  855,  855,
1957       855, 2035, 2035,  855,  855,  862,  862,  862,  862, 2035,
1958      2035,  862,  862,  528,  528,  528, 2035, 2035, 2035,  528,
1959       870,  870,  870,  870, 2035, 2035,  870,  870,  876,  876,
1960       876,  876, 2035, 2035,  876,  876,  684,  684,  684,  684,
1961       684,  684,  684,  684,  684, 1001, 1001, 1001, 1001, 1001,
1962      1001, 1001, 1001, 1001,  405,  405,  405,  405, 2035,  405,
1963
1964      2035,  405,  700,  700,  700,  700, 2035, 2035,  700,  700,
1965       730,  730,  730,  730, 2035, 2035,  730,  730,  436,  436,
1966       436, 2035, 2035, 2035,  436,  741,  741,  741,  741, 2035,
1967      2035,  741,  741,  445,  445,  445, 2035, 2035, 2035,  445,
1968       755,  755,  755,  755, 2035, 2035,  755,  755,  455,  455,
1969       455,  455, 2035,  455, 2035,  455,  763,  763,  763,  763,
1970      2035, 2035,  763,  763,  461,  461,  461,  461, 2035,  461,
1971      2035,  461,  778,  778,  778,  778, 2035, 2035,  778,  778,
1972       472,  472,  472, 2035, 2035, 2035,  472, 1830, 1830, 1830,
1973      1830, 1830, 1830, 1830, 1830, 1830, 1831, 1831, 1831, 1831,
1974
1975      1831, 1831, 1831, 1831, 1831, 1869, 1869, 1869, 1869, 1869,
1976      1869, 1869, 1869, 1869, 1872, 1872, 1872, 1872, 1872, 1872,
1977      1872, 1872, 1872, 1900, 1900, 1900, 1900, 1900, 1900, 1900,
1978      1900, 1900, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902,
1979      1902,  143, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1980      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1981      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1982      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1983      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1984      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1985
1986      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
1987      2035
1988     } ;
1989
1990 static yyconst flex_int16_t yy_chk[7212] =
1991     {   0,
1992         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1993         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1994         4,   10,  220,    5,    0,    9,    6,    0,   10,    7,
1995         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1996        13,   13,  221,   14,   14,  149,    8,   17,   17,  148,
1997        13,   15,   15,   14,   15,  152,   15,   16,   16,  415,
1998        16,  149,   16,   18,   18,  415,   15,   19,   19,   19,
1999       220,  152,   16,   20,   20,   20,   23,   23,   23,   24,
2000        24,   24,  267,   19,   25,   25,   25,  333,   17,   20,
2001       221,  267,   23,  426,  333,   24,  146,  146,  146,  426,
2002
2003        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
2004        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2005      1416,   21,   21,   21,   21,   21,   26,   26,   26,   27,
2006        27,   27,  320,   28,   28,   28,   29,   29,   29,   30,
2007        30,   30,   26,  320,  453,   27,  175,   21,   21,   28,
2008       453,  295,   29,  190,  295,   30,  151,  151,  151,  172,
2009       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
2010        21,  183,   21,   22,   22,   22,   22,   22,   22,   22,
2011        22,   22,   22,   22,   22,   22,   22,   22,  273,   22,
2012        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
2013
2014      1000,   33,   33,   33,   34,   34,   34,   35,   35,   35,
2015        31,  416,  200,   32,  170,   22,   22,   33,  212,  183,
2016        34,  183, 1000,   35,  416,   36,   36,   36,  200,  185,
2017       170,  194,  194,  194,  212,  185,  273,  185,   22,  185,
2018        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
2019        37,   37,   37,   37,   37,   37,   37,  292,   37,   37,
2020        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
2021        47,   47,   47,   43,   43,   44,   44,  292,   43,   39,
2022        44, 1159,   40,  216,   37,   37,   47,  216,   43, 1159,
2023        44,  216,   37,   38,   38,   38,   38,   38,   38,   38,
2024
2025        38,   38,   38,   38,   38,   38,   38,   38,  710,   38,
2026        38,   38,   38,   38,   43,  334,   44,   48,   48,   48,
2027       710,   49,   49,   49,   50,   50,   50,  197,  197,  197,
2028       209,  209,  209,   48, 1417,   38,   38,   49,  441,  398,
2029        50,  337,  398,   38,   41,   41,   41,   41,   41,   41,
2030        41,   41,   41,   41,   41,   41,   41,   41,   41,  334,
2031        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
2032        52,  441,   53,   53,   53,   54,   54,   54,  219,  219,
2033       219,   51,  195,  206,   52,  337,   41,   41,   53,  195,
2034       206,   54,  687, 1418,   41, 1419,  687,   41,  195,  206,
2035
2036       224,  224,  224,   41,  233,  233,  233,   41,   42,   42,
2037        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
2038        42,   42,   42,  723,   42,   42,   42,   42,   42,   57,
2039        57,   57,   58,   58,   58,  723,   61,   61,   61,   62,
2040        62,   62,  389,  227,  239,   57,  234,  633,   58, 1117,
2041        42,   42,   61,  234,  758,   62,  633,  389,   42,  227,
2042       239,   42,  234,  236,  236,  236,  758,   42,  246,  246,
2043       246,   42,   45,   45,   45,   45,   45,   45,   45,   45,
2044        45,   45,   45,   45,   45,   45,   45, 1117,   45,   45,
2045        45,   45,   45,   65,   65,   65,   66,   66,   66, 1420,
2046
2047        67,   67,   67,   68,   68,   68,   69,   69,   69,   65,
2048       247,  252,   66, 1163,   45,   45,   67,  247,  351,   68,
2049      1118, 1163,   69,   45, 1421,   45,  247,  252,   45,  249,
2050       249,  249,  255,  323,   45,   46,   46,   46,   46,   46,
2051        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
2052      1118,   46,   46,   46,   46,   46,   70,   70,   70,   73,
2053        73,   73,  351,   74,   74,   74,   75,   75,   75,   76,
2054        76,   76,   70,  255,  264,   73,  255,   46,   46,   74,
2055       279,  323,   75, 1009, 1422,   76,   46, 1424,   46, 1009,
2056       264,   46,  258,  258,  258, 1239,  279,   46,   55,   55,
2057
2058        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
2059        55,   55,   55, 1429,   55,   55,   55,   55,   55,   77,
2060        77,   77,   78,   78,   78, 1431,   79,   79,   79,   80,
2061        80,   80,   83,   83,   83,   77, 1438, 1239,   78, 1302,
2062        55,   55,   79,  290,  305,   80, 1302,   55,   83,  261,
2063       261,  261,   55,  272,  272,  272,  276,  276,  276,  290,
2064       305,   55,   56,   56,   56,   56,   56,   56,   56,   56,
2065        56,   56,   56,   56,   56,   56,   56, 1452,   56,   56,
2066        56,   56,   56,   84,   84,   84,   87,   87,   87, 1453,
2067        88,   88,   88,   91,   91,   91,   92,   92,   92,   84,
2068
2069      1303,  285,   87, 1323,   56,   56,   88, 1303,  285,   91,
2070      1323,   56,   92,  284,  284,  284,   56,  285,  287,  287,
2071       287,  299,  299,  299, 1454,   56,   59,   59,   59,   59,
2072        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2073        59, 1347,   59,   59,   59,   59,   59,   95,   95,   95,
2074        96,   96,   96,  879,   97,   97,   97,   98,   98,   98,
2075        99,   99,   99,   95,  300,  423,   96, 1324,   59,   59,
2076        97,  300,  879,   98, 1324, 1443,   99, 1346,  423,   59,
2077       300,  302,  302,  302, 1347,   59, 1455,   59,   59,   60,
2078        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2079
2080        60,   60,   60,   60, 1443,   60,   60,   60,   60,   60,
2081       100,  100,  100,  101,  101,  101, 1346,  102,  102,  102,
2082       105,  105,  105,  106,  106,  106,  100,  427,  429,  101,
2083       310,   60,   60,  102,  541, 1458,  105,  310, 1464,  106,
2084       427,  429,   60,  309,  309,  309,  310, 1465,   60,  541,
2085        60,   60,   63,   63,   63,   63,   63,   63,   63,   63,
2086        63,   63,   63,   63,   63,   63,   63, 1466,   63,   63,
2087        63,   63,   63,  107,  107,  107,  108,  108,  108, 1467,
2088       109,  109,  109,  110,  110,  110,  111,  111,  111,  107,
2089       315, 1423,  108, 1423,   63,   63,  109,  329, 1468,  110,
2090
2091      1327, 1327,  111,  312,  312,  312,  315,  322,  322,  322,
2092       326,  326,  326,  329,   63,   64,   64,   64,   64,   64,
2093        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2094      1469,   64,   64,   64,   64,   64,  112,  112,  112,  115,
2095       115,  115, 1470,  116,  116,  116,  117,  117,  117,  118,
2096       118,  118,  112, 1328, 1328,  115,  343,   64,   64,  116,
2097       357, 1471,  117, 1333, 1333,  118,  336,  336,  336,  340,
2098       340,  340,  343,  350,  350,  350,  357,   64,   71,   71,
2099        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2100        71,   71,   71, 1472,   71,   71,   71,   71,   71,  119,
2101
2102       119,  119,  120,  120,  120, 1444,  121,  121,  121,  122,
2103       122,  122,  125,  125,  125,  119,  367,  362,  120,  382,
2104        71,   71,  121,   71,  362,  122, 1334, 1334,  125, 1473,
2105      1237,   71,  367,  362,   71,  382, 1237,   71, 1474, 1444,
2106        71,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2107        72,   72,   72,   72,   72,   72, 1478,   72,   72,   72,
2108        72,   72,  126,  126,  126,  129,  129,  129, 1479,  130,
2109       130,  130,  131,  131,  131,  132,  132,  132,  126, 1480,
2110       387,  129, 1481,   72,   72,  130,   72,  387,  131, 1056,
2111      1425,  132, 1425, 1483,   72, 1056,  387,   72, 1056, 1430,
2112
2113        72, 1430, 1056,   72,   81,   81,   81,   81,   81,   81,
2114        81,   81,   81,   81,   81,   81,   81,   81,   81,  375,
2115        81,   81,   81,   81,   81,  133,  133,  133,  134,  134,
2116       134, 1490,  135,  135,  135,  136,  136,  136,  139,  139,
2117       139,  133, 1491, 1057,  134, 1492,   81,   81,  135, 1057,
2118      1493,  136, 1057,  375,  139,  162, 1057,   81,  354,  354,
2119       354,  361,  361,  361,  364,  364,  364,  375, 1495,   81,
2120        82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
2121        82,   82,   82,   82,   82, 1498,   82,   82,   82,   82,
2122        82,  140,  140,  140,  162,  374,  374,  374, 1499, 1500,
2123
2124       162,  379,  379,  379,  162, 1238, 1432,  140, 1432,  162,
2125      1501, 1502,   82,   82,  386,  386,  386,  388,  388,  388,
2126       544,  544,  544,   82,  544,  587,  587,  587, 1503,  587,
2127      1508, 1509,  587, 1238, 1510,   82,   85,   85,   85,   85,
2128        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2129        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2130        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2131        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2132        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2133        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2134
2135        85,   85,   85,   85,   85,   89,   89,   89,   89,   89,
2136        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2137      1511,   89,   89,   89,   89,   89,  397,  397,  397,  438,
2138       438,  438,  447,  447,  447,  462,  462,  462,  474,  474,
2139       474,  713,  713,  713, 1512, 1513,  438,   89,   89,  447,
2140      1534, 1527,  462, 1535, 1536,  474, 1537, 1542,   89,   90,
2141        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2142        90,   90,   90,   90, 1526,   90,   90,   90,   90,   90,
2143      1543,  397,  482,  482,  482, 1527,  488,  488,  488,  489,
2144       489,  489,  498,  498,  498,  721,  721,  721, 1544,  482,
2145
2146      1545,   90,   90,  488, 1546, 1547,  489, 1548, 1549,  498,
2147      1526, 1528,   90,   93,   93,   93,   93,   93,   93,   93,
2148        93,   93,   93,   93,   93,   93,   93,   93, 1550,   93,
2149        93,   93,   93,   93,  503,  503,  503,  525,  525,  525,
2150       555,  555,  555,  556,  556,  556,  583,  583,  583, 1116,
2151      1528,  503, 1551, 1552,  525,   93,   93, 1554,  555,   93,
2152      1555,  556, 1556, 1564,  583, 1116,   93, 1565,   93,  892,
2153       892,  892,  897,  897,  897,   93,   94,   94,   94,   94,
2154        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2155        94, 1566,   94,   94,   94,   94,   94,  556,  584,  584,
2156
2157       584, 1571, 1572,  586,  586,  586,  591,  591,  591,  592,
2158       592,  592, 1573,  595,  595,  595,  584, 1574,   94,   94,
2159       586, 1575,   94, 1576,  591, 1581, 1582,  592, 1583,   94,
2160       595,   94,  900,  900,  900,  904,  904,  904,   94,  103,
2161       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2162       103,  103,  103,  103,  584,  103,  103,  103,  103,  103,
2163       596,  596,  596, 1584,  596, 1585, 1586,  596, 1540,  592,
2164      1607,  597,  597,  597,  599,  599,  599,  601,  601,  601,
2165      1540,  103,  103, 1609,  103, 1541, 1612,  103,  597, 1599,
2166      1578,  599,  610,  610,  610,  601,  610, 1541, 1578,  610,
2167
2168      1613,  103,  104,  104,  104,  104,  104,  104,  104,  104,
2169       104,  104,  104,  104,  104,  104,  104, 1598,  104,  104,
2170       104,  104,  104,  607,  607,  607, 1579, 1599,  608,  608,
2171       608,  609,  609,  609, 1579, 1614,  602,  602,  602, 1615,
2172      1616,  607, 1617, 1598,  104,  104,  608,  104,  609, 1600,
2173       104,  621,  621,  621,  602,  621, 1618, 1619,  621,  908,
2174       908,  908, 1620, 1622,  104,  113,  113,  113,  113,  113,
2175       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2176       602,  113,  113,  113,  113,  113, 1623, 1600,  608, 1624,
2177      1625,  614,  614,  614,  617,  617,  617,  618,  618,  618,
2178
2179      1629,  615,  615,  615,  620,  620,  620,  113,  113,  614,
2180       113, 1630,  617,  113, 1634,  618, 1636, 1640,  113,  615,
2181      1641,  620,  935,  935,  935, 1642, 1643,  113,  114,  114,
2182       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2183       114,  114,  114, 1644,  114,  114,  114,  114,  114,  615,
2184       626,  626,  626, 1645,  618, 1646,  627,  627,  627, 1647,
2185       628,  628,  628, 1648, 1649,  629,  629,  629,  626,  629,
2186       114,  114,  629,  114,  627, 1651,  114,  628,  635,  635,
2187       635,  114,  635, 1652, 1653,  635, 1014, 1014, 1014, 1654,
2188       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2189
2190       123,  123,  123,  123,  123,  123, 1655,  123,  123,  123,
2191       123,  123, 1656,  627,  631,  631,  631,  632,  632,  632,
2192       634,  634,  634,  636,  636,  636,  638,  638,  638, 1016,
2193      1016, 1016,  631,  123,  123,  632, 1669,  634, 1671, 1663,
2194       636, 1662, 1675,  638,  123,  124,  124,  124,  124,  124,
2195       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2196      1676,  124,  124,  124,  124,  124,  637,  637,  637, 1677,
2197       637, 1663, 1678,  637,  643,  643,  643,  632,  644,  644,
2198       644, 1680,  646,  646,  646, 1662,  646,  124,  124,  646,
2199      1681, 1682,  643, 1020, 1020, 1020,  644, 1683,  124,  127,
2200
2201       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2202       127,  127,  127,  127, 1684,  127,  127,  127,  127,  127,
2203       645,  645,  645, 1685, 1686,  647,  647,  647,  648,  648,
2204       648, 1687,  644,  650,  650,  650, 1691,  645,  655,  655,
2205       655,  127,  127,  647, 1692, 1692,  648, 1693, 1694,  127,
2206       650,  127, 1697,  127, 1698, 1699,  655, 1026, 1026, 1026,
2207      1700,  127,  128,  128,  128,  128,  128,  128,  128,  128,
2208       128,  128,  128,  128,  128,  128,  128, 1701,  128,  128,
2209       128,  128,  128, 1702, 1703,  648,  651,  651,  651, 1704,
2210       651, 1705, 1706,  651, 1707,  656,  656,  656,  658,  658,
2211
2212       658,  659,  659,  659,  128,  128,  665,  665,  665, 1027,
2213      1027, 1027,  128,  656,  128,  658,  128, 1709,  659, 1053,
2214      1053, 1053, 1710,  665,  128,  137,  137,  137,  137,  137,
2215       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2216      1711,  137,  137,  137,  137,  137, 1712,  656,  662,  662,
2217       662, 1713,  667,  667,  667,  663,  663,  663,  668,  668,
2218       668,  669,  669,  669, 1714, 1723,  662,  137,  137,  667,
2219       670,  670,  670,  663, 1724, 1717,  668, 1725, 1726,  669,
2220      1729,  671,  671,  671, 1730,  671, 1732,  670,  671, 1733,
2221       137,  138,  138,  138,  138,  138,  138,  138,  138,  138,
2222
2223       138,  138,  138,  138,  138,  138, 1717,  138,  138,  138,
2224       138,  138,  663,  672,  672,  672, 1734, 1736,  669,  673,
2225       673,  673,  678,  678,  678,  679,  679,  679,  682,  682,
2226       682,  672, 1741,  138,  138, 1742, 1743,  673, 1744, 1750,
2227       678, 1751, 1752,  679, 1753, 1754,  682,  683,  683,  683,
2228       699,  699,  699,  728,  728,  728,  138,  181,  700,  700,
2229       700,  894,  894,  894,  181,  683, 1755, 1757,  699, 1759,
2230       728,  673, 1762,  181, 1763,  894,  700,  702,  702,  702,
2231      1764,  729,  729,  729, 1765,  679,  730,  730,  730, 1766,
2232      1767,  732,  732,  732, 1782,  702, 1783, 1774,  181,  729,
2233
2234       181, 1784, 1785,  181,  730,  181,  181,  683,  181,  732,
2235      1789, 1790,  181, 1791,  181,  181,  181,  182,  733,  733,
2236       733,  702, 1792, 1793,  182,  734,  734,  734, 1794,  734,
2237      1796, 1797,  734,  182, 1798,  733, 1774,  732,  737,  737,
2238       737, 1799,  738,  738,  738, 1804,  740,  740,  740,  741,
2239       741,  741,  743,  743,  743,  737, 1805, 1806,  182,  738,
2240       182, 1807, 1808,  182,  740,  182,  182,  741,  182, 1809,
2241       743, 1812,  182, 1813,  182,  182,  182,  745,  745,  745,
2242      1814,  745, 1815, 1816,  745,  748,  748,  748, 1817, 1832,
2243       749,  749,  749, 1834,  749,  737,  743,  749,  750,  750,
2244
2245       750, 1829,  748,  738,  751,  751,  751,  752,  752,  752,
2246      1837,  752, 1829, 1826,  752,  750,  754,  754,  754, 1838,
2247      1840,  751,  755,  755,  755,  757,  757,  757,  760,  760,
2248       760,  762,  762,  762,  754,  763,  763,  763, 1841, 1844,
2249       755, 1845, 1828,  757, 1846,  760,  765,  765,  765,  762,
2250       766,  766,  766,  763,  766, 1826, 1828,  766,  772,  772,
2251       772,  773,  773,  773,  765,  775,  775,  775,  777,  777,
2252       777,  778,  778,  778, 1847, 1854,  772, 1852, 1855,  773,
2253      1857,  757, 1858,  775, 1860, 1861,  777, 1863, 1852,  778,
2254       765,  780,  780,  780,  782,  782,  782, 1853,  782, 1864,
2255
2256      1871,  782,  789,  789,  789,  790,  790,  790, 1853,  780,
2257       792,  792,  792, 1873,  793,  793,  793, 1875,  793, 1876,
2258       789,  793, 1885,  790,  797,  797,  797,  775,  792,  798,
2259       798,  798,  800,  800,  800, 1886,  803,  803,  803, 1887,
2260       803, 1869,  797,  803,  809,  809,  809,  798, 1888, 1868,
2261       800,  780,  806,  806,  806, 1869,  806, 1870, 1870,  806,
2262      1900,  809,  810,  810,  810, 1901,  810, 1902, 1904,  810,
2263      1905,  792,  815,  815,  815,  816,  816,  816,  818,  818,
2264       818,  819,  819,  819, 1872,  819, 1868, 1912,  819,  800,
2265       815, 1915, 1916,  816, 1917, 1872,  818,  822,  822,  822,
2266
2267       823,  823,  823,  825,  825,  825,  827,  827,  827, 1918,
2268       827, 1922, 1934,  827, 1938,  822, 1939, 1940,  823, 1941,
2269      1946,  825,  833,  833,  833,  834,  834,  834,  836,  836,
2270       836,  838,  838,  838, 1944,  839,  839,  839, 1947,  839,
2271       833,  818,  839,  834, 1948, 1949,  836, 1950,  838, 1954,
2272       840,  840,  840,  841,  841,  841, 1944,  841, 1955, 1953,
2273       841,  844,  844,  844, 1956, 1957,  825,  840,  845,  845,
2274       845,  847,  847,  847,  849,  849,  849, 1953, 1958,  844,
2275      1963,  850,  850,  850,  836,  850,  845, 1964,  850,  847,
2276      1965,  849,  852,  852,  852,  853,  853,  853, 1966,  853,
2277
2278      1961, 1972,  853,  854,  854,  854,  855,  855,  855,  852,
2279       857,  857,  857,  858,  858,  858, 1969,  858, 1974, 1961,
2280       858,  854, 1969, 1415,  855,  861,  861,  861,  857,  862,
2281       862,  862, 1992, 1993,  847,  864,  864,  864,  866,  866,
2282       866, 1978, 2022,  861,  869,  869,  869,  862,  870,  870,
2283       870, 2022, 1996,  864, 1978,  866,  872,  872,  872,  875,
2284       875,  875,  869,  876,  876,  876,  870,  878,  878,  878,
2285       880,  880,  880,  857,  872, 1992, 1993,  875,  888,  888,
2286       888,  876,  915,  915,  915,  878, 1996, 1997,  880,  880,
2287      2018,  864,  905,  905,  905, 1404,  888, 2030, 2000,  915,
2288
2289       916,  916,  916, 1403,  916, 2004,  905,  916,  917,  917,
2290       917, 2030, 2001,  872,  918,  918,  918,  878,  919,  919,
2291       919, 1997,  919, 2010, 2018,  919,  917,  923,  923,  923,
2292      2019,  918,  925,  925,  925, 2000,  925, 2004, 2005,  925,
2293       888,  928,  928,  928, 1402,  923,  929,  929,  929, 2001,
2294       929, 2020, 1401,  929,  934,  934,  934, 1400,  928,  930,
2295       930,  930,  917,  930, 2019, 2010,  930,  937,  937,  937,
2296      2005, 2011,  934,  923,  938,  938,  938, 1399,  938, 2021,
2297      2020,  938, 2024, 1398,  937,  939,  939,  939,  940,  940,
2298       940,  944,  944,  944,  946,  946,  946,  950,  950,  950,
2299
2300      2026,  934,  939,  951,  951,  951,  940, 2031, 2021,  944,
2301      2023, 2024,  946, 2011,  950,  952,  952,  952, 2031, 2023,
2302       951,  953,  953,  953, 2025,  954,  954,  954,  955,  955,
2303       955, 2027, 1397,  952,  940,  956,  956,  956,  953,  960,
2304       960,  960,  946,  954, 2026,  955,  951,  957,  957,  957,
2305      2028,  957,  956, 2025,  957, 2029,  960,  961,  961,  961,
2306      1391,  962,  962,  962,  963,  963,  963,  964,  964,  964,
2307       965,  965,  965, 1390,  961, 2027, 1389,  952,  962, 2028,
2308      1388,  963, 1387,  954, 2029,  964, 1386, 1385,  965, 1384,
2309       969,  969,  969,  970,  970,  970, 1383,  956, 1382,  972,
2310
2311       972,  972, 1376,  972, 1371,  962,  972,  969,  975,  975,
2312       975,  970,  975, 1369, 1367,  975, 1363,  979,  979,  979,
2313       980,  980,  980,  961,  992,  992,  992, 1362,  964, 1343,
2314       963,  979,  965,  969, 1341,  982,  982,  982,  980,  982,
2315      1340,  992,  982,  986,  986,  986,  970,  986, 1330, 1325,
2316       986,  989,  989,  989,  990,  990,  990,  993,  993,  993,
2317      1322,  993, 1321, 1318,  993,  996,  996,  996, 1304,  989,
2318      1301, 1300,  990,  998,  998,  998,  999,  999,  999, 1002,
2319      1002, 1002,  980,  996, 1010, 1010, 1010, 1022, 1022, 1022,
2320       998, 1023, 1023, 1023,  999, 1299, 1285, 1002, 1029, 1029,
2321
2322      1029, 1022, 1010, 1284, 1283, 1023, 1282,  990, 1030, 1030,
2323      1030,  996, 1029,  989, 1032, 1032, 1032, 1034, 1034, 1034,
2324      1281, 1280, 1030, 1035, 1035, 1035, 1279, 1002, 1032, 1278,
2325      1277, 1034, 1276, 1010, 1036, 1036, 1036, 1035, 1036,  999,
2326      1272, 1036, 1271, 1002, 1039, 1039, 1039, 1022, 1040, 1040,
2327      1040, 1268, 1040, 1266, 1264, 1040, 1262, 1256, 1029, 1058,
2328      1058, 1058, 1039, 1046, 1046, 1046, 1048, 1048, 1048, 1254,
2329      1048, 1251, 1250, 1048, 1032, 1246, 1058, 1034, 1052, 1052,
2330      1052, 1046, 1055, 1055, 1055, 1240, 1055, 1232, 1230, 1055,
2331      1059, 1059, 1059, 1229, 1059, 1228, 1052, 1059, 1060, 1060,
2332
2333      1060, 1061, 1061, 1061, 1062, 1062, 1062, 1039, 1063, 1063,
2334      1063, 1046, 1064, 1064, 1064, 1221, 1060, 1215, 1061, 1214,
2335      1213, 1062, 1066, 1066, 1066, 1063, 1067, 1067, 1067, 1211,
2336      1064, 1071, 1071, 1071, 1209, 1052, 1072, 1072, 1072, 1066,
2337      1072, 1186, 1185, 1072, 1067, 1184, 1060, 1179, 1071, 1073,
2338      1073, 1073, 1074, 1074, 1074, 1178, 1074, 1177, 1062, 1074,
2339      1076, 1076, 1076, 1077, 1077, 1077, 1073, 1078, 1078, 1078,
2340      1067, 1078, 1164, 1162, 1078, 1079, 1079, 1079, 1076, 1161,
2341      1077, 1080, 1080, 1080, 1081, 1081, 1081, 1160, 1081, 1158,
2342      1157, 1081, 1154, 1079, 1082, 1082, 1082, 1153, 1080, 1083,
2343
2344      1083, 1083, 1084, 1084, 1084, 1151, 1084, 1150, 1149, 1084,
2345      1147, 1082, 1085, 1085, 1085, 1146, 1083, 1086, 1086, 1086,
2346      1087, 1087, 1087, 1088, 1088, 1088, 1089, 1089, 1089, 1085,
2347      1093, 1093, 1093, 1145, 1086, 1143, 1139, 1087, 1094, 1094,
2348      1094, 1088, 1094, 1138, 1089, 1094, 1137, 1093, 1096, 1096,
2349      1096, 1097, 1097, 1097, 1134, 1098, 1098, 1098, 1100, 1100,
2350      1100, 1101, 1101, 1101, 1131, 1130, 1096, 1129, 1097, 1128,
2351      1127, 1086, 1098, 1126, 1089, 1125, 1100, 1120, 1101, 1102,
2352      1102, 1102, 1103, 1103, 1103, 1088, 1112, 1104, 1104, 1104,
2353      1106, 1106, 1106, 1110, 1106, 1109, 1102, 1106, 1105, 1099,
2354
2355      1103, 1104, 1111, 1111, 1111, 1104, 1100, 1113, 1113, 1113,
2356      1114, 1114, 1114, 1095, 1114, 1098, 1092, 1114, 1091, 1090,
2357      1111, 1075, 1102, 1070, 1113, 1115, 1115, 1115, 1069, 1068,
2358      1103, 1121, 1121, 1121, 1122, 1122, 1122, 1123, 1123, 1123,
2359      1124, 1124, 1124, 1115, 1132, 1132, 1132, 1054, 1121, 1051,
2360      1111, 1122, 1047, 1045, 1123, 1133, 1133, 1133, 1124, 1135,
2361      1135, 1135, 1136, 1136, 1136, 1140, 1140, 1140, 1141, 1141,
2362      1141, 1142, 1142, 1142, 1144, 1144, 1144, 1148, 1148, 1148,
2363      1115, 1152, 1152, 1152, 1044, 1043, 1122, 1155, 1155, 1155,
2364      1156, 1156, 1156, 1033, 1123, 1148, 1031, 1124, 1028, 1152,
2365
2366      1025, 1024, 1165, 1165, 1165, 1155, 1165, 1156, 1021, 1165,
2367      1019, 1168, 1168, 1168, 1169, 1169, 1169, 1018, 1017, 1170,
2368      1170, 1170, 1015, 1170, 1148, 1168, 1170, 1013, 1012, 1168,
2369      1011, 1169, 1171, 1171, 1171, 1172, 1172, 1172, 1008, 1173,
2370      1173, 1173, 1155, 1173, 1007, 1004, 1173, 1001,  997, 1171,
2371       995,  994, 1172, 1174, 1174, 1174, 1175, 1175, 1175,  991,
2372      1175,  985,  981, 1175, 1176, 1176, 1176, 1180, 1180, 1180,
2373      1174, 1180,  978,  971, 1180,  968, 1183, 1183, 1183,  967,
2374      1183,  966, 1176, 1183, 1187, 1187, 1187, 1189, 1189, 1189,
2375       949, 1189,  948,  947, 1189, 1192, 1192, 1192,  945, 1194,
2376
2377      1194, 1194, 1187, 1194,  943,  942, 1194, 1197, 1197, 1197,
2378      1176,  941,  936, 1192, 1198, 1198, 1198,  933, 1198,  924,
2379       922, 1198,  921,  920, 1197, 1199, 1199, 1199,  914, 1199,
2380       913,  912, 1199, 1202, 1202, 1202, 1203, 1203, 1203,  911,
2381      1203,  910,  909, 1203, 1204, 1204, 1204, 1205, 1205, 1205,
2382      1202, 1206, 1206, 1206,  907, 1206,  906,  903, 1206,  902,
2383       901, 1204,  899,  898, 1205, 1207, 1207, 1207, 1208, 1208,
2384      1208, 1210, 1210, 1210, 1212, 1212, 1212,  896, 1212,  895,
2385       893, 1212,  891, 1207,  890,  889, 1208,  887, 1210, 1216,
2386      1216, 1216, 1218, 1218, 1218, 1219, 1219, 1219,  886, 1219,
2387
2388       885,  884, 1219, 1220, 1220, 1220,  883, 1216,  874, 1218,
2389      1223, 1223, 1223, 1207, 1210, 1222, 1222, 1222,  873,  868,
2390      1220, 1225, 1225, 1225, 1226, 1226, 1226, 1223, 1208, 1222,
2391      1224, 1224, 1224, 1222, 1224,  867,  865, 1224, 1225, 1227,
2392      1227, 1227, 1226, 1231, 1231, 1231, 1233, 1233, 1233,  851,
2393      1233,  848,  843, 1233,  842, 1220,  837, 1227, 1236, 1236,
2394      1236, 1231, 1241, 1241, 1241, 1242, 1242, 1242,  832, 1242,
2395       831,  830, 1242, 1243, 1243, 1243, 1236,  826, 1225, 1241,
2396      1244, 1244, 1244,  814,  813, 1227,  812, 1245, 1245, 1245,
2397      1243, 1247, 1247, 1247, 1248, 1248, 1248, 1244, 1249, 1249,
2398
2399      1249, 1252, 1252, 1252, 1231, 1245, 1236, 1253, 1253, 1253,
2400      1255, 1255, 1255, 1257, 1257, 1257, 1258, 1258, 1258, 1259,
2401      1259, 1259, 1260, 1260, 1260, 1261, 1261, 1261,  811, 1243,
2402      1263, 1263, 1263, 1265, 1265, 1265, 1267, 1267, 1267, 1269,
2403      1269, 1269,  802, 1244, 1273, 1273, 1273, 1245, 1274, 1274,
2404      1274, 1265,  801, 1267, 1275, 1275, 1275, 1269, 1275,  796,
2405       788, 1275, 1273,  787,  786, 1274, 1286, 1286, 1286, 1287,
2406      1287, 1287,  785, 1287,  781,  776, 1287, 1290, 1290, 1290,
2407       771, 1265,  770,  769, 1286, 1291, 1291, 1291,  761, 1291,
2408       759,  753, 1291,  744, 1290, 1292, 1292, 1292,  739, 1292,
2409
2410       727,  726, 1292, 1295, 1295, 1295,  725, 1295,  724,  722,
2411      1295,  720, 1286, 1298, 1298, 1298, 1305, 1305, 1305,  719,
2412      1305,  718,  717, 1305,  716, 1308, 1308, 1308,  715, 1308,
2413       714, 1298, 1308, 1311, 1311, 1311, 1312, 1312, 1312,  712,
2414      1312,  711,  709, 1312, 1313, 1313, 1313,  708, 1313,  707,
2415      1311, 1313, 1316, 1316, 1316, 1317, 1317, 1317, 1319, 1319,
2416      1319, 1320, 1320, 1320, 1298, 1320,  706,  705, 1320,  704,
2417      1316,  703,  698, 1317,  697, 1319, 1326, 1326, 1326,  696,
2418      1326,  695,  692, 1326, 1329, 1329, 1329, 1331, 1331, 1331,
2419      1332, 1332, 1332,  691, 1332,  690,  688, 1332, 1335, 1335,
2420
2421      1335, 1329, 1336, 1336, 1336, 1331, 1338, 1338, 1338, 1339,
2422      1339, 1339, 1316,  684,  681, 1335, 1342, 1342, 1342,  680,
2423      1336, 1345, 1345, 1345, 1338,  677, 1339, 1344, 1344, 1344,
2424      1329, 1348, 1348, 1348, 1342,  676, 1349, 1349, 1349, 1345,
2425      1349,  675, 1331, 1349,  674, 1344, 1352, 1352, 1352, 1353,
2426      1353, 1353,  666,  664, 1335, 1354, 1354, 1354, 1355, 1355,
2427      1355,  661,  660, 1352,  657,  654, 1353,  653, 1338, 1356,
2428      1356, 1356,  652, 1354, 1357, 1357, 1357, 1342, 1358, 1358,
2429      1358,  649,  642, 1344, 1359, 1359, 1359, 1360, 1360, 1360,
2430      1361, 1361, 1361, 1364, 1364, 1364, 1365, 1365, 1365, 1352,
2431
2432      1366, 1366, 1366, 1368, 1368, 1368, 1370, 1370, 1370,  641,
2433      1354, 1353, 1372, 1372, 1372, 1373, 1373, 1373,  640, 1373,
2434       639,  630, 1373,  625, 1370, 1375, 1375, 1375,  624, 1372,
2435      1377, 1377, 1377, 1379, 1379, 1379,  623, 1379,  622,  619,
2436      1379,  616, 1375, 1392, 1392, 1392,  613,  612, 1377, 1393,
2437      1393, 1393,  611, 1393,  606,  605, 1393, 1396, 1396, 1396,
2438       604, 1392, 1405, 1405, 1405,  603, 1405,  600,  598, 1405,
2439      1408, 1408, 1408,  594,  590, 1396, 1409, 1409, 1409, 1411,
2440      1411, 1411, 1412, 1412, 1412,  589, 1412,  588, 1408, 1412,
2441      1426, 1426, 1426,  585, 1409,  582, 1411, 1427, 1427, 1427,
2442
2443      1392, 1428, 1428, 1428, 1433, 1433, 1433, 1426,  581, 1434,
2444      1434, 1434, 1435, 1435, 1435,  580, 1436, 1436, 1436, 1428,
2445      1436, 1433, 1411, 1436, 1437, 1437, 1437, 1434,  579, 1435,
2446      1439, 1439, 1439, 1440, 1440, 1440, 1441, 1441, 1441,  578,
2447       577, 1437, 1442, 1442, 1442,  576,  575, 1433, 1439, 1445,
2448      1445, 1445,  574,  573, 1441, 1446, 1446, 1446,  572,  571,
2449      1442, 1447, 1447, 1447, 1428, 1434, 1448, 1448, 1448, 1449,
2450      1449, 1449, 1446, 1450, 1450, 1450,  570,  569, 1447, 1451,
2451      1451, 1451,  568,  567, 1448, 1456, 1456, 1456, 1459, 1459,
2452      1459,  566, 1459,  565,  564, 1459,  563,  562, 1441,  561,
2453
2454      1442,  560,  559, 1456, 1462, 1462, 1462,  558,  557, 1447,
2455      1463, 1463, 1463,  554, 1463,  553,  552, 1463, 1475, 1475,
2456      1475, 1462, 1476, 1476, 1476, 1485, 1485, 1485, 1486, 1486,
2457      1486, 1488, 1488, 1488,  550,  549, 1475, 1489, 1489, 1489,
2458      1476, 1489, 1485,  548, 1489,  547, 1486,  546, 1488, 1497,
2459      1497, 1497, 1504, 1504, 1504, 1505, 1505, 1505,  542, 1505,
2460       540,  539, 1505, 1506, 1506, 1506, 1497,  538,  537, 1504,
2461      1507, 1507, 1507,  534, 1475, 1514, 1514, 1514, 1515, 1515,
2462      1515,  533, 1516, 1516, 1516,  532, 1516,  531, 1507, 1516,
2463       530,  529, 1514, 1519, 1519, 1519, 1515, 1520, 1520, 1520,
2464
2465       526, 1520,  522,  521, 1520,  520, 1521, 1521, 1521,  519,
2466      1519, 1522, 1522, 1522, 1524, 1524, 1524, 1525, 1525, 1525,
2467       518,  515, 1514, 1521, 1507, 1529, 1529, 1529,  514, 1522,
2468      1530, 1530, 1530,  513, 1530, 1525, 1514, 1530, 1531, 1531,
2469      1531,  512, 1529, 1532, 1532, 1532, 1538, 1538, 1538, 1539,
2470      1539, 1539,  511, 1539,  510, 1531, 1539, 1553, 1553, 1553,
2471       507, 1532,  506, 1538, 1559, 1559, 1559, 1560, 1560, 1560,
2472       505, 1560,  504,  502, 1560, 1553, 1561, 1561, 1561,  499,
2473      1561, 1559,  495, 1561, 1569, 1569, 1569, 1570, 1570, 1570,
2474       494, 1570,  493,  492, 1570, 1577, 1577, 1577,  491, 1577,
2475
2476       490, 1569, 1577, 1580, 1580, 1580, 1587, 1587, 1587, 1588,
2477      1588, 1588,  487, 1553, 1589, 1589, 1589,  484, 1591, 1591,
2478      1591, 1580, 1591, 1587,  483, 1591, 1588, 1594, 1594, 1594,
2479       479,  478, 1589, 1595, 1595, 1595,  477, 1595,  476,  475,
2480      1595, 1596, 1596, 1596, 1594, 1601, 1601, 1601,  473, 1601,
2481       470,  469, 1601, 1604, 1604, 1604, 1605, 1605, 1605, 1596,
2482      1605,  466,  465, 1605,  464, 1580,  463, 1587,  459, 1588,
2483      1604, 1606, 1606, 1606, 1608, 1608, 1608, 1610, 1610, 1610,
2484      1611, 1611, 1611,  458, 1611,  457,  456, 1611, 1627, 1627,
2485      1627, 1628, 1628, 1628, 1610, 1631, 1631, 1631,  452, 1631,
2486
2487       451,  450, 1631, 1635, 1635, 1635, 1627,  449, 1628, 1637,
2488      1637, 1637,  448, 1637,  446,  443, 1637, 1650, 1650, 1650,
2489      1635, 1657, 1657, 1657, 1658, 1658, 1658, 1668, 1668, 1668,
2490      1664, 1664, 1664,  442, 1628, 1650, 1627,  440, 1657,  439,
2491       437, 1658, 1659, 1659, 1659,  434, 1659, 1664, 1664, 1659,
2492      1665, 1665, 1665,  433, 1665,  430,  428, 1665, 1670, 1670,
2493      1670, 1672, 1672, 1672,  425, 1672,  424,  422, 1672, 1650,
2494      1658, 1679, 1679, 1679, 1688, 1688, 1688, 1689, 1689, 1689,
2495      1690, 1690, 1690, 1657, 1690,  421,  420, 1690, 1679, 1695,
2496      1695, 1695, 1688,  419, 1689, 1696, 1696, 1696,  418, 1696,
2497
2498       417,  414, 1696, 1708, 1708, 1708, 1695, 1715, 1715, 1715,
2499      1716, 1716, 1716, 1718, 1718, 1718, 1719, 1719, 1719,  413,
2500      1688, 1708,  412,  411, 1715,  410,  409, 1716,  408,  407,
2501      1718, 1718,  406, 1719, 1719,  403, 1720, 1720, 1720,  402,
2502      1720,  401,  400, 1720, 1721, 1721, 1721, 1722, 1722, 1722,
2503      1715,  399,  393, 1716, 1720, 1727, 1727, 1727, 1728, 1728,
2504      1728,  392, 1728,  390,  384, 1728, 1737, 1737, 1737, 1738,
2505      1738, 1738, 1727, 1738,  380,  377, 1738, 1745, 1745, 1745,
2506       376, 1746, 1746, 1746, 1737, 1746,  372,  371, 1746, 1749,
2507      1749, 1749,  370,  369, 1745, 1760, 1760, 1760, 1768, 1768,
2508
2509      1768, 1769, 1769, 1769,  365, 1769, 1749,  359, 1769, 1770,
2510      1770, 1770,  355, 1760,  352, 1768, 1771, 1771, 1771,  348,
2511      1772, 1772, 1772,  347, 1772,  346, 1770, 1772, 1737, 1773,
2512      1773, 1773,  345, 1771, 1775, 1775, 1775, 1776, 1776, 1776,
2513       341, 1776,  338,  332, 1776,  331, 1773, 1780, 1780, 1780,
2514       327, 1775, 1775,  324,  319, 1776,  318, 1777, 1777, 1777,
2515       317, 1777,  313,  307, 1777, 1781, 1781, 1781,  303, 1786,
2516      1786, 1786,  297, 1786, 1770, 1777, 1786, 1801, 1801, 1801,
2517       296, 1801,  294,  293, 1801,  288, 1795, 1795, 1795,  282,
2518      1800, 1800, 1800,  281, 1773, 1778, 1778, 1778, 1778, 1778,
2519
2520      1778, 1778, 1778, 1778, 1795,  277, 1778, 1800, 1802, 1802,
2521      1802, 1778, 1778, 1778, 1778, 1778, 1803, 1803, 1803,  274,
2522      1803,  270,  269, 1803,  268, 1802, 1818, 1818, 1818,  266,
2523      1818,  262,  259, 1818, 1821, 1821, 1821, 1778, 1778, 1779,
2524      1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,  256,  254,
2525      1779, 1821, 1825, 1825, 1825, 1779, 1779, 1779, 1779, 1779,
2526      1822, 1822, 1822,  250, 1822,  244,  243, 1822,  242, 1825,
2527      1827, 1827, 1827,  241, 1827,  237,  231, 1827, 1842, 1842,
2528      1842, 1779, 1779, 1848, 1848, 1848, 1821, 1848, 1827,  230,
2529      1848, 1851, 1851, 1851,  229, 1851, 1842,  225, 1851,  222,
2530
2531      1866, 1866, 1866,  217, 1825, 1830, 1830, 1830, 1830, 1830,
2532      1830, 1830, 1830, 1830,  215,  214, 1830, 1866, 1867, 1867,
2533      1867, 1830, 1830, 1830, 1830, 1830, 1874, 1874, 1874, 1881,
2534      1881, 1881, 1907, 1907, 1907, 1867, 1907,  210,  207, 1907,
2535       205, 1882, 1882, 1882, 1874, 1874, 1881, 1830, 1830, 1831,
2536      1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1882,  204,
2537      1831,  203, 1866,  202,  198, 1831, 1831, 1831, 1831, 1831,
2538      1883, 1883, 1883, 1884, 1884, 1884, 1897, 1897, 1897,  192,
2539      1867, 1898, 1898, 1898, 1899, 1899, 1899, 1883,  188,  184,
2540      1884, 1831, 1831, 1897, 1903, 1903, 1903,  178, 1898, 1906,
2541
2542      1906, 1906, 1899, 1908, 1908, 1908,  177, 1909, 1909, 1909,
2543       173, 1909, 1903, 1883, 1909,  169, 1906, 1910, 1910, 1910,
2544      1908, 1911, 1911, 1911,  168, 1911,  167, 1897, 1911, 1913,
2545      1913, 1913, 1898,  161, 1910,  160, 1914, 1914, 1914,  158,
2546      1914,  155, 1903, 1914,  143,    0, 1913, 1919, 1919, 1919,
2547      1920, 1920, 1920, 1921, 1921, 1921, 1925, 1925, 1925,    0,
2548      1925,    0,    0, 1925, 1919,    0,    0, 1920, 1928, 1928,
2549      1928, 1921, 1928,    0,    0, 1928, 1931, 1931, 1931,    0,
2550      1931,    0,    0, 1931, 1935, 1935, 1935,    0, 1935, 1921,
2551      1919, 1935,    0, 1920, 1942, 1942, 1942, 1943, 1943, 1943,
2552
2553      1951, 1951, 1951, 1952, 1952, 1952, 1959, 1959, 1959,    0,
2554         0, 1942,    0,    0, 1943,    0,    0, 1951,    0,    0,
2555      1952,    0,    0, 1959, 1960, 1960, 1960, 1962, 1962, 1962,
2556      1967, 1967, 1967, 1968, 1968, 1968, 1970, 1970, 1970,    0,
2557         0, 1960,    0,    0, 1962,    0,    0, 1967,    0,    0,
2558      1968, 1942,    0, 1970, 1943,    0,    0, 1959,    0, 1971,
2559      1971, 1971, 1951, 1971,    0, 1952, 1971, 1976, 1976, 1976,
2560      1977, 1977, 1977,    0,    0, 1960,    0,    0, 1967,    0,
2561         0, 1968,    0,    0, 1976,    0,    0, 1977, 1979, 1979,
2562      1979,    0, 1979,    0,    0, 1979, 1984, 1984, 1984, 1985,
2563
2564      1985, 1985, 1986, 1986, 1986, 1987, 1987, 1987, 1988, 1988,
2565      1988,    0,    0, 1984,    0,    0, 1985, 1989, 1989, 1989,
2566      1986, 1989, 1987,    0, 1989, 1988,    0, 1976,    0,    0,
2567      1977, 1990, 1990, 1990,    0, 1989, 1991, 1991, 1991, 1984,
2568         0,    0, 1985, 1994, 1994, 1994,    0,    0, 1990,    0,
2569      1995, 1995, 1995, 1991, 1998, 1998, 1998, 1999, 1999, 1999,
2570      1994, 2002, 2002, 2002,    0,    0, 1987, 1995, 1988,    0,
2571         0, 1998,    0,    0, 1999, 2003, 2003, 2003, 2002, 1990,
2572      2006, 2006, 2006,    0, 1991,    0, 2007, 2007, 2007,    0,
2573      2007,    0, 2003, 2007,    0,    0, 1995, 2006,    0, 1994,
2574
2575         0, 1998, 2008, 2008, 2008, 2009, 2009, 2009,    0, 2009,
2576         0,    0, 2009, 2012, 2012, 2012,    0, 2012,    0, 2008,
2577      2012, 1999, 2015, 2015, 2015,    0, 2015,    0,    0, 2015,
2578      2032, 2032, 2032, 2033, 2033, 2033,    0,    0,    0,    0,
2579         0,    0,    0,    0,    0,    0,    0,    0, 2032,    0,
2580         0, 2033, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
2581      2036, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037,
2582      2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2039,
2583      2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2040, 2040,
2584      2040, 2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041,
2585
2586      2041, 2041, 2041, 2041, 2041, 2041, 2042, 2042, 2042, 2042,
2587      2042, 2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2043,
2588      2043, 2043, 2043, 2043, 2044, 2044, 2044, 2044, 2044, 2044,
2589      2044, 2044, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
2590      2045, 2045, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2591      2046, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2592      2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049,
2593      2049, 2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050,
2594      2050, 2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051,
2595      2051, 2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052,
2596
2597      2052, 2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053,
2598      2053, 2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054,
2599      2054, 2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2600      2055, 2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2601      2056, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057,
2602      2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059,
2603      2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060,
2604      2060, 2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061,
2605      2061, 2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062, 2062,
2606      2062, 2062, 2062, 2062, 2062, 2063, 2063, 2063, 2063, 2063,
2607
2608      2063, 2063, 2063, 2063, 2064, 2064, 2064, 2064, 2064, 2064,
2609      2064, 2064, 2064, 2065, 2065, 2065, 2065, 2065, 2065, 2065,
2610      2065, 2065, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
2611      2066, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
2612      2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2069,
2613      2069, 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2070, 2070,
2614      2070, 2070, 2070, 2070, 2070, 2070, 2070, 2071, 2071, 2071,
2615      2071, 2071, 2071, 2071, 2071, 2071, 2072, 2072, 2072, 2072,
2616      2072, 2072, 2072, 2072, 2072, 2073, 2073, 2073, 2073, 2073,
2617      2073, 2073, 2073, 2073, 2074, 2074, 2074, 2074, 2074, 2074,
2618
2619      2074, 2074, 2074, 2075, 2075, 2075,    0,    0,    0, 2075,
2620      2076, 2076, 2076,    0,    0,    0, 2076, 2077, 2077, 2077,
2621         0,    0,    0, 2077, 2078, 2078, 2078,    0,    0,    0,
2622      2078, 2079, 2079, 2079,    0,    0,    0, 2079, 2080, 2080,
2623      2080,    0,    0,    0, 2080, 2081, 2081, 2081,    0,    0,
2624         0, 2081, 2082, 2082, 2082,    0,    0,    0, 2082, 2083,
2625      2083, 2083,    0,    0,    0, 2083, 2084, 2084, 2084,    0,
2626         0,    0, 2084, 2085, 2085, 2085,    0,    0,    0, 2085,
2627      2086, 2086, 2086,    0,    0,    0, 2086, 2087, 2087, 2087,
2628         0,    0,    0, 2087, 2088, 2088, 2088,    0,    0,    0,
2629
2630      2088, 2089, 2089, 2089,    0,    0,    0, 2089, 2090, 2090,
2631      2090,    0,    0,    0, 2090, 2091, 2091, 2091,    0,    0,
2632         0, 2091, 2092, 2092, 2092, 2092, 2092, 2092, 2092,    0,
2633      2092, 2093,    0,    0,    0, 2093, 2094,    0,    0,    0,
2634      2094, 2095,    0,    0,    0, 2095, 2096,    0,    0,    0,
2635      2096, 2097,    0,    0,    0, 2097, 2098,    0,    0,    0,
2636      2098, 2099,    0,    0,    0, 2099, 2100,    0,    0,    0,
2637      2100, 2101,    0,    0,    0, 2101, 2102, 2102, 2102,    0,
2638         0,    0, 2102, 2103,    0,    0,    0, 2103, 2104, 2104,
2639      2104,    0,    0,    0, 2104, 2105,    0,    0,    0, 2105,
2640
2641      2106, 2106, 2106,    0,    0,    0, 2106, 2107,    0,    0,
2642         0, 2107, 2108, 2108, 2108,    0,    0,    0, 2108, 2109,
2643         0,    0,    0, 2109, 2110, 2110, 2110,    0,    0,    0,
2644      2110, 2111,    0,    0,    0, 2111, 2112, 2112, 2112,    0,
2645         0,    0, 2112, 2113,    0,    0,    0, 2113, 2114, 2114,
2646      2114,    0,    0,    0, 2114, 2115,    0,    0,    0, 2115,
2647      2116, 2116, 2116,    0,    0,    0, 2116, 2117,    0,    0,
2648         0, 2117, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118,
2649      2118, 2119,    0,    0,    0,    0, 2119, 2120, 2120, 2120,
2650         0,    0,    0, 2120, 2121, 2121, 2121, 2121,    0,    0,
2651
2652      2121, 2121, 2122, 2122, 2122,    0,    0,    0, 2122, 2123,
2653      2123, 2123, 2123,    0,    0, 2123, 2123, 2124, 2124, 2124,
2654         0,    0,    0, 2124, 2125, 2125, 2125, 2125,    0,    0,
2655      2125, 2125, 2126, 2126, 2126,    0,    0,    0, 2126, 2127,
2656      2127, 2127, 2127,    0,    0, 2127, 2127, 2128, 2128, 2128,
2657         0,    0,    0, 2128, 2129, 2129, 2129, 2129,    0,    0,
2658      2129, 2129, 2130, 2130, 2130,    0,    0,    0, 2130, 2131,
2659      2131, 2131, 2131,    0,    0, 2131, 2131, 2132, 2132, 2132,
2660         0,    0,    0, 2132, 2133, 2133, 2133, 2133,    0,    0,
2661      2133, 2133, 2134, 2134, 2134,    0,    0,    0, 2134, 2135,
2662
2663      2135, 2135, 2135,    0,    0, 2135, 2135, 2136, 2136, 2136,
2664         0,    0,    0, 2136, 2137, 2137, 2137, 2137,    0,    0,
2665      2137, 2137, 2138, 2138, 2138,    0,    0,    0, 2138, 2139,
2666      2139, 2139, 2139,    0,    0, 2139, 2139, 2140, 2140, 2140,
2667      2140,    0,    0, 2140, 2140, 2141, 2141, 2141,    0,    0,
2668         0, 2141, 2142, 2142, 2142, 2142,    0,    0, 2142, 2142,
2669      2143, 2143, 2143,    0,    0,    0, 2143, 2144, 2144, 2144,
2670      2144,    0,    0, 2144, 2144, 2145, 2145, 2145,    0,    0,
2671         0, 2145, 2146, 2146, 2146, 2146,    0,    0, 2146, 2146,
2672      2147, 2147, 2147, 2147,    0,    0, 2147, 2147, 2148, 2148,
2673
2674      2148,    0,    0,    0, 2148, 2149, 2149, 2149, 2149,    0,
2675         0, 2149, 2149, 2150, 2150, 2150,    0,    0,    0, 2150,
2676      2151, 2151, 2151, 2151,    0,    0, 2151, 2151, 2152, 2152,
2677      2152, 2152, 2152, 2152, 2152, 2152, 2152, 2153,    0, 2153,
2678         0,    0, 2153, 2154, 2154, 2154,    0,    0,    0, 2154,
2679      2155, 2155, 2155, 2155,    0,    0, 2155, 2155, 2156, 2156,
2680      2156, 2156,    0, 2156,    0, 2156, 2157, 2157, 2157, 2157,
2681         0,    0, 2157, 2157, 2158, 2158, 2158, 2158,    0, 2158,
2682         0, 2158, 2159, 2159, 2159, 2159,    0,    0, 2159, 2159,
2683      2160, 2160, 2160,    0,    0,    0, 2160, 2161, 2161, 2161,
2684
2685      2161,    0,    0, 2161, 2161, 2162, 2162, 2162,    0,    0,
2686         0, 2162, 2163, 2163, 2163, 2163,    0,    0, 2163, 2163,
2687      2164, 2164, 2164,    0,    0,    0, 2164, 2165, 2165, 2165,
2688      2165,    0,    0, 2165, 2165, 2166, 2166, 2166,    0,    0,
2689         0, 2166, 2167, 2167, 2167, 2167,    0,    0, 2167, 2167,
2690      2168, 2168, 2168,    0,    0,    0, 2168, 2169, 2169, 2169,
2691      2169,    0,    0, 2169, 2169, 2170, 2170, 2170,    0,    0,
2692         0, 2170, 2171, 2171, 2171, 2171,    0,    0, 2171, 2171,
2693      2172, 2172, 2172,    0,    0,    0, 2172, 2173, 2173, 2173,
2694      2173,    0,    0, 2173, 2173, 2174, 2174, 2174, 2174,    0,
2695
2696         0, 2174, 2174, 2175, 2175, 2175,    0,    0,    0, 2175,
2697      2176, 2176, 2176, 2176,    0,    0, 2176, 2176, 2177, 2177,
2698      2177,    0,    0,    0, 2177, 2178, 2178, 2178, 2178,    0,
2699         0, 2178, 2178, 2179, 2179, 2179,    0,    0,    0, 2179,
2700      2180, 2180, 2180, 2180,    0,    0, 2180, 2180, 2181, 2181,
2701      2181, 2181,    0,    0, 2181, 2181, 2182, 2182, 2182,    0,
2702         0,    0, 2182, 2183, 2183, 2183, 2183,    0,    0, 2183,
2703      2183, 2184, 2184, 2184,    0,    0,    0, 2184, 2185, 2185,
2704      2185, 2185,    0,    0, 2185, 2185, 2186, 2186, 2186, 2186,
2705      2186, 2186, 2186, 2186, 2186, 2187, 2187, 2187, 2187, 2187,
2706
2707      2187, 2187, 2187, 2187, 2188, 2188, 2188,    0,    0,    0,
2708      2188, 2189, 2189, 2189, 2189,    0,    0, 2189, 2189, 2190,
2709      2190, 2190, 2190,    0,    0, 2190, 2190, 2191, 2191, 2191,
2710         0,    0,    0, 2191, 2192, 2192, 2192, 2192,    0,    0,
2711      2192, 2192, 2193, 2193, 2193,    0,    0,    0, 2193, 2194,
2712      2194, 2194, 2194,    0,    0, 2194, 2194, 2195, 2195, 2195,
2713         0,    0,    0, 2195, 2196, 2196, 2196, 2196,    0,    0,
2714      2196, 2196, 2197, 2197, 2197,    0,    0,    0, 2197, 2198,
2715      2198, 2198, 2198,    0,    0, 2198, 2198, 2199, 2199, 2199,
2716         0,    0,    0, 2199, 2200, 2200, 2200, 2200,    0,    0,
2717
2718      2200, 2200, 2201, 2201, 2201,    0,    0,    0, 2201, 2202,
2719      2202, 2202, 2202,    0,    0, 2202, 2202, 2203, 2203, 2203,
2720      2203,    0, 2203,    0, 2203, 2204, 2204, 2204, 2204,    0,
2721         0, 2204, 2204, 2205, 2205, 2205, 2205,    0, 2205,    0,
2722      2205, 2206, 2206, 2206, 2206,    0,    0, 2206, 2206, 2207,
2723      2207, 2207, 2207,    0,    0, 2207, 2207, 2208, 2208, 2208,
2724         0,    0,    0, 2208, 2209, 2209, 2209, 2209,    0,    0,
2725      2209, 2209, 2210, 2210, 2210,    0,    0,    0, 2210, 2211,
2726      2211, 2211, 2211,    0,    0, 2211, 2211, 2212, 2212, 2212,
2727         0,    0,    0, 2212, 2213, 2213, 2213, 2213,    0,    0,
2728
2729      2213, 2213, 2214, 2214, 2214, 2214,    0,    0, 2214, 2214,
2730      2215, 2215, 2215,    0,    0,    0, 2215, 2216, 2216, 2216,
2731      2216,    0,    0, 2216, 2216, 2217, 2217, 2217, 2217,    0,
2732      2217,    0, 2217, 2218, 2218, 2218, 2218,    0,    0, 2218,
2733      2218, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
2734      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2221,
2735      2221, 2221,    0,    0,    0, 2221, 2222, 2222, 2222, 2222,
2736         0,    0, 2222, 2222, 2223, 2223, 2223, 2223,    0,    0,
2737      2223, 2223, 2224, 2224, 2224,    0,    0,    0, 2224, 2225,
2738      2225, 2225, 2225,    0,    0, 2225, 2225, 2226, 2226, 2226,
2739
2740         0,    0,    0, 2226, 2227, 2227, 2227, 2227,    0,    0,
2741      2227, 2227, 2228, 2228, 2228,    0,    0,    0, 2228, 2229,
2742      2229, 2229, 2229,    0,    0, 2229, 2229, 2230, 2230, 2230,
2743      2230,    0, 2230,    0, 2230, 2231, 2231, 2231, 2231,    0,
2744      2231,    0, 2231, 2232, 2232, 2232, 2232,    0,    0, 2232,
2745      2232, 2233, 2233, 2233,    0,    0,    0, 2233, 2234, 2234,
2746      2234, 2234,    0,    0, 2234, 2234, 2235, 2235, 2235, 2235,
2747         0,    0, 2235, 2235, 2236, 2236, 2236, 2236,    0, 2236,
2748         0, 2236, 2237, 2237, 2237, 2237,    0,    0, 2237, 2237,
2749      2238, 2238, 2238, 2238,    0,    0, 2238, 2238, 2239, 2239,
2750
2751      2239,    0,    0,    0, 2239, 2240, 2240, 2240, 2240,    0,
2752         0, 2240, 2240, 2241, 2241, 2241, 2241,    0, 2241,    0,
2753      2241, 2242, 2242, 2242, 2242,    0,    0, 2242, 2242, 2243,
2754      2243, 2243, 2243,    0, 2243,    0, 2243, 2244, 2244, 2244,
2755      2244,    0,    0, 2244, 2244, 2245, 2245, 2245, 2245,    0,
2756         0, 2245, 2245, 2246, 2246, 2246,    0,    0,    0, 2246,
2757      2247, 2247, 2247, 2247,    0,    0, 2247, 2247, 2248, 2248,
2758      2248, 2248,    0,    0, 2248, 2248, 2249, 2249, 2249, 2249,
2759      2249, 2249, 2249, 2249, 2249, 2250, 2250, 2250, 2250, 2250,
2760      2250, 2250, 2250, 2250, 2251, 2251, 2251, 2251,    0, 2251,
2761
2762         0, 2251, 2252, 2252, 2252, 2252,    0,    0, 2252, 2252,
2763      2253, 2253, 2253, 2253,    0,    0, 2253, 2253, 2254, 2254,
2764      2254,    0,    0,    0, 2254, 2255, 2255, 2255, 2255,    0,
2765         0, 2255, 2255, 2256, 2256, 2256,    0,    0,    0, 2256,
2766      2257, 2257, 2257, 2257,    0,    0, 2257, 2257, 2258, 2258,
2767      2258, 2258,    0, 2258,    0, 2258, 2259, 2259, 2259, 2259,
2768         0,    0, 2259, 2259, 2260, 2260, 2260, 2260,    0, 2260,
2769         0, 2260, 2261, 2261, 2261, 2261,    0,    0, 2261, 2261,
2770      2262, 2262, 2262,    0,    0,    0, 2262, 2263, 2263, 2263,
2771      2263, 2263, 2263, 2263, 2263, 2263, 2264, 2264, 2264, 2264,
2772
2773      2264, 2264, 2264, 2264, 2264, 2265, 2265, 2265, 2265, 2265,
2774      2265, 2265, 2265, 2265, 2266, 2266, 2266, 2266, 2266, 2266,
2775      2266, 2266, 2266, 2267, 2267, 2267, 2267, 2267, 2267, 2267,
2776      2267, 2267, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268,
2777      2268, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2778      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2779      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2780      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2781      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2782      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2783
2784      2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2785      2035
2786     } ;
2787
2788 /* Table of booleans, true if rule could match eol. */
2789 static yyconst flex_int32_t yy_rule_can_match_eol[354] =
2790     {   0,
2791 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2792     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2793     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 
2794     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2795     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2796     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2797     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
2800     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2801     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
2802     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2803     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
2804     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2805     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
2806     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2807     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2808     1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2809
2810 static yy_state_type yy_last_accepting_state;
2811 static char *yy_last_accepting_cpos;
2812
2813 extern int surf_parse__flex_debug;
2814 int surf_parse__flex_debug = 0;
2815
2816 /* The intent behind this definition is that it'll catch
2817  * any uses of REJECT which flex missed.
2818  */
2819 #define REJECT reject_used_but_not_detected
2820 #define yymore() yymore_used_but_not_detected
2821 #define YY_MORE_ADJ 0
2822 #define YY_RESTORE_YY_MORE_OFFSET
2823 char *surf_parse_text;
2824 /* Validating XML processor for surf/simgrid.dtd.
2825  * Generated 2009/08/26 17:00:32.
2826  *
2827  * This program was generated with the FleXML XML processor generator.
2828  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2829  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2830  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
2831  * 
2832  * There are two, intertwined parts to this program, part A and part B.
2833  *
2834  * Part A
2835  * ------
2836  * 
2837  * Some parts, here collectively called "Part A", are found in the 
2838  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2839  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2840  *
2841  * You can redistribute, use, perform, display and/or modify "Part A"
2842  * provided the following two conditions hold:
2843  *
2844  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2845  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2846  *    FITNESS FOR A PARTICULAR PURPOSE.
2847  *
2848  * 2. The program distribution conditions do not in any way affect the
2849  *    distribution conditions of the FleXML system used to generate this
2850  *    file or any version of FleXML derived from that system.
2851  *
2852  * Notice that these are explicit rights granted to you for files
2853  * generated by the FleXML system.  For your rights in connection with
2854  * the FleXML system itself please consult the GNU General Public License.
2855  * 
2856  * Part B
2857  * ------
2858  * 
2859  * The other parts, here collectively called "Part B", and which came 
2860  * from the DTD used by FleXML to generate this program, can be 
2861  * distributed (or not, as the case may be) under the terms of whoever
2862  * wrote them, provided these terms respect and obey the two conditions 
2863  * above under the heading "Part A".
2864  *
2865  * The author of and contributors to FleXML specifically disclaim
2866  * any copyright interest in "Part B", unless "Part B" was written 
2867  * by the author of or contributors to FleXML.
2868  * 
2869  */
2870
2871 /* Version strings. */
2872 const char rcs_surfxml_flexml_skeleton[] =
2873  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2874 const char rcs_surfxml_flexml[] =
2875  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
2876
2877 /* ANSI headers. */
2878 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2879 #include <stdio.h>
2880 #include <string.h>
2881 #include <assert.h>
2882 #include <stdarg.h>
2883 #include <ctype.h>
2884      
2885 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2886 # ifndef __STRICT_ANSI__
2887 #  include <io.h>
2888 #  include <process.h>
2889 # endif
2890 #else
2891 # include <unistd.h>
2892 #endif
2893      
2894 #ifndef FLEXML_INDEXSTACKSIZE
2895 #define FLEXML_INDEXSTACKSIZE 1000
2896 #endif
2897
2898 /* Generated definitions. */
2899 #define FLEXML_yylineno
2900 #ifndef FLEXML_BUFFERSTACKSIZE
2901 #define FLEXML_BUFFERSTACKSIZE 1000000
2902 #endif
2903 #define FLEXML_NEED_BUFFERLIT
2904
2905 /* XML processor api. */
2906 /* FleXML-provided data. */
2907 int surfxml_pcdata_ix;
2908 extern char *surfxml_bufferstack;
2909 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2910 AT_surfxml_random_generator AX_surfxml_random_generator;
2911 #define A_surfxml_random_generator AX_surfxml_random_generator
2912 AT_surfxml_prop_id AX_surfxml_prop_id;
2913 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2914 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2915 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2916 AT_surfxml_host_id AX_surfxml_host_id;
2917 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2918 AT_surfxml_set_id AX_surfxml_set_id;
2919 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2920 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2921 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2922 AT_surfxml_host_state AX_surfxml_host_state;
2923 #define A_surfxml_host_state AX_surfxml_host_state
2924 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2925 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2926 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2927 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2928 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2929 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2930 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2931 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2932 AT_surfxml_host_power AX_surfxml_host_power;
2933 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2934 AT_surfxml_router_id AX_surfxml_router_id;
2935 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2936 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2937 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2938 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2939 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2940 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2941 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2942 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2943 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2944 AT_surfxml_trace_file AX_surfxml_trace_file;
2945 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2946 AT_surfxml_route_action AX_surfxml_route_action;
2947 #define A_surfxml_route_action AX_surfxml_route_action
2948 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2949 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2950 AT_surfxml_random_min AX_surfxml_random_min;
2951 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2952 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2953 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2954 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2955 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2956 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2957 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2958 AT_surfxml_argument_value AX_surfxml_argument_value;
2959 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2960 AT_surfxml_link_state AX_surfxml_link_state;
2961 #define A_surfxml_link_state AX_surfxml_link_state
2962 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2963 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2964 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2965 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2966 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2967 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2968 AT_surfxml_random_mean AX_surfxml_random_mean;
2969 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2970 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2971 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2972 AT_surfxml_link_latency AX_surfxml_link_latency;
2973 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2974 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2975 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2976 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2977 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2978 AT_surfxml_random_id AX_surfxml_random_id;
2979 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2980 AT_surfxml_set_radical AX_surfxml_set_radical;
2981 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2982 AT_surfxml_random_max AX_surfxml_random_max;
2983 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2984 AT_surfxml_link_id AX_surfxml_link_id;
2985 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2986 AT_surfxml_process_host AX_surfxml_process_host;
2987 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2988 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2989 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2990 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2991 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2992 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2993 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2994 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2995 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2996 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2997 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2998 AT_surfxml_prop_value AX_surfxml_prop_value;
2999 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3000 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
3001 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
3002 AT_surfxml_trace_timestep AX_surfxml_trace_timestep;
3003 #define A_surfxml_trace_timestep (surfxml_bufferstack + AX_surfxml_trace_timestep)
3004 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3005 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3006 AT_surfxml_set_prefix AX_surfxml_set_prefix;
3007 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
3008 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3009 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3010 AT_surfxml_process_function AX_surfxml_process_function;
3011 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3012 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
3013 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
3014 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
3015 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
3016 AT_surfxml_host_availability AX_surfxml_host_availability;
3017 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3018 AT_surfxml_route_src AX_surfxml_route_src;
3019 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3020 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
3021 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
3022 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
3023 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
3024 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
3025 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
3026 AT_surfxml_trace_id AX_surfxml_trace_id;
3027 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3028 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3029 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3030 AT_surfxml_include_file AX_surfxml_include_file;
3031 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3032 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3033 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3034 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3035 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3036 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3037 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3038 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3039 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3040 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3041 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3042 AT_surfxml_route_dst AX_surfxml_route_dst;
3043 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3044 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3045 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3046 AT_surfxml_platform_version AX_surfxml_platform_version;
3047 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3048
3049 /* XML state. */
3050 #ifdef FLEX_DEBUG
3051 # define ENTER(state)   debug_enter(state,#state)
3052 # define LEAVE          debug_leave()
3053 # define SET(state)     debug_set(state,#state)
3054   static void debug_enter(int, const char*);
3055   static void debug_leave(void);
3056   static void debug_set(int, const char*);
3057 #else
3058 # define ENTER(state)   (yy_push_state(state))
3059 # define LEAVE          (yy_pop_state())
3060 # define SET(state)     BEGIN(state)
3061 #endif
3062
3063 /* Generic actions. */
3064 #define SKIP    /*skip*/
3065 #define SUCCEED        CLEANUP; return 0
3066
3067 #define FAIL    return fail
3068 static int fail(const char*, ...);
3069
3070 enum {flexml_max_err_msg_size = 512};
3071 static char flexml_err_msg[flexml_max_err_msg_size];
3072 const char * surfxml_parse_err_msg()
3073 {
3074     return flexml_err_msg;
3075 }
3076 static void reset_surfxml_parse_err_msg()
3077 {
3078     flexml_err_msg[0] = '\0';
3079 }
3080
3081 /* Cleanup */
3082 static void cleanup(void);
3083 #define CLEANUP  cleanup()
3084
3085 /* Text buffer stack handling. */
3086 char *surfxml_bufferstack = NULL;
3087 static int blimit = FLEXML_BUFFERSTACKSIZE;
3088 static int bnext = 1;
3089
3090 static int *indexstack = NULL;
3091 static int ilimit = FLEXML_INDEXSTACKSIZE;
3092 static int inext = 1;
3093
3094 #define BUFFERSET(P)  (P = bnext)
3095 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3096 #define BUFFERDONE    (BUFFERPUTC('\0'))
3097
3098 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3099
3100 /* after this is called, there are at least 2 slots left in the stack */
3101 static int ck_blimit()
3102 {
3103      if (bnext >= blimit) {
3104          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3105          {
3106              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3107              assert(temp);
3108              surfxml_bufferstack = temp;
3109          }
3110      }
3111      return 0;
3112 }
3113
3114 /* after this is called, there are at least 2 slots left in the stack */
3115 static int ck_ilimit()
3116 {
3117      if (inext >= ilimit) {
3118          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3119          {
3120              int *temp = (int *) realloc(indexstack, ilimit);
3121              assert(temp);
3122              indexstack = temp;
3123          }
3124      }
3125      return 0;
3126 }
3127
3128 #ifdef FLEXML_NEED_BUFFERLIT
3129 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3130 {
3131   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3132   assert(s <= e); BUFFERSET(*pp);
3133   while (++s<e) {
3134     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3135     else BUFFERPUTC(*s);
3136   }
3137   BUFFERDONE;
3138 }
3139 #endif
3140
3141 static void pushbuffer(int p)
3142 {
3143     ck_ilimit();
3144     indexstack[inext++] = p;
3145     indexstack[inext++] = bnext;    
3146 }
3147
3148 static int popbuffer(void)
3149 {
3150     assert(inext >= 2);
3151     bnext = indexstack[--inext];
3152     return indexstack[--inext];
3153 }
3154
3155 /* General internal entities are `unput' back onto the input stream... */
3156 #define ENTITYTEXT(T) \
3157   { char *s = (T), *e = s+strlen(s);\
3158     while (--e >= s) { unput(*e); }}
3159
3160 /* Flex standard options. */
3161 #define YY_NO_INPUT 1
3162 /* Flex user-requested options. */
3163 /* XML character classes (currently restricted to ASCII). */
3164 /* "Common syntactic structures." */
3165 /* "Names and Tokens." */
3166 /* Miscellaneous. */
3167 /* Parser states (flex `exclusive start conditions'):
3168  *
3169  * PROLOG       the XML prolog of the document before <?xml...>
3170  * DOCTYPE      the XML prolog of the document after <?xml...>
3171  * EPILOG       after the root element
3172  * INCOMMENT    inside an XML comment <!--....-->
3173  * INPI         inside an XML PI <?...?>
3174  * VALUE1       inside a '...'-delimited literal
3175  * VALUE2       inside a "..."-delimited literal
3176  * CDATA        inside a <![CDATA[...] ]> section.
3177  * ROOT_<tag>   expect root element <tag>
3178  * AL_<tag>     inside the attribute list for <tag>
3179  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3180  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3181  */
3182
3183 /* State names. */
3184 const char* *surfxml_statenames=NULL;
3185
3186 #define INITIAL 0
3187 #define PROLOG 1
3188 #define DOCTYPE 2
3189 #define EPILOG 3
3190 #define INCOMMENT 4
3191 #define INPI 5
3192 #define VALUE1 6
3193 #define VALUE2 7
3194 #define CDATA 8
3195 #define ROOT_surfxml_platform 9
3196 #define AL_surfxml_platform 10
3197 #define S_surfxml_platform 11
3198 #define S_surfxml_platform_1 12
3199 #define S_surfxml_platform_2 13
3200 #define S_surfxml_platform_3 14
3201 #define S_surfxml_platform_4 15
3202 #define S_surfxml_platform_5 16
3203 #define E_surfxml_platform 17
3204 #define AL_surfxml_include 18
3205 #define E_surfxml_include 19
3206 #define AL_surfxml_trace 20
3207 #define IN_trace 21
3208 #define AL_surfxml_random 22
3209 #define S_surfxml_random 23
3210 #define S_surfxml_random_1 24
3211 #define S_surfxml_random_2 25
3212 #define E_surfxml_random 26
3213 #define AL_surfxml_trace_c_connect 27
3214 #define E_surfxml_trace_c_connect 28
3215 #define AL_surfxml_set 29
3216 #define E_surfxml_set 30
3217 #define AL_surfxml_foreach 31
3218 #define S_surfxml_foreach 32
3219 #define S_surfxml_foreach_1 33
3220 #define E_surfxml_foreach 34
3221 #define AL_surfxml_host 35
3222 #define S_surfxml_host 36
3223 #define S_surfxml_host_1 37
3224 #define S_surfxml_host_2 38
3225 #define E_surfxml_host 39
3226 #define AL_surfxml_prop 40
3227 #define E_surfxml_prop 41
3228 #define AL_surfxml_cluster 42
3229 #define E_surfxml_cluster 43
3230 #define AL_surfxml_router 44
3231 #define E_surfxml_router 45
3232 #define AL_surfxml_link 46
3233 #define S_surfxml_link 47
3234 #define S_surfxml_link_1 48
3235 #define S_surfxml_link_2 49
3236 #define E_surfxml_link 50
3237 #define AL_surfxml_route_c_multi 51
3238 #define S_surfxml_route_c_multi 52
3239 #define S_surfxml_route_c_multi_1 53
3240 #define S_surfxml_route_c_multi_2 54
3241 #define E_surfxml_route_c_multi 55
3242 #define AL_surfxml_route 56
3243 #define S_surfxml_route 57
3244 #define S_surfxml_route_1 58
3245 #define S_surfxml_route_2 59
3246 #define E_surfxml_route 60
3247 #define AL_surfxml_link_c_ctn 61
3248 #define E_surfxml_link_c_ctn 62
3249 #define AL_surfxml_process 63
3250 #define S_surfxml_process 64
3251 #define S_surfxml_process_1 65
3252 #define S_surfxml_process_2 66
3253 #define E_surfxml_process 67
3254 #define AL_surfxml_argument 68
3255 #define E_surfxml_argument 69
3256 #define IMPOSSIBLE 70
3257
3258 #ifndef YY_NO_UNISTD_H
3259 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3260  * down here because we want the user's section 1 to have been scanned first.
3261  * The user has a chance to override it with an option.
3262  */
3263 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3264 #  ifndef __STRICT_ANSI__
3265 #    include <io.h>
3266 #    include <process.h>
3267 #  endif
3268 #else
3269 #  include <unistd.h>
3270 #endif
3271 #endif
3272
3273 #ifndef YY_EXTRA_TYPE
3274 #define YY_EXTRA_TYPE void *
3275 #endif
3276
3277 static int yy_init_globals (void );
3278
3279 /* Accessor methods to globals.
3280    These are made visible to non-reentrant scanners for convenience. */
3281
3282 int surf_parse_lex_destroy (void );
3283
3284 int surf_parse_get_debug (void );
3285
3286 void surf_parse_set_debug (int debug_flag  );
3287
3288 YY_EXTRA_TYPE surf_parse_get_extra (void );
3289
3290 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
3291
3292 FILE *surf_parse_get_in (void );
3293
3294 void surf_parse_set_in  (FILE * in_str  );
3295
3296 FILE *surf_parse_get_out (void );
3297
3298 void surf_parse_set_out  (FILE * out_str  );
3299
3300 int surf_parse_get_leng (void );
3301
3302 char *surf_parse_get_text (void );
3303
3304 int surf_parse_get_lineno (void );
3305
3306 void surf_parse_set_lineno (int line_number  );
3307
3308 /* Macros after this point can all be overridden by user definitions in
3309  * section 1.
3310  */
3311
3312 #ifndef YY_SKIP_YYWRAP
3313 #ifdef __cplusplus
3314 extern "C" int surf_parse_wrap (void );
3315 #else
3316 extern int surf_parse_wrap (void );
3317 #endif
3318 #endif
3319
3320 #ifndef yytext_ptr
3321 static void yy_flex_strncpy (char *,yyconst char *,int );
3322 #endif
3323
3324 #ifdef YY_NEED_STRLEN
3325 static int yy_flex_strlen (yyconst char * );
3326 #endif
3327
3328 #ifndef YY_NO_INPUT
3329
3330 #ifdef __cplusplus
3331 static int yyinput (void );
3332 #else
3333 static int input (void );
3334 #endif
3335
3336 #endif
3337
3338         static int yy_start_stack_ptr = 0;
3339         static int yy_start_stack_depth = 0;
3340         static int *yy_start_stack = NULL;
3341     
3342     static void yy_push_state (int new_state );
3343     
3344     static void yy_pop_state (void );
3345     
3346 /* Amount of stuff to slurp up with each read. */
3347 #ifndef YY_READ_BUF_SIZE
3348 #ifdef __ia64__
3349 /* On IA-64, the buffer size is 16k, not 8k */
3350 #define YY_READ_BUF_SIZE 16384
3351 #else
3352 #define YY_READ_BUF_SIZE 8192
3353 #endif /* __ia64__ */
3354 #endif
3355
3356 /* Copy whatever the last rule matched to the standard output. */
3357 #ifndef ECHO
3358 /* This used to be an fputs(), but since the string might contain NUL's,
3359  * we now use fwrite().
3360  */
3361 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3362 #endif
3363
3364 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3365  * is returned in "result".
3366  */
3367 #ifndef YY_INPUT
3368 #define YY_INPUT(buf,result,max_size) \
3369         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3370                 { \
3371                 int c = '*'; \
3372                 size_t n; \
3373                 for ( n = 0; n < max_size && \
3374                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3375                         buf[n] = (char) c; \
3376                 if ( c == '\n' ) \
3377                         buf[n++] = (char) c; \
3378                 if ( c == EOF && ferror( surf_parse_in ) ) \
3379                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3380                 result = n; \
3381                 } \
3382         else \
3383                 { \
3384                 errno=0; \
3385                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3386                         { \
3387                         if( errno != EINTR) \
3388                                 { \
3389                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3390                                 break; \
3391                                 } \
3392                         errno=0; \
3393                         clearerr(surf_parse_in); \
3394                         } \
3395                 }\
3396 \
3397
3398 #endif
3399
3400 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3401  * we don't want an extra ';' after the "return" because that will cause
3402  * some compilers to complain about unreachable statements.
3403  */
3404 #ifndef yyterminate
3405 #define yyterminate() return YY_NULL
3406 #endif
3407
3408 /* Number of entries by which start-condition stack grows. */
3409 #ifndef YY_START_STACK_INCR
3410 #define YY_START_STACK_INCR 25
3411 #endif
3412
3413 /* Report a fatal error. */
3414 #ifndef YY_FATAL_ERROR
3415 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3416 #endif
3417
3418 /* end tables serialization structures and prototypes */
3419
3420 /* Default declaration of generated scanner - a define so the user can
3421  * easily add parameters.
3422  */
3423 #ifndef YY_DECL
3424 #define YY_DECL_IS_OURS 1
3425
3426 extern int surf_parse_lex (void);
3427
3428 #define YY_DECL int surf_parse_lex (void)
3429 #endif /* !YY_DECL */
3430
3431 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3432  * have been set up.
3433  */
3434 #ifndef YY_USER_ACTION
3435 #define YY_USER_ACTION
3436 #endif
3437
3438 /* Code executed at the end of each rule. */
3439 #ifndef YY_BREAK
3440 #define YY_BREAK break;
3441 #endif
3442
3443 #define YY_RULE_SETUP \
3444         YY_USER_ACTION
3445
3446 /** The main scanner function which does all the work.
3447  */
3448 YY_DECL
3449 {
3450         register yy_state_type yy_current_state;
3451         register char *yy_cp, *yy_bp;
3452         register int yy_act;
3453     
3454  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3455  SET(PROLOG);
3456  reset_surfxml_parse_err_msg();
3457  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3458  assert(surfxml_bufferstack);
3459  #ifdef FLEX_DEBUG
3460  {
3461      int i;
3462      for (i = 0; i < blimit; i++) {
3463          surfxml_bufferstack[i] = '\377';
3464      }
3465  }
3466  #endif
3467  surfxml_bufferstack[0] = '\0';
3468  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3469  assert(indexstack);
3470  indexstack[0] = 0;
3471
3472   /* FleXML_init */
3473   bnext = inext = 1;
3474   surfxml_bufferliteral('\0', &bnext, "0.0");
3475   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3476   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3477   surfxml_bufferliteral('\0', &bnext, "10.0");
3478   surfxml_bufferliteral('\0', &bnext, "1.0");
3479   surfxml_bufferliteral('\0', &bnext, "1.0");
3480   surfxml_bufferliteral('\0', &bnext, "1.0");
3481   surfxml_bufferliteral('\0', &bnext, "1.0");
3482   surfxml_bufferliteral('\0', &bnext, "-1.0");
3483   surfxml_bufferliteral('\0', &bnext, "0.0");
3484   surfxml_bufferliteral('\0', &bnext, "0.0");
3485   surfxml_bufferliteral('\0', &bnext, "0.0");
3486   surfxml_bufferliteral('\0', &bnext, "0.0");
3487   surfxml_bufferliteral('\0', &bnext, "0.0");
3488   surfxml_bufferliteral('\0', &bnext, "-1.0");
3489   surfxml_bufferliteral('\0', &bnext, "-1.0");
3490   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3491   surfxml_statenames[PROLOG] = NULL;
3492   surfxml_statenames[DOCTYPE] = NULL;
3493   surfxml_statenames[EPILOG] = NULL;
3494   surfxml_statenames[INCOMMENT] = NULL;
3495   surfxml_statenames[INPI] = NULL;
3496   surfxml_statenames[VALUE1] = NULL;
3497   surfxml_statenames[VALUE2] = NULL;
3498   surfxml_statenames[CDATA] = NULL;
3499   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3500   surfxml_statenames[AL_surfxml_platform] = NULL;
3501   surfxml_statenames[S_surfxml_platform] = "platform";
3502   surfxml_statenames[S_surfxml_platform_1] = "platform";
3503   surfxml_statenames[S_surfxml_platform_2] = "platform";
3504   surfxml_statenames[S_surfxml_platform_3] = "platform";
3505   surfxml_statenames[S_surfxml_platform_4] = "platform";
3506   surfxml_statenames[S_surfxml_platform_5] = "platform";
3507   surfxml_statenames[E_surfxml_platform] = "platform";
3508   surfxml_statenames[AL_surfxml_include] = NULL;
3509   surfxml_statenames[E_surfxml_include] = "include";
3510   surfxml_statenames[AL_surfxml_trace] = NULL;
3511   surfxml_statenames[IN_trace] = "trace";
3512   surfxml_statenames[AL_surfxml_random] = NULL;
3513   surfxml_statenames[S_surfxml_random] = "random";
3514   surfxml_statenames[S_surfxml_random_1] = "random";
3515   surfxml_statenames[S_surfxml_random_2] = "random";
3516   surfxml_statenames[E_surfxml_random] = "random";
3517   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3518   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3519   surfxml_statenames[AL_surfxml_set] = NULL;
3520   surfxml_statenames[E_surfxml_set] = "set";
3521   surfxml_statenames[AL_surfxml_foreach] = NULL;
3522   surfxml_statenames[S_surfxml_foreach] = "foreach";
3523   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3524   surfxml_statenames[E_surfxml_foreach] = "foreach";
3525   surfxml_statenames[AL_surfxml_host] = NULL;
3526   surfxml_statenames[S_surfxml_host] = "host";
3527   surfxml_statenames[S_surfxml_host_1] = "host";
3528   surfxml_statenames[S_surfxml_host_2] = "host";
3529   surfxml_statenames[E_surfxml_host] = "host";
3530   surfxml_statenames[AL_surfxml_prop] = NULL;
3531   surfxml_statenames[E_surfxml_prop] = "prop";
3532   surfxml_statenames[AL_surfxml_cluster] = NULL;
3533   surfxml_statenames[E_surfxml_cluster] = "cluster";
3534   surfxml_statenames[AL_surfxml_router] = NULL;
3535   surfxml_statenames[E_surfxml_router] = "router";
3536   surfxml_statenames[AL_surfxml_link] = NULL;
3537   surfxml_statenames[S_surfxml_link] = "link";
3538   surfxml_statenames[S_surfxml_link_1] = "link";
3539   surfxml_statenames[S_surfxml_link_2] = "link";
3540   surfxml_statenames[E_surfxml_link] = "link";
3541   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3542   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3543   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3544   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3545   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3546   surfxml_statenames[AL_surfxml_route] = NULL;
3547   surfxml_statenames[S_surfxml_route] = "route";
3548   surfxml_statenames[S_surfxml_route_1] = "route";
3549   surfxml_statenames[S_surfxml_route_2] = "route";
3550   surfxml_statenames[E_surfxml_route] = "route";
3551   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3552   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3553   surfxml_statenames[AL_surfxml_process] = NULL;
3554   surfxml_statenames[S_surfxml_process] = "process";
3555   surfxml_statenames[S_surfxml_process_1] = "process";
3556   surfxml_statenames[S_surfxml_process_2] = "process";
3557   surfxml_statenames[E_surfxml_process] = "process";
3558   surfxml_statenames[AL_surfxml_argument] = NULL;
3559   surfxml_statenames[E_surfxml_argument] = "argument";
3560   }
3561
3562  /* COMMENTS and PIs: handled uniformly for efficiency. */
3563
3564         if ( !(yy_init) )
3565                 {
3566                 (yy_init) = 1;
3567
3568 #ifdef YY_USER_INIT
3569                 YY_USER_INIT;
3570 #endif
3571
3572                 if ( ! (yy_start) )
3573                         (yy_start) = 1; /* first start state */
3574
3575                 if ( ! surf_parse_in )
3576                         surf_parse_in = stdin;
3577
3578                 if ( ! surf_parse_out )
3579                         surf_parse_out = stdout;
3580
3581                 if ( ! YY_CURRENT_BUFFER ) {
3582                         surf_parse_ensure_buffer_stack ();
3583                         YY_CURRENT_BUFFER_LVALUE =
3584