Logo AND Algorithmique Numérique Distribuée

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