Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
New maintainer sources for simgrid dtd
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 297
407 #define YY_END_OF_BUFFER 298
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[1715] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435       298,  296,   15,   10,   10,   15,   15,  276,   10,  276,
436         5,    6,    5,    8,    9,    8,  292,  284,  285,  293,
437       290,  293,  291,  295,  284,  285,  295,  296,   26,   10,
438
439        26,   26,   26,   24,   26,   26,   30,   10,   30,  296,
440        30,  296,  296,   30,   41,   10,   41,   41,   41,   39,
441        41,   41,   41,  293,  292,   63,   10,   63,   63,   63,
442        61,   63,   63,   63,   63,   67,   10,   67,  296,   67,
443        86,   10,   86,   86,   86,   84,   86,   86,   86,   90,
444        10,   90,   99,   10,   99,   99,   99,   97,   99,   99,
445       103,   10,  103,  103,  296,  103,  103,  296,  296,  103,
446       296,  103,  296,  103,  132,   10,  132,  132,  132,  130,
447       132,  132,  132,  132,  132,  132,  136,   10,  136,  136,
448       143,   10,  143,  143,  143,  141,  143,  147,   10,  147,
449
450       172,   10,  172,  172,  172,  170,  172,  172,  172,  172,
451       176,   10,  176,  176,  185,   10,  185,  185,  185,  183,
452       185,  185,  189,   10,  189,  296,  189,  202,   10,  202,
453       202,  202,  200,  202,  202,  202,  206,   10,  206,  206,
454       213,   10,  213,  213,  213,  211,  213,  217,   10,  217,
455       230,   10,  230,  230,  230,  228,  230,  230,  230,  234,
456        10,  234,  234,  247,   10,  247,  247,  247,  245,  247,
457       247,  247,  247,  251,   10,  251,  296,  251,  258,   10,
458       258,  258,  258,  256,  258,  262,   10,  262,  271,   10,
459       271,  271,  271,  269,  271,  271,  275,   10,  275,   10,
460
461         0,    2,    2,    0,    4,    7,  287,  286,    0,    0,
462         0,    0,    0,    0,    0,   25,   27,   27,   27,    0,
463         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464         0,    0,    0,    0,    0,    0,    0,    0,   40,   42,
465        42,   42,   42,    0,    0,    0,   62,   64,   64,   64,
466        64,   64,   64,   64,    0,    0,   85,   87,   87,   87,
467        87,    0,   98,  100,  100,  100,    0,    0,    0,    0,
468         0,    0,  131,  133,  133,  133,  133,  133,  133,  133,
469       133,    0,  142,  144,  144,    0,  171,  173,  173,  173,
470       173,  173,  173,    0,  184,  186,  186,  186,    0,    0,
471
472       201,  203,  203,  203,  203,    0,  212,  214,  214,    0,
473       229,  231,  231,  231,  231,    0,  246,  248,  248,  248,
474       248,  248,    0,    0,  257,  259,  259,    0,  270,  272,
475       272,  272,    0,    0,    0,    0,    0,    3,    0,    0,
476         0,    0,    0,    0,    0,  294,    0,   27,   27,    0,
477         0,   92,    0,    0,    0,    0,    0,    0,    0,    0,
478         0,    0,    0,    0,    0,   91,    0,    0,    0,    0,
479         0,   42,    0,    0,   42,    0,    0,    0,  289,   64,
480         0,    0,   64,   64,   64,   64,    0,    0,    0,   87,
481        87,   87,    0,    0,    0,    0,  100,    0,    0,   92,
482
483         0,   91,  133,    0,    0,  133,  133,  133,  133,  133,
484         0,    0,    0,    0,    0,    0,  173,    0,    0,  173,
485       173,  173,    0,    0,  186,  186,    0,    0,    0,  203,
486       203,  203,    0,    0,    0,    0,    0,    0,  231,  231,
487       231,    0,    0,  248,  248,  248,  248,    0,    0,    0,
488       259,    0,    0,    0,    0,  272,    0,    0,    0,   14,
489         1,    0,    0,  282,    0,    0,    0,  279,  278,    0,
490         0,   27,   27,    0,    0,   29,    0,   92,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,   91,    0,    0,    0,    0,    0,   42,    0,
493
494        34,   33,   42,    0,    0,    0,   44,    0,   64,    0,
495        48,   47,    0,    0,   64,    0,    0,   64,    0,    0,
496        66,    0,    0,   87,   87,   87,    0,    0,   89,    0,
497         0,   94,   93,  100,    0,    0,  102,    0,    0,    0,
498       133,    0,  107,  106,  133,  133,  133,  133,  133,    0,
499         0,  135,    0,    0,  140,  139,    0,    0,  146,    0,
500       173,    0,  151,  150,  173,  173,  173,    0,    0,  175,
501         0,    0,    0,    0,    0,    0,    0,  188,    0,    0,
502         0,    0,  203,  203,    0,    0,    0,    0,  205,    0,
503         0,  210,  209,    0,    0,  216,    0,    0,    0,  231,
504
505       231,    0,    0,    0,    0,  233,    0,  248,  248,  248,
506       248,    0,    0,  250,    0,    0,  259,    0,    0,  261,
507         0,    0,  266,  265,  272,    0,    0,  274,    0,    0,
508         0,  283,  277,    0,    0,    0,   27,   27,    0,    0,
509         0,    0,  105,  149,    0,    0,  263,    0,    0,    0,
510       104,  148,    0,    0,    0,    0,    0,    0,    0,    0,
511         0,   42,    0,    0,   64,    0,   52,   51,    0,    0,
512         0,   50,   49,   64,    0,  264,   87,    0,    0,   87,
513         0,  100,    0,  101,    0,    0,  133,  133,  133,  133,
514       133,  133,    0,    0,  173,  173,  173,  173,    0,    0,
515
516       182,  181,    0,  180,  179,    0,  148,    0,  195,  194,
517       203,  203,    0,  193,  192,    0,    0,    0,  223,  222,
518       231,  231,    0,  221,  220,    0,  248,    0,    0,  248,
519       248,    0,    0,  259,    0,  272,    0,    0,    0,    0,
520        12,    0,  280,  281,    0,   27,   27,    0,    0,    0,
521         0,  105,  149,    0,    0,    0,  263,    0,  178,   32,
522       104,  148,    0,  177,    0,  178,   31,  177,   31,    0,
523        36,   35,   42,    0,    0,   64,    0,   54,   53,   64,
524         0,  264,   87,    0,    0,    0,    0,    0,    0,  100,
525         0,    0,  133,  133,  133,    0,    0,    0,    0,  133,
526
527       133,    0,    0,  173,  173,  173,    0,    0,  173,    0,
528         0,    0,  203,  203,    0,    0,  231,  231,    0,  248,
529         0,  238,  237,  248,  248,    0,    0,    0,    0,    0,
530         0,    0,    0,    0,    0,    0,   11,    0,   27,   27,
531        27,    0,    0,    0,    0,    0,    0,    0,   46,  178,
532       138,   32,    0,    0,  177,  137,   45,   31,    0,   42,
533         0,    0,   64,   64,    0,   87,    0,    0,    0,    0,
534         0,    0,    0,    0,    0,   81,   80,    0,  100,    0,
535         0,  133,  133,  133,    0,  109,  108,    0,    0,    0,
536       133,  133,    0,  134,    0,  173,  173,  173,    0,    0,
537
538         0,  173,    0,  174,    0,    0,    0,    0,    0,    0,
539         0,    0,    0,    0,    0,    0,    0,  248,  248,  248,
540         0,    0,    0,  255,  254,    0,    0,  268,  267,    0,
541       273,    0,    0,    0,    0,    0,    0,   27,   27,    0,
542       190,    0,    0,    0,    0,  236,   46,  138,    0,  235,
543       137,   45,    0,   42,    0,    0,   43,   64,   64,    0,
544         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
545         0,    0,    0,    0,    0,  191,    0,  133,  133,  133,
546         0,    0,  133,    0,    0,    0,  173,    0,    0,  173,
547       173,    0,    0,  173,    0,  187,    0,    0,  199,  198,
548
549         0,  197,  196,    0,    0,    0,  227,  226,    0,  225,
550       224,    0,  248,  248,  248,    0,    0,    0,    0,    0,
551         0,   17,    0,   19,   18,   27,   27,    0,  190,  252,
552         0,  207,   16,  236,    0,  235,    0,   42,  288,   64,
553        64,    0,   65,    0,   83,   82,    0,    0,    0,    0,
554         0,    0,    0,    0,    0,    0,    0,    0,   96,   95,
555       191,    0,  133,  133,  133,    0,    0,    0,    0,  133,
556         0,  129,  128,    0,  145,  173,    0,  157,  156,  173,
557       173,    0,    0,    0,    0,  173,  208,    0,    0,    0,
558         0,    0,  248,  248,    0,  253,    0,    0,    0,    0,
559
560        17,   27,   27,    0,  252,    0,  207,   16,    0,    0,
561        42,    0,    0,   64,    0,    0,    0,    0,    0,    0,
562         0,    0,    0,    0,    0,    0,  133,  133,  133,    0,
563       115,    0,  114,  133,    0,    0,  173,  173,  173,    0,
564       161,    0,  160,  173,  208,    0,  204,    0,    0,    0,
565       240,  239,    0,    0,  248,    0,  249,  253,    0,    0,
566         0,    0,    0,    0,   27,    0,   28,    0,    0,    0,
567        42,    0,    0,    0,   64,    0,    0,    0,    0,    0,
568         0,    0,    0,    0,    0,    0,    0,  133,  133,  133,
569       117,  116,    0,    0,    0,  153,  152,  173,  173,  173,
570
571       163,  162,    0,    0,    0,  215,    0,    0,  244,  243,
572         0,    0,    0,  260,    0,    0,    0,    0,   21,   20,
573         0,    0,  218,    0,    0,    0,    0,    0,    0,    0,
574         0,   64,    0,    0,    0,    0,   73,    0,    0,    0,
575         0,   72,    0,  219,  133,  133,  133,    0,  119,  118,
576       173,  173,  173,    0,  165,  164,    0,    0,  242,  241,
577         0,    0,    0,    0,   23,   22,  218,    0,    0,    0,
578        38,   37,    0,    0,    0,    0,   64,    0,    0,    0,
579         0,    0,    0,    0,    0,    0,  219,    0,    0,  133,
580       133,  133,  173,    0,    0,  173,    0,    0,    0,    0,
581
582         0,   69,   68,    0,    0,    0,    0,    0,    0,    0,
583         0,   79,    0,    0,    0,   78,    0,    0,    0,  111,
584       110,  133,  133,  133,  133,  173,    0,  159,  158,  173,
585         0,  232,    0,    0,    0,    0,    0,    0,   69,   68,
586         0,    0,    0,    0,    0,   56,   55,    0,    0,    0,
587         0,    0,    0,    0,  133,  133,  133,  133,    0,    0,
588         0,    0,    0,    0,    0,    0,    0,    0,    0,   60,
589         0,   59,   77,    0,    0,   76,    0,    0,    0,   88,
590       133,  133,  133,  133,    0,  155,  154,    0,    0,    0,
591         0,    0,    0,   12,    0,   12,    0,    0,    0,   71,
592
593        75,   70,   74,  133,  133,  133,  133,    0,    0,    0,
594         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
595         0,    0,    0,    0,  133,    0,    0,    0,    0,    0,
596         0,    0,    0,   58,   57,    0,  113,  112,    0,  123,
597       122,    0,  121,  120,  133,    0,  127,  126,    0,    0,
598         0,    0,    0,   11,  133,    0,    0,    0,    0,    0,
599       133,    0,    0,    0,    0,    0,  133,    0,    0,    0,
600         0,    0,    0,    0,    0,  167,    0,  166,    0,    0,
601       125,  124,  169,  168,    0,    0,    0,    0,    0,    0,
602         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
603
604         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
605         0,    0,   13,    0
606     } ;
607
608 static yyconst flex_int32_t yy_ec[256] =
609     {   0,
610         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
611         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
612         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
613         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
614         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
615        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
616        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
617        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
618        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
619        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
620
621        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
622        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
623        69,   28,    1,    1,    1,    1,    1,    1,    1,    1,
624         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
625         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
626         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
627         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
628         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
629         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
630         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
631
632         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
633         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
634         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
635         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
636         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
637         1,    1,    1,    1,    1
638     } ;
639
640 static yyconst flex_int32_t yy_meta[70] =
641     {   0,
642         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
643         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
644         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
645         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
646         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
647         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
648         5,    5,    5,    5,    5,    5,    5,    5,    5
649     } ;
650
651 static yyconst flex_int16_t yy_base[1861] =
652     {   0,
653         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
654        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
655       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
656       193,  196,  200,  203,  206,  224,  227,  230,  233,  250,
657       253,  256,  274,  334,  306,  312,  394,  457,  294,  301,
658       304,  355,  358,  361,  364,  368,  520,  584,  414,  417,
659       648,  710,  421,  424,  427,  477,  480,  484,  487,  490,
660       540,  543,  547,  550,  553,  604,  607,  611,  614,  617,
661       668,  671,  675,  678,  681,  730,  733,  737,  740,  743,
662       763,  766,  784,    0,  852,  855,  858,  861,  864,  881,
663
664       884,  887,  905,  959,  925,  928, 1013, 1076,  932,  935,
665       938,  979,  982,  986,  989,  992, 1139, 1202, 1033, 1036,
666      1040, 1043, 1046, 1096, 1099, 1103, 1265, 1328, 1106, 1109,
667      1159, 1162, 1166, 1169, 1172, 1222, 1391, 1445, 1225, 1229,
668      1499, 1562, 1232, 1235, 1285, 1288, 1292, 1295, 1298, 1348,
669      1625, 1688, 1351, 1355, 1358, 1361, 1411, 1414, 1418, 1421,
670      1751, 1817, 1424, 1465, 1883, 1949, 1468, 1472,    0,    0,
671      4224, 5784, 5784,   95,  100,   29,   41, 5784,  155,   51,
672      5784, 5784, 4212, 5784, 5784, 4191, 5784, 4206, 4205, 1475,
673      5784, 5784, 5784, 5784, 4199, 4199, 4156,  241, 5784,  158,
674
675      4178,    0,  142, 5784, 4147, 4133, 5784,  162, 2011, 1539,
676       388, 1602, 1665,  108, 5784,  261, 4152,    0,  146, 5784,
677      4117, 4120, 4111,  369, 4113, 5784,  329, 4135,    0,  217,
678      5784, 4104, 4095,  169, 4079, 5784,  389,   11, 1728, 4121,
679      5784,  451, 4112,    0,  245, 5784, 4065, 4065, 4046, 5784,
680       513,  428, 5784,  570, 4087,    0,  306, 5784, 4053, 4042,
681      5784,  574, 2071, 1475, 1793,   38, 4077, 1859, 1925,   71,
682      1974,   44, 2034, 4078, 5784,  577, 4069,    0,  308, 5784,
683      4018,   96, 4037, 4018, 4008, 4017, 5784,  634,  109, 4049,
684      5784,  638, 4040,    0,  491, 5784, 4009, 5784,  641,  492,
685
686      5784,  701, 4030,    0,  498, 5784, 4003, 3997, 3999,   91,
687      5784,  704,  189, 4031, 5784,  771, 4022,    0,  561, 5784,
688      3977, 3966, 5784,  774,  213, 2083, 4015, 5784,  890, 4005,
689         0,  562, 5784, 3954, 3949, 3948, 5784,  893,  506, 3996,
690      5784, 1068, 3986,    0,  625, 5784, 3956, 5784, 1071, 1047,
691      5784, 1131, 3983,    0,  626, 5784, 3932, 3921, 3925, 5784,
692      1134,  682, 3973, 5784, 1189, 3951,    0,  758, 5784, 3905,
693      3909, 3912, 3901, 5784, 1192,  201, 2104, 3951, 5784, 1195,
694      3942,    0, 1110, 5784, 3909, 5784, 1252, 1236, 5784, 1256,
695      3917,    0, 1180, 5784, 3887, 3888, 5784, 1259, 1299, 1319,
696
697        18, 3857, 5784, 3914, 3902, 5784, 5784, 5784, 1369,   35,
698      3855, 3853, 3847, 3888, 3838, 5784,    0, 3831, 3835, 3829,
699      3848, 3811, 3799, 3808, 3811,  211,  388, 3798, 3781, 3785,
700       313,  397, 3799,  641, 3774,  642,  703, 3765, 5784,    0,
701      3770, 1475, 3747,  280, 3742, 3785, 5784,    0, 3744, 1521,
702      3731, 3735, 3721, 3725, 3711,  327, 5784,    0, 3721, 3702,
703      3713, 3693, 5784,    0, 1526, 3682, 3724, 3706, 3670,  898,
704      3700,  899, 5784,    0, 3688, 1530, 3667, 3662, 3661, 3674,
705      3629, 3641, 5784,    0, 1535, 3630, 5784,    0, 3633, 1585,
706      3621, 3637, 3636, 3624, 5784,    0, 3609, 3603, 3583, 3589,
707
708      5784,    0, 3578, 3595, 3580, 3604, 5784,    0, 1594, 3566,
709      5784,    0, 3556, 3574, 3569, 3562, 5784,    0, 3549, 3543,
710      3547, 3555, 3537, 3526, 5784,    0, 3531, 3539, 5784,    0,
711      1648, 3521, 3515, 3550, 3559,  736, 3510, 5784, 1372,    0,
712      3496, 3496, 3536, 3534, 3491, 5784, 3502, 3483, 3487, 1657,
713      1720, 1553, 3491, 3457, 3451, 3455, 3455, 3436, 3436, 3427,
714      3433, 3414, 3409, 3407, 3399, 1617, 3405, 3396, 3403, 3383,
715      3400, 3391, 1711, 1489, 3380, 3409, 1776, 1783, 5784, 3381,
716      1797, 1802, 1839, 3358, 1848, 3370, 1905, 1971, 3354, 3355,
717      3357, 3356, 1914, 1980, 1929, 1866, 3333, 2002, 2005, 1680,
718
719      3336, 1874, 3340, 1995, 1936, 3328, 3326, 3320, 3301, 3318,
720      2008, 2042, 2046, 2057, 2049, 2075, 3304, 2104, 2110, 3294,
721      3281, 3277, 2082, 2118, 2150, 2159, 2138, 2171, 3272, 2177,
722      2180, 2183, 2186, 2190, 2201, 2205, 2213, 2219, 2222, 2232,
723      2242, 2245, 2250, 3279, 3261, 3267, 3260, 2254, 2260, 3268,
724      3232, 2264, 2273, 2283, 2288, 3231, 2296, 2301, 3264, 5784,
725      5784,  220, 3219, 5784, 3249, 3248, 3196, 5784, 5784, 3194,
726      3192, 3194, 3178, 2304, 2307, 5784, 2310, 1322, 3181, 3173,
727      3180, 3157, 3162, 3152,   40, 3157, 3140, 3155, 3136, 3142,
728       425, 3132, 1606, 3145, 3128, 3143, 3106, 3120, 2329, 2334,
729
730      5784, 5784, 2342, 3142, 2347, 2350, 5784, 2356, 3103, 2362,
731      5784, 5784, 2370, 2375, 2384, 2388, 2391, 3113, 2402, 2406,
732      5784, 2409,  488, 3110, 2412, 3096, 2415, 2421, 5784, 2430,
733      2434, 5784, 5784, 3090, 2442, 2445, 5784, 2449, 3084, 3095,
734      3079, 2452, 5784, 5784, 3072, 3069, 3065, 3075, 3057, 2468,
735      2471, 5784, 2475, 2478, 5784, 5784, 2490, 2494, 5784, 2497,
736      3045, 2500, 5784, 5784, 3052, 3055, 3049, 2509, 2516, 5784,
737      2519, 2522, 2528, 2540, 2543, 2551, 2554, 5784, 2561, 3042,
738      2564, 2576, 3032, 3032, 2584, 2587, 2595, 2598, 5784, 2602,
739      2605, 5784, 5784, 2617, 2621, 5784, 2625, 2628, 2640, 3029,
740
741      3021, 2631, 2649, 2636, 2657, 5784, 2664, 3014, 2667, 3032,
742      3011, 2670, 2676, 5784, 2685, 3005, 3019, 2689, 2695, 5784,
743      2698, 2704, 5784, 5784, 3013, 2717, 2723, 5784, 2726,  282,
744      2731, 5784, 5784, 3044, 3039, 3003, 2994, 3022, 2736, 2972,
745      2978, 2971, 1614, 1669, 2981, 2981, 1732, 2970, 2978, 2964,
746      1742, 2745, 2945, 2944, 2930, 2936, 2935, 2933, 2931, 2751,
747      2756, 2913, 2938, 2764, 2912, 2769, 5784, 5784, 2777, 2784,
748      2795, 5784, 5784, 2907, 2803, 2806, 2897, 2811, 2815, 2823,
749      2829, 2892, 2833, 5784, 2884, 2877, 2888, 2881, 2866, 2836,
750      2841, 2880, 2844, 2854, 2863, 2867, 2856, 2859, 2864, 2867,
751
752      5784, 5784, 2879, 5784, 5784, 2887, 2890, 2893, 5784, 5784,
753      2848, 2857, 2907, 5784, 5784, 2918, 2921, 2924, 5784, 5784,
754      2839, 2853, 2933, 5784, 5784, 2941, 2846, 2944, 2950, 2834,
755      2842, 2962, 2823, 2965, 2968, 2971, 2976,  656, 2859, 2989,
756      5784, 2855, 5784, 5784, 2813, 2807,  813, 2995, 2795, 2804,
757      2788, 2998, 3001, 2802, 2782, 2771, 3004, 2772, 3009, 3014,
758      3017, 3020, 2765, 3023, 2765, 3038, 3041, 3045, 3048, 3056,
759      5784, 5784, 2766, 2777, 3064, 2747, 3070, 5784, 5784, 2737,
760      3078, 3084, 2738, 3087,  976, 1093, 3099, 3102, 3113, 2743,
761      2730, 2729, 2744, 2739, 2719, 3117, 3120, 3128, 3136, 2731,
762
763      2723, 3146, 3149, 2727, 2705, 2717, 3152, 3155, 2713, 3170,
764      3173, 2715, 3176, 3179, 3182, 3185, 3205, 3208, 3211, 2698,
765      3216, 5784, 5784, 2691, 2678, 3226, 2691, 3230, 3233, 3241,
766      3248, 3251, 3260, 1354,  364,  250, 5784, 2674, 3266, 2678,
767      2672, 3269, 2673, 2664, 2680, 2652, 2652, 2649, 3275, 3279,
768      3284, 3288, 2663, 2641, 3291, 3297, 3300, 3303, 2655, 2647,
769      2672, 3306, 2626, 2628, 3309, 3312, 2659, 2641,  190, 2640,
770      2643, 2628,  477, 2627, 3315, 5784, 5784, 3330, 3333, 2607,
771      2617, 2594, 2574, 2565, 3336, 5784, 5784, 3345, 2581, 2578,
772      2558, 3353, 3356, 5784, 3359, 2546, 3365, 2550, 3371, 2559,
773
774      2557, 2530, 3379, 5784, 3383, 2512, 3386, 3389, 3398, 3405,
775      3416, 3420, 3423, 3426, 3435, 3441, 3449, 2517, 2516, 2518,
776      3453, 2512, 3456, 5784, 5784, 3468, 3472, 5784, 5784, 3480,
777      5784,  851,  732,  913, 2512, 3483, 3487, 2503, 2495, 3495,
778      3501, 2487, 2491, 2490, 2483, 3504, 3507, 3517, 2476, 3520,
779      3523, 3526, 2474, 2474, 2484, 3529, 5784, 2454, 2469, 3532,
780      3535, 3538, 2474, 2469, 2466, 2456, 2448, 2452, 2447, 2444,
781      2434, 2425, 3556, 3559, 3562, 3570, 2405, 2407, 2410, 2400,
782       353,  599, 2401, 3577, 3580, 3588, 2389, 3591, 3596, 2388,
783      2370,  663,  723, 2372, 3609, 5784, 2369, 3612, 5784, 5784,
784
785      3621, 5784, 5784, 3629, 3632, 3635, 5784, 5784, 3644, 5784,
786      5784, 3652, 3655, 2371, 2363, 3658, 2335, 3661, 3664, 1033,
787       549, 3667, 3684, 5784, 5784, 2343, 2332, 3695, 3673, 3698,
788      2320, 3701, 3704, 3707, 2325, 3710, 2324, 2316, 5784, 3714,
789      2311, 3720, 5784, 3723, 5784, 5784, 2344, 2323, 2331, 2324,
790      2321, 2317, 2302, 2313, 2303, 2303, 3733, 3739, 5784, 5784,
791      3747, 2263, 2272, 2267, 2269, 2293, 2312, 2290, 2306, 2251,
792      3752, 5784, 5784, 3760, 5784, 3763, 3766, 5784, 5784, 2242,
793      2230, 2261, 2277, 2255, 2270, 2228, 3774, 3781, 3784, 3787,
794      3791, 3794, 3809, 2222, 3812, 3815, 3818, 3821,  223,  706,
795
796      3827, 3831, 2221, 3841, 3845, 2205, 3849, 3852, 2202, 2201,
797      2186, 3855, 3860, 2196, 2201, 2195, 2204, 2192, 2195, 2190,
798      2182, 2185, 2173, 2176, 3868, 2148, 2137, 2152, 2140, 2191,
799      5784, 2186, 5784, 3873, 3876, 3881, 2125, 2115, 2114, 2159,
800      5784, 2150, 5784, 3894, 3897, 3900, 5784, 3903, 3907, 3912,
801      5784, 5784, 3926, 3929, 3937, 3940, 5784, 3944, 3947,  931,
802       901, 1045, 3950, 3955, 3971, 3974, 5784, 2105, 2099, 2096,
803      3977, 3980, 1004, 1130, 2078, 2102, 2093, 2087, 2088, 2083,
804      2042, 2032, 2013, 2007, 2010, 3989, 1963, 1919, 1930, 1924,
805      5784, 5784, 3995, 3998, 4009, 5784, 5784, 1887, 1885, 1811,
806
807      5784, 5784, 4017, 4020, 4028, 5784, 4031, 4035, 5784, 5784,
808      4050, 4053, 4061, 5784,  852, 1261, 1298, 4064, 5784, 5784,
809      4072, 4076, 4084, 1814,  104, 4090, 4094,  152,  277,  289,
810       414,  448,  485,  519,  518,  560, 5784,  598,  584,  622,
811       655, 5784, 4102, 4108, 4111,  664,  714, 4114, 5784, 5784,
812       726, 4122,  735, 4125, 5784, 5784, 4133, 4136, 5784, 5784,
813       883, 1166, 4144, 4156, 5784, 5784, 4147,  810,  814, 4164,
814      5784, 5784,  858,  847,  878,  867, 4172,  865,  930,  948,
815       976,  962,  984, 1000,  989, 4175, 4178, 4182, 4190, 1004,
816      1000, 1004, 1068, 4185, 4203, 1057, 4211, 1324, 4214, 4217,
817
818      4223, 4236, 4242, 1094, 1153, 1145, 1156, 4245, 4248, 1160,
819      1170, 5784, 1200, 1213, 1214, 5784, 1219, 4256, 4259, 5784,
820      5784, 1198, 1214, 1243, 1259, 4267, 4271, 5784, 5784, 4279,
821      4285, 5784, 1348, 4288, 4291, 4310, 4330, 4374, 4299, 4319,
822      1282, 1306, 1290, 1318, 4350, 5784, 5784, 1361, 1338, 1346,
823      1372, 1356, 1387, 4323, 1374, 1383, 1375, 1374, 4342, 4360,
824      4368, 4394, 1423, 4402, 1771, 1464, 4422, 4466, 1426, 5784,
825      1427, 5784, 5784, 1438, 1455, 5784, 1471, 1472, 4412, 5784,
826      1446, 1449, 1477, 1485, 4442, 5784, 5784, 4450, 1514, 1520,
827      1533, 1777, 1573, 1540, 1582, 1541, 4417, 1544, 1563, 5784,
828
829      5784, 5784, 5784, 4458, 4477, 4486, 4489, 1562, 1571, 1590,
830      1593, 4495, 1635, 1626, 1644, 4498, 1648, 1647, 4509, 4517,
831      4530, 4533, 4541, 4548, 1595, 4559, 4562, 1624, 1643, 1635,
832      1653, 4570, 1661, 5784, 5784, 4573, 5784, 5784, 4582, 5784,
833      5784, 4590, 5784, 5784, 1654, 4598, 5784, 5784, 1674, 1679,
834      1681, 1682, 1706, 5784, 1672, 1698, 1711, 1708, 1721, 1769,
835      1701, 1737, 1757, 1757, 1777, 1824, 4607, 1783, 1804, 1786,
836      1804, 1828, 4610, 4613, 1827, 5784, 1838, 5784, 1846, 4621,
837      5784, 5784, 5784, 5784, 4629, 4632, 1836, 1851, 1890, 1923,
838      1854, 1908, 1966, 1974, 1862, 2020, 1970, 1981, 1982, 2021,
839
840      1902, 1909, 2048, 2054, 2027, 2080, 2079, 2128, 1853, 2147,
841      4640, 4643, 5784, 5784, 4663, 4672, 4681, 4690, 4699, 4708,
842      4717, 4726, 4735, 4744, 4753, 4762, 4771, 4780, 4789, 4798,
843      4807, 4816, 4825, 4834, 4843, 4852, 4861, 4870, 4879, 4888,
844      4897, 4906, 4915, 4924, 4933, 4942, 4951, 4960, 4969, 4976,
845      4983, 4990, 4997, 5004, 5011, 5018, 5025, 5032, 5039, 5046,
846      5053, 5060, 5067, 5074, 5083, 5088, 5093, 5098, 5103, 5108,
847      5113, 5118, 5123, 5128, 5133, 5138, 5145, 5150, 5157, 5162,
848      5169, 5174, 5181, 5186, 5195, 5201, 5208, 5216, 5223, 5231,
849      5238, 5246, 5253, 5261, 5268, 5276, 5283, 5291, 5299, 5306,
850
851      5314, 5322, 5330, 5338, 5346, 5354, 5362, 5370, 5377, 5385,
852      5392, 5400, 5407, 5415, 5424, 5430, 5437, 5445, 5453, 5461,
853      5468, 5476, 5483, 5491, 5498, 5506, 5513, 5521, 5529, 5536,
854      5544, 5552, 5559, 5567, 5575, 5582, 5590, 5597, 5605, 5612,
855      5620, 5627, 5635, 5644, 5653, 5660, 5668, 5675, 5683, 5690,
856      5698, 5705, 5713, 5720, 5729, 5738, 5747, 5756, 5765, 5774
857     } ;
858
859 static yyconst flex_int16_t yy_def[1861] =
860     {   0,
861      1715, 1715, 1716, 1716, 1716, 1716, 1717, 1717, 1718, 1718,
862      1719, 1719, 1720, 1720, 1720, 1720, 1721, 1721, 1715, 1715,
863      1722, 1722, 1723, 1723, 1723, 1723, 1715, 1715, 1723, 1723,
864      1723, 1723, 1715, 1715, 1723, 1723, 1715, 1715, 1723, 1723,
865      1723, 1723, 1724, 1724, 1720, 1720, 1725, 1725, 1726, 1726,
866      1715, 1715, 1726, 1726, 1726, 1726, 1727, 1727, 1728, 1728,
867      1729, 1729, 1730, 1730, 1730, 1730, 1715, 1715, 1730, 1730,
868      1730, 1730, 1715, 1715, 1730, 1730, 1715, 1715, 1730, 1730,
869      1730, 1730, 1715, 1715, 1730, 1730, 1715, 1715, 1730, 1730,
870      1730, 1730, 1714,   93, 1731, 1731, 1715, 1715, 1731, 1731,
871
872      1731, 1731, 1732, 1732, 1733, 1733, 1734, 1734, 1735, 1735,
873      1715, 1715, 1735, 1735, 1735, 1735, 1736, 1736, 1737, 1737,
874      1715, 1715, 1737, 1737, 1737, 1737, 1738, 1738, 1739, 1739,
875      1715, 1715, 1739, 1739, 1739, 1739, 1740, 1740, 1741, 1741,
876      1742, 1742, 1743, 1743, 1715, 1715, 1743, 1743, 1743, 1743,
877      1744, 1744, 1745, 1745, 1715, 1715, 1745, 1745, 1745, 1745,
878      1746, 1746, 1747, 1747, 1748, 1748, 1749, 1749, 1715, 1715,
879      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
880      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
881      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
882
883      1714, 1750, 1714, 1714, 1750, 1750, 1714, 1714, 1714, 1714,
884       209, 1714, 1714,  211, 1714, 1714, 1714, 1751, 1714, 1714,
885      1751, 1751, 1751, 1714, 1714, 1714, 1714, 1714, 1752, 1714,
886      1714, 1752, 1752, 1752, 1752, 1714, 1714,  214, 1714,  214,
887      1714, 1714, 1714, 1753, 1714, 1714, 1753, 1753, 1753, 1714,
888      1714, 1714, 1714, 1714, 1714, 1754, 1714, 1714, 1754, 1754,
889      1714, 1714, 1714,  214, 1714,  264,  264, 1714, 1714,  214,
890      1714,  263, 1714,  214, 1714, 1714, 1714, 1755, 1714, 1714,
891      1755, 1755, 1755, 1755, 1755, 1755, 1714, 1714,  214,  214,
892      1714, 1714, 1714, 1756, 1714, 1714, 1756, 1714, 1714, 1714,
893
894      1714, 1714, 1714, 1757, 1714, 1714, 1757, 1757, 1757, 1757,
895      1714, 1714,  214,  214, 1714, 1714, 1714, 1758, 1714, 1714,
896      1758, 1758, 1714, 1714,  214, 1714,  214, 1714, 1714, 1714,
897      1759, 1714, 1714, 1759, 1759, 1759, 1714, 1714,  214,  214,
898      1714, 1714, 1714, 1760, 1714, 1714, 1760, 1714, 1714, 1714,
899      1714, 1714, 1714, 1761, 1714, 1714, 1761, 1761, 1761, 1714,
900      1714,  214,  214, 1714, 1714, 1714, 1762, 1714, 1714, 1762,
901      1762, 1762, 1762, 1714, 1714,  214, 1714,  214, 1714, 1714,
902      1714, 1763, 1714, 1714, 1763, 1714, 1714, 1714, 1714, 1714,
903      1714, 1764, 1714, 1714, 1764, 1764, 1714, 1714, 1714, 1714,
904
905      1765, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
906      1714, 1714, 1714, 1714, 1714, 1714, 1750, 1750, 1750, 1766,
907      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
908      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1751,
909      1751, 1751, 1751, 1714, 1767, 1714, 1714, 1752, 1752, 1752,
910      1752, 1752, 1752, 1752, 1768, 1714, 1714, 1753, 1753, 1753,
911      1753, 1769, 1714, 1754, 1754, 1754, 1770, 1714, 1714, 1714,
912      1714, 1714, 1714, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
913      1755, 1771, 1714, 1756, 1756, 1772, 1714, 1757, 1757, 1757,
914      1757, 1757, 1757, 1773, 1714, 1758, 1758, 1758, 1774, 1714,
915
916      1714, 1759, 1759, 1759, 1759, 1775, 1714, 1760, 1760, 1776,
917      1714, 1777, 1777, 1777, 1777, 1778, 1714, 1779, 1779, 1779,
918      1779, 1779, 1780, 1714, 1714, 1781, 1781, 1782, 1714, 1783,
919      1783, 1783, 1784, 1785, 1714, 1785, 1714, 1714, 1714, 1786,
920      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1787, 1787, 1788,
921      1788, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
922      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
923      1714, 1789, 1714, 1714, 1789, 1714, 1790, 1790, 1714, 1791,
924      1714, 1714, 1791, 1791, 1791, 1791, 1792, 1792, 1714, 1793,
925      1793, 1793, 1794, 1794, 1714, 1714, 1795, 1796, 1796, 1714,
926
927      1714, 1714, 1797, 1714, 1714, 1797, 1797, 1797, 1797, 1797,
928      1798, 1798, 1714, 1714, 1799, 1799, 1800, 1714, 1714, 1800,
929      1800, 1800, 1801, 1801, 1802, 1802, 1803, 1803, 1714, 1804,
930      1804, 1804, 1805, 1805, 1714, 1714, 1806, 1806, 1807, 1807,
931      1807, 1808, 1808, 1809, 1809, 1809, 1809, 1810, 1810, 1714,
932      1811, 1812, 1812, 1714, 1714, 1813, 1814, 1814, 1815, 1714,
933      1714, 1815, 1714, 1714, 1816, 1714, 1714, 1714, 1714, 1714,
934      1714, 1817, 1817, 1714, 1818, 1714, 1818, 1714, 1714, 1714,
935      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
936      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1819, 1714,
937
938      1714, 1714, 1819, 1714, 1714, 1820, 1714, 1820, 1821, 1714,
939      1714, 1714, 1714, 1714, 1821, 1714, 1714, 1821, 1714, 1822,
940      1714, 1822, 1714, 1823, 1823, 1823, 1714, 1824, 1714, 1824,
941      1714, 1714, 1714, 1825, 1714, 1826, 1714, 1826, 1714, 1714,
942      1827, 1714, 1714, 1714, 1827, 1827, 1827, 1827, 1827, 1714,
943      1828, 1714, 1828, 1714, 1714, 1714, 1714, 1829, 1714, 1829,
944      1830, 1714, 1714, 1714, 1830, 1830, 1830, 1714, 1831, 1714,
945      1831, 1714, 1714, 1714, 1714, 1714, 1832, 1714, 1832, 1714,
946      1714, 1714, 1833, 1833, 1714, 1714, 1714, 1834, 1714, 1834,
947      1714, 1714, 1714, 1714, 1835, 1714, 1835, 1714, 1714, 1836,
948
949      1836, 1714, 1714, 1714, 1837, 1714, 1837, 1838, 1838, 1838,
950      1838, 1714, 1839, 1714, 1839, 1714, 1840, 1714, 1841, 1714,
951      1841, 1714, 1714, 1714, 1842, 1714, 1843, 1714, 1843, 1844,
952      1845, 1714, 1714, 1714, 1714, 1714, 1846, 1846, 1847, 1714,
953      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
954      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
955      1714, 1848, 1714, 1849, 1850, 1714, 1714, 1714, 1714, 1714,
956      1714, 1714, 1714, 1850, 1851, 1714, 1852, 1714, 1714, 1852,
957      1853, 1854, 1714, 1714, 1714, 1714, 1827, 1827, 1827, 1827,
958      1827, 1827, 1828, 1829, 1830, 1830, 1830, 1830, 1831, 1714,
959
960      1714, 1714, 1714, 1714, 1714, 1832, 1714, 1714, 1714, 1714,
961      1833, 1833, 1714, 1714, 1714, 1834, 1835, 1714, 1714, 1714,
962      1836, 1836, 1714, 1714, 1714, 1837, 1838, 1714, 1714, 1838,
963      1838, 1839, 1714, 1840, 1841, 1842, 1843, 1844, 1845, 1845,
964      1714, 1845, 1714, 1714, 1714, 1846, 1846, 1847, 1714, 1714,
965      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
966      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
967      1714, 1714, 1848, 1714, 1849, 1850, 1714, 1714, 1714, 1850,
968      1851, 1714, 1852, 1714, 1714, 1714, 1714, 1714, 1853, 1854,
969      1714, 1714, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1827,
970
971      1827, 1828, 1829, 1830, 1830, 1830, 1714, 1714, 1830, 1831,
972      1832, 1714, 1833, 1833, 1834, 1835, 1836, 1836, 1837, 1838,
973      1714, 1714, 1714, 1838, 1838, 1839, 1714, 1714, 1714, 1841,
974      1714, 1714, 1843, 1844, 1845, 1845, 1714, 1714, 1846, 1846,
975      1846, 1847, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
976      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1848,
977      1714, 1849, 1850, 1850, 1851, 1852, 1714, 1714, 1714, 1714,
978      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1853, 1854, 1714,
979      1714, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1714, 1714,
980      1827, 1827, 1714, 1714, 1829, 1830, 1830, 1830, 1714, 1714,
981
982      1714, 1830, 1714, 1714, 1832, 1714, 1714, 1714, 1714, 1714,
983      1834, 1835, 1714, 1714, 1714, 1714, 1837, 1838, 1838, 1838,
984      1839, 1714, 1714, 1714, 1714, 1841, 1714, 1714, 1714, 1714,
985      1714, 1844, 1845, 1845, 1714, 1714, 1714, 1846, 1846, 1847,
986      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
987      1714, 1714, 1714, 1848, 1714, 1714, 1714, 1850, 1850, 1851,
988      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
989      1714, 1714, 1853, 1714, 1714, 1714, 1714, 1827, 1827, 1827,
990      1714, 1714, 1827, 1714, 1714, 1829, 1830, 1714, 1714, 1830,
991      1830, 1714, 1714, 1830, 1714, 1714, 1714, 1714, 1714, 1714,
992
993      1714, 1714, 1714, 1834, 1835, 1714, 1714, 1714, 1714, 1714,
994      1714, 1837, 1838, 1838, 1838, 1839, 1714, 1841, 1844, 1845,
995      1845, 1714, 1714, 1714, 1714, 1846, 1846, 1847, 1714, 1714,
996      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1848, 1714, 1850,
997      1850, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
998      1714, 1714, 1714, 1714, 1714, 1714, 1853, 1714, 1714, 1714,
999      1714, 1714, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1827,
1000      1714, 1714, 1714, 1714, 1714, 1830, 1714, 1714, 1714, 1830,
1001      1830, 1714, 1714, 1714, 1714, 1830, 1714, 1834, 1835, 1837,
1002      1714, 1714, 1838, 1838, 1839, 1714, 1841, 1844, 1845, 1845,
1003
1004      1714, 1846, 1846, 1847, 1714, 1714, 1714, 1714, 1714, 1714,
1005      1848, 1714, 1714, 1850, 1714, 1714, 1714, 1714, 1714, 1714,
1006      1714, 1714, 1714, 1714, 1853, 1714, 1827, 1827, 1827, 1714,
1007      1714, 1714, 1714, 1827, 1714, 1714, 1830, 1830, 1830, 1714,
1008      1714, 1714, 1714, 1830, 1714, 1714, 1714, 1835, 1837, 1714,
1009      1714, 1714, 1714, 1714, 1838, 1714, 1714, 1714, 1841, 1844,
1010      1845, 1845, 1714, 1714, 1846, 1714, 1714, 1714, 1714, 1714,
1011      1848, 1714, 1714, 1714, 1850, 1714, 1714, 1714, 1714, 1714,
1012      1714, 1714, 1714, 1714, 1714, 1853, 1714, 1827, 1827, 1827,
1013      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1830, 1830, 1830,
1014
1015      1714, 1714, 1714, 1714, 1714, 1714, 1837, 1714, 1714, 1714,
1016      1714, 1714, 1714, 1714, 1844, 1845, 1845, 1714, 1714, 1714,
1017      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1018      1714, 1850, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1019      1714, 1714, 1853, 1714, 1827, 1827, 1827, 1714, 1714, 1714,
1020      1830, 1830, 1830, 1714, 1714, 1714, 1837, 1714, 1714, 1714,
1021      1844, 1845, 1845, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1022      1714, 1714, 1714, 1714, 1714, 1714, 1850, 1714, 1714, 1714,
1023      1714, 1714, 1714, 1714, 1714, 1853, 1714, 1714, 1714, 1827,
1024      1827, 1827, 1830, 1714, 1714, 1830, 1837, 1844, 1845, 1845,
1025
1026      1845, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1027      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1853, 1714, 1714,
1028      1714, 1827, 1827, 1827, 1827, 1830, 1714, 1714, 1714, 1830,
1029      1714, 1714, 1844, 1845, 1845, 1845, 1855, 1856, 1714, 1714,
1030      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1031      1714, 1714, 1714, 1853, 1827, 1827, 1827, 1827, 1714, 1714,
1032      1714, 1714, 1844, 1845, 1857, 1858, 1855, 1856, 1714, 1714,
1033      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1034      1827, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1714, 1714,
1035      1844, 1857, 1845, 1859, 1858, 1860, 1845, 1714, 1714, 1714,
1036
1037      1714, 1714, 1714, 1827, 1827, 1827, 1827, 1714, 1714, 1714,
1038      1714, 1844, 1859, 1714, 1860, 1845, 1714, 1714, 1714, 1714,
1039      1714, 1714, 1714, 1714, 1827, 1714, 1714, 1714, 1714, 1714,
1040      1714, 1844, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1041      1714, 1714, 1714, 1714, 1827, 1714, 1714, 1714, 1714, 1714,
1042      1714, 1714, 1844, 1714, 1827, 1714, 1714, 1714, 1714, 1844,
1043      1827, 1714, 1714, 1714, 1714, 1844, 1827, 1714, 1714, 1714,
1044      1714, 1844, 1714, 1714, 1714, 1714, 1714, 1714, 1844, 1714,
1045      1714, 1714, 1714, 1714, 1844, 1844, 1844, 1844, 1844, 1844,
1046      1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
1047
1048      1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
1049      1844, 1844, 1714,    0, 1714, 1714, 1714, 1714, 1714, 1714,
1050      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1051      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1052      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1053      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1054      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1055      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1056      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1057      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1058
1059      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1060      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1061      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1062      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1063      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1064      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714
1065     } ;
1066
1067 static yyconst flex_int16_t yy_nxt[5854] =
1068     {   0,
1069      1714,  174,  175,  174,  174,  175,  174,  174,  175,  174,
1070       174,  175,  174,  179,  175,  179,  185,  176,  182,  185,
1071       176,  182,  455,  177, 1714,  183,  177,  535,  183,  180,
1072       179,  175,  179,  401,  186,  188,  189,  186,  188,  189,
1073       190,  191,  536,  190,  191,  401,  180,  195,  196,  402,
1074       192,  188,  189,  192,  193,  404,  190,  188,  189,  468,
1075       193,  403,  190,  195,  196,  433,  192,  175,  175,  175,
1076       456,  403,  192,  175,  175,  175,  208,  175,  208,  208,
1077       175,  208,  467,  198,  208,  175,  208,  846,  197,  198,
1078       423,  541,  209,  425,  542,  209,  400,  400,  400,  847,
1079
1080       209,  400,  400,  400,  197,  199,  200,  175,  200,  199,
1081       199,  199,  199,  199,  199,  199,  201,  199,  199,  199,
1082       482,  199,  203,  199,  204,  199,  208,  175,  208,  175,
1083       175,  175,  434,  175,  175,  175,  208,  175,  208,  208,
1084       175,  208,  209,  492,  476,  210,  404,  199,  199,  210,
1085       404, 1469,  209,  477,  493,  209,  400,  400,  400,  400,
1086       400,  400,  403,  400,  400,  400,  403,  431,  456,  437,
1087       205,  438,  206,  199,  200,  175,  200,  199,  199,  199,
1088       199,  199,  199,  199,  201,  199,  199,  199, 1473,  199,
1089       203,  199,  204,  199,  208,  175,  208,  208,  175,  208,
1090
1091       494,  175,  175,  175,  175,  175,  175,  208,  175,  208,
1092       211, 1165,  523,  211,  451,  199,  199,  212,  452, 1166,
1093       212,  404,  453,  209,  499,  208,  175,  208,  175,  175,
1094       175,  175,  175,  175,  208,  175,  208,  403,  205,  660,
1095       206,  209,  941,  830,  213,  404,  524,  213,  456,  404,
1096       211,  208,  175,  208,  208,  175,  208,  208,  175,  208,
1097       456,  403,  400,  400,  400,  403,  557,  211,  500,  941,
1098       214, 1361,  558,  214,  215,  216,  175,  216,  215,  215,
1099       215,  215,  215,  215,  215,  217,  215,  215,  215,  535,
1100       215,  219,  215,  220,  215,  237,  175,  237, 1474, 1134,
1101
1102       415,  660,  237,  175,  237,  175,  175,  175,  188,  189,
1103       404,  238,  404,  190,  188,  189,  215,  215,  238,  190,
1104       938,  239,  576,  224,  221, 1475,  403,  222,  403,  224,
1105       400,  400,  400,  223,  215,  216,  175,  216,  215,  215,
1106       215,  215,  215,  215,  215,  217,  215,  215,  215,  225,
1107       215,  219,  215,  220,  215,  225,  175,  175,  175,  237,
1108       175,  237,  237,  175,  237,  237,  175,  237,  557,  237,
1109       175,  237,  239,  444,  564,  238,  215,  215,  238, 1266,
1110       445,  240,  557,  941,  221,  240, 1267,  222,  589,  403,
1111       400,  400,  400,  223,  226,  227,  175,  227,  226,  226,
1112
1113       226,  226,  226,  226,  226,  228,  226,  226,  226,  433,
1114       226,  230,  226,  231,  226,  251,  175,  251,  251,  175,
1115       251, 1133,  262,  175,  262,  262,  175,  262,  262,  175,
1116       262,  252,  404,  559,  252, 1476,  226,  226,  263,  462,
1117       429,  263,  559,  430,  264,  232,  560,  233,  403,  434,
1118       234,  435,  400,  400,  400,  565,  235,  226,  227,  175,
1119       227,  226,  226,  226,  226,  226,  226,  226,  228,  226,
1120       226,  226,  853,  226,  230,  226,  231,  226,  262,  175,
1121       262,  175,  175,  175,  847,  175,  175,  175,  262,  175,
1122       262,  262,  175,  262,  264,  404,  404,  265, 1170,  226,
1123
1124       226,  265,  404,  486,  266, 1477, 1171,  266,  232, 1478,
1125       233,  403,  403,  234,  400,  400,  400,  506,  403,  235,
1126       241,  242,  175,  242,  241,  241,  241,  241,  241,  241,
1127       241,  243,  241,  241,  241,  853,  241,  245,  241,  246,
1128       241,  262,  175,  262,  262,  175,  262,  876,  175,  175,
1129       175,  175,  175,  175,  262,  175,  262,  267, 1479, 1480,
1130       267,  500,  241,  241,  268,  404,  404,  268,  941,  247,
1131       264,  400,  400,  400,  248,  400,  400,  400,  400,  400,
1132       400,  403,  403,  249,  241,  242,  175,  242,  241,  241,
1133       241,  241,  241,  241,  241,  243,  241,  241,  241, 1481,
1134
1135       241,  245,  241,  246,  241,  262,  175,  262,  175,  175,
1136       175, 1300,  175,  175,  175,  262,  175,  262,  262,  175,
1137       262,  264, 1482, 1483,  269, 1268,  241,  241,  269,  404,
1138       404,  267, 1269,  247,  267,  400,  400,  400,  248,  400,
1139       400,  400,  400,  400,  400,  403,  403,  249,  253,  254,
1140       175,  254,  253,  253,  253,  253,  253,  253,  253,  255,
1141       253,  253,  253, 1484,  253,  257,  253,  258,  253,  262,
1142       175,  262,  262,  175,  262,  660,  175,  175,  175,  175,
1143       175,  175,  262,  175,  262,  270,  567,  559,  270, 1282,
1144       253,  253,  271,  516, 1485,  271, 1283, 1034,  272,  568,
1145
1146       570,  259,  400,  400,  400,  400,  400,  400, 1491,  260,
1147       253,  254,  175,  254,  253,  253,  253,  253,  253,  253,
1148       253,  255,  253,  253,  253,  941,  253,  257,  253,  258,
1149       253,  262,  175,  262,  175,  175,  175,  500,  175,  175,
1150       175,  262,  175,  262,  262,  175,  262,  272,  567, 1284,
1151       273,  941,  253,  253,  273,  660, 1285,  270, 1492, 1362,
1152       270,  565,  404,  259,  262,  175,  262,  262,  175,  262,
1153       662,  260,  400,  400,  400,  400,  400,  400,  403, 1220,
1154       274, 1493, 1496,  274,  275,  276,  175,  276,  275,  275,
1155       275,  275,  275,  275,  275,  277,  275,  275,  275,  278,
1156
1157       275,  279,  275,  280,  275,  278,  278,  278,  278,  278,
1158       278,  278,  278,  278,  278,  278,  278,  278,  278,  278,
1159       278,  278,  278,  278,  278,  278,  275,  275,  278,  281,
1160       278,  278,  278,  278,  278,  278,  278,  282,  278,  278,
1161       283,  278,  278,  284,  278,  278,  285,  278,  278,  286,
1162       278,  278,  278,  288,  175,  288,  288,  175,  288,  175,
1163       175,  175,  175,  175,  175,  288,  175,  288, 1040,  289,
1164       660,  660,  289, 1502, 1041,  239, 1219, 1503,  239, 1504,
1165      1505,  289,  288,  175,  288,  288,  175,  288,  288,  175,
1166       288,  400,  400,  400,  400,  400,  400, 1461,  289, 1506,
1167
1168      1507,  290,  660, 1510,  290,  291,  292,  175,  292,  291,
1169       291,  291,  291,  291,  291,  291,  293,  291,  291,  291,
1170       941,  291,  295,  291,  296,  291,  299,  175,  299,  299,
1171       175,  299,  941,  312,  175,  312,  312,  175,  312,  175,
1172       175,  175,  300,  567,  567,  300, 1498,  291,  291,  313,
1173       660, 1511,  313, 1512, 1416,  239,  560,  570,  297,  291,
1174       292,  175,  292,  291,  291,  291,  291,  291,  291,  291,
1175       293,  291,  291,  291, 1221,  291,  295,  291,  296,  291,
1176       175,  175,  175,  312,  175,  312, 1415,  312,  175,  312,
1177       312,  175,  312,  312,  175,  312,  239, 1513, 1067,  313,
1178
1179      1514,  291,  291,  313, 1068, 1515,  314, 1069, 1516,  314,
1180      1517, 1070,  297,  301,  302,  175,  302,  301,  301,  301,
1181       301,  301,  301,  301,  303,  301,  301,  301, 1428,  301,
1182       305,  301,  306,  301,  324,  175,  324,  324,  175,  324,
1183      1429,  175,  175,  175,  175,  175,  175,  324,  175,  324,
1184       325,  404,  941,  325, 1522,  301,  301,  326,  510,  307,
1185       326, 1523, 1524,  325,  941, 1525,  308,  403,  309,  400,
1186       400,  400,  400,  400,  400,  310,  301,  302,  175,  302,
1187       301,  301,  301,  301,  301,  301,  301,  303,  301,  301,
1188       301, 1299,  301,  305,  301,  306,  301,  324,  175,  324,
1189
1190       324,  175,  324, 1417,  324,  175,  324,  338,  175,  338,
1191       338,  175,  338,  325,  404, 1071,  327, 1526,  301,  301,
1192       327, 1072,  307,  339, 1073, 1530,  339, 1541, 1074,  308,
1193       403,  309,  400,  400,  400,  400,  400,  400,  310,  315,
1194       316,  175,  316,  315,  315,  315,  315,  315,  315,  315,
1195       317,  315,  315,  315, 1430,  315,  319,  315,  320,  315,
1196       175,  175,  175,  175,  175,  175, 1431,  338,  175,  338,
1197       338,  175,  338,  338,  175,  338,  326, 1542, 1543,  326,
1198      1544,  315,  315,  339,  404,  941,  339,  321, 1548,  340,
1199       400,  400,  400,  400,  400,  400,  400,  400,  400, 1549,
1200
1201       403,  322,  315,  316,  175,  316,  315,  315,  315,  315,
1202       315,  315,  315,  317,  315,  315,  315, 1499,  315,  319,
1203       315,  320,  315,  338,  175,  338,  349,  175,  349, 1550,
1204       349,  175,  349,  361,  175,  361,  361,  175,  361,  340,
1205       404, 1551,  350, 1552,  315,  315,  350,  528, 1553,  362,
1206       321, 1555,  362,  400,  400,  400,  403,  400,  400,  400,
1207       400,  400,  400, 1556,  322,  328,  329,  175,  329,  328,
1208       328,  328,  328,  328,  328,  328,  330,  328,  328,  328,
1209       941,  328,  332,  328,  333,  328,  175,  175,  175,  175,
1210       175,  175, 1557,  361,  175,  361,  361,  175,  361,  361,
1211
1212       175,  361,  326,  404, 1558,  326, 1569,  328,  328,  362,
1213       533, 1570,  362,  334, 1571,  363,  335,  941, 1462,  403,
1214       400,  400,  400,  678,  678,  678, 1572,  336,  328,  329,
1215       175,  329,  328,  328,  328,  328,  328,  328,  328,  330,
1216       328,  328,  328,  660,  328,  332,  328,  333,  328,  361,
1217       175,  361,  375,  175,  375, 1463,  375,  175,  375,  175,
1218       175,  175,  175,  175,  175,  363, 1573,  660,  376, 1574,
1219       328,  328,  376,  660, 1533,  377,  334, 1575,  377,  335,
1220      1576,  539,  539,  539,  539,  539,  539, 1577,  664, 1132,
1221       336,  341,  342,  175,  342,  341,  341,  341,  341,  341,
1222
1223       341,  341,  343,  341,  341,  341, 1563,  341,  345,  341,
1224       346,  341,  375,  175,  375,  375,  175,  375, 1578,  375,
1225       175,  375,  375,  175,  375,  387,  175,  387,  376, 1581,
1226      1582,  376, 1583,  341,  341,  378,  540, 1584,  378, 1598,
1227      1599,  388,  660, 1600,  347,  341,  342,  175,  342,  341,
1228       341,  341,  341,  341,  341,  341,  343,  341,  341,  341,
1229      1601,  341,  345,  341,  346,  341,  387,  175,  387,  398,
1230       175,  398, 1593,  398,  175,  398,  573,  573,  573, 1602,
1231      1603,  409,  388, 1596, 1591,  399,  467,  341,  341,  399,
1232       700,  700,  700,  574,  701, 1604,  471,  702,  347,  351,
1233
1234       352,  175,  352,  351,  351,  351,  351,  351,  351,  351,
1235       353,  351,  351,  351, 1605,  351,  355,  351,  356,  351,
1236       410,  469,  581,  581,  581, 1606,  411,  595,  595,  595,
1237       412,  604,  604,  604, 1607,  413,  613,  613,  613,  582,
1238      1608,  351,  351,  404,  596, 1614, 1610,  357,  605, 1614,
1239       358, 1609,  660,  614,  678,  678,  678, 1611, 1617,  403,
1240       421,  359,  351,  352,  175,  352,  351,  351,  351,  351,
1241       351,  351,  351,  353,  351,  351,  351, 1618,  351,  355,
1242       351,  356,  351, 1628,  422,  423,  618,  618,  618, 1612,
1243      1593,  429,  941,  942,  430,  635,  635,  635,  431, 1629,
1244
1245       432, 1596,  428,  619,  351,  351,  404,  693,  693,  693,
1246       357, 1630,  636,  358,  679,  952,  952,  952,  693,  693,
1247       693, 1631,  403,  421,  359,  364,  365,  175,  365,  364,
1248       364,  364,  364,  364,  364,  364,  366,  364,  364,  364,
1249      1614,  364,  368,  364,  369,  364, 1633,  422,  423,  654,
1250       654,  654, 1614, 1634,  424, 1635, 1645,  425,  674,  674,
1251       674,  431, 1649,  436, 1650,  428,  655,  364,  364,  404,
1252       953,  953,  953, 1651, 1652,  370,  676,  371,  679,  372,
1253      1654,  678,  678,  678,  954,  403,  433,  373,  364,  365,
1254       175,  365,  364,  364,  364,  364,  364,  364,  364,  366,
1255
1256       364,  364,  364, 1655,  364,  368,  364,  369,  364, 1656,
1257       422,  423,  573,  573,  573, 1657, 1658,  429, 1659, 1661,
1258       430,  674,  674,  674,  426,  660,  434, 1662,  435,  574,
1259       364,  364,  404,  957,  957,  957, 1663, 1664,  370,  676,
1260       371,  739,  372,  961,  961,  961, 1665, 1660,  403,  433,
1261       373,  379,  380,  175,  380,  379,  379,  379,  379,  379,
1262       379,  379,  381,  379,  379,  379, 1667,  379,  383,  379,
1263       384,  379, 1668,  422,  423,  677, 1593,  705,  705,  705,
1264       429, 1669, 1593,  430,  705,  705,  705,  456,  660,  437,
1265      1594,  438, 1670,  379,  379,  707, 1594,  404,  581,  581,
1266
1267       581, 1671,  707,  710,  710,  710, 1666,  711, 1675, 1676,
1268       712, 1677, 1678,  403,  421,  582,  385,  379,  380,  175,
1269       380,  379,  379,  379,  379,  379,  379,  379,  381,  379,
1270       379,  379, 1683,  379,  383,  379,  384,  379,  422,  423,
1271       713,  713,  713,  660,  708,  429, 1684,  660,  425,  716,
1272       716,  716,  431, 1679,  437,  660,  438,  714, 1711,  379,
1273       379, 1468, 1672,  404, 1453,  660,  717,  731,  731,  731,
1274       660,  732,  660,  660,  733,  693,  693,  693, 1685,  403,
1275       471,  660,  385,  389,  390,  175,  390,  389,  389,  389,
1276       389,  389,  389,  389,  391,  389,  389,  389, 1689,  389,
1277
1278       393,  389,  394,  389,  422,  423,  719,  719,  719,  660,
1279      1693,  429, 1703, 1690,  430,  727,  727,  727,  431, 1704,
1280       437,  660,  438, 1697,  721,  389,  389,  660,  660,  404,
1281       595,  595,  595,  729, 1452,  739,  395,  742,  742,  742,
1282      1451,  743,  660, 1691,  744,  403,  433,  596,  396,  389,
1283       390,  175,  390,  389,  389,  389,  389,  389,  389,  389,
1284       391,  389,  389,  389, 1694,  389,  393,  389,  394,  389,
1285       422,  469,  719,  719,  719, 1447, 1692,  429,  404, 1446,
1286       430,  727,  727,  727,  431,  660,  437, 1445,  438,  660,
1287       721,  389,  389,  660,  403,  433,  604,  604,  604,  729,
1288
1289       660,  660,  395,  735,  735,  735,  735,  735,  735,  750,
1290       750,  750, 1444,  605,  396,  404,  722, 1695, 1442,  422,
1291       423,  737,  420, 1699,  737, 1696,  424,  752, 1441,  425,
1292      1701,  403,  421,  431, 1700,  472, 1440,  438,  404,  660,
1293       660,  730,  738,  750,  750,  750,  660,  613,  613,  613,
1294       757,  757,  757, 1439,  403,  433,  422,  423,  754,  754,
1295       754,  752,  755,  424,  614,  756,  425,  660,  759, 1702,
1296       426, 1438,  427,  660,  428,  404,  757,  757,  757,  422,
1297       423, 1698,  467,  768,  768,  768,  429,  404, 1437,  430,
1298      1707,  403,  468,  431,  759,  434, 1705,  438,  660,  660,
1299
1300       753,  770, 1706,  403,  433,  618,  618,  618,  404, 1436,
1301      1435,  762,  762,  762, 1434,  763,  422,  469,  764,  768,
1302       768,  768,  619,  424,  403,  433,  425, 1709,  422,  423,
1303       431, 1433,  470,  760,  438,  429, 1432,  770,  500,  776,
1304       776,  776,  431, 1708,  437, 1425,  438,  660, 1424,  524,
1305       423,  772,  772,  772, 1423, 1711,  429,  778, 1402,  430,
1306       774,  774,  774,  456, 1401,  437,  660,  438,  773, 1400,
1307      1399,  771,  776,  776,  776, 1398, 1710,  775,  781,  781,
1308       781, 1714, 1714, 1714,  785,  785,  785,  787,  787,  787,
1309       778,  787,  787,  787, 1392,  782, 1391, 1390, 1714, 1389,
1310
1311      1388,  786,  635,  635,  635,  789,  791,  791,  791,  789,
1312       792, 1387, 1385,  793,  794,  794,  794, 1384, 1383,  636,
1313       794,  794,  794,  798,  798,  798, 1382,  790,  783,  779,
1314      1381, 1380,  796, 1714, 1714, 1714, 1379, 1378,  796, 1377,
1315       799, 1376,  784,  802,  802,  802,  804,  804,  804, 1375,
1316      1714,  804,  804,  804, 1371,  812,  812,  812, 1370, 1369,
1317       803,  812,  812,  812,  806,  818,  818,  818, 1368,  806,
1318      1365, 1355,  797,  814,  818,  818,  818, 1344, 1343,  814,
1319       800, 1342, 1341,  820,  654,  654,  654, 1340, 1339,  822,
1320       822,  822,  820,  823,  801, 1338,  824,  826,  826,  826,
1321
1322      1334,  655,  826,  826,  826,  674,  674,  674,  674,  674,
1323       674,  674,  674,  674, 1333,  828, 1332, 1331,  807, 1330,
1324       828,  815, 1329,  676, 1328, 1327,  676, 1326, 1324,  676,
1325       860,  860,  860, 1323,  821,  700,  700,  700, 1322,  701,
1326      1321, 1320,  702, 1714, 1714, 1714, 1319,  861,  705,  705,
1327       705,  705,  705,  705, 1318,  839, 1317,  705,  705,  705,
1328      1714, 1316,  829,  710,  710,  710,  707,  711, 1315,  707,
1329       712,  713,  713,  713, 1314,  707,  866,  866,  866, 1311,
1330       867, 1310, 1309,  868, 1306,  869,  869,  869,  714,  716,
1331       716,  716,  871,  871,  871, 1303,  872, 1302, 1296,  873,
1332
1333       862,  864,  870,  719,  719,  719,  717,  719,  719,  719,
1334       719,  719,  719,  878,  878,  878,  727,  727,  727, 1294,
1335      1293,  721,  727,  727,  727,  721, 1287, 1286,  721, 1281,
1336       879,  727,  727,  727,  729,  731,  731,  731, 1280,  732,
1337       729, 1276,  733,  735,  735,  735,  735,  735,  735,  729,
1338       883,  883,  883,  742,  742,  742, 1270,  743, 1265, 1264,
1339       744,  737, 1263, 1262,  737, 1256,  875, 1255,  884,  750,
1340       750,  750,  750,  750,  750,  881,  750,  750,  750,  754,
1341       754,  754, 1254,  755, 1253, 1252,  756,  752, 1251, 1250,
1342       752,  757,  757,  757,  752,  757,  757,  757,  757,  757,
1343
1344       757,  762,  762,  762, 1249,  763, 1248, 1247,  764,  759,
1345       768,  768,  768,  759, 1241, 1240,  759,  768,  768,  768,
1346       768,  768,  768,  772,  772,  772, 1239, 1238,  770,  900,
1347       900,  900, 1237,  901, 1235,  770,  902,  893,  770, 1233,
1348       773,  774,  774,  774,  903,  903,  903, 1232,  904, 1231,
1349      1230,  905,  776,  776,  776,  776,  776,  776,  775, 1227,
1350      1226,  894,  776,  776,  776,  781,  781,  781, 1222, 1217,
1351       778, 1215, 1214,  778, 1213, 1197,  899,  908,  908,  908,
1352       778,  909,  782, 1194,  910,  785,  785,  785,  913,  913,
1353       913, 1193,  914, 1192, 1191,  915,  787,  787,  787,  787,
1354
1355       787,  787,  786,  787,  787,  787,  791,  791,  791, 1187,
1356       792, 1183, 1182,  793,  789, 1181, 1180,  789,  794,  794,
1357       794,  789,  794,  794,  794,  906,  794,  794,  794,  798,
1358       798,  798,  802,  802,  802, 1179,  796,  804,  804,  804,
1359       796,  918,  918,  918,  796,  919,  799, 1178,  920,  803,
1360       923,  923,  923, 1177,  924,  806, 1176,  925,  804,  804,
1361       804, 1172, 1169,  916, 1168,  804,  804,  804,  928,  928,
1362       928,  812,  812,  812, 1167, 1164,  806,  812,  812,  812,
1363      1163, 1159,  917,  806, 1158,  929,  812,  812,  812,  814,
1364       818,  818,  818, 1155, 1154,  814,  818,  818,  818,  818,
1365
1366       818,  818, 1153, 1150,  814,  822,  822,  822,  820,  823,
1367      1149, 1146,  824, 1145,  820, 1144, 1143,  820,  826,  826,
1368       826, 1142, 1141,  926,  826,  826,  826,  826,  826,  826,
1369      1139, 1138,  940,  940,  940, 1135,  828,  674,  674,  674,
1370      1122, 1120,  828,  932, 1119,  828,  962,  962,  962,  935,
1371       941,  942,  860,  860,  860,  676, 1118,  970,  970,  970,
1372       954,  971, 1106, 1102,  972,  705,  705,  705, 1098,  861,
1373       866,  866,  866, 1097,  867, 1096, 1092,  868,  869,  869,
1374       869, 1091, 1084,  707,  937,  977,  977,  977, 1083,  978,
1375      1082, 1081,  979, 1080, 1079,  870,  871,  871,  871,  948,
1376
1377       872, 1066, 1064,  873,  719,  719,  719,  982,  982,  982,
1378      1063,  975,  878,  878,  878, 1061,  984,  984,  984, 1060,
1379       985, 1057,  721,  986,  987,  987,  987, 1054, 1049,  879,
1380       727,  727,  727, 1048,  883,  883,  883,  996,  996,  996,
1381      1047,  988,  998,  998,  998,  750,  750,  750,  729, 1046,
1382      1045,  981,  884, 1044,  997,  757,  757,  757, 1043,  999,
1383      1007, 1007, 1007,  752, 1039,  768,  768,  768,  900,  900,
1384       900, 1038,  901,  759, 1037,  902,  989, 1008,  941, 1027,
1385       903,  903,  903,  770,  904, 1000, 1025,  905,  776,  776,
1386       776,  962,  962,  962,  908,  908,  908, 1024,  909, 1020,
1387
1388      1018,  910, 1017, 1009, 1014, 1012,  778, 1002,  913,  913,
1389       913, 1013,  914, 1006, 1005,  915, 1004, 1003, 1010,  787,
1390       787,  787,  794,  794,  794,  918,  918,  918, 1001,  919,
1391       995,  994,  920,  993,  923,  923,  923,  789,  924,  992,
1392       796,  925,  804,  804,  804,  928,  928,  928,  991,  990,
1393      1011, 1021, 1021, 1021,  983, 1022,  980,  976, 1023,  974,
1394       806,  973,  929,  812,  812,  812, 1028, 1028, 1028,  818,
1395       818,  818, 1031, 1031, 1031, 1016, 1015,  826,  826,  826,
1396       969,  814,  968, 1029,  967,  966, 1019,  820,  965, 1032,
1397       940,  940,  940,  964,  963,  828,  674,  674,  674,  952,
1398
1399       952,  952,  953,  953,  953,  957,  957,  957,  941, 1026,
1400      1050, 1050, 1050,  960,  676, 1052, 1052, 1052,  961,  961,
1401       961,  962,  962,  962, 1055, 1055, 1055,  959,  958, 1053,
1402       956,  955, 1030,  951,  950, 1033,  949,  947, 1035, 1050,
1403      1050, 1050, 1058, 1058, 1058, 1042, 1055, 1055, 1055, 1058,
1404      1058, 1058,  946,  945, 1036,  944, 1053,  970,  970,  970,
1405       943,  971,  936, 1059,  972,  705,  705,  705,  934,  933,
1406      1051,  977,  977,  977,  931,  978,  930,  927,  979,  719,
1407       719,  719,  922,  707, 1056,  982,  982,  982,  984,  984,
1408       984,  921,  985,  912,  911,  986,  907,  721,  898, 1056,
1409
1410       987,  987,  987, 1075, 1075, 1075, 1051, 1076,  897,  896,
1411      1077,  895,  892, 1062,  727,  727,  727,  988,  996,  996,
1412       996, 1085, 1085, 1085,  891, 1086,  890,  889, 1087,  998,
1413       998,  998,  729,  888,  887,  997, 1065, 1088, 1088, 1088,
1414       886, 1089,  885,  882, 1090,  880,  999, 1093, 1093, 1093,
1415       757,  757,  757, 1007, 1007, 1007, 1099, 1099, 1099,  877,
1416      1100,  874, 1078, 1101,  865, 1094,  863,  859,  759,  858,
1417      1008, 1103, 1103, 1103,  776,  776,  776, 1107, 1107, 1107,
1418      1109, 1109, 1109,  787,  787,  787,  794,  794,  794, 1104,
1419       857,  856,  778,  855, 1108,  854,  852, 1110, 1095,  851,
1420
1421      1112,  789,  850,  849,  796,  848, 1113, 1113, 1113, 1115,
1422      1115, 1115,  804,  804,  804,  845,  844, 1021, 1021, 1021,
1423       843, 1022, 1105, 1114, 1023,  842, 1116,  812,  812,  812,
1424       806, 1028, 1028, 1028, 1123, 1123, 1123,  841, 1124,  840,
1425       838, 1125,  818,  818,  818,  814, 1111,  837, 1029, 1031,
1426      1031, 1031, 1127, 1127, 1127,  836, 1128,  835,  834, 1129,
1427       820, 1130, 1130, 1130,  833,  832, 1032, 1136, 1136, 1136,
1428       674,  674,  674, 1117,  831, 1121, 1147, 1147, 1147, 1131,
1429      1050, 1050, 1050,  660, 1137, 1148, 1148, 1148,  676, 1052,
1430      1052, 1052, 1055, 1055, 1055,  825,  817, 1126, 1151, 1151,
1431
1432      1151, 1152, 1152, 1152, 1058, 1058, 1058, 1156, 1156, 1156,
1433       719,  719,  719, 1161, 1161, 1161, 1075, 1075, 1075,  816,
1434      1076,  811,  810, 1077,  809, 1157,  808, 1140,  721,  780,
1435      1162,  727,  727,  727, 1174, 1174, 1174, 1085, 1085, 1085,
1436       767, 1086,  766,  765, 1087, 1173, 1088, 1088, 1088,  729,
1437      1089, 1175,  761, 1090, 1184, 1184, 1184, 1093, 1093, 1093,
1438       757,  757,  757,  749,  748, 1160, 1188, 1188, 1188,  747,
1439       746, 1185, 1099, 1099, 1099, 1094, 1100,  745,  759, 1101,
1440      1103, 1103, 1103, 1189, 1195, 1195, 1195, 1107, 1107, 1107,
1441      1198, 1198, 1198,  741, 1199,  740,  734, 1200, 1104, 1109,
1442
1443      1109, 1109, 1196,  726, 1108,  725, 1201, 1201, 1201, 1190,
1444      1202,  724,  723, 1203,  718,  715, 1110,  787,  787,  787,
1445      1186,  794,  794,  794, 1113, 1113, 1113, 1206, 1206, 1206,
1446       709, 1207,  704,  703, 1208,  789, 1115, 1115, 1115,  796,
1447       699, 1114, 1209, 1209, 1209,  698, 1210,  697,  696, 1211,
1448       804,  804,  804, 1116,  812,  812,  812, 1123, 1123, 1123,
1449       695, 1124,  694,  692, 1125,  691,  690, 1205,  806,  818,
1450       818,  818,  814, 1127, 1127, 1127,  689, 1128,  688, 1204,
1451      1129, 1130, 1130, 1130, 1136, 1136, 1136,  820, 1223, 1223,
1452      1223,  687, 1224,  686,  685, 1225,  674,  674,  674, 1131,
1453
1454       684, 1137, 1229, 1229, 1229, 1234, 1234, 1234, 1147, 1147,
1455      1147, 1212,  683,  682,  676, 1216,  681, 1218, 1148, 1148,
1456      1148, 1236, 1236, 1236, 1151, 1151, 1151, 1152, 1152, 1152,
1457      1156, 1156, 1156, 1242, 1242, 1242, 1161, 1161, 1161, 1244,
1458      1244, 1244,  680, 1245,  673,  672, 1246,  671, 1157,  670,
1459       669, 1243,  668, 1162,  667,  666, 1228,  727,  727,  727,
1460      1174, 1174, 1174, 1258, 1258, 1258,  663, 1259,  661,  660,
1461      1260, 1261, 1261, 1261,  658,  729,  656, 1175, 1184, 1184,
1462      1184, 1271, 1271, 1271,  653, 1272,  651,  650, 1273, 1274,
1463      1274, 1274, 1188, 1188, 1188, 1185,  649, 1277, 1277, 1277,
1464
1465       647, 1278,  646, 1257, 1279,  645,  644, 1275,  643, 1189,
1466      1195, 1195, 1195, 1198, 1198, 1198,  641, 1199,  640,  639,
1467      1200,  638, 1201, 1201, 1201,  634, 1202,  632, 1196, 1203,
1468       787,  787,  787,  794,  794,  794, 1206, 1206, 1206,  631,
1469      1207,  630,  629, 1208,  628, 1209, 1209, 1209,  789, 1210,
1470       626,  796, 1211,  804,  804,  804, 1291, 1291, 1291,  812,
1471       812,  812,  818,  818,  818, 1298, 1298, 1298, 1301, 1301,
1472      1301,  806,  625, 1292, 1229, 1229, 1229,  814, 1288,  624,
1473       820,  622,  621,  660,  620, 1223, 1223, 1223, 1290, 1224,
1474       617,  616, 1225,  612,  610, 1289,  674,  674,  674, 1305,
1475
1476      1305, 1305, 1307, 1307, 1307, 1308, 1308, 1308, 1234, 1234,
1477      1234, 1236, 1236, 1236,  676, 1312, 1312, 1312, 1297,  609,
1478      1295, 1242, 1242, 1242, 1244, 1244, 1244,  608, 1245,  607,
1479       606, 1246, 1313,  603,  727,  727,  727,  602,  601, 1243,
1480      1258, 1258, 1258,  600, 1259,  599,  597, 1260, 1261, 1261,
1481      1261, 1304,  729, 1271, 1271, 1271,  594, 1272,  592,  591,
1482      1273, 1274, 1274, 1274, 1335, 1335, 1335, 1277, 1277, 1277,
1483       590, 1278,  588,  586, 1279, 1345, 1345, 1345,  585, 1275,
1484       584, 1336, 1346, 1346, 1346,  794,  794,  794,  804,  804,
1485       804, 1325, 1291, 1291, 1291, 1350, 1350, 1350,  583, 1351,
1486
1487      1347,  580, 1352,  796,  579,  578,  806, 1337,  575, 1292,
1488      1353, 1353, 1353, 1356, 1356, 1356, 1358, 1358, 1358,  818,
1489       818,  818, 1298, 1298, 1298,  572,  571, 1354, 1301, 1301,
1490      1301, 1357, 1363, 1363, 1363,  569,  566,  820,  563,  562,
1491       660, 1348, 1366, 1366, 1366, 1349, 1305, 1305, 1305, 1364,
1492      1307, 1307, 1307, 1308, 1308, 1308, 1312, 1312, 1312,  561,
1493      1367, 1372, 1372, 1372,  556, 1373,  555,  554, 1374,  727,
1494       727,  727,  553, 1313, 1393, 1393, 1393, 1335, 1335, 1335,
1495      1360, 1359, 1395, 1395, 1395,  552, 1396,  729,  551, 1397,
1496       549, 1394,  548,  547, 1336, 1403, 1403, 1403, 1345, 1345,
1497
1498      1345, 1346, 1346, 1346, 1405, 1405, 1405,  546,  804,  804,
1499       804,  545, 1404, 1350, 1350, 1350,  544, 1351,  543, 1347,
1500      1352,  538, 1406,  535,  537, 1386,  806, 1353, 1353, 1353,
1501      1408, 1408, 1408,  532, 1409,  531,  529, 1410, 1411, 1411,
1502      1411, 1356, 1356, 1356, 1354, 1358, 1358, 1358, 1413, 1413,
1503      1413, 1363, 1363, 1363,  527, 1412, 1418, 1418, 1418, 1357,
1504      1419,  525,  523, 1420,  522,  521, 1414,  520, 1364,  519,
1505       517, 1407, 1421, 1421, 1421, 1366, 1366, 1366, 1426, 1426,
1506      1426, 1372, 1372, 1372,  516, 1373,  515,  514, 1374, 1422,
1507       727,  727,  727, 1367,  513, 1427, 1393, 1393, 1393, 1448,
1508
1509      1448, 1448,  511, 1449,  509,  507, 1450,  506,  729,  505,
1510      1395, 1395, 1395, 1394, 1396,  504,  503, 1397, 1403, 1403,
1511      1403, 1454, 1454, 1454,  501, 1455,  499,  498, 1456, 1405,
1512      1405, 1405,  804,  804,  804, 1404, 1408, 1408, 1408,  497,
1513      1409,  495,  494, 1410,  491,  490, 1443, 1406,  489,  487,
1514       806, 1411, 1411, 1411, 1458, 1458, 1458,  485, 1459,  483,
1515       482, 1460, 1413, 1413, 1413, 1418, 1418, 1418, 1412, 1419,
1516       481,  480, 1420, 1421, 1421, 1421,  479, 1464, 1464, 1464,
1517      1414, 1465,  478,  475, 1466, 1467, 1467, 1467,  473,  467,
1518      1422, 1426, 1426, 1426, 1457, 1470, 1470, 1470,  433, 1471,
1519
1520       466,  465, 1472,  727,  727,  727,  463,  461, 1427, 1487,
1521      1487, 1487, 1488, 1488, 1488, 1448, 1448, 1448,  460, 1449,
1522       459,  729, 1450, 1494, 1494, 1494, 1454, 1454, 1454, 1489,
1523      1455,  457,  455, 1456,  804,  804,  804, 1458, 1458, 1458,
1524      1495, 1459,  454,  450, 1460, 1500, 1500, 1500, 1467, 1467,
1525      1467, 1486,  806,  449,  447, 1490,  446, 1464, 1464, 1464,
1526       443, 1465, 1501,  941, 1466, 1470, 1470, 1470,  442, 1471,
1527       441,  439, 1472, 1508, 1508, 1508,  727,  727,  727, 1487,
1528      1487, 1487, 1497, 1488, 1488, 1488, 1494, 1494, 1494,  419,
1529      1509, 1519, 1519, 1519,  729, 1520,  418,  416, 1521,  414,
1530
1531      1489,  408,  407, 1495, 1527, 1527, 1527,  408, 1528,  407,
1532       406, 1529, 1531, 1531, 1531, 1534, 1534, 1534, 1500, 1500,
1533      1500,  405, 1518, 1714, 1536, 1536, 1536, 1714, 1537, 1714,
1534      1532, 1538, 1535,  941, 1714, 1501,  941, 1539, 1539, 1539,
1535      1714, 1714,  941, 1540, 1540, 1540, 1508, 1508, 1508, 1545,
1536      1545, 1545, 1714, 1546, 1714, 1714, 1547,  727,  727,  727,
1537      1519, 1519, 1519, 1509, 1520, 1714, 1714, 1521, 1559, 1559,
1538      1559, 1714, 1527, 1527, 1527,  729, 1528, 1714, 1714, 1529,
1539      1561, 1561, 1561, 1714, 1714, 1560, 1531, 1531, 1531, 1534,
1540      1534, 1534, 1564, 1564, 1564, 1714, 1565, 1562, 1714, 1566,
1541
1542      1539, 1539, 1539, 1714, 1532, 1714, 1535,  941, 1714, 1714,
1543       941, 1536, 1536, 1536, 1714, 1537, 1714, 1714, 1538, 1554,
1544      1540, 1540, 1540, 1714, 1579, 1579, 1579, 1714, 1714,  941,
1545       939,  939,  939,  939,  939,  939,  939,  939,  939, 1714,
1546      1714,  939, 1580, 1559, 1559, 1559,  939,  939,  939,  941,
1547       939, 1545, 1545, 1545, 1714, 1546, 1714, 1714, 1547, 1714,
1548      1560, 1585, 1585, 1585, 1714, 1586, 1714, 1714, 1587, 1561,
1549      1561, 1561,  939,  939,  939,  939,  939,  939,  939,  939,
1550       939,  939,  939, 1714, 1714,  939, 1562, 1714, 1714, 1714,
1551       939,  939,  939,  941,  939, 1588, 1588, 1588, 1714, 1589,
1552
1553      1714, 1714, 1590, 1564, 1564, 1564, 1714, 1565, 1714, 1714,
1554      1566, 1714, 1714, 1579, 1579, 1579,  939,  939, 1616, 1616,
1555      1616,  941,  939,  939,  939,  939,  939, 1597,  939,  939,
1556       939, 1580, 1714,  939, 1714, 1714,  941,  942,  939,  939,
1557       939,  941,  939, 1585, 1585, 1585, 1714, 1586, 1714, 1714,
1558      1587, 1588, 1588, 1588, 1714, 1589, 1714, 1714, 1590, 1619,
1559      1619, 1619, 1714, 1714,  939,  939,  939,  939,  939,  939,
1560       939,  939,  939,  939, 1597, 1714, 1620,  939, 1621, 1621,
1561      1621, 1714,  939,  939,  939,  941,  939, 1623, 1623, 1623,
1562      1626, 1626, 1626, 1714, 1714, 1622, 1632, 1632, 1632, 1616,
1563
1564      1616, 1616, 1714, 1714, 1624, 1714, 1714, 1627,  939,  939,
1565      1619, 1619, 1619, 1714,  660, 1714, 1714,  941, 1636, 1636,
1566      1636, 1714, 1637, 1714, 1714, 1638, 1714, 1620, 1714, 1714,
1567      1625, 1621, 1621, 1621, 1639, 1639, 1639, 1714, 1640, 1714,
1568      1714, 1641, 1623, 1623, 1623, 1714, 1714, 1035, 1622, 1642,
1569      1642, 1642, 1714, 1643, 1714, 1714, 1644, 1714, 1714, 1624,
1570      1626, 1626, 1626, 1646, 1646, 1646, 1714, 1647, 1714, 1714,
1571      1648, 1632, 1632, 1632, 1636, 1636, 1636, 1627, 1637, 1714,
1572      1714, 1638, 1714, 1639, 1639, 1639, 1714, 1640, 1714,  660,
1573      1641, 1642, 1642, 1642, 1714, 1643, 1714, 1714, 1644, 1646,
1574
1575      1646, 1646, 1714, 1647, 1714, 1714, 1648, 1653, 1673, 1673,
1576      1673, 1673, 1673, 1673, 1680, 1680, 1680, 1714, 1681, 1714,
1577      1714, 1682, 1680, 1680, 1680, 1674, 1681, 1714, 1674, 1682,
1578      1686, 1686, 1686, 1686, 1686, 1686, 1714, 1687, 1714, 1714,
1579      1688, 1712, 1712, 1712, 1712, 1712, 1712, 1714,  660, 1714,
1580      1714,  660, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1713,
1581      1714, 1714, 1713,  172,  172,  172,  172,  172,  172,  172,
1582       172,  172,  173,  173,  173,  173,  173,  173,  173,  173,
1583       173,  178,  178,  178,  178,  178,  178,  178,  178,  178,
1584       181,  181,  181,  181,  181,  181,  181,  181,  181,  184,
1585
1586       184,  184,  184,  184,  184,  184,  184,  184,  187,  187,
1587       187,  187,  187,  187,  187,  187,  187,  194,  194,  194,
1588       194,  194,  194,  194,  194,  194,  202,  202,  202,  202,
1589       202,  202,  202,  202,  202,  207,  207,  207,  207,  207,
1590       207,  207,  207,  207,  218,  218,  218,  218,  218,  218,
1591       218,  218,  218,  229,  229,  229,  229,  229,  229,  229,
1592       229,  229,  236,  236,  236,  236,  236,  236,  236,  236,
1593       236,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1594       250,  250,  250,  250,  250,  250,  250,  250,  250,  256,
1595       256,  256,  256,  256,  256,  256,  256,  256,  261,  261,
1596
1597       261,  261,  261,  261,  261,  261,  261,  287,  287,  287,
1598       287,  287,  287,  287,  287,  287,  294,  294,  294,  294,
1599       294,  294,  294,  294,  294,  298,  298,  298,  298,  298,
1600       298,  298,  298,  298,  304,  304,  304,  304,  304,  304,
1601       304,  304,  304,  311,  311,  311,  311,  311,  311,  311,
1602       311,  311,  318,  318,  318,  318,  318,  318,  318,  318,
1603       318,  323,  323,  323,  323,  323,  323,  323,  323,  323,
1604       331,  331,  331,  331,  331,  331,  331,  331,  331,  337,
1605       337,  337,  337,  337,  337,  337,  337,  337,  344,  344,
1606       344,  344,  344,  344,  344,  344,  344,  348,  348,  348,
1607
1608       348,  348,  348,  348,  348,  348,  354,  354,  354,  354,
1609       354,  354,  354,  354,  354,  360,  360,  360,  360,  360,
1610       360,  360,  360,  360,  367,  367,  367,  367,  367,  367,
1611       367,  367,  367,  374,  374,  374,  374,  374,  374,  374,
1612       374,  374,  382,  382,  382,  382,  382,  382,  382,  382,
1613       382,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1614       392,  392,  392,  392,  392,  392,  392,  392,  392,  397,
1615       397,  397,  397,  397,  397,  397,  397,  397,  417,  417,
1616       417, 1714, 1714, 1714,  417,  440,  440,  440, 1714, 1714,
1617      1714,  440,  448,  448,  448, 1714, 1714, 1714,  448,  458,
1618
1619       458,  458, 1714, 1714, 1714,  458,  464,  464,  464, 1714,
1620      1714, 1714,  464,  474,  474,  474, 1714, 1714, 1714,  474,
1621       484,  484,  484, 1714, 1714, 1714,  484,  488,  488,  488,
1622      1714, 1714, 1714,  488,  496,  496,  496, 1714, 1714, 1714,
1623       496,  502,  502,  502, 1714, 1714, 1714,  502,  508,  508,
1624       508, 1714, 1714, 1714,  508,  512,  512,  512, 1714, 1714,
1625      1714,  512,  518,  518,  518, 1714, 1714, 1714,  518,  526,
1626       526,  526, 1714, 1714, 1714,  526,  530,  530,  530, 1714,
1627      1714, 1714,  530,  534,  534,  534,  534,  534,  534,  534,
1628      1714,  534,  550, 1714, 1714, 1714,  550,  577, 1714, 1714,
1629
1630      1714,  577,  587, 1714, 1714, 1714,  587,  593, 1714, 1714,
1631      1714,  593,  598, 1714, 1714, 1714,  598,  611, 1714, 1714,
1632      1714,  611,  615, 1714, 1714, 1714,  615,  623, 1714, 1714,
1633      1714,  623,  627, 1714, 1714, 1714,  627,  633, 1714, 1714,
1634      1714,  633,  637, 1714, 1714, 1714,  637,  512,  512,  512,
1635      1714, 1714, 1714,  512,  642, 1714, 1714, 1714,  642,  518,
1636       518,  518, 1714, 1714, 1714,  518,  648, 1714, 1714, 1714,
1637       648,  526,  526,  526, 1714, 1714, 1714,  526,  652, 1714,
1638      1714, 1714,  652,  530,  530,  530, 1714, 1714, 1714,  530,
1639       657, 1714, 1714, 1714,  657,  659,  659,  659,  659,  659,
1640
1641       659,  659,  659,  659,  665, 1714, 1714, 1714, 1714,  665,
1642       417,  417,  417, 1714, 1714, 1714,  417,  675,  675,  675,
1643       675, 1714, 1714,  675,  675,  440,  440,  440, 1714, 1714,
1644      1714,  440,  706,  706,  706,  706, 1714, 1714,  706,  706,
1645       448,  448,  448, 1714, 1714, 1714,  448,  720,  720,  720,
1646       720, 1714, 1714,  720,  720,  458,  458,  458, 1714, 1714,
1647      1714,  458,  728,  728,  728,  728, 1714, 1714,  728,  728,
1648       464,  464,  464, 1714, 1714, 1714,  464,  736,  736,  736,
1649       736, 1714, 1714,  736,  736,  474,  474,  474, 1714, 1714,
1650      1714,  474,  751,  751,  751,  751, 1714, 1714,  751,  751,
1651
1652       758,  758,  758,  758, 1714, 1714,  758,  758,  488,  488,
1653       488, 1714, 1714, 1714,  488,  769,  769,  769,  769, 1714,
1654      1714,  769,  769,  496,  496,  496,  496, 1714,  496, 1714,
1655       496,  777,  777,  777,  777, 1714, 1714,  777,  777,  502,
1656       502,  502,  502, 1714,  502, 1714,  502,  788,  788,  788,
1657       788, 1714, 1714,  788,  788,  795,  795,  795,  795, 1714,
1658      1714,  795,  795,  512,  512,  512,  512, 1714,  512, 1714,
1659       512,  805,  805,  805,  805, 1714, 1714,  805,  805,  518,
1660       518,  518, 1714, 1714, 1714,  518,  813,  813,  813,  813,
1661      1714, 1714,  813,  813,  526,  526,  526, 1714, 1714, 1714,
1662
1663       526,  819,  819,  819,  819, 1714, 1714,  819,  819,  530,
1664       530,  530, 1714, 1714, 1714,  530,  827,  827,  827,  827,
1665      1714, 1714,  827,  827,  659,  659,  659,  659,  659,  659,
1666       659,  659,  659,  665, 1714,  665, 1714, 1714,  665,  417,
1667       417,  417, 1714, 1714, 1714,  417,  675,  675,  675,  675,
1668      1714, 1714,  675,  675,  440,  440,  440,  440, 1714,  440,
1669      1714,  440,  706,  706,  706,  706, 1714, 1714,  706,  706,
1670       448,  448,  448, 1714, 1714, 1714,  448,  720,  720,  720,
1671       720, 1714, 1714,  720,  720,  458,  458,  458, 1714, 1714,
1672      1714,  458,  728,  728,  728,  728, 1714, 1714,  728,  728,
1673
1674       464,  464,  464, 1714, 1714, 1714,  464,  736,  736,  736,
1675       736, 1714, 1714,  736,  736,  474,  474,  474, 1714, 1714,
1676      1714,  474,  751,  751,  751,  751, 1714, 1714,  751,  751,
1677       758,  758,  758,  758, 1714, 1714,  758,  758,  488,  488,
1678       488, 1714, 1714, 1714,  488,  769,  769,  769,  769, 1714,
1679      1714,  769,  769,  777,  777,  777,  777, 1714, 1714,  777,
1680       777,  502,  502,  502, 1714, 1714, 1714,  502,  788,  788,
1681       788,  788, 1714, 1714,  788,  788,  795,  795,  795,  795,
1682      1714, 1714,  795,  795,  512,  512,  512, 1714, 1714, 1714,
1683       512,  805,  805,  805,  805, 1714, 1714,  805,  805,  518,
1684
1685       518,  518, 1714, 1714, 1714,  518,  813,  813,  813,  813,
1686      1714, 1714,  813,  813,  526,  526,  526, 1714, 1714, 1714,
1687       526,  819,  819,  819,  819, 1714, 1714,  819,  819,  530,
1688       530,  530, 1714, 1714, 1714,  530,  827,  827,  827,  827,
1689      1714, 1714,  827,  827,  659,  659,  659,  659,  659,  659,
1690       659,  659,  659,  939,  939,  939,  939,  939,  939,  939,
1691       939,  939,  417,  417,  417, 1714, 1714, 1714,  417,  675,
1692       675,  675,  675, 1714, 1714,  675,  675,  440,  440,  440,
1693      1714, 1714, 1714,  440,  706,  706,  706,  706, 1714, 1714,
1694       706,  706,  448,  448,  448, 1714, 1714, 1714,  448,  720,
1695
1696       720,  720,  720, 1714, 1714,  720,  720,  458,  458,  458,
1697      1714, 1714, 1714,  458,  728,  728,  728,  728, 1714, 1714,
1698       728,  728,  464,  464,  464, 1714, 1714, 1714,  464, 1567,
1699      1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1568, 1568,
1700      1568, 1568, 1568, 1568, 1568, 1568, 1568, 1592, 1592, 1592,
1701      1592, 1592, 1592, 1592, 1592, 1592, 1595, 1595, 1595, 1595,
1702      1595, 1595, 1595, 1595, 1595, 1613, 1613, 1613, 1613, 1613,
1703      1613, 1613, 1613, 1613, 1615, 1615, 1615, 1615, 1615, 1615,
1704      1615, 1615, 1615,  171, 1714, 1714, 1714, 1714, 1714, 1714,
1705      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1706
1707      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1708      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1709      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1710      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1711      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1712      1714, 1714, 1714
1713     } ;
1714
1715 static yyconst flex_int16_t yy_chk[5854] =
1716     {   0,
1717         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1718         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1719         4,   10,  238,    5,    0,    9,    6,  401,   10,    7,
1720         8,    8,    8,  176,   11,   13,   13,   12,   14,   14,
1721        13,   13,  401,   14,   14,  177,    8,   17,   17,  176,
1722        13,   15,   15,   14,   15,  180,   15,   16,   16,  266,
1723        16,  177,   16,   18,   18,  272,   15,   19,   19,   19,
1724       238,  180,   16,   20,   20,   20,   23,   23,   23,   24,
1725        24,   24,  270,   19,   25,   25,   25,  685,   17,   20,
1726       272,  410,   23,  266,  410,   24,  174,  174,  174,  685,
1727
1728        25,  175,  175,  175,   18,   21,   21,   21,   21,   21,
1729        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1730       289,   21,   21,   21,   21,   21,   26,   26,   26,   27,
1731        27,   27,  270,   28,   28,   28,   29,   29,   29,   30,
1732        30,   30,   26,  310,  282,   27,  203,   21,   21,   28,
1733       219, 1425,   29,  282,  310,   30,  179,  179,  179,  200,
1734       200,  200,  203,  208,  208,  208,  219,  214,  289,  214,
1735        21,  214,   21,   22,   22,   22,   22,   22,   22,   22,
1736        22,   22,   22,   22,   22,   22,   22,   22, 1428,   22,
1737        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
1738
1739       313,   33,   33,   33,   34,   34,   34,   35,   35,   35,
1740        31, 1069,  376,   32,  234,   22,   22,   33,  234, 1069,
1741        34,  230,  234,   35,  325,   36,   36,   36,   37,   37,
1742        37,   38,   38,   38,   39,   39,   39,  230,   22,  662,
1743        22,   36, 1299,  662,   37,  198,  376,   38,  313,  245,
1744        39,   40,   40,   40,   41,   41,   41,   42,   42,   42,
1745       376,  198,  216,  216,  216,  245,  426,   40,  325, 1036,
1746        41, 1299,  426,   42,   43,   43,   43,   43,   43,   43,
1747        43,   43,   43,   43,   43,   43,   43,   43,   43,  444,
1748        43,   43,   43,   43,   43,   49,   49,   49, 1429, 1036,
1749
1750       198,  830,   50,   50,   50,   51,   51,   51,   45,   45,
1751       257,   49,  279,   45,   46,   46,   43,   43,   50,   46,
1752       830,   51,  444,   45,   43, 1430,  257,   43,  279,   46,
1753       227,  227,  227,   43,   44,   44,   44,   44,   44,   44,
1754        44,   44,   44,   44,   44,   44,   44,   44,   44,   45,
1755        44,   44,   44,   44,   44,   46,   52,   52,   52,   53,
1756        53,   53,   54,   54,   54,   55,   55,   55,  431,   56,
1757        56,   56,   52,  224,  431,   53,   44,   44,   54, 1181,
1758       224,   55,  456, 1035,   44,   56, 1181,   44,  456,  224,
1759       237,  237,  237,   44,   47,   47,   47,   47,   47,   47,
1760
1761        47,   47,   47,   47,   47,   47,   47,   47,   47,  211,
1762        47,   47,   47,   47,   47,   59,   59,   59,   60,   60,
1763        60, 1035,   63,   63,   63,   64,   64,   64,   65,   65,
1764        65,   59,  252,  427,   60, 1431,   47,   47,   63,  252,
1765       211,   64,  432,  211,   65,   47,  427,   47,  252,  211,
1766        47,  211,  242,  242,  242,  432,   47,   48,   48,   48,
1767        48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
1768        48,   48,  691,   48,   48,   48,   48,   48,   66,   66,
1769        66,   67,   67,   67,  691,   68,   68,   68,   69,   69,
1770        69,   70,   70,   70,   66,  295,  300,   67, 1073,   48,
1771
1772        48,   68,  305,  300,   69, 1432, 1073,   70,   48, 1433,
1773        48,  295,  300,   48,  251,  251,  251,  339,  305,   48,
1774        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
1775        57,   57,   57,   57,   57,  723,   57,   57,   57,   57,
1776        57,   71,   71,   71,   72,   72,   72,  723,   73,   73,
1777        73,   74,   74,   74,   75,   75,   75,   71, 1434, 1435,
1778        72,  339,   57,   57,   73,  319,  332,   74, 1221,   57,
1779        75,  254,  254,  254,   57,  262,  262,  262,  276,  276,
1780       276,  319,  332,   57,   58,   58,   58,   58,   58,   58,
1781        58,   58,   58,   58,   58,   58,   58,   58,   58, 1436,
1782
1783        58,   58,   58,   58,   58,   76,   76,   76,   77,   77,
1784        77, 1221,   78,   78,   78,   79,   79,   79,   80,   80,
1785        80,   76, 1438, 1439,   77, 1182,   58,   58,   78,  345,
1786       355,   79, 1182,   58,   80,  288,  288,  288,   58,  292,
1787       292,  292,  299,  299,  299,  345,  355,   58,   61,   61,
1788        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1789        61,   61,   61, 1440,   61,   61,   61,   61,   61,   81,
1790        81,   81,   82,   82,   82,  938,   83,   83,   83,   84,
1791        84,   84,   85,   85,   85,   81,  434,  436,   82, 1192,
1792        61,   61,   83,  362, 1441,   84, 1192,  938,   85,  434,
1793
1794       436,   61,  302,  302,  302,  312,  312,  312, 1446,   61,
1795        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
1796        62,   62,   62,   62,   62, 1300,   62,   62,   62,   62,
1797        62,   86,   86,   86,   87,   87,   87,  362,   88,   88,
1798        88,   89,   89,   89,   90,   90,   90,   86,  437, 1193,
1799        87, 1133,   62,   62,   88,  536, 1193,   89, 1447, 1300,
1800        90,  437,  368,   62,   91,   91,   91,   92,   92,   92,
1801       536,   62,  316,  316,  316,  324,  324,  324,  368, 1133,
1802        91, 1451, 1453,   92,   93,   93,   93,   93,   93,   93,
1803        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
1804
1805        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
1806        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
1807        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
1808        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
1809        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
1810        93,   93,   93,   95,   95,   95,   96,   96,   96,   97,
1811        97,   97,   98,   98,   98,   99,   99,   99,  947,   95,
1812      1132, 1415,   96, 1468,  947,   97, 1132, 1469,   98, 1473,
1813      1474,   99,  100,  100,  100,  101,  101,  101,  102,  102,
1814       102,  329,  329,  329,  338,  338,  338, 1415,  100, 1475,
1815
1816      1476,  101, 1461, 1478,  102,  103,  103,  103,  103,  103,
1817       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
1818      1361,  103,  103,  103,  103,  103,  105,  105,  105,  106,
1819       106,  106, 1134,  109,  109,  109,  110,  110,  110,  111,
1820       111,  111,  105,  470,  472,  106, 1461,  103,  103,  109,
1821      1360, 1479,  110, 1480, 1361,  111,  470,  472,  103,  104,
1822       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
1823       104,  104,  104,  104, 1134,  104,  104,  104,  104,  104,
1824       112,  112,  112,  113,  113,  113, 1360,  114,  114,  114,
1825       115,  115,  115,  116,  116,  116,  112, 1481,  985,  113,
1826
1827      1482,  104,  104,  114,  985, 1483,  115,  985, 1484,  116,
1828      1485,  985,  104,  107,  107,  107,  107,  107,  107,  107,
1829       107,  107,  107,  107,  107,  107,  107,  107, 1373,  107,
1830       107,  107,  107,  107,  119,  119,  119,  120,  120,  120,
1831      1373,  121,  121,  121,  122,  122,  122,  123,  123,  123,
1832       119,  350, 1220,  120, 1490,  107,  107,  121,  350,  107,
1833       122, 1491, 1491,  123, 1362, 1492,  107,  350,  107,  342,
1834       342,  342,  349,  349,  349,  107,  108,  108,  108,  108,
1835       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
1836       108, 1220,  108,  108,  108,  108,  108,  124,  124,  124,
1837
1838       125,  125,  125, 1362,  126,  126,  126,  129,  129,  129,
1839       130,  130,  130,  124,  383,  986,  125, 1493,  108,  108,
1840       126,  986,  108,  129,  986, 1496,  130, 1504,  986,  108,
1841       383,  108,  352,  352,  352,  361,  361,  361,  108,  117,
1842       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
1843       117,  117,  117,  117, 1374,  117,  117,  117,  117,  117,
1844       131,  131,  131,  132,  132,  132, 1374,  133,  133,  133,
1845       134,  134,  134,  135,  135,  135,  131, 1505, 1506,  132,
1846      1507,  117,  117,  133,  393, 1462,  134,  117, 1510,  135,
1847       365,  365,  365,  375,  375,  375,  380,  380,  380, 1511,
1848
1849       393,  117,  118,  118,  118,  118,  118,  118,  118,  118,
1850       118,  118,  118,  118,  118,  118,  118, 1462,  118,  118,
1851       118,  118,  118,  136,  136,  136,  139,  139,  139, 1513,
1852       140,  140,  140,  143,  143,  143,  144,  144,  144,  136,
1853       388, 1514,  139, 1515,  118,  118,  140,  388, 1517,  143,
1854       118, 1522,  144,  387,  387,  387,  388,  390,  390,  390,
1855       398,  398,  398, 1523,  118,  127,  127,  127,  127,  127,
1856       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
1857      1416,  127,  127,  127,  127,  127,  145,  145,  145,  146,
1858       146,  146, 1524,  147,  147,  147,  148,  148,  148,  149,
1859
1860       149,  149,  145,  399, 1525,  146, 1541,  127,  127,  147,
1861       399, 1542,  148,  127, 1543,  149,  127, 1417, 1416,  399,
1862       400,  400,  400,  678,  678,  678, 1544,  127,  128,  128,
1863       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
1864       128,  128,  128, 1498,  128,  128,  128,  128,  128,  150,
1865       150,  150,  153,  153,  153, 1417,  154,  154,  154,  155,
1866       155,  155,  156,  156,  156,  150, 1548, 1533,  153, 1549,
1867       128,  128,  154, 1034, 1498,  155,  128, 1550,  156,  128,
1868      1551,  409,  409,  409,  539,  539,  539, 1552,  539, 1034,
1869       128,  137,  137,  137,  137,  137,  137,  137,  137,  137,
1870
1871       137,  137,  137,  137,  137,  137, 1533,  137,  137,  137,
1872       137,  137,  157,  157,  157,  158,  158,  158, 1553,  159,
1873       159,  159,  160,  160,  160,  163,  163,  163,  157, 1555,
1874      1556,  158, 1557,  137,  137,  159,  409, 1558,  160, 1569,
1875      1571,  163, 1563, 1574,  137,  138,  138,  138,  138,  138,
1876       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
1877      1575,  138,  138,  138,  138,  138,  164,  164,  164,  167,
1878       167,  167, 1566,  168,  168,  168,  442,  442,  442, 1577,
1879      1578,  190,  164, 1566, 1563,  167,  264,  138,  138,  168,
1880       574,  574,  574,  442,  574, 1581,  264,  574,  138,  141,
1881
1882       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
1883       141,  141,  141,  141, 1582,  141,  141,  141,  141,  141,
1884       190,  264,  450,  450,  450, 1583,  190,  465,  465,  465,
1885       190,  476,  476,  476, 1584,  190,  485,  485,  485,  450,
1886      1589,  141,  141,  210,  465, 1594, 1590,  141,  476, 1596,
1887       141, 1589, 1591,  485,  552,  552,  552, 1590, 1598,  210,
1888       210,  141,  142,  142,  142,  142,  142,  142,  142,  142,
1889       142,  142,  142,  142,  142,  142,  142, 1599,  142,  142,
1890       142,  142,  142, 1608,  210,  210,  490,  490,  490, 1591,
1891      1595,  210, 1593, 1593,  210,  509,  509,  509,  210, 1609,
1892
1893       210, 1595,  210,  490,  142,  142,  212,  693,  693,  693,
1894       142, 1610,  509,  142,  552,  843,  843,  843,  566,  566,
1895       566, 1611,  212,  212,  142,  151,  151,  151,  151,  151,
1896       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
1897      1613,  151,  151,  151,  151,  151, 1614,  212,  212,  531,
1898       531,  531, 1615, 1617,  212, 1618, 1625,  212,  550,  550,
1899       550,  212, 1628,  212, 1629,  212,  531,  151,  151,  213,
1900       844,  844,  844, 1630, 1631,  151,  550,  151,  566,  151,
1901      1633,  600,  600,  600,  844,  213,  213,  151,  152,  152,
1902       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
1903
1904       152,  152,  152, 1645,  152,  152,  152,  152,  152, 1649,
1905       213,  213,  573,  573,  573, 1650, 1651,  213, 1652, 1655,
1906       213,  551,  551,  551,  213, 1653,  213, 1656,  213,  573,
1907       152,  152,  239,  847,  847,  847, 1657, 1658,  152,  551,
1908       152,  600,  152,  851,  851,  851, 1659, 1653,  239,  239,
1909       152,  161,  161,  161,  161,  161,  161,  161,  161,  161,
1910       161,  161,  161,  161,  161,  161, 1661,  161,  161,  161,
1911       161,  161, 1662,  239,  239,  551, 1565,  577,  577,  577,
1912       239, 1663, 1592,  239,  578,  578,  578,  239, 1660,  239,
1913      1565,  239, 1664,  161,  161,  577, 1592,  265,  581,  581,
1914
1915       581, 1665,  578,  582,  582,  582, 1660,  582, 1668, 1669,
1916       582, 1670, 1671,  265,  265,  581,  161,  162,  162,  162,
1917       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
1918       162,  162, 1675,  162,  162,  162,  162,  162,  265,  265,
1919       583,  583,  583, 1666,  578,  265, 1677, 1672,  265,  585,
1920       585,  585,  265, 1672,  265, 1687,  265,  583, 1709,  162,
1921       162, 1424, 1666,  268, 1400, 1679,  585,  596,  596,  596,
1922      1688,  596, 1709, 1691,  596,  602,  602,  602, 1679,  268,
1923       268, 1695,  162,  165,  165,  165,  165,  165,  165,  165,
1924       165,  165,  165,  165,  165,  165,  165,  165, 1687,  165,
1925
1926       165,  165,  165,  165,  268,  268,  587,  587,  587, 1689,
1927      1691,  268, 1701, 1688,  268,  593,  593,  593,  268, 1702,
1928       268, 1701,  268, 1695,  587,  165,  165, 1692, 1702,  269,
1929       595,  595,  595,  593, 1399,  602,  165,  605,  605,  605,
1930      1398,  605, 1690, 1689,  605,  269,  269,  595,  165,  166,
1931       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
1932       166,  166,  166,  166, 1692,  166,  166,  166,  166,  166,
1933       269,  269,  588,  588,  588, 1390, 1690,  269,  271, 1389,
1934       269,  594,  594,  594,  269, 1693,  269, 1388,  269, 1697,
1935       588,  166,  166, 1694,  271,  271,  604,  604,  604,  594,
1936
1937      1698, 1699,  166,  598,  598,  598,  599,  599,  599,  611,
1938       611,  611, 1387,  604,  166,  209,  588, 1693, 1385,  271,
1939       271,  598,  209, 1697,  599, 1694,  271,  611, 1384,  271,
1940      1699,  209,  209,  271, 1698,  271, 1383,  271,  273, 1696,
1941      1700,  594,  599,  612,  612,  612, 1705,  613,  613,  613,
1942       615,  615,  615, 1382,  273,  273,  209,  209,  614,  614,
1943       614,  612,  614,  209,  613,  614,  209, 1703,  615, 1700,
1944       209, 1381,  209, 1704,  209,  263,  616,  616,  616,  273,
1945       273, 1696,  263,  623,  623,  623,  273,  326, 1380,  273,
1946      1705,  263,  263,  273,  616,  273, 1703,  273, 1707, 1706,
1947
1948       612,  623, 1704,  326,  326,  618,  618,  618,  377, 1379,
1949      1378,  619,  619,  619, 1377,  619,  263,  263,  619,  624,
1950       624,  624,  618,  263,  377,  377,  263, 1707,  326,  326,
1951       263, 1376,  263,  616,  263,  326, 1375,  624,  326,  627,
1952       627,  627,  326, 1706,  326, 1370,  326, 1708, 1369,  377,
1953       377,  625,  625,  625, 1368, 1710,  377,  627, 1342,  377,
1954       626,  626,  626,  377, 1340,  377, 1710,  377,  625, 1339,
1955      1338,  624,  628,  628,  628, 1337, 1708,  626,  630,  630,
1956       630,  631,  631,  631,  632,  632,  632,  633,  633,  633,
1957       628,  634,  634,  634, 1332,  630, 1330, 1329,  631, 1328,
1958
1959      1327,  632,  635,  635,  635,  633,  636,  636,  636,  634,
1960       636, 1326, 1324,  636,  637,  637,  637, 1323, 1322,  635,
1961       638,  638,  638,  639,  639,  639, 1321,  634,  631,  628,
1962      1320, 1319,  637,  640,  640,  640, 1318, 1317,  638, 1316,
1963       639, 1315,  631,  641,  641,  641,  642,  642,  642, 1314,
1964       640,  643,  643,  643, 1311,  648,  648,  648, 1310, 1309,
1965       641,  649,  649,  649,  642,  652,  652,  652, 1306,  643,
1966      1303, 1294,  638,  648,  653,  653,  653, 1286, 1285,  649,
1967       640, 1284, 1283,  652,  654,  654,  654, 1282, 1281,  655,
1968       655,  655,  653,  655,  640, 1280,  655,  657,  657,  657,
1969
1970      1270,  654,  658,  658,  658,  674,  674,  674,  675,  675,
1971       675,  677,  677,  677, 1269,  657, 1268, 1267,  643, 1266,
1972       658,  649, 1265,  674, 1264, 1263,  675, 1262, 1256,  677,
1973       699,  699,  699, 1255,  653,  700,  700,  700, 1254,  700,
1974      1253, 1252,  700,  703,  703,  703, 1251,  699,  705,  705,
1975       705,  706,  706,  706, 1250,  677, 1249,  708,  708,  708,
1976       703, 1248,  658,  710,  710,  710,  705,  710, 1247,  706,
1977       710,  713,  713,  713, 1241,  708,  714,  714,  714, 1238,
1978       714, 1237, 1235,  714, 1231,  715,  715,  715,  713,  716,
1979       716,  716,  717,  717,  717, 1227,  717, 1226, 1217,  717,
1980
1981       703,  708,  715,  719,  719,  719,  716,  720,  720,  720,
1982       722,  722,  722,  725,  725,  725,  727,  727,  727, 1215,
1983      1214,  719,  728,  728,  728,  720, 1197, 1194,  722, 1191,
1984       725,  730,  730,  730,  727,  731,  731,  731, 1190,  731,
1985       728, 1187,  731,  735,  735,  735,  736,  736,  736,  730,
1986       738,  738,  738,  742,  742,  742, 1183,  742, 1180, 1179,
1987       742,  735, 1178, 1177,  736, 1172,  722, 1171,  738,  750,
1988       750,  750,  751,  751,  751,  730,  753,  753,  753,  754,
1989       754,  754, 1170,  754, 1169, 1168,  754,  750, 1167, 1166,
1990       751,  757,  757,  757,  753,  758,  758,  758,  760,  760,
1991
1992       760,  762,  762,  762, 1165,  762, 1164, 1163,  762,  757,
1993       768,  768,  768,  758, 1159, 1158,  760,  769,  769,  769,
1994       771,  771,  771,  772,  772,  772, 1155, 1154,  768,  773,
1995       773,  773, 1153,  773, 1149,  769,  773,  753,  771, 1145,
1996       772,  774,  774,  774,  775,  775,  775, 1144,  775, 1143,
1997      1142,  775,  776,  776,  776,  777,  777,  777,  774, 1139,
1998      1138,  760,  779,  779,  779,  781,  781,  781, 1135, 1122,
1999       776, 1120, 1119,  777, 1118, 1106,  771,  782,  782,  782,
2000       779,  782,  781, 1102,  782,  785,  785,  785,  786,  786,
2001       786, 1101,  786, 1100, 1098,  786,  787,  787,  787,  788,
2002
2003       788,  788,  785,  790,  790,  790,  791,  791,  791, 1096,
2004       791, 1091, 1090,  791,  787, 1089, 1084,  788,  794,  794,
2005       794,  790,  795,  795,  795,  779,  797,  797,  797,  798,
2006       798,  798,  802,  802,  802, 1083,  794,  804,  804,  804,
2007       795,  799,  799,  799,  797,  799,  798, 1082,  799,  802,
2008       803,  803,  803, 1081,  803,  804, 1080,  803,  805,  805,
2009       805, 1074, 1072,  790, 1071,  807,  807,  807,  809,  809,
2010       809,  812,  812,  812, 1070, 1068,  805,  813,  813,  813,
2011      1067, 1064,  797,  807, 1063,  809,  815,  815,  815,  812,
2012       818,  818,  818, 1061, 1060,  813,  819,  819,  819,  821,
2013
2014       821,  821, 1059, 1054,  815,  822,  822,  822,  818,  822,
2015      1053, 1048,  822, 1047,  819, 1046, 1045,  821,  826,  826,
2016       826, 1044, 1043,  807,  827,  827,  827,  829,  829,  829,
2017      1041, 1040,  831,  831,  831, 1038,  826,  839,  839,  839,
2018      1027, 1025,  827,  815, 1024,  829,  852,  852,  852,  821,
2019       831,  831,  860,  860,  860,  839, 1020,  861,  861,  861,
2020       852,  861, 1012, 1009,  861,  864,  864,  864, 1006,  860,
2021       866,  866,  866, 1005,  866, 1004, 1001,  866,  869,  869,
2022       869, 1000,  995,  864,  829,  870,  870,  870,  994,  870,
2023       993,  992,  870,  991,  990,  869,  871,  871,  871,  839,
2024
2025       871,  983,  980,  871,  875,  875,  875,  876,  876,  876,
2026       976,  864,  878,  878,  878,  974,  879,  879,  879,  973,
2027       879,  965,  875,  879,  880,  880,  880,  963,  958,  878,
2028       881,  881,  881,  956,  883,  883,  883,  890,  890,  890,
2029       955,  880,  891,  891,  891,  893,  893,  893,  881,  954,
2030       951,  875,  883,  950,  890,  894,  894,  894,  949,  891,
2031       898,  898,  898,  893,  946,  899,  899,  899,  900,  900,
2032       900,  945,  900,  894,  942,  900,  881,  898,  939,  933,
2033       903,  903,  903,  899,  903,  891,  931,  903,  906,  906,
2034       906,  907,  907,  907,  908,  908,  908,  930,  908,  927,
2035
2036       922,  908,  921,  898,  912,  907,  906,  893,  913,  913,
2037       913,  911,  913,  897,  896,  913,  895,  894,  899,  916,
2038       916,  916,  917,  917,  917,  918,  918,  918,  892,  918,
2039       889,  888,  918,  887,  923,  923,  923,  916,  923,  886,
2040       917,  923,  926,  926,  926,  928,  928,  928,  885,  882,
2041       906,  929,  929,  929,  877,  929,  874,  865,  929,  863,
2042       926,  862,  928,  932,  932,  932,  934,  934,  934,  935,
2043       935,  935,  936,  936,  936,  917,  916,  937,  937,  937,
2044       859,  932,  858,  934,  857,  856,  926,  935,  855,  936,
2045       940,  940,  940,  854,  853,  937,  948,  948,  948,  952,
2046
2047       952,  952,  953,  953,  953,  957,  957,  957,  940,  932,
2048       959,  959,  959,  850,  948,  960,  960,  960,  961,  961,
2049       961,  962,  962,  962,  964,  964,  964,  849,  848,  960,
2050       846,  845,  935,  842,  841,  937,  840,  838,  940,  966,
2051       966,  966,  967,  967,  967,  948,  968,  968,  968,  969,
2052       969,  969,  837,  836,  940,  835,  967,  970,  970,  970,
2053       834,  970,  825,  969,  970,  975,  975,  975,  817,  816,
2054       959,  977,  977,  977,  811,  977,  810,  808,  977,  981,
2055       981,  981,  801,  975,  964,  982,  982,  982,  984,  984,
2056       984,  800,  984,  784,  783,  984,  780,  981,  767,  966,
2057
2058       987,  987,  987,  988,  988,  988,  968,  988,  766,  765,
2059       988,  761,  749,  975,  989,  989,  989,  987,  996,  996,
2060       996,  997,  997,  997,  748,  997,  747,  746,  997,  998,
2061       998,  998,  989,  745,  741,  996,  981,  999,  999,  999,
2062       740,  999,  739,  734,  999,  726,  998, 1002, 1002, 1002,
2063      1003, 1003, 1003, 1007, 1007, 1007, 1008, 1008, 1008,  724,
2064      1008,  718,  989, 1008,  709, 1002,  704,  698, 1003,  697,
2065      1007, 1010, 1010, 1010, 1011, 1011, 1011, 1013, 1013, 1013,
2066      1014, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1016, 1010,
2067       696,  695, 1011,  694, 1013,  692,  690, 1014, 1003,  689,
2068
2069      1016, 1015,  688,  687, 1016,  686, 1017, 1017, 1017, 1018,
2070      1018, 1018, 1019, 1019, 1019,  684,  683, 1021, 1021, 1021,
2071       682, 1021, 1011, 1017, 1021,  681, 1018, 1026, 1026, 1026,
2072      1019, 1028, 1028, 1028, 1029, 1029, 1029,  680, 1029,  679,
2073       673, 1029, 1030, 1030, 1030, 1026, 1015,  672, 1028, 1031,
2074      1031, 1031, 1032, 1032, 1032,  671, 1032,  670,  667, 1032,
2075      1030, 1033, 1033, 1033,  666,  665, 1031, 1039, 1039, 1039,
2076      1042, 1042, 1042, 1019,  663, 1026, 1049, 1049, 1049, 1033,
2077      1050, 1050, 1050,  659, 1039, 1051, 1051, 1051, 1042, 1052,
2078      1052, 1052, 1055, 1055, 1055,  656,  651, 1030, 1056, 1056,
2079
2080      1056, 1057, 1057, 1057, 1058, 1058, 1058, 1062, 1062, 1062,
2081      1065, 1065, 1065, 1066, 1066, 1066, 1075, 1075, 1075,  650,
2082      1075,  647,  646, 1075,  645, 1062,  644, 1042, 1065,  629,
2083      1066, 1078, 1078, 1078, 1079, 1079, 1079, 1085, 1085, 1085,
2084       622, 1085,  621,  620, 1085, 1078, 1088, 1088, 1088, 1078,
2085      1088, 1079,  617, 1088, 1092, 1092, 1092, 1093, 1093, 1093,
2086      1095, 1095, 1095,  610,  609, 1065, 1097, 1097, 1097,  608,
2087       607, 1092, 1099, 1099, 1099, 1093, 1099,  606, 1095, 1099,
2088      1103, 1103, 1103, 1097, 1105, 1105, 1105, 1107, 1107, 1107,
2089      1108, 1108, 1108,  603, 1108,  601,  597, 1108, 1103, 1109,
2090
2091      1109, 1109, 1105,  592, 1107,  591, 1110, 1110, 1110, 1097,
2092      1110,  590,  589, 1110,  586,  584, 1109, 1111, 1111, 1111,
2093      1095, 1112, 1112, 1112, 1113, 1113, 1113, 1114, 1114, 1114,
2094       580, 1114,  576,  575, 1114, 1111, 1115, 1115, 1115, 1112,
2095       572, 1113, 1116, 1116, 1116,  571, 1116,  570,  569, 1116,
2096      1117, 1117, 1117, 1115, 1121, 1121, 1121, 1123, 1123, 1123,
2097       568, 1123,  567,  565, 1123,  564,  563, 1112, 1117, 1126,
2098      1126, 1126, 1121, 1127, 1127, 1127,  562, 1127,  561, 1111,
2099      1127, 1130, 1130, 1130, 1136, 1136, 1136, 1126, 1137, 1137,
2100      1137,  560, 1137,  559,  558, 1137, 1140, 1140, 1140, 1130,
2101
2102       557, 1136, 1141, 1141, 1141, 1146, 1146, 1146, 1147, 1147,
2103      1147, 1117,  556,  555, 1140, 1121,  554, 1126, 1148, 1148,
2104      1148, 1150, 1150, 1150, 1151, 1151, 1151, 1152, 1152, 1152,
2105      1156, 1156, 1156, 1160, 1160, 1160, 1161, 1161, 1161, 1162,
2106      1162, 1162,  553, 1162,  549,  548, 1162,  547, 1156,  545,
2107       544, 1160,  543, 1161,  542,  541, 1140, 1173, 1173, 1173,
2108      1174, 1174, 1174, 1175, 1175, 1175,  537, 1175,  535,  534,
2109      1175, 1176, 1176, 1176,  533, 1173,  532, 1174, 1184, 1184,
2110      1184, 1185, 1185, 1185,  528, 1185,  527,  524, 1185, 1186,
2111      1186, 1186, 1188, 1188, 1188, 1184,  523, 1189, 1189, 1189,
2112
2113       522, 1189,  521, 1173, 1189,  520,  519, 1186,  516, 1188,
2114      1195, 1195, 1195, 1198, 1198, 1198,  515, 1198,  514,  513,
2115      1198,  510, 1201, 1201, 1201,  506, 1201,  505, 1195, 1201,
2116      1204, 1204, 1204, 1205, 1205, 1205, 1206, 1206, 1206,  504,
2117      1206,  503,  500, 1206,  499, 1209, 1209, 1209, 1204, 1209,
2118       498, 1205, 1209, 1212, 1212, 1212, 1213, 1213, 1213, 1216,
2119      1216, 1216, 1218, 1218, 1218, 1219, 1219, 1219, 1222, 1222,
2120      1222, 1212,  497, 1213, 1229, 1229, 1229, 1216, 1204,  494,
2121      1218,  493,  492, 1219,  491, 1223, 1223, 1223, 1212, 1223,
2122       489,  486, 1223,  482,  481, 1205, 1228, 1228, 1228, 1230,
2123
2124      1230, 1230, 1232, 1232, 1232, 1233, 1233, 1233, 1234, 1234,
2125      1234, 1236, 1236, 1236, 1228, 1240, 1240, 1240, 1218,  480,
2126      1216, 1242, 1242, 1242, 1244, 1244, 1244,  479, 1244,  478,
2127       477, 1244, 1240,  475, 1257, 1257, 1257,  471,  469, 1242,
2128      1258, 1258, 1258,  468, 1258,  467,  466, 1258, 1261, 1261,
2129      1261, 1228, 1257, 1271, 1271, 1271,  462, 1271,  461,  460,
2130      1271, 1274, 1274, 1274, 1276, 1276, 1276, 1277, 1277, 1277,
2131       459, 1277,  455,  454, 1277, 1287, 1287, 1287,  453, 1274,
2132       452, 1276, 1288, 1288, 1288, 1289, 1289, 1289, 1290, 1290,
2133      1290, 1257, 1291, 1291, 1291, 1292, 1292, 1292,  451, 1292,
2134
2135      1288,  449, 1292, 1289,  446,  445, 1290, 1276,  443, 1291,
2136      1293, 1293, 1293, 1295, 1295, 1295, 1296, 1296, 1296, 1297,
2137      1297, 1297, 1298, 1298, 1298,  441,  438, 1293, 1301, 1301,
2138      1301, 1295, 1302, 1302, 1302,  435,  433, 1297,  430,  429,
2139      1298, 1289, 1304, 1304, 1304, 1290, 1305, 1305, 1305, 1302,
2140      1307, 1307, 1307, 1308, 1308, 1308, 1312, 1312, 1312,  428,
2141      1304, 1313, 1313, 1313,  425, 1313,  424,  423, 1313, 1325,
2142      1325, 1325,  422, 1312, 1334, 1334, 1334, 1335, 1335, 1335,
2143      1298, 1297, 1336, 1336, 1336,  421, 1336, 1325,  420, 1336,
2144       419, 1334,  418,  415, 1335, 1344, 1344, 1344, 1345, 1345,
2145
2146      1345, 1346, 1346, 1346, 1348, 1348, 1348,  414, 1349, 1349,
2147      1349,  413, 1344, 1350, 1350, 1350,  412, 1350,  411, 1346,
2148      1350,  405, 1348,  404,  402, 1325, 1349, 1353, 1353, 1353,
2149      1354, 1354, 1354,  396, 1354,  395,  391, 1354, 1355, 1355,
2150      1355, 1356, 1356, 1356, 1353, 1358, 1358, 1358, 1359, 1359,
2151      1359, 1363, 1363, 1363,  385, 1355, 1364, 1364, 1364, 1356,
2152      1364,  381,  378, 1364,  373,  372, 1359,  371, 1363,  370,
2153       366, 1349, 1365, 1365, 1365, 1366, 1366, 1366, 1371, 1371,
2154      1371, 1372, 1372, 1372,  363, 1372,  359,  358, 1372, 1365,
2155      1386, 1386, 1386, 1366,  357, 1371, 1393, 1393, 1393, 1394,
2156
2157      1394, 1394,  353, 1394,  347,  343, 1394,  340, 1386,  336,
2158      1395, 1395, 1395, 1393, 1395,  335,  334, 1395, 1403, 1403,
2159      1403, 1404, 1404, 1404,  330, 1404,  327,  322, 1404, 1405,
2160      1405, 1405, 1407, 1407, 1407, 1403, 1408, 1408, 1408,  321,
2161      1408,  317,  314, 1408,  309,  308, 1386, 1405,  307,  303,
2162      1407, 1411, 1411, 1411, 1412, 1412, 1412,  297, 1412,  293,
2163       290, 1412, 1413, 1413, 1413, 1418, 1418, 1418, 1411, 1418,
2164       286,  285, 1418, 1421, 1421, 1421,  284, 1422, 1422, 1422,
2165      1413, 1422,  283,  281, 1422, 1423, 1423, 1423,  277,  274,
2166      1421, 1426, 1426, 1426, 1407, 1427, 1427, 1427,  267, 1427,
2167
2168       260,  259, 1427, 1443, 1443, 1443,  255,  249, 1426, 1444,
2169      1444, 1444, 1445, 1445, 1445, 1448, 1448, 1448,  248, 1448,
2170       247, 1443, 1448, 1452, 1452, 1452, 1454, 1454, 1454, 1445,
2171      1454,  243,  240, 1454, 1457, 1457, 1457, 1458, 1458, 1458,
2172      1452, 1458,  235,  233, 1458, 1463, 1463, 1463, 1467, 1467,
2173      1467, 1443, 1457,  232,  228, 1445,  225, 1464, 1464, 1464,
2174       223, 1464, 1463, 1463, 1464, 1470, 1470, 1470,  222, 1470,
2175       221,  217, 1470, 1477, 1477, 1477, 1486, 1486, 1486, 1487,
2176      1487, 1487, 1457, 1488, 1488, 1488, 1494, 1494, 1494,  206,
2177      1477, 1489, 1489, 1489, 1486, 1489,  205,  201, 1489,  197,
2178
2179      1488,  196,  195, 1494, 1495, 1495, 1495,  189, 1495,  188,
2180       186, 1495, 1497, 1497, 1497, 1499, 1499, 1499, 1500, 1500,
2181      1500,  183, 1486,  171, 1501, 1501, 1501,    0, 1501,    0,
2182      1497, 1501, 1499, 1499,    0, 1500, 1500, 1502, 1502, 1502,
2183         0,    0, 1501, 1503, 1503, 1503, 1508, 1508, 1508, 1509,
2184      1509, 1509,    0, 1509,    0,    0, 1509, 1518, 1518, 1518,
2185      1519, 1519, 1519, 1508, 1519,    0,    0, 1519, 1526, 1526,
2186      1526,    0, 1527, 1527, 1527, 1518, 1527,    0,    0, 1527,
2187      1530, 1530, 1530,    0,    0, 1526, 1531, 1531, 1531, 1534,
2188      1534, 1534, 1535, 1535, 1535,    0, 1535, 1530,    0, 1535,
2189
2190      1539, 1539, 1539,    0, 1531,    0, 1534, 1534,    0,    0,
2191      1535, 1536, 1536, 1536,    0, 1536,    0,    0, 1536, 1518,
2192      1540, 1540, 1540,    0, 1554, 1554, 1554,    0,    0, 1536,
2193      1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,    0,
2194         0, 1537, 1554, 1559, 1559, 1559, 1537, 1537, 1537, 1537,
2195      1537, 1545, 1545, 1545,    0, 1545,    0,    0, 1545,    0,
2196      1559, 1560, 1560, 1560,    0, 1560,    0,    0, 1560, 1561,
2197      1561, 1561, 1537, 1537, 1538, 1538, 1538, 1538, 1538, 1538,
2198      1538, 1538, 1538,    0,    0, 1538, 1561,    0,    0,    0,
2199      1538, 1538, 1538, 1538, 1538, 1562, 1562, 1562,    0, 1562,
2200
2201         0,    0, 1562, 1564, 1564, 1564,    0, 1564,    0,    0,
2202      1564,    0,    0, 1579, 1579, 1579, 1538, 1538, 1597, 1597,
2203      1597, 1564, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567,
2204      1567, 1579,    0, 1567,    0,    0, 1597, 1597, 1567, 1567,
2205      1567, 1567, 1567, 1585, 1585, 1585,    0, 1585,    0,    0,
2206      1585, 1588, 1588, 1588,    0, 1588,    0,    0, 1588, 1604,
2207      1604, 1604,    0,    0, 1567, 1567, 1568, 1568, 1568, 1568,
2208      1568, 1568, 1568, 1568, 1568,    0, 1604, 1568, 1605, 1605,
2209      1605,    0, 1568, 1568, 1568, 1568, 1568, 1606, 1606, 1606,
2210      1607, 1607, 1607,    0,    0, 1605, 1612, 1612, 1612, 1616,
2211
2212      1616, 1616,    0,    0, 1606,    0,    0, 1607, 1568, 1568,
2213      1619, 1619, 1619,    0, 1612,    0,    0, 1616, 1620, 1620,
2214      1620,    0, 1620,    0,    0, 1620,    0, 1619,    0,    0,
2215      1606, 1621, 1621, 1621, 1622, 1622, 1622,    0, 1622,    0,
2216         0, 1622, 1623, 1623, 1623,    0,    0, 1616, 1621, 1624,
2217      1624, 1624,    0, 1624,    0,    0, 1624,    0,    0, 1623,
2218      1626, 1626, 1626, 1627, 1627, 1627,    0, 1627,    0,    0,
2219      1627, 1632, 1632, 1632, 1636, 1636, 1636, 1626, 1636,    0,
2220         0, 1636,    0, 1639, 1639, 1639,    0, 1639,    0, 1632,
2221      1639, 1642, 1642, 1642,    0, 1642,    0,    0, 1642, 1646,
2222
2223      1646, 1646,    0, 1646,    0,    0, 1646, 1632, 1667, 1667,
2224      1667, 1673, 1673, 1673, 1674, 1674, 1674,    0, 1674,    0,
2225         0, 1674, 1680, 1680, 1680, 1667, 1680,    0, 1673, 1680,
2226      1685, 1685, 1685, 1686, 1686, 1686,    0, 1686,    0,    0,
2227      1686, 1711, 1711, 1711, 1712, 1712, 1712,    0, 1685,    0,
2228         0, 1686,    0,    0,    0,    0,    0,    0,    0, 1711,
2229         0,    0, 1712, 1715, 1715, 1715, 1715, 1715, 1715, 1715,
2230      1715, 1715, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
2231      1716, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
2232      1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1719,
2233
2234      1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1720, 1720,
2235      1720, 1720, 1720, 1720, 1720, 1720, 1720, 1721, 1721, 1721,
2236      1721, 1721, 1721, 1721, 1721, 1721, 1722, 1722, 1722, 1722,
2237      1722, 1722, 1722, 1722, 1722, 1723, 1723, 1723, 1723, 1723,
2238      1723, 1723, 1723, 1723, 1724, 1724, 1724, 1724, 1724, 1724,
2239      1724, 1724, 1724, 1725, 1725, 1725, 1725, 1725, 1725, 1725,
2240      1725, 1725, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
2241      1726, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
2242      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1729,
2243      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1730, 1730,
2244
2245      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1731, 1731, 1731,
2246      1731, 1731, 1731, 1731, 1731, 1731, 1732, 1732, 1732, 1732,
2247      1732, 1732, 1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733,
2248      1733, 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734, 1734,
2249      1734, 1734, 1734, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
2250      1735, 1735, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
2251      1736, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
2252      1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1739,
2253      1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1740, 1740,
2254      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1741, 1741, 1741,
2255
2256      1741, 1741, 1741, 1741, 1741, 1741, 1742, 1742, 1742, 1742,
2257      1742, 1742, 1742, 1742, 1742, 1743, 1743, 1743, 1743, 1743,
2258      1743, 1743, 1743, 1743, 1744, 1744, 1744, 1744, 1744, 1744,
2259      1744, 1744, 1744, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
2260      1745, 1745, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
2261      1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
2262      1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1749,
2263      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1750, 1750,
2264      1750,    0,    0,    0, 1750, 1751, 1751, 1751,    0,    0,
2265         0, 1751, 1752, 1752, 1752,    0,    0,    0, 1752, 1753,
2266
2267      1753, 1753,    0,    0,    0, 1753, 1754, 1754, 1754,    0,
2268         0,    0, 1754, 1755, 1755, 1755,    0,    0,    0, 1755,
2269      1756, 1756, 1756,    0,    0,    0, 1756, 1757, 1757, 1757,
2270         0,    0,    0, 1757, 1758, 1758, 1758,    0,    0,    0,
2271      1758, 1759, 1759, 1759,    0,    0,    0, 1759, 1760, 1760,
2272      1760,    0,    0,    0, 1760, 1761, 1761, 1761,    0,    0,
2273         0, 1761, 1762, 1762, 1762,    0,    0,    0, 1762, 1763,
2274      1763, 1763,    0,    0,    0, 1763, 1764, 1764, 1764,    0,
2275         0,    0, 1764, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
2276         0, 1765, 1766,    0,    0,    0, 1766, 1767,    0,    0,
2277
2278         0, 1767, 1768,    0,    0,    0, 1768, 1769,    0,    0,
2279         0, 1769, 1770,    0,    0,    0, 1770, 1771,    0,    0,
2280         0, 1771, 1772,    0,    0,    0, 1772, 1773,    0,    0,
2281         0, 1773, 1774,    0,    0,    0, 1774, 1775,    0,    0,
2282         0, 1775, 1776,    0,    0,    0, 1776, 1777, 1777, 1777,
2283         0,    0,    0, 1777, 1778,    0,    0,    0, 1778, 1779,
2284      1779, 1779,    0,    0,    0, 1779, 1780,    0,    0,    0,
2285      1780, 1781, 1781, 1781,    0,    0,    0, 1781, 1782,    0,
2286         0,    0, 1782, 1783, 1783, 1783,    0,    0,    0, 1783,
2287      1784,    0,    0,    0, 1784, 1785, 1785, 1785, 1785, 1785,
2288
2289      1785, 1785, 1785, 1785, 1786,    0,    0,    0,    0, 1786,
2290      1787, 1787, 1787,    0,    0,    0, 1787, 1788, 1788, 1788,
2291      1788,    0,    0, 1788, 1788, 1789, 1789, 1789,    0,    0,
2292         0, 1789, 1790, 1790, 1790, 1790,    0,    0, 1790, 1790,
2293      1791, 1791, 1791,    0,    0,    0, 1791, 1792, 1792, 1792,
2294      1792,    0,    0, 1792, 1792, 1793, 1793, 1793,    0,    0,
2295         0, 1793, 1794, 1794, 1794, 1794,    0,    0, 1794, 1794,
2296      1795, 1795, 1795,    0,    0,    0, 1795, 1796, 1796, 1796,
2297      1796,    0,    0, 1796, 1796, 1797, 1797, 1797,    0,    0,
2298         0, 1797, 1798, 1798, 1798, 1798,    0,    0, 1798, 1798,
2299
2300      1799, 1799, 1799, 1799,    0,    0, 1799, 1799, 1800, 1800,
2301      1800,    0,    0,    0, 1800, 1801, 1801, 1801, 1801,    0,
2302         0, 1801, 1801, 1802, 1802, 1802, 1802,    0, 1802,    0,
2303      1802, 1803, 1803, 1803, 1803,    0,    0, 1803, 1803, 1804,
2304      1804, 1804, 1804,    0, 1804,    0, 1804, 1805, 1805, 1805,
2305      1805,    0,    0, 1805, 1805, 1806, 1806, 1806, 1806,    0,
2306         0, 1806, 1806, 1807, 1807, 1807, 1807,    0, 1807,    0,
2307      1807, 1808, 1808, 1808, 1808,    0,    0, 1808, 1808, 1809,
2308      1809, 1809,    0,    0,    0, 1809, 1810, 1810, 1810, 1810,
2309         0,    0, 1810, 1810, 1811, 1811, 1811,    0,    0,    0,
2310
2311      1811, 1812, 1812, 1812, 1812,    0,    0, 1812, 1812, 1813,
2312      1813, 1813,    0,    0,    0, 1813, 1814, 1814, 1814, 1814,
2313         0,    0, 1814, 1814, 1815, 1815, 1815, 1815, 1815, 1815,
2314      1815, 1815, 1815, 1816,    0, 1816,    0,    0, 1816, 1817,
2315      1817, 1817,    0,    0,    0, 1817, 1818, 1818, 1818, 1818,
2316         0,    0, 1818, 1818, 1819, 1819, 1819, 1819,    0, 1819,
2317         0, 1819, 1820, 1820, 1820, 1820,    0,    0, 1820, 1820,
2318      1821, 1821, 1821,    0,    0,    0, 1821, 1822, 1822, 1822,
2319      1822,    0,    0, 1822, 1822, 1823, 1823, 1823,    0,    0,
2320         0, 1823, 1824, 1824, 1824, 1824,    0,    0, 1824, 1824,
2321
2322      1825, 1825, 1825,    0,    0,    0, 1825, 1826, 1826, 1826,
2323      1826,    0,    0, 1826, 1826, 1827, 1827, 1827,    0,    0,
2324         0, 1827, 1828, 1828, 1828, 1828,    0,    0, 1828, 1828,
2325      1829, 1829, 1829, 1829,    0,    0, 1829, 1829, 1830, 1830,
2326      1830,    0,    0,    0, 1830, 1831, 1831, 1831, 1831,    0,
2327         0, 1831, 1831, 1832, 1832, 1832, 1832,    0,    0, 1832,
2328      1832, 1833, 1833, 1833,    0,    0,    0, 1833, 1834, 1834,
2329      1834, 1834,    0,    0, 1834, 1834, 1835, 1835, 1835, 1835,
2330         0,    0, 1835, 1835, 1836, 1836, 1836,    0,    0,    0,
2331      1836, 1837, 1837, 1837, 1837,    0,    0, 1837, 1837, 1838,
2332
2333      1838, 1838,    0,    0,    0, 1838, 1839, 1839, 1839, 1839,
2334         0,    0, 1839, 1839, 1840, 1840, 1840,    0,    0,    0,
2335      1840, 1841, 1841, 1841, 1841,    0,    0, 1841, 1841, 1842,
2336      1842, 1842,    0,    0,    0, 1842, 1843, 1843, 1843, 1843,
2337         0,    0, 1843, 1843, 1844, 1844, 1844, 1844, 1844, 1844,
2338      1844, 1844, 1844, 1845, 1845, 1845, 1845, 1845, 1845, 1845,
2339      1845, 1845, 1846, 1846, 1846,    0,    0,    0, 1846, 1847,
2340      1847, 1847, 1847,    0,    0, 1847, 1847, 1848, 1848, 1848,
2341         0,    0,    0, 1848, 1849, 1849, 1849, 1849,    0,    0,
2342      1849, 1849, 1850, 1850, 1850,    0,    0,    0, 1850, 1851,
2343
2344      1851, 1851, 1851,    0,    0, 1851, 1851, 1852, 1852, 1852,
2345         0,    0,    0, 1852, 1853, 1853, 1853, 1853,    0,    0,
2346      1853, 1853, 1854, 1854, 1854,    0,    0,    0, 1854, 1855,
2347      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1856, 1856,
2348      1856, 1856, 1856, 1856, 1856, 1856, 1856, 1857, 1857, 1857,
2349      1857, 1857, 1857, 1857, 1857, 1857, 1858, 1858, 1858, 1858,
2350      1858, 1858, 1858, 1858, 1858, 1859, 1859, 1859, 1859, 1859,
2351      1859, 1859, 1859, 1859, 1860, 1860, 1860, 1860, 1860, 1860,
2352      1860, 1860, 1860, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2353      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2354
2355      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2356      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2357      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2358      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2359      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2360      1714, 1714, 1714
2361     } ;
2362
2363 /* Table of booleans, true if rule could match eol. */
2364 static yyconst flex_int32_t yy_rule_can_match_eol[298] =
2365     {   0,
2366 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2367     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
2368     0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2369     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2370     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2371     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2372     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
2373     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2374     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
2375     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2376     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
2377     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
2378     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
2379     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
2380     0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2381
2382 static yy_state_type yy_last_accepting_state;
2383 static char *yy_last_accepting_cpos;
2384
2385 extern int surf_parse__flex_debug;
2386 int surf_parse__flex_debug = 0;
2387
2388 /* The intent behind this definition is that it'll catch
2389  * any uses of REJECT which flex missed.
2390  */
2391 #define REJECT reject_used_but_not_detected
2392 #define yymore() yymore_used_but_not_detected
2393 #define YY_MORE_ADJ 0
2394 #define YY_RESTORE_YY_MORE_OFFSET
2395 char *surf_parse_text;
2396 /* Validating XML processor for src/surf/simgrid.dtd.
2397  * Generated 2010/09/15 14:21:29.
2398  *
2399  * This program was generated with the FleXML XML processor generator.
2400  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2401  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2402  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
2403  * 
2404  * There are two, intertwined parts to this program, part A and part B.
2405  *
2406  * Part A
2407  * ------
2408  * 
2409  * Some parts, here collectively called "Part A", are found in the 
2410  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2411  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2412  *
2413  * You can redistribute, use, perform, display and/or modify "Part A"
2414  * provided the following two conditions hold:
2415  *
2416  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2417  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2418  *    FITNESS FOR A PARTICULAR PURPOSE.
2419  *
2420  * 2. The program distribution conditions do not in any way affect the
2421  *    distribution conditions of the FleXML system used to generate this
2422  *    file or any version of FleXML derived from that system.
2423  *
2424  * Notice that these are explicit rights granted to you for files
2425  * generated by the FleXML system.  For your rights in connection with
2426  * the FleXML system itself please consult the GNU General Public License.
2427  * 
2428  * Part B
2429  * ------
2430  * 
2431  * The other parts, here collectively called "Part B", and which came 
2432  * from the DTD used by FleXML to generate this program, can be 
2433  * distributed (or not, as the case may be) under the terms of whoever
2434  * wrote them, provided these terms respect and obey the two conditions 
2435  * above under the heading "Part A".
2436  *
2437  * The author of and contributors to FleXML specifically disclaim
2438  * any copyright interest in "Part B", unless "Part B" was written 
2439  * by the author of or contributors to FleXML.
2440  * 
2441  */
2442
2443 /* Version strings. */
2444 const char rcs_surfxml_flexml_skeleton[] =
2445  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2446 const char rcs_surfxml_flexml[] =
2447  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
2448
2449 /* ANSI headers. */
2450 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2451 #include <stdio.h>
2452 #include <string.h>
2453 #include <assert.h>
2454 #include <stdarg.h>
2455 #include <ctype.h>
2456      
2457 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2458 # ifndef __STRICT_ANSI__
2459 #  include <io.h>
2460 #  include <process.h>
2461 # endif
2462 #else
2463 # include <unistd.h>
2464 #endif
2465      
2466 #ifndef FLEXML_INDEXSTACKSIZE
2467 #define FLEXML_INDEXSTACKSIZE 1000
2468 #endif
2469
2470 /* Generated definitions. */
2471 #define FLEXML_yylineno
2472 #ifndef FLEXML_BUFFERSTACKSIZE
2473 #define FLEXML_BUFFERSTACKSIZE 1000000
2474 #endif
2475 #define FLEXML_NEED_BUFFERLIT
2476
2477 /* XML processor api. */
2478 /* FleXML-provided data. */
2479 int surfxml_pcdata_ix;
2480 extern char *surfxml_bufferstack;
2481 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2482 AT_surfxml_random_generator AX_surfxml_random_generator;
2483 #define A_surfxml_random_generator AX_surfxml_random_generator
2484 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
2485 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
2486 AT_surfxml_link_id AX_surfxml_link_id;
2487 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2488 AT_surfxml_prop_id AX_surfxml_prop_id;
2489 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2490 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2491 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2492 AT_surfxml_host_id AX_surfxml_host_id;
2493 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2494 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2495 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2496 AT_surfxml_process_host AX_surfxml_process_host;
2497 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2498 AT_surfxml_host_state AX_surfxml_host_state;
2499 #define A_surfxml_host_state AX_surfxml_host_state
2500 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2501 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2502 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2503 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2504 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2505 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2506 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2507 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2508 AT_surfxml_prop_value AX_surfxml_prop_value;
2509 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2510 AT_surfxml_AS_id AX_surfxml_AS_id;
2511 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
2512 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
2513 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
2514 AT_surfxml_host_power AX_surfxml_host_power;
2515 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2516 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2517 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2518 AT_surfxml_router_id AX_surfxml_router_id;
2519 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2520 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2521 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2522 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2523 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2524 AT_surfxml_process_function AX_surfxml_process_function;
2525 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2526 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
2527 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
2528 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2529 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2530 AT_surfxml_trace_file AX_surfxml_trace_file;
2531 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2532 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2533 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2534 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2535 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2536 AT_surfxml_random_min AX_surfxml_random_min;
2537 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2538 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
2539 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
2540 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2541 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2542 AT_surfxml_host_availability AX_surfxml_host_availability;
2543 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2544 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2545 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2546 AT_surfxml_argument_value AX_surfxml_argument_value;
2547 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2548 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
2549 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
2550 AT_surfxml_link_state AX_surfxml_link_state;
2551 #define A_surfxml_link_state AX_surfxml_link_state
2552 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
2553 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
2554 AT_surfxml_route_src AX_surfxml_route_src;
2555 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2556 AT_surfxml_AS_routing AX_surfxml_AS_routing;
2557 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
2558 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2559 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2560 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
2561 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
2562 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
2563 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
2564 AT_surfxml_random_mean AX_surfxml_random_mean;
2565 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2566 AT_surfxml_trace_id AX_surfxml_trace_id;
2567 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2568 AT_surfxml_link_latency AX_surfxml_link_latency;
2569 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2570 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2571 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2572 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
2573 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
2574 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
2575 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
2576 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
2577 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
2578 AT_surfxml_host_vivaldi AX_surfxml_host_vivaldi;
2579 #define A_surfxml_host_vivaldi (surfxml_bufferstack + AX_surfxml_host_vivaldi)
2580 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2581 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2582 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2583 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2584 AT_surfxml_random_id AX_surfxml_random_id;
2585 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2586 AT_surfxml_route_dst AX_surfxml_route_dst;
2587 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
2588 AT_surfxml_random_max AX_surfxml_random_max;
2589 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2590 AT_surfxml_platform_version AX_surfxml_platform_version;
2591 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
2592
2593 /* XML state. */
2594 #ifdef FLEX_DEBUG
2595 # define ENTER(state)   debug_enter(state,#state)
2596 # define LEAVE          debug_leave()
2597 # define SET(state)     debug_set(state,#state)
2598   static void debug_enter(int, const char*);
2599   static void debug_leave(void);
2600   static void debug_set(int, const char*);
2601 #else
2602 # define ENTER(state)   (yy_push_state(state))
2603 # define LEAVE          (yy_pop_state())
2604 # define SET(state)     BEGIN(state)
2605 #endif
2606
2607 /* Generic actions. */
2608 #define SKIP    /*skip*/
2609 #define SUCCEED        CLEANUP; return 0
2610
2611 #define FAIL    return fail
2612 static int fail(const char*, ...);
2613
2614 enum {flexml_max_err_msg_size = 512};
2615 static char flexml_err_msg[flexml_max_err_msg_size];
2616 const char * surfxml_parse_err_msg()
2617 {
2618     return flexml_err_msg;
2619 }
2620 static void reset_surfxml_parse_err_msg()
2621 {
2622     flexml_err_msg[0] = '\0';
2623 }
2624
2625 /* Cleanup */
2626 static void cleanup(void);
2627 #define CLEANUP  cleanup()
2628
2629 /* Text buffer stack handling. */
2630 char *surfxml_bufferstack = NULL;
2631 static int blimit = FLEXML_BUFFERSTACKSIZE;
2632 static int bnext = 1;
2633
2634 static int *indexstack = NULL;
2635 static int ilimit = FLEXML_INDEXSTACKSIZE;
2636 static int inext = 1;
2637
2638 #define BUFFERSET(P)  (P = bnext)
2639 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
2640 #define BUFFERDONE    (BUFFERPUTC('\0'))
2641
2642 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
2643
2644 /* after this is called, there are at least 2 slots left in the stack */
2645 static int ck_blimit()
2646 {
2647      if (bnext >= blimit) {
2648          blimit += FLEXML_BUFFERSTACKSIZE + 2;
2649          {
2650              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
2651              assert(temp);
2652              surfxml_bufferstack = temp;
2653          }
2654      }
2655      return 0;
2656 }
2657
2658 /* after this is called, there are at least 2 slots left in the stack */
2659 static int ck_ilimit()
2660 {
2661      if (inext >= ilimit) {
2662          ilimit += FLEXML_INDEXSTACKSIZE + 2;
2663          {
2664              int *temp = (int *) realloc(indexstack, ilimit);
2665              assert(temp);
2666              indexstack = temp;
2667          }
2668      }
2669      return 0;
2670 }
2671
2672 #ifdef FLEXML_NEED_BUFFERLIT
2673 static void surfxml_bufferliteral(char c, int* pp, const char* text)
2674 {
2675   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
2676   assert(s <= e); BUFFERSET(*pp);
2677   while (++s<e) {
2678     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
2679     else BUFFERPUTC(*s);
2680   }
2681   BUFFERDONE;
2682 }
2683 #endif
2684
2685 static void pushbuffer(int p)
2686 {
2687     ck_ilimit();
2688     indexstack[inext++] = p;
2689     indexstack[inext++] = bnext;    
2690 }
2691
2692 static int popbuffer(void)
2693 {
2694     assert(inext >= 2);
2695     bnext = indexstack[--inext];
2696     return indexstack[--inext];
2697 }
2698
2699 /* General internal entities are `unput' back onto the input stream... */
2700 #define ENTITYTEXT(T) \
2701   { char *s = (T), *e = s+strlen(s);\
2702     while (--e >= s) { unput(*e); }}
2703
2704 /* Flex standard options. */
2705 #define YY_NO_INPUT 1
2706 /* Flex user-requested options. */
2707 /* XML character classes (currently restricted to ASCII). */
2708 /* "Common syntactic structures." */
2709 /* "Names and Tokens." */
2710 /* Miscellaneous. */
2711 /* Parser states (flex `exclusive start conditions'):
2712  *
2713  * PROLOG       the XML prolog of the document before <?xml...>
2714  * DOCTYPE      the XML prolog of the document after <?xml...>
2715  * EPILOG       after the root element
2716  * INCOMMENT    inside an XML comment <!--....-->
2717  * INPI         inside an XML PI <?...?>
2718  * VALUE1       inside a '...'-delimited literal
2719  * VALUE2       inside a "..."-delimited literal
2720  * CDATA        inside a <![CDATA[...] ]> section.
2721  * ROOT_<tag>   expect root element <tag>
2722  * AL_<tag>     inside the attribute list for <tag>
2723  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
2724  * IMPOSSIBLE   dummy to permit disabling rules; must be last
2725  */
2726
2727 /* State names. */
2728 const char* *surfxml_statenames=NULL;
2729
2730 #define INITIAL 0
2731 #define PROLOG 1
2732 #define DOCTYPE 2
2733 #define EPILOG 3
2734 #define INCOMMENT 4
2735 #define INPI 5
2736 #define VALUE1 6
2737 #define VALUE2 7
2738 #define CDATA 8
2739 #define ROOT_surfxml_platform 9
2740 #define AL_surfxml_platform 10
2741 #define S_surfxml_platform 11
2742 #define S_surfxml_platform_1 12
2743 #define S_surfxml_platform_2 13
2744 #define S_surfxml_platform_3 14
2745 #define S_surfxml_platform_4 15
2746 #define S_surfxml_platform_5 16
2747 #define S_surfxml_platform_6 17
2748 #define S_surfxml_platform_7 18
2749 #define S_surfxml_platform_8 19
2750 #define E_surfxml_platform 20
2751 #define AL_surfxml_trace 21
2752 #define IN_trace 22
2753 #define AL_surfxml_random 23
2754 #define S_surfxml_random 24
2755 #define S_surfxml_random_1 25
2756 #define S_surfxml_random_2 26
2757 #define E_surfxml_random 27
2758 #define AL_surfxml_trace_c_connect 28
2759 #define E_surfxml_trace_c_connect 29
2760 #define AL_surfxml_AS 30
2761 #define S_surfxml_AS 31
2762 #define S_surfxml_AS_1 32
2763 #define S_surfxml_AS_2 33
2764 #define S_surfxml_AS_3 34
2765 #define S_surfxml_AS_4 35
2766 #define S_surfxml_AS_5 36
2767 #define S_surfxml_AS_6 37
2768 #define S_surfxml_AS_7 38
2769 #define S_surfxml_AS_8 39
2770 #define S_surfxml_AS_9 40
2771 #define S_surfxml_AS_10 41
2772 #define S_surfxml_AS_11 42
2773 #define S_surfxml_AS_12 43
2774 #define S_surfxml_AS_13 44
2775 #define E_surfxml_AS 45
2776 #define AL_surfxml_host 46
2777 #define S_surfxml_host 47
2778 #define S_surfxml_host_1 48
2779 #define S_surfxml_host_2 49
2780 #define E_surfxml_host 50
2781 #define AL_surfxml_router 51
2782 #define E_surfxml_router 52
2783 #define AL_surfxml_link 53
2784 #define S_surfxml_link 54
2785 #define S_surfxml_link_1 55
2786 #define S_surfxml_link_2 56
2787 #define E_surfxml_link 57
2788 #define AL_surfxml_route 58
2789 #define S_surfxml_route 59
2790 #define S_surfxml_route_1 60
2791 #define S_surfxml_route_2 61
2792 #define E_surfxml_route 62
2793 #define AL_surfxml_ASroute 63
2794 #define S_surfxml_ASroute 64
2795 #define S_surfxml_ASroute_1 65
2796 #define S_surfxml_ASroute_2 66
2797 #define E_surfxml_ASroute 67
2798 #define AL_surfxml_link_c_ctn 68
2799 #define E_surfxml_link_c_ctn 69
2800 #define AL_surfxml_bypassRoute 70
2801 #define S_surfxml_bypassRoute 71
2802 #define S_surfxml_bypassRoute_1 72
2803 #define S_surfxml_bypassRoute_2 73
2804 #define E_surfxml_bypassRoute 74
2805 #define AL_surfxml_process 75
2806 #define S_surfxml_process 76
2807 #define S_surfxml_process_1 77
2808 #define S_surfxml_process_2 78
2809 #define E_surfxml_process 79
2810 #define AL_surfxml_argument 80
2811 #define E_surfxml_argument 81
2812 #define AL_surfxml_prop 82
2813 #define E_surfxml_prop 83
2814 #define IMPOSSIBLE 84
2815
2816 #ifndef YY_NO_UNISTD_H
2817 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2818  * down here because we want the user's section 1 to have been scanned first.
2819  * The user has a chance to override it with an option.
2820  */
2821 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2822 #  ifndef __STRICT_ANSI__
2823 #    include <io.h>
2824 #    include <process.h>
2825 #  endif
2826 #else
2827 #  include <unistd.h>
2828 #endif
2829 #endif
2830
2831 #ifndef YY_EXTRA_TYPE
2832 #define YY_EXTRA_TYPE void *
2833 #endif
2834
2835 static int yy_init_globals (void );
2836
2837 /* Accessor methods to globals.
2838    These are made visible to non-reentrant scanners for convenience. */
2839
2840 int surf_parse_lex_destroy (void );
2841
2842 int surf_parse_get_debug (void );
2843
2844 void surf_parse_set_debug (int debug_flag  );
2845
2846 YY_EXTRA_TYPE surf_parse_get_extra (void );
2847
2848 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
2849
2850 FILE *surf_parse_get_in (void );
2851
2852 void surf_parse_set_in  (FILE * in_str  );
2853
2854 FILE *surf_parse_get_out (void );
2855
2856 void surf_parse_set_out  (FILE * out_str  );
2857
2858 int surf_parse_get_leng (void );
2859
2860 char *surf_parse_get_text (void );
2861
2862 int surf_parse_get_lineno (void );
2863
2864 void surf_parse_set_lineno (int line_number  );
2865
2866 /* Macros after this point can all be overridden by user definitions in
2867  * section 1.
2868  */
2869
2870 #ifndef YY_SKIP_YYWRAP
2871 #ifdef __cplusplus
2872 extern "C" int surf_parse_wrap (void );
2873 #else
2874 extern int surf_parse_wrap (void );
2875 #endif
2876 #endif
2877
2878 #ifndef yytext_ptr
2879 static void yy_flex_strncpy (char *,yyconst char *,int );
2880 #endif
2881
2882 #ifdef YY_NEED_STRLEN
2883 static int yy_flex_strlen (yyconst char * );
2884 #endif
2885
2886 #ifndef YY_NO_INPUT
2887
2888 #ifdef __cplusplus
2889 static int yyinput (void );
2890 #else
2891 static int input (void );
2892 #endif
2893
2894 #endif
2895
2896         static int yy_start_stack_ptr = 0;
2897         static int yy_start_stack_depth = 0;
2898         static int *yy_start_stack = NULL;
2899     
2900     static void yy_push_state (int new_state );
2901     
2902     static void yy_pop_state (void );
2903     
2904 /* Amount of stuff to slurp up with each read. */
2905 #ifndef YY_READ_BUF_SIZE
2906 #ifdef __ia64__
2907 /* On IA-64, the buffer size is 16k, not 8k */
2908 #define YY_READ_BUF_SIZE 16384
2909 #else
2910 #define YY_READ_BUF_SIZE 8192
2911 #endif /* __ia64__ */
2912 #endif
2913
2914 /* Copy whatever the last rule matched to the standard output. */
2915 #ifndef ECHO
2916 /* This used to be an fputs(), but since the string might contain NUL's,
2917  * we now use fwrite().
2918  */
2919 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
2920 #endif
2921
2922 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2923  * is returned in "result".
2924  */
2925 #ifndef YY_INPUT
2926 #define YY_INPUT(buf,result,max_size) \
2927         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2928                 { \
2929                 int c = '*'; \
2930                 size_t n; \
2931                 for ( n = 0; n < max_size && \
2932                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2933                         buf[n] = (char) c; \
2934                 if ( c == '\n' ) \
2935                         buf[n++] = (char) c; \
2936                 if ( c == EOF && ferror( surf_parse_in ) ) \
2937                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
2938                 result = n; \
2939                 } \
2940         else \
2941                 { \
2942                 errno=0; \
2943                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2944                         { \
2945                         if( errno != EINTR) \
2946                                 { \
2947                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2948                                 break; \
2949                                 } \
2950                         errno=0; \
2951                         clearerr(surf_parse_in); \
2952                         } \
2953                 }\
2954 \
2955
2956 #endif
2957
2958 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2959  * we don't want an extra ';' after the "return" because that will cause
2960  * some compilers to complain about unreachable statements.
2961  */
2962 #ifndef yyterminate
2963 #define yyterminate() return YY_NULL
2964 #endif
2965
2966 /* Number of entries by which start-condition stack grows. */
2967 #ifndef YY_START_STACK_INCR
2968 #define YY_START_STACK_INCR 25
2969 #endif
2970
2971 /* Report a fatal error. */
2972 #ifndef YY_FATAL_ERROR
2973 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2974 #endif
2975
2976 /* end tables serialization structures and prototypes */
2977
2978 /* Default declaration of generated scanner - a define so the user can
2979  * easily add parameters.
2980  */
2981 #ifndef YY_DECL
2982 #define YY_DECL_IS_OURS 1
2983
2984 extern int surf_parse_lex (void);
2985
2986 #define YY_DECL int surf_parse_lex (void)
2987 #endif /* !YY_DECL */
2988
2989 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2990  * have been set up.
2991  */
2992 #ifndef YY_USER_ACTION
2993 #define YY_USER_ACTION
2994 #endif
2995
2996 /* Code executed at the end of each rule. */
2997 #ifndef YY_BREAK
2998 #define YY_BREAK break;
2999 #endif
3000
3001 #define YY_RULE_SETUP \
3002         YY_USER_ACTION
3003
3004 /** The main scanner function which does all the work.
3005  */
3006 YY_DECL
3007 {
3008         register yy_state_type yy_current_state;
3009         register char *yy_cp, *yy_bp;
3010         register int yy_act;
3011     
3012  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3013  SET(PROLOG);
3014  reset_surfxml_parse_err_msg();
3015  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3016  assert(surfxml_bufferstack);
3017  #ifdef FLEX_DEBUG
3018  {
3019      int i;
3020      for (i = 0; i < blimit; i++) {
3021          surfxml_bufferstack[i] = '\377';
3022      }
3023  }
3024  #endif
3025  surfxml_bufferstack[0] = '\0';
3026  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3027  assert(indexstack);
3028  indexstack[0] = 0;
3029
3030   /* FleXML_init */
3031   bnext = inext = 1;
3032   surfxml_bufferliteral('\0', &bnext, "0.0");
3033   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3034   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3035   surfxml_bufferliteral('\0', &bnext, "1.0");
3036   surfxml_bufferliteral('\0', &bnext, "1.0");
3037   surfxml_bufferliteral('\0', &bnext, "1.0");
3038   surfxml_bufferliteral('\0', &bnext, "1.0");
3039   surfxml_bufferliteral('\0', &bnext, "-1.0");
3040   surfxml_bufferliteral('\0', &bnext, "0 0 0");
3041   surfxml_bufferliteral('\0', &bnext, "0.0");
3042   surfxml_bufferliteral('\0', &bnext, "-1.0");
3043   surfxml_bufferliteral('\0', &bnext, "-1.0");
3044   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3045   surfxml_statenames[PROLOG] = NULL;
3046   surfxml_statenames[DOCTYPE] = NULL;
3047   surfxml_statenames[EPILOG] = NULL;
3048   surfxml_statenames[INCOMMENT] = NULL;
3049   surfxml_statenames[INPI] = NULL;
3050   surfxml_statenames[VALUE1] = NULL;
3051   surfxml_statenames[VALUE2] = NULL;
3052   surfxml_statenames[CDATA] = NULL;
3053   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3054   surfxml_statenames[AL_surfxml_platform] = NULL;
3055   surfxml_statenames[S_surfxml_platform] = "platform";
3056   surfxml_statenames[S_surfxml_platform_1] = "platform";
3057   surfxml_statenames[S_surfxml_platform_2] = "platform";
3058   surfxml_statenames[S_surfxml_platform_3] = "platform";
3059   surfxml_statenames[S_surfxml_platform_4] = "platform";
3060   surfxml_statenames[S_surfxml_platform_5] = "platform";
3061   surfxml_statenames[S_surfxml_platform_6] = "platform";
3062   surfxml_statenames[S_surfxml_platform_7] = "platform";
3063   surfxml_statenames[S_surfxml_platform_8] = "platform";
3064   surfxml_statenames[E_surfxml_platform] = "platform";
3065   surfxml_statenames[AL_surfxml_trace] = NULL;
3066   surfxml_statenames[IN_trace] = "trace";
3067   surfxml_statenames[AL_surfxml_random] = NULL;
3068   surfxml_statenames[S_surfxml_random] = "random";
3069   surfxml_statenames[S_surfxml_random_1] = "random";
3070   surfxml_statenames[S_surfxml_random_2] = "random";
3071   surfxml_statenames[E_surfxml_random] = "random";
3072   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3073   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3074   surfxml_statenames[AL_surfxml_AS] = NULL;
3075   surfxml_statenames[S_surfxml_AS] = "AS";
3076   surfxml_statenames[S_surfxml_AS_1] = "AS";
3077   surfxml_statenames[S_surfxml_AS_2] = "AS";
3078   surfxml_statenames[S_surfxml_AS_3] = "AS";
3079   surfxml_statenames[S_surfxml_AS_4] = "AS";
3080   surfxml_statenames[S_surfxml_AS_5] = "AS";
3081   surfxml_statenames[S_surfxml_AS_6] = "AS";
3082   surfxml_statenames[S_surfxml_AS_7] = "AS";
3083   surfxml_statenames[S_surfxml_AS_8] = "AS";
3084   surfxml_statenames[S_surfxml_AS_9] = "AS";
3085   surfxml_statenames[S_surfxml_AS_10] = "AS";
3086   surfxml_statenames[S_surfxml_AS_11] = "AS";
3087   surfxml_statenames[S_surfxml_AS_12] = "AS";
3088   surfxml_statenames[S_surfxml_AS_13] = "AS";
3089   surfxml_statenames[E_surfxml_AS] = "AS";
3090   surfxml_statenames[AL_surfxml_host] = NULL;
3091   surfxml_statenames[S_surfxml_host] = "host";
3092   surfxml_statenames[S_surfxml_host_1] = "host";
3093   surfxml_statenames[S_surfxml_host_2] = "host";
3094   surfxml_statenames[E_surfxml_host] = "host";
3095   surfxml_statenames[AL_surfxml_router] = NULL;
3096   surfxml_statenames[E_surfxml_router] = "router";
3097   surfxml_statenames[AL_surfxml_link] = NULL;
3098   surfxml_statenames[S_surfxml_link] = "link";
3099   surfxml_statenames[S_surfxml_link_1] = "link";
3100   surfxml_statenames[S_surfxml_link_2] = "link";
3101   surfxml_statenames[E_surfxml_link] = "link";
3102   surfxml_statenames[AL_surfxml_route] = NULL;
3103   surfxml_statenames[S_surfxml_route] = "route";
3104   surfxml_statenames[S_surfxml_route_1] = "route";
3105   surfxml_statenames[S_surfxml_route_2] = "route";
3106   surfxml_statenames[E_surfxml_route] = "route";
3107   surfxml_statenames[AL_surfxml_ASroute] = NULL;
3108   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
3109   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
3110   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
3111   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
3112   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3113   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3114   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
3115   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
3116   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
3117   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
3118   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
3119   surfxml_statenames[AL_surfxml_process] = NULL;
3120   surfxml_statenames[S_surfxml_process] = "process";
3121   surfxml_statenames[S_surfxml_process_1] = "process";
3122   surfxml_statenames[S_surfxml_process_2] = "process";
3123   surfxml_statenames[E_surfxml_process] = "process";
3124   surfxml_statenames[AL_surfxml_argument] = NULL;
3125   surfxml_statenames[E_surfxml_argument] = "argument";
3126   surfxml_statenames[AL_surfxml_prop] = NULL;
3127   surfxml_statenames[E_surfxml_prop] = "prop";
3128   }
3129
3130  /* COMMENTS and PIs: handled uniformly for efficiency. */
3131
3132         if ( !(yy_init) )
3133                 {
3134                 (yy_init) = 1;
3135
3136 #ifdef YY_USER_INIT
3137                 YY_USER_INIT;
3138 #endif
3139
3140                 if ( ! (yy_start) )
3141                         (yy_start) = 1; /* first start state */
3142
3143                 if ( ! surf_parse_in )
3144                         surf_parse_in = stdin;
3145
3146                 if ( ! surf_parse_out )
3147                         surf_parse_out = stdout;
3148
3149                 if ( ! YY_CURRENT_BUFFER ) {
3150                         surf_parse_ensure_buffer_stack ();
3151                         YY_CURRENT_BUFFER_LVALUE =
3152                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3153                 }
3154
3155                 surf_parse__load_buffer_state( );
3156                 }
3157
3158         while ( 1 )             /* loops until end-of-file is reached */
3159                 {
3160                 yy_cp = (yy_c_buf_p);
3161
3162                 /* Support of surf_parse_text. */
3163                 *yy_cp = (yy_hold_char);
3164
3165                 /* yy_bp points to the position in yy_ch_buf of the start of
3166                  * the current run.
3167                  */
3168                 yy_bp = yy_cp;
3169
3170                 yy_current_state = (yy_start);
3171 yy_match:
3172                 do
3173                         {
3174                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3175                         if ( yy_accept[yy_current_state] )
3176                                 {
3177                                 (yy_last_accepting_state) = yy_current_state;
3178                                 (yy_last_accepting_cpos) = yy_cp;
3179                                 }
3180                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3181                                 {
3182                                 yy_current_state = (int) yy_def[yy_current_state];
3183                                 if ( yy_current_state >= 1715 )
3184                                         yy_c = yy_meta[(unsigned int) yy_c];
3185                                 }
3186                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3187                         ++yy_cp;
3188                         }
3189                 while ( yy_base[yy_current_state] != 5784 );
3190
3191 yy_find_action:
3192                 yy_act = yy_accept[yy_current_state];
3193                 if ( yy_act == 0 )
3194                         { /* have to back up */
3195                         yy_cp = (yy_last_accepting_cpos);
3196                         yy_current_state = (yy_last_accepting_state);
3197                         yy_act = yy_accept[yy_current_state];
3198                         }
3199
3200                 YY_DO_BEFORE_ACTION;
3201
3202                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3203                         {
3204                         int yyl;
3205                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3206                                 if ( surf_parse_text[yyl] == '\n' )
3207                                            
3208     surf_parse_lineno++;
3209 ;
3210                         }
3211
3212 do_action:      /* This label is used only to access EOF actions. */
3213
3214                 switch ( yy_act )
3215         { /* beginning of action switch */
3216                         case 0: /* must back up */
3217                         /* undo the effects of YY_DO_BEFORE_ACTION */
3218                         *yy_cp = (yy_hold_char);
3219                         yy_cp = (yy_last_accepting_cpos);
3220                         yy_current_state = (yy_last_accepting_state);
3221                         goto yy_find_action;
3222
3223 case 1:
3224 YY_RULE_SETUP
3225 ENTER(INCOMMENT);
3226         YY_BREAK
3227 case 2:
3228 YY_RULE_SETUP
3229 ENTER(INPI);
3230         YY_BREAK
3231
3232 case 3:
3233 YY_RULE_SETUP
3234 LEAVE;
3235         YY_BREAK
3236 case 4:
3237 case 5:
3238 case 6:
3239 /* rule 6 can match eol */
3240 YY_RULE_SETUP
3241 SKIP;
3242         YY_BREAK
3243 case YY_STATE_EOF(INCOMMENT):
3244 FAIL("EOF in comment.");
3245         YY_BREAK
3246
3247 case 7:
3248 YY_RULE_SETUP
3249 LEAVE;
3250         YY_BREAK
3251 case 8:
3252 case 9:
3253 /* rule 9 can match eol */
3254 YY_RULE_SETUP
3255 SKIP;
3256         YY_BREAK
3257 case YY_STATE_EOF(INPI):
3258 FAIL("EOF in PI (processing instruction).");
3259         YY_BREAK
3260
3261 /* SPACES: skipped uniformly */
3262 case 10:
3263 /* rule 10 can match eol */
3264 YY_RULE_SETUP
3265 SKIP;
3266         YY_BREAK
3267 /* PROLOG: determine root element and process it. */
3268
3269 case 11:
3270 /* rule 11 can match eol */
3271 YY_RULE_SETUP
3272 SET(DOCTYPE); 
3273         YY_BREAK
3274 case 12:
3275 /* rule 12 can match eol */
3276 YY_RULE_SETUP
3277 FAIL("Bad declaration %s.",surf_parse_text);
3278         YY_BREAK
3279
3280 case 13:
3281 /* rule 13 can match eol */
3282 YY_RULE_SETUP
3283 SET(ROOT_surfxml_platform);
3284         YY_BREAK
3285 case 14:
3286 /* rule 14 can match eol */
3287 YY_RULE_SETUP
3288 FAIL("Bad declaration %s.",surf_parse_text);
3289         YY_BREAK
3290 case 15:
3291 YY_RULE_SETUP
3292 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3293         YY_BREAK
3294 case YY_STATE_EOF(PROLOG):
3295 case YY_STATE_EOF(DOCTYPE):
3296 FAIL("EOF in prolog.");
3297         YY_BREAK
3298
3299 /* RULES DERIVED FROM DTD. */
3300 /* <!-- Small DTD for SURF based tools. -->
3301   * <!-- <!ELEMENT platform ((include|trace|random|AS|trace:connect)*,(include|trace|random|AS|set|foreach|host|router|link|trace:connect)*,(include|route|trace:connect|process)*)> -->  */
3302 /* <!-- bad -->
3303   * <!-- bad -->  */
3304 case 16:
3305 /* rule 16 can match eol */
3306 YY_RULE_SETUP
3307 FAIL("Starting tag <platform> is not allowed here.");
3308         YY_BREAK
3309 case 17:
3310 /* rule 17 can match eol */
3311 YY_RULE_SETUP
3312 {
3313   AX_surfxml_platform_version = 1;
3314   AX_surfxml_platform_xmlns_c_link = 5;
3315   AX_surfxml_platform_xmlns_c_route = 37;
3316   ENTER(AL_surfxml_platform); pushbuffer(0);
3317   }
3318         YY_BREAK
3319
3320 case 18:
3321 /* rule 18 can match eol */
3322 YY_RULE_SETUP
3323 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
3324         YY_BREAK
3325 case 19:
3326 /* rule 19 can match eol */
3327 YY_RULE_SETUP
3328 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
3329         YY_BREAK
3330 case 20:
3331 /* rule 20 can match eol */
3332 YY_RULE_SETUP
3333 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3334         YY_BREAK
3335 case 21:
3336 /* rule 21 can match eol */
3337 YY_RULE_SETUP
3338 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3339         YY_BREAK
3340 case 22:
3341 /* rule 22 can match eol */
3342 YY_RULE_SETUP
3343 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3344         YY_BREAK
3345 case 23:
3346 /* rule 23 can match eol */
3347 YY_RULE_SETUP
3348 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3349         YY_BREAK
3350 case 24:
3351 YY_RULE_SETUP
3352 {
3353   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
3354  }
3355         YY_BREAK
3356 case 25:
3357 YY_RULE_SETUP
3358 {
3359   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
3360   switch (YY_START) {
3361    case ROOT_surfxml_platform: SET(EPILOG); break;
3362   }
3363  }
3364         YY_BREAK
3365 case 26:
3366 YY_RULE_SETUP
3367 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
3368         YY_BREAK
3369 case 27:
3370 YY_RULE_SETUP
3371 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
3372         YY_BREAK
3373 case YY_STATE_EOF(AL_surfxml_platform):
3374 FAIL("EOF in attribute list of `platform' element.");
3375         YY_BREAK
3376
3377 case 28:
3378 /* rule 28 can match eol */
3379 YY_RULE_SETUP
3380 {
3381   LEAVE;
3382   ETag_surfxml_platform();
3383   popbuffer(); /* attribute */
3384   switch (YY_START) {
3385    case ROOT_surfxml_platform: SET(EPILOG); break;
3386   }
3387  }
3388         YY_BREAK
3389 case 29:
3390 /* rule 29 can match eol */
3391 YY_RULE_SETUP
3392 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
3393         YY_BREAK
3394 case 30:
3395 YY_RULE_SETUP
3396 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
3397         YY_BREAK
3398 case YY_STATE_EOF(S_surfxml_platform_8):
3399 case YY_STATE_EOF(S_surfxml_platform_1):
3400 case YY_STATE_EOF(S_surfxml_platform_3):
3401 case YY_STATE_EOF(S_surfxml_platform):
3402 case YY_STATE_EOF(S_surfxml_platform_4):
3403 case YY_STATE_EOF(S_surfxml_platform_6):
3404 case YY_STATE_EOF(E_surfxml_platform):
3405 FAIL("Premature EOF: `</platform>' expected.");
3406         YY_BREAK
3407
3408 case 31:
3409 /* rule 31 can match eol */
3410 YY_RULE_SETUP
3411 FAIL("Starting tag <trace> is not allowed here.");
3412         YY_BREAK
3413 case 32:
3414 /* rule 32 can match eol */
3415 YY_RULE_SETUP
3416 {
3417   AX_surfxml_trace_id = 0;
3418   AX_surfxml_trace_file = 0;
3419   AX_surfxml_trace_periodicity = 0;
3420   ENTER(AL_surfxml_trace); pushbuffer(0);
3421   }
3422         YY_BREAK
3423
3424 case 33:
3425 /* rule 33 can match eol */
3426 YY_RULE_SETUP
3427 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
3428         YY_BREAK
3429 case 34:
3430 /* rule 34 can match eol */
3431 YY_RULE_SETUP
3432 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
3433         YY_BREAK
3434 case 35:
3435 /* rule 35 can match eol */
3436 YY_RULE_SETUP
3437 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
3438         YY_BREAK
3439 case 36:
3440 /* rule 36 can match eol */
3441 YY_RULE_SETUP
3442 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
3443         YY_BREAK
3444 case 37:
3445 /* rule 37 can match eol */
3446 YY_RULE_SETUP
3447 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
3448         YY_BREAK
3449 case 38:
3450 /* rule 38 can match eol */
3451 YY_RULE_SETUP
3452 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
3453         YY_BREAK
3454 case 39:
3455 YY_RULE_SETUP
3456 {
3457   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3458   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3459   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
3460  }
3461         YY_BREAK
3462 case 40:
3463 YY_RULE_SETUP
3464 {
3465   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3466   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3467   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
3468   switch (YY_START) {
3469    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3470    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3471   }
3472  }
3473         YY_BREAK
3474 case 41:
3475 YY_RULE_SETUP
3476 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
3477         YY_BREAK
3478 case 42:
3479 YY_RULE_SETUP
3480 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
3481         YY_BREAK
3482 case YY_STATE_EOF(AL_surfxml_trace):
3483 FAIL("EOF in attribute list of `trace' element.");
3484         YY_BREAK
3485
3486 case 43:
3487 /* rule 43 can match eol */
3488 YY_RULE_SETUP
3489 {
3490   LEAVE;
3491   BUFFERDONE;
3492   ETag_surfxml_trace();
3493   surfxml_pcdata_ix = popbuffer();
3494   popbuffer(); /* attribute */
3495   switch (YY_START) {
3496    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3497    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3498   }
3499  }
3500         YY_BREAK
3501 case 44:
3502 /* rule 44 can match eol */
3503 YY_RULE_SETUP
3504 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
3505         YY_BREAK
3506 case YY_STATE_EOF(IN_trace):
3507 FAIL("Premature EOF: `</trace>' expected.");
3508         YY_BREAK
3509
3510 case 45:
3511 /* rule 45 can match eol */
3512 YY_RULE_SETUP
3513 FAIL("Starting tag <random> is not allowed here.");
3514         YY_BREAK
3515 case 46:
3516 /* rule 46 can match eol */
3517 YY_RULE_SETUP
3518 {
3519   AX_surfxml_random_id = 0;
3520   AX_surfxml_random_min = 0;
3521   AX_surfxml_random_max = 0;
3522   AX_surfxml_random_mean = 0;
3523   AX_surfxml_random_std_deviation = 0;
3524   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3525   ENTER(AL_surfxml_random); pushbuffer(0);
3526   }
3527         YY_BREAK
3528
3529 case 47:
3530 /* rule 47 can match eol */
3531 YY_RULE_SETUP
3532 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
3533         YY_BREAK
3534 case 48:
3535 /* rule 48 can match eol */
3536 YY_RULE_SETUP
3537 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
3538         YY_BREAK
3539 case 49:
3540 /* rule 49 can match eol */
3541 YY_RULE_SETUP
3542 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
3543         YY_BREAK
3544 case 50:
3545 /* rule 50 can match eol */
3546 YY_RULE_SETUP
3547 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
3548         YY_BREAK
3549 case 51:
3550 /* rule 51 can match eol */
3551 YY_RULE_SETUP
3552 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
3553         YY_BREAK
3554 case 52:
3555 /* rule 52 can match eol */
3556 YY_RULE_SETUP
3557 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
3558         YY_BREAK
3559 case 53:
3560 /* rule 53 can match eol */
3561 YY_RULE_SETUP
3562 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
3563         YY_BREAK
3564 case 54:
3565 /* rule 54 can match eol */
3566 YY_RULE_SETUP
3567 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
3568         YY_BREAK
3569 case 55:
3570 /* rule 55 can match eol */
3571 YY_RULE_SETUP
3572 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
3573         YY_BREAK
3574 case 56:
3575 /* rule 56 can match eol */
3576 YY_RULE_SETUP
3577 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
3578         YY_BREAK
3579 case 57:
3580 /* rule 57 can match eol */
3581 case 58:
3582 /* rule 58 can match eol */
3583 YY_RULE_SETUP
3584 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3585         YY_BREAK
3586 case 59:
3587 /* rule 59 can match eol */
3588 case 60:
3589 /* rule 60 can match eol */
3590 YY_RULE_SETUP
3591 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
3592         YY_BREAK
3593 case 61:
3594 YY_RULE_SETUP
3595 {
3596   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
3597   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
3598   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
3599   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
3600   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
3601   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
3602  }
3603         YY_BREAK
3604 case 62:
3605 YY_RULE_SETUP
3606 {
3607   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
3608   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
3609   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
3610   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
3611   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
3612   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
3613   switch (YY_START) {
3614    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3615    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3616   }
3617  }
3618         YY_BREAK
3619 case 63:
3620 YY_RULE_SETUP
3621 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
3622         YY_BREAK
3623 case 64:
3624 YY_RULE_SETUP
3625 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
3626         YY_BREAK
3627 case YY_STATE_EOF(AL_surfxml_random):
3628 FAIL("EOF in attribute list of `random' element.");
3629         YY_BREAK
3630
3631 case 65:
3632 /* rule 65 can match eol */
3633 YY_RULE_SETUP
3634 {
3635   LEAVE;
3636   ETag_surfxml_random();
3637   popbuffer(); /* attribute */
3638   switch (YY_START) {
3639    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3640    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3641   }
3642  }
3643         YY_BREAK
3644 case 66:
3645 /* rule 66 can match eol */
3646 YY_RULE_SETUP
3647 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
3648         YY_BREAK
3649 case 67:
3650 YY_RULE_SETUP
3651 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
3652         YY_BREAK
3653 case YY_STATE_EOF(S_surfxml_random_2):
3654 case YY_STATE_EOF(S_surfxml_random):
3655 case YY_STATE_EOF(E_surfxml_random):
3656 FAIL("Premature EOF: `</random>' expected.");
3657         YY_BREAK
3658
3659 case 68:
3660 /* rule 68 can match eol */
3661 YY_RULE_SETUP
3662 FAIL("Starting tag <trace:connect> is not allowed here.");
3663         YY_BREAK
3664 case 69:
3665 /* rule 69 can match eol */
3666 YY_RULE_SETUP
3667 {
3668   AX_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_HOST_AVAIL;
3669   AX_surfxml_trace_c_connect_trace = 0;
3670   AX_surfxml_trace_c_connect_element = 0;
3671   ENTER(AL_surfxml_trace_c_connect); pushbuffer(0);
3672   }
3673         YY_BREAK
3674
3675 case 70:
3676 /* rule 70 can match eol */
3677 case 71:
3678 /* rule 71 can match eol */
3679 YY_RULE_SETUP
3680 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_HOST_AVAIL;
3681         YY_BREAK
3682 case 72:
3683 /* rule 72 can match eol */
3684 case 73:
3685 /* rule 73 can match eol */
3686 YY_RULE_SETUP
3687 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
3688         YY_BREAK
3689 case 74:
3690 /* rule 74 can match eol */
3691 case 75:
3692 /* rule 75 can match eol */
3693 YY_RULE_SETUP
3694 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LINK_AVAIL;
3695         YY_BREAK
3696 case 76:
3697 /* rule 76 can match eol */
3698 case 77:
3699 /* rule 77 can match eol */
3700 YY_RULE_SETUP
3701 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_BANDWIDTH;
3702         YY_BREAK
3703 case 78:
3704 /* rule 78 can match eol */
3705 case 79:
3706 /* rule 79 can match eol */
3707 YY_RULE_SETUP
3708 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LATENCY;
3709         YY_BREAK
3710 case 80:
3711 /* rule 80 can match eol */
3712 YY_RULE_SETUP
3713 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_trace);
3714         YY_BREAK
3715 case 81:
3716 /* rule 81 can match eol */
3717 YY_RULE_SETUP
3718 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_trace);
3719         YY_BREAK
3720 case 82:
3721 /* rule 82 can match eol */
3722 YY_RULE_SETUP
3723 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_element);
3724         YY_BREAK
3725 case 83:
3726 /* rule 83 can match eol */
3727 YY_RULE_SETUP
3728 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_element);
3729         YY_BREAK
3730 case 84:
3731 YY_RULE_SETUP
3732 {
3733   if (!AX_surfxml_trace_c_connect_trace) FAIL("Required attribute `trace' not set for `trace:connect' element.");
3734   if (!AX_surfxml_trace_c_connect_element) FAIL("Required attribute `element' not set for `trace:connect' element.");
3735   LEAVE; STag_surfxml_trace_c_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_c_connect);
3736  }
3737         YY_BREAK
3738 case 85:
3739 YY_RULE_SETUP
3740 {
3741   if (!AX_surfxml_trace_c_connect_trace) FAIL("Required attribute `trace' not set for `trace:connect' element.");
3742   if (!AX_surfxml_trace_c_connect_element) FAIL("Required attribute `element' not set for `trace:connect' element.");
3743   LEAVE; STag_surfxml_trace_c_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_c_connect(); popbuffer(); /* attribute */