Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
d32ecf215b48349ee5112710fdda2bfdb79be486
[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 343
407 #define YY_END_OF_BUFFER 344
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[1970] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436       344,  342,   15,   10,   10,   15,   15,  322,   10,  322,
437         5,    6,    5,    8,    9,    8,  338,  330,  331,  339,
438
439       336,  339,  337,  341,  330,  331,  341,  342,   22,   10,
440        22,   22,   22,   20,   22,   26,   10,   26,   26,   26,
441       342,  342,   26,   37,   10,   37,   37,   37,   35,   37,
442        37,   37,  339,  338,   59,   10,   59,   59,   59,   57,
443        59,   59,   59,   59,   63,   10,   63,  342,   63,   82,
444        10,   82,   82,   82,   80,   82,   82,   82,   86,   10,
445        86,   95,   10,   95,   95,   95,   93,   95,   95,   99,
446        10,   99,   99,  342,   99,   99,  342,  342,   99,  342,
447        99,  342,   99,  120,   10,  120,  120,  120,  118,  120,
448       120,  120,  120,  120,  124,   10,  124,  124,  151,   10,
449
450       151,  151,  151,  149,  151,  151,  151,  151,  151,  151,
451       155,   10,  155,  162,   10,  162,  162,  162,  160,  162,
452       166,   10,  166,  193,   10,  193,  193,  193,  191,  193,
453       193,  193,  193,  197,   10,  197,  197,  210,   10,  210,
454       210,  210,  208,  210,  210,  214,   10,  214,  342,  214,
455       231,   10,  231,  231,  231,  229,  231,  231,  231,  235,
456        10,  235,  235,  248,   10,  248,  248,  248,  246,  248,
457       248,  252,   10,  252,  265,   10,  265,  265,  265,  263,
458       265,  265,  265,  269,   10,  269,  269,  282,   10,  282,
459       282,  282,  280,  282,  282,  282,  282,  286,   10,  286,
460
461       342,  286,  293,   10,  293,  293,  293,  291,  293,  297,
462        10,  297,  304,   10,  304,  304,  304,  302,  304,  308,
463        10,  308,  308,  308,  317,   10,  317,  317,  317,  315,
464       317,  317,  321,   10,  321,   10,    0,    2,    2,    0,
465         4,    7,  333,  332,    0,    0,    0,    0,    0,    0,
466         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
467         0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
468        38,   38,   38,   38,    0,    0,    0,   58,   60,   60,
469        60,   60,   60,   60,   60,    0,    0,   81,   83,   83,
470        83,   83,    0,   94,   96,   96,   96,    0,    0,    0,
471
472         0,    0,    0,    0,    0,    0,  119,  121,  121,  121,
473       121,  121,  121,    0,  150,  152,  152,  152,  152,  152,
474       152,  152,  152,  152,  152,    0,  161,  163,  163,    0,
475       192,  194,  194,  194,  194,  194,  194,    0,  209,  211,
476       211,  211,  211,    0,    0,  230,  232,  232,  232,  232,
477       232,    0,  247,  249,  249,  249,    0,  264,  266,  266,
478       266,  266,    0,  281,  283,  283,  283,  283,  283,    0,
479         0,  292,  294,  294,    0,  303,  305,  305,    0,    0,
480       316,  318,  318,  318,    0,    0,    0,    0,    0,    3,
481         0,    0,    0,    0,    0,    0,    0,  340,    0,   23,
482
483         0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,   87,    0,    0,    0,   38,
485         0,    0,   38,    0,    0,    0,  335,   60,    0,    0,
486        60,   60,   60,   60,    0,    0,    0,   83,   83,   83,
487         0,    0,    0,    0,   96,    0,    0,   88,    0,    0,
488         0,    0,   87,    0,    0,  121,    0,    0,  121,  121,
489       121,    0,    0,  152,    0,    0,    0,    0,  152,  152,
490       152,  152,  152,  152,    0,    0,    0,    0,    0,    0,
491       194,    0,    0,  194,  194,  194,    0,    0,  211,  211,
492       211,    0,    0,    0,  232,  232,  232,  232,    0,    0,
493
494       249,    0,    0,    0,    0,  266,  266,  266,    0,    0,
495       283,  283,  283,  283,    0,    0,    0,  294,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,  318,    0,    0,
497         0,   14,    1,    0,    0,  328,    0,    0,    0,  325,
498       324,    0,    0,   23,    0,    0,   25,    0,   88,    0,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500         0,    0,   87,    0,    0,    0,   38,    0,   30,   29,
501        38,    0,    0,    0,   40,    0,   60,    0,   44,   43,
502         0,    0,   60,    0,    0,   60,    0,    0,   62,    0,
503         0,   83,   83,   83,    0,    0,   85,    0,    0,   90,
504
505        89,   96,    0,    0,   98,    0,    0,    0,    0,    0,
506         0,    0,    0,  121,    0,  103,  102,  121,  121,  121,
507         0,    0,  123,    0,  152,  152,    0,  138,  137,    0,
508       128,  127,    0,    0,  152,  152,  152,  152,  152,    0,
509         0,  154,    0,    0,  159,  158,    0,    0,  165,    0,
510       194,    0,  170,  169,  194,  194,  194,    0,    0,  196,
511         0,    0,    0,    0,    0,  211,    0,    0,  213,    0,
512         0,    0,    0,  232,  232,    0,    0,  232,    0,    0,
513       234,    0,  249,    0,  239,  238,    0,    0,  251,    0,
514         0,    0,  266,  266,    0,    0,    0,    0,  268,    0,
515
516       283,  283,  283,  283,    0,    0,  285,    0,    0,  294,
517         0,    0,  296,    0,    0,  301,  300,    0,    0,  307,
518         0,    0,    0,  312,  311,  318,    0,    0,  320,    0,
519         0,    0,  329,  323,    0,    0,    0,   23,    0,    0,
520         0,    0,    0,    0,  100,  167,    0,    0,  309,    0,
521         0,    0,    0,    0,    0,    0,    0,    0,   38,    0,
522         0,   60,    0,   48,   47,    0,    0,    0,   46,   45,
523        60,    0,  310,   83,    0,    0,   83,    0,   96,    0,
524        97,    0,    0,  101,  168,    0,    0,    0,  121,  121,
525       121,  121,    0,  152,  152,    0,  140,  139,  152,  152,
526
527       152,  152,  152,    0,    0,  194,  194,  194,  194,    0,
528         0,  203,  202,    0,  201,  200,  211,    0,  167,    0,
529       220,  219,  232,  232,    0,  218,  217,  232,    0,  249,
530         0,    0,  258,  257,  266,  266,    0,  256,  255,    0,
531       283,    0,    0,  283,  283,    0,    0,  294,    0,    0,
532         0,  318,    0,    0,    0,    0,   12,    0,  326,  327,
533         0,   23,    0,    0,    0,    0,    0,    0,  100,  167,
534         0,    0,    0,  309,    0,  198,   28,    0,    0,   27,
535         0,    0,   32,   31,   38,    0,    0,   60,    0,   50,
536        49,   60,    0,  310,   83,    0,    0,    0,    0,    0,
537
538         0,   96,    0,    0,  101,  168,  199,  199,  198,  121,
539         0,    0,    0,    0,  121,  121,    0,    0,    0,  152,
540         0,    0,  152,  152,  152,  152,    0,    0,  194,  194,
541       194,    0,    0,  194,    0,  211,    0,    0,  232,  232,
542       232,    0,  249,    0,  266,  266,    0,  283,    0,  273,
543       272,  283,  283,    0,    0,    0,    0,    0,    0,    0,
544         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
545         0,    0,    0,    0,  299,    0,    0,    0,   41,  198,
546       156,   28,    0,  298,    0,   27,    0,    0,   38,    0,
547         0,   60,   60,    0,   83,    0,    0,    0,    0,    0,
548
549         0,    0,    0,    0,   77,   76,    0,   96,    0,    0,
550       199,  157,  121,    0,  105,  104,    0,    0,    0,  121,
551       121,    0,  122,    0,  142,  141,    0,    0,    0,  136,
552       135,    0,    0,  152,  152,    0,    0,    0,    0,  194,
553       194,  194,    0,    0,    0,  194,    0,  195,  211,    0,
554         0,    0,    0,    0,    0,  232,    0,  249,    0,    0,
555         0,    0,    0,    0,  283,  283,  283,    0,    0,    0,
556       290,  289,    0,    0,   42,    0,  314,  313,    0,  319,
557         0,    0,    0,    0,    0,    0,    0,  215,    0,    0,
558       126,  299,    0,    0,  271,   41,  156,    0,  298,  125,
559
560         0,  270,   38,    0,    0,   39,   60,   60,    0,    0,
561         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
562         0,    0,    0,    0,  216,    0,  157,  121,    0,    0,
563       121,    0,    0,    0,  144,  143,    0,  130,  129,    0,
564         0,  152,    0,  132,  131,    0,    0,  194,    0,    0,
565       194,  194,    0,    0,  194,  211,    0,  212,    0,    0,
566       224,  223,    0,  222,  221,  232,    0,  249,    0,    0,
567       262,  261,    0,  260,  259,    0,  283,  283,  283,    0,
568         0,    0,    0,   42,    0,    0,    0,   17,    0,   19,
569        18,    0,  215,  287,    0,  126,  236,   16,  271,    0,
570
571       125,    0,  270,   38,  334,   60,   60,    0,   61,    0,
572        79,   78,    0,    0,    0,    0,    0,    0,    0,    0,
573         0,    0,    0,    0,   92,   91,  216,    0,  121,    0,
574         0,    0,    0,  121,    0,  117,  116,    0,  134,  133,
575       152,    0,    0,  164,  194,    0,  176,  175,  194,  194,
576         0,    0,    0,    0,  194,  211,  237,  232,    0,  249,
577         0,    0,    0,    0,  283,  283,    0,  288,    0,    0,
578       306,    0,    0,    0,   17,    0,  287,    0,  236,   16,
579         0,    0,   38,    0,    0,   60,    0,    0,    0,    0,
580         0,    0,    0,    0,    0,    0,    0,    0,  121,    0,
581
582       111,    0,  110,  121,  152,    0,  153,    0,    0,  194,
583       194,  194,    0,  180,    0,  179,  194,  211,  237,  232,
584         0,  233,    0,    0,    0,    0,    0,  275,  274,    0,
585         0,  283,    0,  284,  288,    0,    0,    0,    0,    0,
586        24,    0,    0,    0,   38,    0,    0,    0,   60,    0,
587         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
588         0,  121,  113,  112,    0,    0,  152,    0,  172,  171,
589       194,  194,  194,  182,  181,    0,    0,    0,    0,    0,
590         0,    0,    0,    0,    0,  250,    0,    0,  279,  278,
591         0,    0,    0,  295,    0,    0,    0,  253,    0,    0,
592
593         0,    0,    0,    0,    0,    0,   60,    0,    0,    0,
594         0,   69,    0,    0,    0,    0,   68,    0,  254,  121,
595         0,  115,  114,  152,  194,  194,  194,    0,  184,  183,
596         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
597         0,    0,    0,    0,  277,  276,    0,    0,    0,  253,
598         0,    0,    0,   34,   33,    0,    0,    0,    0,   60,
599         0,    0,    0,    0,    0,    0,    0,    0,    0,  254,
600         0,    0,  121,  152,  194,    0,    0,  194,    0,    0,
601         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
602         0,    0,    0,    0,    0,    0,    0,   65,   64,    0,
603
604         0,    0,    0,    0,    0,    0,    0,   75,    0,    0,
605         0,   74,    0,    0,    0,  107,  106,  121,  152,  194,
606         0,  178,  177,  194,    0,    0,    0,    0,    0,    0,
607         0,    0,    0,    0,  241,    0,    0,  240,    0,  267,
608         0,    0,    0,    0,    0,    0,   65,   64,    0,    0,
609         0,    0,    0,   52,   51,    0,    0,    0,    0,    0,
610         0,    0,  121,    0,    0,    0,    0,    0,    0,  207,
611         0,  206,    0,  228,    0,  227,    0,    0,    0,    0,
612         0,    0,    0,    0,    0,    0,    0,    0,   56,    0,
613        55,   73,    0,    0,   72,    0,    0,    0,   84,  121,
614
615         0,    0,    0,    0,  174,  173,    0,    0,    0,  205,
616       204,  226,  225,  243,  245,  242,  244,    0,    0,    0,
617        12,    0,   12,    0,    0,    0,   67,   71,   66,   70,
618       121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
619         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
620         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
621        54,   53,    0,  109,  108,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,    0,    0,   11,    0,    0,    0,
623         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
624         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
625
626         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
627         0,  146,    0,  145,    0,    0,  186,    0,    0,  185,
628         0,    0,    0,  188,    0,  187,    0,    0,    0,    0,
629         0,    0,    0,    0,    0,    0,    0,    0,    0,  148,
630       147,  190,  189,    0,    0,    0,    0,    0,    0,    0,
631         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
632         0,    0,    0,    0,    0,    0,    0,   13,    0
633     } ;
634
635 static yyconst flex_int32_t yy_ec[256] =
636     {   0,
637         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
638         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
639         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
640         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
641         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
642        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
643        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
644        16,   28,   29,   16,   30,   31,   32,   33,   34,   35,
645        16,   36,   37,   38,   39,   40,   41,   42,   43,   16,
646        44,    1,   45,    1,   46,    1,   47,   48,   49,   50,
647
648        51,   52,   53,   54,   55,   16,   56,   57,   58,   59,
649        60,   61,   62,   63,   64,   65,   66,   67,   68,   69,
650        70,   16,    1,    1,    1,    1,    1,    1,    1,    1,
651         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
652         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
653         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
654         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
655         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
656         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
657         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
658
659         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
660         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
661         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
662         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
663         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
664         1,    1,    1,    1,    1
665     } ;
666
667 static yyconst flex_int32_t yy_meta[71] =
668     {   0,
669         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
670         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
671         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
672         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
673         5,    5,    5,    1,    1,    5,    9,    9,    9,    9,
674         9,    9,    5,    5,    5,    5,    5,    5,    5,    5,
675         5,    5,    5,    5,    5,    5,    5,    5,    5,    5
676     } ;
677
678 static yyconst flex_int16_t yy_base[2218] =
679     {   0,
680         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
681        14,   17,   33,   36,   49,   55,   45,   61,   66,   73,
682       106,  173,   76,   79,   83,  126,  129,  134,  137,  154,
683       193,  196,  201,  204,  221,  224,  227,  230,  248,  309,
684       280,  286,  370,  434,  268,  273,  277,  330,  333,  337,
685       340,  390,  498,  563,  393,  398,  628,  691,  401,  454,
686       457,  462,  465,  518,  521,  526,  529,  583,  586,  591,
687       594,  648,  651,  656,  659,  711,  714,  719,  722,  739,
688       745,  748,  756,  765,  768,  773,  776,  785,  803,  870,
689       823,  826,  831,  834,  851,  890,  893,  898,  937, 1001,
690
691       901,  918, 1065, 1120,  957,  960, 1175, 1239,  965,  968,
692      1021, 1024, 1029, 1032, 1085, 1088, 1303, 1367, 1093, 1096,
693      1140, 1143, 1148, 1151, 1195, 1198, 1431, 1495, 1203, 1206,
694      1259, 1262, 1267, 1270, 1323, 1326, 1559, 1614, 1331, 1334,
695      1669, 1733, 1387, 1390, 1395, 1398, 1451, 1454, 1459, 1462,
696      1797, 1861, 1515, 1518, 1523, 1526, 1579, 1582, 1587, 1590,
697      1925, 1992, 1634, 1637, 2059, 2114, 1642, 1645, 1689, 1692,
698      1697, 1700, 1753, 1756, 2169, 2236, 1761, 1764,    0,    0,
699      4658, 7106, 7106,   96,  100,   29,   41, 7106,  157,   51,
700      7106, 7106, 4637, 7106, 7106, 4626, 7106, 4640, 4636,  360,
701
702      7106, 7106, 7106, 7106, 4634, 4633, 4590,   84, 7106,  160,
703      4613,    0,  144, 7106, 4581, 7106,  164, 2299, 4581,  428,
704       224, 4613, 4562, 7106,  167, 4598,    0,  216, 7106, 4562,
705      4557, 4555,  344, 4551, 7106,  303, 4575,    0,  341, 7106,
706      4533, 4532,   41, 4509, 7106,  427,   13,   81,  141, 7106,
707       482, 4553,    0,  342, 7106, 4514, 4510, 4499, 7106,  492,
708       345, 7106,  548, 4530,    0,  347, 7106, 4499, 4478, 7106,
709       553, 1772,  198, 4480,   80, 4510,  226,  275,  364,  548,
710        59, 4519,   83, 7106,  613, 4500,    0,  405, 7106, 4452,
711      4467, 4445, 4437, 4441, 7106,  618,  203,  284, 7106,  621,
712
713      4470,    0,  469, 7106,  141, 4439, 4437,  153, 4433,  352,
714      7106,  676,  476, 7106,  682, 4452,    0,  532, 7106, 4421,
715      7106,  685,  780, 7106,  793, 4446,    0,  540, 7106, 4416,
716      4404, 4405,  147, 7106,  796,  348,  409, 7106,  857, 4430,
717         0,  541, 7106, 4381,  238, 7106,  924,  614, 4421, 4375,
718      7106,  985, 4389,    0,  660, 7106, 4344, 4338,  464, 7106,
719       993, 4393,  502, 7106, 1049, 4383,    0,  723, 7106, 4347,
720      4350, 7106, 1057,  972, 7106, 1113, 4379,    0,  734, 7106,
721      4326, 4321, 4307, 7106, 1168, 4357,  546, 7106, 1223, 4345,
722         0,  740, 7106, 4273, 4276, 4279, 4267, 7106, 1231,  479,
723
724      4317,  415, 7106, 1234, 4292,    0,  760, 7106, 4264, 7106,
725      1287, 1036, 7106, 1295, 4289,    0,  835, 7106, 4254, 7106,
726      1298, 1775, 4240,  180, 7106, 1352, 4281,    0,  841, 7106,
727      4246, 4248, 7106, 1355, 1210, 1358,   18, 4224, 7106, 4282,
728      4257, 7106, 7106, 7106, 1350,  241, 4211, 4209, 4184, 4213,
729      4173, 7106,    0, 4166, 4166, 4185, 4158, 4142,  478, 4151,
730      4154,    3,  373, 4145,  553, 4169,  607, 4141,  543, 7106,
731         0, 4145, 1821, 4118,  234, 4115, 4153, 7106,    0, 4112,
732      1828, 4100, 4121, 4107, 4103, 4088,  613, 7106,    0, 4096,
733      4086, 4097, 4077, 7106,    0, 1841, 4068, 4111, 4094, 4060,
734
735      4067, 4071,  532, 4087,  597,  660, 7106,    0, 4062, 1881,
736      4040, 4051, 4030, 4041, 7106,    0, 4041, 1884, 1888, 4021,
737      4012, 4026, 4025, 4023, 4017, 4018, 7106,    0, 1891, 3993,
738      7106,    0, 3995, 1895, 3984, 4001, 3999, 3977, 7106,    0,
739      3967, 3982, 3970, 3964, 3970, 7106,    0, 3953, 3937, 3928,
740      3914, 3948, 7106,    0, 3906, 1945, 3910, 7106,    0, 3894,
741      3912, 3903, 3902, 7106,    0, 3887, 3876, 3882, 3885, 3870,
742      3866, 7106,    0, 3857, 3866, 7106,    0, 1948, 3862,  772,
743      7106,    0, 1952, 3849, 3838, 3877, 3883,  648, 3827, 7106,
744      1407,    0, 3818, 3817, 3856, 3854, 3809, 7106, 3820, 3797,
745
746      1955, 1958, 1423, 3807, 3793, 3780, 3785, 3773, 3777, 3787,
747      3759, 3757, 3748, 3763, 3739, 1426, 3731, 3748, 3727, 3735,
748      1970, 1547, 3725, 3754, 2014, 2018, 7106, 3726, 2021, 1721,
749      2024, 3716, 2027, 3724, 2080, 2089, 3705, 3704, 3711, 3710,
750      2085, 2092, 2135, 1786, 3682, 2140, 2148, 1489, 3685, 3680,
751      3678, 3669, 1663, 3652, 3651, 3660, 2143, 1977, 3662, 3647,
752      3663, 2189, 2192,  425, 2196, 2045, 2199, 2104, 2202, 3657,
753      3655, 3650, 3618, 3628, 2256, 2259, 2263, 2223, 2266, 2269,
754      3624, 2281, 2290, 3622, 3592, 3583, 2303, 2306, 2311, 2315,
755      2333, 2329, 2337, 3588, 2340, 2363, 2366, 2369, 2372, 2375,
756
757      3594, 2387, 2396, 2405, 2412, 2415, 2419, 2426, 2433, 2437,
758      3594, 3569, 3576, 3561, 2440, 2445, 3568, 3547, 2448, 2452,
759      2459, 2471, 2482, 2485, 3553, 2490, 2494, 3543, 2508, 2514,
760      3586, 7106, 7106,  707, 3544, 7106, 3583, 3581, 3524, 7106,
761      7106, 3511, 3509, 3514, 2517, 2520, 7106, 2523, 1608, 3508,
762      3500, 3517, 3496, 3506, 3480, 3483, 3473,  741, 3486, 3459,
763      3474, 3469, 1852, 3456, 3469,  782, 2527, 2545, 7106, 7106,
764      2553, 3492, 2556, 2559, 7106, 2562, 3449, 2565, 7106, 7106,
765      2581, 2584, 2592, 2595, 2599, 3461, 2613, 2616, 7106, 2619,
766       790, 3449, 2622, 3448, 2625, 2628, 7106, 2640, 2647, 7106,
767
768      7106, 3439, 2655, 2659, 7106, 2662, 3433, 3444, 3417, 3425,
769      3414, 3413, 3411, 3417, 2665, 7106, 7106, 3410, 3416, 3409,
770      2681, 2686, 7106, 2689, 3396, 3408, 2693, 7106, 7106, 2701,
771      7106, 7106, 2709, 2712, 3391, 3394, 3399, 3383, 3382, 2720,
772      2723, 7106, 2727, 2730, 7106, 7106, 2742, 2746, 7106, 2752,
773      3367, 2755, 7106, 7106, 3368, 3371, 3354, 2765, 2771, 7106,
774      2774, 2777, 2780, 2795, 2798, 3338, 2806, 2809, 7106, 2817,
775      3346, 2813, 2821, 3336, 3336, 2832, 2836, 3332, 2844, 2850,
776      7106, 2853, 3343, 2856, 7106, 7106, 2864, 2872, 7106, 2875,
777      2878, 2884, 3321, 3319, 2896, 2899, 2907, 2910, 7106, 2915,
778
779      3312, 2918, 3323, 3300, 2921, 2929, 7106, 2936, 3298, 3307,
780      2940, 2943, 7106, 2948, 2955, 7106, 7106, 2951, 2963, 7106,
781      2970, 3303, 2975, 7106, 7106, 3301, 2983, 2989, 7106, 2995,
782       718, 3002, 7106, 7106, 3329, 3321, 3285, 3275, 3008, 3264,
783      3266, 3253, 3246, 3251, 1855, 1917, 3253, 3252, 1920, 3242,
784      3246, 3242, 3237, 3219, 3225, 3224, 3014, 3028, 3223, 3243,
785      3022, 3217, 3037, 7106, 7106, 3017, 3045, 3054, 7106, 7106,
786      3211, 3062, 2053, 3198, 3065, 3072, 3083, 3086, 3197, 3089,
787      7106, 3188, 3188, 2095, 2161, 3200, 3198, 3193, 3196, 3092,
788      3095, 3185, 3101, 3113, 3120, 3124, 7106, 7106, 3134, 3140,
789
790      3143, 3146, 3152, 3166, 3171, 3179, 3183, 3170, 3174, 3177,
791      3192, 7106, 7106, 3204, 7106, 7106, 3164, 3180, 2231, 3213,
792      7106, 7106, 3158, 3169, 3222, 7106, 7106, 3151, 3235, 3147,
793      3238, 3244, 7106, 7106, 3146, 3154, 3257, 7106, 7106, 3265,
794      3147, 3185, 3268, 3134, 3146, 3276, 3114, 3279, 3284, 3287,
795      3107, 3297, 3306,  710, 3144, 3311, 7106, 3143, 7106, 7106,
796      3101, 3101, 3316, 3093, 3106, 3088, 3100, 3087, 3116, 3319,
797      3085, 3071, 3065, 3325, 3067, 3330, 3338, 3060, 3059, 3341,
798      3044, 3345, 7106, 7106, 3052, 3063, 3353, 3035, 3357, 7106,
799      7106, 3016, 3368, 3372, 3015, 3377, 1459, 1873, 3387, 3392,
800
801      3405, 3026, 3012, 3008, 3408, 3411, 3414, 3417, 3420, 3022,
802      3427, 3430, 3438, 3441, 3010, 3006, 3449, 3456, 3459, 3468,
803      3482, 3486, 3494, 3500, 3503, 3506, 3512, 3524, 3009, 2983,
804      2999, 3527, 3531, 2998, 3539, 2990, 3545, 2995, 3548, 3551,
805      3559, 3569, 2983, 3577, 3580, 3583, 3588, 2975, 3601, 7106,
806      7106, 2972, 2949, 3591, 2962, 3613, 3616, 3624, 3634, 2950,
807      3627, 3647, 3637,  699,  339,  318, 7106, 2944, 3656, 3659,
808      2951, 2941, 2959, 2931, 3662, 2924, 2925, 2918, 3665, 3668,
809      3674, 3681, 2931, 3684, 2912, 3688, 2921, 2905, 2913, 2926,
810      3691, 2876, 2874, 3694, 3697, 2906, 2892,  519, 2873, 2884,
811
812      2870,  877, 2862, 3700, 7106, 7106, 3718, 3721, 2843, 2855,
813      3724, 3727, 2834, 3730, 7106, 7106, 3739, 2851, 2838, 2816,
814      3747, 3751, 7106, 3754, 7106, 7106, 3765, 3770, 3779, 7106,
815      7106, 3787, 3790, 3798, 3801, 3805, 3809, 3819, 3823, 2804,
816      3826, 2817, 3829, 2827, 2816, 2794, 3838, 7106, 2795, 3846,
817      2778, 3849, 3853, 3861, 3872, 2792, 3880, 2771, 3885, 3888,
818      3892, 3900, 3906, 3918, 2769, 2764, 2751, 3921, 2746, 3924,
819      7106, 7106, 3933, 3940, 3914, 3945, 7106, 7106, 3953, 7106,
820       837,  607,  670, 2745, 3959, 3962, 3972, 3977, 2730, 2732,
821      3984, 3987, 2731, 2730, 3992, 3995, 3998, 2727, 4001, 4004,
822
823      2711, 4007, 2715, 2721, 4010, 7106, 2700, 2713, 4013, 4017,
824      4020, 2719, 2714, 2704, 2708, 2697, 2704, 2698, 2682, 2686,
825      2676, 4035, 4038, 4041, 4049, 2648, 4056, 2643,  880,  885,
826      2641, 4059, 4062, 4070, 7106, 7106, 4079, 7106, 7106, 4087,
827      4090, 4098, 4101, 7106, 7106, 4109, 4112, 2640, 4116, 4119,
828      2634, 2620,  896,  897, 2623, 2630, 4134, 7106, 2617, 4137,
829      7106, 7106, 4146, 7106, 7106, 2626, 4154, 2613, 4158, 4161,
830      7106, 7106, 4173, 7106, 7106, 4181, 4184, 2619, 2597, 4187,
831      2589, 4190, 4193, 4196, 4212,   75,  822, 4216, 4222, 7106,
832      7106, 4232, 4235, 4238, 2586, 4241, 4244, 4251, 4254, 2588,
833
834      4257, 2587, 4260, 2575, 7106, 4263, 2573, 4266, 7106, 4269,
835      7106, 7106, 2612, 2597, 2608, 2582, 2584, 2582, 2568, 2578,
836      2562, 2565, 4277, 4285, 7106, 7106, 4281, 2523, 2526, 2551,
837      2569, 2546, 2544, 2501, 4296, 7106, 7106, 4304, 7106, 7106,
838      4312, 4315, 4318, 7106, 4321, 4324, 7106, 7106, 2487, 2481,
839      2512, 2532, 2509, 2524, 2481, 2456, 4339, 2447, 4342, 4345,
840      4348, 4351, 4354, 4357, 4372, 2448, 4375, 4378, 4381, 4384,
841      7106, 4390,  848, 1081, 4394, 4410, 4413, 2430, 4416, 4419,
842      2432, 2423, 2411, 4422, 4425, 2411, 2423, 2412, 2371, 2355,
843      2350, 2342, 2335, 2291,  108,  199, 4433,  217,  334,  418,
844
845      7106,  423, 7106, 4436, 4440, 4445, 7106, 4454, 4458,  411,
846       414,  534,  593, 7106,  609, 7106, 4466, 4472, 4475, 4479,
847      4484, 7106, 4491, 4497, 4505, 4509, 4512, 7106, 7106, 4520,
848      4524, 4532, 4538, 7106, 4541, 4544,  933, 1093,  913, 4550,
849      7106,  711,  713,  722, 4553, 4557,  757,  940,  724,  816,
850       843,  842,  887,  904,  903,  913,  942,  952,  970, 4565,
851       929,  921, 7106, 7106, 4574, 4577, 4585, 4588, 7106, 7106,
852       944,  966,  974, 7106, 7106, 4596, 4599, 4607, 4610, 4618,
853      4625, 4639, 1005, 1069, 4647, 7106, 4650, 4653, 7106, 7106,
854      4661, 4669, 4679, 7106, 1034, 1098, 1153, 4682,  988,  991,
855
856      4685, 4688, 1007, 1033, 1027, 1071, 1045, 1080, 1067, 1069,
857      1079, 7106, 1124, 1116, 1116, 1120, 7106, 4698, 4703, 4706,
858      4710, 7106, 7106, 4718, 1105, 4724, 1114, 4727, 7106, 7106,
859      4736, 1171, 1185, 4744, 1235, 1243, 1133, 1134, 1139, 1157,
860      1169, 1176, 4752, 4755, 7106, 7106, 1275, 1330, 4766, 4771,
861      1152, 1164, 4774, 7106, 7106, 1233, 1234, 1253, 1246, 4785,
862      1243, 1260, 1286, 1271, 1281, 1309, 1323, 1317, 4788, 4791,
863      4794, 4803, 1290, 4797, 1292, 4815, 4818, 1275, 1312, 1325,
864      1332, 1369, 1362, 1377, 1370, 1380, 1366, 1376, 1404, 1373,
865      1382, 1409, 4826, 1427, 4829, 4836, 4841, 4849, 4855, 1390,
866
867      1434, 1427, 1442, 4860, 4866, 1440, 1441, 7106, 1442, 1445,
868      1445, 7106, 1449, 4874, 4878, 7106, 7106, 1428, 4886, 4889,
869      4893, 7106, 7106, 4907, 1479, 1451, 1502, 1486, 1518, 1494,
870      1523, 1497, 1502, 1511, 7106, 1505, 1516, 7106, 4910, 7106,
871      1527, 4913, 4916, 4925, 4945, 4990, 4938, 4956, 1518, 1540,
872      1529, 1546, 4965, 7106, 7106, 1551, 1527, 1544, 1579, 1564,
873      1565, 4980, 1541, 4984, 5010, 5002, 5020, 5028, 5034, 7106,
874      1593, 7106, 1592, 7106, 1596, 7106, 1597, 1601, 1607, 1621,
875      1633, 1634, 5042, 1637, 1641, 5062, 5107, 1637, 7106, 1639,
876      7106, 7106, 1650, 1656, 7106, 1659, 1676, 5052, 7106, 1647,
877
878      5082, 1679, 1684, 5090, 7106, 7106, 5127, 1735, 1743, 7106,
879      7106, 7106, 7106, 7106, 7106, 7106, 7106, 1711, 1755, 1688,
880      1699, 1708, 1703, 5055, 1705, 1714, 7106, 7106, 7106, 7106,
881      5098, 1693, 1721, 1734, 1748, 1774, 1753, 1797, 1757, 5101,
882      1785, 1772, 1812, 5135, 1821, 1819, 5138, 5141, 1802, 1812,
883      1806, 1817, 1808, 1817, 1828, 1814, 1846, 1867, 5156, 1882,
884      7106, 7106, 5159, 7106, 7106, 1878, 1875, 1881, 1880, 1883,
885      1910, 1917, 1930, 1935, 1932, 1965, 7106, 1951, 1951, 1957,
886      1958, 1958, 1963, 1964, 1962, 1989, 1993, 2013, 1993, 2010,
887      2000, 2016, 2007, 2005, 2020, 2017, 2014, 2033, 2110, 2040,
888
889      2079, 2051, 2081, 2075, 2067, 2105, 2114, 2106, 2140, 2141,
890      2122, 7106, 2125, 7106, 2151, 2135, 7106, 2188, 2177, 7106,
891      2190, 2185, 2190, 7106, 2191, 7106, 2193, 5167, 2178, 2181,
892      2186, 2188, 5171, 2225, 2255, 2268, 2266, 2258, 2281, 7106,
893      7106, 7106, 7106, 2270, 2308, 2292, 2335, 2334, 2406, 2275,
894      2331, 2376, 2391, 2277, 2360, 2413, 2459, 2451, 2456, 2338,
895      2470, 2494, 2530, 2282, 2278, 5179, 5186, 7106, 7106, 5206,
896      5215, 5224, 5233, 5242, 5251, 5260, 5269, 5278, 5287, 5296,
897      5305, 5314, 5323, 5332, 5341, 5350, 5359, 5368, 5377, 5386,
898      5395, 5404, 5413, 5422, 5431, 5440, 5449, 5458, 5467, 5476,
899
900      5485, 5494, 5503, 5512, 5521, 5530, 5539, 5548, 5557, 5564,
901      5571, 5578, 5585, 5592, 5599, 5606, 5613, 5620, 5627, 5634,
902      5641, 5648, 5655, 5662, 5669, 5676, 5685, 5690, 5695, 5702,
903      5707, 5714, 5719, 5726, 5731, 5736, 5741, 5748, 5753, 5760,
904      5765, 5772, 5777, 5784, 5789, 5796, 5801, 5808, 5813, 5820,
905      5825, 5832, 5837, 5844, 5849, 5856, 5861, 5870, 5876, 5883,
906      5891, 5898, 5906, 5913, 5921, 5928, 5936, 5943, 5951, 5958,
907      5966, 5973, 5981, 5989, 5996, 6004, 6012, 6020, 6028, 6036,
908      6043, 6051, 6059, 6067, 6074, 6082, 6089, 6097, 6105, 6112,
909      6120, 6129, 6135, 6142, 6150, 6158, 6166, 6173, 6181, 6188,
910
911      6196, 6203, 6211, 6218, 6226, 6233, 6241, 6249, 6256, 6264,
912      6271, 6279, 6286, 6294, 6301, 6309, 6316, 6324, 6331, 6339,
913      6346, 6354, 6362, 6369, 6377, 6386, 6395, 6402, 6410, 6417,
914      6425, 6432, 6440, 6447, 6455, 6462, 6469, 6477, 6485, 6493,
915      6501, 6508, 6516, 6523, 6531, 6538, 6546, 6553, 6561, 6568,
916      6576, 6583, 6591, 6599, 6607, 6615, 6623, 6631, 6640, 6649,
917      6656, 6664, 6671, 6679, 6686, 6694, 6701, 6709, 6716, 6723,
918      6731, 6739, 6747, 6755, 6762, 6770, 6777, 6785, 6793, 6801,
919      6808, 6816, 6824, 6832, 6839, 6847, 6855, 6863, 6871, 6880,
920      6889, 6897, 6905, 6912, 6920, 6927, 6935, 6943, 6951, 6959,
921
922      6966, 6974, 6982, 6990, 6997, 7004, 7012, 7019, 7027, 7034,
923      7042, 7051, 7060, 7069, 7078, 7087, 7096
924     } ;
925
926 static yyconst flex_int16_t yy_def[2218] =
927     {   0,
928      1970, 1970, 1971, 1971, 1971, 1971, 1972, 1972, 1973, 1973,
929      1974, 1974, 1975, 1975, 1975, 1975, 1976, 1976, 1970, 1970,
930      1977, 1977, 1978, 1978, 1978, 1978, 1978, 1978, 1970, 1970,
931      1978, 1978, 1970, 1970, 1978, 1978, 1978, 1978, 1979, 1979,
932      1975, 1975, 1980, 1980, 1981, 1981, 1970, 1970, 1981, 1981,
933      1981, 1981, 1982, 1982, 1983, 1983, 1984, 1984, 1985, 1985,
934      1985, 1985, 1970, 1970, 1985, 1985, 1985, 1985, 1970, 1970,
935      1985, 1985, 1970, 1970, 1985, 1985, 1985, 1985, 1970, 1970,
936      1985, 1985, 1970, 1970, 1985, 1985, 1985, 1985, 1986, 1986,
937      1987, 1987, 1970, 1970, 1987, 1987, 1987, 1987, 1988, 1988,
938
939      1989, 1989, 1990, 1990, 1991, 1991, 1992, 1992, 1993, 1993,
940      1970, 1970, 1993, 1993, 1993, 1993, 1994, 1994, 1995, 1995,
941      1970, 1970, 1995, 1995, 1995, 1995, 1996, 1996, 1997, 1997,
942      1970, 1970, 1997, 1997, 1997, 1997, 1998, 1998, 1999, 1999,
943      2000, 2000, 2001, 2001, 1970, 1970, 2001, 2001, 2001, 2001,
944      2002, 2002, 2003, 2003, 1970, 1970, 2003, 2003, 2003, 2003,
945      2004, 2004, 2005, 2005, 2006, 2006, 2007, 2007, 1970, 1970,
946      2007, 2007, 2007, 2007, 2008, 2008, 2009, 2009, 1970, 1970,
947      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
948      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
949
950      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
951      1969, 2010, 1969, 1969, 2010, 1969, 1969, 1969,  218,  218,
952       218,  220,  220, 1969, 1969, 1969, 2011, 1969, 1969, 2011,
953      2011, 2011, 1969, 1969, 1969, 1969, 1969, 2012, 1969, 1969,
954      2012, 2012, 2012, 2012, 1969, 1969,  220,  220,  220, 1969,
955      1969, 1969, 2013, 1969, 1969, 2013, 2013, 2013, 1969, 1969,
956      1969, 1969, 1969, 1969, 2014, 1969, 1969, 2014, 2014, 1969,
957      1969,  221,  221,  221,  272,  273,  273,  273,  273,  279,
958       280,  279,  279, 1969, 1969, 1969, 2015, 1969, 1969, 2015,
959      2015, 2015, 2015, 2015, 1969, 1969,  220,  220, 1969, 1969,
960
961      1969, 2016, 1969, 1969, 2016, 2016, 2016, 2016, 2016, 2016,
962      1969, 1969, 1969, 1969, 1969, 1969, 2017, 1969, 1969, 2017,
963      1969, 1969, 1969, 1969, 1969, 1969, 2018, 1969, 1969, 2018,
964      2018, 2018, 2018, 1969, 1969,  220,  220, 1969, 1969, 1969,
965      2019, 1969, 1969, 2019, 2019, 1969, 1969,  220,  348,  348,
966      1969, 1969, 1969, 2020, 1969, 1969, 2020, 2020, 2020, 1969,
967      1969,  348,  348, 1969, 1969, 1969, 2021, 1969, 1969, 2021,
968      2021, 1969, 1969, 1969, 1969, 1969, 1969, 2022, 1969, 1969,
969      2022, 2022, 2022, 1969, 1969,  348,  348, 1969, 1969, 1969,
970      2023, 1969, 1969, 2023, 2023, 2023, 2023, 1969, 1969,  220,
971
972       400,  400, 1969, 1969, 1969, 2024, 1969, 1969, 2024, 1969,
973      1969, 1969, 1969, 1969, 1969, 2025, 1969, 1969, 2025, 1969,
974      1969,  400,  422,  422, 1969, 1969, 1969, 2026, 1969, 1969,
975      2026, 2026, 1969, 1969, 1969, 1969, 2027, 1969, 1969, 1969,
976      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
977      1969, 1969, 2010, 2010, 2028, 1969, 1969, 1969, 1969, 1969,
978      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
979      2011, 2011, 2011, 2011, 1969, 2029, 1969, 1969, 2030, 2030,
980      2030, 2030, 2030, 2030, 2030, 2031, 1969, 1969, 2032, 2032,
981      2032, 2032, 2033, 1969, 2034, 2034, 2034, 2035, 1969, 1969,
982
983      1969, 1969, 1969, 1969, 1969, 1969, 1969, 2015, 2015, 2015,
984      2015, 2015, 2015, 2036, 1969, 2016, 2016, 2016, 2016, 2016,
985      2016, 2016, 2016, 2016, 2016, 2037, 1969, 2038, 2038, 2039,
986      1969, 2040, 2040, 2040, 2040, 2040, 2040, 2041, 1969, 2042,
987      2042, 2042, 2042, 2043, 1969, 1969, 2044, 2044, 2044, 2044,
988      2044, 2045, 1969, 2046, 2046, 2046, 2047, 1969, 2048, 2048,
989      2048, 2048, 2049, 1969, 2050, 2050, 2050, 2050, 2050, 2051,
990      1969, 1969, 2052, 2052, 2053, 1969, 2054, 2054, 2055, 1969,
991      1969, 2056, 2056, 2056, 2057, 2058, 1969, 2058, 1969, 1969,
992      1969, 2059, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2060,
993
994      2061, 2061, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
995      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2062,
996      1969, 1969, 2062, 1969, 2063, 2063, 1969, 2064, 1969, 1969,
997      2064, 2064, 2064, 2064, 2065, 2065, 1969, 2066, 2066, 2066,
998      2067, 2067, 1969, 1969, 2068, 2069, 2069, 1969, 1969, 1969,
999      1969, 1969, 1969, 1969, 1969, 2070, 1969, 1969, 2070, 2070,
1000      2070, 2071, 2071, 2072, 1969, 1969, 1969, 1969, 2072, 2072,
1001      2072, 2072, 2072, 2072, 2073, 2073, 1969, 1969, 2074, 2074,
1002      2075, 1969, 1969, 2075, 2075, 2075, 2076, 2076, 2077, 2077,
1003      2077, 2078, 2078, 1969, 2079, 2079, 2079, 2079, 2080, 2080,
1004
1005      2081, 1969, 1969, 2082, 2082, 2083, 2083, 2083, 2084, 2084,
1006      2085, 2085, 2085, 2085, 2086, 2086, 1969, 2087, 2088, 2088,
1007      1969, 1969, 2089, 2089, 1969, 1969, 1969, 2090, 2091, 2091,
1008      2092, 1969, 1969, 2092, 1969, 1969, 2093, 1969, 1969, 1969,
1009      1969, 1969, 1969, 2094, 1969, 2095, 1969, 2095, 1969, 1969,
1010      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1011      1969, 1969, 1969, 1969, 1969, 1969, 2096, 1969, 1969, 1969,
1012      2096, 1969, 1969, 2097, 1969, 2097, 2098, 1969, 1969, 1969,
1013      1969, 1969, 2098, 1969, 1969, 2098, 1969, 2099, 1969, 2099,
1014      1969, 2100, 2100, 2100, 1969, 2101, 1969, 2101, 1969, 1969,
1015
1016      1969, 2102, 1969, 2103, 1969, 2103, 1969, 1969, 1969, 1969,
1017      1969, 1969, 1969, 2104, 1969, 1969, 1969, 2104, 2104, 2104,
1018      1969, 2105, 1969, 2105, 2106, 2106, 1969, 1969, 1969, 1969,
1019      1969, 1969, 1969, 1969, 2106, 2106, 2106, 2106, 2106, 1969,
1020      2107, 1969, 2107, 1969, 1969, 1969, 1969, 2108, 1969, 2108,
1021      2109, 1969, 1969, 1969, 2109, 2109, 2109, 1969, 2110, 1969,
1022      2110, 1969, 1969, 1969, 1969, 2111, 1969, 2112, 1969, 2112,
1023      1969, 1969, 1969, 2113, 2113, 1969, 1969, 2113, 1969, 2114,
1024      1969, 2114, 2115, 1969, 1969, 1969, 1969, 2116, 1969, 2116,
1025      1969, 1969, 2117, 2117, 1969, 1969, 1969, 2118, 1969, 2118,
1026
1027      2119, 2119, 2119, 2119, 1969, 2120, 1969, 2120, 1969, 2121,
1028      1969, 2122, 1969, 2122, 1969, 1969, 1969, 1969, 2123, 1969,
1029      2123, 1969, 1969, 1969, 1969, 2124, 1969, 2125, 1969, 2125,
1030      2126, 2127, 1969, 1969, 1969, 1969, 1969, 2128, 2129, 1969,
1031      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1032      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2130, 1969,
1033      2131, 2132, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1034      2132, 2133, 1969, 2134, 1969, 1969, 2134, 2135, 2136, 1969,
1035      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2137, 2137,
1036      2137, 2137, 2138, 2139, 2139, 1969, 1969, 1969, 2139, 2139,
1037
1038      2139, 2139, 2139, 2140, 2141, 2142, 2142, 2142, 2142, 2143,
1039      1969, 1969, 1969, 1969, 1969, 1969, 2144, 2145, 1969, 1969,
1040      1969, 1969, 2146, 2146, 1969, 1969, 1969, 2146, 2147, 2148,
1041      2149, 1969, 1969, 1969, 2150, 2150, 1969, 1969, 1969, 2151,
1042      2152, 1969, 1969, 2152, 2152, 2153, 1969, 2154, 2155, 2156,
1043      1969, 2157, 2158, 2159, 2160, 2160, 1969, 2160, 1969, 1969,
1044      1969, 2161, 2162, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1045      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1046      1969, 1969, 1969, 1969, 2163, 1969, 2164, 2165, 1969, 1969,
1047      1969, 2165, 2166, 1969, 2167, 1969, 1969, 1969, 1969, 1969,
1048
1049      2168, 2169, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2170,
1050      1969, 1969, 1969, 1969, 2170, 2170, 2171, 1969, 1969, 2172,
1051      1969, 1969, 2172, 2172, 2172, 2172, 2173, 2174, 2175, 2175,
1052      2175, 1969, 1969, 2175, 2176, 2177, 2178, 1969, 2179, 2179,
1053      2179, 2180, 2181, 2182, 2183, 2183, 2184, 2185, 1969, 1969,
1054      1969, 2185, 2185, 2186, 1969, 1969, 1969, 2187, 2188, 1969,
1055      1969, 1969, 2189, 2190, 2191, 2191, 1969, 1969, 2192, 2193,
1056      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1057      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2194, 1969,
1058      2195, 2196, 2196, 2197, 2198, 1969, 1969, 1969, 1969, 1969,
1059
1060      1969, 1969, 1969, 1969, 1969, 1969, 2199, 2200, 1969, 1969,
1061      1969, 1969, 2201, 1969, 1969, 1969, 1969, 1969, 1969, 2201,
1062      2201, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1063      1969, 1969, 1969, 2202, 2202, 1969, 1969, 2203, 2204, 2205,
1064      2205, 2205, 1969, 1969, 1969, 2205, 1969, 1969, 2206, 2207,
1065      1969, 1969, 1969, 1969, 1969, 2208, 2209, 2210, 2211, 1969,
1066      1969, 1969, 1969, 2184, 2185, 2185, 2185, 2186, 1969, 1969,
1067      1969, 1969, 2187, 2188, 1969, 1969, 1969, 1969, 1969, 1969,
1068      2190, 2191, 2191, 1969, 1969, 1969, 2193, 1969, 1969, 1969,
1069      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1070
1071      1969, 1969, 2194, 1969, 1969, 1969, 2196, 2196, 2197, 1969,
1072      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1073      1969, 2199, 1969, 1969, 1969, 1969, 1969, 2201, 1969, 1969,
1074      2201, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1075      1969, 2202, 1969, 1969, 1969, 2203, 2204, 2205, 1969, 1969,
1076      2205, 2205, 1969, 1969, 2205, 2206, 1969, 1969, 1969, 1969,
1077      1969, 1969, 1969, 1969, 1969, 2208, 2209, 2210, 2211, 1969,
1078      1969, 1969, 1969, 1969, 1969, 2184, 2185, 2185, 2185, 2186,
1079      1969, 2187, 2188, 1969, 2190, 2191, 2191, 1969, 1969, 1969,
1080      1969, 2193, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1081
1082      1969, 1969, 1969, 2194, 1969, 2196, 2196, 1969, 1969, 1969,
1083      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1084      1969, 1969, 2199, 1969, 1969, 1969, 1969, 1969, 2201, 1969,
1085      1969, 1969, 1969, 2201, 1969, 1969, 1969, 1969, 1969, 1969,
1086      2202, 2203, 1969, 1969, 2205, 1969, 1969, 1969, 2205, 2205,
1087      1969, 1969, 1969, 1969, 2205, 2206, 1969, 2208, 2209, 2210,
1088      2211, 2184, 1969, 1969, 2185, 2185, 2186, 1969, 2187, 1969,
1089      1969, 2190, 2191, 2191, 1969, 2193, 1969, 1969, 1969, 1969,
1090      1969, 1969, 2194, 1969, 1969, 2196, 1969, 1969, 1969, 1969,
1091      1969, 1969, 1969, 1969, 1969, 1969, 2199, 1969, 2201, 1969,
1092
1093      1969, 1969, 1969, 2201, 2202, 1969, 1969, 1969, 1969, 2205,
1094      2205, 2205, 1969, 1969, 1969, 1969, 2205, 2206, 1969, 2208,
1095      1969, 1969, 1969, 1969, 2211, 2184, 1969, 1969, 1969, 1969,
1096      1969, 2185, 1969, 1969, 1969, 2187, 2190, 2191, 2191, 1969,
1097      1969, 1969, 1969, 1969, 2194, 1969, 1969, 1969, 2196, 1969,
1098      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2199,
1099      1969, 2201, 1969, 1969, 1969, 1969, 2202, 1969, 1969, 1969,
1100      2205, 2205, 2205, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1101      1969, 1969, 1969, 1969, 1969, 1969, 2184, 1969, 1969, 1969,
1102      1969, 1969, 1969, 1969, 2190, 2191, 2191, 1969, 1969, 1969,
1103
1104      1969, 1969, 1969, 1969, 1969, 1969, 2196, 1969, 1969, 1969,
1105      1969, 1969, 1969, 1969, 1969, 1969, 1969, 2199, 1969, 2201,
1106      1969, 1969, 1969, 2202, 2205, 2205, 2205, 1969, 1969, 1969,
1107      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1108      1969, 1969, 2184, 1969, 1969, 1969, 2190, 2191, 2191, 1969,
1109      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2196,
1110      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2199, 1969,
1111      1969, 1969, 2201, 2202, 2205, 1969, 1969, 2205, 1969, 1969,
1112      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1113      1969, 1969, 2184, 2190, 2191, 2191, 2191, 1969, 1969, 1969,
1114
1115      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1116      1969, 1969, 1969, 2199, 1969, 1969, 1969, 2201, 2202, 2205,
1117      1969, 1969, 1969, 2205, 1969, 1969, 1969, 1969, 1969, 1969,
1118      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1119      2190, 2191, 2191, 2191, 2212, 2213, 1969, 1969, 1969, 1969,
1120      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1121      1969, 2199, 2201, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1122      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1123      1969, 2190, 2191, 2214, 2215, 2212, 2213, 1969, 1969, 1969,
1124      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2201,
1125
1126      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1127      1969, 1969, 1969, 1969, 1969, 1969, 1969, 2190, 2214, 2191,
1128      2216, 2215, 2217, 2191, 1969, 1969, 1969, 1969, 1969, 1969,
1129      2201, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2190,
1130      2216, 1969, 2217, 2191, 1969, 1969, 1969, 1969, 1969, 1969,
1131      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2190, 1969,
1132      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1133      1969, 1969, 1969, 1969, 1969, 2190, 1969, 1969, 1969, 1969,
1134      1969, 1969, 1969, 1969, 1969, 1969, 1969, 2190, 1969, 1969,
1135      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2190, 1969,
1136
1137      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 2190,
1138      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1139      2190, 1969, 1969, 1969, 1969, 1969, 1969, 2190, 1969, 1969,
1140      1969, 1969, 2190, 1969, 1969, 1969, 1969, 2190, 2190, 1969,
1141      1969, 1969, 1969, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
1142      2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
1143      2190, 2190, 2190, 2190, 2190, 2190, 2190, 1969,    0, 1969,
1144      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1145      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1146      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1147
1148      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1149      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1150      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1151      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1152      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1153      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1154      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1155      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1156      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1157      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1158
1159      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1160      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1161      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1162      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1163      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1164      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1165      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1166      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1167      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1168      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1169
1170      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1171      1969, 1969, 1969, 1969, 1969, 1969, 1969
1172     } ;
1173
1174 static yyconst flex_int16_t yy_nxt[7177] =
1175     {   0,
1176      1969,  184,  185,  184,  184,  185,  184,  184,  185,  184,
1177       184,  185,  184,  189,  185,  189,  195,  186,  192,  195,
1178       186,  192, 1969,  187,  486,  193,  187,  587,  193,  190,
1179       189,  185,  189,  437,  196,  198,  199,  196,  198,  199,
1180       200,  201,  588,  200,  201,  437,  190,  205,  206,  438,
1181       202,  198,  199,  202,  203,  440,  200,  198,  199,  610,
1182       203,  439,  200,  205,  206,  611,  202,  185,  185,  185,
1183       498,  439,  202,  487,  185,  185,  185,  217,  185,  217,
1184       217,  185,  217,  208,  217,  185,  217,  482,  440,  207,
1185       208,  483, 1969,  218, 1057,  484,  218,  436,  436,  436,
1186
1187       219,  436,  436,  436,  439,  207,  209,  210,  185,  210,
1188       209,  209,  209,  209,  209,  209,  209,  211,  209,  209,
1189       209,  503,  209,  213,  209,  214,  209,  217,  185,  217,
1190       217,  185,  217,  460, 1473,  217,  185,  217,  185,  185,
1191       185,  487,  463,  219,  451,  463,  220,  468,  440,  209,
1192       209,  220,  486, 1558,  221,  185,  185,  185,  436,  436,
1193       436,  436,  436,  436,  439,  436,  436,  436,  436,  436,
1194       436,  221,  215,  209,  210,  185,  210,  209,  209,  209,
1195       209,  209,  209,  209,  211,  209,  209,  209,  517,  209,
1196       213,  209,  214,  209,  217,  185,  217,  217,  185,  217,
1197
1198       536,  469,  185,  185,  185,  185,  185,  185,  518,  498,
1199       219,  537,  521,  219,  514,  522,  209,  209,  222,  504,
1200       440,  222,  217,  185,  217,  217,  185,  217,  217,  185,
1201       217,  217,  185,  217, 1559, 1969,  439, 1969,  220,  215,
1202       469,  220,  463,  587,  223,  500,  467,  223,  224,  225,
1203       185,  225,  224,  224,  224,  224,  224,  224,  224,  226,
1204       224,  224,  224,  487,  224,  228,  224,  229,  224,  246,
1205       185,  246,  465,  458,  246,  185,  246,  624,  185,  185,
1206       185, 1561,  198,  199,  469,  247, 1969,  200,  198,  199,
1207       247,  224,  224,  200,  248,  514,  466,  233,  593,  230,
1208
1209       542,  594,  231,  233,  436,  436,  436,  543,  232,  224,
1210       225,  185,  225,  224,  224,  224,  224,  224,  224,  224,
1211       226,  224,  224,  224,  234,  224,  228,  224,  229,  224,
1212       234,  185,  185,  185,  246,  185,  246, 1057,  246,  185,
1213       246,  246,  185,  246,  469,  440,  440,  248,  475,  440,
1214       247,  440,  224,  224,  247,  476,  493,  249, 1057,  538,
1215       230,  439,  439,  231,  439,  439,  445,  439, 1283,  232,
1216       235,  236,  185,  236,  235,  235,  235,  235,  235,  235,
1217       235,  237,  235,  235,  235,  466,  235,  239,  235,  240,
1218       235,  246,  185,  246,  260,  185,  260, 1282, 1562,  260,
1219
1220       185,  260,  271,  185,  271,  524,  446,  249,  487,  440,
1221       261,  458,  447,  235,  235,  261,  448,  525,  272,  612,
1222       538,  449,  241, 1563,  242,  439,  505,  243,  436,  436,
1223       436, 1564,  613,  244,  235,  236,  185,  236,  235,  235,
1224       235,  235,  235,  235,  235,  237,  235,  235,  235,  466,
1225       235,  239,  235,  240,  235,  271,  185,  271,  271,  185,
1226       271,  457, 1571,  271,  185,  271,  185,  185,  185,  469,
1227      1572,  272,  825,  440,  273,  469,  467,  235,  235,  273,
1228       440,  826,  274,  436,  436,  436,  241,  526,  242,  439,
1229       570,  243,  468,  436,  436,  436,  439,  244,  250,  251,
1230
1231       185,  251,  250,  250,  250,  250,  250,  250,  250,  252,
1232       250,  250,  250,  552,  250,  254,  250,  255,  250,  185,
1233       185,  185,  271,  185,  271,  571,  550,  271,  185,  271,
1234       271,  185,  271,  551,  606,  274,  440,  607,  275,  487,
1235      1314,  250,  250,  275,  440,  440,  276, 1315,  256,  436,
1236       436,  436,  439,  257,  436,  436,  436,  563,  461, 1969,
1237       439,  439,  258,  250,  251,  185,  251,  250,  250,  250,
1238       250,  250,  250,  250,  252,  250,  250,  250,  612,  250,
1239       254,  250,  255,  250,  271,  185,  271,  185,  185,  185,
1240      1573,  652,  185,  185,  185,  271,  185,  271, 1574,  610,
1241
1242       276,  501,  461,  277,  502,  619,  250,  250,  277,  606,
1243       506,  273,  615,  256,  436,  436,  436, 1575,  257,  436,
1244       436,  436,  436,  436,  436,  544, 1057,  258,  262,  263,
1245       185,  263,  262,  262,  262,  262,  262,  262,  262,  264,
1246       262,  262,  262,  612,  262,  266,  262,  267,  262,  271,
1247       185,  271,  185,  185,  185, 1386,  654,  185,  185,  185,
1248       271,  185,  271,  617,  440,  273,  615,  732,  278,  610,
1249       545,  262,  262,  278,  469,  637,  276,  436,  436,  436,
1250       439,  734,  268,  436,  436,  436,  436,  436,  436, 1057,
1251       269,  262,  263,  185,  263,  262,  262,  262,  262,  262,
1252
1253       262,  262,  264,  262,  262,  262,  612,  262,  266,  262,
1254       267,  262,  271,  185,  271,  271,  185,  271,  732,  655,
1255       271,  185,  271,  185,  185,  185,  732,  440,  276,  732,
1256       931,  279, 1387, 1281,  262,  262,  279,  732,  440,  280,
1257       185,  185,  185,  439,  440,  268,  271,  185,  271,  271,
1258       185,  271, 1164,  269,  439, 1054,  280,  185,  185,  185,
1259       439, 1598,  281, 1599,  440,  281,  185,  185,  185,  271,
1260       185,  271, 1600,  282,  271,  185,  271,  271,  185,  271,
1261       439, 1603,  282, 1607,  440,  279,  271,  185,  271,  948,
1262       279,  530, 1604,  283,  436,  436,  436,  436,  436,  436,
1263
1264       439,  949,  283,  284,  285,  185,  285,  284,  284,  284,
1265       284,  284,  284,  284,  286,  284,  284,  284,  725,  284,
1266       288,  284,  289,  284,  296,  185,  296,  296,  185,  296,
1267       956,  613,  185,  185,  185,  185,  185,  185,  956,  440,
1268       297, 1057,  949,  297, 1608,  440,  284,  284,  248,  290,
1269       973,  248,  296,  185,  296,  439,  732,  291,  436,  436,
1270       436,  439, 1385,  292, 1609, 1610,  293, 1057,  297,  294,
1271       284,  285,  185,  285,  284,  284,  284,  284,  284,  284,
1272       284,  286,  284,  284,  284, 1474,  284,  288,  284,  289,
1273       284,  296,  185,  296,  296,  185,  296, 1538, 1319,  296,
1274
1275       185,  296,  312,  185,  312, 1320, 1430,  297, 1611, 1612,
1276       298, 1432, 1431,  284,  284,  298,  290, 1433,  313,  312,
1277       185,  312, 1451, 1453,  291,  436,  436,  436, 1452, 1454,
1278       292, 1613, 1057,  293, 1614,  313,  294,  299,  300,  185,
1279       300,  299,  299,  299,  299,  299,  299,  299,  301,  299,
1280       299,  299,  732,  299,  303,  299,  304,  299,  322,  185,
1281       322,  322,  185,  322, 1605, 1615,  335,  185,  335,  335,
1282       185,  335, 1597, 1616,  323, 1606,  440,  323, 1617, 1619,
1283       299,  299,  336,  557,  305,  336,  436,  436,  436, 1595,
1284      1620,  306,  439,  307,  436,  436,  436,  308, 1625,  309,
1285
1286       310,  299,  300,  185,  300,  299,  299,  299,  299,  299,
1287       299,  299,  301,  299,  299,  299, 1626,  299,  303,  299,
1288       304,  299,  185,  185,  185,  185,  185,  185, 1627, 1637,
1289       335,  185,  335,  335,  185,  335, 1651, 1638,  248, 1652,
1290       440,  248, 1656, 1639,  299,  299,  336,  575,  305,  336,
1291       436,  436,  436,  732, 1657,  306,  439,  307,  436,  436,
1292       436,  308, 1658,  309,  310,  314,  315,  185,  315,  314,
1293       314,  314,  314,  314,  314,  314,  316,  314,  314,  314,
1294      1647,  314,  318,  314,  319,  314,  335,  185,  335,  335,
1295       185,  335, 1659, 1640,  347,  185,  347,  347,  185,  347,
1296
1297      1057, 1641,  337, 1660, 1661,  337, 1662, 1642,  314,  314,
1298       348, 1663, 1057,  348,  436,  436,  436, 1057, 1664,  320,
1299       314,  315,  185,  315,  314,  314,  314,  314,  314,  314,
1300       314,  316,  314,  314,  314, 1539,  314,  318,  314,  319,
1301       314,  185,  185,  185,  185,  185,  185, 1596, 1665,  347,
1302       185,  347,  347,  185,  347, 1666, 1648,  349, 1667, 1668,
1303       349, 1675, 1678,  314,  314,  348, 1687, 1688,  348,  436,
1304       436,  436, 1057, 1689,  320,  324,  325,  185,  325,  324,
1305       324,  324,  324,  324,  324,  324,  326,  324,  324,  324,
1306      1690,  324,  328,  324,  329,  324,  347,  185,  347,  347,
1307
1308       185,  347, 1691, 1679,  361,  185,  361,  361,  185,  361,
1309      1692, 1649,  350, 1680,  440,  350, 1698, 1681,  324,  324,
1310       362,  585,  330,  362,  436,  436,  436, 1682, 1699,  331,
1311       439,  332,  436,  436,  436,  436,  436,  436,  333,  324,
1312       325,  185,  325,  324,  324,  324,  324,  324,  324,  324,
1313       326,  324,  324,  324, 1700,  324,  328,  324,  329,  324,
1314       185,  185,  185,  185,  185,  185, 1701, 1683,  361,  185,
1315       361,  361,  185,  361, 1702, 1685,  349, 1684, 1703,  349,
1316      1706, 1707,  324,  324,  362, 1686,  330,  362,  436,  436,
1317       436, 1708, 1709,  331,  732,  332,  436,  436,  436,  436,
1318
1319       436,  436,  333,  338,  339,  185,  339,  338,  338,  338,
1320       338,  338,  338,  338,  340,  338,  338,  338, 1710,  338,
1321       342,  338,  343,  338,  361,  185,  361,  361,  185,  361,
1322      1711, 1712,  373,  185,  373,  373,  185,  373, 1713, 1694,
1323       363, 1718, 1720,  363, 1724, 1725,  338,  338,  374, 1057,
1324      1726,  374,  344,  436,  436,  436,  436,  436,  436,  436,
1325       436,  436,  591,  591,  591, 1727,  345,  338,  339,  185,
1326       339,  338,  338,  338,  338,  338,  338,  338,  340,  338,
1327       338,  338, 1695,  338,  342,  338,  343,  338,  385,  185,
1328       385,  385,  185,  385, 1728, 1729,  185,  185,  185,  185,
1329
1330       185,  185, 1730, 1731,  386, 1732, 1733,  386, 1734, 1735,
1331       338,  338,  349, 1736, 1737,  349,  344, 1738,  592,  591,
1332       591,  591, 1749,  736,  749,  749,  749,  763,  763,  763,
1333       345,  351,  352,  185,  352,  351,  351,  351,  351,  351,
1334       351,  351,  353,  351,  351,  351,  732,  351,  355,  351,
1335       356,  351,  385,  185,  385,  385,  185,  385, 1750, 1751,
1336       385,  185,  385,  385,  185,  385, 1752, 1756,  386, 1757,
1337      1758,  386, 1759, 1760,  351,  351,  387, 1761, 1741,  387,
1338       357, 1196, 1763,  358, 1770,  750, 1197, 1771,  750, 1198,
1339       749,  749,  749, 1199,  359,  351,  352,  185,  352,  351,
1340
1341       351,  351,  351,  351,  351,  351,  353,  351,  351,  351,
1342      1772,  351,  355,  351,  356,  351,  399,  185,  399,  399,
1343       185,  399, 1773, 1774,  185,  185,  185,  185,  185,  185,
1344      1775, 1776,  400, 1777, 1778,  400, 1779, 1780,  351,  351,
1345       401, 1781, 1788,  401,  357, 1789,  732,  358,  768,  768,
1346       768,  807,  769, 1790, 1791,  770, 1792, 1793,  359,  364,
1347       365,  185,  365,  364,  364,  364,  364,  364,  364,  364,
1348       366,  364,  364,  364, 1794,  364,  368,  364,  369,  364,
1349       399,  185,  399,  399,  185,  399, 1782, 1795,  399,  185,
1350       399,  399,  185,  399, 1796, 1797,  400, 1800, 1810,  400,
1351
1352      1811, 1812,  364,  364,  402, 1813, 1814,  402,  370,  749,
1353       749,  749, 1815,  371,  364,  365,  185,  365,  364,  364,
1354       364,  364,  364,  364,  364,  366,  364,  364,  364, 1816,
1355       364,  368,  364,  369,  364,  411,  185,  411,  411,  185,
1356       411, 1817, 1820,  421,  185,  421,  421,  185,  421, 1820,
1357      1825,  412, 1826,  732,  412, 1827, 1821,  364,  364,  422,
1358      1823, 1828,  422,  370,  763,  763,  763, 1829,  371,  375,
1359       376,  185,  376,  375,  375,  375,  375,  375,  375,  375,
1360       377,  375,  375,  375, 1830,  375,  379,  375,  380,  375,
1361       185,  185,  185,  185,  185,  185, 1818, 1831,  421,  185,
1362
1363       421,  421,  185,  421, 1842, 1832,  248, 1057, 1058,  248,
1364      1834, 1842,  375,  375,  423, 1833, 1820,  423,  381, 1845,
1365      1835,  382,  778,  778,  778,  807,  779, 1823, 1846,  780,
1366       732, 1849,  383,  375,  376,  185,  376,  375,  375,  375,
1367       375,  375,  375,  375,  377,  375,  375,  375, 1850,  375,
1368       379,  375,  380,  375,  421,  185,  421,  421,  185,  421,
1369      1820, 1836,  434,  185,  434,  434,  185,  434, 1840, 1838,
1370       424, 1837, 1851,  424, 1821, 1852,  375,  375,  435, 1839,
1371      1855,  435,  381,  498, 1858,  382,  579,  799,  799,  799,
1372      1842,  800, 1860,  499,  801, 1853,  383,  388,  389,  185,
1373
1374       389,  388,  388,  388,  388,  388,  388,  388,  390,  388,
1375       388,  388, 1854,  388,  392,  388,  393,  388, 1856,  500,
1376      1842,  457,  621,  621,  621,  501, 1861, 1862,  502,  629,
1377       629,  629, 1866, 1867,  503, 1857, 1868,  580, 1869,  622,
1378       388,  388,  643,  643,  643, 1870,  630, 1871,  394, 1872,
1379       395, 1873,  396,  763,  763,  763, 1069, 1069, 1069,  644,
1380       397,  388,  389,  185,  389,  388,  388,  388,  388,  388,
1381       388,  388,  390,  388,  388,  388, 1874,  388,  392,  388,
1382       393,  388,  657,  657,  657,  665,  665,  665, 1875,  667,
1383       667,  667,  677,  677,  677, 1200,  682,  682,  682,  658,
1384
1385      1201, 1877,  666, 1202,  388,  388,  668, 1203, 1878,  678,
1386      1879, 1880,  394,  683,  395, 1881,  396, 1882, 1070, 1070,
1387      1070, 1074, 1074, 1074,  397,  403,  404,  185,  404,  403,
1388       403,  403,  403,  403,  403,  403,  405,  403,  403,  403,
1389      1883,  403,  407,  403,  408,  403,  702,  702,  702,  721,
1390       721,  721, 1884,  726,  726,  726,  745,  745,  745,  745,
1391       745,  745, 1071,  703, 1885, 1886,  722, 1887,  403,  403,
1392       727,  621,  621,  621,  747, 1889, 1890,  747,  815,  815,
1393       815, 1891,  816, 1892,  732,  817, 1893, 1894,  622, 1895,
1394      1896,  409,  403,  404,  185,  404,  403,  403,  403,  403,
1395
1396       403,  403,  403,  405,  403,  403,  403, 1888,  403,  407,
1397       403,  408,  403, 1897,  748,  773,  773,  773, 1898,  773,
1398       773,  773,  629,  629,  629,  781,  781,  781,  784,  784,
1399       784, 1900,  732,  775, 1901,  403,  403,  775, 1902,  630,
1400      1903, 1904,  782, 1905, 1906,  785,  827,  827,  827, 1899,
1401       828, 1907, 1908,  829, 1094, 1094, 1094, 1909,  409,  413,
1402       414,  185,  414,  413,  413,  413,  413,  413,  413,  413,
1403       415,  413,  413,  413, 1911,  413,  417,  413,  418,  413,
1404       776,  787,  787,  787, 1912, 1913,  795,  795,  795, 1914,
1405       787,  787,  787,  795,  795,  795, 1105, 1105, 1105,  789,
1406
1407      1915, 1916,  413,  413,  797,  830,  830,  830,  789,  831,
1408      1917,  797,  832,  419,  413,  414,  185,  414,  413,  413,
1409       413,  413,  413,  413,  413,  415,  413,  413,  413,  732,
1410       413,  417,  413,  418,  413,  790,  643,  643,  643, 1918,
1411      1919,  803,  803,  803,  657,  657,  657, 1910, 1920,  803,
1412       803,  803, 1922,  644,  798, 1923, 1924,  413,  413,  805,
1413       732,  658, 1106, 1106, 1106, 1925, 1921,  805,  419,  425,
1414       426,  185,  426,  425,  425,  425,  425,  425,  425,  425,
1415       427,  425,  425,  425,  806,  425,  429,  425,  430,  425,
1416       821,  821,  821,  821,  821,  821, 1926,  665,  665,  665,
1417
1418       667,  667,  667,  833,  833,  833, 1071, 1927,  823,  732,
1419      1929,  823,  425,  425,  666, 1930, 1931,  668, 1932, 1934,
1420       834, 1928, 1935,  431,  844,  844,  844, 1936,  845, 1937,
1421      1940,  846, 1070, 1070, 1070,  432,  425,  426,  185,  426,
1422       425,  425,  425,  425,  425,  425,  425,  427,  425,  425,
1423       425,  824,  425,  429,  425,  430,  425,  840,  840,  840,
1424       840,  840,  840, 1941,  677,  677,  677,  847,  847,  847,
1425       847,  847,  847, 1942, 1943,  842, 1138,  732,  842,  425,
1426       425,  678,  682,  682,  682,  849, 1966, 1966,  849,  732,
1427       431,  852,  852,  852,  732,  853,  732,  732,  854,  683,
1428
1429       732,  732,  432,  440,  858,  858,  858,  858,  858,  858,
1430       455,  732,  862,  862,  862,  843,  864,  864,  864,  439,
1431       456, 1944,  860, 1557, 1946,  860, 1956,  732,  850,  863,
1432       867,  867,  867,  865, 1969, 1969, 1969, 1952,  867,  867,
1433       867,  872,  872,  872, 1945,  457,  458,  459,  869, 1948,
1434       732, 1969,  460,  732,  732,  461,  869,  732,  873,  462,
1435       861,  463, 1947,  464, 1969, 1969, 1969,  876,  876,  876,
1436      1969, 1969, 1969,  879,  879,  879,  879,  879,  879,  732,
1437      1556, 1969, 1555,  866,  877, 1554, 1950, 1969,  702,  702,
1438       702,  881, 1949, 1953,  881,  732,  870,  884,  884,  884,
1439
1440      1553,  885, 1962, 1552,  886,  703,  887,  887,  887, 1957,
1441       732,  882,  874,  887,  887,  887,  891,  891,  891,  878,
1442      1969, 1969, 1969, 1958,  889,  732,  875,  895,  895,  895,
1443      1954,  889,  732,  892,  897,  897,  897, 1969,  897,  897,
1444       897,  905,  905,  905,  896, 1955,  905,  905,  905,  911,
1445       911,  911,  899,  911,  911,  911,  899, 1551, 1951,  907,
1446       721,  721,  721, 1550,  907, 1549,  890,  913,  893, 1959,
1447       732,  913,  915,  915,  915,  732,  916,  722,  732,  917,
1448      1545, 1544,  894,  918,  918,  918,  918,  918,  918,  732,
1449      1543,  726,  726,  726, 1542,  923,  923,  923, 1532,  924,
1450
1451      1960,  920,  925, 1520,  920, 1961,  900,  908,  727,  927,
1452       927,  927, 1518,  732,  914,  927,  927,  927,  745,  745,
1453       745,  745,  745,  745,  745,  745,  745,  929,  957,  957,
1454       957, 1517, 1516,  929, 1963, 1515,  747, 1514, 1513,  747,
1455      1512, 1511,  747, 1964,  921,  958,  768,  768,  768,  732,
1456       769, 1504, 1503,  770, 1969, 1969, 1969,  773,  773,  773,
1457       773,  773,  773,  773,  773,  773,  778,  778,  778,  939,
1458       779, 1969, 1502,  780, 1501,  775,  930, 1500,  775, 1965,
1459      1499,  775,  781,  781,  781,  963,  963,  963, 1498,  964,
1460      1496, 1495,  965,  966,  966,  966,  784,  784,  784,  782,
1461
1462       968,  968,  968, 1494,  969, 1493, 1492,  970,  961, 1491,
1463       967, 1490,  959,  785,  787,  787,  787,  787,  787,  787,
1464       787,  787,  787,  975,  975,  975,  795,  795,  795,  795,
1465       795,  795,  789, 1489, 1488,  789, 1487, 1486,  789, 1483,
1466       976,  795,  795,  795,  797, 1482, 1481,  797,  799,  799,
1467       799, 1478,  800, 1468, 1466,  801,  803,  803,  803,  797,
1468       803,  803,  803,  980,  980,  980,  815,  815,  815, 1465,
1469       816, 1460, 1458,  817,  805, 1457, 1456,  972,  805, 1455,
1470      1450,  981,  821,  821,  821, 1449,  978,  821,  821,  821,
1471       821,  821,  821, 1445,  827,  827,  827, 1434,  828, 1429,
1472
1473       823,  829,  830,  830,  830,  823,  831, 1428,  823,  832,
1474       833,  833,  833,  996,  996,  996, 1422,  997, 1421, 1420,
1475       998,  840,  840,  840,  840,  840,  840,  834,  840,  840,
1476       840,  844,  844,  844, 1419,  845, 1418, 1417,  846,  842,
1477      1416, 1415,  842,  847,  847,  847,  842,  847,  847,  847,
1478      1414, 1413,  993,  847,  847,  847,  852,  852,  852, 1407,
1479       853,  849, 1406,  854, 1405,  849,  858,  858,  858, 1404,
1480      1402,  849,  858,  858,  858,  858,  858,  858,  862,  862,
1481       862, 1011, 1011, 1011,  860, 1012, 1400, 1398, 1013, 1397,
1482       860, 1395, 1004,  860, 1394,  863,  864,  864,  864, 1014,
1483
1484      1014, 1014, 1388, 1015, 1381, 1379, 1016,  867,  867,  867,
1485       867,  867,  867,  865,  872,  872,  872, 1005,  867,  867,
1486       867, 1378, 1020, 1020, 1020,  869, 1021, 1377,  869, 1022,
1487      1368,  873, 1010,  876,  876,  876,  869, 1025, 1025, 1025,
1488      1366, 1026, 1359, 1356, 1027,  879,  879,  879, 1355, 1354,
1489       877,  879,  879,  879,  879,  879,  879,  884,  884,  884,
1490      1353,  885, 1352,  881,  886,  887,  887,  887, 1348,  881,
1491      1331, 1330,  881,  887,  887,  887,  887,  887,  887,  891,
1492       891,  891, 1018,  889, 1329, 1032, 1032, 1032, 1328, 1033,
1493      1326,  889, 1034, 1325,  889, 1321,  892,  895,  895,  895,
1494
1495      1037, 1037, 1037, 1318, 1038, 1317, 1316, 1039,  897,  897,
1496       897,  897,  897,  897,  896, 1029,  897,  897,  897, 1042,
1497      1042, 1042,  905,  905,  905, 1313,  899, 1312, 1308,  899,
1498       905,  905,  905, 1031,  899, 1307, 1043,  905,  905,  905,
1499       907,  911,  911,  911,  911,  911,  911, 1304,  907,  911,
1500       911,  911,  918,  918,  918,  907,  915,  915,  915,  913,
1501       916, 1303,  913,  917,  918,  918,  918,  913, 1302, 1301,
1502       920,  918,  918,  918, 1300, 1040,  923,  923,  923, 1298,
1503       924, 1295,  920,  925,  927,  927,  927, 1294, 1293,  920,
1504       927,  927,  927, 1291, 1290, 1046,  927,  927,  927, 1289,
1505
1506      1049, 1288,  929, 1056, 1056, 1056, 1284, 1275,  929,  745,
1507       745,  745, 1269, 1267,  929,  957,  957,  957,  966,  966,
1508       966, 1057, 1058,  773,  773,  773, 1266,  747, 1050, 1082,
1509      1082, 1082,  958, 1083, 1265,  967, 1084, 1258,  963,  963,
1510       963,  775,  964, 1251, 1249,  965, 1089, 1089, 1089, 1246,
1511      1090, 1242, 1241, 1091, 1053,  968,  968,  968, 1240,  969,
1512      1221, 1220,  970,  787,  787,  787,  975,  975,  975, 1213,
1513      1087, 1210, 1063, 1096, 1096, 1096, 1209, 1097, 1208, 1195,
1514      1098,  789, 1193,  976, 1099, 1099, 1099,  795,  795,  795,
1515       980,  980,  980, 1111, 1111, 1111, 1113, 1113, 1113, 1192,
1516
1517      1190, 1100,  821,  821,  821,  797, 1189, 1188,  981, 1185,
1518      1112, 1093, 1184, 1114, 1118, 1118, 1118, 1069, 1069, 1069,
1519       823, 1969, 1969, 1969, 1179,  996,  996,  996, 1178,  997,
1520      1177, 1119,  998, 1176, 1101, 1121, 1121, 1121, 1969, 1175,
1521      1115, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1522      1174, 1173, 1122, 1969, 1969, 1969, 1172, 1171, 1969, 1169,
1523      1168, 1969, 1167, 1057, 1969, 1117, 1160,  840,  840,  840,
1524      1969, 1155,  847,  847,  847, 1132, 1132, 1132,  858,  858,
1525       858,  867,  867,  867, 1120,  842, 1042, 1042, 1042, 1124,
1526       849, 1153, 1133, 1011, 1011, 1011,  860, 1012, 1152,  869,
1527
1528      1013, 1148, 1146, 1043, 1125, 1014, 1014, 1014, 1123, 1015,
1529      1145, 1143, 1016, 1141, 1020, 1020, 1020, 1140, 1021, 1134,
1530      1126, 1022, 1139, 1025, 1025, 1025, 1136, 1026, 1131, 1127,
1531      1027, 1130, 1135, 1129, 1116, 1128,  879,  879,  879,  887,
1532       887,  887, 1110, 1109, 1137, 1032, 1032, 1032, 1108, 1033,
1533      1107, 1104, 1034, 1103,  881, 1102, 1095,  889, 1037, 1037,
1534      1037, 1092, 1038, 1088, 1086, 1039,  897,  897,  897, 1149,
1535      1149, 1149, 1085, 1150, 1081, 1080, 1151,  905,  905,  905,
1536      1156, 1156, 1156, 1079,  899,  911,  911,  911,  918,  918,
1537       918, 1078, 1077, 1144, 1142,  907, 1076, 1157, 1161, 1161,
1538
1539      1161, 1075, 1073,  913, 1072, 1068,  920,  927,  927,  927,
1540      1067, 1147, 1056, 1056, 1056, 1162, 1066,  745,  745,  745,
1541      1070, 1070, 1070, 1065, 1154,  929, 1074, 1074, 1074, 1064,
1542      1057, 1180, 1180, 1180, 1062,  747, 1061, 1060, 1159, 1182,
1543      1182, 1182, 1186, 1186, 1186, 1059, 1082, 1082, 1082, 1158,
1544      1083, 1052, 1051, 1084,  773,  773,  773, 1048, 1089, 1089,
1545      1089, 1165, 1090, 1047, 1045, 1091, 1163, 1170, 1044,  787,
1546       787,  787,  775, 1094, 1094, 1094, 1041, 1166, 1096, 1096,
1547      1096, 1036, 1097, 1183, 1035, 1098, 1187,  789, 1099, 1099,
1548      1099, 1030, 1181, 1204, 1204, 1204, 1028, 1205, 1024, 1023,
1549
1550      1206, 1019, 1017, 1191, 1009, 1100,  795,  795,  795, 1105,
1551      1105, 1105, 1106, 1106, 1106, 1211, 1211, 1211, 1211, 1211,
1552      1211, 1180, 1180, 1180,  797, 1008, 1007, 1194, 1111, 1111,
1553      1111, 1214, 1214, 1214, 1006, 1215, 1003, 1002, 1216, 1113,
1554      1113, 1113, 1217, 1217, 1217, 1112, 1218, 1001, 1000, 1219,
1555      1222, 1222, 1222,  999,  995, 1207, 1114, 1118, 1118, 1118,
1556      1224, 1224, 1224,  994, 1225,  992,  991, 1226, 1223, 1227,
1557      1227, 1227,  990,  989, 1119,  988, 1212,  987,  986, 1181,
1558       985,  984, 1212, 1121, 1121, 1121, 1228, 1229, 1229, 1229,
1559       983, 1230,  982,  979, 1231, 1232, 1232, 1232,  977,  974,
1560
1561      1122, 1969, 1969, 1969, 1969, 1969, 1969, 1236, 1236, 1236,
1562       971,  962, 1233,  840,  840,  840,  960,  955, 1969,  954,
1563       953, 1969,  952,  951, 1237,  847,  847,  847, 1132, 1132,
1564      1132,  842, 1243, 1243, 1243,  950, 1244,  947,  946, 1245,
1565      1247, 1247, 1247,  849,  945, 1133,  867,  867,  867, 1252,
1566      1252, 1252, 1254, 1254, 1254, 1235, 1234,  944, 1248,  943,
1567      1969, 1969, 1969,  942,  869,  941, 1253,  940,  938, 1255,
1568       879,  879,  879,  937, 1239,  936, 1238, 1969,  887,  887,
1569       887, 1260, 1260, 1260, 1262, 1262, 1262,  935,  881,  897,
1570       897,  897,  905,  905,  905, 1250,  889,  934, 1261,  933,
1571
1572       932, 1263, 1149, 1149, 1149,  732, 1150,  899,  926, 1151,
1573       907,  922,  910, 1256, 1156, 1156, 1156, 1270, 1270, 1270,
1574       909, 1271, 1259,  904, 1272,  911,  911,  911, 1161, 1161,
1575      1161, 1157,  903,  902, 1257,  918,  918,  918, 1279, 1279,
1576      1279, 1268,  901,  913,  883, 1162,  871,  857, 1276, 1276,
1577      1276, 1264, 1277,  920,  856, 1278, 1280, 1285, 1285, 1285,
1578       745,  745,  745, 1292, 1292, 1292, 1296, 1296, 1296, 1180,
1579      1180, 1180,  855,  851, 1286, 1297, 1297, 1297,  747,  839,
1580       838, 1273, 1182, 1182, 1182, 1299, 1299, 1299, 1274, 1186,
1581      1186, 1186, 1305, 1305, 1305,  787,  787,  787, 1310, 1310,
1582
1583      1310, 1204, 1204, 1204,  837, 1205,  836,  835, 1206,  820,
1584      1306,  819,  818,  789,  814, 1311,  813,  812, 1287,  795,
1585       795,  795, 1323, 1323, 1323, 1211, 1211, 1211, 1327, 1327,
1586      1327, 1214, 1214, 1214,  811, 1215,  810,  797, 1216, 1324,
1587      1217, 1217, 1217,  809, 1218,  808,  802, 1219, 1332, 1332,
1588      1332, 1309, 1222, 1222, 1222, 1224, 1224, 1224,  794, 1225,
1589       793,  792, 1226, 1322,  791, 1333, 1227, 1227, 1227,  786,
1590      1223, 1334, 1334, 1334,  783, 1335,  777,  772, 1336,  771,
1591      1229, 1229, 1229, 1228, 1230,  767,  766, 1231, 1232, 1232,
1592      1232, 1337, 1337, 1337,  765, 1338,  764,  762, 1339, 1340,
1593
1594      1340, 1340, 1969, 1969, 1969, 1233, 1236, 1236, 1236,  761,
1595      1343, 1343, 1343,  760, 1344,  759, 1341, 1345,  758, 1969,
1596       840,  840,  840, 1237,  847,  847,  847, 1349, 1349, 1349,
1597      1243, 1243, 1243,  757, 1244,  756,  755, 1245,  842, 1247,
1598      1247, 1247,  849,  754, 1350,  753, 1342, 1357, 1357, 1357,
1599      1252, 1252, 1252,  752, 1360, 1360, 1360, 1248, 1361,  751,
1600       744, 1362, 1254, 1254, 1254, 1358,  743, 1253,  742, 1346,
1601       741, 1351,  740, 1363, 1363, 1363,  739, 1364,  738, 1255,
1602      1365,  879,  879,  879,  735, 1347,  887,  887,  887, 1260,
1603      1260, 1260,  733, 1370, 1370, 1370,  732, 1371,  730,  881,
1604
1605      1372, 1262, 1262, 1262,  889,  728, 1261, 1373, 1373, 1373,
1606       724, 1374,  720,  718, 1375, 1384, 1384, 1384, 1263,  897,
1607       897,  897,  905,  905,  905, 1270, 1270, 1270,  717, 1271,
1608       716,  714, 1272, 1369,  911,  911,  911,  899,  713,  712,
1609       907,  918,  918,  918, 1367,  711, 1276, 1276, 1276,  710,
1610      1277,  708,  913, 1278, 1279, 1279, 1279,  707,  706,  920,
1611      1285, 1285, 1285, 1389, 1389, 1389,  705, 1390,  701,  700,
1612      1391,  698, 1280,  745,  745,  745,  697, 1286, 1393, 1393,
1613      1393, 1376,  696, 1382, 1380, 1396, 1396, 1396, 1292, 1292,
1614      1292,  747, 1383, 1399, 1399, 1399, 1296, 1296, 1296, 1297,
1615
1616      1297, 1297, 1299, 1299, 1299, 1401, 1401, 1401, 1403, 1403,
1617      1403, 1305, 1305, 1305, 1408, 1408, 1408,  695, 1310, 1310,
1618      1310, 1410, 1410, 1410,  694, 1411,  693,  691, 1412, 1306,
1619       690,  689, 1409,  688, 1392, 1311,  795,  795,  795, 1323,
1620      1323, 1323, 1424, 1424, 1424,  686, 1425,  685,  684, 1426,
1621      1427, 1427, 1427,  681,  797,  680, 1324, 1327, 1327, 1327,
1622      1332, 1332, 1332, 1435, 1435, 1435,  676, 1436,  674,  673,
1623      1437, 1334, 1334, 1334,  672, 1335,  671, 1333, 1336,  670,
1624      1337, 1337, 1337, 1423, 1338,  669,  664, 1339, 1340, 1340,
1625      1340, 1438, 1438, 1438,  663, 1439,  661,  660, 1440, 1969,
1626
1627      1969, 1969, 1343, 1343, 1343, 1341, 1344,  659,  656, 1345,
1628       840,  840,  840, 1443, 1443, 1443, 1969, 1349, 1349, 1349,
1629      1446, 1446, 1446,  653, 1447,  651,  650, 1448,  842,  649,
1630       648, 1444,  647,  645, 1350, 1357, 1357, 1357, 1360, 1360,
1631      1360,  642, 1361,  640,  639, 1362,  638, 1363, 1363, 1363,
1632       636, 1364,  634, 1358, 1365,  879,  879,  879, 1441,  887,
1633       887,  887, 1370, 1370, 1370,  633, 1371,  632,  631, 1372,
1634       628, 1442,  627,  881, 1373, 1373, 1373,  889, 1374,  626,
1635       623, 1375,  897,  897,  897, 1463, 1463, 1463,  905,  905,
1636       905,  911,  911,  911, 1470, 1470, 1470, 1384, 1384, 1384,
1637
1638       899,  620, 1464,  618, 1459,  616,  907,  614,  609,  913,
1639       608,  605, 1471, 1472, 1472, 1472, 1462, 1475, 1475, 1475,
1640       604,  603, 1461, 1389, 1389, 1389,  602, 1390,  600,  599,
1641      1391,  732,  598,  745,  745,  745, 1393, 1393, 1393, 1477,
1642      1477, 1477, 1396, 1396, 1396, 1479, 1479, 1479, 1469,  597,
1643      1467,  747, 1480, 1480, 1480, 1399, 1399, 1399, 1401, 1401,
1644      1401, 1403, 1403, 1403, 1484, 1484, 1484, 1408, 1408, 1408,
1645      1410, 1410, 1410,  596, 1411,  595,  590, 1412,  795,  795,
1646       795, 1485, 1427, 1427, 1427, 1409, 1424, 1424, 1424, 1476,
1647      1425,  587,  589, 1426,  584,  583,  797, 1435, 1435, 1435,
1648
1649       581, 1436,  463,  578, 1437, 1438, 1438, 1438,  576, 1439,
1650       574,  572, 1440, 1969, 1969, 1969, 1506, 1506, 1506, 1443,
1651      1443, 1443, 1508, 1508, 1508, 1446, 1446, 1446, 1969, 1447,
1652      1969,  569, 1448,  568, 1507,  567, 1497, 1444,  566, 1509,
1653      1519, 1519, 1519, 1521, 1521, 1521, 1523, 1523, 1523,  887,
1654       887,  887,  897,  897,  897, 1463, 1463, 1463, 1527, 1527,
1655      1527, 1522, 1528, 1524,  564, 1529, 1510,  889,  563,  562,
1656       899, 1505, 1464, 1530, 1530, 1530, 1533, 1533, 1533, 1535,
1657      1535, 1535,  911,  911,  911, 1470, 1470, 1470,  561,  560,
1658      1531, 1472, 1472, 1472, 1534, 1475, 1475, 1475,  558,  556,
1659
1660       913,  555,  553, 1471,  552,  549, 1525,  548,  546,  732,
1661      1526, 1540, 1540, 1540, 1477, 1477, 1477, 1479, 1479, 1479,
1662      1480, 1480, 1480, 1484, 1484, 1484, 1546, 1546, 1546, 1541,
1663      1547,  461, 1969, 1548,  795,  795,  795, 1565, 1565, 1565,
1664      1485, 1969, 1969, 1969,  541, 1536, 1506, 1506, 1506,  539,
1665      1537,  535,  797,  534, 1566, 1508, 1508, 1508, 1969, 1568,
1666      1568, 1568,  533, 1569, 1507,  531, 1570, 1576, 1576, 1576,
1667       529,  527, 1509, 1578, 1578, 1578, 1519, 1519, 1519,  523,
1668      1580, 1580, 1580,  520, 1577, 1521, 1521, 1521,  519,  515,
1669      1579, 1560, 1523, 1523, 1523,  513, 1567, 1581, 1582, 1582,
1670
1671      1582,  512, 1583, 1522,  511, 1584, 1585, 1585, 1585, 1524,
1672       897,  897,  897, 1527, 1527, 1527,  510, 1528,  509,  507,
1673      1529, 1530, 1530, 1530, 1586, 1588, 1588, 1588,  899, 1589,
1674      1969,  466, 1590, 1591, 1591, 1591,  502,  497, 1531, 1533,
1675      1533, 1533, 1535, 1535, 1535, 1593, 1593, 1593,  496,  494,
1676      1592, 1540, 1540, 1540, 1601, 1601, 1601, 1534, 1546, 1546,
1677      1546,  492, 1547, 1594,  491, 1548,  795,  795,  795, 1541,
1678       490, 1602,  488,  485, 1587, 1565, 1565, 1565, 1621, 1621,
1679      1621,  481, 1622,  480,  797, 1623, 1969, 1969, 1969, 1568,
1680      1568, 1568, 1566, 1569,  478,  477, 1570, 1576, 1576, 1576,
1681
1682      1628, 1628, 1628, 1969, 1629,  474,  473, 1630, 1578, 1578,
1683      1578, 1631, 1631, 1631, 1577, 1632,  472,  470, 1633, 1580,
1684      1580, 1580,  469, 1618, 1969, 1579, 1634, 1634, 1634,  465,
1685      1635,  454,  452, 1636,  450,  444, 1581,  443,  444, 1624,
1686      1582, 1582, 1582,  443, 1583,  442,  441, 1584, 1585, 1585,
1687      1585,  897,  897,  897, 1588, 1588, 1588, 1969, 1589, 1969,
1688      1969, 1590, 1591, 1591, 1591, 1969, 1586, 1969, 1969,  899,
1689      1644, 1644, 1644, 1969, 1645, 1969, 1969, 1646, 1969, 1592,
1690      1593, 1593, 1593, 1650, 1650, 1650, 1601, 1601, 1601, 1653,
1691      1653, 1653, 1969, 1654, 1969, 1969, 1655, 1969, 1594,  795,
1692
1693       795,  795, 1969, 1602, 1670, 1670, 1670, 1671, 1671, 1671,
1694      1969, 1621, 1621, 1621, 1643, 1622, 1969,  797, 1623, 1969,
1695      1969, 1969, 1969, 1969, 1672, 1676, 1676, 1676, 1628, 1628,
1696      1628, 1969, 1629, 1969, 1969, 1630, 1969, 1631, 1631, 1631,
1697      1969, 1632, 1677, 1969, 1633, 1634, 1634, 1634, 1669, 1635,
1698      1969, 1673, 1636,  897,  897,  897, 1644, 1644, 1644, 1969,
1699      1645, 1969, 1969, 1646, 1969, 1969, 1674, 1696, 1696, 1696,
1700      1969,  899, 1650, 1650, 1650, 1653, 1653, 1653, 1969, 1654,
1701      1969, 1969, 1655, 1969, 1697, 1057, 1704, 1704, 1704,  795,
1702       795,  795, 1670, 1670, 1670, 1671, 1671, 1671, 1969, 1969,
1703
1704      1969, 1969, 1693, 1705, 1715, 1715, 1715,  797, 1716, 1969,
1705      1969, 1717, 1672, 1969, 1969, 1969, 1676, 1676, 1676, 1721,
1706      1721, 1721, 1969, 1722, 1969, 1969, 1723, 1739, 1739, 1739,
1707      1742, 1742, 1742, 1677, 1969, 1969, 1714, 1696, 1696, 1696,
1708      1969, 1969, 1744, 1744, 1744, 1740, 1745, 1743, 1057, 1746,
1709      1747, 1747, 1747, 1969, 1697, 1057, 1748, 1748, 1748, 1969,
1710      1057, 1704, 1704, 1704, 1969, 1969, 1719, 1753, 1753, 1753,
1711      1969, 1754, 1969, 1969, 1755,  795,  795,  795, 1705, 1715,
1712      1715, 1715, 1969, 1716, 1969, 1969, 1717, 1764, 1764, 1764,
1713      1766, 1766, 1766,  797, 1721, 1721, 1721, 1969, 1722, 1969,
1714
1715      1969, 1723, 1969, 1969, 1765, 1969, 1969, 1767, 1768, 1768,
1716      1768, 1739, 1739, 1739, 1742, 1742, 1742, 1783, 1783, 1783,
1717      1969, 1784, 1969, 1969, 1785, 1769, 1744, 1744, 1744, 1740,
1718      1745, 1743, 1057, 1746, 1969, 1057, 1969, 1969, 1762, 1747,
1719      1747, 1747, 1969, 1969, 1057, 1055, 1055, 1055, 1055, 1055,
1720      1055, 1055, 1055, 1055, 1969, 1969, 1055, 1748, 1748, 1748,
1721      1969, 1055, 1055, 1055, 1057, 1055, 1753, 1753, 1753, 1969,
1722      1754, 1969, 1969, 1755, 1969, 1969, 1969, 1969, 1969, 1969,
1723      1969, 1798, 1798, 1798, 1969, 1764, 1764, 1764, 1055, 1055,
1724      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1799,
1725
1726      1969, 1055, 1765, 1766, 1766, 1766, 1055, 1055, 1055, 1057,
1727      1055, 1801, 1801, 1801, 1969, 1802, 1969, 1969, 1803, 1969,
1728      1767, 1804, 1804, 1804, 1969, 1805, 1969, 1969, 1806, 1768,
1729      1768, 1768, 1969, 1055, 1055, 1807, 1807, 1807, 1969, 1808,
1730      1969, 1969, 1809, 1783, 1783, 1783, 1769, 1784, 1969, 1969,
1731      1785, 1969, 1969, 1798, 1798, 1798, 1844, 1844, 1844, 1969,
1732      1969, 1057, 1055, 1055, 1055, 1055, 1055, 1824, 1055, 1055,
1733      1055, 1799, 1969, 1055, 1057, 1058, 1969, 1969, 1055, 1055,
1734      1055, 1057, 1055, 1801, 1801, 1801, 1969, 1802, 1969, 1969,
1735      1803, 1804, 1804, 1804, 1969, 1805, 1969, 1969, 1806, 1847,
1736
1737      1847, 1847, 1859, 1859, 1859, 1055, 1055, 1055, 1055, 1055,
1738      1055, 1055, 1055, 1055, 1055, 1824, 1848, 1969, 1055, 1969,
1739       732, 1969, 1969, 1055, 1055, 1055, 1057, 1055, 1807, 1807,
1740      1807, 1969, 1808, 1969, 1969, 1809, 1844, 1844, 1844, 1847,
1741      1847, 1847, 1863, 1863, 1863, 1969, 1864, 1969, 1969, 1865,
1742      1055, 1055, 1969, 1969, 1057, 1969, 1848, 1859, 1859, 1859,
1743      1863, 1863, 1863, 1969, 1864, 1969, 1969, 1865, 1933, 1933,
1744      1933, 1969, 1933, 1933, 1933,  732, 1938, 1969, 1969, 1939,
1745      1967, 1967, 1967, 1969, 1969, 1165,  732, 1967, 1967, 1967,
1746       732, 1969, 1876, 1969, 1969, 1969, 1969, 1969, 1968, 1969,
1747
1748      1969, 1969, 1969, 1969, 1969, 1968,  182,  182,  182,  182,
1749       182,  182,  182,  182,  182,  183,  183,  183,  183,  183,
1750       183,  183,  183,  183,  188,  188,  188,  188,  188,  188,
1751       188,  188,  188,  191,  191,  191,  191,  191,  191,  191,
1752       191,  191,  194,  194,  194,  194,  194,  194,  194,  194,
1753       194,  197,  197,  197,  197,  197,  197,  197,  197,  197,
1754       204,  204,  204,  204,  204,  204,  204,  204,  204,  212,
1755       212,  212,  212,  212,  212,  212,  212,  212,  216,  216,
1756       216,  216,  216,  216,  216,  216,  216,  227,  227,  227,
1757       227,  227,  227,  227,  227,  227,  238,  238,  238,  238,
1758
1759       238,  238,  238,  238,  238,  245,  245,  245,  245,  245,
1760       245,  245,  245,  245,  253,  253,  253,  253,  253,  253,
1761       253,  253,  253,  259,  259,  259,  259,  259,  259,  259,
1762       259,  259,  265,  265,  265,  265,  265,  265,  265,  265,
1763       265,  270,  270,  270,  270,  270,  270,  270,  270,  270,
1764       287,  287,  287,  287,  287,  287,  287,  287,  287,  295,
1765       295,  295,  295,  295,  295,  295,  295,  295,  302,  302,
1766       302,  302,  302,  302,  302,  302,  302,  311,  311,  311,
1767       311,  311,  311,  311,  311,  311,  317,  317,  317,  317,
1768       317,  317,  317,  317,  317,  321,  321,  321,  321,  321,
1769
1770       321,  321,  321,  321,  327,  327,  327,  327,  327,  327,
1771       327,  327,  327,  334,  334,  334,  334,  334,  334,  334,
1772       334,  334,  341,  341,  341,  341,  341,  341,  341,  341,
1773       341,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1774       354,  354,  354,  354,  354,  354,  354,  354,  354,  360,
1775       360,  360,  360,  360,  360,  360,  360,  360,  367,  367,
1776       367,  367,  367,  367,  367,  367,  367,  372,  372,  372,
1777       372,  372,  372,  372,  372,  372,  378,  378,  378,  378,
1778       378,  378,  378,  378,  378,  384,  384,  384,  384,  384,
1779       384,  384,  384,  384,  391,  391,  391,  391,  391,  391,
1780
1781       391,  391,  391,  398,  398,  398,  398,  398,  398,  398,
1782       398,  398,  406,  406,  406,  406,  406,  406,  406,  406,
1783       406,  410,  410,  410,  410,  410,  410,  410,  410,  410,
1784       416,  416,  416,  416,  416,  416,  416,  416,  416,  420,
1785       420,  420,  420,  420,  420,  420,  420,  420,  428,  428,
1786       428,  428,  428,  428,  428,  428,  428,  433,  433,  433,
1787       433,  433,  433,  433,  433,  433,  453,  453,  453, 1969,
1788      1969, 1969,  453,  471,  471,  471, 1969, 1969, 1969,  471,
1789       479,  479,  479, 1969, 1969, 1969,  479,  489,  489,  489,
1790      1969, 1969, 1969,  489,  495,  495,  495, 1969, 1969, 1969,
1791
1792       495,  508,  508,  508, 1969, 1969, 1969,  508,  516,  516,
1793       516, 1969, 1969, 1969,  516,  528,  528,  528, 1969, 1969,
1794      1969,  528,  532,  532,  532, 1969, 1969, 1969,  532,  540,
1795       540,  540, 1969, 1969, 1969,  540,  547,  547,  547, 1969,
1796      1969, 1969,  547,  554,  554,  554, 1969, 1969, 1969,  554,
1797       559,  559,  559, 1969, 1969, 1969,  559,  565,  565,  565,
1798      1969, 1969, 1969,  565,  573,  573,  573, 1969, 1969, 1969,
1799       573,  577,  577,  577, 1969, 1969, 1969,  577,  582,  582,
1800       582, 1969, 1969, 1969,  582,  586,  586,  586,  586,  586,
1801       586,  586, 1969,  586,  601, 1969, 1969, 1969,  601,  625,
1802
1803      1969, 1969, 1969,  625,  479,  479,  479, 1969, 1969, 1969,
1804       479,  635, 1969, 1969, 1969,  635,  489,  489,  489, 1969,
1805      1969, 1969,  489,  641, 1969, 1969, 1969,  641,  495,  495,
1806       495, 1969, 1969, 1969,  495,  646, 1969, 1969, 1969,  646,
1807       662, 1969, 1969, 1969,  662,  675, 1969, 1969, 1969,  675,
1808       528,  528,  528, 1969, 1969, 1969,  528,  679, 1969, 1969,
1809      1969,  679,  532,  532,  532, 1969, 1969, 1969,  532,  687,
1810      1969, 1969, 1969,  687,  540,  540,  540, 1969, 1969, 1969,
1811       540,  692, 1969, 1969, 1969,  692,  547,  547,  547, 1969,
1812      1969, 1969,  547,  699, 1969, 1969, 1969,  699,  554,  554,
1813
1814       554, 1969, 1969, 1969,  554,  704, 1969, 1969, 1969,  704,
1815       559,  559,  559, 1969, 1969, 1969,  559,  709, 1969, 1969,
1816      1969,  709,  565,  565,  565, 1969, 1969, 1969,  565,  715,
1817      1969, 1969, 1969,  715,  573,  573,  573, 1969, 1969, 1969,
1818       573,  719, 1969, 1969, 1969,  719,  577,  577,  577, 1969,
1819      1969, 1969,  577,  723, 1969, 1969, 1969,  723,  582,  582,
1820       582, 1969, 1969, 1969,  582,  729, 1969, 1969, 1969,  729,
1821       731,  731,  731,  731,  731,  731,  731,  731,  731,  737,
1822      1969, 1969, 1969, 1969,  737,  453,  453,  453, 1969, 1969,
1823      1969,  453,  746,  746,  746,  746, 1969, 1969,  746,  746,
1824
1825       471,  471,  471, 1969, 1969, 1969,  471,  774,  774,  774,
1826       774, 1969, 1969,  774,  774,  479,  479,  479, 1969, 1969,
1827      1969,  479,  788,  788,  788,  788, 1969, 1969,  788,  788,
1828       489,  489,  489, 1969, 1969, 1969,  489,  796,  796,  796,
1829       796, 1969, 1969,  796,  796,  495,  495,  495, 1969, 1969,
1830      1969,  495,  804,  804,  804,  804, 1969, 1969,  804,  804,
1831       508,  508,  508, 1969, 1969, 1969,  508,  822,  822,  822,
1832       822, 1969, 1969,  822,  822,  516,  516,  516, 1969, 1969,
1833      1969,  516,  841,  841,  841,  841, 1969, 1969,  841,  841,
1834       848,  848,  848,  848, 1969, 1969,  848,  848,  532,  532,
1835
1836       532, 1969, 1969, 1969,  532,  859,  859,  859,  859, 1969,
1837      1969,  859,  859,  540,  540,  540,  540, 1969,  540, 1969,
1838       540,  868,  868,  868,  868, 1969, 1969,  868,  868,  547,
1839       547,  547,  547, 1969,  547, 1969,  547,  880,  880,  880,
1840       880, 1969, 1969,  880,  880,  554,  554,  554, 1969, 1969,
1841      1969,  554,  888,  888,  888,  888, 1969, 1969,  888,  888,
1842       559,  559,  559,  559, 1969,  559, 1969,  559,  898,  898,
1843       898,  898, 1969, 1969,  898,  898,  565,  565,  565, 1969,
1844      1969, 1969,  565,  906,  906,  906,  906, 1969, 1969,  906,
1845       906,  573,  573,  573, 1969, 1969, 1969,  573,  912,  912,
1846
1847       912,  912, 1969, 1969,  912,  912,  919,  919,  919,  919,
1848      1969, 1969,  919,  919,  582,  582,  582, 1969, 1969, 1969,
1849       582,  928,  928,  928,  928, 1969, 1969,  928,  928,  731,
1850       731,  731,  731,  731,  731,  731,  731,  731,  737, 1969,
1851       737, 1969, 1969,  737,  453,  453,  453, 1969, 1969, 1969,
1852       453,  746,  746,  746,  746, 1969, 1969,  746,  746,  471,
1853       471,  471,  471, 1969,  471, 1969,  471,  774,  774,  774,
1854       774, 1969, 1969,  774,  774,  479,  479,  479, 1969, 1969,
1855      1969,  479,  788,  788,  788,  788, 1969, 1969,  788,  788,
1856       489,  489,  489, 1969, 1969, 1969,  489,  796,  796,  796,
1857
1858       796, 1969, 1969,  796,  796,  495,  495,  495, 1969, 1969,
1859      1969,  495,  804,  804,  804,  804, 1969, 1969,  804,  804,
1860       508,  508,  508, 1969, 1969, 1969,  508,  822,  822,  822,
1861       822, 1969, 1969,  822,  822,  516,  516,  516, 1969, 1969,
1862      1969,  516,  841,  841,  841,  841, 1969, 1969,  841,  841,
1863       848,  848,  848,  848, 1969, 1969,  848,  848,  532,  532,
1864       532, 1969, 1969, 1969,  532,  859,  859,  859,  859, 1969,
1865      1969,  859,  859,  540,  540,  540, 1969, 1969, 1969,  540,
1866       868,  868,  868,  868, 1969, 1969,  868,  868,  547,  547,
1867       547, 1969, 1969, 1969,  547,  880,  880,  880,  880, 1969,
1868
1869      1969,  880,  880,  554,  554,  554, 1969, 1969, 1969,  554,
1870       888,  888,  888,  888, 1969, 1969,  888,  888,  559,  559,
1871       559, 1969, 1969, 1969,  559,  898,  898,  898,  898, 1969,
1872      1969,  898,  898,  565,  565,  565, 1969, 1969, 1969,  565,
1873       906,  906,  906,  906, 1969, 1969,  906,  906,  573,  573,
1874       573, 1969, 1969, 1969,  573,  912,  912,  912,  912, 1969,
1875      1969,  912,  912,  919,  919,  919,  919, 1969, 1969,  919,
1876       919,  582,  582,  582, 1969, 1969, 1969,  582,  928,  928,
1877       928,  928, 1969, 1969,  928,  928,  731,  731,  731,  731,
1878       731,  731,  731,  731,  731, 1055, 1055, 1055, 1055, 1055,
1879
1880      1055, 1055, 1055, 1055,  453,  453,  453, 1969, 1969, 1969,
1881       453,  746,  746,  746,  746, 1969, 1969,  746,  746,  471,
1882       471,  471, 1969, 1969, 1969,  471,  774,  774,  774,  774,
1883      1969, 1969,  774,  774,  479,  479,  479, 1969, 1969, 1969,
1884       479,  788,  788,  788,  788, 1969, 1969,  788,  788,  489,
1885       489,  489, 1969, 1969, 1969,  489,  796,  796,  796,  796,
1886      1969, 1969,  796,  796,  495,  495,  495, 1969, 1969, 1969,
1887       495,  508,  508,  508, 1969, 1969, 1969,  508,  822,  822,
1888       822,  822, 1969, 1969,  822,  822,  516,  516,  516,  516,
1889      1969,  516, 1969,  516,  841,  841,  841,  841, 1969, 1969,
1890
1891       841,  841,  848,  848,  848,  848, 1969, 1969,  848,  848,
1892       532,  532,  532, 1969, 1969, 1969,  532,  859,  859,  859,
1893       859, 1969, 1969,  859,  859,  540,  540,  540, 1969, 1969,
1894      1969,  540,  868,  868,  868,  868, 1969, 1969,  868,  868,
1895       547,  547,  547, 1969, 1969, 1969,  547,  880,  880,  880,
1896       880, 1969, 1969,  880,  880,  554,  554,  554, 1969, 1969,
1897      1969,  554,  888,  888,  888,  888, 1969, 1969,  888,  888,
1898       559,  559,  559, 1969, 1969, 1969,  559,  898,  898,  898,
1899       898, 1969, 1969,  898,  898,  565,  565,  565, 1969, 1969,
1900      1969,  565,  906,  906,  906,  906, 1969, 1969,  906,  906,
1901
1902       573,  573,  573,  573, 1969,  573, 1969,  573,  912,  912,
1903       912,  912, 1969, 1969,  912,  912,  919,  919,  919,  919,
1904      1969, 1969,  919,  919,  582,  582,  582,  582, 1969,  582,
1905      1969,  582,  928,  928,  928,  928, 1969, 1969,  928,  928,
1906       731,  731,  731,  731,  731,  731,  731,  731,  731, 1055,
1907      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,  453,  453,
1908       453, 1969, 1969, 1969,  453,  746,  746,  746,  746, 1969,
1909      1969,  746,  746,  471,  471,  471, 1969, 1969, 1969,  471,
1910       774,  774,  774,  774, 1969, 1969,  774,  774,  479,  479,
1911       479, 1969, 1969, 1969,  479,  788,  788,  788,  788, 1969,
1912
1913      1969,  788,  788,  489,  489,  489, 1969, 1969, 1969,  489,
1914       796,  796,  796,  796, 1969, 1969,  796,  796,  495,  495,
1915       495, 1969, 1969, 1969,  495,  508,  508,  508, 1969, 1969,
1916      1969,  508,  822,  822,  822,  822, 1969, 1969,  822,  822,
1917       516,  516,  516,  516, 1969,  516, 1969,  516,  841,  841,
1918       841,  841, 1969, 1969,  841,  841,  848,  848,  848,  848,
1919      1969, 1969,  848,  848,  532,  532,  532, 1969, 1969, 1969,
1920       532,  859,  859,  859,  859, 1969, 1969,  859,  859,  540,
1921       540,  540, 1969, 1969, 1969,  540,  868,  868,  868,  868,
1922      1969, 1969,  868,  868,  547,  547,  547,  547, 1969,  547,
1923
1924      1969,  547,  880,  880,  880,  880, 1969, 1969,  880,  880,
1925       554,  554,  554, 1969, 1969, 1969,  554,  888,  888,  888,
1926       888, 1969, 1969,  888,  888,  559,  559,  559,  559, 1969,
1927       559, 1969,  559,  898,  898,  898,  898, 1969, 1969,  898,
1928       898,  565,  565,  565, 1969, 1969, 1969,  565,  906,  906,
1929       906,  906, 1969, 1969,  906,  906,  912,  912,  912,  912,
1930      1969, 1969,  912,  912,  919,  919,  919,  919, 1969, 1969,
1931       919,  919,  928,  928,  928,  928, 1969, 1969,  928,  928,
1932       731,  731,  731,  731,  731,  731,  731,  731,  731, 1055,
1933      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,  453,  453,
1934
1935       453,  453, 1969,  453, 1969,  453,  746,  746,  746,  746,
1936      1969, 1969,  746,  746,  471,  471,  471, 1969, 1969, 1969,
1937       471,  774,  774,  774,  774, 1969, 1969,  774,  774,  479,
1938       479,  479, 1969, 1969, 1969,  479,  788,  788,  788,  788,
1939      1969, 1969,  788,  788,  489,  489,  489,  489, 1969,  489,
1940      1969,  489,  796,  796,  796,  796, 1969, 1969,  796,  796,
1941       495,  495,  495,  495, 1969,  495, 1969,  495,  508,  508,
1942       508, 1969, 1969, 1969,  508,  516,  516,  516,  516, 1969,
1943       516, 1969,  516,  841,  841,  841,  841, 1969, 1969,  841,
1944       841,  848,  848,  848,  848, 1969, 1969,  848,  848,  532,
1945
1946       532,  532, 1969, 1969, 1969,  532,  540,  540,  540, 1969,
1947      1969, 1969,  540,  868,  868,  868,  868, 1969, 1969,  868,
1948       868,  547,  547,  547, 1969, 1969, 1969,  547,  880,  880,
1949       880,  880, 1969, 1969,  880,  880,  554,  554,  554, 1969,
1950      1969, 1969,  554,  888,  888,  888,  888, 1969, 1969,  888,
1951       888, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786,
1952      1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1819,
1953      1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1822, 1822,
1954      1822, 1822, 1822, 1822, 1822, 1822, 1822, 1841, 1841, 1841,
1955      1841, 1841, 1841, 1841, 1841, 1841, 1843, 1843, 1843, 1843,
1956
1957      1843, 1843, 1843, 1843, 1843,  181, 1969, 1969, 1969, 1969,
1958      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1959      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1960      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1961      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1962      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1963      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
1964      1969, 1969, 1969, 1969, 1969, 1969
1965     } ;
1966
1967 static yyconst flex_int16_t yy_chk[7177] =
1968     {   0,
1969         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1970         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1971         4,   10,    0,    5,  247,    9,    6,  437,   10,    7,
1972         8,    8,    8,  186,   11,   13,   13,   12,   14,   14,
1973        13,   13,  437,   14,   14,  187,    8,   17,   17,  186,
1974        13,   15,   15,   14,   15,  190,   15,   16,   16,  462,
1975        16,  187,   16,   18,   18,  462,   15,   19,   19,   19,
1976       281,  190,   16,  247,   20,   20,   20,   23,   23,   23,
1977        24,   24,   24,   19,   25,   25,   25,  243,  208,   17,
1978        20,  243,  248,   23, 1386,  243,   24,  184,  184,  184,
1979
1980        25,  185,  185,  185,  208,   18,   21,   21,   21,   21,
1981        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1982        21,  281,   21,   21,   21,   21,   21,   26,   26,   26,
1983        27,   27,   27,  275, 1386,   28,   28,   28,   29,   29,
1984        29,  248,  275,   26,  208,  283,   27,  283,  213,   21,
1985        21,   28,  249, 1495,   29,   30,   30,   30,  189,  189,
1986       189,  210,  210,  210,  213,  217,  217,  217,  225,  225,
1987       225,   30,   21,   22,   22,   22,   22,   22,   22,   22,
1988        22,   22,   22,   22,   22,   22,   22,   22,  305,   22,
1989        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
1990
1991       333,  249,   33,   33,   33,   34,   34,   34,  305,  273,
1992        31,  333,  308,   32,  297,  308,   22,   22,   33,  273,
1993       228,   34,   35,   35,   35,   36,   36,   36,   37,   37,
1994        37,   38,   38,   38, 1496,  221,  228,  277,   35,   22,
1995       424,   36,  424,  475,   37,  273,  273,   38,   39,   39,
1996        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
1997        39,   39,   39,  297,   39,   39,   39,   39,   39,   45,
1998        45,   45,  221,  277,   46,   46,   46,  475,   47,   47,
1999        47, 1498,   41,   41,  221,   45,  278,   41,   42,   42,
2000        46,   39,   39,   42,   47,  298,  278,   41,  446,   39,
2001
2002       345,  446,   39,   42,  236,  236,  236,  345,   39,   40,
2003        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
2004        40,   40,   40,   40,   41,   40,   40,   40,   40,   40,
2005        42,   48,   48,   48,   49,   49,   49, 1166,   50,   50,
2006        50,   51,   51,   51,  298,  239,  254,   48,  233,  261,
2007        49,  266,   40,   40,   50,  233,  261,   51, 1165,  336,
2008        40,  239,  254,   40,  233,  261,  200,  266, 1166,   40,
2009        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2010        43,   43,   43,   43,   43,  279,   43,   43,   43,   43,
2011        43,   52,   52,   52,   55,   55,   55, 1165, 1499,   56,
2012
2013        56,   56,   59,   59,   59,  310,  200,   52,  336,  288,
2014        55,  279,  200,   43,   43,   56,  200,  310,   59,  463,
2015       337,  200,   43, 1500,   43,  288,  279,   43,  246,  246,
2016       246, 1502,  463,   43,   44,   44,   44,   44,   44,   44,
2017        44,   44,   44,   44,   44,   44,   44,   44,   44,  220,
2018        44,   44,   44,   44,   44,   60,   60,   60,   61,   61,
2019        61,  402, 1510,   62,   62,   62,   63,   63,   63,  337,
2020      1511,   60,  664,  303,   61,  402,  220,   44,   44,   62,
2021       313,  664,   63,  251,  251,  251,   44,  313,   44,  303,
2022       400,   44,  220,  260,  260,  260,  313,   44,   53,   53,
2023
2024        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
2025        53,   53,   53,  363,   53,   53,   53,   53,   53,   64,
2026        64,   64,   65,   65,   65,  400,  359,   66,   66,   66,
2027        67,   67,   67,  359,  459,   64,  318,  459,   65,  400,
2028      1198,   53,   53,   66,  328,  342,   67, 1198,   53,  263,
2029       263,  263,  318,   53,  271,  271,  271,  387,  363,  280,
2030       328,  342,   53,   54,   54,   54,   54,   54,   54,   54,
2031        54,   54,   54,   54,   54,   54,   54,   54,  503,   54,
2032        54,   54,   54,   54,   68,   68,   68,   69,   69,   69,
2033      1512,  503,   70,   70,   70,   71,   71,   71, 1513,  469,
2034
2035        68,  280,  387,   69,  280,  469,   54,   54,   70,  465,
2036       280,   71,  465,   54,  285,  285,  285, 1515,   54,  296,
2037       296,  296,  300,  300,  300,  348, 1282,   54,   57,   57,
2038        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2039        57,   57,   57,  505,   57,   57,   57,   57,   57,   72,
2040        72,   72,   73,   73,   73, 1282,  505,   74,   74,   74,
2041        75,   75,   75,  467,  355,   72,  467,  588,   73,  487,
2042       348,   57,   57,   74,  348,  487,   75,  312,  312,  312,
2043       355,  588,   57,  315,  315,  315,  322,  322,  322, 1283,
2044        57,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2045
2046        58,   58,   58,   58,   58,   58,  506,   58,   58,   58,
2047        58,   58,   76,   76,   76,   77,   77,   77, 1164,  506,
2048        78,   78,   78,   79,   79,   79,  734,  368,   76, 1054,
2049       734,   77, 1283, 1164,   58,   58,   78,  931,  379,   79,
2050        80,   80,   80,  368,  392,   58,   81,   81,   81,   82,
2051        82,   82, 1054,   58,  379,  931,   80,   83,   83,   83,
2052       392, 1542,   81, 1543,  407,   82,   84,   84,   84,   85,
2053        85,   85, 1544,   83,   86,   86,   86,   87,   87,   87,
2054       407, 1547,   84, 1549,  323,   85,   88,   88,   88,  758,
2055        86,  323, 1547,   87,  325,  325,  325,  335,  335,  335,
2056
2057       323,  758,   88,   89,   89,   89,   89,   89,   89,   89,
2058        89,   89,   89,   89,   89,   89,   89,   89,  580,   89,
2059        89,   89,   89,   89,   91,   91,   91,   92,   92,   92,
2060       766,  580,   93,   93,   93,   94,   94,   94,  791,  417,
2061        91, 1387,  766,   92, 1550,  429,   89,   89,   93,   89,
2062       791,   94,   95,   95,   95,  417, 1281,   89,  339,  339,
2063       339,  429, 1281,   89, 1551, 1552,   89, 1473,   95,   89,
2064        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2065        90,   90,   90,   90,   90, 1387,   90,   90,   90,   90,
2066        90,   96,   96,   96,   97,   97,   97, 1473, 1202,   98,
2067
2068        98,   98,  101,  101,  101, 1202, 1329,   96, 1553, 1554,
2069        97, 1330, 1329,   90,   90,   98,   90, 1330,  101,  102,
2070       102,  102, 1353, 1354,   90,  347,  347,  347, 1353, 1354,
2071        90, 1555, 1539,   90, 1556,  102,   90,   99,   99,   99,
2072        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
2073        99,   99, 1537,   99,   99,   99,   99,   99,  105,  105,
2074       105,  106,  106,  106, 1548, 1557,  109,  109,  109,  110,
2075       110,  110, 1539, 1558,  105, 1548,  374,  106, 1559, 1561,
2076        99,   99,  109,  374,   99,  110,  352,  352,  352, 1537,
2077      1562,   99,  374,   99,  361,  361,  361,   99, 1571,   99,
2078
2079        99,  100,  100,  100,  100,  100,  100,  100,  100,  100,
2080       100,  100,  100,  100,  100,  100, 1572,  100,  100,  100,
2081       100,  100,  111,  111,  111,  112,  112,  112, 1573, 1583,
2082       113,  113,  113,  114,  114,  114, 1599, 1583,  111, 1600,
2083       412,  112, 1603, 1583,  100,  100,  113,  412,  100,  114,
2084       365,  365,  365, 1595, 1604,  100,  412,  100,  373,  373,
2085       373,  100, 1605,  100,  100,  103,  103,  103,  103,  103,
2086       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2087      1595,  103,  103,  103,  103,  103,  115,  115,  115,  116,
2088       116,  116, 1606, 1584,  119,  119,  119,  120,  120,  120,
2089
2090      1474, 1584,  115, 1607, 1608,  116, 1609, 1584,  103,  103,
2091       119, 1610, 1538,  120,  376,  376,  376, 1596, 1611,  103,
2092       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2093       104,  104,  104,  104,  104, 1474,  104,  104,  104,  104,
2094       104,  121,  121,  121,  122,  122,  122, 1538, 1613,  123,
2095       123,  123,  124,  124,  124, 1614, 1596,  121, 1615, 1616,
2096       122, 1625, 1627,  104,  104,  123, 1637, 1638,  124,  385,
2097       385,  385, 1597, 1639,  104,  107,  107,  107,  107,  107,
2098       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2099      1640,  107,  107,  107,  107,  107,  125,  125,  125,  126,
2100
2101       126,  126, 1641, 1632,  129,  129,  129,  130,  130,  130,
2102      1642, 1597,  125, 1632,  435,  126, 1651, 1633,  107,  107,
2103       129,  435,  107,  130,  389,  389,  389, 1633, 1652,  107,
2104       435,  107,  399,  399,  399,  404,  404,  404,  107,  108,
2105       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
2106       108,  108,  108,  108, 1656,  108,  108,  108,  108,  108,
2107       131,  131,  131,  132,  132,  132, 1657, 1635,  133,  133,
2108       133,  134,  134,  134, 1658, 1636,  131, 1635, 1659,  132,
2109      1661, 1662,  108,  108,  133, 1636,  108,  134,  411,  411,
2110       411, 1663, 1664,  108, 1647,  108,  414,  414,  414,  421,
2111
2112       421,  421,  108,  117,  117,  117,  117,  117,  117,  117,
2113       117,  117,  117,  117,  117,  117,  117,  117, 1665,  117,
2114       117,  117,  117,  117,  135,  135,  135,  136,  136,  136,
2115      1666, 1667,  139,  139,  139,  140,  140,  140, 1668, 1647,
2116       135, 1673, 1675,  136, 1678, 1679,  117,  117,  139, 1648,
2117      1680,  140,  117,  426,  426,  426,  434,  434,  434,  436,
2118       436,  436,  445,  445,  445, 1681,  117,  118,  118,  118,
2119       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
2120       118,  118, 1648,  118,  118,  118,  118,  118,  143,  143,
2121       143,  144,  144,  144, 1682, 1683,  145,  145,  145,  146,
2122
2123       146,  146, 1684, 1685,  143, 1686, 1687,  144, 1688, 1689,
2124       118,  118,  145, 1690, 1691,  146,  118, 1692,  445,  591,
2125       591,  591, 1700,  591,  603,  603,  603,  616,  616,  616,
2126       118,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2127       127,  127,  127,  127,  127,  127, 1694,  127,  127,  127,
2128       127,  127,  147,  147,  147,  148,  148,  148, 1701, 1702,
2129       149,  149,  149,  150,  150,  150, 1703, 1706,  147, 1707,
2130      1709,  148, 1710, 1711,  127,  127,  149, 1713, 1694,  150,
2131       127, 1097, 1718,  127, 1725,  603, 1097, 1726,  616, 1097,
2132       648,  648,  648, 1097,  127,  128,  128,  128,  128,  128,
2133
2134       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
2135      1727,  128,  128,  128,  128,  128,  153,  153,  153,  154,
2136       154,  154, 1728, 1729,  155,  155,  155,  156,  156,  156,
2137      1730, 1731,  153, 1732, 1733,  154, 1734, 1736,  128,  128,
2138       155, 1737, 1749,  156,  128, 1750, 1741,  128,  622,  622,
2139       622,  648,  622, 1751, 1752,  622, 1756, 1757,  128,  137,
2140       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2141       137,  137,  137,  137, 1758,  137,  137,  137,  137,  137,
2142       157,  157,  157,  158,  158,  158, 1741, 1759,  159,  159,
2143       159,  160,  160,  160, 1760, 1761,  157, 1763, 1771,  158,
2144
2145      1773, 1775,  137,  137,  159, 1777, 1778,  160,  137,  749,
2146       749,  749, 1779,  137,  138,  138,  138,  138,  138,  138,
2147       138,  138,  138,  138,  138,  138,  138,  138,  138, 1780,
2148       138,  138,  138,  138,  138,  163,  163,  163,  164,  164,
2149       164, 1781, 1784,  167,  167,  167,  168,  168,  168, 1785,
2150      1788,  163, 1790, 1782,  164, 1793, 1784,  138,  138,  167,
2151      1785, 1794,  168,  138,  653,  653,  653, 1796,  138,  141,
2152       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2153       141,  141,  141,  141, 1797,  141,  141,  141,  141,  141,
2154       169,  169,  169,  170,  170,  170, 1782, 1800,  171,  171,
2155
2156       171,  172,  172,  172, 1821, 1802,  169, 1820, 1820,  170,
2157      1803, 1823,  141,  141,  171, 1802, 1822,  172,  141, 1825,
2158      1803,  141,  630,  630,  630,  653,  630, 1822, 1826,  630,
2159      1818, 1832,  141,  142,  142,  142,  142,  142,  142,  142,
2160       142,  142,  142,  142,  142,  142,  142,  142, 1833,  142,
2161       142,  142,  142,  142,  173,  173,  173,  174,  174,  174,
2162      1819, 1808,  177,  177,  177,  178,  178,  178, 1818, 1809,
2163       173, 1808, 1834,  174, 1819, 1835,  142,  142,  177, 1809,
2164      1837,  178,  142,  272, 1839,  142,  422,  644,  644,  644,
2165      1841,  644, 1842,  272,  644, 1836,  142,  151,  151,  151,
2166
2167       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
2168       151,  151, 1836,  151,  151,  151,  151,  151, 1838,  272,
2169      1843,  422,  473,  473,  473,  272, 1845, 1846,  272,  481,
2170       481,  481, 1849, 1850,  272, 1838, 1851,  422, 1852,  473,
2171       151,  151,  496,  496,  496, 1853,  481, 1854,  151, 1855,
2172       151, 1856,  151,  763,  763,  763,  945,  945,  945,  496,
2173       151,  152,  152,  152,  152,  152,  152,  152,  152,  152,
2174       152,  152,  152,  152,  152,  152, 1857,  152,  152,  152,
2175       152,  152,  510,  510,  510,  518,  518,  518, 1858,  519,
2176       519,  519,  529,  529,  529, 1098,  534,  534,  534,  510,
2177
2178      1098, 1860,  518, 1098,  152,  152,  519, 1098, 1866,  529,
2179      1867, 1868,  152,  534,  152, 1869,  152, 1870,  946,  946,
2180       946,  949,  949,  949,  152,  161,  161,  161,  161,  161,
2181       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
2182      1871,  161,  161,  161,  161,  161,  556,  556,  556,  578,
2183       578,  578, 1872,  583,  583,  583,  601,  601,  601,  602,
2184       602,  602,  946,  556, 1873, 1874,  578, 1875,  161,  161,
2185       583,  621,  621,  621,  601, 1878, 1879,  602,  658,  658,
2186       658, 1880,  658, 1881, 1876,  658, 1882, 1883,  621, 1884,
2187      1885,  161,  162,  162,  162,  162,  162,  162,  162,  162,
2188
2189       162,  162,  162,  162,  162,  162,  162, 1876,  162,  162,
2190       162,  162,  162, 1886,  602,  625,  625,  625, 1887,  626,
2191       626,  626,  629,  629,  629,  631,  631,  631,  633,  633,
2192       633, 1889, 1888,  625, 1890,  162,  162,  626, 1891,  629,
2193      1892, 1893,  631, 1894, 1895,  633,  666,  666,  666, 1888,
2194       666, 1896, 1897,  666,  973,  973,  973, 1898,  162,  165,
2195       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
2196       165,  165,  165,  165, 1900,  165,  165,  165,  165,  165,
2197       626,  635,  635,  635, 1901, 1902,  641,  641,  641, 1903,
2198       636,  636,  636,  642,  642,  642,  984,  984,  984,  635,
2199
2200      1904, 1905,  165,  165,  641,  668,  668,  668,  636,  668,
2201      1906,  642,  668,  165,  166,  166,  166,  166,  166,  166,
2202       166,  166,  166,  166,  166,  166,  166,  166,  166, 1899,
2203       166,  166,  166,  166,  166,  636,  643,  643,  643, 1907,
2204      1908,  646,  646,  646,  657,  657,  657, 1899, 1909,  647,
2205       647,  647, 1911,  643,  642, 1913, 1915,  166,  166,  646,
2206      1910,  657,  985,  985,  985, 1916, 1910,  647,  166,  175,
2207       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
2208       175,  175,  175,  175,  647,  175,  175,  175,  175,  175,
2209       662,  662,  662,  663,  663,  663, 1918,  665,  665,  665,
2210
2211       667,  667,  667,  669,  669,  669,  985, 1919,  662, 1921,
2212      1922,  663,  175,  175,  665, 1923, 1925,  667, 1927, 1929,
2213       669, 1921, 1930,  175,  678,  678,  678, 1931,  678, 1932,
2214      1934,  678, 1019, 1019, 1019,  175,  176,  176,  176,  176,
2215       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
2216       176,  663,  176,  176,  176,  176,  176,  675,  675,  675,
2217       676,  676,  676, 1935,  677,  677,  677,  679,  679,  679,
2218       680,  680,  680, 1936, 1937,  675, 1019, 1938,  676,  176,
2219       176,  677,  682,  682,  682,  679, 1965, 1964,  680, 1944,
2220       176,  683,  683,  683, 1950,  683, 1954, 1965,  683,  682,
2221
2222      1939, 1964,  176,  218,  687,  687,  687,  688,  688,  688,
2223       218, 1946,  689,  689,  689,  676,  690,  690,  690,  218,
2224       218, 1938,  687, 1494, 1944,  688, 1954, 1945,  680,  689,
2225       692,  692,  692,  690,  691,  691,  691, 1950,  693,  693,
2226       693,  695,  695,  695, 1939,  218,  218,  218,  692, 1946,
2227      1951,  691,  218, 1948, 1947,  218,  693, 1960,  695,  218,
2228       688,  218, 1945,  218,  696,  696,  696,  697,  697,  697,
2229       698,  698,  698,  699,  699,  699,  700,  700,  700, 1955,
2230      1493,  696, 1492,  691,  697, 1491, 1948,  698,  702,  702,
2231       702,  699, 1947, 1951,  700, 1952,  693,  703,  703,  703,
2232
2233      1490,  703, 1960, 1489,  703,  702,  704,  704,  704, 1955,
2234      1953,  700,  696,  705,  705,  705,  706,  706,  706,  698,
2235       707,  707,  707, 1956,  704, 1949,  696,  708,  708,  708,
2236      1952,  705, 1956,  706,  709,  709,  709,  707,  710,  710,
2237       710,  715,  715,  715,  708, 1953,  716,  716,  716,  719,
2238       719,  719,  709,  720,  720,  720,  710, 1488, 1949,  715,
2239       721,  721,  721, 1487,  716, 1486,  705,  719,  707, 1957,
2240      1958,  720,  722,  722,  722, 1959,  722,  721, 1957,  722,
2241      1483, 1482,  707,  723,  723,  723,  724,  724,  724, 1961,
2242      1481,  726,  726,  726, 1478,  727,  727,  727, 1466,  727,
2243
2244      1958,  723,  727, 1458,  724, 1959,  710,  716,  726,  729,
2245       729,  729, 1456, 1962,  720,  730,  730,  730,  745,  745,
2246       745,  746,  746,  746,  748,  748,  748,  729,  767,  767,
2247       767, 1455, 1454,  730, 1961, 1453,  745, 1452, 1451,  746,
2248      1450, 1449,  748, 1962,  724,  767,  768,  768,  768, 1963,
2249       768, 1434, 1433,  768,  771,  771,  771,  773,  773,  773,
2250       774,  774,  774,  776,  776,  776,  778,  778,  778,  748,
2251       778,  771, 1432,  778, 1431,  773,  730, 1430,  774, 1963,
2252      1429,  776,  781,  781,  781,  782,  782,  782, 1428,  782,
2253      1422, 1421,  782,  783,  783,  783,  784,  784,  784,  781,
2254
2255       785,  785,  785, 1420,  785, 1419, 1418,  785,  776, 1417,
2256       783, 1416,  771,  784,  787,  787,  787,  788,  788,  788,
2257       790,  790,  790,  793,  793,  793,  795,  795,  795,  796,
2258       796,  796,  787, 1415, 1414,  788, 1413, 1407,  790, 1404,
2259       793,  798,  798,  798,  795, 1402, 1400,  796,  799,  799,
2260       799, 1395,  799, 1381, 1379,  799,  803,  803,  803,  798,
2261       804,  804,  804,  806,  806,  806,  815,  815,  815, 1378,
2262       815, 1368, 1366,  815,  803, 1359, 1356,  790,  804, 1355,
2263      1352,  806,  821,  821,  821, 1351,  798,  822,  822,  822,
2264       824,  824,  824, 1348,  827,  827,  827, 1331,  827, 1328,
2265
2266       821,  827,  830,  830,  830,  822,  830, 1326,  824,  830,
2267       833,  833,  833,  834,  834,  834, 1321,  834, 1320, 1319,
2268       834,  840,  840,  840,  841,  841,  841,  833,  843,  843,
2269       843,  844,  844,  844, 1318,  844, 1317, 1316,  844,  840,
2270      1315, 1314,  841,  847,  847,  847,  843,  848,  848,  848,
2271      1313, 1312,  824,  850,  850,  850,  852,  852,  852, 1308,
2272       852,  847, 1307,  852, 1304,  848,  858,  858,  858, 1303,
2273      1301,  850,  859,  859,  859,  861,  861,  861,  862,  862,
2274       862,  863,  863,  863,  858,  863, 1298, 1294,  863, 1293,
2275       859, 1290,  843,  861, 1289,  862,  864,  864,  864,  865,
2276
2277       865,  865, 1284,  865, 1269, 1267,  865,  867,  867,  867,
2278       868,  868,  868,  864,  872,  872,  872,  850,  870,  870,
2279       870, 1266,  873,  873,  873,  867,  873, 1265,  868,  873,
2280      1258,  872,  861,  876,  876,  876,  870,  877,  877,  877,
2281      1256,  877, 1251, 1249,  877,  879,  879,  879, 1246, 1245,
2282       876,  880,  880,  880,  882,  882,  882,  884,  884,  884,
2283      1244,  884, 1242,  879,  884,  887,  887,  887, 1240,  880,
2284      1220, 1219,  882,  888,  888,  888,  890,  890,  890,  891,
2285       891,  891,  870,  887, 1218,  892,  892,  892, 1213,  892,
2286      1210,  888,  892, 1209,  890, 1203,  891,  895,  895,  895,
2287
2288       896,  896,  896, 1201,  896, 1200, 1199,  896,  897,  897,
2289       897,  898,  898,  898,  895,  882,  900,  900,  900,  902,
2290       902,  902,  905,  905,  905, 1197,  897, 1196, 1193,  898,
2291       906,  906,  906,  890,  900, 1192,  902,  908,  908,  908,
2292       905,  911,  911,  911,  912,  912,  912, 1190,  906,  914,
2293       914,  914,  918,  918,  918,  908,  915,  915,  915,  911,
2294       915, 1189,  912,  915,  919,  919,  919,  914, 1188, 1187,
2295       918,  921,  921,  921, 1185,  900,  923,  923,  923, 1183,
2296       923, 1178,  919,  923,  927,  927,  927, 1177, 1176,  921,
2297       928,  928,  928, 1174, 1173,  908,  930,  930,  930, 1172,
2298
2299       914, 1171,  927,  932,  932,  932, 1168, 1160,  928,  939,
2300       939,  939, 1155, 1153,  930,  957,  957,  957,  966,  966,
2301       966,  932,  932,  961,  961,  961, 1152,  939,  921,  958,
2302       958,  958,  957,  958, 1148,  966,  958, 1143,  963,  963,
2303       963,  961,  963, 1138, 1136,  963,  967,  967,  967, 1134,
2304       967, 1131, 1130,  967,  930,  968,  968,  968, 1129,  968,
2305      1116, 1115,  968,  972,  972,  972,  975,  975,  975, 1110,
2306       961, 1104,  939,  976,  976,  976, 1103,  976, 1102, 1095,
2307       976,  972, 1092,  975,  977,  977,  977,  978,  978,  978,
2308       980,  980,  980,  990,  990,  990,  991,  991,  991, 1088,
2309
2310      1086,  977,  993,  993,  993,  978, 1085, 1081,  980, 1079,
2311       990,  972, 1078,  991,  994,  994,  994, 1069, 1069, 1069,
2312       993,  995,  995,  995, 1075,  996,  996,  996, 1073,  996,
2313      1072,  994,  996, 1071,  978,  999,  999,  999,  995, 1068,
2314       991, 1000, 1000, 1000, 1001, 1001, 1001, 1002, 1002, 1002,
2315      1067, 1066,  999, 1003, 1003, 1003, 1065, 1064, 1000, 1062,
2316      1061, 1001, 1058, 1055, 1002,  993, 1051, 1004, 1004, 1004,
2317      1003, 1047, 1005, 1005, 1005, 1009, 1009, 1009, 1010, 1010,
2318      1010, 1018, 1018, 1018,  995, 1004, 1042, 1042, 1042, 1001,
2319      1005, 1045, 1009, 1011, 1011, 1011, 1010, 1011, 1044, 1018,
2320
2321      1011, 1041, 1036, 1042, 1002, 1014, 1014, 1014, 1000, 1014,
2322      1035, 1030, 1014, 1028, 1020, 1020, 1020, 1024, 1020, 1009,
2323      1003, 1020, 1023, 1025, 1025, 1025, 1017, 1025, 1008, 1004,
2324      1025, 1007, 1010, 1006,  992, 1005, 1029, 1029, 1029, 1031,
2325      1031, 1031,  989,  988, 1018, 1032, 1032, 1032,  987, 1032,
2326       986,  983, 1032,  982, 1029,  979,  974, 1031, 1037, 1037,
2327      1037,  971, 1037,  962,  960, 1037, 1040, 1040, 1040, 1043,
2328      1043, 1043,  959, 1043,  956,  955, 1043, 1046, 1046, 1046,
2329      1048, 1048, 1048,  954, 1040, 1049, 1049, 1049, 1050, 1050,
2330      1050,  953,  952, 1031, 1029, 1046,  951, 1048, 1052, 1052,
2331
2332      1052,  950,  948, 1049,  947,  944, 1050, 1053, 1053, 1053,
2333       943, 1040, 1056, 1056, 1056, 1052,  942, 1063, 1063, 1063,
2334      1070, 1070, 1070,  941, 1046, 1053, 1074, 1074, 1074,  940,
2335      1056, 1076, 1076, 1076,  938, 1063,  937,  936, 1050, 1077,
2336      1077, 1077, 1080, 1080, 1080,  935, 1082, 1082, 1082, 1049,
2337      1082,  926,  922, 1082, 1087, 1087, 1087,  910, 1089, 1089,
2338      1089, 1056, 1089,  909,  904, 1089, 1053, 1063,  903, 1093,
2339      1093, 1093, 1087, 1094, 1094, 1094,  901, 1056, 1096, 1096,
2340      1096,  894, 1096, 1077,  893, 1096, 1080, 1093, 1099, 1099,
2341      1099,  883, 1076, 1100, 1100, 1100,  878, 1100,  875,  874,
2342
2343      1100,  871,  866, 1087,  857, 1099, 1101, 1101, 1101, 1105,
2344      1105, 1105, 1106, 1106, 1106, 1107, 1107, 1107, 1108, 1108,
2345      1108, 1109, 1109, 1109, 1101,  856,  855, 1093, 1111, 1111,
2346      1111, 1112, 1112, 1112,  851, 1112,  839,  838, 1112, 1113,
2347      1113, 1113, 1114, 1114, 1114, 1111, 1114,  837,  836, 1114,
2348      1117, 1117, 1117,  835,  826, 1101, 1113, 1118, 1118, 1118,
2349      1119, 1119, 1119,  825, 1119,  820,  819, 1119, 1117, 1120,
2350      1120, 1120,  818,  814, 1118,  813, 1107,  812,  811, 1108,
2351       810,  809, 1109, 1121, 1121, 1121, 1120, 1122, 1122, 1122,
2352       808, 1122,  807,  802, 1122, 1123, 1123, 1123,  794,  792,
2353
2354      1121, 1124, 1124, 1124, 1125, 1125, 1125, 1126, 1126, 1126,
2355       786,  777, 1123, 1127, 1127, 1127,  772,  765, 1124,  764,
2356       762, 1125,  761,  760, 1126, 1128, 1128, 1128, 1132, 1132,
2357      1132, 1127, 1133, 1133, 1133,  759, 1133,  757,  756, 1133,
2358      1135, 1135, 1135, 1128,  755, 1132, 1137, 1137, 1137, 1139,
2359      1139, 1139, 1140, 1140, 1140, 1125, 1124,  754, 1135,  753,
2360      1141, 1141, 1141,  752, 1137,  751, 1139,  750,  744, 1140,
2361      1142, 1142, 1142,  743, 1128,  742, 1127, 1141, 1144, 1144,
2362      1144, 1145, 1145, 1145, 1146, 1146, 1146,  739, 1142, 1147,
2363      1147, 1147, 1154, 1154, 1154, 1137, 1144,  738, 1145,  737,
2364
2365       735, 1146, 1149, 1149, 1149,  731, 1149, 1147,  728, 1149,
2366      1154,  725,  718, 1141, 1156, 1156, 1156, 1157, 1157, 1157,
2367       717, 1157, 1144,  714, 1157, 1158, 1158, 1158, 1161, 1161,
2368      1161, 1156,  713,  712, 1142, 1159, 1159, 1159, 1163, 1163,
2369      1163, 1154,  711, 1158,  701, 1161,  694,  686, 1162, 1162,
2370      1162, 1147, 1162, 1159,  685, 1162, 1163, 1169, 1169, 1169,
2371      1170, 1170, 1170, 1175, 1175, 1175, 1179, 1179, 1179, 1180,
2372      1180, 1180,  684,  681, 1169, 1181, 1181, 1181, 1170,  674,
2373       673, 1158, 1182, 1182, 1182, 1184, 1184, 1184, 1159, 1186,
2374      1186, 1186, 1191, 1191, 1191, 1194, 1194, 1194, 1195, 1195,
2375
2376      1195, 1204, 1204, 1204,  672, 1204,  671,  670, 1204,  661,
2377      1191,  660,  659, 1194,  656, 1195,  655,  654, 1170, 1207,
2378      1207, 1207, 1208, 1208, 1208, 1211, 1211, 1211, 1212, 1212,
2379      1212, 1214, 1214, 1214,  652, 1214,  651, 1207, 1214, 1208,
2380      1217, 1217, 1217,  650, 1217,  649,  645, 1217, 1221, 1221,
2381      1221, 1194, 1222, 1222, 1222, 1224, 1224, 1224,  640, 1224,
2382       639,  638, 1224, 1207,  637, 1221, 1227, 1227, 1227,  634,
2383      1222, 1228, 1228, 1228,  632, 1228,  628,  624, 1228,  623,
2384      1229, 1229, 1229, 1227, 1229,  620,  619, 1229, 1232, 1232,
2385      1232, 1233, 1233, 1233,  618, 1233,  617,  615, 1233, 1234,
2386
2387      1234, 1234, 1235, 1235, 1235, 1232, 1236, 1236, 1236,  614,
2388      1237, 1237, 1237,  613, 1237,  612, 1234, 1237,  611, 1235,
2389      1238, 1238, 1238, 1236, 1239, 1239, 1239, 1241, 1241, 1241,
2390      1243, 1243, 1243,  610, 1243,  609,  608, 1243, 1238, 1247,
2391      1247, 1247, 1239,  607, 1241,  606, 1235, 1250, 1250, 1250,
2392      1252, 1252, 1252,  605, 1253, 1253, 1253, 1247, 1253,  604,
2393       600, 1253, 1254, 1254, 1254, 1250,  599, 1252,  597, 1238,
2394       596, 1241,  595, 1255, 1255, 1255,  594, 1255,  593, 1254,
2395      1255, 1257, 1257, 1257,  589, 1239, 1259, 1259, 1259, 1260,
2396      1260, 1260,  587, 1261, 1261, 1261,  586, 1261,  585, 1257,
2397
2398      1261, 1262, 1262, 1262, 1259,  584, 1260, 1263, 1263, 1263,
2399       579, 1263,  575,  574, 1263, 1275, 1275, 1275, 1262, 1264,
2400      1264, 1264, 1268, 1268, 1268, 1270, 1270, 1270,  571, 1270,
2401       570,  569, 1270, 1259, 1273, 1273, 1273, 1264,  568,  567,
2402      1268, 1274, 1274, 1274, 1257,  566, 1276, 1276, 1276,  563,
2403      1276,  562, 1273, 1276, 1279, 1279, 1279,  561,  560, 1274,
2404      1285, 1285, 1285, 1286, 1286, 1286,  557, 1286,  555,  552,
2405      1286,  551, 1279, 1287, 1287, 1287,  550, 1285, 1288, 1288,
2406      1288, 1264,  549, 1273, 1268, 1291, 1291, 1291, 1292, 1292,
2407      1292, 1287, 1274, 1295, 1295, 1295, 1296, 1296, 1296, 1297,
2408
2409      1297, 1297, 1299, 1299, 1299, 1300, 1300, 1300, 1302, 1302,
2410      1302, 1305, 1305, 1305, 1309, 1309, 1309,  548, 1310, 1310,
2411      1310, 1311, 1311, 1311,  545, 1311,  544,  543, 1311, 1305,
2412       542,  541, 1309,  538, 1287, 1310, 1322, 1322, 1322, 1323,
2413      1323, 1323, 1324, 1324, 1324,  537, 1324,  536,  535, 1324,
2414      1325, 1325, 1325,  533, 1322,  530, 1323, 1327, 1327, 1327,
2415      1332, 1332, 1332, 1333, 1333, 1333,  526, 1333,  525,  524,
2416      1333, 1334, 1334, 1334,  523, 1334,  522, 1332, 1334,  521,
2417      1337, 1337, 1337, 1322, 1337,  520,  517, 1337, 1340, 1340,
2418      1340, 1341, 1341, 1341,  514, 1341,  513,  512, 1341, 1342,
2419
2420      1342, 1342, 1343, 1343, 1343, 1340, 1343,  511,  509, 1343,
2421      1346, 1346, 1346, 1347, 1347, 1347, 1342, 1349, 1349, 1349,
2422      1350, 1350, 1350,  504, 1350,  502,  501, 1350, 1346,  500,
2423       499, 1347,  498,  497, 1349, 1357, 1357, 1357, 1360, 1360,
2424      1360,  493, 1360,  492,  491, 1360,  490, 1363, 1363, 1363,
2425       486, 1363,  485, 1357, 1363, 1367, 1367, 1367, 1342, 1369,
2426      1369, 1369, 1370, 1370, 1370,  484, 1370,  483,  482, 1370,
2427       480, 1346,  477, 1367, 1373, 1373, 1373, 1369, 1373,  476,
2428       474, 1373, 1376, 1376, 1376, 1377, 1377, 1377, 1380, 1380,
2429      1380, 1382, 1382, 1382, 1383, 1383, 1383, 1384, 1384, 1384,
2430
2431      1376,  472, 1377,  468, 1367,  466, 1380,  464,  461, 1382,
2432       460,  458, 1383, 1385, 1385, 1385, 1376, 1388, 1388, 1388,
2433       457,  456, 1369, 1389, 1389, 1389,  455, 1389,  454,  451,
2434      1389, 1385,  450, 1392, 1392, 1392, 1393, 1393, 1393, 1394,
2435      1394, 1394, 1396, 1396, 1396, 1397, 1397, 1397, 1382,  449,
2436      1380, 1392, 1398, 1398, 1398, 1399, 1399, 1399, 1401, 1401,
2437      1401, 1403, 1403, 1403, 1406, 1406, 1406, 1408, 1408, 1408,
2438      1410, 1410, 1410,  448, 1410,  447,  441, 1410, 1423, 1423,
2439      1423, 1406, 1427, 1427, 1427, 1408, 1424, 1424, 1424, 1392,
2440      1424,  440,  438, 1424,  432,  431, 1423, 1435, 1435, 1435,
2441
2442       427, 1435,  423,  419, 1435, 1438, 1438, 1438,  415, 1438,
2443       409,  405, 1438, 1441, 1441, 1441, 1442, 1442, 1442, 1443,
2444      1443, 1443, 1445, 1445, 1445, 1446, 1446, 1446,  401, 1446,
2445      1441,  397, 1446,  396, 1442,  395, 1423, 1443,  394, 1445,
2446      1457, 1457, 1457, 1459, 1459, 1459, 1460, 1460, 1460, 1461,
2447      1461, 1461, 1462, 1462, 1462, 1463, 1463, 1463, 1464, 1464,
2448      1464, 1459, 1464, 1460,  390, 1464, 1445, 1461,  386,  383,
2449      1462, 1441, 1463, 1465, 1465, 1465, 1467, 1467, 1467, 1468,
2450      1468, 1468, 1469, 1469, 1469, 1470, 1470, 1470,  382,  381,
2451      1465, 1472, 1472, 1472, 1467, 1475, 1475, 1475,  377,  371,
2452
2453      1469,  370,  366, 1470,  362,  358, 1461,  357,  353, 1472,
2454      1462, 1476, 1476, 1476, 1477, 1477, 1477, 1479, 1479, 1479,
2455      1480, 1480, 1480, 1484, 1484, 1484, 1485, 1485, 1485, 1476,
2456      1485,  350,  349, 1485, 1497, 1497, 1497, 1504, 1504, 1504,
2457      1484, 1505, 1505, 1505,  344, 1469, 1506, 1506, 1506,  340,
2458      1472,  332, 1497,  331, 1504, 1508, 1508, 1508, 1505, 1509,
2459      1509, 1509,  330, 1509, 1506,  326, 1509, 1517, 1517, 1517,
2460       320,  316, 1508, 1518, 1518, 1518, 1519, 1519, 1519,  309,
2461      1520, 1520, 1520,  307, 1517, 1521, 1521, 1521,  306,  301,
2462      1518, 1497, 1523, 1523, 1523,  294, 1505, 1520, 1524, 1524,
2463
2464      1524,  293, 1524, 1521,  292, 1524, 1525, 1525, 1525, 1523,
2465      1526, 1526, 1526, 1527, 1527, 1527,  291, 1527,  290,  286,
2466      1527, 1530, 1530, 1530, 1525, 1531, 1531, 1531, 1526, 1531,
2467       282,  276, 1531, 1532, 1532, 1532,  274,  269, 1530, 1533,
2468      1533, 1533, 1535, 1535, 1535, 1536, 1536, 1536,  268,  264,
2469      1532, 1540, 1540, 1540, 1545, 1545, 1545, 1533, 1546, 1546,
2470      1546,  258, 1546, 1536,  257, 1546, 1560, 1560, 1560, 1540,
2471       256, 1545,  252,  244, 1526, 1565, 1565, 1565, 1566, 1566,
2472      1566,  242, 1566,  241, 1560, 1566, 1567, 1567, 1567, 1568,
2473      1568, 1568, 1565, 1568,  237,  234, 1568, 1576, 1576, 1576,
2474
2475      1577, 1577, 1577, 1567, 1577,  232,  231, 1577, 1578, 1578,
2476      1578, 1579, 1579, 1579, 1576, 1579,  230,  226, 1579, 1580,
2477      1580, 1580,  223, 1560,  222, 1578, 1581, 1581, 1581,  219,
2478      1581,  215,  211, 1581,  207,  206, 1580,  205,  199, 1567,
2479      1582, 1582, 1582,  198, 1582,  196,  193, 1582, 1585, 1585,
2480      1585, 1587, 1587, 1587, 1588, 1588, 1588,  181, 1588,    0,
2481         0, 1588, 1591, 1591, 1591,    0, 1585,    0,    0, 1587,
2482      1592, 1592, 1592,    0, 1592,    0,    0, 1592,    0, 1591,
2483      1593, 1593, 1593, 1598, 1598, 1598, 1601, 1601, 1601, 1602,
2484      1602, 1602,    0, 1602,    0,    0, 1602,    0, 1593, 1618,
2485
2486      1618, 1618,    0, 1601, 1619, 1619, 1619, 1620, 1620, 1620,
2487         0, 1621, 1621, 1621, 1587, 1621,    0, 1618, 1621, 1624,
2488      1624, 1624,    0,    0, 1620, 1626, 1626, 1626, 1628, 1628,
2489      1628,    0, 1628,    0,    0, 1628, 1624, 1631, 1631, 1631,
2490         0, 1631, 1626,    0, 1631, 1634, 1634, 1634, 1618, 1634,
2491         0, 1620, 1634, 1643, 1643, 1643, 1644, 1644, 1644,    0,
2492      1644,    0,    0, 1644,    0,    0, 1624, 1649, 1649, 1649,
2493         0, 1643, 1650, 1650, 1650, 1653, 1653, 1653,    0, 1653,
2494         0,    0, 1653,    0, 1649, 1649, 1660, 1660, 1660, 1669,
2495      1669, 1669, 1670, 1670, 1670, 1671, 1671, 1671, 1674, 1674,
2496
2497      1674,    0, 1643, 1660, 1672, 1672, 1672, 1669, 1672,    0,
2498         0, 1672, 1671,    0,    0, 1674, 1676, 1676, 1676, 1677,
2499      1677, 1677,    0, 1677,    0,    0, 1677, 1693, 1693, 1693,
2500      1695, 1695, 1695, 1676,    0,    0, 1669, 1696, 1696, 1696,
2501         0,    0, 1697, 1697, 1697, 1693, 1697, 1695, 1695, 1697,
2502      1698, 1698, 1698,    0, 1696, 1696, 1699, 1699, 1699,    0,
2503      1697, 1704, 1704, 1704,    0,    0, 1674, 1705, 1705, 1705,
2504         0, 1705,    0,    0, 1705, 1714, 1714, 1714, 1704, 1715,
2505      1715, 1715,    0, 1715,    0,    0, 1715, 1719, 1719, 1719,
2506      1720, 1720, 1720, 1714, 1721, 1721, 1721,    0, 1721,    0,
2507
2508         0, 1721,    0,    0, 1719,    0,    0, 1720, 1724, 1724,
2509      1724, 1739, 1739, 1739, 1742, 1742, 1742, 1743, 1743, 1743,
2510         0, 1743,    0,    0, 1743, 1724, 1744, 1744, 1744, 1739,
2511      1744, 1742, 1742, 1744,    0, 1743,    0,    0, 1714, 1747,
2512      1747, 1747,    0,    0, 1744, 1745, 1745, 1745, 1745, 1745,
2513      1745, 1745, 1745, 1745,    0,    0, 1745, 1748, 1748, 1748,
2514         0, 1745, 1745, 1745, 1745, 1745, 1753, 1753, 1753,    0,
2515      1753,    0,    0, 1753,    0,    0,    0,    0,    0,    0,
2516         0, 1762, 1762, 1762,    0, 1764, 1764, 1764, 1745, 1745,
2517      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1762,
2518
2519         0, 1746, 1764, 1766, 1766, 1766, 1746, 1746, 1746, 1746,
2520      1746, 1765, 1765, 1765,    0, 1765,    0,    0, 1765,    0,
2521      1766, 1767, 1767, 1767,    0, 1767,    0,    0, 1767, 1768,
2522      1768, 1768,    0, 1746, 1746, 1769, 1769, 1769,    0, 1769,
2523         0,    0, 1769, 1783, 1783, 1783, 1768, 1783,    0,    0,
2524      1783,    0,    0, 1798, 1798, 1798, 1824, 1824, 1824,    0,
2525         0, 1783, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786,
2526      1786, 1798,    0, 1786, 1824, 1824,    0,    0, 1786, 1786,
2527      1786, 1786, 1786, 1801, 1801, 1801,    0, 1801,    0,    0,
2528      1801, 1804, 1804, 1804,    0, 1804,    0,    0, 1804, 1831,
2529
2530      1831, 1831, 1840, 1840, 1840, 1786, 1786, 1787, 1787, 1787,
2531      1787, 1787, 1787, 1787, 1787, 1787, 1831,    0, 1787,    0,
2532      1840,    0,    0, 1787, 1787, 1787, 1787, 1787, 1807, 1807,
2533      1807,    0, 1807,    0,    0, 1807, 1844, 1844, 1844, 1847,
2534      1847, 1847, 1848, 1848, 1848,    0, 1848,    0,    0, 1848,
2535      1787, 1787,    0,    0, 1844,    0, 1847, 1859, 1859, 1859,
2536      1863, 1863, 1863,    0, 1863,    0,    0, 1863, 1928, 1928,
2537      1928,    0, 1933, 1933, 1933, 1859, 1933,    0,    0, 1933,
2538      1966, 1966, 1966,    0,    0, 1844, 1928, 1967, 1967, 1967,
2539      1933,    0, 1859,    0,    0,    0,    0,    0, 1966,    0,
2540
2541         0,    0,    0,    0,    0, 1967, 1970, 1970, 1970, 1970,
2542      1970, 1970, 1970, 1970, 1970, 1971, 1971, 1971, 1971, 1971,
2543      1971, 1971, 1971, 1971, 1972, 1972, 1972, 1972, 1972, 1972,
2544      1972, 1972, 1972, 1973, 1973, 1973, 1973, 1973, 1973, 1973,
2545      1973, 1973, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974,
2546      1974, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975,
2547      1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1977,
2548      1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1978, 1978,
2549      1978, 1978, 1978, 1978, 1978, 1978, 1978, 1979, 1979, 1979,
2550      1979, 1979, 1979, 1979, 1979, 1979, 1980, 1980, 1980, 1980,
2551
2552      1980, 1980, 1980, 1980, 1980, 1981, 1981, 1981, 1981, 1981,
2553      1981, 1981, 1981, 1981, 1982, 1982, 1982, 1982, 1982, 1982,
2554      1982, 1982, 1982, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
2555      1983, 1983, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
2556      1984, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985,
2557      1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1987,
2558      1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1988, 1988,
2559      1988, 1988, 1988, 1988, 1988, 1988, 1988, 1989, 1989, 1989,
2560      1989, 1989, 1989, 1989, 1989, 1989, 1990, 1990, 1990, 1990,
2561      1990, 1990, 1990, 1990, 1990, 1991, 1991, 1991, 1991, 1991,
2562
2563      1991, 1991, 1991, 1991, 1992, 1992, 1992, 1992, 1992, 1992,
2564      1992, 1992, 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
2565      1993, 1993, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
2566      1994, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995,
2567      1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1997,
2568      1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1998, 1998,
2569      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1999, 1999, 1999,
2570      1999, 1999, 1999, 1999, 1999, 1999, 2000, 2000, 2000, 2000,
2571      2000, 2000, 2000, 2000, 2000, 2001, 2001, 2001, 2001, 2001,
2572      2001, 2001, 2001, 2001, 2002, 2002, 2002, 2002, 2002, 2002,
2573
2574      2002, 2002, 2002, 2003, 2003, 2003, 2003, 2003, 2003, 2003,
2575      2003, 2003, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
2576      2004, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
2577      2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2007,
2578      2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2008, 2008,
2579      2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 2009, 2009,
2580      2009, 2009, 2009, 2009, 2009, 2009, 2010, 2010, 2010,    0,
2581         0,    0, 2010, 2011, 2011, 2011,    0,    0,    0, 2011,
2582      2012, 2012, 2012,    0,    0,    0, 2012, 2013, 2013, 2013,
2583         0,    0,    0, 2013, 2014, 2014, 2014,    0,    0,    0,
2584
2585      2014, 2015, 2015, 2015,    0,    0,    0, 2015, 2016, 2016,
2586      2016,    0,    0,    0, 2016, 2017, 2017, 2017,    0,    0,
2587         0, 2017, 2018, 2018, 2018,    0,    0,    0, 2018, 2019,
2588      2019, 2019,    0,    0,    0, 2019, 2020, 2020, 2020,    0,
2589         0,    0, 2020, 2021, 2021, 2021,    0,    0,    0, 2021,
2590      2022, 2022, 2022,    0,    0,    0, 2022, 2023, 2023, 2023,
2591         0,    0,    0, 2023, 2024, 2024, 2024,    0,    0,    0,
2592      2024, 2025, 2025, 2025,    0,    0,    0, 2025, 2026, 2026,
2593      2026,    0,    0,    0, 2026, 2027, 2027, 2027, 2027, 2027,
2594      2027, 2027,    0, 2027, 2028,    0,    0,    0, 2028, 2029,
2595
2596         0,    0,    0, 2029, 2030, 2030, 2030,    0,    0,    0,
2597      2030, 2031,    0,    0,    0, 2031, 2032, 2032, 2032,    0,
2598         0,    0, 2032, 2033,    0,    0,    0, 2033, 2034, 2034,
2599      2034,    0,    0,    0, 2034, 2035,    0,    0,    0, 2035,
2600      2036,    0,    0,    0, 2036, 2037,    0,    0,    0, 2037,
2601      2038, 2038, 2038,    0,    0,    0, 2038, 2039,    0,    0,
2602         0, 2039, 2040, 2040, 2040,    0,    0,    0, 2040, 2041,
2603         0,    0,    0, 2041, 2042, 2042, 2042,    0,    0,    0,
2604      2042, 2043,    0,    0,    0, 2043, 2044, 2044, 2044,    0,
2605         0,    0, 2044, 2045,    0,    0,    0, 2045, 2046, 2046,
2606
2607      2046,    0,    0,    0, 2046, 2047,    0,    0,    0, 2047,
2608      2048, 2048, 2048,    0,    0,    0, 2048, 2049,    0,    0,
2609         0, 2049, 2050, 2050, 2050,    0,    0,    0, 2050, 2051,
2610         0,    0,    0, 2051, 2052, 2052, 2052,    0,    0,    0,
2611      2052, 2053,    0,    0,    0, 2053, 2054, 2054, 2054,    0,
2612         0,    0, 2054, 2055,    0,    0,    0, 2055, 2056, 2056,
2613      2056,    0,    0,    0, 2056, 2057,    0,    0,    0, 2057,
2614      2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059,
2615         0,    0,    0,    0, 2059, 2060, 2060, 2060,    0,    0,
2616         0, 2060, 2061, 2061, 2061, 2061,    0,    0, 2061, 2061,
2617
2618      2062, 2062, 2062,    0,    0,    0, 2062, 2063, 2063, 2063,
2619      2063,    0,    0, 2063, 2063, 2064, 2064, 2064,    0,    0,
2620         0, 2064, 2065, 2065, 2065, 2065,    0,    0, 2065, 2065,
2621      2066, 2066, 2066,    0,    0,    0, 2066, 2067, 2067, 2067,
2622      2067,    0,    0, 2067, 2067, 2068, 2068, 2068,    0,    0,
2623         0, 2068, 2069, 2069, 2069, 2069,    0,    0, 2069, 2069,
2624      2070, 2070, 2070,    0,    0,    0, 2070, 2071, 2071, 2071,
2625      2071,    0,    0, 2071, 2071, 2072, 2072, 2072,    0,    0,
2626         0, 2072, 2073, 2073, 2073, 2073,    0,    0, 2073, 2073,
2627      2074, 2074, 2074, 2074,    0,    0, 2074, 2074, 2075, 2075,
2628
2629      2075,    0,    0,    0, 2075, 2076, 2076, 2076, 2076,    0,
2630         0, 2076, 2076, 2077, 2077, 2077, 2077,    0, 2077,    0,
2631      2077, 2078, 2078, 2078, 2078,    0,    0, 2078, 2078, 2079,
2632      2079, 2079, 2079,    0, 2079,    0, 2079, 2080, 2080, 2080,
2633      2080,    0,    0, 2080, 2080, 2081, 2081, 2081,    0,    0,
2634         0, 2081, 2082, 2082, 2082, 2082,    0,    0, 2082, 2082,
2635      2083, 2083, 2083, 2083,    0, 2083,    0, 2083, 2084, 2084,
2636      2084, 2084,    0,    0, 2084, 2084, 2085, 2085, 2085,    0,
2637         0,    0, 2085, 2086, 2086, 2086, 2086,    0,    0, 2086,
2638      2086, 2087, 2087, 2087,    0,    0,    0, 2087, 2088, 2088,
2639
2640      2088, 2088,    0,    0, 2088, 2088, 2089, 2089, 2089, 2089,
2641         0,    0, 2089, 2089, 2090, 2090, 2090,    0,    0,    0,
2642      2090, 2091, 2091, 2091, 2091,    0,    0, 2091, 2091, 2092,
2643      2092, 2092, 2092, 2092, 2092, 2092, 2092, 2092, 2093,    0,
2644      2093,    0,    0, 2093, 2094, 2094, 2094,    0,    0,    0,
2645      2094, 2095, 2095, 2095, 2095,    0,    0, 2095, 2095, 2096,
2646      2096, 2096, 2096,    0, 2096,    0, 2096, 2097, 2097, 2097,
2647      2097,    0,    0, 2097, 2097, 2098, 2098, 2098,    0,    0,
2648         0, 2098, 2099, 2099, 2099, 2099,    0,    0, 2099, 2099,
2649      2100, 2100, 2100,    0,    0,    0, 2100, 2101, 2101, 2101,
2650
2651      2101,    0,    0, 2101, 2101, 2102, 2102, 2102,    0,    0,
2652         0, 2102, 2103, 2103, 2103, 2103,    0,    0, 2103, 2103,
2653      2104, 2104, 2104,    0,    0,    0, 2104, 2105, 2105, 2105,
2654      2105,    0,    0, 2105, 2105, 2106, 2106, 2106,    0,    0,
2655         0, 2106, 2107, 2107, 2107, 2107,    0,    0, 2107, 2107,
2656      2108, 2108, 2108, 2108,    0,    0, 2108, 2108, 2109, 2109,
2657      2109,    0,    0,    0, 2109, 2110, 2110, 2110, 2110,    0,
2658         0, 2110, 2110, 2111, 2111, 2111,    0,    0,    0, 2111,
2659      2112, 2112, 2112, 2112,    0,    0, 2112, 2112, 2113, 2113,
2660      2113,    0,    0,    0, 2113, 2114, 2114, 2114, 2114,    0,
2661
2662         0, 2114, 2114, 2115, 2115, 2115,    0,    0,    0, 2115,
2663      2116, 2116, 2116, 2116,    0,    0, 2116, 2116, 2117, 2117,
2664      2117,    0,    0,    0, 2117, 2118, 2118, 2118, 2118,    0,
2665         0, 2118, 2118, 2119, 2119, 2119,    0,    0,    0, 2119,
2666      2120, 2120, 2120, 2120,    0,    0, 2120, 2120, 2121, 2121,
2667      2121,    0,    0,    0, 2121, 2122, 2122, 2122, 2122,    0,
2668         0, 2122, 2122, 2123, 2123, 2123, 2123,    0,    0, 2123,
2669      2123, 2124, 2124, 2124,    0,    0,    0, 2124, 2125, 2125,
2670      2125, 2125,    0,    0, 2125, 2125, 2126, 2126, 2126, 2126,
2671      2126, 2126, 2126, 2126, 2126, 2127, 2127, 2127, 2127, 2127,
2672
2673      2127, 2127, 2127, 2127, 2128, 2128, 2128,    0,    0,    0,
2674      2128, 2129, 2129, 2129, 2129,    0,    0, 2129, 2129, 2130,
2675      2130, 2130,    0,    0,    0, 2130, 2131, 2131, 2131, 2131,
2676         0,    0, 2131, 2131, 2132, 2132, 2132,    0,    0,    0,
2677      2132, 2133, 2133, 2133, 2133,    0,    0, 2133, 2133, 2134,
2678      2134, 2134,    0,    0,    0, 2134, 2135, 2135, 2135, 2135,
2679         0,    0, 2135, 2135, 2136, 2136, 2136,    0,    0,    0,
2680      2136, 2137, 2137, 2137,    0,    0,    0, 2137, 2138, 2138,
2681      2138, 2138,    0,    0, 2138, 2138, 2139, 2139, 2139, 2139,
2682         0, 2139,    0, 2139, 2140, 2140, 2140, 2140,    0,    0,
2683
2684      2140, 2140, 2141, 2141, 2141, 2141,    0,    0, 2141, 2141,
2685      2142, 2142, 2142,    0,    0,    0, 2142, 2143, 2143, 2143,
2686      2143,    0,    0, 2143, 2143, 2144, 2144, 2144,    0,    0,
2687         0, 2144, 2145, 2145, 2145, 2145,    0,    0, 2145, 2145,
2688      2146, 2146, 2146,    0,    0,    0, 2146, 2147, 2147, 2147,
2689      2147,    0,    0, 2147, 2147, 2148, 2148, 2148,    0,    0,
2690         0, 2148, 2149, 2149, 2149, 2149,    0,    0, 2149, 2149,
2691      2150, 2150, 2150,    0,    0,    0, 2150, 2151, 2151, 2151,
2692      2151,    0,    0, 2151, 2151, 2152, 2152, 2152,    0,    0,
2693         0, 2152, 2153, 2153, 2153, 2153,    0,    0, 2153, 2153,
2694
2695      2154, 2154, 2154, 2154,    0, 2154,    0, 2154, 2155, 2155,
2696      2155, 2155,    0,    0, 2155, 2155, 2156, 2156, 2156, 2156,
2697         0,    0, 2156, 2156, 2157, 2157, 2157, 2157,    0, 2157,
2698         0, 2157, 2158, 2158, 2158, 2158,    0,    0, 2158, 2158,
2699      2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2160,
2700      2160, 2160, 2160, 2160, 2160, 2160, 2160, 2160, 2161, 2161,
2701      2161,    0,    0,    0, 2161, 2162, 2162, 2162, 2162,    0,
2702         0, 2162, 2162, 2163, 2163, 2163,    0,    0,    0, 2163,
2703      2164, 2164, 2164, 2164,    0,    0, 2164, 2164, 2165, 2165,
2704      2165,    0,    0,    0, 2165, 2166, 2166, 2166, 2166,    0,
2705
2706         0, 2166, 2166, 2167, 2167, 2167,    0,    0,    0, 2167,
2707      2168, 2168, 2168, 2168,    0,    0, 2168, 2168, 2169, 2169,
2708      2169,    0,    0,    0, 2169, 2170, 2170, 2170,    0,    0,
2709         0, 2170, 2171, 2171, 2171, 2171,    0,    0, 2171, 2171,
2710      2172, 2172, 2172, 2172,    0, 2172,    0, 2172, 2173, 2173,
2711      2173, 2173,    0,    0, 2173, 2173, 2174, 2174, 2174, 2174,
2712         0,    0, 2174, 2174, 2175, 2175, 2175,    0,    0,    0,
2713      2175, 2176, 2176, 2176, 2176,    0,    0, 2176, 2176, 2177,
2714      2177, 2177,    0,    0,    0, 2177, 2178, 2178, 2178, 2178,
2715         0,    0, 2178, 2178, 2179, 2179, 2179, 2179,    0, 2179,
2716
2717         0, 2179, 2180, 2180, 2180, 2180,    0,    0, 2180, 2180,
2718      2181, 2181, 2181,    0,    0,    0, 2181, 2182, 2182, 2182,
2719      2182,    0,    0, 2182, 2182, 2183, 2183, 2183, 2183,    0,
2720      2183,    0, 2183, 2184, 2184, 2184, 2184,    0,    0, 2184,
2721      2184, 2185, 2185, 2185,    0,    0,    0, 2185, 2186, 2186,
2722      2186, 2186,    0,    0, 2186, 2186, 2187, 2187, 2187, 2187,
2723         0,    0, 2187, 2187, 2188, 2188, 2188, 2188,    0,    0,
2724      2188, 2188, 2189, 2189, 2189, 2189,    0,    0, 2189, 2189,
2725      2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2191,
2726      2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2192, 2192,
2727
2728      2192, 2192,    0, 2192,    0, 2192, 2193, 2193, 2193, 2193,
2729         0,    0, 2193, 2193, 2194, 2194, 2194,    0,    0,    0,
2730      2194, 2195, 2195, 2195, 2195,    0,    0, 2195, 2195, 2196,
2731      2196, 2196,    0,    0,    0, 2196, 2197, 2197, 2197, 2197,
2732         0,    0, 2197, 2197, 2198, 2198, 2198, 2198,    0, 2198,
2733         0, 2198, 2199, 2199, 2199, 2199,    0,    0, 2199, 2199,
2734      2200, 2200, 2200, 2200,    0, 2200,    0, 2200, 2201, 2201,
2735      2201,    0,    0,    0, 2201, 2202, 2202, 2202, 2202,    0,
2736      2202,    0, 2202, 2203, 2203, 2203, 2203,    0,    0, 2203,
2737      2203, 2204, 2204, 2204, 2204,    0,    0, 2204, 2204, 2205,
2738
2739      2205, 2205,    0,    0,    0, 2205, 2206, 2206, 2206,    0,
2740         0,    0, 2206, 2207, 2207, 2207, 2207,    0,    0, 2207,
2741      2207, 2208, 2208, 2208,    0,    0,    0, 2208, 2209, 2209,
2742      2209, 2209,    0,    0, 2209, 2209, 2210, 2210, 2210,    0,
2743         0,    0, 2210, 2211, 2211, 2211, 2211,    0,    0, 2211,
2744      2211, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
2745      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2214,
2746      2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2215, 2215,
2747      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2216, 2216, 2216,
2748      2216, 2216, 2216, 2216, 2216, 2216, 2217, 2217, 2217, 2217,
2749
2750      2217, 2217, 2217, 2217, 2217, 1969, 1969, 1969, 1969, 1969,
2751      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
2752      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
2753      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
2754      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
2755      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
2756      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
2757      1969, 1969, 1969, 1969, 1969, 1969
2758     } ;
2759
2760 /* Table of booleans, true if rule could match eol. */
2761 static yyconst flex_int32_t yy_rule_can_match_eol[344] =
2762     {   0,
2763 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2764     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2765     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2766     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2767     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
2768     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
2769     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2770     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
2771     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2772     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
2773     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
2774     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
2775     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
2776     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2777     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
2778     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2779     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
2780     0, 0, 1, 0,     };
2781
2782 static yy_state_type yy_last_accepting_state;
2783 static char *yy_last_accepting_cpos;
2784
2785 extern int surf_parse__flex_debug;
2786 int surf_parse__flex_debug = 0;
2787
2788 /* The intent behind this definition is that it'll catch
2789  * any uses of REJECT which flex missed.
2790  */
2791 #define REJECT reject_used_but_not_detected
2792 #define yymore() yymore_used_but_not_detected
2793 #define YY_MORE_ADJ 0
2794 #define YY_RESTORE_YY_MORE_OFFSET
2795 char *surf_parse_text;
2796 /* Validating XML processor for src/surf/simgrid.dtd.
2797  * Generated 2010/10/21 16:55:48.
2798  *
2799  * This program was generated with the FleXML XML processor generator.
2800  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2801  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2802  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
2803  * 
2804  * There are two, intertwined parts to this program, part A and part B.
2805  *
2806  * Part A
2807  * ------
2808  * 
2809  * Some parts, here collectively called "Part A", are found in the 
2810  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2811  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2812  *
2813  * You can redistribute, use, perform, display and/or modify "Part A"
2814  * provided the following two conditions hold:
2815  *
2816  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2817  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2818  *    FITNESS FOR A PARTICULAR PURPOSE.
2819  *
2820  * 2. The program distribution conditions do not in any way affect the
2821  *    distribution conditions of the FleXML system used to generate this
2822  *    file or any version of FleXML derived from that system.
2823  *
2824  * Notice that these are explicit rights granted to you for files
2825  * generated by the FleXML system.  For your rights in connection with
2826  * the FleXML system itself please consult the GNU General Public License.
2827  * 
2828  * Part B
2829  * ------
2830  * 
2831  * The other parts, here collectively called "Part B", and which came 
2832  * from the DTD used by FleXML to generate this program, can be 
2833  * distributed (or not, as the case may be) under the terms of whoever
2834  * wrote them, provided these terms respect and obey the two conditions 
2835  * above under the heading "Part A".
2836  *
2837  * The author of and contributors to FleXML specifically disclaim
2838  * any copyright interest in "Part B", unless "Part B" was written 
2839  * by the author of or contributors to FleXML.
2840  * 
2841  */
2842
2843 /* Version strings. */
2844 const char rcs_surfxml_flexml_skeleton[] =
2845  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2846 const char rcs_surfxml_flexml[] =
2847  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
2848
2849 /* ANSI headers. */
2850 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2851 #include <stdio.h>
2852 #include <string.h>
2853 #include <assert.h>
2854 #include <stdarg.h>
2855 #include <ctype.h>
2856      
2857 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2858 # ifndef __STRICT_ANSI__
2859 #  include <io.h>
2860 #  include <process.h>
2861 # endif
2862 #else
2863 # include <unistd.h>
2864 #endif
2865      
2866 #ifndef FLEXML_INDEXSTACKSIZE
2867 #define FLEXML_INDEXSTACKSIZE 1000
2868 #endif
2869
2870 /* Generated definitions. */
2871 #define FLEXML_yylineno
2872 #ifndef FLEXML_BUFFERSTACKSIZE
2873 #define FLEXML_BUFFERSTACKSIZE 1000000
2874 #endif
2875 #define FLEXML_NEED_BUFFERLIT
2876
2877 /* XML processor api. */
2878 /* FleXML-provided data. */
2879 int surfxml_pcdata_ix;
2880 extern char *surfxml_bufferstack;
2881 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2882 AT_surfxml_random_generator AX_surfxml_random_generator;
2883 #define A_surfxml_random_generator AX_surfxml_random_generator
2884 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
2885 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
2886 AT_surfxml_link_id AX_surfxml_link_id;
2887 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2888 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
2889 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
2890 AT_surfxml_prop_id AX_surfxml_prop_id;
2891 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2892 AT_surfxml_host_id AX_surfxml_host_id;
2893 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2894 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2895 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2896 AT_surfxml_process_host AX_surfxml_process_host;
2897 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2898 AT_surfxml_ASroute_symetrical AX_surfxml_ASroute_symetrical;
2899 #define A_surfxml_ASroute_symetrical AX_surfxml_ASroute_symetrical
2900 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
2901 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
2902 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2903 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2904 AT_surfxml_host_state AX_surfxml_host_state;
2905 #define A_surfxml_host_state AX_surfxml_host_state
2906 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2907 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2908 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2909 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2910 AT_surfxml_prop_value AX_surfxml_prop_value;
2911 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2912 AT_surfxml_AS_id AX_surfxml_AS_id;
2913 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
2914 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
2915 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
2916 AT_surfxml_host_power AX_surfxml_host_power;
2917 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2918 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2919 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2920 AT_surfxml_router_id AX_surfxml_router_id;
2921 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2922 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
2923 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
2924 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2925 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2926 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2927 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2928 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2929 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2930 AT_surfxml_process_function AX_surfxml_process_function;
2931 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2932 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
2933 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
2934 AT_surfxml_route_symetrical AX_surfxml_route_symetrical;
2935 #define A_surfxml_route_symetrical AX_surfxml_route_symetrical
2936 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2937 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2938 AT_surfxml_trace_file AX_surfxml_trace_file;
2939 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2940 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2941 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2942 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
2943 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
2944 AT_surfxml_random_min AX_surfxml_random_min;
2945 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2946 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
2947 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
2948 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
2949 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
2950 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2951 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2952 AT_surfxml_host_availability AX_surfxml_host_availability;
2953 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2954 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2955 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2956 AT_surfxml_argument_value AX_surfxml_argument_value;
2957 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2958 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
2959 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
2960 AT_surfxml_link_state AX_surfxml_link_state;
2961 #define A_surfxml_link_state AX_surfxml_link_state
2962 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
2963 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
2964 AT_surfxml_route_src AX_surfxml_route_src;
2965 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2966 AT_surfxml_AS_routing AX_surfxml_AS_routing;
2967 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
2968 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2969 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2970 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
2971 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
2972 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2973 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2974 AT_surfxml_random_mean AX_surfxml_random_mean;
2975 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2976 AT_surfxml_trace_id AX_surfxml_trace_id;
2977 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2978 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2979 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2980 AT_surfxml_link_latency AX_surfxml_link_latency;
2981 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2982 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
2983 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
2984 AT_surfxml_config_id AX_surfxml_config_id;
2985 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
2986 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
2987 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
2988 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
2989 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
2990 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
2991 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
2992 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2993 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2994 AT_surfxml_host_vivaldi AX_surfxml_host_vivaldi;
2995 #define A_surfxml_host_vivaldi (surfxml_bufferstack + AX_surfxml_host_vivaldi)
2996 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2997 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2998 AT_surfxml_random_id AX_surfxml_random_id;
2999 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3000 AT_surfxml_route_dst AX_surfxml_route_dst;
3001 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3002 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3003 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3004 AT_surfxml_random_max AX_surfxml_random_max;
3005 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3006 AT_surfxml_platform_version AX_surfxml_platform_version;
3007 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3008
3009 /* XML state. */
3010 #ifdef FLEX_DEBUG
3011 # define ENTER(state)   debug_enter(state,#state)
3012 # define LEAVE          debug_leave()
3013 # define SET(state)     debug_set(state,#state)
3014   static void debug_enter(int, const char*);
3015   static void debug_leave(void);
3016   static void debug_set(int, const char*);
3017 #else
3018 # define ENTER(state)   (yy_push_state(state))
3019 # define LEAVE          (yy_pop_state())
3020 # define SET(state)     BEGIN(state)
3021 #endif
3022
3023 /* Generic actions. */
3024 #define SKIP    /*skip*/
3025 #define SUCCEED        CLEANUP; return 0
3026
3027 #define FAIL    return fail
3028 static int fail(const char*, ...);
3029
3030 enum {flexml_max_err_msg_size = 512};
3031 static char flexml_err_msg[flexml_max_err_msg_size];
3032 const char * surfxml_parse_err_msg()
3033 {
3034     return flexml_err_msg;
3035 }
3036 static void reset_surfxml_parse_err_msg()
3037 {
3038     flexml_err_msg[0] = '\0';
3039 }
3040
3041 /* Cleanup */
3042 static void cleanup(void);
3043 #define CLEANUP  cleanup()
3044
3045 /* Text buffer stack handling. */
3046 char *surfxml_bufferstack = NULL;
3047 static int blimit = FLEXML_BUFFERSTACKSIZE;
3048 static int bnext = 1;
3049
3050 static int *indexstack = NULL;
3051 static int ilimit = FLEXML_INDEXSTACKSIZE;
3052 static int inext = 1;
3053
3054 #define BUFFERSET(P)  (P = bnext)
3055 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3056 #define BUFFERDONE    (BUFFERPUTC('\0'))
3057
3058 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3059
3060 /* after this is called, there are at least 2 slots left in the stack */
3061 static int ck_blimit()
3062 {
3063      if (bnext >= blimit) {
3064          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3065          {
3066              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3067              assert(temp);
3068              surfxml_bufferstack = temp;
3069          }
3070      }
3071      return 0;
3072 }
3073
3074 /* after this is called, there are at least 2 slots left in the stack */
3075 static int ck_ilimit()
3076 {
3077      if (inext >= ilimit) {
3078          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3079          {
3080              int *temp = (int *) realloc(indexstack, ilimit);
3081              assert(temp);
3082              indexstack = temp;
3083          }
3084      }
3085      return 0;
3086 }
3087
3088 #ifdef FLEXML_NEED_BUFFERLIT
3089 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3090 {
3091   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3092   assert(s <= e); BUFFERSET(*pp);
3093   while (++s<e) {
3094     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3095     else BUFFERPUTC(*s);
3096   }
3097   BUFFERDONE;
3098 }
3099 #endif
3100
3101 static void pushbuffer(int p)
3102 {
3103     ck_ilimit();
3104     indexstack[inext++] = p;
3105     indexstack[inext++] = bnext;    
3106 }
3107
3108 static int popbuffer(void)
3109 {
3110     assert(inext >= 2);
3111     bnext = indexstack[--inext];
3112     return indexstack[--inext];
3113 }
3114
3115 /* General internal entities are `unput' back onto the input stream... */
3116 #define ENTITYTEXT(T) \
3117   { char *s = (T), *e = s+strlen(s);\
3118     while (--e >= s) { unput(*e); }}
3119
3120 /* Flex standard options. */
3121 #define YY_NO_INPUT 1
3122 /* Flex user-requested options. */
3123 /* XML character classes (currently restricted to ASCII). */
3124 /* "Common syntactic structures." */
3125 /* "Names and Tokens." */
3126 /* Miscellaneous. */
3127 /* Parser states (flex `exclusive start conditions'):
3128  *
3129  * PROLOG       the XML prolog of the document before <?xml...>
3130  * DOCTYPE      the XML prolog of the document after <?xml...>
3131  * EPILOG       after the root element
3132  * INCOMMENT    inside an XML comment <!--....-->
3133  * INPI         inside an XML PI <?...?>
3134  * VALUE1       inside a '...'-delimited literal
3135  * VALUE2       inside a "..."-delimited literal
3136  * CDATA        inside a <![CDATA[...] ]> section.
3137  * ROOT_<tag>   expect root element <tag>
3138  * AL_<tag>     inside the attribute list for <tag>
3139  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3140  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3141  */
3142
3143 /* State names. */
3144 const char* *surfxml_statenames=NULL;
3145
3146 #define INITIAL 0
3147 #define PROLOG 1
3148 #define DOCTYPE 2
3149 #define EPILOG 3
3150 #define INCOMMENT 4
3151 #define INPI 5
3152 #define VALUE1 6
3153 #define VALUE2 7
3154 #define CDATA 8
3155 #define ROOT_surfxml_platform 9
3156 #define AL_surfxml_platform 10
3157 #define S_surfxml_platform 11
3158 #define S_surfxml_platform_1 12
3159 #define S_surfxml_platform_2 13
3160 #define S_surfxml_platform_3 14
3161 #define S_surfxml_platform_4 15
3162 #define S_surfxml_platform_5 16
3163 #define S_surfxml_platform_6 17
3164 #define E_surfxml_platform 18
3165 #define AL_surfxml_trace 19
3166 #define IN_trace 20
3167 #define AL_surfxml_random 21
3168 #define S_surfxml_random 22
3169 #define S_surfxml_random_1 23
3170 #define S_surfxml_random_2 24
3171 #define E_surfxml_random 25
3172 #define AL_surfxml_trace_connect 26
3173 #define E_surfxml_trace_connect 27
3174 #define AL_surfxml_AS 28
3175 #define S_surfxml_AS 29
3176 #define S_surfxml_AS_1 30
3177 #define S_surfxml_AS_2 31
3178 #define S_surfxml_AS_3 32
3179 #define S_surfxml_AS_4 33
3180 #define S_surfxml_AS_5 34
3181 #define S_surfxml_AS_6 35
3182 #define S_surfxml_AS_7 36
3183 #define S_surfxml_AS_8 37
3184 #define S_surfxml_AS_9 38
3185 #define S_surfxml_AS_10 39
3186 #define S_surfxml_AS_11 40
3187 #define S_surfxml_AS_12 41
3188 #define S_surfxml_AS_13 42
3189 #define E_surfxml_AS 43
3190 #define AL_surfxml_host 44
3191 #define S_surfxml_host 45
3192 #define S_surfxml_host_1 46
3193 #define S_surfxml_host_2 47
3194 #define E_surfxml_host 48
3195 #define AL_surfxml_cluster 49
3196 #define E_surfxml_cluster 50
3197 #define AL_surfxml_router 51
3198 #define E_surfxml_router 52
3199 #define AL_surfxml_link 53
3200 #define S_surfxml_link 54
3201 #define S_surfxml_link_1 55
3202 #define S_surfxml_link_2 56
3203 #define E_surfxml_link 57
3204 #define AL_surfxml_route 58
3205 #define S_surfxml_route 59
3206 #define S_surfxml_route_1 60
3207 #define S_surfxml_route_2 61
3208 #define E_surfxml_route 62
3209 #define AL_surfxml_ASroute 63
3210 #define S_surfxml_ASroute 64
3211 #define S_surfxml_ASroute_1 65
3212 #define S_surfxml_ASroute_2 66
3213 #define E_surfxml_ASroute 67
3214 #define AL_surfxml_link_ctn 68
3215 #define E_surfxml_link_ctn 69
3216 #define AL_surfxml_bypassRoute 70
3217 #define S_surfxml_bypassRoute 71
3218 #define S_surfxml_bypassRoute_1 72
3219 #define S_surfxml_bypassRoute_2 73
3220 #define E_surfxml_bypassRoute 74
3221 #define AL_surfxml_process 75
3222 #define S_surfxml_process 76
3223 #define S_surfxml_process_1 77
3224 #define S_surfxml_process_2 78
3225 #define E_surfxml_process 79
3226 #define AL_surfxml_argument 80
3227 #define E_surfxml_argument 81
3228 #define AL_surfxml_config 82
3229 #define S_surfxml_config 83
3230 #define S_surfxml_config_1 84
3231 #define S_surfxml_config_2 85
3232 #define E_surfxml_config 86
3233 #define AL_surfxml_prop 87
3234 #define E_surfxml_prop 88
3235 #define IMPOSSIBLE 89
3236
3237 #ifndef YY_NO_UNISTD_H
3238 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3239  * down here because we want the user's section 1 to have been scanned first.
3240  * The user has a chance to override it with an option.
3241  */
3242 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3243 #  ifndef __STRICT_ANSI__
3244 #    include <io.h>
3245 #    include <process.h>
3246 #  endif
3247 #else
3248 #  include <unistd.h>
3249 #endif
3250 #endif
3251
3252 #ifndef YY_EXTRA_TYPE
3253 #define YY_EXTRA_TYPE void *
3254 #endif
3255
3256 static int yy_init_globals (void );
3257
3258 /* Accessor methods to globals.
3259    These are made visible to non-reentrant scanners for convenience. */
3260
3261 int surf_parse_lex_destroy (void );
3262
3263 int surf_parse_get_debug (void );
3264
3265 void surf_parse_set_debug (int debug_flag  );
3266
3267 YY_EXTRA_TYPE surf_parse_get_extra (void );
3268
3269 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
3270
3271 FILE *surf_parse_get_in (void );
3272
3273 void surf_parse_set_in  (FILE * in_str  );
3274
3275 FILE *surf_parse_get_out (void );
3276
3277 void surf_parse_set_out  (FILE * out_str  );
3278
3279 int surf_parse_get_leng (void );
3280
3281 char *surf_parse_get_text (void );
3282
3283 int surf_parse_get_lineno (void );
3284
3285 void surf_parse_set_lineno (int line_number  );
3286
3287 /* Macros after this point can all be overridden by user definitions in
3288  * section 1.
3289  */
3290
3291 #ifndef YY_SKIP_YYWRAP
3292 #ifdef __cplusplus
3293 extern "C" int surf_parse_wrap (void );
3294 #else
3295 extern int surf_parse_wrap (void );
3296 #endif
3297 #endif
3298
3299 #ifndef yytext_ptr
3300 static void yy_flex_strncpy (char *,yyconst char *,int );
3301 #endif
3302
3303 #ifdef YY_NEED_STRLEN
3304 static int yy_flex_strlen (yyconst char * );
3305 #endif
3306
3307 #ifndef YY_NO_INPUT
3308
3309 #ifdef __cplusplus
3310 static int yyinput (void );
3311 #else
3312 static int input (void );
3313 #endif
3314
3315 #endif
3316
3317         static int yy_start_stack_ptr = 0;
3318         static int yy_start_stack_depth = 0;
3319         static int *yy_start_stack = NULL;
3320     
3321     static void yy_push_state (int new_state );
3322     
3323     static void yy_pop_state (void );
3324     
3325 /* Amount of stuff to slurp up with each read. */
3326 #ifndef YY_READ_BUF_SIZE
3327 #ifdef __ia64__
3328 /* On IA-64, the buffer size is 16k, not 8k */
3329 #define YY_READ_BUF_SIZE 16384
3330 #else
3331 #define YY_READ_BUF_SIZE 8192
3332 #endif /* __ia64__ */
3333 #endif
3334
3335 /* Copy whatever the last rule matched to the standard output. */
3336 #ifndef ECHO
3337 /* This used to be an fputs(), but since the string might contain NUL's,
3338  * we now use fwrite().
3339  */
3340 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3341 #endif
3342
3343 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3344  * is returned in "result".
3345  */
3346 #ifndef YY_INPUT
3347 #define YY_INPUT(buf,result,max_size) \
3348         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3349                 { \
3350                 int c = '*'; \
3351                 size_t n; \
3352                 for ( n = 0; n < max_size && \
3353                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3354                         buf[n] = (char) c; \
3355                 if ( c == '\n' ) \
3356                         buf[n++] = (char) c; \
3357                 if ( c == EOF && ferror( surf_parse_in ) ) \
3358                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3359                 result = n; \
3360                 } \
3361         else \
3362                 { \
3363                 errno=0; \
3364                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3365                         { \
3366                         if( errno != EINTR) \
3367                                 { \
3368                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3369                                 break; \
3370                                 } \
3371                         errno=0; \
3372                         clearerr(surf_parse_in); \
3373                         } \
3374                 }\
3375 \
3376
3377 #endif
3378
3379 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3380  * we don't want an extra ';' after the "return" because that will cause
3381  * some compilers to complain about unreachable statements.
3382  */
3383 #ifndef yyterminate
3384 #define yyterminate() return YY_NULL
3385 #endif
3386
3387 /* Number of entries by which start-condition stack grows. */
3388 #ifndef YY_START_STACK_INCR
3389 #define YY_START_STACK_INCR 25
3390 #endif
3391
3392 /* Report a fatal error. */
3393 #ifndef YY_FATAL_ERROR
3394 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3395 #endif
3396
3397 /* end tables serialization structures and prototypes */
3398
3399 /* Default declaration of generated scanner - a define so the user can
3400  * easily add parameters.
3401  */
3402 #ifndef YY_DECL
3403 #define YY_DECL_IS_OURS 1
3404
3405 extern int surf_parse_lex (void);
3406
3407 #define YY_DECL int surf_parse_lex (void)
3408 #endif /* !YY_DECL */
3409
3410 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3411  * have been set up.
3412  */
3413 #ifndef YY_USER_ACTION
3414 #define YY_USER_ACTION
3415 #endif
3416
3417 /* Code executed at the end of each rule. */
3418 #ifndef YY_BREAK
3419 #define YY_BREAK break;
3420 #endif
3421
3422 #define YY_RULE_SETUP \
3423         YY_USER_ACTION
3424
3425 /** The main scanner function which does all the work.
3426  */
3427 YY_DECL
3428 {
3429         register yy_state_type yy_current_state;
3430         register char *yy_cp, *yy_bp;
3431         register int yy_act;
3432     
3433  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3434  SET(PROLOG);
3435  reset_surfxml_parse_err_msg();
3436  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3437  assert(surfxml_bufferstack);
3438  #ifdef FLEX_DEBUG
3439  {
3440      int i;
3441      for (i = 0; i < blimit; i++) {
3442          surfxml_bufferstack[i] = '\377';
3443      }
3444  }
3445  #endif
3446  surfxml_bufferstack[0] = '\0';
3447  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3448  assert(indexstack);
3449  indexstack[0] = 0;
3450
3451   /* FleXML_init */
3452   bnext = inext = 1;
3453   surfxml_bufferliteral('\0', &bnext, "0.0");
3454   surfxml_bufferliteral('\0', &bnext, "1.0");
3455   surfxml_bufferliteral('\0', &bnext, "0 0 0");
3456   surfxml_bufferliteral('\0', &bnext, "0.0");
3457   surfxml_bufferliteral('\0', &bnext, "-1.0");
3458   surfxml_bufferliteral('\0', &bnext, "-1.0");
3459   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3460   surfxml_statenames[PROLOG] = NULL;
3461   surfxml_statenames[DOCTYPE] = NULL;
3462   surfxml_statenames[EPILOG] = NULL;
3463   surfxml_statenames[INCOMMENT] = NULL;
3464   surfxml_statenames[INPI] = NULL;
3465   surfxml_statenames[VALUE1] = NULL;
3466   surfxml_statenames[VALUE2] = NULL;
3467   surfxml_statenames[CDATA] = NULL;
3468   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3469   surfxml_statenames[AL_surfxml_platform] = NULL;
3470   surfxml_statenames[S_surfxml_platform] = "platform";
3471   surfxml_statenames[S_surfxml_platform_1] = "platform";
3472   surfxml_statenames[S_surfxml_platform_2] = "platform";
3473   surfxml_statenames[S_surfxml_platform_3] = "platform";
3474   surfxml_statenames[S_surfxml_platform_4] = "platform";
3475   surfxml_statenames[S_surfxml_platform_5] = "platform";
3476   surfxml_statenames[S_surfxml_platform_6] = "platform";
3477   surfxml_statenames[E_surfxml_platform] = "platform";
3478   surfxml_statenames[AL_surfxml_trace] = NULL;
3479   surfxml_statenames[IN_trace] = "trace";
3480   surfxml_statenames[AL_surfxml_random] = NULL;
3481   surfxml_statenames[S_surfxml_random] = "random";
3482   surfxml_statenames[S_surfxml_random_1] = "random";
3483   surfxml_statenames[S_surfxml_random_2] = "random";
3484   surfxml_statenames[E_surfxml_random] = "random";
3485   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
3486   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
3487   surfxml_statenames[AL_surfxml_AS] = NULL;
3488   surfxml_statenames[S_surfxml_AS] = "AS";
3489   surfxml_statenames[S_surfxml_AS_1] = "AS";
3490   surfxml_statenames[S_surfxml_AS_2] = "AS";
3491   surfxml_statenames[S_surfxml_AS_3] = "AS";
3492   surfxml_statenames[S_surfxml_AS_4] = "AS";
3493   surfxml_statenames[S_surfxml_AS_5] = "AS";
3494   surfxml_statenames[S_surfxml_AS_6] = "AS";
3495   surfxml_statenames[S_surfxml_AS_7] = "AS";
3496   surfxml_statenames[S_surfxml_AS_8] = "AS";
3497   surfxml_statenames[S_surfxml_AS_9] = "AS";
3498   surfxml_statenames[S_surfxml_AS_10] = "AS";
3499   surfxml_statenames[S_surfxml_AS_11] = "AS";
3500   surfxml_statenames[S_surfxml_AS_12] = "AS";
3501   surfxml_statenames[S_surfxml_AS_13] = "AS";
3502   surfxml_statenames[E_surfxml_AS] = "AS";
3503   surfxml_statenames[AL_surfxml_host] = NULL;
3504   surfxml_statenames[S_surfxml_host] = "host";
3505   surfxml_statenames[S_surfxml_host_1] = "host";
3506   surfxml_statenames[S_surfxml_host_2] = "host";
3507   surfxml_statenames[E_surfxml_host] = "host";
3508   surfxml_statenames[AL_surfxml_cluster] = NULL;
3509   surfxml_statenames[E_surfxml_cluster] = "cluster";
3510   surfxml_statenames[AL_surfxml_router] = NULL;
3511   surfxml_statenames[E_surfxml_router] = "router";
3512   surfxml_statenames[AL_surfxml_link] = NULL;
3513   surfxml_statenames[S_surfxml_link] = "link";
3514   surfxml_statenames[S_surfxml_link_1] = "link";
3515   surfxml_statenames[S_surfxml_link_2] = "link";
3516   surfxml_statenames[E_surfxml_link] = "link";
3517   surfxml_statenames[AL_surfxml_route] = NULL;
3518   surfxml_statenames[S_surfxml_route] = "route";
3519   surfxml_statenames[S_surfxml_route_1] = "route";
3520   surfxml_statenames[S_surfxml_route_2] = "route";
3521   surfxml_statenames[E_surfxml_route] = "route";
3522   surfxml_statenames[AL_surfxml_ASroute] = NULL;
3523   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
3524   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
3525   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
3526   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
3527   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
3528   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
3529   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
3530   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
3531   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
3532   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
3533   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
3534   surfxml_statenames[AL_surfxml_process] = NULL;
3535   surfxml_statenames[S_surfxml_process] = "process";
3536   surfxml_statenames[S_surfxml_process_1] = "process";
3537   surfxml_statenames[S_surfxml_process_2] = "process";
3538   surfxml_statenames[E_surfxml_process] = "process";
3539   surfxml_statenames[AL_surfxml_argument] = NULL;
3540   surfxml_statenames[E_surfxml_argument] = "argument";
3541   surfxml_statenames[AL_surfxml_config] = NULL;
3542   surfxml_statenames[S_surfxml_config] = "config";
3543   surfxml_statenames[S_surfxml_config_1] = "config";
3544   surfxml_statenames[S_surfxml_config_2] = "config";
3545   surfxml_statenames[E_surfxml_config] = "config";
3546   surfxml_statenames[AL_surfxml_prop] = NULL;
3547   surfxml_statenames[E_surfxml_prop] = "prop";
3548   }
3549
3550  /* COMMENTS and PIs: handled uniformly for efficiency. */
3551
3552         if ( !(yy_init) )
3553                 {
3554                 (yy_init) = 1;
3555
3556 #ifdef YY_USER_INIT
3557                 YY_USER_INIT;
3558 #endif
3559
3560                 if ( ! (yy_start) )
3561                         (yy_start) = 1; /* first start state */
3562
3563                 if ( ! surf_parse_in )
3564                         surf_parse_in = stdin;
3565
3566                 if ( ! surf_parse_out )
3567                         surf_parse_out = stdout;
3568
3569                 if ( ! YY_CURRENT_BUFFER ) {
3570                         surf_parse_ensure_buffer_stack ();
3571                         YY_CURRENT_BUFFER_LVALUE =
3572                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3573                 }
3574
3575                 surf_parse__load_buffer_state( );
3576                 }
3577
3578         while ( 1 )             /* loops until end-of-file is reached */
3579                 {