Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
98c7e95940a2043d38e3634d126ce0b0134204b8
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #define  YY_INT_ALIGNED short int
3
4 /* A lexical scanner generated by flex */
5
6 #define yy_create_buffer surf_parse__create_buffer
7 #define yy_delete_buffer surf_parse__delete_buffer
8 #define yy_scan_buffer surf_parse__scan_buffer
9 #define yy_scan_string surf_parse__scan_string
10 #define yy_scan_bytes surf_parse__scan_bytes
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 yypush_buffer_state surf_parse_push_buffer_state
16 #define yypop_buffer_state surf_parse_pop_buffer_state
17 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
18 #define yy_flex_debug surf_parse__flex_debug
19 #define yyin surf_parse_in
20 #define yyleng surf_parse_leng
21 #define yylex surf_parse_lex
22 #define yylineno surf_parse_lineno
23 #define yyout surf_parse_out
24 #define yyrestart surf_parse_restart
25 #define yytext surf_parse_text
26 #define yywrap surf_parse_wrap
27 #define yyalloc surf_parse_alloc
28 #define yyrealloc surf_parse_realloc
29 #define yyfree surf_parse_free
30
31 #define FLEX_SCANNER
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 6
34 #define YY_FLEX_SUBMINOR_VERSION 4
35 #if YY_FLEX_SUBMINOR_VERSION > 0
36 #define FLEX_BETA
37 #endif
38
39 #ifdef yy_create_buffer
40 #define surf_parse__create_buffer_ALREADY_DEFINED
41 #else
42 #define yy_create_buffer surf_parse__create_buffer
43 #endif
44
45 #ifdef yy_delete_buffer
46 #define surf_parse__delete_buffer_ALREADY_DEFINED
47 #else
48 #define yy_delete_buffer surf_parse__delete_buffer
49 #endif
50
51 #ifdef yy_scan_buffer
52 #define surf_parse__scan_buffer_ALREADY_DEFINED
53 #else
54 #define yy_scan_buffer surf_parse__scan_buffer
55 #endif
56
57 #ifdef yy_scan_string
58 #define surf_parse__scan_string_ALREADY_DEFINED
59 #else
60 #define yy_scan_string surf_parse__scan_string
61 #endif
62
63 #ifdef yy_scan_bytes
64 #define surf_parse__scan_bytes_ALREADY_DEFINED
65 #else
66 #define yy_scan_bytes surf_parse__scan_bytes
67 #endif
68
69 #ifdef yy_init_buffer
70 #define surf_parse__init_buffer_ALREADY_DEFINED
71 #else
72 #define yy_init_buffer surf_parse__init_buffer
73 #endif
74
75 #ifdef yy_flush_buffer
76 #define surf_parse__flush_buffer_ALREADY_DEFINED
77 #else
78 #define yy_flush_buffer surf_parse__flush_buffer
79 #endif
80
81 #ifdef yy_load_buffer_state
82 #define surf_parse__load_buffer_state_ALREADY_DEFINED
83 #else
84 #define yy_load_buffer_state surf_parse__load_buffer_state
85 #endif
86
87 #ifdef yy_switch_to_buffer
88 #define surf_parse__switch_to_buffer_ALREADY_DEFINED
89 #else
90 #define yy_switch_to_buffer surf_parse__switch_to_buffer
91 #endif
92
93 #ifdef yypush_buffer_state
94 #define surf_parse_push_buffer_state_ALREADY_DEFINED
95 #else
96 #define yypush_buffer_state surf_parse_push_buffer_state
97 #endif
98
99 #ifdef yypop_buffer_state
100 #define surf_parse_pop_buffer_state_ALREADY_DEFINED
101 #else
102 #define yypop_buffer_state surf_parse_pop_buffer_state
103 #endif
104
105 #ifdef yyensure_buffer_stack
106 #define surf_parse_ensure_buffer_stack_ALREADY_DEFINED
107 #else
108 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
109 #endif
110
111 #ifdef yylex
112 #define surf_parse_lex_ALREADY_DEFINED
113 #else
114 #define yylex surf_parse_lex
115 #endif
116
117 #ifdef yyrestart
118 #define surf_parse_restart_ALREADY_DEFINED
119 #else
120 #define yyrestart surf_parse_restart
121 #endif
122
123 #ifdef yylex_init
124 #define surf_parse_lex_init_ALREADY_DEFINED
125 #else
126 #define yylex_init surf_parse_lex_init
127 #endif
128
129 #ifdef yylex_init_extra
130 #define surf_parse_lex_init_extra_ALREADY_DEFINED
131 #else
132 #define yylex_init_extra surf_parse_lex_init_extra
133 #endif
134
135 #ifdef yylex_destroy
136 #define surf_parse_lex_destroy_ALREADY_DEFINED
137 #else
138 #define yylex_destroy surf_parse_lex_destroy
139 #endif
140
141 #ifdef yyget_debug
142 #define surf_parse_get_debug_ALREADY_DEFINED
143 #else
144 #define yyget_debug surf_parse_get_debug
145 #endif
146
147 #ifdef yyset_debug
148 #define surf_parse_set_debug_ALREADY_DEFINED
149 #else
150 #define yyset_debug surf_parse_set_debug
151 #endif
152
153 #ifdef yyget_extra
154 #define surf_parse_get_extra_ALREADY_DEFINED
155 #else
156 #define yyget_extra surf_parse_get_extra
157 #endif
158
159 #ifdef yyset_extra
160 #define surf_parse_set_extra_ALREADY_DEFINED
161 #else
162 #define yyset_extra surf_parse_set_extra
163 #endif
164
165 #ifdef yyget_in
166 #define surf_parse_get_in_ALREADY_DEFINED
167 #else
168 #define yyget_in surf_parse_get_in
169 #endif
170
171 #ifdef yyset_in
172 #define surf_parse_set_in_ALREADY_DEFINED
173 #else
174 #define yyset_in surf_parse_set_in
175 #endif
176
177 #ifdef yyget_out
178 #define surf_parse_get_out_ALREADY_DEFINED
179 #else
180 #define yyget_out surf_parse_get_out
181 #endif
182
183 #ifdef yyset_out
184 #define surf_parse_set_out_ALREADY_DEFINED
185 #else
186 #define yyset_out surf_parse_set_out
187 #endif
188
189 #ifdef yyget_leng
190 #define surf_parse_get_leng_ALREADY_DEFINED
191 #else
192 #define yyget_leng surf_parse_get_leng
193 #endif
194
195 #ifdef yyget_text
196 #define surf_parse_get_text_ALREADY_DEFINED
197 #else
198 #define yyget_text surf_parse_get_text
199 #endif
200
201 #ifdef yyget_lineno
202 #define surf_parse_get_lineno_ALREADY_DEFINED
203 #else
204 #define yyget_lineno surf_parse_get_lineno
205 #endif
206
207 #ifdef yyset_lineno
208 #define surf_parse_set_lineno_ALREADY_DEFINED
209 #else
210 #define yyset_lineno surf_parse_set_lineno
211 #endif
212
213 #ifdef yywrap
214 #define surf_parse_wrap_ALREADY_DEFINED
215 #else
216 #define yywrap surf_parse_wrap
217 #endif
218
219 #ifdef yyalloc
220 #define surf_parse_alloc_ALREADY_DEFINED
221 #else
222 #define yyalloc surf_parse_alloc
223 #endif
224
225 #ifdef yyrealloc
226 #define surf_parse_realloc_ALREADY_DEFINED
227 #else
228 #define yyrealloc surf_parse_realloc
229 #endif
230
231 #ifdef yyfree
232 #define surf_parse_free_ALREADY_DEFINED
233 #else
234 #define yyfree surf_parse_free
235 #endif
236
237 #ifdef yytext
238 #define surf_parse_text_ALREADY_DEFINED
239 #else
240 #define yytext surf_parse_text
241 #endif
242
243 #ifdef yyleng
244 #define surf_parse_leng_ALREADY_DEFINED
245 #else
246 #define yyleng surf_parse_leng
247 #endif
248
249 #ifdef yyin
250 #define surf_parse_in_ALREADY_DEFINED
251 #else
252 #define yyin surf_parse_in
253 #endif
254
255 #ifdef yyout
256 #define surf_parse_out_ALREADY_DEFINED
257 #else
258 #define yyout surf_parse_out
259 #endif
260
261 #ifdef yy_flex_debug
262 #define surf_parse__flex_debug_ALREADY_DEFINED
263 #else
264 #define yy_flex_debug surf_parse__flex_debug
265 #endif
266
267 #ifdef yylineno
268 #define surf_parse_lineno_ALREADY_DEFINED
269 #else
270 #define yylineno surf_parse_lineno
271 #endif
272
273 /* First, we deal with  platform-specific or compiler-specific issues. */
274
275 /* begin standard C headers. */
276 #include <stdio.h>
277 #include <string.h>
278 #include <errno.h>
279 #include <stdlib.h>
280
281 /* end standard C headers. */
282
283 /* flex integer type definitions */
284
285 #ifndef FLEXINT_H
286 #define FLEXINT_H
287
288 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
289
290 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
291
292 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
293  * if you want the limit (max/min) macros for int types. 
294  */
295 #ifndef __STDC_LIMIT_MACROS
296 #define __STDC_LIMIT_MACROS 1
297 #endif
298
299 #include <inttypes.h>
300 typedef int8_t flex_int8_t;
301 typedef uint8_t flex_uint8_t;
302 typedef int16_t flex_int16_t;
303 typedef uint16_t flex_uint16_t;
304 typedef int32_t flex_int32_t;
305 typedef uint32_t flex_uint32_t;
306 #else
307 typedef signed char flex_int8_t;
308 typedef short int flex_int16_t;
309 typedef int flex_int32_t;
310 typedef unsigned char flex_uint8_t; 
311 typedef unsigned short int flex_uint16_t;
312 typedef unsigned int flex_uint32_t;
313
314 /* Limits of integral types. */
315 #ifndef INT8_MIN
316 #define INT8_MIN               (-128)
317 #endif
318 #ifndef INT16_MIN
319 #define INT16_MIN              (-32767-1)
320 #endif
321 #ifndef INT32_MIN
322 #define INT32_MIN              (-2147483647-1)
323 #endif
324 #ifndef INT8_MAX
325 #define INT8_MAX               (127)
326 #endif
327 #ifndef INT16_MAX
328 #define INT16_MAX              (32767)
329 #endif
330 #ifndef INT32_MAX
331 #define INT32_MAX              (2147483647)
332 #endif
333 #ifndef UINT8_MAX
334 #define UINT8_MAX              (255U)
335 #endif
336 #ifndef UINT16_MAX
337 #define UINT16_MAX             (65535U)
338 #endif
339 #ifndef UINT32_MAX
340 #define UINT32_MAX             (4294967295U)
341 #endif
342
343 #ifndef SIZE_MAX
344 #define SIZE_MAX               (~(size_t)0)
345 #endif
346
347 #endif /* ! C99 */
348
349 #endif /* ! FLEXINT_H */
350
351 /* begin standard C++ headers. */
352
353 /* TODO: this is always defined, so inline it */
354 #define yyconst const
355
356 #if defined(__GNUC__) && __GNUC__ >= 3
357 #define yynoreturn __attribute__((__noreturn__))
358 #else
359 #define yynoreturn
360 #endif
361
362 /* Returned upon end-of-file. */
363 #define YY_NULL 0
364
365 /* Promotes a possibly negative, possibly signed char to an
366  *   integer in range [0..255] for use as an array index.
367  */
368 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
369
370 /* Enter a start condition.  This macro really ought to take a parameter,
371  * but we do it the disgusting crufty way forced on us by the ()-less
372  * definition of BEGIN.
373  */
374 #define BEGIN (yy_start) = 1 + 2 *
375 /* Translate the current start state into a value that can be later handed
376  * to BEGIN to return to the state.  The YYSTATE alias is for lex
377  * compatibility.
378  */
379 #define YY_START (((yy_start) - 1) / 2)
380 #define YYSTATE YY_START
381 /* Action number for EOF rule of a given start state. */
382 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
383 /* Special action meaning "start processing a new file". */
384 #define YY_NEW_FILE yyrestart( yyin  )
385 #define YY_END_OF_BUFFER_CHAR 0
386
387 /* Size of default input buffer. */
388 #ifndef YY_BUF_SIZE
389 #ifdef __ia64__
390 /* On IA-64, the buffer size is 16k, not 8k.
391  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
392  * Ditto for the __ia64__ case accordingly.
393  */
394 #define YY_BUF_SIZE 32768
395 #else
396 #define YY_BUF_SIZE 16384
397 #endif /* __ia64__ */
398 #endif
399
400 /* The state buf must be large enough to hold one state per character in the main buffer.
401  */
402 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
403
404 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
405 #define YY_TYPEDEF_YY_BUFFER_STATE
406 typedef struct yy_buffer_state *YY_BUFFER_STATE;
407 #endif
408
409 #ifndef YY_TYPEDEF_YY_SIZE_T
410 #define YY_TYPEDEF_YY_SIZE_T
411 typedef size_t yy_size_t;
412 #endif
413
414 extern int yyleng;
415
416 extern FILE *yyin, *yyout;
417
418 #define EOB_ACT_CONTINUE_SCAN 0
419 #define EOB_ACT_END_OF_FILE 1
420 #define EOB_ACT_LAST_MATCH 2
421     
422     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
423      *       access to the local variable yy_act. Since yyless() is a macro, it would break
424      *       existing scanners that call yyless() from OUTSIDE yylex.
425      *       One obvious solution it to make yy_act a global. I tried that, and saw
426      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
427      *       normally declared as a register variable-- so it is not worth it.
428      */
429     #define  YY_LESS_LINENO(n) \
430             do { \
431                 int yyl;\
432                 for ( yyl = n; yyl < yyleng; ++yyl )\
433                     if ( yytext[yyl] == '\n' )\
434                         --yylineno;\
435             }while(0)
436     #define YY_LINENO_REWIND_TO(dst) \
437             do {\
438                 const char *p;\
439                 for ( p = yy_cp-1; p >= (dst); --p)\
440                     if ( *p == '\n' )\
441                         --yylineno;\
442             }while(0)
443     
444 /* Return all but the first "n" matched characters back to the input stream. */
445 #define yyless(n) \
446         do \
447                 { \
448                 /* Undo effects of setting up yytext. */ \
449         int yyless_macro_arg = (n); \
450         YY_LESS_LINENO(yyless_macro_arg);\
451                 *yy_cp = (yy_hold_char); \
452                 YY_RESTORE_YY_MORE_OFFSET \
453                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
454                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
455                 } \
456         while ( 0 )
457 #define unput(c) yyunput( c, (yytext_ptr)  )
458
459 #ifndef YY_STRUCT_YY_BUFFER_STATE
460 #define YY_STRUCT_YY_BUFFER_STATE
461 struct yy_buffer_state
462         {
463         FILE *yy_input_file;
464
465         char *yy_ch_buf;                /* input buffer */
466         char *yy_buf_pos;               /* current position in input buffer */
467
468         /* Size of input buffer in bytes, not including room for EOB
469          * characters.
470          */
471         int yy_buf_size;
472
473         /* Number of characters read into yy_ch_buf, not including EOB
474          * characters.
475          */
476         int yy_n_chars;
477
478         /* Whether we "own" the buffer - i.e., we know we created it,
479          * and can realloc() it to grow it, and should free() it to
480          * delete it.
481          */
482         int yy_is_our_buffer;
483
484         /* Whether this is an "interactive" input source; if so, and
485          * if we're using stdio for input, then we want to use getc()
486          * instead of fread(), to make sure we stop fetching input after
487          * each newline.
488          */
489         int yy_is_interactive;
490
491         /* Whether we're considered to be at the beginning of a line.
492          * If so, '^' rules will be active on the next match, otherwise
493          * not.
494          */
495         int yy_at_bol;
496
497     int yy_bs_lineno; /**< The line count. */
498     int yy_bs_column; /**< The column count. */
499
500         /* Whether to try to fill the input buffer when we reach the
501          * end of it.
502          */
503         int yy_fill_buffer;
504
505         int yy_buffer_status;
506
507 #define YY_BUFFER_NEW 0
508 #define YY_BUFFER_NORMAL 1
509         /* When an EOF's been seen but there's still some text to process
510          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
511          * shouldn't try reading from the input source any more.  We might
512          * still have a bunch of tokens to match, though, because of
513          * possible backing-up.
514          *
515          * When we actually see the EOF, we change the status to "new"
516          * (via yyrestart()), so that the user can continue scanning by
517          * just pointing yyin at a new input file.
518          */
519 #define YY_BUFFER_EOF_PENDING 2
520
521         };
522 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
523
524 /* Stack of input buffers. */
525 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
526 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
527 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
528
529 /* We provide macros for accessing buffer states in case in the
530  * future we want to put the buffer states in a more general
531  * "scanner state".
532  *
533  * Returns the top of the stack, or NULL.
534  */
535 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
536                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
537                           : NULL)
538 /* Same as previous macro, but useful when we know that the buffer stack is not
539  * NULL or when we need an lvalue. For internal use only.
540  */
541 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
542
543 /* yy_hold_char holds the character lost when yytext is formed. */
544 static char yy_hold_char;
545 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
546 int yyleng;
547
548 /* Points to current character in buffer. */
549 static char *yy_c_buf_p = NULL;
550 static int yy_init = 0;         /* whether we need to initialize */
551 static int yy_start = 0;        /* start state number */
552
553 /* Flag which is used to allow yywrap()'s to do buffer switches
554  * instead of setting up a fresh yyin.  A bit of a hack ...
555  */
556 static int yy_did_buffer_switch_on_eof;
557
558 void yyrestart ( FILE *input_file  );
559 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
560 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
561 void yy_delete_buffer ( YY_BUFFER_STATE b  );
562 void yy_flush_buffer ( YY_BUFFER_STATE b  );
563 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
564 void yypop_buffer_state ( void );
565
566 static void yyensure_buffer_stack ( void );
567 static void yy_load_buffer_state ( void );
568 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
569 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
570
571 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
572 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
573 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
574
575 void *yyalloc ( yy_size_t  );
576 void *yyrealloc ( void *, yy_size_t  );
577 void yyfree ( void *  );
578
579 #define yy_new_buffer yy_create_buffer
580 #define yy_set_interactive(is_interactive) \
581         { \
582         if ( ! YY_CURRENT_BUFFER ){ \
583         yyensure_buffer_stack (); \
584                 YY_CURRENT_BUFFER_LVALUE =    \
585             yy_create_buffer( yyin, YY_BUF_SIZE ); \
586         } \
587         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
588         }
589 #define yy_set_bol(at_bol) \
590         { \
591         if ( ! YY_CURRENT_BUFFER ){\
592         yyensure_buffer_stack (); \
593                 YY_CURRENT_BUFFER_LVALUE =    \
594             yy_create_buffer( yyin, YY_BUF_SIZE ); \
595         } \
596         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
597         }
598 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
599
600 /* Begin user sect3 */
601
602 #define surf_parse_wrap() (/*CONSTCOND*/1)
603 #define YY_SKIP_YYWRAP
604 typedef flex_uint8_t YY_CHAR;
605
606 FILE *yyin = NULL, *yyout = NULL;
607
608 typedef int yy_state_type;
609
610 extern int yylineno;
611 int yylineno = 1;
612
613 extern char *yytext;
614 #ifdef yytext_ptr
615 #undef yytext_ptr
616 #endif
617 #define yytext_ptr yytext
618
619 static yy_state_type yy_get_previous_state ( void );
620 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
621 static int yy_get_next_buffer ( void );
622 static void yynoreturn yy_fatal_error ( const char* msg  );
623
624 /* Done after the current pattern has been matched and before the
625  * corresponding action - sets up yytext.
626  */
627 #define YY_DO_BEFORE_ACTION \
628         (yytext_ptr) = yy_bp; \
629         yyleng = (int) (yy_cp - yy_bp); \
630         (yy_hold_char) = *yy_cp; \
631         *yy_cp = '\0'; \
632         (yy_c_buf_p) = yy_cp;
633 #define YY_NUM_RULES 664
634 #define YY_END_OF_BUFFER 665
635 /* This struct is not used in this scanner,
636    but its presence is necessary. */
637 struct yy_trans_info
638         {
639         flex_int32_t yy_verify;
640         flex_int32_t yy_nxt;
641         };
642 static const flex_int16_t yy_accept[4088] =
643     {   0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
653         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654
655         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
670         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
671         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679         0,    0,  665,  663,   16,   10,   10,   16,   16,  643,
680        10,  643,    5,    6,    5,    8,    9,    8,  659,  651,
681       652,  660,  657,  660,  658,  662,  651,  652,  662,   43,
682        10,   43,   43,   43,   41,   43,   43,   47,   10,   47,
683        47,  663,   47,  663,   47,   47,  663,  663,   47,  663,
684        47,  663,   47,   68,   10,   68,   68,   68,   66,   68,
685        68,   68,   72,   10,   72,  663,   72,   89,   10,   89,
686        89,   89,   87,   89,   89,   89,   89,   89,   93,   10,
687
688        93,  663,   93,  100,   10,  100,  100,  100,   98,  100,
689       104,   10,  104,  115,   10,  115,  115,  115,  113,  115,
690       115,  115,  119,   10,  119,  132,   10,  132,  132,  132,
691       130,  132,  132,  132,  136,   10,  136,  136,  145,   10,
692       145,  145,  145,  143,  145,  145,  149,   10,  149,  149,
693       162,   10,  162,  162,  162,  160,  162,  162,  162,  166,
694        10,  166,  166,  185,   10,  185,  185,  185,  183,  185,
695       185,  185,  185,  185,  185,  189,   10,  189,  244,   10,
696       244,  244,  244,  242,  244,  244,  244,  244,  244,  244,
697       244,  244,  248,   10,  248,  248,  255,   10,  255,  255,
698
699       255,  253,  255,  259,   10,  259,  259,  278,   10,  278,
700       278,  278,  276,  278,  278,  278,  278,  278,  282,   10,
701       282,  663,  282,  293,   10,  293,  293,  293,  291,  293,
702       293,  293,  297,   10,  297,  304,   10,  304,  304,  304,
703       302,  304,  308,   10,  308,  663,  308,  333,   10,  333,
704       333,  333,  331,  333,  333,  333,  333,  337,   10,  337,
705       337,  350,   10,  350,  350,  350,  348,  350,  350,  354,
706        10,  354,  363,   10,  363,  363,  363,  361,  363,  363,
707       367,   10,  367,  376,   10,  376,  376,  376,  374,  376,
708       376,  380,   10,  380,  401,   10,  401,  401,  401,  399,
709
710       401,  401,  401,  401,  401,  401,  405,   10,  405,  663,
711       412,   10,  412,  412,  412,  410,  412,  416,   10,  416,
712       416,  663,  416,  663,  416,  433,   10,  433,  433,  433,
713       431,  433,  433,  433,  433,  433,  437,   10,  437,  437,
714       446,   10,  446,  446,  446,  444,  446,  446,  450,   10,
715       450,  477,   10,  477,  477,  477,  475,  477,  477,  477,
716       477,  477,  481,   10,  481,  498,   10,  498,  498,  498,
717       496,  498,  498,  502,   10,  502,  502,  511,   10,  511,
718       511,  511,  509,  511,  511,  515,   10,  515,  528,   10,
719       528,  528,  528,  526,  528,  528,  528,  528,  532,   10,
720
721       532,  532,  545,   10,  545,  545,  545,  543,  545,  545,
722       545,  545,  549,   10,  549,  663,  549,  560,   10,  560,
723       560,  560,  558,  560,  560,  560,  660,  659,  582,   10,
724       582,  582,  582,  580,  582,  582,  582,  586,   10,  586,
725       613,   10,  613,  613,  613,  611,  613,  613,  617,   10,
726       617,  617,  617,  663,  617,  617,  617,  617,  617,  638,
727        10,  638,  638,  638,  636,  638,  638,  638,  642,   10,
728       642,  642,   10,    0,    2,    2,    0,    4,    7,  654,
729       653,    0,    0,    0,    0,    0,    0,   42,   44,   44,
730        44,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735        67,   69,   69,   69,   69,   69,    0,    0,   88,   90,
736        90,   90,   90,   90,   90,    0,    0,   99,  101,  101,
737         0,  114,  116,  116,  116,  116,    0,  131,  133,  133,
738       133,  133,    0,  144,  146,  146,  146,    0,  161,  163,
739       163,  163,  163,    0,  184,  186,  186,  186,  186,  186,
740       186,  186,  186,    0,  243,  245,  245,  245,  245,  245,
741       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
742
743         0,  254,  256,  256,    0,  277,  279,  279,  279,  279,
744       279,  279,  279,    0,    0,  292,  294,  294,  294,  294,
745         0,  303,  305,  305,    0,  332,  334,  334,  334,  334,
746       334,  334,    0,  349,  351,  351,  351,    0,  362,  364,
747       364,  364,    0,  375,  377,  377,  377,    0,  400,  402,
748       402,  402,  402,  402,  402,  402,  402,    0,    0,  411,
749       413,  413,    0,    0,    0,    0,    0,    0,    0,  432,
750       434,  434,  434,  434,  434,  434,    0,  445,  447,  447,
751       447,    0,  476,  478,  478,  478,  478,  478,  478,  478,
752       478,  478,    0,  497,  499,  499,  499,  499,    0,  510,
753
754       512,  512,  512,    0,  527,  529,  529,  529,  529,  529,
755         0,  544,  546,  546,  546,  546,  546,    0,    0,  559,
756       561,  561,  561,  561,    0,    0,    0,  581,  583,  583,
757       583,  583,    0,  612,  614,  614,  614,    0,    0,  637,
758       639,  639,  639,  639,  639,    0,    0,    0,    0,    0,
759         3,    0,    0,    0,    0,    0,    0,    0,  661,    0,
760         0,   44,    0,    0,   18,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,   17,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
764
765         0,   18,    0,    0,    0,    0,   69,   69,   69,   69,
766         0,    0,    0,   90,   90,   90,   90,   90,    0,    0,
767         0,  101,    0,    0,  116,    0,    0,  116,    0,    0,
768       133,  133,  133,    0,    0,  146,  146,    0,    0,  163,
769       163,  163,    0,    0,    0,    0,    0,    0,  186,  186,
770       186,  186,  186,    0,    0,  245,    0,    0,  245,    0,
771         0,  245,  245,  245,  245,  245,  245,  245,  245,  245,
772       245,    0,    0,    0,    0,    0,    0,  279,  279,  279,
773         0,    0,  279,  279,  279,    0,    0,    0,  294,    0,
774         0,    0,    0,    0,    0,  305,    0,    0,  334,    0,
775
776         0,  334,  334,  334,    0,    0,  351,    0,    0,    0,
777         0,    0,    0,  364,    0,    0,  377,  377,    0,    0,
778       402,  402,  402,    0,    0,  402,  402,  402,    0,    0,
779         0,  413,    0,    0,    0,    0,    0,    0,  434,  434,
780       434,  434,  434,    0,    0,    0,    0,  447,    0,    0,
781       478,    0,    0,  478,  478,  478,  478,  478,  478,    0,
782         0,  499,  499,  499,    0,    0,  512,    0,    0,    0,
783         0,  529,  529,    0,    0,  529,    0,    0,  546,    0,
784         0,  546,  546,    0,    0,    0,  561,    0,    0,  561,
785         0,    0,    0,  656,  583,  583,  583,    0,    0,    0,
786
787         0,  614,    0,    0,  639,  639,  639,  639,    0,    0,
788         0,   15,    1,    0,    0,  649,    0,    0,    0,  646,
789       645,    0,    0,   20,   19,   44,    0,    0,   46,    0,
790        18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,   17,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,    0,    0,   69,   69,    0,    0,   69,
795         0,    0,   71,    0,    0,   90,   90,   90,   90,   90,
796         0,    0,   92,    0,    0,  101,    0,    0,  103,    0,
797
798       116,    0,  110,  109,  116,    0,    0,  118,    0,    0,
799         0,  133,  133,    0,    0,    0,    0,  135,    0,    0,
800         0,    0,    0,    0,    0,  148,    0,    0,    0,  163,
801       163,    0,    0,    0,    0,  165,    0,    0,  170,  169,
802         0,  172,  171,    0,    0,  186,  186,  186,  186,    0,
803         0,  188,    0,  245,  245,  245,    0,  201,  200,  245,
804         0,  205,  204,    0,    0,  245,  245,  245,  245,  245,
805       245,  245,  245,  245,    0,    0,  247,    0,    0,  252,
806       251,    0,    0,  258,    0,  279,  279,  279,    0,  269,
807       268,  279,  279,  279,    0,    0,  281,    0,    0,  294,
808
809         0,  288,  287,    0,  290,  289,    0,    0,  296,    0,
810       305,    0,    0,  307,    0,  334,    0,  316,  315,  334,
811       334,  334,    0,    0,  336,    0,  351,    0,  347,  346,
812         0,    0,  353,    0,    0,  358,  357,  364,    0,    0,
813       366,    0,  377,  377,    0,    0,  379,    0,  402,  402,
814       402,  402,    0,  392,  391,    0,    0,  402,  402,    0,
815         0,  404,    0,    0,  413,    0,    0,  415,    0,    0,
816         0,    0,    0,  434,  434,  434,  434,  434,    0,    0,
817       436,    0,    0,  441,  440,  447,    0,    0,  449,    0,
818       478,    0,  462,  461,    0,    0,  478,    0,    0,  478,
819
820       478,  478,    0,    0,  480,    0,    0,    0,    0,    0,
821       499,    0,    0,  501,    0,  512,    0,  508,  507,    0,
822         0,  514,    0,  529,  529,    0,  523,  522,  529,    0,
823         0,  531,    0,  546,    0,  538,  537,  546,  546,    0,
824         0,  548,    0,    0,  561,    0,  555,  554,  561,    0,
825         0,    0,  563,    0,  583,  583,  583,    0,    0,  585,
826         0,    0,  590,  589,  614,    0,    0,  616,    0,    0,
827         0,  639,  639,    0,    0,  639,    0,    0,  641,    0,
828         0,    0,  650,  644,    0,    0,   44,    0,   45,    0,
829         0,    0,    0,    0,    0,    0,    0,  261,    0,  310,
830
831         0,    0,  382,    0,    0,  439,    0,    0,    0,    0,
832       588,  438,    0,    0,    0,    0,    0,  260,    0,  309,
833       381,    0,    0,    0,  587,    0,  587,  588,    0,    0,
834         0,    0,   51,   50,   69,   69,    0,   57,   56,   69,
835         0,  309,   90,    0,    0,   90,   90,   90,    0,    0,
836       101,    0,  116,  116,    0,    0,  123,  122,  133,  133,
837         0,  129,  128,    0,    0,  140,  139,    0,  142,  141,
838         0,    0,  153,  152,  163,  163,    0,  159,  158,    0,
839         0,  174,  173,  186,  186,  186,  186,    0,  245,  245,
840       245,    0,    0,    0,  207,  206,  245,  245,  245,  245,
841
842       245,  245,  245,  245,  245,  245,    0,    0,  279,  279,
843         0,    0,  279,  279,  279,    0,    0,    0,    0,    0,
844         0,    0,    0,  334,  334,  334,  334,    0,  351,    0,
845       364,    0,    0,    0,  377,    0,  402,  402,  402,  402,
846         0,  394,  393,  402,  402,    0,    0,  413,    0,    0,
847         0,    0,    0,  434,    0,    0,  434,  434,  434,    0,
848       447,    0,  478,    0,  464,  463,    0,    0,    0,  468,
849       467,  478,    0,    0,  478,    0,    0,  485,  484,    0,
850       487,  486,  499,    0,  512,    0,  529,  529,  529,    0,
851       546,  546,    0,    0,    0,    0,    0,    0,  561,    0,
852
853         0,  583,    0,    0,  583,    0,  614,    0,    0,  621,
854       620,  639,  639,    0,  627,  626,  639,    0,    0,    0,
855         0,   12,    0,  647,  648,   44,    0,   73,    0,    0,
856         0,    0,    0,    0,  261,    0,    0,  310,    0,    0,
857       368,  382,    0,    0,  439,    0,  483,    0,  551,  588,
858         0,  438,    0,    0,    0,    0,    0,  260,    0,    0,
859       309,  381,  482,    0,  550,  587,    0,    0,    0,  483,
860       482,   69,   69,   69,    0,    0,   90,    0,   78,   77,
861        90,   90,   90,    0,    0,    0,    0,    0,  116,  116,
862         0,  133,  133,    0,    0,  163,  163,    0,  186,  186,
863
864         0,    0,  186,    0,    0,    0,  245,  245,    0,  203,
865       202,  245,  245,  245,  245,  245,  245,    0,    0,  245,
866       245,  245,    0,    0,  279,  279,    0,  267,  266,  279,
867         0,    0,  279,    0,  369,    0,  286,  285,    0,    0,
868       301,  300,    0,  334,  334,  334,  334,    0,  351,    0,
869         0,    0,    0,    0,  371,  370,  377,    0,  402,    0,
870         0,  402,  402,    0,    0,  402,    0,    0,  413,    0,
871        74,    0,    0,    0,  434,    0,  422,  421,  434,  434,
872       434,    0,    0,    0,    0,  478,    0,  466,  465,  478,
873         0,  472,  471,  478,    0,  499,    0,  512,    0,  529,
874
875       529,  529,    0,  546,    0,    0,    0,  542,  541,    0,
876         0,    0,  553,  552,  561,    0,    0,  583,    0,    0,
877         0,    0,    0,    0,  614,    0,  639,  639,  639,    0,
878         0,    0,    0,   11,   44,    0,   73,    0,    0,    0,
879         0,    0,  249,    0,    0,    0,    0,  368,    0,    0,
880       451,  483,  504,    0,  551,    0,    0,    0,    0,    0,
881         0,    0,    0,    0,  482,  503,    0,  550,    0,    0,
882         0,    0,    0,    0,    0,    0,   69,    0,    0,   90,
883        90,   90,   90,    0,    0,    0,   97,   96,    0,  116,
884       116,    0,    0,    0,    0,    0,    0,    0,    0,    0,
885
886         0,    0,    0,    0,    0,  186,    0,  180,  179,    0,
887         0,    0,    0,  193,  192,    0,    0,  245,  245,  245,
888         0,    0,  245,  245,  245,    0,  229,  228,    0,    0,
889       245,  245,    0,    0,  279,  279,    0,    0,    0,  273,
890       272,  279,    0,  280,  369,    0,    0,  334,  334,  334,
891       334,    0,  335,  351,    0,    0,  360,  359,    0,  377,
892         0,  402,    0,  386,  385,    0,    0,  402,    0,  396,
893       395,  402,    0,  403,    0,  413,    0,   74,  250,    0,
894       452,  434,  434,  434,  434,    0,    0,  443,  442,    0,
895       448,  478,  478,  478,    0,  499,    0,  512,    0,    0,
896
897         0,  529,    0,    0,    0,  546,    0,  540,  539,    0,
898         0,  561,    0,    0,  583,    0,    0,    0,    0,    0,
899         0,    0,    0,    0,  579,  578,    0,  614,    0,  615,
900         0,    0,    0,    0,  639,    0,    0,    0,    0,    0,
901         0,   49,    0,    0,    0,    0,    0,  168,  191,  249,
902         0,  299,    0,    0,    0,  417,  451,  504,  517,    0,
903         0,   48,    0,    0,    0,    0,  167,  190,    0,  298,
904       503,  516,    0,    0,    0,   53,   52,    0,   55,   54,
905        69,    0,    0,   90,   90,   90,   90,    0,   91,    0,
906         0,  116,    0,    0,    0,    0,  125,  124,    0,  127,
907
908       126,    0,    0,    0,  155,  154,    0,  157,  156,    0,
909         0,  176,  175,    0,    0,    0,  182,  181,    0,    0,
910       195,  194,  245,  245,  245,    0,  215,  214,    0,    0,
911       245,  245,    0,  231,  230,  245,  245,    0,    0,  279,
912       279,    0,  271,  270,  279,    0,    0,  334,    0,    0,
913       334,  334,  334,  351,    0,    0,  377,    0,  378,  402,
914         0,  388,  387,  402,  402,    0,    0,    0,    0,  250,
915       418,  452,  434,  434,  434,  434,    0,  478,    0,    0,
916       478,    0,  499,    0,  500,  512,    0,    0,  519,  518,
917         0,    0,    0,  525,  524,    0,    0,    0,    0,    0,
918
919       561,    0,    0,  562,    0,    0,    0,    0,    0,    0,
920         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
921       623,  622,    0,  625,  624,  639,    0,    0,    0,    0,
922         0,    0,    0,   49,   94,  106,    0,    0,    0,  168,
923       191,    0,  299,  338,    0,  406,  417,  517,    0,    0,
924         0,   48,  105,    0,    0,    0,  167,  190,    0,  298,
925       516,    0,    0,    0,   69,    0,  339,    0,    0,   90,
926        90,   90,   95,    0,  116,    0,  112,  111,    0,    0,
927         0,    0,    0,  178,  177,    0,  245,  245,  245,    0,
928       217,  216,  245,  245,  245,    0,    0,    0,    0,  257,
929
930       279,  279,  279,    0,    0,  334,    0,  318,  317,  334,
931       334,  334,  351,    0,    0,  377,  402,  402,  402,  407,
932         0,  409,  408,    0,  418,    0,    0,  434,  434,  434,
933         0,  478,    0,  470,  469,  478,    0,  479,  499,  512,
934         0,  513,    0,  521,  520,    0,    0,  536,  535,    0,
935         0,  561,  655,    0,  567,  566,    0,    0,    0,    0,
936         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
937       639,    0,    0,    0,    0,    0,    0,    0,    0,    0,
938         0,    0,    0,    0,    0,   94,  106,    0,    0,    0,
939       284,  338,    0,  406,    0,    0,  619,  105,    0,    0,
940
941         0,  283,    0,    0,  618,   69,    0,   70,  339,    0,
942        76,   75,    0,    0,   90,   90,   95,    0,    0,    0,
943         0,    0,    0,    0,    0,  187,  245,  245,  245,  245,
944         0,    0,  245,  245,    0,    0,    0,    0,  246,  279,
945       279,  279,    0,    0,  306,    0,    0,  334,  334,  334,
946       334,    0,    0,    0,    0,    0,    0,  402,  402,  402,
947       407,    0,    0,  420,  419,    0,    0,  434,  434,    0,
948       435,    0,    0,  478,  499,  512,    0,  530,    0,    0,
949       561,    0,    0,    0,    0,    0,    0,    0,    0,    0,
950         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
951
952         0,    0,  639,    0,    0,    0,    0,    0,    0,    0,
953         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
954         0,    0,  284,  355,    0,    0,  619,    0,    0,    0,
955       283,    0,    0,  618,   69,    0,   80,   79,    0,    0,
956         0,    0,    0,  102,    0,  108,  107,    0,  117,    0,
957         0,    0,  245,  245,  245,  245,    0,  219,  218,  245,
958       245,    0,    0,    0,    0,    0,    0,  279,  279,    0,
959         0,    0,    0,  312,  311,  334,  334,  334,    0,    0,
960         0,    0,    0,    0,  352,    0,    0,  373,  372,  402,
961       402,    0,    0,    0,  414,    0,  424,  423,    0,    0,
962
963         0,    0,    0,    0,    0,  478,  499,  512,    0,  356,
964       561,    0,    0,    0,    0,    0,    0,    0,    0,    0,
965         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
966         0,    0,    0,    0,  639,    0,    0,    0,    0,    0,
967         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
968         0,    0,  138,    0,  355,    0,    0,    0,  137,    0,
969         0,    0,    0,    0,    0,    0,    0,    0,   86,   85,
970         0,    0,    0,  245,  245,    0,    0,  245,  245,  245,
971         0,    0,    0,    0,    0,    0,    0,    0,  279,    0,
972         0,    0,  275,  274,    0,  295,  334,  334,  334,    0,
973
974       330,  329,    0,    0,    0,    0,    0,    0,    0,  402,
975         0,    0,    0,  398,  397,    0,    0,    0,    0,  430,
976       429,    0,    0,    0,    0,    0,    0,  478,    0,    0,
977         0,    0,    0,  356,    0,    0,    0,    0,    0,    0,
978       571,    0,    0,    0,    0,  570,    0,    0,    0,    0,
979         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
980         0,    0,  640,    0,    0,    0,    0,    0,    0,    0,
981         0,    0,    0,    0,    0,    0,    0,    0,    0,  138,
982         0,  534,    0,    0,  137,    0,  533,    0,    0,    0,
983         0,    0,    0,    0,    0,    0,    0,    0,  245,    0,
984
985         0,    0,  211,  210,    0,    0,  245,  245,    0,    0,
986         0,    0,    0,    0,    0,    0,  279,    0,  265,  264,
987       334,    0,    0,  334,    0,    0,    0,    0,    0,    0,
988         0,  365,  402,    0,  390,  389,    0,    0,    0,    0,
989         0,    0,    0,    0,    0,    0,    0,    0,  478,    0,
990         0,    0,    0,  506,  505,    0,    0,  557,  556,    0,
991         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
992         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
993         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
994        22,   30,    0,    0,    0,    0,   21,   29,    0,  121,
995
996         0,  534,  565,  120,    0,  533,  564,    0,    0,    0,
997         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
998         0,  147,    0,  245,    0,  209,  208,    0,  213,  212,
999       245,  245,    0,    0,    0,    0,    0,    0,    0,    0,
1000       279,  334,    0,  320,  319,  334,    0,    0,  341,    0,
1001         0,  340,  402,    0,    0,    0,    0,    0,    0,    0,
1002         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1003         0,    0,    0,    0,    0,    0,    0,    0,  577,    0,
1004         0,    0,  576,    0,    0,    0,    0,    0,  592,  600,
1005         0,    0,    0,    0,  591,  599,    0,    0,    0,    0,
1006
1007         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1008         0,    0,    0,   24,    0,    0,    0,   23,    0,  121,
1009         0,  565,  120,    0,  564,    0,    0,    0,    0,    0,
1010         0,    0,    0,    0,    0,    0,    0,    0,    0,  245,
1011         0,    0,  245,    0,    0,  235,    0,    0,    0,  234,
1012         0,  279,    0,    0,    0,    0,    0,    0,    0,    0,
1013       402,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1014         0,    0,    0,    0,  474,  473,    0,    0,    0,    0,
1015         0,    0,    0,    0,    0,  547,    0,    0,    0,    0,
1016         0,    0,    0,    0,    0,  594,    0,    0,    0,  593,
1017
1018         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1019         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1020         0,  151,  150,   61,    0,   65,    0,   60,    0,   64,
1021         0,   82,    0,   81,    0,    0,  134,    0,  245,    0,
1022         0,    0,    0,    0,    0,    0,  237,    0,    0,  236,
1023       279,    0,  314,  313,    0,    0,    0,  343,  345,  342,
1024       344,  402,  426,    0,  425,    0,    0,  460,  456,    0,
1025         0,  459,  455,    0,  491,    0,  495,    0,  490,    0,
1026       494,    0,  575,    0,    0,  574,    0,    0,    0,  584,
1027         0,    0,    0,    0,    0,    0,  631,    0,  635,    0,
1028
1029       630,    0,  634,    0,    0,    0,    0,   12,    0,   12,
1030         0,   34,    0,    0,    0,    0,   32,   33,    0,    0,
1031         0,    0,   31,  151,  150,   59,   63,   58,   62,    0,
1032         0,    0,  245,    0,    0,    0,    0,    0,  233,  232,
1033         0,    0,    0,    0,  279,    0,    0,    0,    0,  402,
1034         0,    0,    0,    0,    0,    0,  489,  493,  488,  492,
1035       569,  573,  568,  572,  604,    0,    0,    0,    0,  602,
1036       603,    0,    0,    0,    0,  601,  629,  633,  628,  632,
1037         0,    0,    0,    0,    0,    0,    0,    0,   26,    0,
1038         0,    0,    0,   25,    0,    0,    0,    0,  164,    0,
1039
1040         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1041         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1042         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1043         0,    0,    0,    0,  596,    0,    0,    0,    0,  595,
1044         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1045         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1046         0,    0,    0,    0,    0,  239,    0,  238,    0,  263,
1047       262,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1048       384,  383,    0,    0,  454,    0,  453,    0,    0,    0,
1049         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
1050
1051         0,    0,    0,    0,    0,    0,   84,   83,    0,    0,
1052         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1053       241,  240,    0,    0,    0,    0,    0,    0,    0,    0,
1054       428,  427,    0,    0,    0,    0,    0,    0,    0,    0,
1055         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1056         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1057         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1058         0,  458,  457,    0,    0,    0,    0,    0,    0,    0,
1059         0,    0,    0,    0,   36,    0,    0,    0,   35,    0,
1060         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1061
1062         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1063         0,    0,  606,    0,    0,    0,  605,    0,    0,    0,
1064         0,   28,    0,    0,   27,    0,    0,    0,    0,    0,
1065         0,  221,    0,    0,    0,  220,    0,    0,    0,  322,
1066         0,    0,    0,  321,    0,    0,    0,  598,    0,    0,
1067       597,    0,    0,   38,    0,   37,    0,    0,    0,    0,
1068       227,    0,    0,  226,    0,    0,  328,    0,    0,  327,
1069         0,    0,    0,  608,    0,  607,    0,    0,    0,    0,
1070         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1071         0,    0,    0,    0,   40,   39,    0,  197,    0,  196,
1072
1073         0,    0,    0,    0,    0,    0,    0,    0,  610,  609,
1074         0,    0,  199,  198,  225,    0,  224,    0,  326,    0,
1075       325,    0,    0,    0,  223,  222,  324,  323,    0,    0,
1076         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1077         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1078         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1079         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1080         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1081         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1082         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1083
1084         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1085         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1086         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1087         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1088         0,    0,    0,    0,    0,    0,    0,   14,    0,    0,
1089         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1090         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1091         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1092         0,    0,    0,    0,    0,   13,    0
1093     } ;
1094
1095 static const YY_CHAR yy_ec[256] =
1096     {   0,
1097         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1098         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
1099         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1100         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
1101         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
1102        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
1103        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
1104        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
1105        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
1106        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
1107
1108        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
1109        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
1110        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
1111         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1112         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1113         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1114         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1115         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1116         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1117         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1118
1119         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1120         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1121         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1122         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1123         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1124         1,    1,    1,    1,    1
1125     } ;
1126
1127 static const YY_CHAR yy_meta[76] =
1128     {   0,
1129         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
1130         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
1131         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
1132         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1133         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
1134         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
1135         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1136         5,    5,    5,    5,    5
1137     } ;
1138
1139 static const flex_int16_t yy_base[4640] =
1140     {   0,
1141         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
1142        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
1143        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
1144       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
1145       256,  261,  264,  273,  281,  284,  290,  293,  301,  310,
1146       313,  318,  321,  330,  338,  341,  359,  427,  379,  382,
1147       385,  390,  407,  447,  450,  453,  495,  563,  458,  475,
1148       515,  518,  521,  526,  543,  583,  631,  702,  586,  589,
1149       773,  834,  594,  611,  895,  963,  651,  654,  657,  662,
1150       679,  682,  722,  725, 1031, 1099,  728,  733,  750,  753,
1151
1152       793,  796,  799,  804, 1167, 1235,  854,  857,  860,  865,
1153       915,  918,  921,  926, 1303, 1371,  943,  983, 1439, 1508,
1154       986,  989,  994, 1011, 1051, 1054, 1057, 1062, 1577, 1635,
1155      1079, 1119, 1122, 1125, 1130, 1147, 1187, 1190, 1693, 1761,
1156      1193, 1198, 1215, 1255, 1258, 1261, 1266, 1283, 1829, 1899,
1157      1323, 1326, 1969, 2024, 1329, 1334, 1391, 1394, 1397, 1402,
1158      1459, 1462, 2079, 2147, 1465, 1470, 1528, 1531, 1534, 1539,
1159      1597, 1600, 2215, 2273, 1603, 1608, 2331, 2402, 1655, 1658,
1160      2473, 2541, 1661, 1666, 2609, 2677, 1713, 1716, 1719, 1724,
1161      2745, 2816, 1781, 1784, 1787, 1792, 1849, 1852, 1855, 1860,
1162
1163      1877, 1919, 1922, 1925, 1930, 1947, 1989, 1992, 1995, 2000,
1164      2044, 2047, 2887, 2955, 2050, 2055, 2099, 2102, 2105, 2110,
1165      2167, 2170, 3023, 3094, 2173, 2178, 3165, 3233, 2235, 2238,
1166      3301, 3369, 2241, 2246, 2293, 2296, 2299, 2304, 2351, 2354,
1167      3437, 3495, 2357, 2362, 3553, 3622, 2379, 2382, 2422, 2425,
1168      2428, 2433, 2450, 2453, 3691, 3759, 2493, 2496, 2499, 2504,
1169      2521, 2561, 2564, 2567, 3827, 3892,  204, 2583, 3957, 4026,
1170      2572, 2590, 4095, 4162, 2630, 2633, 2636, 2640, 2697, 2700,
1171      2703, 2708, 2765, 2768, 2771, 2776, 2793, 2796, 2836, 2839,
1172      2842, 2847, 2864, 2867, 2907, 2910, 2913, 2918, 2935, 2975,
1173
1174      2978, 2981, 2986, 3003, 3043, 3046, 3049, 3054, 3071, 3074,
1175      4229, 4297, 3114, 3117, 3120, 3125, 3142, 3145, 3185, 3188,
1176         0,    0,10963,14062,14062,   96,  100,   29,   41,14062,
1177       103,   51,14062,14062,10952,14062,14062,10941,14062,10952,
1178     10952,  762,14062,14062,14062,14062,10950,10948,10902,14062,
1179       160,10929,    0,   87,14062,10891,10879,14062,  166, 4361,
1180     10877, 4432, 3142, 4503,  278,   76,10927,   26,  279, 3203,
1181       392,10926,   31,14062,  169,10917,    0,  144,14062,10864,
1182     10859,   81,14062,  347,  154,  188,  204,14062,  414,10910,
1183         0,  268,14062,10857,10862,10867,10857,10850,14062,  417,
1184
1185        16,10868,  325,14062,  420,10895,    0,  305,14062,10864,
1186     14062,  482,  393,14062,  485,10893,    0,  370,14062,10858,
1187     10854,10856,14062,  488,  461,14062,  554,10883,    0,  506,
1188     14062,10834,10829,10829,14062,  622,  541,  469,14062,  685,
1189     10875,    0,  527,14062,10826,10824,14062,  688,  609,  514,
1190     14062,  691,10870,    0,  530,14062,10821,10812,10816,14062,
1191       756,  754,  529,14062,  759,10862,    0,  533,14062,10807,
1192     10825,10827,10805,10821,   81,14062,  823,  865,14062,  885,
1193     10850,    0,  595,14062,  141,10803,10813,  545,10798,   90,
1194       606,10796,14062,  950,10847,  801,14062,  953,10838,    0,
1195
1196       713,14062,10802,14062,  956,10842,  861,14062, 1018,10833,
1197         0,  743,14062,10777,10783,10793,10775,  330,14062, 1021,
1198       295,10780,  862,14062, 1024,10821,    0,  784,14062,10772,
1199     10782,10769,14062, 1083,  929,14062, 1086,10811,    0,  811,
1200     14062,10772,14062, 1089,  616,  219,  867,14062, 1092,10809,
1201         0,  974,14062,10774,10770,10772,   20,14062, 1151,10807,
1202       872,14062, 1154,10798,    0,  997,14062,10759,10759,14062,
1203      1157, 1201,14062, 1160,10791,    0, 1042,14062,10757,10757,
1204     14062, 1222, 1269,14062, 1225,10786,    0, 1110,14062,10755,
1205     10731,14062, 1228, 1334,14062, 1290,10779,    0, 1178,14062,
1206
1207     10727,10723,10730,10740,10738,  398,14062, 1293, 1337, 1338,
1208     14062, 1296,10767,    0, 1246,14062,10732,14062, 1363, 3149,
1209       166, 1356, 1405,  597,  997,14062, 1422,10763,    0, 1314,
1210     14062,10712,10717,10718,10712,10705,14062, 1431,  297, 1005,
1211     14062, 1490,10751,    0, 1335,14062,10717,10719,14062, 1499,
1212      1348,14062, 1559,10744,    0, 1406,14062,10709,10709, 1421,
1213     10709,  796,14062, 1568, 1477,14062, 1625,10738,    0, 1409,
1214     14062,10689,  671,14062, 1628, 1483, 1065,14062, 1683,10732,
1215         0, 1519,14062,10687,10697,14062, 1686, 1546,14062, 1744,
1216     10727,    0, 1588,14062,10677,10681,10687,10665,14062, 1750,
1217
1218     10726, 1133,14062, 1753,10715,    0, 1612,14062,10670,10680,
1219     10664,10669,14062, 1812,  340,10664, 1322,14062, 1818,10703,
1220         0, 1646,14062,10664,10668,10662, 1863,10667,14062, 1821,
1221     10694,    0, 1670,14062,10650,10652,10642,14062, 1886, 1933,
1222     14062, 1889,10684,    0, 1704,14062,10650,10638,14062, 1894,
1223      3207,10634, 3208,10646, 3272, 1416, 1864, 3275, 1345,14062,
1224      1956,10677,    0, 1728,14062,10624,10611,  698,14062, 1959,
1225      1732, 1351, 1964,  866,10609,14062,10671,10656,14062,14062,
1226     14062, 2061,  179,10606,10605,10599,10648,14062,    0, 2643,
1227     10597,10640,10622, 1432,  420,  408,10596,10592,10596,10589,
1228
1229      1947,  555,10579,10580,10582, 2002,10602,  759,  683,10576,
1230     10576,10576, 2057,  558,10564,10565,10563,10587,  861, 2068,
1231     10561,10581,  888,10555,  956, 1024,  830,  944, 1157, 1092,
1232     14062,    0,10549,10564,10560,10549,10584,10547,14062,    0,
1233     10541,10531,10537,10548,10542,10541, 1487,14062,    0,10529,
1234     10535,14062,    0,10521, 3326,10514,10527,14062,    0,10508,
1235     10527,10519,10519,14062,    0,10500,10512,10512,14062,    0,
1236     10493,10508,10504,10504,14062,    0, 3332, 3339,10481,10495,
1237     10495,10489,10487,10489,14062,    0,10487, 3389,10468, 3392,
1238     10465,10467,10464,10473,10469,10451,10470,10461,10459,10448,
1239
1240     10456,14062,    0, 3395,10455,14062,    0,10456,  214, 3399,
1241     10432,10446,10449,10437,10429,14062,    0,10420, 3402, 3457,
1242     10430,14062,    0,10425,10427,14062,    0,10417, 3460,10410,
1243     10428,10423,10411,14062,    0,10404, 3463, 9784,14062,    0,
1244      3467, 9783, 9780,14062,    0, 9779, 9776, 9777,14062,    0,
1245      9788, 9788, 9772, 3471, 9765, 9779, 9781, 9758, 9761,14062,
1246         0, 9753, 9747, 1498, 1216, 2071, 1225, 1558, 2125,14062,
1247         0, 9748, 9741, 9739, 9749, 9743, 9727,14062,    0, 3515,
1248      9729, 9720,14062,    0, 9721, 3518, 9704, 9726, 9711, 9720,
1249      9705, 9705, 9689,14062,    0, 9678, 9693, 9679, 9672,14062,
1250
1251         0, 9674, 3521, 9669,14062,    0, 9666, 9666, 3525, 9663,
1252      9658,14062,    0, 9662, 3529, 9655, 9631, 9635, 9636,14062,
1253         0, 9637, 3573, 9612,   13, 9609, 9656,14062,    0, 9617,
1254      9607, 9618, 9593,14062,    0, 3576, 9590, 9581, 1616,14062,
1255         0, 9576, 9595, 9576, 9565, 9550, 9600, 9609, 1781, 9555,
1256     14062, 2006,    0, 9537, 9533, 9579, 9568, 9520,14062, 3579,
1257      2197, 9513, 3259, 3582, 2140, 9512, 9518, 9521, 9506, 9512,
1258      9492, 9497, 9491, 9505, 9480,  265, 9488, 9476, 9461, 9459,
1259      9450, 9451, 9464, 9449, 9436, 2263, 9447, 9432, 9444, 9424,
1260      9411, 9425, 9413, 9420, 9402, 9407, 9419, 9386, 2321, 9383,
1261
1262      9377, 2325, 9368, 9364, 9358, 9345, 3585, 3654, 3642, 3662,
1263      3335, 3647, 9351, 9360, 9342, 9344, 9348, 9332, 3651, 3730,
1264      9337, 9317, 3711, 3716, 9333, 3723, 2392, 9330, 3726, 3793,
1265      3782, 3796, 3785, 3788, 3848, 3851, 3854, 3857, 3863, 3912,
1266      3926, 3915, 3921, 3978, 3981, 2460, 3984, 2524, 3987, 3993,
1267      4005, 4057, 4062, 4047, 4068, 1954, 4075, 2593, 9319, 4117,
1268      2662, 4120, 9314, 9305, 9310, 9306, 9293, 9294, 9305, 9302,
1269      9292, 4124, 4127, 4130, 2728, 4182, 4187, 9296, 9267, 9279,
1270      4192, 2799, 9266, 9259, 9243, 4195, 4201,  285, 9247, 4250,
1271      2870, 4253, 3081, 4258, 4264, 9255, 4271, 4317, 9254, 4277,
1272
1273      3153, 9241, 9227, 9219, 4320, 4323, 9229, 4327, 3284, 4331,
1274      4352, 4345, 3357, 9212, 4355, 4367, 9226, 9205, 4358, 4382,
1275      9211,  473, 9197, 4386, 3421, 4389, 9209, 9188, 4394, 4397,
1276      9202, 9183, 4430, 4437, 9180, 9178, 9176, 9174, 9184, 9165,
1277      9172, 9176, 9155, 4440, 4445, 4459, 3604, 9150, 4465, 4468,
1278      9161, 4472, 3673, 4477, 9151, 4500, 9154, 9151, 9154, 4507,
1279      4512, 4518, 4526, 4537, 4546, 4555, 9134, 4577, 3681, 4580,
1280      4583, 9146, 9125, 4586, 3816, 9139, 4589, 4604, 9122, 4608,
1281      3940, 9134, 9132, 4611, 4614,  343, 9114, 4618, 4012, 9108,
1282      9138, 4626, 4636,14062, 9098, 9100, 9087, 4639, 4646, 4649,
1283
1284      4081, 9065, 4658, 4661, 4667, 4673, 4685, 4691, 4694, 4697,
1285      9112,14062,14062,  979, 9070,14062, 9112, 9104, 9052,14062,
1286     14062, 9045, 4148,14062,14062, 9055, 4703, 4716,14062, 4725,
1287      2207, 9047, 9032, 9025, 9025, 9034, 9024, 9006, 9018, 9002,
1288      9005, 9005, 9009, 8995, 8984, 8980,  497, 8995, 8977, 8967,
1289      8980, 8977,  565, 2210, 8964, 8967, 8975, 8954, 8936, 8922,
1290      8929, 8926, 8911, 8891, 8892, 8896, 8887, 8888, 8876, 8875,
1291      8851, 8830, 8829, 4728, 4210, 8805, 8796, 4731, 4284, 8789,
1292      4735, 4740,14062, 4754, 8719, 8700, 4760, 8707, 8641, 8604,
1293      4763, 4766,14062, 4769, 8576, 8580, 4773, 4778,14062, 4788,
1294
1295      8555, 4793,14062,14062, 8486, 4802, 4807,14062, 4810, 4813,
1296      4822, 8475, 8454, 4816, 4837, 4845, 4848,14062, 4851, 4854,
1297      4857, 4872, 4875, 4883, 4886,14062, 4890, 4893, 4896, 8422,
1298      8330, 4905, 4911, 4919, 4923,14062, 4926, 4929,14062,14062,
1299      4938,14062,14062, 4946, 4950, 8280, 8283, 8266, 8136, 4958,
1300      4964,14062, 4967, 8117, 8077, 8063, 4970,14062,14062, 4978,
1301      4986,14062,14062, 4996, 4999, 8027, 8044, 7978, 7977, 7903,
1302      7882, 7882, 7799, 1675, 5007, 5010,14062, 5017, 5020,14062,
1303     14062, 5029, 5032,14062, 5036, 7745, 7693, 5039, 5042,14062,
1304     14062, 7667, 7665, 7592, 5051, 5057,14062, 5060, 7518, 5063,
1305
1306      5066,14062,14062, 5082,14062,14062, 5090, 5093,14062, 5098,
1307      5101, 5104, 5112,14062, 5119, 7441, 5127,14062,14062, 7437,
1308      7426, 7370, 5123, 5138,14062, 5142, 7370, 5145,14062,14062,
1309      5153, 5157,14062, 5161, 5166,14062,14062, 7353, 5176, 5180,
1310     14062, 5183, 5187, 5190, 5195, 5208,14062, 5214, 7345, 7341,
1311         1,   72, 5217,14062,14062, 5227, 5235,   99,  120, 5245,
1312      5248,14062, 5251,  152,  174, 5254, 5257,14062, 5260,  186,
1313       206, 1809,  219,  229, 5279,  257,  277,  289, 5283, 5286,
1314     14062, 5289, 5293,14062,14062,  347, 5309, 5312,14062, 5315,
1315       359, 5318,14062,14062, 5335, 5338, 5346, 5353, 5357,  412,
1316
1317      5365,  487, 5371, 5374,14062, 5378, 5383, 5386, 5397, 5401,
1318       506, 5409, 5415,14062, 5418,  546, 5421,14062,14062, 5429,
1319      5440,14062, 5443,  616,  619, 5448,14062,14062,  666, 5462,
1320      5465,14062, 5469,  644, 5472,14062,14062,  638, 5488, 5491,
1321      5494,14062, 5497,  647, 5500, 5506,14062,14062, 5518,  714,
1322      5521, 5524,14062, 5527,  687, 5532,  688, 5536, 5546,14062,
1323      5550, 5556,14062,14062,  709, 5565, 5569,14062, 5572, 5576,
1324      5584,  702,  737, 5594, 5599,  756, 5607, 5612,14062, 5616,
1325      1456, 5619,14062,14062,  812,  813,  808, 5622,14062,  820,
1326       826,  869,  889,  881,  937,  998, 1010, 2267, 1001, 2603,
1327
1328      1012, 1007, 2670, 1080, 1082, 2737, 1074, 1085, 1091, 1090,
1329      3193, 2740, 1133, 1153, 1141, 1147, 1143, 2946, 1164, 3014,
1330      3263, 1217, 1222, 1224, 3329, 1234, 3430, 3614, 1277, 1294,
1331      1308, 5641,14062,14062, 1333, 1355, 5649,14062,14062, 1344,
1332      5626, 3489, 1373, 5657, 5660, 1368, 1420, 1456, 5668, 1483,
1333      5678, 5671, 1489, 1501, 5682, 5690,14062,14062, 1495, 1516,
1334      5701,14062,14062, 5709, 5712,14062,14062, 5721,14062,14062,
1335      5731, 5734,14062,14062, 1505, 1561, 5743,14062,14062, 5751,
1336      5754,14062,14062, 1541, 1566, 5763, 1547, 5766, 5770, 5773,
1337      5776, 5781, 5800, 5808,14062,14062, 5794, 5816, 5819, 5825,
1338
1339      5828, 5837, 5848, 5851, 5855, 5858, 5861, 5876, 1573, 1576,
1340      5869, 5880, 1617, 5895, 1623, 5899, 1605, 5902, 5906, 5914,
1341      5923, 5934, 5942, 1620, 1629, 1629, 1680, 5945, 1661, 5949,
1342      5952, 5956, 5970, 5975, 1676, 5984, 1685, 5988, 1669, 1681,
1343      5991,14062,14062, 6009, 1701, 6012, 1704, 1696, 6015, 1710,
1344      1734, 1744, 1736, 1745, 6018, 6021, 1735, 1748, 1758, 6036,
1345      6039, 6042, 1762, 6046,14062,14062, 6057, 6061, 6069,14062,
1346     14062, 1768, 6078, 6083, 1773, 6091, 6096,14062,14062, 6106,
1347     14062,14062, 1759, 6114, 1787, 6117, 1803, 1802, 1813, 6120,
1348      1806, 6123, 6126, 6129, 6144, 1810, 6147, 6150, 1819, 1861,
1349
1350      6158, 1822, 6165, 6168, 6177, 6186, 1831, 6189, 6195,14062,
1351     14062, 1861, 1883, 6210,14062,14062, 1867, 6219, 2050, 1921,
1352      6222,14062, 1922,14062,14062, 1888, 1884, 3547, 1901, 1892,
1353      1896, 1931, 1946, 1950, 3752, 1948, 1958, 3876, 1960, 1991,
1354      3884, 3887, 1991, 1992, 3949, 1999, 3952, 2008, 4089, 4051,
1355      2002, 4054, 1998, 2013, 2010, 2056, 2061, 4156, 2055, 2066,
1356      4220, 4223, 6225, 2065, 6228, 4540, 2067, 2065, 2068, 6231,
1357      6242, 6245, 6248, 6251, 6254, 2087, 2077, 6257,14062,14062,
1358      2087, 2085, 2094, 6276, 2124, 6280, 6285, 6299, 2130, 2110,
1359      6302, 6308, 6311, 6329, 6332, 6335, 6338, 6342, 6356, 6361,
1360
1361      6364, 6367, 6375, 6382, 6385, 6389, 6404, 6409, 6412,14062,
1362     14062, 6422, 6427, 6430, 6433, 6436, 6440, 6454, 6458, 6467,
1363      6478, 6488, 6496, 6499, 2136, 2126, 6502,14062,14062, 6510,
1364      6518, 6521, 2135, 6529, 6532, 6536,14062,14062, 6544, 6549,
1365     14062,14062, 6557, 2140, 2123, 2146, 2149, 6564, 2173, 6567,
1366      6570, 6576, 6588, 6592,14062,14062, 2192, 6600, 2196, 6603,
1367      6608, 6621, 2188, 6626, 6629, 2197, 6639, 2190, 2192, 6644,
1368      6648, 2201, 2190, 2198, 2197, 6651,14062,14062, 2214, 2228,
1369      2235, 6659, 6663, 6668, 6681, 2236, 6684,14062,14062, 2248,
1370      6694,14062,14062, 2239, 6702, 2245, 6705, 2250, 6708, 6712,
1371
1372      6715, 6733, 6736, 2246, 6739, 6742, 6751,14062,14062, 6761,
1373      2269, 6765,14062,14062, 2261, 2307, 6773, 2293, 6776, 3323,
1374      3712, 6785, 6788, 6796, 2307, 6799, 6803, 6806, 6810, 6828,
1375      2350, 2370, 2418,14062, 6832, 2313, 6835, 2305, 2308, 2396,
1376      2304, 2307, 6838, 2318, 2323, 2322, 2328, 6841, 2332, 2371,
1377      6850, 6853, 6856, 2387, 6859, 2392, 2375, 2393, 2385, 2467,
1378      2389, 2392, 2403, 2411, 6865, 6868, 2413, 6871, 2418, 2434,
1379      2494, 2535, 6876, 6879, 6887, 6890, 2451, 6898, 2441, 2449,
1380      2453, 2448, 2461, 6901, 2466, 6905,14062,14062, 6920, 2462,
1381      6913, 6923, 6926, 6932, 6944, 6947, 6955, 6958, 6962, 6967,
1382
1383      6980, 6986, 6994, 6998, 7001, 7009, 7016,14062,14062, 7027,
1384      7030, 7038, 7041,14062,14062, 7049, 7057, 2476, 2486, 2477,
1385      7052, 7070, 7078, 2480, 2523, 7081,14062,14062, 7091, 7096,
1386      2510, 2504, 7104, 7109, 2522, 2533, 7112, 7116, 7124,14062,
1387     14062, 2526, 7132,14062, 7135, 7139, 7142, 2529, 7145, 2551,
1388      2545, 7151,14062, 2561, 7164, 7170,14062,14062, 7178, 2611,
1389      7183, 2591, 7187,14062,14062, 7202, 7205, 2600, 7216,14062,
1390     14062, 2595, 7226,14062, 2588, 7229, 7232, 7235, 7238, 2595,
1391      7241, 2606, 2613, 2606, 2635, 7247, 7251,14062,14062, 7259,
1392     14062, 2644, 7262, 2651, 7266, 2655, 7269, 2664, 7272, 7280,
1393
1394      7291, 7299, 7302, 7305, 7320, 7323, 7327,14062,14062, 7341,
1395      2651, 2665, 2697, 7344, 7347, 2698, 2686, 2754, 2686, 2711,
1396      2700, 2755, 2724, 7350,14062,14062, 7365, 7368, 7371,14062,
1397      7375, 7380, 7396, 7399, 2723, 7407, 2762, 2795, 2786, 7414,
1398      7417, 7426, 2718, 2736, 2752, 2740, 2743, 7432, 7435, 7438,
1399      2746, 7441, 2747, 2745, 2751, 7444, 7447, 7450, 7453, 2768,
1400      2779, 7456, 2798, 2816, 2792, 2794, 7459, 7462, 2796, 7465,
1401      7470, 7473, 2797, 2793, 7476,14062,14062, 7484,14062,14062,
1402      2823, 7492, 2814, 7495, 7501, 7504, 7507, 7513,14062, 2809,
1403      7525, 2823, 7528, 7532, 7540, 7547,14062,14062, 7555,14062,
1404
1405     14062, 7563, 7570, 7573,14062,14062, 7589,14062,14062, 7597,
1406      7603,14062,14062, 7611, 7616, 7625,14062,14062, 7633, 7636,
1407     14062,14062, 2818, 2822, 2835, 7645,14062,14062, 7653, 7656,
1408      2833, 2838, 7664,14062,14062, 2868, 7672, 7675, 7678, 2858,
1409      2854, 7681,14062,14062, 2863, 7690, 7697, 2869, 7701, 7705,
1410      2872, 2864, 2869, 2869, 7719, 7724, 2880, 7727,14062, 2879,
1411      7731,14062,14062, 2872, 2882, 2883, 7750, 7753, 7761, 7764,
1412      7768, 7771, 7774, 7780, 7783, 7792, 7788, 2879, 7801, 7810,
1413      2902, 7819, 2902, 7822,14062, 2902, 7827, 7834,14062,14062,
1414      7842, 7849, 7860,14062,14062, 7868, 7871, 7874, 7882, 2919,
1415
1416      2929, 2944, 7889,14062, 7892, 7895, 2957, 2955, 2957, 2963,
1417      2974, 2966, 2969, 2969, 2976, 2987, 7903, 7910, 7915, 7924,
1418     14062,14062, 7935,14062,14062, 2962, 7943, 7946, 3002, 3000,
1419      7950, 4431, 5301, 7958, 7965, 7968, 2972, 2984, 2992, 7971,
1420      7974, 2999, 7977, 7980, 2996, 7983, 7986, 7989, 2993, 3002,
1421      3015, 7992, 7995, 3012, 3010, 3019, 7998, 8001, 3026, 8004,
1422      8007, 3019, 3028, 3039, 3060, 8012, 8015, 8018, 8021, 8031,
1423      8036, 8039, 8042, 8045, 8049, 8057,14062,14062, 8067, 8071,
1424      8074, 8077, 8080,14062,14062, 8096, 3069, 3068, 3079, 8099,
1425     14062,14062, 8109, 3067, 3071, 8115, 8120, 8128, 8133,14062,
1426
1427      3076, 3082, 3083, 8140, 8143, 8147, 8152,14062,14062, 8165,
1428      8168, 8171, 8174, 8177, 8196, 8202, 3081, 3096, 3097, 8205,
1429      8208,14062,14062, 8216, 8224, 8227, 8235, 8231, 8245, 8249,
1430      8252, 8255, 8267,14062,14062, 8258, 8263,14062, 3103, 3104,
1431      8277,14062, 8282,14062,14062, 8290, 8298,14062,14062, 8309,
1432      3117, 3125,14062, 8312,14062,14062, 3173, 3162, 3178, 3173,
1433      3182, 3184, 3175, 3192, 3190, 3198, 8320, 8328, 7562, 8301,
1434      3176, 8342, 8345, 3272, 3395, 3167, 3191, 3215, 3192, 3199,
1435      3208, 3238, 3283, 3234, 3241, 8348, 8351, 3253, 3288, 3310,
1436      8357, 8364, 3300, 8367, 3294, 3322, 8370, 8373, 3336, 3338,
1437
1438      3355, 8376, 3336, 3349, 8379, 3352, 8383,14062, 8386, 8389,
1439     14062,14062, 8397, 8403, 8411, 8415, 8418, 8421, 8424, 8429,
1440      8442, 8445, 8448, 8451, 8454,14062, 3370, 3357, 3354, 3378,
1441      8457, 8475, 3368, 3377, 8483, 3569, 3572, 8491,14062, 3366,
1442      3368, 8494, 8497, 8500,14062, 8503, 8521, 3417, 3416, 3417,
1443      8529, 8532, 8535, 8506, 8543, 8550, 8556, 3411, 3413, 8564,
1444      8568, 8571, 8575,14062,14062, 8583, 8586, 8594, 8597, 8601,
1445     14062, 8606, 8620, 3425, 3426, 3420, 8615,14062, 8628, 3429,
1446      3437, 3483, 3481, 3500, 3487, 3514, 3498, 3496, 3511, 3503,
1447      3544, 8635, 3529, 3533, 3577, 3529, 3556, 3554, 3561, 3598,
1448
1449      3556, 3590, 3599, 8638, 3696, 3717, 3738, 3592, 3604, 3614,
1450      3627, 3626, 3646, 3651, 3664, 3676, 3683, 3684, 3677, 3682,
1451      3727, 3755, 8641, 8647, 3729, 3749, 8650, 3735, 3755, 3772,
1452      8657, 3747, 3760, 8660, 8663, 8666,14062,14062, 8674, 8677,
1453      8685, 8697, 8692,14062, 8705,14062,14062, 8713,14062, 8716,
1454      8719, 8722, 3751, 3763, 8725, 3755, 8728,14062,14062, 3768,
1455      3793, 3825, 3899, 3833, 3833, 3905, 3836, 3802, 8743, 8746,
1456      8749, 8757, 8764,14062,14062, 3823, 3830, 3850, 8779, 8783,
1457      8791, 4100, 4120, 8799,14062, 8802, 8805,14062,14062, 3846,
1458      8813, 8821, 8824, 8832,14062, 8835,14062,14062, 8843, 8847,
1459
1460      8855, 8862, 8873, 3985, 4369, 3862, 8881, 8884, 8887, 8890,
1461      8893, 3903, 3913, 3912, 3926, 3967, 3962, 3971, 3975, 3979,
1462      3993, 8902, 3943, 3963, 3961, 3981, 3999, 3997, 3999, 4016,
1463      4018, 4028, 4074, 4069, 8906, 8911, 4128, 4208, 4250, 4078,
1464      4096, 4113, 4131, 4139, 4150, 4133, 4146, 4134, 4156, 4164,
1465      4195, 4189, 8914, 4195, 8917, 4209, 4212, 4214, 8924, 4225,
1466      4238, 4242, 8930, 8933, 8941, 4314, 4338, 8949,14062,14062,
1467      8960, 8964, 8967, 4231, 8970, 8973, 8979, 8991, 4280, 4282,
1468      4316, 4301, 4320, 4329, 4346, 4334, 4355, 4341, 4346, 8994,
1469      8997, 9005,14062,14062, 9013,14062, 4342, 9017, 4354, 9020,
1470
1471     14062,14062, 4373, 4379, 4379, 4384, 4385, 4387, 9035, 4376,
1472      9038, 9041, 9050,14062,14062, 9058, 4439, 4467, 9066,14062,
1473     14062, 4389, 4399, 4491, 4400, 4409, 4496, 4389, 9074, 9077,
1474      9085, 9088, 9096, 9099, 9103, 9106, 4434, 4444, 4442, 4453,
1475     14062, 4481, 4475, 4478, 4491,14062, 9115, 4466, 4476, 4464,
1476      4485, 4493, 4501, 4484, 4503, 4493, 4508, 4519, 4524, 9121,
1477      9124, 9134,14062, 4556, 4577, 9139, 4508, 4526, 4542, 4592,
1478      4595, 4541, 4535, 4555, 4573, 4623, 4626, 4575, 4590, 9142,
1479      4575, 9145, 4585, 4601, 9148, 4587, 9153, 4589, 9161, 4677,
1480      5169, 4637, 4646, 4644, 4653, 9169, 9172, 9175, 4619, 9178,
1481
1482      9181, 9196,14062,14062, 9204, 9207, 4608, 4617, 4657, 4641,
1483      4651, 4661, 4680, 4660, 4671, 4674, 4661, 9215,14062,14062,
1484      4667, 9223, 9226, 4650, 4703, 4713, 4743, 4709, 4719, 4750,
1485      9241,14062, 4723, 9244,14062,14062, 4754, 4759, 4757, 4762,
1486      4772, 4765, 4766, 4775, 4785, 4788, 4794, 4805, 9252, 9256,
1487      5288, 5442, 9264,14062,14062, 9272, 9275,14062,14062, 4794,
1488      4814, 4831, 4820, 4805, 4842, 4858, 4847, 9283, 4801, 4804,
1489      4827, 4876, 4877, 4840, 4835, 4843, 4865, 4910, 4925, 4875,
1490      9287, 5632, 5922, 4931, 9295, 9298, 9302, 4883, 4876, 4951,
1491     14062,14062, 4905, 4909, 4895, 4966,14062,14062, 4924, 9317,
1492
1493      4914, 9321, 9325, 9328, 4916, 9334, 9337, 4957, 4968, 4932,
1494      4950, 4970, 4981, 4952, 4963, 4999, 4989, 5021, 5011, 9340,
1495      9343,14062, 9346, 4999, 9349,14062,14062, 9365,14062,14062,
1496      9373, 5005, 5038, 5036, 5072, 5040, 5045, 5043, 5080, 5051,
1497      5040, 9376, 9379,14062,14062, 9387, 5074, 5085,14062, 5077,
1498      5091,14062, 5061, 5108, 5096, 5111, 5099, 5115, 5126, 5128,
1499      5128, 5139, 5150, 5163, 5156, 9394, 9398, 5165, 5176, 5143,
1500      5154, 5177, 5196, 5161, 5173, 9406, 5204, 5205,14062, 5212,
1501      5216, 5236,14062, 5237, 9415, 5215, 5201, 5266,14062,14062,
1502      5220, 5221, 5207, 5269,14062,14062, 5226, 5258, 5274, 5237,
1503
1504      5250, 5271, 5282, 5266, 5277, 5332, 9418, 9421, 9430, 9484,
1505      9532, 5267, 5278,14062, 5288, 5291, 5297,14062, 5312, 9440,
1506      5317, 9443, 9449, 5329, 9452, 5387, 5358, 5400, 5340, 5400,
1507      5375, 5406, 5358, 5422, 5394, 5427, 5397, 9455, 9458, 5387,
1508      9461, 9464, 9479, 5405, 5410,14062, 5447, 5420, 5418,14062,
1509      5449, 5398, 9504, 9507, 9526, 9515, 5455, 5456, 5461, 5470,
1510      5419, 5477, 5444, 5477, 5466, 5493, 5526, 5536, 5503, 5520,
1511      5537, 5546, 5517, 9552,14062,14062, 5557, 5525, 5575, 5515,
1512      5575, 5552, 5585, 5531, 9544,14062, 5598, 5573, 5574, 5603,
1513      5584, 5598, 9563, 5566, 5567,14062, 5579, 5571, 5574,14062,
1514
1515      5590, 5643, 5615, 5650, 5589, 5656, 5629, 5669, 5615, 5681,
1516      9566, 5702, 5678, 9586, 9634, 5809, 5639, 5694, 6438, 5659,
1517      5708, 9574, 9597,14062, 5713,14062, 5714,14062, 5717,14062,
1518      5719,14062, 5709,14062, 5717, 9606,14062, 9609, 5670, 9612,
1519      5723, 5760, 9628, 9655, 5734, 5738,14062, 5761, 5764,14062,
1520      5737, 9663,14062,14062, 9671, 5766, 5798,14062,14062,14062,
1521     14062, 5740,14062, 5785,14062, 5786, 5802,14062,14062, 5795,
1522      5829,14062,14062, 5807,14062, 5840,14062, 5862,14062, 5860,
1523     14062, 5867,14062, 5879, 5881,14062, 5881, 5882, 9681,14062,
1524      6447, 5843, 5888, 7061, 5857, 5902,14062, 5907,14062, 5917,
1525
1526     14062, 5919,14062, 5921, 5913, 5944, 5978, 5926, 6048, 5926,
1527      9684,14062, 5872, 5891, 5897, 6002,14062,14062, 5896, 5916,
1528      5906, 6027,14062, 9620, 9646,14062,14062,14062,14062, 5942,
1529      5944, 9687, 9690, 6012, 6037, 6055, 6054, 9693,14062,14062,
1530      5968, 5976, 5973, 6003, 9708, 6114, 6077, 6117, 6128, 9711,
1531      5993, 5995, 6039, 6043, 6075, 6075,14062,14062,14062,14062,
1532     14062,14062,14062,14062,14062, 6036, 6054, 6049, 6170,14062,
1533     14062, 6074, 6093, 6099, 6176,14062,14062,14062,14062,14062,
1534      9714, 6167, 6154, 6173, 9717, 6145, 6133, 6136,14062, 6155,
1535      6157, 6139, 6148,14062, 6167, 6178, 6180, 9720,14062, 9729,
1536
1537      9740, 6196, 6204, 6218, 6208, 6222, 6232, 6246, 6236, 6226,
1538      6266, 6230, 6272, 9748, 9751, 6245, 6253, 6268, 6262, 6257,
1539      6267, 6285, 6275, 9759, 9766, 6276, 6277, 6314, 6299, 6314,
1540      6303, 6276, 6259, 6262,14062, 6297, 6298, 6281, 6284,14062,
1541      6305, 9762, 6336, 6316, 6334, 6311, 6330, 6334, 6356, 6329,
1542      6349, 6397, 6396, 9777, 6427, 6456, 6372, 6384, 6381, 6390,
1543      6390, 6415, 6412, 6421, 6462,14062, 6466,14062, 9785,14062,
1544     14062, 6440, 6451, 6450, 6463, 6472, 6477, 6477, 6487, 9793,
1545     14062,14062, 6512, 6517,14062, 6507,14062, 6509, 6494, 6514,
1546      6486, 6510, 6507, 6535, 6506, 6529, 6568,14062, 6519, 6519,
1547
1548      6529, 6542, 6536, 6542, 6547, 6561,14062,14062, 6597, 6592,
1549      6604, 6605, 6606, 6612, 6613, 6604, 6626, 6633, 6642, 6633,
1550     14062,14062, 6645, 6651, 6652, 6640, 6651, 6664, 6665, 6652,
1551     14062,14062, 6688, 6686, 6638, 6653, 6653, 6666, 6660, 6659,
1552      6659, 6672, 6710, 6669, 6679, 6741, 6696, 6698, 6716, 6763,
1553      6719, 6743, 6773, 6756, 6793, 6780, 6777, 6795, 6796, 6786,
1554      6783, 6801, 6803, 6796, 6805, 6822, 6824, 6827, 6824, 6851,
1555      6859,14062,14062, 6823, 6833, 6891, 6844, 6847, 6858, 6904,
1556      6865, 6932, 6865, 6877,14062, 6927, 6882, 6885,14062, 6933,
1557      6907, 6916, 6918, 6930, 6951, 6942, 6974, 6944, 6960, 6954,
1558
1559      6984, 6953, 6980, 6971, 7003, 6974, 6990, 6984, 7015, 6986,
1560      6980, 6983,14062, 7032, 6993, 6995,14062, 7048, 7049, 7003,
1561      7059,14062, 7006, 7068,14062, 7048, 7063, 7061, 7070, 7097,
1562      7071,14062, 7072, 7108, 7088,14062, 7086, 7126, 7107,14062,
1563      7113, 7142, 7123,14062, 7120, 7099, 7155,14062, 7102, 7160,
1564     14062, 7158, 7096,14062, 7101,14062, 7140, 7158, 7151, 7172,
1565     14062, 7173, 7168,14062, 7176, 7177,14062, 7186, 7180,14062,
1566      7189, 7184, 7149,14062, 7150,14062, 9801, 7220, 7238, 7230,
1567      7252, 7233, 7268, 7234, 7254, 7241, 7261, 7244, 7264, 7247,
1568      7272, 7304, 7303, 9804,14062,14062, 7307,14062, 7307,14062,
1569
1570      7311, 7275, 7311, 7288, 7328, 7291, 7328, 7294,14062,14062,
1571      7335, 7338,14062,14062,14062, 7335,14062, 7348,14062, 7354,
1572     14062, 7353, 7343, 7412,14062,14062,14062,14062, 7450, 7471,
1573      7360, 7472, 7564, 7729, 7376, 7505, 7542, 7532, 7558, 7582,
1574      7604, 7621, 7345, 7632, 7543, 7649, 7373, 7603, 7481, 7644,
1575      7548, 7630, 7601, 7666, 7669, 7676, 7723, 7696, 7693, 7812,
1576      7760, 7847, 7790, 7798, 7821, 7815, 7780, 7829, 7890, 7900,
1577      7370, 7911, 7686, 7912, 7869, 7721, 7895, 7787, 7463, 7795,
1578      7469, 7992, 8008, 8037, 8042, 8072, 8095, 8011, 8175, 8132,
1579      8145, 7789, 8166, 7888, 8034, 8065, 8105, 8089, 8171, 8006,
1580
1581      8172, 8144, 8262, 7699, 8275, 8225, 7797, 8285, 8276, 8286,
1582      8223, 8289, 8297, 8337, 8382, 8409, 8417, 8422, 7576, 8087,
1583      8165, 8255, 8278, 8452, 8453, 8471, 7695, 8343, 7861, 8416,
1584      8509, 8419, 8544, 8446, 7922, 8463, 8530, 8508, 8560, 8388,
1585      8616, 8204, 8535, 9812, 8536, 8520, 9815,14062, 8594, 8654,
1586      8682, 8723, 8743, 8613, 8627, 8637, 8721, 8600, 8693, 8744,
1587      8752, 8720, 8755, 8734, 8737, 8715, 8798, 8764, 8835, 8771,
1588      8822, 8828, 8858, 8595, 8849, 8903, 8904, 8450, 8801, 8926,
1589      8982, 8934, 8852, 9823, 9826,14062,14062, 9846, 9855, 9864,
1590      9873, 9882, 9891, 9900, 9909, 9918, 9927, 9936, 9945, 9954,
1591
1592      9963, 9972, 9981, 9990, 9999,10008,10017,10026,10035,10044,
1593     10053,10062,10071,10080,10089,10098,10107,10116,10125,10134,
1594     10143,10152,10161,10170,10179,10188,10197,10206,10215,10224,
1595     10233,10242,10251,10260,10269,10278,10287,10296,10305,10314,
1596     10323,10332,10341,10350,10359,10368,10377,10386,10395,10404,
1597     10413,10422,10431,10440,10449,10458,10465,10472,10479,10486,
1598     10493,10500,10507,10514,10521,10528,10535,10542,10549,10556,
1599     10563,10570,10577,10584,10591,10598,10605,10612,10619,10626,
1600     10633,10640,10647,10654,10661,10668,10675,10684,10691,10696,
1601     10703,10708,10715,10720,10727,10732,10739,10744,10751,10756,
1602
1603     10763,10768,10775,10780,10787,10792,10799,10804,10811,10816,
1604     10823,10828,10835,10840,10847,10852,10859,10864,10871,10876,
1605     10883,10888,10895,10900,10907,10912,10919,10924,10931,10936,
1606     10943,10948,10955,10960,10967,10972,10979,10984,10991,10996,
1607     11003,11008,11015,11020,11027,11032,11039,11044,11051,11056,
1608     11065,11071,11078,11086,11094,11102,11109,11117,11124,11132,
1609     11139,11147,11155,11163,11171,11179,11187,11195,11203,11211,
1610     11218,11226,11234,11241,11249,11256,11264,11271,11279,11286,
1611     11294,11301,11309,11316,11324,11331,11339,11346,11354,11361,
1612     11369,11376,11384,11391,11399,11406,11414,11422,11430,11437,
1613
1614     11445,11452,11460,11467,11475,11482,11490,11497,11505,11512,
1615     11520,11528,11536,11545,11551,11558,11566,11573,11581,11588,
1616     11596,11603,11611,11618,11626,11633,11641,11649,11656,11664,
1617     11671,11679,11686,11694,11702,11709,11717,11725,11733,11741,
1618     11749,11756,11764,11771,11779,11786,11794,11802,11810,11817,
1619     11825,11832,11840,11847,11855,11862,11870,11877,11885,11892,
1620     11900,11907,11915,11922,11930,11937,11945,11953,11961,11968,
1621     11976,11983,11991,11998,12006,12015,12024,12031,12038,12046,
1622     12053,12061,12069,12077,12084,12092,12099,12107,12115,12122,
1623     12130,12137,12145,12153,12161,12169,12176,12184,12192,12200,
1624
1625     12207,12215,12222,12230,12238,12246,12253,12261,12268,12276,
1626     12283,12291,12298,12306,12314,12322,12329,12337,12344,12352,
1627     12359,12367,12374,12382,12389,12397,12404,12412,12419,12427,
1628     12434,12442,12449,12457,12466,12475,12482,12490,12498,12505,
1629     12513,12521,12528,12536,12544,12552,12560,12568,12576,12584,
1630     12592,12600,12608,12616,12623,12631,12639,12647,12654,12662,
1631     12669,12677,12685,12692,12700,12707,12715,12722,12730,12737,
1632     12745,12753,12760,12768,12775,12783,12790,12798,12806,12814,
1633     12821,12829,12836,12844,12851,12859,12866,12874,12882,12890,
1634     12899,12908,12916,12923,12931,12938,12946,12954,12961,12969,
1635
1636     12977,12985,12993,13001,13009,13016,13024,13032,13039,13047,
1637     13055,13062,13069,13077,13085,13092,13100,13107,13115,13123,
1638     13130,13138,13145,13153,13160,13168,13175,13183,13191,13199,
1639     13207,13215,13222,13230,13238,13246,13254,13261,13269,13278,
1640     13287,13294,13302,13310,13318,13325,13333,13341,13349,13357,
1641     13365,13372,13380,13388,13395,13403,13411,13418,13425,13433,
1642     13441,13448,13455,13463,13471,13479,13486,13494,13501,13508,
1643     13516,13524,13532,13539,13547,13554,13562,13571,13580,13587,
1644     13595,13603,13611,13619,13627,13635,13643,13651,13659,13666,
1645     13674,13681,13689,13697,13705,13713,13721,13729,13737,13744,
1646
1647     13752,13760,13768,13776,13783,13790,13798,13806,13813,13821,
1648     13828,13836,13845,13854,13861,13869,13877,13885,13893,13901,
1649     13909,13916,13923,13931,13938,13946,13954,13961,13969,13977,
1650     13984,13991,13998,14007,14016,14025,14034,14043,14052
1651     } ;
1652
1653 static const flex_int16_t yy_def[4640] =
1654     {   0,
1655      4088, 4088, 4089, 4089, 4089, 4089, 4090, 4090, 4091, 4091,
1656      4092, 4092, 4093, 4093, 4093, 4093, 4094, 4094, 4095, 4095,
1657      4096, 4096, 4096, 4096, 4088, 4088, 4096, 4096, 4096, 4096,
1658      4088, 4088, 4096, 4096, 4096, 4096, 4088, 4088, 4096, 4096,
1659      4088, 4088, 4096, 4096, 4096, 4096, 4088, 4088, 4096, 4096,
1660      4088, 4088, 4096, 4096, 4096, 4096, 4097, 4097, 4098, 4098,
1661      4088, 4088, 4098, 4098, 4098, 4098, 4099, 4099, 4100, 4100,
1662      4088, 4088, 4100, 4100, 4100, 4100, 4101, 4101, 4102, 4102,
1663      4103, 4103, 4104, 4104, 4105, 4105, 4106, 4106, 4088, 4088,
1664      4106, 4106, 4106, 4106, 4107, 4107, 4108, 4108, 4088, 4088,
1665
1666      4108, 4108, 4108, 4108, 4109, 4109, 4110, 4110, 4088, 4088,
1667      4110, 4110, 4110, 4110, 4111, 4111, 4112, 4112, 4113, 4113,
1668      4114, 4114, 4088, 4088, 4114, 4114, 4114, 4114, 4115, 4115,
1669      4116, 4116, 4088, 4088, 4116, 4116, 4116, 4116, 4117, 4117,
1670      4118, 4118, 4088, 4088, 4118, 4118, 4118, 4118, 4119, 4119,
1671      4120, 4120, 4121, 4121, 4122, 4122, 4088, 4088, 4122, 4122,
1672      4122, 4122, 4123, 4123, 4124, 4124, 4088, 4088, 4124, 4124,
1673      4124, 4124, 4125, 4125, 4126, 4126, 4127, 4127, 4128, 4128,
1674      4129, 4129, 4130, 4130, 4131, 4131, 4132, 4132, 4088, 4088,
1675      4133, 4133, 4134, 4134, 4134, 4134, 4088, 4088, 4134, 4134,
1676
1677      4134, 4134, 4088, 4088, 4134, 4134, 4088, 4088, 4134, 4134,
1678      4134, 4134, 4135, 4135, 4136, 4136, 4088, 4088, 4136, 4136,
1679      4136, 4136, 4137, 4137, 4138, 4138, 4139, 4139, 4140, 4140,
1680      4141, 4141, 4142, 4142, 4088, 4088, 4142, 4142, 4142, 4142,
1681      4143, 4143, 4144, 4144, 4145, 4145, 4146, 4146, 4088, 4088,
1682      4146, 4146, 4146, 4146, 4147, 4147, 4148, 4148, 4088, 4088,
1683      4148, 4148, 4148, 4148, 4149, 4149, 4150, 4150, 4151, 4151,
1684      4152, 4152, 4153, 4153, 4154, 4154, 4154, 4154, 4088, 4088,
1685      4154, 4154, 4154, 4154, 4088, 4088, 4154, 4154, 4154, 4154,
1686      4088, 4088, 4154, 4154, 4088, 4088, 4154, 4154, 4154, 4154,
1687
1688      4088, 4088, 4154, 4154, 4088, 4088, 4154, 4154, 4154, 4154,
1689      4155, 4155, 4156, 4156, 4088, 4088, 4156, 4156, 4156, 4156,
1690      4088, 4088, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1691      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1692      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1693      4087, 4087, 4157, 4087, 4087, 4157, 4157, 4087, 4087, 4087,
1694       360, 4087,  362, 4087,  364,  362,  363,  362,  363,  364,
1695       370,  369,  362, 4087, 4087, 4087, 4158, 4087, 4087, 4158,
1696      4158, 4158, 4087, 4087,  362,  362,  362, 4087, 4087, 4087,
1697      4159, 4087, 4087, 4159, 4159, 4159, 4159, 4159, 4087, 4087,
1698
1699       362,  362,  362, 4087, 4087, 4087, 4160, 4087, 4087, 4160,
1700      4087, 4087, 4087, 4087, 4087, 4087, 4161, 4087, 4087, 4161,
1701      4161, 4161, 4087, 4087, 4087, 4087, 4087, 4087, 4162, 4087,
1702      4087, 4162, 4162, 4162, 4087, 4087,  362,  362, 4087, 4087,
1703      4087, 4163, 4087, 4087, 4163, 4163, 4087, 4087,  362,  362,
1704      4087, 4087, 4087, 4164, 4087, 4087, 4164, 4164, 4164, 4087,
1705      4087,  362,  362, 4087, 4087, 4087, 4165, 4087, 4087, 4165,
1706      4165, 4165, 4165, 4165, 4165, 4087, 4087, 4087, 4087, 4087,
1707      4087, 4166, 4087, 4087, 4166, 4166, 4166, 4166, 4166, 4166,
1708      4166, 4166, 4087, 4087,  362,  362, 4087, 4087, 4087, 4167,
1709
1710      4087, 4087, 4167, 4087, 4087,  362,  362, 4087, 4087, 4087,
1711      4168, 4087, 4087, 4168, 4168, 4168, 4168, 4168, 4087, 4087,
1712       362,  362,  362, 4087, 4087, 4087, 4169, 4087, 4087, 4169,
1713      4169, 4169, 4087, 4087, 4087, 4087, 4087, 4087, 4170, 4087,
1714      4087, 4170, 4087, 4087,  364,  364,  362, 4087, 4087, 4087,
1715      4171, 4087, 4087, 4171, 4171, 4171, 4171, 4087, 4087,  362,
1716       362, 4087, 4087, 4087, 4172, 4087, 4087, 4172, 4172, 4087,
1717      4087, 4087, 4087, 4087, 4087, 4173, 4087, 4087, 4173, 4173,
1718      4087, 4087, 4087, 4087, 4087, 4087, 4174, 4087, 4087, 4174,
1719      4174, 4087, 4087, 4087, 4087, 4087, 4087, 4175, 4087, 4087,
1720
1721      4175, 4175, 4175, 4175, 4175, 4175, 4087, 4087, 4087, 4087,
1722      4087, 4087, 4087, 4176, 4087, 4087, 4176, 4087, 4087,  364,
1723       620,  362,  362,  362,  362, 4087, 4087, 4087, 4177, 4087,
1724      4087, 4177, 4177, 4177, 4177, 4177, 4087, 4087,  362,  362,
1725      4087, 4087, 4087, 4178, 4087, 4087, 4178, 4178, 4087, 4087,
1726      4087, 4087, 4087, 4087, 4179, 4087, 4087, 4179, 4179, 4179,
1727      4179, 4179, 4087, 4087, 4087, 4087, 4087, 4087, 4180, 4087,
1728      4087, 4180, 4180, 4087, 4087,  362,  362, 4087, 4087, 4087,
1729      4181, 4087, 4087, 4181, 4181, 4087, 4087, 4087, 4087, 4087,
1730      4087, 4182, 4087, 4087, 4182, 4182, 4182, 4182, 4087, 4087,
1731
1732       362,  362, 4087, 4087, 4087, 4183, 4087, 4087, 4183, 4183,
1733      4183, 4183, 4087, 4087,  362,  362,  362, 4087, 4087, 4087,
1734      4184, 4087, 4087, 4184, 4184, 4184, 4087, 4087, 4087, 4087,
1735      4087, 4185, 4087, 4087, 4185, 4185, 4185, 4087, 4087, 4087,
1736      4087, 4087, 4087, 4186, 4087, 4087, 4186, 4186, 4087, 4087,
1737       364,  751,  362,  364,  364,  362,  753,  751,  362, 4087,
1738      4087, 4087, 4187, 4087, 4087, 4187, 4187, 4187, 4087, 4087,
1739       362,  362, 4087, 4188, 4087, 4087, 4087, 4087, 4087, 4087,
1740      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4189, 4189,
1741      4189, 4190, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1742
1743      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1744      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1745      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1746      4087, 4191, 4191, 4191, 4191, 4191, 4192, 4087, 4087, 4193,
1747      4193, 4193, 4193, 4193, 4193, 4194, 4087, 4087, 4195, 4195,
1748      4196, 4087, 4197, 4197, 4197, 4197, 4198, 4087, 4199, 4199,
1749      4199, 4199, 4200, 4087, 4201, 4201, 4201, 4202, 4087, 4203,
1750      4203, 4203, 4203, 4204, 4087, 4205, 4205, 4205, 4205, 4205,
1751      4205, 4205, 4205, 4206, 4087, 4207, 4207, 4207, 4207, 4207,
1752      4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207,
1753
1754      4208, 4087, 4209, 4209, 4210, 4087, 4211, 4211, 4211, 4211,
1755      4211, 4211, 4211, 4212, 4087, 4087, 4213, 4213, 4213, 4213,
1756      4214, 4087, 4215, 4215, 4216, 4087, 4217, 4217, 4217, 4217,
1757      4217, 4217, 4218, 4087, 4219, 4219, 4219, 4220, 4087, 4221,
1758      4221, 4221, 4222, 4087, 4223, 4223, 4223, 4224, 4087, 4225,
1759      4225, 4225, 4225, 4225, 4225, 4225, 4225, 4226, 4087, 4087,
1760      4227, 4227, 4228, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1761      4229, 4229, 4229, 4229, 4229, 4229, 4230, 4087, 4231, 4231,
1762      4231, 4232, 4087, 4233, 4233, 4233, 4233, 4233, 4233, 4233,
1763      4233, 4233, 4234, 4087, 4235, 4235, 4235, 4235, 4236, 4087,
1764
1765      4237, 4237, 4237, 4238, 4087, 4239, 4239, 4239, 4239, 4239,
1766      4240, 4087, 4241, 4241, 4241, 4241, 4241, 4242, 4087, 4087,
1767      4243, 4243, 4243, 4243, 4087, 4244, 4087, 4087, 4245, 4245,
1768      4245, 4245, 4246, 4087, 4247, 4247, 4247, 4248, 4087, 4087,
1769      4249, 4249, 4249, 4249, 4249, 4250, 4251, 4087, 4251, 4087,
1770      4087, 4087, 4252, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1771      4087, 4253, 4254, 4254, 4087, 4087, 4087, 4087, 4087, 4087,
1772      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1773      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1774      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1775
1776      4087, 4087, 4087, 4087, 4087, 4087, 4255, 4255, 4255, 4255,
1777      4256, 4256, 4087, 4257, 4257, 4257, 4257, 4257, 4258, 4258,
1778      4087, 4259, 4260, 4260, 4261, 4087, 4087, 4261, 4262, 4262,
1779      4263, 4263, 4263, 4264, 4264, 4265, 4265, 4266, 4266, 4267,
1780      4267, 4267, 4268, 4268, 4087, 4087, 4087, 4087, 4269, 4269,
1781      4269, 4269, 4269, 4270, 4270, 4271, 4087, 4087, 4271, 4087,
1782      4087, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271,
1783      4271, 4272, 4272, 4087, 4087, 4273, 4273, 4274, 4274, 4274,
1784      4087, 4087, 4274, 4274, 4274, 4275, 4275, 4087, 4276, 4087,
1785      4087, 4087, 4087, 4277, 4277, 4278, 4279, 4279, 4280, 4087,
1786
1787      4087, 4280, 4280, 4280, 4281, 4281, 4282, 4087, 4087, 4283,
1788      4283, 4087, 4087, 4284, 4285, 4285, 4286, 4286, 4287, 4287,
1789      4288, 4288, 4288, 4087, 4087, 4288, 4288, 4288, 4289, 4289,
1790      4087, 4290, 4291, 4291, 4087, 4087, 4087, 4087, 4292, 4292,
1791      4292, 4292, 4292, 4293, 4293, 4087, 4087, 4294, 4295, 4295,
1792      4296, 4087, 4087, 4296, 4296, 4296, 4296, 4296, 4296, 4297,
1793      4297, 4298, 4298, 4298, 4299, 4299, 4300, 4087, 4087, 4301,
1794      4301, 4302, 4302, 4087, 4087, 4302, 4303, 4303, 4304, 4087,
1795      4087, 4304, 4304, 4305, 4305, 4087, 4306, 4087, 4087, 4306,
1796      4087, 4307, 4307, 4087, 4308, 4308, 4308, 4309, 4309, 4087,
1797
1798      4087, 4310, 4311, 4311, 4312, 4312, 4312, 4312, 4313, 4313,
1799      4314, 4087, 4087, 4314, 4087, 4087, 4315, 4087, 4087, 4087,
1800      4087, 4087, 4087, 4087, 4087, 4316, 4087, 4317, 4087, 4317,
1801      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1802      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1803      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1804      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1805      4087, 4087, 4087, 4087, 4087, 4318, 4318, 4087, 4087, 4318,
1806      4087, 4319, 4087, 4319, 4087, 4320, 4320, 4320, 4320, 4320,
1807      4087, 4321, 4087, 4321, 4087, 4322, 4087, 4323, 4087, 4323,
1808
1809      4324, 4087, 4087, 4087, 4324, 4087, 4325, 4087, 4325, 4087,
1810      4087, 4326, 4326, 4087, 4087, 4087, 4327, 4087, 4327, 4087,
1811      4087, 4087, 4087, 4087, 4328, 4087, 4328, 4087, 4087, 4329,
1812      4329, 4087, 4087, 4087, 4330, 4087, 4330, 4087, 4087, 4087,
1813      4087, 4087, 4087, 4087, 4087, 4331, 4331, 4331, 4331, 4087,
1814      4332, 4087, 4332, 4333, 4333, 4333, 4087, 4087, 4087, 4333,
1815      4087, 4087, 4087, 4087, 4087, 4333, 4333, 4333, 4333, 4333,
1816      4333, 4333, 4333, 4333, 4087, 4334, 4087, 4334, 4087, 4087,
1817      4087, 4087, 4335, 4087, 4335, 4336, 4336, 4336, 4087, 4087,
1818      4087, 4336, 4336, 4336, 4087, 4337, 4087, 4337, 4087, 4338,
1819
1820      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4339, 4087, 4339,
1821      4340, 4087, 4341, 4087, 4341, 4342, 4087, 4087, 4087, 4342,
1822      4342, 4342, 4087, 4343, 4087, 4343, 4344, 4087, 4087, 4087,
1823      4087, 4345, 4087, 4345, 4087, 4087, 4087, 4346, 4087, 4347,
1824      4087, 4347, 4348, 4348, 4087, 4349, 4087, 4349, 4350, 4350,
1825      4350, 4350, 4087, 4087, 4087, 4087, 4087, 4350, 4350, 4087,
1826      4351, 4087, 4351, 4087, 4352, 4087, 4353, 4087, 4353, 4087,
1827      4087, 4087, 4087, 4354, 4354, 4354, 4354, 4354, 4087, 4355,
1828      4087, 4355, 4087, 4087, 4087, 4356, 4087, 4357, 4087, 4357,
1829      4358, 4087, 4087, 4087, 4087, 4087, 4358, 4087, 4087, 4358,
1830
1831      4358, 4358, 4087, 4359, 4087, 4359, 4087, 4087, 4087, 4087,
1832      4360, 4087, 4361, 4087, 4361, 4362, 4087, 4087, 4087, 4087,
1833      4363, 4087, 4363, 4364, 4364, 4087, 4087, 4087, 4364, 4087,
1834      4365, 4087, 4365, 4366, 4087, 4087, 4087, 4366, 4366, 4087,
1835      4367, 4087, 4367, 4087, 4368, 4087, 4087, 4087, 4368, 4087,
1836      4087, 4369, 4087, 4369, 4370, 4370, 4370, 4087, 4371, 4087,
1837      4371, 4087, 4087, 4087, 4372, 4087, 4373, 4087, 4373, 4087,
1838      4087, 4374, 4374, 4087, 4087, 4374, 4087, 4375, 4087, 4375,
1839      4376, 4377, 4087, 4087, 4087, 4087, 4378, 4087, 4087, 4087,
1840      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1841
1842      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1843      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1844      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1845      4087, 4087, 4087, 4087, 4379, 4379, 4087, 4087, 4087, 4379,
1846      4380, 4087, 4381, 4087, 4087, 4381, 4381, 4381, 4382, 4087,
1847      4383, 4384, 4385, 4385, 4386, 4087, 4087, 4087, 4387, 4387,
1848      4087, 4087, 4087, 4388, 4087, 4087, 4087, 4087, 4087, 4087,
1849      4389, 4087, 4087, 4087, 4390, 4390, 4087, 4087, 4087, 4391,
1850      4087, 4087, 4087, 4392, 4392, 4392, 4392, 4393, 4394, 4394,
1851      4394, 4087, 4087, 4087, 4087, 4087, 4394, 4394, 4394, 4394,
1852
1853      4394, 4394, 4394, 4394, 4394, 4394, 4395, 4396, 4397, 4397,
1854      4087, 4087, 4397, 4397, 4397, 4398, 4087, 4087, 4087, 4399,
1855      4087, 4087, 4400, 4401, 4401, 4401, 4401, 4402, 4403, 4404,
1856      4405, 4406, 4087, 4087, 4407, 4408, 4409, 4409, 4409, 4409,
1857      4087, 4087, 4087, 4409, 4409, 4410, 4087, 4411, 4412, 4087,
1858      4087, 4087, 4087, 4413, 4087, 4087, 4413, 4413, 4413, 4414,
1859      4415, 4416, 4417, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1860      4087, 4417, 4087, 4087, 4417, 4418, 4087, 4087, 4087, 4087,
1861      4087, 4087, 4419, 4420, 4421, 4422, 4423, 4423, 4423, 4424,
1862      4425, 4425, 4087, 4087, 4426, 4087, 4087, 4087, 4427, 4087,
1863
1864      4428, 4429, 4087, 4087, 4429, 4430, 4431, 4432, 4087, 4087,
1865      4087, 4433, 4433, 4087, 4087, 4087, 4433, 4434, 4435, 4436,
1866      4436, 4087, 4436, 4087, 4087, 4437, 4087, 4087, 4087, 4087,
1867      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1868      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1869      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1870      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1871      4087, 4438, 4438, 4438, 4439, 4087, 4440, 4087, 4087, 4087,
1872      4440, 4440, 4440, 4441, 4087, 4087, 4087, 4442, 4443, 4443,
1873      4444, 4445, 4445, 4446, 4447, 4448, 4448, 4449, 4450, 4450,
1874
1875      4087, 4087, 4450, 4451, 4087, 4087, 4452, 4452, 4087, 4087,
1876      4087, 4452, 4452, 4452, 4452, 4452, 4452, 4087, 4087, 4452,
1877      4452, 4452, 4453, 4454, 4455, 4455, 4087, 4087, 4087, 4455,
1878      4087, 4087, 4455, 4456, 4087, 4087, 4087, 4087, 4457, 4087,
1879      4087, 4087, 4458, 4459, 4459, 4459, 4459, 4460, 4461, 4462,
1880      4087, 4087, 4463, 4087, 4087, 4087, 4464, 4465, 4466, 4087,
1881      4087, 4466, 4466, 4087, 4087, 4466, 4467, 4087, 4468, 4469,
1882      4087, 4087, 4087, 4087, 4470, 4087, 4087, 4087, 4470, 4470,
1883      4470, 4471, 4087, 4087, 4472, 4473, 4087, 4087, 4087, 4473,
1884      4087, 4087, 4087, 4473, 4474, 4475, 4476, 4477, 4478, 4479,
1885
1886      4479, 4479, 4480, 4481, 4087, 4087, 4087, 4087, 4087, 4482,
1887      4087, 4087, 4087, 4087, 4483, 4087, 4484, 4485, 4087, 4087,
1888      4087, 4087, 4087, 4486, 4487, 4488, 4489, 4489, 4489, 4490,
1889      4491, 4492, 4492, 4087, 4493, 4087, 4087, 4087, 4087, 4087,
1890      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1891      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1892      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1893      4087, 4087, 4087, 4087, 4087, 4087, 4494, 4495, 4087, 4496,
1894      4496, 4496, 4496, 4497, 4087, 4087, 4087, 4087, 4498, 4499,
1895      4499, 4500, 4087, 4087, 4087, 4087, 4501, 4502, 4087, 4087,
1896
1897      4087, 4087, 4503, 4087, 4087, 4504, 4087, 4087, 4087, 4087,
1898      4087, 4505, 4087, 4087, 4087, 4087, 4087, 4506, 4506, 4506,
1899      4087, 4087, 4506, 4506, 4506, 4087, 4087, 4087, 4087, 4087,
1900      4506, 4506, 4507, 4508, 4509, 4509, 4087, 4087, 4087, 4087,
1901      4087, 4509, 4087, 4087, 4087, 4510, 4511, 4512, 4512, 4512,
1902      4512, 4087, 4087, 4513, 4514, 4087, 4087, 4087, 4515, 4516,
1903      4517, 4518, 4087, 4087, 4087, 4087, 4087, 4518, 4087, 4087,
1904      4087, 4518, 4087, 4087, 4087, 4519, 4520, 4087, 4087, 4087,
1905      4087, 4521, 4521, 4521, 4521, 4522, 4087, 4087, 4087, 4087,
1906      4087, 4523, 4523, 4523, 4524, 4525, 4526, 4527, 4528, 4087,
1907
1908      4087, 4529, 4087, 4087, 4530, 4531, 4087, 4087, 4087, 4532,
1909      4087, 4533, 4087, 4534, 4535, 4087, 4087, 4087, 4087, 4087,
1910      4087, 4087, 4087, 4087, 4087, 4087, 4536, 4537, 4087, 4087,
1911      4087, 4087, 4087, 4087, 4538, 4539, 4540, 4541, 4541, 4087,
1912      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1913      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1914      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1915      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1916      4542, 4543, 4087, 4544, 4544, 4544, 4544, 4087, 4087, 4087,
1917      4545, 4546, 4087, 4087, 4547, 4087, 4087, 4087, 4087, 4087,
1918
1919      4087, 4548, 4549, 4087, 4087, 4087, 4087, 4087, 4087, 4550,
1920      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4551, 4087,
1921      4087, 4087, 4552, 4552, 4552, 4087, 4087, 4087, 4087, 4087,
1922      4552, 4552, 4087, 4087, 4087, 4552, 4552, 4553, 4554, 4555,
1923      4555, 4087, 4087, 4087, 4555, 4556, 4557, 4558, 4087, 4087,
1924      4558, 4558, 4558, 4559, 4560, 4561, 4562, 4087, 4087, 4563,
1925      4087, 4087, 4087, 4563, 4563, 4087, 4087, 4087, 4564, 4087,
1926      4087, 4087, 4565, 4565, 4565, 4565, 4566, 4567, 4087, 4087,
1927      4567, 4568, 4569, 4087, 4087, 4570, 4571, 4087, 4087, 4087,
1928      4087, 4087, 4087, 4087, 4087, 4572, 4087, 4087, 4573, 4087,
1929
1930      4574, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1931      4087, 4087, 4087, 4087, 4087, 4087, 4575, 4087, 4087, 4087,
1932      4087, 4087, 4087, 4087, 4087, 4576, 4577, 4578, 4579, 4579,
1933      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1934      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1935      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1936      4087, 4087, 4087, 4087, 4580, 4581, 4087, 4087, 4087, 4582,
1937      4582, 4582, 4087, 4583, 4584, 4087, 4087, 4087, 4585, 4586,
1938      4587, 4588, 4087, 4087, 4087, 4589, 4590, 4590, 4590, 4087,
1939      4087, 4087, 4590, 4590, 4590, 4087, 4087, 4591, 4087, 4087,
1940
1941      4592, 4592, 4592, 4593, 4594, 4595, 4087, 4087, 4087, 4595,
1942      4595, 4595, 4596, 4597, 4598, 4599, 4600, 4600, 4600, 4087,
1943      4087, 4087, 4087, 4601, 4087, 4087, 4087, 4602, 4602, 4602,
1944      4603, 4604, 4087, 4087, 4087, 4604, 4087, 4087, 4605, 4606,
1945      4087, 4087, 4087, 4087, 4087, 4607, 4087, 4087, 4087, 4608,
1946      4087, 4609, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1947      4087, 4087, 4087, 4087, 4087, 4087, 4610, 4087, 4087, 4087,
1948      4611, 4612, 4613, 4614, 4614, 4087, 4087, 4087, 4087, 4087,
1949      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1950      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1951
1952      4087, 4087, 4087, 4087, 4087, 4615, 4087, 4087, 4087, 4087,
1953      4087, 4087, 4087, 4087, 4616, 4616, 4087, 4617, 4087, 4087,
1954      4618, 4619, 4620, 4621, 4087, 4087, 4622, 4622, 4622, 4622,
1955      4087, 4087, 4622, 4622, 4087, 4087, 4087, 4087, 4087, 4623,
1956      4623, 4623, 4624, 4087, 4087, 4087, 4087, 4625, 4625, 4625,
1957      4625, 4087, 4087, 4626, 4627, 4087, 4087, 4628, 4628, 4628,
1958      4087, 4629, 4087, 4087, 4087, 4087, 4087, 4630, 4630, 4087,
1959      4087, 4087, 4087, 4631, 4632, 4633, 4087, 4087, 4608, 4087,
1960      4609, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1961      4087, 4610, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1962
1963      4087, 4087, 4611, 4612, 4613, 4614, 4614, 4087, 4087, 4087,
1964      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1965      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1966      4087, 4087, 4087, 4087, 4615, 4087, 4087, 4087, 4087, 4087,
1967      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4619,
1968      4620, 4621, 4622, 4622, 4622, 4622, 4087, 4087, 4087, 4622,
1969      4622, 4087, 4087, 4087, 4087, 4087, 4087, 4623, 4623, 4087,
1970      4087, 4624, 4087, 4087, 4087, 4625, 4625, 4625, 4087, 4087,
1971      4087, 4087, 4087, 4087, 4087, 4627, 4087, 4087, 4087, 4628,
1972      4628, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1973
1974      4087, 4087, 4087, 4087, 4087, 4631, 4632, 4633, 4608, 4087,
1975      4609, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1976      4087, 4610, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1977      4087, 4087, 4087, 4087, 4611, 4612, 4613, 4614, 4614, 4087,
1978      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1979      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1980      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1981      4619, 4620, 4621, 4622, 4622, 4087, 4087, 4622, 4622, 4622,
1982      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4623, 4087,
1983      4087, 4087, 4087, 4087, 4087, 4087, 4625, 4625, 4625, 4087,
1984
1985      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4627, 4628,
1986      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1987      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4631, 4087, 4087,
1988      4087, 4087, 4608, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1989      4087, 4087, 4087, 4087, 4087, 4087, 4610, 4087, 4087, 4087,
1990      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1991      4087, 4087, 4087, 4613, 4614, 4614, 4087, 4087, 4087, 4087,
1992      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1993      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
1994      4087, 4087, 4087, 4087, 4087, 4619, 4620, 4621, 4622, 4087,
1995
1996      4087, 4087, 4087, 4087, 4087, 4087, 4622, 4622, 4087, 4087,
1997      4087, 4087, 4087, 4087, 4087, 4087, 4623, 4087, 4087, 4087,
1998      4625, 4087, 4087, 4625, 4087, 4087, 4087, 4087, 4087, 4087,
1999      4087, 4087, 4628, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2000      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4631, 4087,
2001      4087, 4087, 4087, 4087, 4087, 4608, 4087, 4087, 4087, 4087,
2002      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4610, 4087, 4087,
2003      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2004      4087, 4087, 4087, 4613, 4614, 4614, 4614, 4087, 4087, 4087,
2005      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2006
2007      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2008      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4619,
2009      4087, 4087, 4621, 4622, 4087, 4087, 4087, 4087, 4087, 4087,
2010      4622, 4622, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2011      4623, 4625, 4087, 4087, 4087, 4625, 4087, 4087, 4087, 4087,
2012      4087, 4087, 4628, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2013      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2014      4087, 4087, 4087, 4087, 4087, 4608, 4087, 4087, 4087, 4087,
2015      4087, 4087, 4087, 4087, 4610, 4087, 4087, 4087, 4087, 4087,
2016      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2017
2018      4087, 4087, 4087, 4087, 4087, 4613, 4614, 4614, 4614, 4634,
2019      4635, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2020      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2021      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4619, 4621, 4622,
2022      4087, 4087, 4622, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2023      4087, 4623, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2024      4628, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2025      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2026      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2027      4087, 4087, 4610, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2028
2029      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4613,
2030      4614, 4636, 4637, 4634, 4635, 4087, 4087, 4087, 4087, 4087,
2031      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2032      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4621, 4622, 4087,
2033      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2034      4623, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2035      4087, 4628, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2036      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2037      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2038      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2039
2040      4087, 4087, 4087, 4087, 4613, 4636, 4614, 4638, 4637, 4639,
2041      4614, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2042      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2043      4087, 4621, 4622, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2044      4087, 4087, 4087, 4087, 4623, 4087, 4087, 4087, 4087, 4628,
2045      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2046      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2047      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2048      4613, 4638, 4087, 4639, 4614, 4087, 4087, 4087, 4087, 4087,
2049      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2050
2051      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2052      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2053      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2054      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2055      4087, 4613, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2056      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2057      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2058      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2059      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2060      4087, 4087, 4087, 4087, 4087, 4087, 4613, 4087, 4087, 4087,
2061
2062      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2063      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2064      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2065      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2066      4087, 4087, 4613, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2067      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2068      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2069      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2070      4087, 4613, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2071      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2072
2073      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2074      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4613, 4087,
2075      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2076      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2077      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2078      4087, 4613, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2079      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2080      4087, 4087, 4087, 4087, 4087, 4087, 4613, 4087, 4087, 4087,
2081      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2082      4087, 4087, 4087, 4613, 4087, 4087, 4087, 4087, 4087, 4087,
2083
2084      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2085      4613, 4613, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2086      4087, 4087, 4613, 4613, 4087, 4087, 4087, 4087, 4613, 4613,
2087      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2088      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2089      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2090      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2091      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2092      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2093      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2094
2095      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2096      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2097      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2098      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2099      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4087, 4613, 4613,
2100      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2101      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2102      4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
2103      4613, 4613, 4613, 4613, 4613, 4087,    0, 4087, 4087, 4087,
2104      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2105
2106      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2107      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2108      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2109      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2110      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2111      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2112      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2113      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2114      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2115      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2116
2117      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2118      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2119      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2120      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2121      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2122      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2123      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2124      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2125      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2126      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2127
2128      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2129      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2130      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2131      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2132      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2133      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2134      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2135      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2136      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2137      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2138
2139      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2140      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2141      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2142      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2143      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2144      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2145      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2146      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2147      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2148      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2149
2150      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2151      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2152      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2153      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2154      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2155      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2156      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2157      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2158      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2159      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2160
2161      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2162      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2163      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2164      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087
2165     } ;
2166
2167 static const flex_int16_t yy_nxt[14138] =
2168     {   0,
2169      4087,  326,  327,  326,  326,  327,  326,  326,  327,  326,
2170       326,  327,  326,  331,  327,  331,  337,  328,  334,  337,
2171       328,  334, 1048,  329, 4087,  335,  329,  846,  335,  332,
2172       331,  327,  331,  774,  338,  340,  341,  338,  340,  341,
2173       342,  343,  792,  342,  343,  774,  332,  347,  348,  775,
2174       344,  340,  341,  344,  345,  777,  342,  340,  341, 1291,
2175       345,  776,  342,  347,  348,  847,  344,  359,  327,  359,
2176      1839,  776,  344,  359,  327,  359,  931,  359,  327,  359,
2177       359,  327,  359,  360,  327,  327,  327,  792,  932,  360,
2178       820,  777,  349,  361,  804,  820,  361,  773,  773,  773,
2179
2180       362,  773,  773,  773,  773,  773,  773,  776,  349,  350,
2181       351,  327,  351,  350,  350,  350,  350,  350,  350,  350,
2182       352,  350,  350,  350, 1840,  350,  354,  350,  355,  350,
2183       327,  327,  327,  359,  327,  359,  359,  327,  359,  895,
2184       820,  359,  327,  359,  804,  882,  362,  835,  777,  360,
2185       883, 1844,  360,  896,  836,  350,  350,  363,  359,  327,
2186       359,  773,  773,  773,  776,  837,  356,  773,  773,  773,
2187       773,  773,  773, 1845,  363,  357,  350,  351,  327,  351,
2188       350,  350,  350,  350,  350,  350,  350,  352,  350,  350,
2189       350,  887,  350,  354,  350,  355,  350,  327,  327,  327,
2190
2191       327,  327,  327,  359,  327,  359,  340,  341,  359,  327,
2192       359,  342,  888,  364,  838,  837,  364,  796,  820,  365,
2193      1847,  727,  350,  350,  365,  359,  327,  359,  359,  327,
2194       359, 1848,  814,  356,  327,  327,  327,  327,  327,  327,
2195      1054,  366,  357, 1055,  366,  359,  327,  359,  838, 1850,
2196       367,  728,  820,  367,  359,  327,  359,  327,  327,  327,
2197      1851,  363,  327,  327,  327,  359,  327,  359,  820,  808,
2198       363, 1853,  777,  368,  359,  327,  359, 1179,  368,  812,
2199      1180,  366,  359,  327,  359,  359,  327,  359,  776,  792,
2200       366,  327,  327,  327,  327,  327,  327, 1854,  369,  793,
2201
2202       807,  369,  359,  327,  359, 1857,  914,  370,  977,  777,
2203       370,  359,  327,  359,  327,  327,  327, 1343,  371,  327,
2204       327,  327,  359,  327,  359,  776, 1858,  371,  825,  826,
2205       372,  359,  327,  359, 1344,  372,  846, 1343,  369,  359,
2206       327,  359,  359,  327,  359,  827,  847,  369,  773,  773,
2207       773, 1018,  805,  817, 1499,  373,  915, 1859,  373,  374,
2208       375,  327,  375,  374,  374,  374,  374,  374,  374,  374,
2209       376,  374,  374,  374,  777,  374,  378,  374,  379,  374,
2210       384,  327,  384,  384,  327,  384,  327,  327,  327,  820,
2211       776,  327,  327,  327,  912, 1644,  385,  777,  913,  385,
2212
2213      1861, 1019,  386,  792,  851,  374,  374,  386,  384,  327,
2214       384,  380, 1344,  776,  381,  773,  773,  773,  773,  773,
2215       773,  773,  773,  773,  385, 1863,  382,  374,  375,  327,
2216       375,  374,  374,  374,  374,  374,  374,  374,  376,  374,
2217       374,  374,  830,  374,  378,  374,  379,  374,  384,  327,
2218       384,  384,  327,  384,  384,  327,  384, 1070,  802,  400,
2219       327,  400,  956, 1872,  385,  777,  957,  387, 1071, 1068,
2220       387, 1072,  857,  374,  374,  401,  400,  327,  400,  380,
2221       863,  776,  381,  773,  773,  773,  773,  773,  773,  773,
2222       773,  773,  401, 1069,  382,  388,  389,  327,  389,  388,
2223
2224       388,  388,  388,  388,  388,  388,  390,  388,  388,  388,
2225       777,  388,  392,  388,  393,  388,  327,  327,  327,  327,
2226       327,  327,  400,  327,  400,  868,  776,  400,  327,  400,
2227      1550,  777,  402,  820,  777,  402, 1551,  777,  401, 1875,
2228       874,  388,  388,  401,  400,  327,  400,  776, 1705,  394,
2229       776,  395,  863,  776,  396,  773,  773,  773,  397, 1883,
2230       403, 1706,  398,  388,  389,  327,  389,  388,  388,  388,
2231       388,  388,  388,  388,  390,  388,  388,  388,  820,  388,
2232       392,  388,  393,  388,  400,  327,  400,  412,  327,  412,
2233       412,  327,  412,  820,  891,  424,  327,  424, 1885,  777,
2234
2235       403,  838,  892,  413, 1080,  820,  413, 1080,  893,  388,
2236       388,  425,  424,  327,  424,  776, 1705,  394, 1081,  395,
2237       868, 1095,  396,  773,  773,  773,  397,  925,  425, 1712,
2238       398,  404,  405,  327,  405,  404,  404,  404,  404,  404,
2239       404,  404,  406,  404,  404,  404,  964,  404,  408,  404,
2240       409,  404,  436,  327,  436,  436,  327,  436,  327,  327,
2241       327,  969,  897,  327,  327,  327,  808, 1887,  437,  838,
2242       898,  437, 1888,  820,  386,  899,  812,  404,  404,  386,
2243       436,  327,  436,  436,  327,  436,  773,  773,  773,  773,
2244       773,  773,  773,  773,  773, 1889,  437, 1891, 1892,  437,
2245
2246      1896,  410,  404,  405,  327,  405,  404,  404,  404,  404,
2247       404,  404,  404,  406,  404,  404,  404,  777,  404,  408,
2248       404,  409,  404,  436,  327,  436,  436,  327,  436,  448,
2249       327,  448, 1089,  776,  448,  327,  448,  997, 1900,  438,
2250      1902, 1905,  438, 1090,  998,  449, 1072,  777,  404,  404,
2251       449,  327,  327,  327,  327,  327,  327,  773,  773,  773,
2252       773,  773,  773,  776, 1044,  874, 1907,  386,  782, 1912,
2253       386, 1045,  410,  414,  415,  327,  415,  414,  414,  414,
2254       414,  414,  414,  414,  416,  414,  414,  414,  777,  414,
2255       418,  414,  419,  414,  448,  327,  448,  448,  327,  448,
2256
2257       448,  327,  448, 1913,  776,  448,  327,  448, 1087, 1917,
2258       449,  783,  901,  449,  838,  777,  450,  784,  820,  414,
2259       414,  450,  785,  420,  773,  773,  773,  786, 1924, 1925,
2260       421,  776, 1088,  422,  414,  415,  327,  415,  414,  414,
2261       414,  414,  414,  414,  414,  416,  414,  414,  414,  991,
2262       414,  418,  414,  419,  414,  461,  327,  461,  461,  327,
2263       461,  327,  327,  327,  992,  820,  327,  327,  327,  777,
2264      1926,  462,  905,  914,  462, 1048,  884,  386,  925, 1080,
2265       414,  414,  386,  933,  420,  776,  773,  773,  773, 1927,
2266      1049,  421, 1928, 1105,  422,  426,  427,  327,  427,  426,
2267
2268       426,  426,  426,  426,  426,  426,  428,  426,  426,  426,
2269      1087,  426,  430,  426,  431,  426,  461,  327,  461,  461,
2270       327,  461,  461,  327,  461,  820,  820,  461,  327,  461,
2271      1929,  820,  462,  777, 1100,  462,  820, 1068,  463, 1930,
2272       921,  426,  426,  463,  477,  327,  477,  432, 1931,  776,
2273       433,  773,  773,  773,  773,  773,  773,  773,  773,  773,
2274       478, 1088,  434,  426,  427,  327,  427,  426,  426,  426,
2275       426,  426,  426,  426,  428,  426,  426,  426,  777,  426,
2276       430,  426,  431,  426,  477,  327,  477,  494,  327,  494,
2277       494,  327,  494, 1070,  776,  327,  327,  327, 1312, 1932,
2278
2279       478,  777, 1681,  495, 1090, 1068,  495, 1072,  963,  426,
2280       426,  362,  327,  327,  327,  432,  977,  776,  433,  773,
2281       773,  773,  773,  773,  773,  773,  773,  773,  362, 1100,
2282       434,  439,  440,  327,  440,  439,  439,  439,  439,  439,
2283       439,  439,  441,  439,  439,  439,  777,  439,  443,  439,
2284       444,  439,  494,  327,  494,  494,  327,  494,  494,  327,
2285       494,  820,  776,  494,  327,  494, 1933, 1934,  495,  820,
2286      1937,  495, 1940, 1087,  496, 1941,  999,  439,  439,  496,
2287       505,  327,  505,  445,  773,  773,  773,  773,  773,  773,
2288       773,  773,  773,  773,  773,  773,  506, 1104,  446,  439,
2289
2290       440,  327,  440,  439,  439,  439,  439,  439,  439,  439,
2291       441,  439,  439,  439,  777,  439,  443,  439,  444,  439,
2292       505,  327,  505,  327,  327,  327,  327,  327,  327,  820,
2293       776,  505,  327,  505, 1943, 1944,  506, 1946, 1947,  362,
2294      1948, 1068,  362, 1949, 1011,  439,  439,  506,  505,  327,
2295       505,  445,  773,  773,  773,  773,  773,  773,  773,  773,
2296       773,  773,  773,  773,  506, 1104,  446,  451,  452,  327,
2297       452,  451,  451,  451,  451,  451,  451,  451,  453,  451,
2298       451,  451,  777,  451,  455,  451,  456,  451,  505,  327,
2299       505,  505,  327,  505,  520,  327,  520,  820,  776,  520,
2300
2301       327,  520, 1953, 1954,  507,  777, 1080,  507, 1955, 1956,
2302       521, 1957,  938,  451,  451,  521,  327,  327,  327,  457,
2303      1106,  776,  458,  773,  773,  773,  773,  773,  773,  773,
2304       773,  773,  522, 1960,  459,  451,  452,  327,  452,  451,
2305       451,  451,  451,  451,  451,  451,  453,  451,  451,  451,
2306       777,  451,  455,  451,  456,  451,  327,  327,  327,  520,
2307       327,  520,  520,  327,  520, 1070,  776,  520,  327,  520,
2308      1963, 1964,  522,  777, 1238,  521, 1071, 1965,  521, 1236,
2309       943,  451,  451,  523,  520,  327,  520,  457, 1095,  776,
2310       458,  773,  773,  773,  773,  773,  773,  773,  773,  773,
2311
2312       523, 1968,  459,  464,  465,  327,  465,  464,  464,  464,
2313       464,  464,  464,  464,  466,  464,  464,  464,  777,  464,
2314       468,  464,  469,  464,  534,  327,  534,  534,  327,  534,
2315       544,  327,  544, 1018,  776,  544,  327,  544,  777,  777,
2316       535,  777,  777,  535, 1969,  948,  545, 1970,  958,  464,
2317       464,  545,  777,  470,  776,  776, 1038,  776,  776,  982,
2318       471, 1971, 1046,  472,  773,  773,  773,  473,  776,  474,
2319       475,  464,  465,  327,  465,  464,  464,  464,  464,  464,
2320       464,  464,  466,  464,  464,  464,  820,  464,  468,  464,
2321       469,  464,  327,  327,  327,  327,  327,  327,  544,  327,
2322
2323       544, 1972,  959,  544,  327,  544, 1973,  968,  546,  820,
2324       777,  546, 1974,  777,  545,  820,  963,  464,  464,  545,
2325       820,  470,  967,  773,  773,  773,  776, 1038,  471,  776,
2326      1977,  472,  773,  773,  773,  473, 1981,  474,  475,  479,
2327       480,  327,  480,  479,  479,  479,  479,  479,  479,  479,
2328       481,  479,  479,  479,  964,  479,  483,  479,  484,  479,
2329       544,  327,  544,  544,  327,  544,  559,  327,  559,  969,
2330       987,  559,  327,  559,  988, 1312,  547, 1982,  989,  547,
2331       820,  777,  560, 1066,  804,  479,  479,  560,  993,  485,
2332       486,  773,  773,  773,  999, 1919,  487,  776, 1067,  488,
2333
2334       773,  773,  773,  489, 1983,  490,  491,  492,  479,  480,
2335       327,  480,  479,  479,  479,  479,  479,  479,  479,  481,
2336       479,  479,  479,  777,  479,  483,  479,  484,  479,  327,
2337       327,  327,  327,  327,  327,  559,  327,  559, 1066,  776,
2338       559,  327,  559,  838, 1985,  362, 1989,  820,  362, 1235,
2339       777,  560, 1990, 1121,  479,  479,  560, 1004,  485,  486,
2340       773,  773,  773, 1992, 1067,  487,  776, 1993,  488,  773,
2341       773,  773,  489, 1996,  490,  491,  492,  497,  498,  327,
2342       498,  497,  497,  497,  497,  497,  497,  497,  499,  497,
2343       497,  497,  777,  497,  501,  497,  502,  497,  559,  327,
2344
2345       559,  559,  327,  559,  571,  327,  571, 1089,  776,  571,
2346       327,  571, 1997, 1999,  561, 2000,  777,  561, 1090, 2003,
2347       572, 1236, 2025,  497,  497,  572,  773,  773,  773,  773,
2348       773,  773,  776, 2026,  503,  497,  498,  327,  498,  497,
2349       497,  497,  497,  497,  497,  497,  499,  497,  497,  497,
2350       777,  497,  501,  497,  502,  497,  582,  327,  582,  582,
2351       327,  582,  593,  327,  593, 1089,  776,  593,  327,  593,
2352      2030, 2033,  583, 2035,  777,  583, 1071, 2044,  594, 1072,
2353      2045,  497,  497,  594,  773,  773,  773,  773,  773,  773,
2354       776, 2046,  503,  508,  509,  327,  509,  508,  508,  508,
2355
2356       508,  508,  508,  508,  510,  508,  508,  508,  777,  508,
2357       512,  508,  513,  508,  608,  327,  608,  608,  327,  608,
2358       327,  327,  327, 1805,  776,  327,  327,  327, 2047, 2049,
2359       609, 2057,  777,  609, 2059, 1806,  610, 2062, 2063,  508,
2360       508,  610,  514, 1046,  515,  773,  773,  773,  776, 2066,
2361       516,  773,  773,  773,  773,  773,  773,  517, 2068, 2069,
2362       518,  508,  509,  327,  509,  508,  508,  508,  508,  508,
2363       508,  508,  510,  508,  508,  508, 2071,  508,  512,  508,
2364       513,  508,  619,  327,  619,  619,  327,  619,  619,  327,
2365       619, 2072,  838,  619,  327,  619,  820, 2073,  620, 2074,
2366
2367      1312,  620, 2075, 2079,  621, 2080, 2081,  508,  508,  621,
2368       514, 2086,  515,  773,  773,  773, 1314, 2090,  516,  773,
2369       773,  773,  773,  773,  773,  517, 2094, 2096,  518,  524,
2370       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2371       526,  524,  524,  524, 2098,  524,  528,  524,  529,  524,
2372       327,  327,  327,  327,  327,  327,  619,  327,  619, 2100,
2373      1852,  619,  327,  619, 2101, 2102,  622, 1025, 2104,  622,
2374      2111, 2115,  620, 1712, 1026,  524,  524,  620,  619,  327,
2375       619,  530, 2116,  776, 2118,  807,  531,  773,  773,  773,
2376       773,  773,  773, 2125,  623,  773,  773,  773,  532,  524,
2377
2378       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2379       526,  524,  524,  524,  826,  524,  528,  524,  529,  524,
2380       619,  327,  619,  327,  327,  327,  327,  327,  327, 2127,
2381       827,  619,  327,  619, 2128, 2129,  623,  777,  817,  546,
2382      1922, 2134,  546, 2135, 1033,  524,  524,  621,  619,  327,
2383       619,  530, 2136,  776, 2138, 2139,  531,  773,  773,  773,
2384       773,  773,  773, 2140,  621,  773,  773,  773,  532,  536,
2385       537,  327,  537,  536,  536,  536,  536,  536,  536,  536,
2386       538,  536,  536,  536, 2141,  536,  540,  536,  541,  536,
2387       327,  327,  327,  327,  327,  327,  619,  327,  619, 2142,
2388
2389      1077,  619,  327,  619, 1454, 2143,  624, 1078, 2144,  624,
2390      2145, 2146,  623, 1079, 1455,  536,  536,  623, 1052, 1052,
2391      1052, 1456, 1316,  542,  536,  537,  327,  537,  536,  536,
2392       536,  536,  536,  536,  536,  538,  536,  536,  536, 2147,
2393       536,  540,  536,  541,  536,  619,  327,  619,  619,  327,
2394       619,  638,  327,  638, 2149, 1077,  638,  327,  638, 2150,
2395      2151,  625, 1078, 2154,  625, 2157, 2158,  639, 1085, 1312,
2396       536,  536,  639, 1052, 1052, 1052, 2159, 2160,  542,  548,
2397       549,  327,  549,  548,  548,  548,  548,  548,  548,  548,
2398       550,  548,  548,  548, 2131,  548,  552,  548,  553,  548,
2399
2400       327,  327,  327,  327,  327,  327,  638,  327,  638, 2161,
2401      1094,  638,  327,  638, 2162, 2163,  402, 1078, 2164,  402,
2402      2167, 1094,  639, 1079, 1077,  548,  548,  639, 1078,  554,
2403      2170, 1078, 2171, 1053, 1085, 2172,  555, 1237, 2179,  556,
2404      2180, 1331, 1331, 1331, 2181, 2182,  557,  548,  549,  327,
2405       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
2406       548,  548, 2183,  548,  552,  548,  553,  548,  638,  327,
2407       638,  638,  327,  638,  650,  327,  650, 2185, 1094,  650,
2408       327,  650, 2190, 2191,  640, 1078, 2235,  640, 2236, 2242,
2409       651, 1237, 2248,  548,  548,  651, 2249,  554, 1323, 1323,
2410
2411      1323, 2250, 1324, 2251,  555, 1325, 1332,  556, 1331, 1331,
2412      1331, 1354, 1354, 1354,  557,  562,  563,  327,  563,  562,
2413       562,  562,  562,  562,  562,  562,  564,  562,  562,  562,
2414      2254,  562,  566,  562,  567,  562,  664,  327,  664,  664,
2415       327,  664,  675,  327,  675, 2260, 2262,  675,  327,  675,
2416      2268, 2272,  665, 2275, 2276,  665, 2279, 2280,  676, 2281,
2417      2282,  562,  562,  676, 1354, 1354, 1354,  568, 1935, 1935,
2418      1935, 2283,  569,  562,  563,  327,  563,  562,  562,  562,
2419       562,  562,  562,  562,  564,  562,  562,  562, 2284,  562,
2420       566,  562,  567,  562,  327,  327,  327,  327,  327,  327,
2421
2422       675,  327,  675, 2285, 2292,  675,  327,  675, 2293, 2294,
2423       386, 2296, 2298,  386, 2306, 1936,  676, 2311, 2312,  562,
2424       562,  676, 1354, 1354, 1354,  568, 1331, 1331, 1331, 1355,
2425       569,  573,  574,  327,  574,  573,  573,  573,  573,  573,
2426       573,  573,  575,  573,  573,  573, 2313,  573,  577,  573,
2427       578,  573,  675,  327,  675,  675,  327,  675,  687,  327,
2428       687, 2315, 2328,  687,  327,  687, 2342, 2343,  677, 1312,
2429      2344,  677, 2348, 2349,  688, 2351, 2352,  573,  573,  688,
2430       700,  327,  700,  700,  327,  700, 2337, 1332,  579, 1922,
2431      2353, 1355, 2354, 1402, 1402, 1402,  701, 1403, 2355,  701,
2432
2433      1404,  580,  573,  574,  327,  574,  573,  573,  573,  573,
2434       573,  573,  573,  575,  573,  573,  573, 2345,  573,  577,
2435       573,  578,  573,  327,  327,  327,  327,  327,  327,  700,
2436       327,  700, 2338, 2346,  700,  327,  700, 1922, 2356,  362,
2437      2359, 2347,  362, 2360, 2361,  701, 2362, 2363,  573,  573,
2438       701,  700,  327,  700,  700,  327,  700, 2367, 2368,  579,
2439      2369, 1438, 1438, 1438, 2370, 1439, 2372,  702, 1440, 2373,
2440       702, 2339,  580,  584,  585,  327,  585,  584,  584,  584,
2441       584,  584,  584,  584,  586,  584,  584,  584, 2364,  584,
2442       588,  584,  589,  584,  714,  327,  714,  714,  327,  714,
2443
2444       327,  327,  327, 2374, 2365,  327,  327,  327, 2381, 2383,
2445       715, 2384, 2366,  715, 2385, 2345,  716, 2386, 2387,  584,
2446       584,  716,  714,  327,  714, 1441, 1441, 1441, 2390, 1442,
2447      2392, 2365, 1443, 2423, 2424,  590, 2425, 2431,  715, 2347,
2448       591,  584,  585,  327,  585,  584,  584,  584,  584,  584,
2449       584,  584,  586,  584,  584,  584, 2364,  584,  588,  584,
2450       589,  584,  714,  327,  714,  714,  327,  714,  714,  327,
2451       714, 2432, 2346,  739,  327,  739, 2436, 2437,  715, 2440,
2452      2366,  717, 2441, 2445,  717,  340,  341,  584,  584,  740,
2453       342,  739,  327,  739, 1457, 1457, 1457, 2448, 1458, 2452,
2454
2455       727, 1459, 2453,  590, 1938, 1938, 1938,  740,  591,  595,
2456       596,  327,  596,  595,  595,  595,  595,  595,  595,  595,
2457       597,  595,  595,  595, 2454,  595,  599,  595,  600,  595,
2458       728,  750,  327,  750,  750,  327,  750,  750,  327,  750,
2459      2457,  750,  327,  750, 1060, 1060, 1060,  751, 2460, 2464,
2460       751, 1939, 2465,  752, 2466,  595,  595,  752,  601,  602,
2461       603, 1061, 2471, 1461, 1461, 1461,  604, 1462, 2473,  605,
2462      1463, 1942, 1942, 1942, 2474, 2475,  606,  595,  596,  327,
2463       596,  595,  595,  595,  595,  595,  595,  595,  597,  595,
2464       595,  595, 2476,  595,  599,  595,  600,  595,  327,  327,
2465
2466       327,  327,  327,  327,  750,  327,  750, 2478, 2481,  750,
2467       327,  750, 2483, 2486,  362, 2500, 2501,  362, 2502, 2507,
2468       751, 2508, 2511,  595,  595,  751,  601,  602,  603, 1479,
2469      1479, 1479, 2512, 1480,  604, 2513, 1481,  605, 1945, 1945,
2470      1945, 1952, 1952, 1952,  606,  611,  612,  327,  612,  611,
2471       611,  611,  611,  611,  611,  611,  613,  611,  611,  611,
2472      2516,  611,  615,  611,  616,  611,  750,  327,  750,  750,
2473       327,  750,  327,  327,  327, 2509, 2514,  327,  327,  327,
2474      2526, 1312,  753, 2510, 2515,  753, 2535, 2528,  754, 2536,
2475      2537,  611,  611,  754,  750,  327,  750,  750,  327,  750,
2476
2477      1489, 1489, 1489, 2538, 1490, 1922, 2539, 1491, 2542, 2544,
2478       755, 2545, 2546,  755, 1922,  617,  611,  612,  327,  612,
2479       611,  611,  611,  611,  611,  611,  611,  613,  611,  611,
2480       611, 2550,  611,  615,  611,  616,  611,  750,  327,  750,
2481       750,  327,  750,  327,  327,  327, 2529, 2551,  327,  327,
2482       327, 2553, 2530,  756, 2554, 2555,  756, 2556, 2559,  367,
2483      2563, 2564,  611,  611,  367,  750,  327,  750,  750,  327,
2484       750, 1501, 1501, 1501, 2565, 1502, 2567, 2573, 1503, 2575,
2485      2587,  753, 2588, 2589,  753, 2593,  617,  626,  627,  327,
2486       627,  626,  626,  626,  626,  626,  626,  626,  628,  626,
2487
2488       626,  626, 2594,  626,  630,  626,  631,  626,  327,  327,
2489       327,  327,  327,  327,  750,  327,  750, 2595, 2601,  750,
2490       327,  750, 2602, 2603,  368, 2606, 2610,  368, 2611, 2612,
2491       756, 2613, 2616,  626,  626,  756,  750,  327,  750, 2617,
2492      2618,  632, 2619,  633, 2620, 2632,  634, 1958, 1958, 1958,
2493       635, 2636,  757, 2639,  636,  626,  627,  327,  627,  626,
2494       626,  626,  626,  626,  626,  626,  628,  626,  626,  626,
2495      2640,  626,  630,  626,  631,  626,  750,  327,  750,  327,
2496       327,  327,  327,  327,  327, 2651, 2652,  750,  327,  750,
2497      2653, 2657,  757, 2658, 1959,  370, 2659, 2660,  370, 2661,
2498
2499      2662,  626,  626,  758,  750,  327,  750, 2663, 2664,  632,
2500      2665,  633, 2666, 2671,  634, 1961, 1961, 1961,  635, 1922,
2501       758, 1922,  636,  641,  642,  327,  642,  641,  641,  641,
2502       641,  641,  641,  641,  643,  641,  641,  641, 2688,  641,
2503       645,  641,  646,  641,  327,  327,  327,  327,  327,  327,
2504       750,  327,  750, 2689, 2690,  750,  327,  750, 2691, 2693,
2505       372, 2695, 1939,  372, 2696, 2674,  757, 2675, 2697,  641,
2506       641,  757,  750,  327,  750,  750,  327,  750, 2699, 2700,
2507       647, 2701, 1504, 1504, 1504, 2702, 1505, 2703,  759, 1506,
2508      2704,  759, 2705,  648,  641,  642,  327,  642,  641,  641,
2509
2510       641,  641,  641,  641,  641,  643,  641,  641,  641, 2706,
2511       641,  645,  641,  646,  641,  770,  327,  770,  770,  327,
2512       770,  327,  327,  327, 2727, 2728,  327,  327,  327, 2729,
2513      2733,  771, 2734, 2740,  771, 2741, 2742,  386, 2758, 2730,
2514       641,  641,  386,  770,  327,  770,  770,  327,  770, 2759,
2515      2760,  647, 2775,  792, 1517, 1517, 1517, 2776, 1518,  771,
2516       963, 1519,  771,  818,  648,  652,  653,  327,  653,  652,
2517       652,  652,  652,  652,  652,  652,  654,  652,  652,  652,
2518      2780,  652,  656,  652,  657,  652,  770,  327,  770,  770,
2519       327,  770,  819, 2781, 1950, 1950, 1950, 2782,  964,  808,
2520
2521       965, 2783,  772, 2784, 2785,  772,  820, 2786, 2787,  812,
2522       804,  652,  652,  966, 2788,  967,  821, 2789, 1038, 1038,
2523       658, 2790,  659, 2791,  807, 2803,  660, 2808,  793,  818,
2524      1951,  661,  662,  652,  653,  327,  653,  652,  652,  652,
2525       652,  652,  652,  652,  654,  652,  652,  652, 2809,  652,
2526       656,  652,  657,  652,  828, 2812, 2813,  795,  819,  797,
2527      1327, 1327, 1327,  797, 1962, 1962, 1962,  820, 2814,  829,
2528       803,  801,  820,  802,  803, 2810,  804,  817, 1329,  652,
2529       652,  805,  821, 1038, 2811, 1528, 1528, 1528,  658, 1529,
2530       659, 1922, 1530,  793,  660, 2815,  807, 2818, 2819,  661,
2531
2532       662,  666,  667,  327,  667,  666,  666,  666,  666,  666,
2533       666,  666,  668,  666,  666,  666, 2820,  666,  670,  666,
2534       671,  666,  825, 1039, 2806,  830,  828, 1126, 1126, 1126,
2535      1966, 1966, 1966, 1145, 1145, 1145, 1381, 1381, 1381,  820,
2536      1147, 1147, 1147, 2816, 1127, 2316,  805,  666,  666,  817,
2537      1146, 2317, 2817,  672, 1383, 2318, 2821, 1148, 1535, 1535,
2538      1535, 2319, 1536, 2822, 2824, 1537, 1967, 2825,  673,  666,
2539       667,  327,  667,  666,  666,  666,  666,  666,  666,  666,
2540       668,  666,  666,  666, 2826,  666,  670,  666,  671,  666,
2541      1157, 1157, 1157, 1160, 1160, 1160, 1174, 1174, 1174, 2828,
2542
2543      1181, 1181, 1181, 1190, 1190, 1190, 2829, 1158, 2830, 2832,
2544      1161, 2833, 2835, 1175, 1922,  666,  666, 1182, 2853, 2854,
2545      1191,  672, 1553, 1553, 1553, 2855, 1554, 2856, 2860, 1555,
2546      2861, 1966, 1966, 1966, 2868, 2869,  673,  678,  679,  327,
2547       679,  678,  678,  678,  678,  678,  678,  678,  680,  678,
2548       678,  678, 2807,  678,  682,  678,  683,  678, 1192, 1192,
2549      1192, 1200, 1200, 1200, 1208, 1208, 1208, 1951, 1212, 1212,
2550      1212, 2876, 1224, 1224, 1224, 1193, 2877, 2878, 1201, 2890,
2551      2891, 1209, 2906,  678,  678, 1213, 2907, 2908,  684, 1225,
2552      1961, 1961, 1961, 2910,  685,  678,  679,  327,  679,  678,
2553
2554       678,  678,  678,  678,  678,  678,  680,  678,  678,  678,
2555      2911,  678,  682,  678,  683,  678, 1246, 1246, 1246, 1252,
2556      1252, 1252, 1268, 1268, 1268, 2912, 1274, 1274, 1274, 2913,
2557      1280, 1280, 1280, 1247, 2914, 2915, 1253, 1976, 2916, 1269,
2558      2917,  678,  678, 1275, 2918, 2919,  684, 1281, 2137, 2137,
2559      2137, 2920,  685,  689,  690,  327,  690,  689,  689,  689,
2560       689,  689,  689,  689,  691,  689,  689,  689, 2921,  689,
2561       693,  689,  694,  689, 1288, 1288, 1288, 1300, 1300, 1300,
2562      1060, 1060, 1060, 1327, 1327, 1327, 1374, 1374, 1374, 2923,
2563      2924, 1289, 2927, 2862, 1301, 2863, 2865, 1061, 2866,  689,
2564
2565       689, 1329,  695, 1375,  696, 1583, 1583, 1583, 2864, 1584,
2566       697, 2867, 1585, 2928, 2929, 1950, 1950, 1950, 2930, 2933,
2567      1330,  698,  689,  690,  327,  690,  689,  689,  689,  689,
2568       689,  689,  689,  691,  689,  689,  689, 2925,  689,  693,
2569       689,  694,  689, 1378, 1378, 1378, 2926, 2934, 1381, 1381,
2570      1381, 1967, 1391, 1391, 1391, 4087, 4087, 4087, 2931, 2935,
2571      1379, 2940, 2941, 4087, 4087, 4087, 1383, 2932,  689,  689,
2572      1393,  695, 4087,  696, 1592, 1592, 1592, 2942, 1593,  697,
2573      4087, 1594, 1617, 1617, 1617, 1384, 1618, 2943, 2944, 1619,
2574       698,  703,  704,  327,  704,  703,  703,  703,  703,  703,
2575
2576       703,  703,  705,  703,  703,  703, 1376,  703,  707,  703,
2577       708,  703, 1397, 1397, 1397, 1312, 2945, 1397, 1397, 1397,
2578      2946, 1377, 2947, 1380, 1126, 1126, 1126, 1406, 1406, 1406,
2579      1399, 1391, 1391, 1391, 2320, 1399, 1922,  703,  703, 2948,
2580      2321, 1127,  709, 2949, 2322, 1408, 2950, 2951,  710, 1393,
2581      2323, 2952,  711, 1935, 1935, 1935, 2937, 1922,  712,  703,
2582       704,  327,  704,  703,  703,  703,  703,  703,  703,  703,
2583       705,  703,  703,  703, 2938,  703,  707,  703,  708,  703,
2584      2953, 1394, 1400, 1410, 1410, 1410, 1414, 1414, 1414, 1416,
2585      1416, 1416, 2954, 2956, 1406, 1406, 1406, 4087, 4087, 4087,
2586
2587      1411, 2939, 2957, 1415, 2958,  703,  703, 1418, 2959, 2960,
2588       709, 2961, 1408, 2962, 4087, 2974,  710, 1626, 1626, 1626,
2589       711, 1627, 2975, 2978, 1628, 2979,  712,  718,  719,  327,
2590       719,  718,  718,  718,  718,  718,  718,  718,  720,  718,
2591       718,  718, 1409,  718,  722,  718,  723,  718, 1412, 1416,
2592      1416, 1416, 1420, 1420, 1420, 1422, 1422, 1422, 1424, 1424,
2593      1424, 2980, 2981, 1413, 1424, 1424, 1424, 1418, 2984, 1421,
2594      2985, 2988, 1423,  718,  718, 2989, 1426, 1938, 1938, 1938,
2595      2997,  724, 1426, 2998,  725, 2148, 2148, 2148, 1942, 1942,
2596      1942,  726,  718,  719,  327,  719,  718,  718,  718,  718,
2597
2598       718,  718,  718,  720,  718,  718,  718, 2999,  718,  722,
2599       718,  723,  718, 1428, 1428, 1428, 1432, 1432, 1432, 3010,
2600      2982, 1419, 1434, 1434, 1434, 3028, 2986, 4087, 4087, 4087,
2601      1429, 2983, 3037, 1433, 3038, 3039, 1427, 2987,  718,  718,
2602      1436, 1635, 1635, 1635, 4087, 1636,  724, 3040, 1637,  725,
2603      1945, 1945, 1945, 2152, 2152, 2152,  726,  729,  730,  327,
2604       730,  729,  729,  729,  729,  729,  729,  729,  731,  729,
2605       729,  729, 3041,  729,  733,  729,  734,  729, 1430, 1434,
2606      1434, 1434, 1145, 1145, 1145, 1147, 1147, 1147, 1444, 1444,
2607      1444, 3042, 3043, 1431, 4087, 4087, 4087, 1436, 3044, 1146,
2608
2609      3045, 3046, 1148,  729,  729, 1445, 4087, 4087, 4087, 3022,
2610       735, 4087, 3048, 1646, 1646, 1646,  736, 1647, 2153, 3023,
2611      1648, 3049, 3024, 4087, 3050,  737,  729,  730,  327,  730,
2612       729,  729,  729,  729,  729,  729,  729,  731,  729,  729,
2613       729, 3051,  729,  733,  729,  734,  729, 1446, 1450, 1450,
2614      1450, 1437, 1950, 1950, 1950, 1952, 1952, 1952, 4087, 4087,
2615      4087, 3052, 1447, 4087, 4087, 4087, 1452, 3053, 3054, 1450,
2616      1450, 1450,  729,  729, 3055, 4087, 1157, 1157, 1157,  735,
2617      4087, 3056, 1662, 1662, 1662,  736, 1663, 1452, 3057, 1664,
2618      2155, 2155, 2155, 1158,  737,  741,  742,  327,  742,  741,
2619
2620       741,  741,  741,  741,  741,  741,  743,  741,  741,  741,
2621      1448,  741,  745,  741,  746,  741, 1449, 1453, 1160, 1160,
2622      1160, 1464, 1464, 1464, 3003, 1475, 1475, 1475, 1475, 1475,
2623      1475, 1174, 1174, 1174, 3004, 1161, 3058, 2156, 1465, 3059,
2624      3005,  741,  741, 1477, 3006, 3067, 1477, 1312, 1175, 1323,
2625      1323, 1323,  747, 1324, 3007, 3068, 1325, 1958, 1958, 1958,
2626      3008,  748,  741,  742,  327,  742,  741,  741,  741,  741,
2627       741,  741,  741,  743,  741,  741,  741, 3064,  741,  745,
2628       741,  746,  741, 1482, 1482, 1482, 3069, 1478, 1482, 1482,
2629      1482, 3070, 3071, 1181, 1181, 1181, 1495, 1495, 1495, 3072,
2630
2631      3073, 1484, 1495, 1495, 1495, 3074, 1484, 3075,  741,  741,
2632      1182, 1732, 1732, 1732, 1497, 1733, 3076, 3077, 1734,  747,
2633      1497, 1961, 1961, 1961, 1962, 1962, 1962, 1922,  748,  760,
2634       761,  327,  761,  760,  760,  760,  760,  760,  760,  760,
2635       762,  760,  760,  760, 3078,  760,  764,  760,  765,  760,
2636      1485, 1190, 1190, 1190, 1192, 1192, 1192, 3079, 3081, 1507,
2637      1507, 1507, 3082, 3083, 1498, 1507, 1507, 1507, 1191, 1922,
2638      3065, 1193, 1512, 1512, 1512,  760,  760, 1509, 1200, 1200,
2639      1200,  766, 3084, 1509,  767, 1737, 1737, 1737, 3086, 1738,
2640      1514, 3087, 1739, 3088, 3099, 1201,  768,  760,  761,  327,
2641
2642       761,  760,  760,  760,  760,  760,  760,  760,  762,  760,
2643       760,  760, 3066,  760,  764,  760,  765,  760, 1512, 1512,
2644      1512, 1523, 1523, 1523, 1523, 1523, 1523, 1510, 1208, 1208,
2645      1208, 3107, 1531, 1531, 1531, 3108, 1514, 3109, 3092, 1525,
2646      3110, 3111, 1525,  760,  760, 1209, 1212, 1212, 1212,  766,
2647      1533, 3093,  767, 1531, 1531, 1531, 1539, 1539, 1539, 1545,
2648      1545, 1545, 3094, 1213,  768,  777, 3112, 3113, 1539, 1539,
2649      1539, 1533,  792, 3114, 1541, 3095, 3115, 1547, 3116, 1515,
2650      1526,  776,  793, 1545, 1545, 1545, 1541, 1224, 1224, 1224,
2651      1556, 1556, 1556, 3025, 3117, 1560, 1560, 1560, 1560, 1560,
2652
2653      1560, 1547, 3121, 3026, 1225, 3124, 3027, 1557, 3125, 1534,
2654       794,  795,  796, 1562, 3126, 3127, 1562,  797,  798, 3128,
2655      3129,  799,  800, 3130, 3133,  801, 3141,  802,  803,  804,
2656      1542, 1566, 1566, 1566, 3142,  805,  777, 3145, 1566, 1566,
2657      1566, 1579, 1579, 1579, 3146, 1548, 1579, 1579, 1579, 1568,
2658      1563, 3149,  776,  807, 2676, 2677, 1568, 2678, 3160, 1581,
2659      1246, 1246, 1246, 3137, 1581, 2679, 1587, 1587, 1587, 1587,
2660      1587, 1587, 2680, 1252, 1252, 1252, 3138, 1247, 1595, 1595,
2661      1595,  794,  808,  809, 1589, 3161, 3162, 1589,  810,  811,
2662      1253, 3139,  812,  800, 3163, 1596,  813, 1569,  814,  815,
2663
2664       816, 1598, 1598, 1598, 3140, 3164,  817,  777, 1603, 1603,
2665      1603, 1582, 3143, 1603, 1603, 1603, 3165, 3147, 1599, 1607,
2666      1607, 1607, 3166,  776,  822, 3144, 1605, 1609, 1609, 1609,
2667      3148, 1605, 3167, 3169, 1590, 3170, 1608, 3171, 4087, 4087,
2668      4087, 1966, 1966, 1966, 1610, 3172, 3173, 1612, 1612, 1612,
2669      3174, 3175,  794,  823,  796, 4087, 1612, 1612, 1612,  810,
2670       798, 1606, 3176,  799,  800, 1614, 3177,  806, 3178,  814,
2671       815,  804, 3179, 3180, 1614, 1312, 3188,  824, 1268, 1268,
2672      1268, 1620, 1620, 1620, 1620, 1620, 1620, 1274, 1274, 1274,
2673      1630, 1630, 1630, 3189, 3190, 1269, 1922, 3191, 1611, 1622,
2674
2675      3192, 3193, 1622, 3194, 1275, 1630, 1630, 1630, 1632, 1280,
2676      1280, 1280, 1640, 1640, 1640, 1640, 1640, 1640, 1615, 1288,
2677      1288, 1288, 3195, 1632, 3184, 3196, 1281, 1651, 1651, 1651,
2678      1642, 3197, 3185, 1642, 3198, 3199, 1289, 1651, 1651, 1651,
2679      1658, 1658, 1658, 3200, 3201, 1653, 1623, 1658, 1658, 1658,
2680      1300, 1300, 1300, 3203, 3204, 1653, 3205, 3207, 1660, 1666,
2681      1666, 1666, 1666, 1666, 1666, 1660, 3216, 1301, 1670, 1670,
2682      1670, 3217, 1633, 3218, 4087, 4087, 4087, 1668, 3219, 3224,
2683      1668, 3231, 1643, 3232, 3233, 1671, 1674, 1674, 1674, 3234,
2684      3235, 4087, 4087, 4087, 4087, 1677, 1677, 1677, 1677, 1677,
2685
2686      1677, 3236, 1654, 1675, 1327, 1327, 1327, 3237, 3238, 4087,
2687      3239, 3208, 1661, 1679, 3240, 3241, 1679, 1327, 1327, 1327,
2688      3242, 3209, 1329, 3246, 1669, 1672, 1688, 1688, 1688, 1374,
2689      1374, 1374, 1378, 1378, 1378, 1329, 1381, 1381, 1381, 3210,
2690      1673, 1381, 1381, 1381, 1689, 3247, 1375, 3248, 3249, 1379,
2691      3211, 3250, 1676, 3251, 1383, 1381, 1381, 1381, 3252, 1383,
2692      1680, 1744, 1744, 1744, 1391, 1391, 1391, 1391, 1391, 1391,
2693      1391, 1391, 1391, 1383, 1397, 1397, 1397, 3253, 1745, 1397,
2694      1397, 1397, 1393, 3254, 3255, 1393, 3256, 3257, 1393, 1397,
2695      1397, 1397, 1399, 3258, 1402, 1402, 1402, 1399, 1403, 3259,
2696
2697      3260, 1404, 3261, 1406, 1406, 1406, 3262, 1399, 1406, 1406,
2698      1406, 1406, 1406, 1406, 1410, 1410, 1410, 1414, 1414, 1414,
2699      1741, 1408, 3263, 1756, 1756, 1756, 1408, 1757, 3264, 1408,
2700      1758, 1411, 3265, 3277, 1415, 3278, 3279, 1749, 1761, 1761,
2701      1761, 3280, 1762, 1752, 3281, 1763, 1416, 1416, 1416, 1416,
2702      1416, 1416, 1416, 1416, 1416, 1420, 1420, 1420, 1765, 1765,
2703      1765, 1755, 1766, 3282, 1418, 1767, 3283, 1418, 3284, 3286,
2704      1418, 3287, 1421, 1422, 1422, 1422, 1768, 1768, 1768, 3288,
2705      1769, 3289, 3290, 1770, 1424, 1424, 1424, 1424, 1424, 1424,
2706      1423, 1424, 1424, 1424, 1428, 1428, 1428, 1772, 1772, 1772,
2707
2708      3291, 1773, 1426, 3292, 1774, 1426, 1432, 1432, 1432, 1426,
2709      3293, 1429, 1777, 1777, 1777, 1764, 1778, 3294, 3295, 1779,
2710      1434, 1434, 1434, 1433, 1434, 1434, 1434, 1434, 1434, 1434,
2711      1438, 1438, 1438, 3296, 1439, 3297, 3312, 1440, 1436, 1441,
2712      1441, 1441, 1436, 1442, 3313, 1436, 1443, 1444, 1444, 1444,
2713      1312, 1781, 1781, 1781, 1771, 1782, 3314, 3315, 1783, 1450,
2714      1450, 1450, 3316, 3317, 1445, 1450, 1450, 1450, 1450, 1450,
2715      1450, 1457, 1457, 1457, 3318, 1458, 3319, 1452, 1459, 1792,
2716      1792, 1792, 3321, 1452, 3324, 3306, 1452, 1461, 1461, 1461,
2717      1780, 1462, 3326, 3327, 1463, 3328, 1793, 1464, 1464, 1464,
2718
2719      1794, 1794, 1794, 3329, 1795, 3330, 3331, 1796, 1475, 1475,
2720      1475, 1475, 1475, 1475, 1465, 3332, 3333, 1788, 1475, 1475,
2721      1475, 1479, 1479, 1479, 3334, 1480, 1477, 3335, 1481, 1477,
2722      1482, 1482, 1482, 1482, 1482, 1482, 1477, 1482, 1482, 1482,
2723      1811, 1811, 1811, 1489, 1489, 1489, 3336, 1490, 1484, 3337,
2724      1491, 1484, 1495, 1495, 1495, 1484, 3340, 1812, 1495, 1495,
2725      1495, 1495, 1495, 1495, 1818, 1818, 1818, 1501, 1501, 1501,
2726      1497, 1502, 3343, 3344, 1503, 3345, 1497, 3346, 3347, 1497,
2727      3348, 1819, 3349, 1504, 1504, 1504, 1807, 1505, 3350, 3351,
2728      1506, 1507, 1507, 1507, 1507, 1507, 1507, 3352, 1808, 1507,
2729
2730      1507, 1507, 1821, 1821, 1821, 1512, 1512, 1512, 3357, 1509,
2731      3358, 3359, 1509, 1512, 1512, 1512, 3360, 1509, 3361, 1822,
2732      1512, 1512, 1512, 1514, 1523, 1523, 1523, 1816, 1517, 1517,
2733      1517, 1514, 1518, 3362, 3363, 1519, 3364, 3365, 1514, 1523,
2734      1523, 1523, 1525, 1523, 1523, 1523, 1528, 1528, 1528, 3366,
2735      1529, 3367, 3368, 1530, 1531, 1531, 1531, 1525, 1531, 1531,
2736      1531, 1525, 1531, 1531, 1531, 1820, 3369, 1535, 1535, 1535,
2737      1823, 1536, 1533, 3370, 1537, 3371, 1533, 1539, 1539, 1539,
2738      1533, 1539, 1539, 1539, 1539, 1539, 1539, 3372, 1833, 1833,
2739      1833, 4087, 4087, 4087, 3373, 1541, 1545, 1545, 1545, 1541,
2740
2741      3377, 3378, 1541, 3212, 1828, 1834, 3379, 3380, 4087, 1545,
2742      1545, 1545, 3381, 3213, 1547, 1545, 1545, 1545, 1553, 1553,
2743      1553, 3382, 1554, 1830, 3383, 1555, 3384, 1547, 1556, 1556,
2744      1556, 3214, 3387, 1547, 3388, 1832, 1841, 1841, 1841, 1835,
2745      1842, 3389, 3215, 1843, 3390, 1557, 1560, 1560, 1560, 1560,
2746      1560, 1560, 1560, 1560, 1560, 1566, 1566, 1566, 1566, 1566,
2747      1566, 1566, 1566, 1566, 1562, 3391, 3392, 1562, 3394, 3395,
2748      1562, 3396, 3397, 1568, 3398, 3399, 1568, 3400, 3401, 1568,
2749      1855, 1855, 1855, 1836, 1579, 1579, 1579, 1579, 1579, 1579,
2750      1579, 1579, 1579, 3402, 1583, 1583, 1583, 1856, 1584, 3403,
2751
2752      3404, 1585, 1581, 3405, 1846, 1581, 3406, 3407, 1581, 1849,
2753      1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1592,
2754      1592, 1592, 3268, 1593, 2681, 2682, 1594, 2683, 1589, 3408,
2755      3409, 1589, 3269, 3416, 1589, 2684, 1595, 1595, 1595, 1864,
2756      1864, 1864, 2685, 1865, 3417, 3418, 1866, 1867, 1867, 1867,
2757      3270, 1312, 1860, 1596, 1598, 1598, 1598, 3419, 1869, 1869,
2758      1869, 3271, 1870, 3420, 1868, 1871, 1873, 1873, 1873, 3421,
2759      3422, 1599, 1603, 1603, 1603, 1603, 1603, 1603, 1862, 1603,
2760      1603, 1603, 3423, 1874, 1607, 1607, 1607, 1877, 1877, 1877,
2761      1605, 1878, 3424, 1605, 1879, 3410, 3425, 1605, 1609, 1609,
2762
2763      1609, 1608, 1880, 1880, 1880, 3426, 1881, 3427, 3428, 1882,
2764      1612, 1612, 1612, 3429, 3430, 1610, 1612, 1612, 1612, 1612,
2765      1612, 1612, 1617, 1617, 1617, 3431, 1618, 3432, 1614, 1619,
2766      1620, 1620, 1620, 3433, 1614, 3434, 3435, 1614, 3439, 3445,
2767      1876, 1620, 1620, 1620, 1620, 1620, 1620, 3446, 1622, 1626,
2768      1626, 1626, 3447, 1627, 3448, 3449, 1628, 3450, 3451, 1622,
2769      3458, 3459, 1622, 1630, 1630, 1630, 1630, 1630, 1630, 3460,
2770      1630, 1630, 1630, 1635, 1635, 1635, 3272, 1636, 3461, 3462,
2771      1637, 1632, 3463, 3464, 1632, 3465, 3273, 1884, 1632, 1893,
2772      1893, 1893, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2773
2774      1640, 1897, 1897, 1897, 3274, 3466, 1894, 1646, 1646, 1646,
2775      1642, 1647, 1886, 1642, 1648, 3275, 1642, 3467, 1898, 4087,
2776      4087, 4087, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
2777      1651, 3468, 1890, 1903, 1903, 1903, 4087, 1658, 1658, 1658,
2778      1653, 3469, 3470, 1653, 3471, 3472, 1653, 1658, 1658, 1658,
2779      1904, 1658, 1658, 1658, 3473, 1660, 3474, 1662, 1662, 1662,
2780      1895, 1663, 3475, 3476, 1664, 1660, 1666, 1666, 1666, 1660,
2781      1666, 1666, 1666, 1666, 1666, 1666, 1901, 1670, 1670, 1670,
2782      3477, 1899, 3478, 3479, 1668, 1909, 1909, 1909, 1668, 1910,
2783      3480, 1668, 1911, 3481, 1671, 1674, 1674, 1674, 3482, 1906,
2784
2785      1914, 1914, 1914, 3483, 1915, 3484, 3485, 1916, 1677, 1677,
2786      1677, 3486, 1675, 1677, 1677, 1677, 3487, 1677, 1677, 1677,
2787      1921, 1921, 1921, 1688, 1688, 1688, 1679, 1381, 1381, 1381,
2788      3488, 1679, 3491, 3492, 1908, 1679, 3493, 3494, 1922, 1923,
2789      3495, 1689, 1732, 1732, 1732, 1383, 1733, 3496, 3497, 1734,
2790      1737, 1737, 1737, 3498, 1738, 3499, 3500, 1739, 1744, 1744,
2791      1744, 1978, 1978, 1978, 3501, 1979, 3298, 3502, 1980, 1391,
2792      1391, 1391, 1397, 1397, 1397, 1745, 3299, 3503, 1918, 1986,
2793      1986, 1986, 3504, 1406, 1406, 1406, 3507, 1393, 3516, 1975,
2794      1399, 1756, 1756, 1756, 3300, 1757, 1987, 3510, 1758, 3517,
2795
2796      1312, 1408, 1761, 1761, 1761, 3301, 1762, 3507, 3522, 1763,
2797      1416, 1416, 1416, 1765, 1765, 1765, 3523, 1766, 3526, 3527,
2798      1767, 3508, 1768, 1768, 1768, 3528, 1769, 3529, 1418, 1770,
2799      3530, 1984, 1424, 1424, 1424, 1772, 1772, 1772, 3531, 1773,
2800      1988, 1991, 1774, 3533, 1777, 1777, 1777, 3505, 1778, 3534,
2801      1426, 1779, 1434, 1434, 1434, 1781, 1781, 1781, 1994, 1782,
2802      3541, 3535, 1783, 3542, 2001, 2001, 2001, 1450, 1450, 1450,
2803      1436, 2005, 2005, 2005, 4087, 4087, 4087, 4087, 4087, 4087,
2804      1995, 2002, 1792, 1792, 1792, 1452, 3536, 3543, 2006, 3544,
2805      3545, 4087, 3546, 3550, 4087, 4087, 4087, 4087, 3537, 1793,
2806
2807      1998, 2009, 2009, 2009, 3547, 2010, 3551, 3552, 2011, 1794,
2808      1794, 1794, 4087, 1795, 3512, 3553, 1796, 4087, 4087, 4087,
2809      4087, 4087, 4087, 2004, 3548, 2008, 4087, 4087, 4087, 4087,
2810      4087, 4087, 3554, 3513, 4087, 3514, 3549, 4087, 4087, 4087,
2811      4087, 2007, 3555, 4087, 3556, 3557, 4087, 2012, 3515, 2018,
2812      2018, 2018, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2813      4087, 4087, 1475, 1475, 1475, 2013, 2019, 3558, 3559, 4087,
2814      1811, 1811, 1811, 4087, 2015, 3560, 4087, 1482, 1482, 1482,
2815      1477, 2027, 2027, 2027, 3561, 2028, 3562, 1812, 2029, 3563,
2816      3564, 2014, 3569, 3570, 2016, 1484, 2031, 2031, 2031, 2017,
2817
2818      1495, 1495, 1495, 1818, 1818, 1818, 3575, 2036, 2036, 2036,
2819      3576, 2037, 3577, 2032, 2038, 1507, 1507, 1507, 1497, 2021,
2820      1819, 2022, 3578, 2020, 1821, 1821, 1821, 3579, 2023, 3580,
2821      2024, 3583, 1312, 1509, 3583, 2040, 2040, 2040, 3586, 2041,
2822      3587, 1822, 2042, 1512, 1512, 1512, 1523, 1523, 1523, 3507,
2823      1531, 1531, 1531, 2051, 2051, 2051, 3302, 1539, 1539, 1539,
2824      3588, 1514, 3591, 3508, 1525, 3592, 3303, 2034, 1533, 3593,
2825      2052, 1833, 1833, 1833, 3581, 1541, 2054, 2054, 2054, 3596,
2826      2055, 3597, 2039, 2056, 3304, 1545, 1545, 1545, 1834, 2060,
2827      2060, 2060, 1841, 1841, 1841, 3305, 1842, 1922, 1923, 1843,
2828
2829      3610, 3611, 2043, 1547, 2048, 3612, 2061, 3589, 2050, 2053,
2830      2064, 2064, 2064, 1560, 1560, 1560, 1566, 1566, 1566, 1855,
2831      1855, 1855, 2076, 2076, 2076, 3590, 2077, 2065, 3613, 2078,
2832      3626, 1562, 3627, 3602, 1568, 3594, 1856, 1579, 1579, 1579,
2833      2083, 2083, 2083, 1587, 1587, 1587, 2058, 1864, 1864, 1864,
2834      3595, 1865, 3603, 3628, 1866, 1581, 3507, 2084, 1867, 1867,
2835      1867, 1589, 2087, 2087, 2087, 3604, 2088, 3510, 3629, 2089,
2836      1869, 1869, 1869, 3605, 1870, 1868, 3606, 1871, 2067, 1873,
2837      1873, 1873, 3608, 2070, 2091, 2091, 2091, 2082, 2092, 3630,
2838      3609, 2093, 1603, 1603, 1603, 3607, 1874, 1877, 1877, 1877,
2839
2840      3631, 1878, 3632, 3633, 1879, 3618, 2085, 1880, 1880, 1880,
2841      1605, 1881, 3634, 3619, 1882, 1612, 1612, 1612, 1620, 1620,
2842      1620, 1630, 1630, 1630, 2105, 2105, 2105, 1893, 1893, 1893,
2843      2107, 2107, 2107, 1614, 2108, 3616, 1622, 2109, 3620, 1632,
2844      3637, 2106, 3638, 2095, 1894, 1640, 1640, 1640, 1897, 1897,
2845      1897, 2112, 2112, 2112, 3617, 2113, 3622, 3621, 2114, 1651,
2846      1651, 1651, 3639, 1642, 3623, 1898, 1903, 1903, 1903, 2119,
2847      2119, 2119, 3583, 2120, 3643, 3635, 2121, 1653, 2122, 2122,
2848      2122, 3583, 2097, 1904, 3640, 2099, 2103, 1658, 1658, 1658,
2849      1666, 1666, 1666, 3636, 3644, 2123, 1909, 1909, 1909, 3641,
2850
2851      1910, 3645, 3646, 1911, 3647, 1660, 3648, 3649, 1668, 2117,
2852      2110, 1914, 1914, 1914, 3650, 1915, 3651, 3652, 1916, 3653,
2853      1677, 1677, 1677, 1921, 1921, 1921, 2165, 2165, 2165, 2168,
2854      2168, 2168, 2152, 2152, 2152, 3657, 3658, 2124, 1679, 3659,
2855      3660, 1922, 2126, 2165, 2165, 2165, 2173, 2173, 2173, 2175,
2856      2175, 2175, 4087, 4087, 4087, 1381, 1381, 1381, 1978, 1978,
2857      1978, 3661, 1979, 2174, 3662, 1980, 2176, 3663, 3664, 4087,
2858      3665, 3666, 2130, 1383, 3667, 2132, 2169, 1391, 1391, 1391,
2859      3668, 1986, 1986, 1986, 3672, 3673, 2186, 2186, 2186, 3674,
2860      2187, 2166, 2133, 2188, 3675, 1393, 3676, 2166, 1987, 3677,
2861
2862      1397, 1397, 1397, 1406, 1406, 1406, 3678, 3679, 2153, 2193,
2863      2193, 2193, 2195, 2195, 2195, 3683, 3684, 2177, 1399, 3685,
2864      3686, 1408, 3687, 2178, 3688, 3689, 2194, 3690, 3691, 2196,
2865      1416, 1416, 1416, 1424, 1424, 1424, 2199, 2199, 2199, 2201,
2866      2201, 2201, 2184, 1434, 1434, 1434, 3692, 3693, 1418, 3694,
2867      3695, 1426, 2192, 2200, 3696, 3698, 2202, 2204, 2204, 2204,
2868      2189, 1436, 4087, 4087, 4087, 2001, 2001, 2001, 2207, 2207,
2869      2207, 3699, 2208, 3700, 2205, 2209, 2210, 2210, 2210, 4087,
2870      3701, 3702, 2002, 1450, 1450, 1450, 2005, 2005, 2005, 3703,
2871      2213, 2213, 2213, 2211, 2214, 3704, 2197, 2215, 3705, 2198,
2872
2873      3706, 1452, 3707, 2006, 3708, 2216, 2216, 2216, 3713, 2203,
2874      4087, 4087, 4087, 2009, 2009, 2009, 3714, 2010, 3715, 3716,
2875      2011, 2206, 2217, 4087, 4087, 4087, 3717, 4087, 4087, 4087,
2876      4087, 2221, 2221, 2221, 4087, 4087, 4087, 4087, 4087, 4087,
2877      4087, 4087, 4087, 4087, 2212, 4087, 3518, 3718, 2222, 3719,
2878      3720, 4087, 3565, 3709, 4087, 2018, 2018, 2018, 4087, 2226,
2879      2226, 2226, 3519, 2227, 3520, 3710, 2228, 3721, 2229, 2229,
2880      2229, 3566, 2019, 3567, 3722, 2218, 3723, 3521, 2220, 4087,
2881      4087, 4087, 3711, 3724, 2224, 2230, 3568, 3725, 2219, 4087,
2882      4087, 4087, 3726, 2223, 3712, 2225, 4087, 1475, 1475, 1475,
2883
2884      1482, 1482, 1482, 2027, 2027, 2027, 4087, 2028, 3727, 3728,
2885      2029, 2237, 2237, 2237, 3729, 1477, 3730, 3731, 1484, 2031,
2886      2031, 2031, 2239, 2239, 2239, 3732, 2240, 2231, 2238, 2241,
2887      2243, 2243, 2243, 2245, 2245, 2245, 2032, 2036, 2036, 2036,
2888      3733, 2037, 3734, 2232, 2038, 1507, 1507, 1507, 2244, 3735,
2889      2040, 2040, 2040, 3736, 2041, 3737, 2234, 2042, 1512, 1512,
2890      1512, 3738, 3739, 1509, 2233, 2252, 2252, 2252, 1531, 1531,
2891      1531, 2051, 2051, 2051, 3740, 3741, 1514, 2256, 2256, 2256,
2892      3742, 2257, 3744, 2253, 2258, 3745, 1533, 1312, 2052, 1539,
2893      1539, 1539, 2246, 2054, 2054, 2054, 3746, 2055, 3747, 3748,
2894
2895      2056, 1545, 1545, 1545, 2060, 2060, 2060, 1541, 3749, 2263,
2896      2263, 2263, 3743, 2264, 3750, 2255, 2265, 3751, 3752, 1547,
2897      3753, 2061, 2266, 2266, 2266, 3754, 2247, 2064, 2064, 2064,
2898      2269, 2269, 2269, 3755, 2270, 3756, 3757, 2271, 3758, 2267,
2899      2273, 2273, 2273, 3759, 2065, 1566, 1566, 1566, 2259, 2278,
2900      2278, 2278, 2076, 2076, 2076, 3760, 2077, 3761, 2274, 2078,
2901      1579, 1579, 1579, 1568, 2083, 2083, 2083, 3762, 2261, 2287,
2902      2287, 2287, 3763, 2288, 3764, 3765, 2289, 3766, 1581, 3767,
2903      3768, 2084, 2290, 2290, 2290, 2087, 2087, 2087, 3769, 2088,
2904      3770, 3771, 2089, 3772, 3773, 2091, 2091, 2091, 2277, 2092,
2905
2906      2291, 3774, 2093, 1603, 1603, 1603, 1612, 1612, 1612, 1620,
2907      1620, 1620, 2286, 2300, 2300, 2300, 4087, 4087, 4087, 3775,
2908      3776, 1605, 3777, 3778, 1614, 3779, 3780, 1622, 3781, 1312,
2909      2301, 3783, 3784, 4087, 2303, 2303, 2303, 1630, 1630, 1630,
2910      2105, 2105, 2105, 2307, 2307, 2307, 3785, 2308, 3782, 3786,
2911      2309, 2304, 2107, 2107, 2107, 1632, 2108, 2106, 2297, 2109,
2912      3787, 2299, 1640, 1640, 1640, 2295, 2112, 2112, 2112, 3788,
2913      2113, 3789, 3790, 2114, 1651, 1651, 1651, 2119, 2119, 2119,
2914      1642, 2120, 3791, 2302, 2121, 2305, 2122, 2122, 2122, 2324,
2915      2324, 2324, 1653, 2325, 3792, 3793, 2326, 1658, 1658, 1658,
2916
2917      2329, 2329, 2329, 2123, 2331, 2331, 2331, 2333, 2333, 2333,
2918      2310, 4087, 4087, 4087, 3794, 1660, 3795, 3796, 2330, 3797,
2919      3798, 2332, 3799, 3800, 2334, 3801, 2314, 3802, 4087, 1677,
2920      1677, 1677, 3803, 2340, 2340, 2340, 2137, 2137, 2137, 2350,
2921      2350, 2350, 2148, 2148, 2148, 3804, 3805, 1679, 3806, 2327,
2922      2341, 2357, 2357, 2357, 2152, 2152, 2152, 2358, 2358, 2358,
2923      2155, 2155, 2155, 3807, 3808, 2336, 2165, 2165, 2165, 2371,
2924      2371, 2371, 2168, 2168, 2168, 3809, 2335, 2173, 2173, 2173,
2925      2375, 2375, 2375, 3810, 2376, 3811, 3812, 2377, 2175, 2175,
2926      2175, 2378, 2378, 2378, 2174, 2379, 3813, 3814, 2380, 1381,
2927
2928      1381, 1381, 2388, 2388, 2388, 2176, 2186, 2186, 2186, 3815,
2929      2187, 3816, 3817, 2188, 2393, 2393, 2393, 1383, 3818, 3820,
2930      2389, 1397, 1397, 1397, 1406, 1406, 1406, 2193, 2193, 2193,
2931      3821, 2394, 3822, 2396, 2396, 2396, 3823, 2397, 3824, 1399,
2932      2398, 3825, 1408, 3826, 2194, 2195, 2195, 2195, 2399, 2399,
2933      2399, 1312, 2400, 3827, 3828, 2401, 1416, 1416, 1416, 1424,
2934      1424, 1424, 2196, 2199, 2199, 2199, 2382, 3829, 2404, 2404,
2935      2404, 3819, 2405, 2391, 1418, 2406, 3830, 1426, 3831, 3832,
2936      2200, 2201, 2201, 2201, 3833, 3834, 2395, 2407, 2407, 2407,
2937      3835, 2408, 3836, 3837, 2409, 1434, 1434, 1434, 2202, 2204,
2938
2939      2204, 2204, 2411, 2411, 2411, 3838, 2412, 3839, 3840, 2413,
2940      2414, 2414, 2414, 1436, 3841, 3842, 2205, 2207, 2207, 2207,
2941      3843, 2208, 2402, 3844, 2209, 2403, 3845, 2415, 2210, 2210,
2942      2210, 2416, 2416, 2416, 3846, 2417, 3847, 3848, 2418, 1450,
2943      1450, 1450, 2213, 2213, 2213, 2211, 2214, 3849, 3850, 2215,
2944      2216, 2216, 2216, 2221, 2221, 2221, 3851, 1452, 2420, 2420,
2945      2420, 2410, 2421, 3853, 3854, 2422, 3855, 2217, 1312, 3571,
2946      2222, 2426, 2426, 2426, 3852, 2427, 3856, 3857, 2428, 2429,
2947      2429, 2429, 2226, 2226, 2226, 3572, 2227, 3573, 3858, 2228,
2948      3859, 2419, 2229, 2229, 2229, 3860, 2430, 2433, 2433, 2433,
2949
2950      3574, 2434, 3861, 3862, 2435, 1475, 1475, 1475, 3863, 2230,
2951      1482, 1482, 1482, 2237, 2237, 2237, 3864, 2442, 2442, 2442,
2952      3865, 2443, 3866, 1477, 2444, 2239, 2239, 2239, 1484, 2240,
2953      2238, 3867, 2241, 2243, 2243, 2243, 2245, 2245, 2245, 3868,
2954      1507, 1507, 1507, 1512, 1512, 1512, 2449, 2449, 2449, 3869,
2955      3870, 2244, 2252, 2252, 2252, 3871, 3872, 2438, 1509, 3873,
2956      3874, 1514, 3875, 2450, 2439, 1531, 1531, 1531, 3876, 3878,
2957      2253, 2256, 2256, 2256, 3879, 2257, 3880, 1312, 2258, 1539,
2958      1539, 1539, 3881, 1533, 2458, 2458, 2458, 3882, 2263, 2263,
2959      2263, 3877, 2264, 2451, 2447, 2265, 3883, 1541, 3884, 2446,
2960
2961      3885, 3886, 2459, 2266, 2266, 2266, 2461, 2461, 2461, 3887,
2962      2462, 3888, 3889, 2463, 3890, 2455, 3891, 2269, 2269, 2269,
2963      2267, 2270, 3892, 3893, 2271, 3895, 2456, 2273, 2273, 2273,
2964      2467, 2467, 2467, 1566, 1566, 1566, 2278, 2278, 2278, 2470,
2965      2470, 2470, 2472, 2472, 2472, 2274, 3896, 2468, 1579, 1579,
2966      1579, 1568, 2287, 2287, 2287, 3897, 2288, 3898, 3899, 2289,
2967      2290, 2290, 2290, 2479, 2479, 2479, 1581, 1603, 1603, 1603,
2968      2484, 2484, 2484, 1620, 1620, 1620, 3900, 3901, 2291, 3902,
2969      2480, 2300, 2300, 2300, 3903, 1605, 3904, 3905, 2485, 3906,
2970      3907, 1622, 2488, 2488, 2488, 2469, 2489, 3908, 2301, 2490,
2971
2972      2491, 2491, 2491, 2303, 2303, 2303, 2493, 2493, 2493, 3909,
2973      2494, 3910, 3913, 2495, 2477, 3914, 3915, 2492, 3916, 3917,
2974      2304, 1630, 1630, 1630, 2497, 2497, 2497, 2482, 2307, 2307,
2975      2307, 3918, 2308, 3919, 3920, 2309, 3921, 3922, 2487, 1632,
2976      3925, 2498, 1640, 1640, 1640, 2503, 2503, 2503, 2505, 2505,
2977      2505, 2324, 2324, 2324, 1312, 2325, 3926, 1312, 2326, 3927,
2978      1642, 3928, 1312, 2504, 1312, 2506, 1658, 1658, 1658, 2518,
2979      2518, 2518, 2329, 2329, 2329, 2496, 2331, 2331, 2331, 1312,
2980      3975, 2520, 2520, 2520, 1660, 2521, 2519, 3939, 2522, 1312,
2981      2330, 3923, 1312, 2332, 3924, 1312, 2499, 2333, 2333, 2333,
2982
2983      2523, 2523, 2523, 1838, 2524, 1837, 1831, 2525, 1677, 1677,
2984      1677, 3929, 3947, 2517, 2334, 2340, 2340, 2340, 2531, 2531,
2985      2531, 1829, 2532, 1827, 3933, 2533, 1679, 2534, 2534, 2534,
2986      3951, 1312, 2341, 2540, 2540, 2540, 2541, 2541, 2541, 2350,
2987      2350, 2350, 2543, 2543, 2543, 2547, 2547, 2547, 2357, 2357,
2988      2357, 2358, 2358, 2358, 2548, 2548, 2548, 2552, 2552, 2552,
2989      2557, 2557, 2557, 2558, 2558, 2558, 2560, 2560, 2560, 1312,
2990      2527, 2371, 2371, 2371, 2561, 2561, 2561, 2375, 2375, 2375,
2991      3930, 2376, 1312, 1826, 2377, 2378, 2378, 2378, 1312, 2379,
2992      1312, 1312, 2380, 1381, 1381, 1381, 2568, 2568, 2568, 1825,
2993
2994      1312, 2549, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
2995      4087, 1383, 1824, 2569, 2388, 2388, 2388, 3983, 3931, 4087,
2996      3940, 2562, 4087, 3985, 1312, 4087, 1397, 1397, 1397, 2393,
2997      2393, 2393, 2389, 2576, 2576, 2576, 3934, 2577, 3953, 3932,
2998      2578, 1406, 1406, 1406, 1399, 2566, 2394, 3942, 2396, 2396,
2999      2396, 1312, 2397, 3941, 2570, 2398, 2399, 2399, 2399, 1408,
3000      2400, 1312, 1312, 2401, 1416, 1416, 1416, 1312, 2572, 3943,
3001      2571, 1424, 1424, 1424, 2404, 2404, 2404, 1312, 2405, 3935,
3002      1817, 2406, 1418, 1312, 2580, 2793, 2794, 2574, 2795, 1426,
3003      2407, 2407, 2407, 3944, 2408, 1312, 2796, 2409, 1434, 1434,
3004
3005      1434, 1312, 2579, 2797, 2411, 2411, 2411, 2581, 2412, 3955,
3006      3949, 2413, 2414, 2414, 2414, 3945, 1436, 2583, 2583, 2583,
3007      1312, 2584, 1312, 1312, 2585, 4023, 2416, 2416, 2416, 2415,
3008      2417, 3936, 3946, 2418, 1450, 1450, 1450, 2420, 2420, 2420,
3009      1312, 2421, 2582, 3948, 2422, 1815, 2426, 2426, 2426, 1312,
3010      2427, 1312, 1452, 2428, 2429, 2429, 2429, 2590, 2590, 2590,
3011      3950, 2591, 3957, 1312, 2592, 2433, 2433, 2433, 1312, 2434,
3012      3952, 2430, 2435, 2596, 2596, 2596, 1475, 1475, 1475, 2599,
3013      2599, 2599, 2442, 2442, 2442, 1312, 2443, 3956, 1312, 2444,
3014      2597, 1507, 1507, 1507, 1477, 1312, 3977, 2600, 1512, 1512,
3015
3016      1512, 2586, 2449, 2449, 2449, 1312, 2607, 2607, 2607, 1509,
3017      2608, 3954, 1312, 2609, 1312, 1312, 1514, 1814, 1312, 2450,
3018      1531, 1531, 1531, 3958, 3959, 1539, 1539, 1539, 2458, 2458,
3019      2458, 3980, 2461, 2461, 2461, 1813, 2462, 3960, 1533, 2463,
3020      1312, 2598, 1312, 1541, 3937, 1810, 2459, 2604, 1312, 4031,
3021      2605, 2467, 2467, 2467, 2621, 2621, 2621, 3962, 2622, 3963,
3022      4008, 2623, 1566, 1566, 1566, 2470, 2470, 2470, 2468, 2625,
3023      2625, 2625, 2472, 2472, 2472, 2626, 2626, 2626, 3961, 1312,
3024      1568, 4087, 4087, 4087, 4087, 4087, 4087, 2614, 2615, 1579,
3025      1579, 1579, 2627, 4087, 4087, 4087, 3938, 3982, 4087, 1312,
3026
3027      3996, 4087, 2479, 2479, 2479, 1809, 1312, 1581, 1312, 1312,
3028      4087, 2633, 2633, 2633, 1312, 2634, 1312, 1312, 2635, 2480,
3029      2637, 2637, 2637, 2484, 2484, 2484, 3965, 2624, 2641, 2641,
3030      2641, 1312, 3971, 2628, 1312, 2488, 2488, 2488, 2638, 2489,
3031      1312, 2485, 2490, 2491, 2491, 2491, 2642, 3967, 1312, 2629,
3032      2643, 2643, 2643, 2630, 2644, 2631, 1804, 2645, 3984, 4011,
3033      2492, 2493, 2493, 2493, 3968, 2494, 1312, 3964, 2495, 1630,
3034      1630, 1630, 2497, 2497, 2497, 2647, 2647, 2647, 3969, 2648,
3035      1312, 3970, 2649, 1640, 1640, 1640, 3972, 1632, 1312, 2498,
3036      2503, 2503, 2503, 2505, 2505, 2505, 2654, 2654, 2654, 3998,
3037
3038      2655, 1642, 3966, 2656, 1658, 1658, 1658, 1312, 2504, 1312,
3039      2506, 2518, 2518, 2518, 1312, 4033, 2668, 2668, 2668, 1312,
3040      2669, 2646, 1660, 2670, 3979, 2520, 2520, 2520, 2519, 2521,
3041      1312, 1312, 2522, 4039, 1803, 2650, 2523, 2523, 2523, 1802,
3042      2524, 1312, 3973, 2525, 1677, 1677, 1677, 2673, 2673, 2673,
3043      3981, 2531, 2531, 2531, 2667, 2532, 1801, 3974, 2533, 2534,
3044      2534, 2534, 1679, 3976, 3978, 1312, 2686, 2686, 2686, 2687,
3045      2687, 2687, 2540, 2540, 2540, 2541, 2541, 2541, 2543, 2543,
3046      2543, 2692, 2692, 2692, 2694, 2694, 2694, 2547, 2547, 2547,
3047      2548, 2548, 2548, 2552, 2552, 2552, 2698, 2698, 2698, 2557,
3048
3049      2557, 2557, 2558, 2558, 2558, 2560, 2560, 2560, 2561, 2561,
3050      2561, 1312, 2672, 2707, 2707, 2707, 2709, 2709, 2709, 2568,
3051      2568, 2568, 2710, 2710, 2710, 1312, 2711, 1312, 1800, 2712,
3052      1312, 2708, 2713, 2713, 2713, 1799, 2569, 4087, 4087, 4087,
3053      4087, 4087, 4087, 2717, 2717, 2717, 1397, 1397, 1397, 2714,
3054      2719, 2719, 2719, 1312, 4087, 3986, 1312, 4087, 2576, 2576,
3055      2576, 1312, 2577, 4004, 1399, 2578, 3992, 2720, 1406, 1406,
3056      1406, 3987, 1416, 1416, 1416, 1424, 1424, 1424, 1434, 1434,
3057      1434, 2583, 2583, 2583, 1312, 2584, 1408, 3999, 2585, 2715,
3058      1418, 1312, 2716, 1426, 1798, 1797, 1436, 2725, 2725, 2725,
3059
3060      2590, 2590, 2590, 3988, 2591, 3989, 1312, 2592, 1312, 2722,
3061      2731, 2731, 2731, 2718, 1312, 2726, 2596, 2596, 2596, 1791,
3062      2721, 2735, 2735, 2735, 1312, 2736, 1790, 2732, 2737, 2738,
3063      2738, 2738, 4000, 2597, 2599, 2599, 2599, 2723, 3990, 4024,
3064      2724, 1507, 1507, 1507, 2744, 2744, 2744, 2739, 2746, 2746,
3065      2746, 1312, 2600, 2607, 2607, 2607, 4002, 2608, 4001, 1509,
3066      2609, 3991, 2745, 1312, 1312, 2747, 4087, 4087, 4087, 4087,
3067      4087, 4087, 4087, 4087, 4087, 2752, 2752, 2752, 1531, 1531,
3068      1531, 4003, 4005, 4087, 1312, 1312, 4087, 3994, 1789, 4087,
3069      1312, 1312, 2753, 1787, 1312, 2748, 1533, 1539, 1539, 1539,
3070
3071      3995, 4006, 2743, 2756, 2756, 2756, 2761, 2761, 2761, 2621,
3072      2621, 2621, 4044, 2622, 4025, 1541, 2623, 1566, 1566, 1566,
3073      2757, 3997, 2749, 1312, 2751, 2625, 2625, 2625, 2626, 2626,
3074      2626, 2750, 2766, 2766, 2766, 1568, 2763, 2763, 2763, 2754,
3075      2764, 3993, 1312, 2765, 1312, 2627, 4087, 4087, 4087, 2767,
3076      4087, 4087, 4087, 2770, 2770, 2770, 2772, 2772, 2772, 4087,
3077      4087, 4087, 2755, 4087, 2637, 2637, 2637, 4087, 2633, 2633,
3078      2633, 2771, 2634, 2773, 1312, 2635, 4087, 2762, 2641, 2641,
3079      2641, 1312, 2638, 2643, 2643, 2643, 4010, 2644, 4027, 4015,
3080      2645, 2777, 2777, 2777, 1312, 1312, 2642, 1312, 2768, 2647,
3081
3082      2647, 2647, 2769, 2648, 1312, 1312, 2649, 4026, 1312, 2778,
3083      1640, 1640, 1640, 2654, 2654, 2654, 1312, 2655, 1786, 4007,
3084      2656, 1658, 1658, 1658, 2798, 2799, 2774, 2800, 1642, 2668,
3085      2668, 2668, 4009, 2669, 1785, 2801, 2670, 1784, 4013, 1660,
3086      4012, 4014, 2802, 1677, 1677, 1677, 2673, 2673, 2673, 2686,
3087      2686, 2686, 2687, 2687, 2687, 4016, 1312, 2779, 2823, 2823,
3088      2823, 1679, 1312, 4017, 1312, 2692, 2692, 2692, 2694, 2694,
3089      2694, 2827, 2827, 2827, 2698, 2698, 2698, 2831, 2831, 2831,
3090      2834, 2834, 2834, 2792, 2707, 2707, 2707, 2709, 2709, 2709,
3091      2710, 2710, 2710, 4044, 2711, 4032, 1776, 2712, 2713, 2713,
3092
3093      2713, 1312, 2708, 4018, 2836, 2836, 2836, 1312, 2837, 2805,
3094      2804, 2838, 2839, 2839, 2839, 2714, 2841, 2841, 2841, 2717,
3095      2717, 2717, 2843, 2843, 2843, 2719, 2719, 2719, 1312, 2840,
3096      2845, 2845, 2845, 2842, 2846, 1312, 1312, 2847, 1312, 4019,
3097      2844, 1312, 2720, 2848, 2848, 2848, 1416, 1416, 1416, 1424,
3098      1424, 1424, 1434, 1434, 1434, 2725, 2725, 2725, 2731, 2731,
3099      2731, 2849, 4028, 4029, 1418, 1312, 4020, 1426, 4034, 1312,
3100      1436, 1312, 1312, 2726, 4021, 2732, 2857, 2857, 2857, 4022,
3101      2858, 4030, 1312, 2859, 2735, 2735, 2735, 4036, 2736, 1775,
3102      1312, 2737, 2738, 2738, 2738, 2870, 2870, 2870, 1507, 1507,
3103
3104      1507, 2744, 2744, 2744, 2746, 2746, 2746, 2884, 2884, 2884,
3105      2739, 2850, 2871, 2852, 4038, 4040, 1509, 2851, 4080, 2745,
3106      1760, 2747, 2873, 2873, 2873, 2885, 2874, 1312, 1312, 2875,
3107      2879, 2879, 2879, 2752, 2752, 2752, 2881, 2881, 2881, 1312,
3108      2882, 4041, 1759, 2883, 1539, 1539, 1539, 2880, 1754, 1312,
3109      2753, 2756, 2756, 2756, 1312, 1312, 2872, 2887, 2887, 2887,
3110      4042, 2888, 1541, 1312, 2889, 2892, 2892, 2892, 2757, 2761,
3111      2761, 2761, 2894, 2894, 2894, 4035, 2763, 2763, 2763, 1312,
3112      2764, 4050, 2893, 2765, 2766, 2766, 2766, 2896, 2896, 2896,
3113      2895, 2897, 4046, 4049, 2898, 2899, 2899, 2899, 2901, 2901,
3114
3115      2901, 2767, 2770, 2770, 2770, 4076, 2886, 2772, 2772, 2772,
3116      4037, 4060, 2900, 1312, 1312, 2902, 2777, 2777, 2777, 1312,
3117      2771, 2903, 2903, 2903, 2773, 2904, 1753, 4043, 2905, 1640,
3118      1640, 1640, 1312, 1751, 2778, 1312, 1658, 1658, 1658, 1677,
3119      1677, 1677, 2823, 2823, 2823, 1750, 1312, 1642, 2955, 2955,
3120      2955, 2827, 2827, 2827, 1660, 4051, 1312, 1679, 2831, 2831,
3121      2831, 2834, 2834, 2834, 2963, 2963, 2963, 2836, 2836, 2836,
3122      4056, 2837, 1748, 1312, 2838, 2839, 2839, 2839, 2965, 2965,
3123      2965, 2964, 2966, 4045, 4057, 2967, 2841, 2841, 2841, 4058,
3124      1747, 2936, 2840, 2843, 2843, 2843, 2909, 2922, 2968, 2968,
3125
3126      2968, 1312, 2969, 2842, 4061, 2970, 2845, 2845, 2845, 4052,
3127      2846, 2844, 1312, 2847, 2848, 2848, 2848, 1416, 1416, 1416,
3128      1424, 1424, 1424, 1434, 1434, 1434, 2976, 2976, 2976, 2857,
3129      2857, 2857, 2849, 2858, 1312, 1418, 2859, 4053, 1426, 1312,
3130      1312, 1436, 1312, 2977, 2990, 2990, 2990, 2870, 2870, 2870,
3131      2992, 2992, 2992, 1312, 2993, 1746, 1312, 2994, 2995, 2995,
3132      2995, 2991, 1312, 1312, 2871, 2873, 2873, 2873, 1743, 2874,
3133      4068, 1312, 2875, 4059, 1312, 2973, 2996, 4064, 1742, 2971,
3134      2879, 2879, 2879, 1312, 3000, 3000, 3000, 2972, 3001, 4054,
3135      1312, 3002, 2881, 2881, 2881, 4066, 2882, 2880, 4067, 2883,
3136
3137      2884, 2884, 2884, 1539, 1539, 1539, 2887, 2887, 2887, 4055,
3138      2888, 4062, 4065, 2889, 3011, 3011, 3011, 1312, 2885, 4063,
3139      1312, 1541, 2892, 2892, 2892, 3013, 3013, 3013, 4072, 3014,
3140      4070, 3012, 3015, 2894, 2894, 2894, 2896, 2896, 2896, 2893,
3141      2897, 1312, 1740, 2898, 2899, 2899, 2899, 1312, 3016, 3016,
3142      3016, 2895, 3017, 4069, 1312, 3018, 2901, 2901, 2901, 4077,
3143      4084, 2900, 1736, 3019, 3019, 3019, 3009, 3020, 1312, 4081,
3144      3021, 1312, 1735, 2902, 2903, 2903, 2903, 1312, 2904, 4073,
3145      4074, 2905, 3029, 3029, 3029, 3031, 3031, 3031, 1640, 1640,
3146      1640, 3034, 3034, 3034, 3035, 3035, 3035, 1731, 1730, 3030,
3147
3148      1729, 4071, 3032, 1658, 1658, 1658, 1642, 3060, 3060, 3060,
3149      4075, 3036, 3062, 3062, 3062, 3080, 3080, 3080, 2955, 2955,
3150      2955, 1660, 1312, 1312, 3061, 3085, 3085, 3085, 1728, 1727,
3151      3063, 2963, 2963, 2963, 3089, 3089, 3089, 1726, 3090, 4084,
3152      1725, 3091, 2965, 2965, 2965, 1312, 2966, 1724, 2964, 2967,
3153      2968, 2968, 2968, 1312, 2969, 4078, 4079, 2970, 1723, 1722,
3154      3033, 1416, 1416, 1416, 3047, 1424, 1424, 1424, 1434, 1434,
3155      1434, 3100, 3100, 3100, 2976, 2976, 2976, 1721, 4082, 1418,
3156      3102, 3102, 3102, 1426, 3103, 1720, 1436, 3104, 3101, 1719,
3157      1718, 2977, 3105, 3105, 3105, 2990, 2990, 2990, 3118, 3118,
3158
3159      3118, 1312, 3119, 1717, 3098, 3120, 2992, 2992, 2992, 3106,
3160      2993, 1716, 2991, 2994, 2995, 2995, 2995, 3097, 3122, 3122,
3161      3122, 3000, 3000, 3000, 1715, 3001, 1714, 1713, 3002, 3096,
3162      1711, 1710, 2996, 1709, 4083, 3123, 3131, 3131, 3131, 3011,
3163      3011, 3011, 3134, 3134, 3134, 1708, 3135, 1707, 1704, 3136,
3164      1703, 3013, 3013, 3013, 3132, 3014, 3012, 1702, 3015, 3016,
3165      3016, 3016, 1701, 3017, 1700, 1699, 3018, 3019, 3019, 3019,
3166      1698, 3020, 1697, 1696, 3021, 3029, 3029, 3029, 3150, 3150,
3167      3150, 1695, 3151, 1694, 1693, 3152, 3031, 3031, 3031, 3153,
3168      3153, 3153, 3030, 3154, 1692, 1691, 3155, 1640, 1640, 1640,
3169
3170      3034, 3034, 3034, 3032, 3035, 3035, 3035, 3157, 3157, 3157,
3171      1690, 3158, 1687, 1686, 3159, 1642, 1658, 1658, 1658, 1685,
3172      1684, 3036, 3060, 3060, 3060, 3181, 3181, 3181, 1683, 3182,
3173      1682, 1312, 3183, 1665, 1660, 3062, 3062, 3062, 1657, 3061,
3174      3186, 3186, 3186, 3080, 3080, 3080, 3202, 3202, 3202, 3085,
3175      3085, 3085, 1656, 3063, 3206, 3206, 3206, 3187, 1922, 1655,
3176      3156, 1650, 3089, 3089, 3089, 1649, 3090, 1645, 3168, 3091,
3177      1416, 1416, 1416, 3221, 3221, 3221, 1434, 1434, 1434, 3100,
3178      3100, 3100, 3225, 3225, 3225, 1639, 3226, 1638, 1418, 3227,
3179      1634, 3222, 1629, 1625, 1436, 1624, 3101, 3102, 3102, 3102,
3180
3181      1616, 3103, 1602, 1601, 3104, 3105, 3105, 3105, 3228, 3228,
3182      3228, 1600, 3229, 1597, 1591, 3230, 3118, 3118, 3118, 1586,
3183      3119, 1578, 3106, 3120, 3122, 3122, 3122, 3243, 3243, 3243,
3184      1577, 3244, 1576, 1575, 3245, 1574, 1573, 3220, 3223, 1572,
3185      1571, 3123, 3131, 3131, 3131, 3134, 3134, 3134, 1570, 3135,
3186      1565, 1564, 3136, 3266, 3266, 3266, 1559, 3150, 3150, 3150,
3187      3132, 3151, 1558, 1552, 3152, 3153, 3153, 3153, 1549, 3154,
3188      3267, 1544, 3155, 1640, 1640, 1640, 3157, 3157, 3157, 1543,
3189      3158, 1538, 1527, 3159, 1658, 1658, 1658, 1522, 3181, 3181,
3190      3181, 1642, 3182, 1521, 1520, 3183, 3307, 3307, 3307, 3186,
3191
3192      3186, 3186, 1660, 3309, 3309, 3309, 1516, 3310, 1511, 1500,
3193      3311, 1494, 1493, 3308, 1922, 1492, 3187, 1922, 3320, 3320,
3194      3320, 1922, 3202, 3202, 3202, 3276, 3322, 3322, 3322, 3323,
3195      3323, 3323, 1488, 1487, 3285, 3206, 3206, 3206, 3325, 3325,
3196      3325, 1416, 1416, 1416, 3221, 3221, 3221, 1434, 1434, 1434,
3197      3225, 3225, 3225, 1486, 3226, 1474, 1473, 3227, 1472, 1418,
3198      1471, 1470, 3222, 1469, 1468, 1436, 3228, 3228, 3228, 1467,
3199      3229, 1466, 1460, 3230, 3341, 3341, 3341, 3353, 3353, 3353,
3200      3243, 3243, 3243, 1405, 3244, 1401, 1396, 3245, 3355, 3355,
3201      3355, 3342, 1395, 3338, 3354, 3266, 3266, 3266, 1390, 3374,
3202
3203      3374, 3374, 1389, 3375, 1388, 3356, 3376, 3385, 3385, 3385,
3204      1387, 1386, 3267, 1385, 1373, 3339, 1658, 1658, 1658, 3307,
3205      3307, 3307, 3411, 3411, 3411, 3386, 3412, 1372, 1371, 3413,
3206      1370, 3309, 3309, 3309, 1660, 3310, 3308, 1922, 3311, 1369,
3207      1922, 3320, 3320, 3320, 3322, 3322, 3322, 1368, 1367, 1922,
3208      3323, 3323, 3323, 3325, 3325, 3325, 3436, 3436, 3436, 1434,
3209      1434, 1434, 3341, 3341, 3341, 3440, 3440, 3440, 1366, 3441,
3210      1365, 1364, 3442, 1363, 3437, 1362, 1361, 1436, 1360, 3342,
3211      3443, 3443, 3443, 3393, 1920, 1920, 1920, 1920, 1920, 1920,
3212      1920, 1920, 1920, 1359, 1358, 1920, 1357, 3444, 1356, 1353,
3213
3214      1920, 1920, 1920, 1922, 1920, 3353, 3353, 3353, 3452, 3452,
3215      3452, 1352, 3453, 1351, 1350, 3454, 3455, 3455, 3455, 1349,
3216      3456, 1348, 3354, 3457, 1347, 1346, 3438, 3355, 3355, 3355,
3217      1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
3218      1920, 1345, 1342, 1920, 3356, 3385, 3385, 3385, 1920, 1920,
3219      1920, 1922, 1920, 3374, 3374, 3374, 1341, 3375, 1340, 1339,
3220      3376, 1338, 1337, 3386, 3489, 3489, 3489, 3411, 3411, 3411,
3221      1336, 3412, 1335, 1334, 3413, 3524, 3524, 3524, 1920, 1920,
3222      1333, 1326, 3490, 1322, 1321, 1922, 1920, 1920, 1920, 1920,
3223      1920, 3511, 1920, 1920, 1920, 1320, 1319, 1920, 3525, 3525,
3224
3225      3525, 1318, 1920, 1920, 1920, 1922, 1920, 3436, 3436, 3436,
3226      1434, 1434, 1434, 3440, 3440, 3440, 1315, 3441, 1313, 1312,
3227      3442, 3524, 3524, 3524, 1310, 3437, 1308, 1307, 1436, 3443,
3228      3443, 3443, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
3229      1920, 1920, 3511, 1306, 1305, 1920, 3444, 3525, 3525, 3525,
3230      1920, 1920, 1920, 1922, 1920, 1304, 3538, 3538, 3538, 1302,
3231      3539, 1299, 3532, 3540, 3452, 3452, 3452, 1297, 3453, 1296,
3232      1295, 3454, 3455, 3455, 3455, 1294, 3456, 1293, 1290, 3457,
3233      1920, 1920, 3489, 3489, 3489, 3585, 3585, 3585, 3598, 3598,
3234      3598, 3600, 3600, 3600, 3538, 3538, 3538, 1287, 3539, 1286,
3235
3236      3490, 3540, 1285, 1922, 1923, 1283, 3599, 1282, 3601, 3614,
3237      3614, 3614, 3624, 3624, 3624, 3642, 3642, 3642, 3585, 3585,
3238      3585, 3598, 3598, 3598, 1279, 1278, 3615, 1276, 1273, 3625,
3239      3600, 3600, 3600, 1312, 1272, 1271, 1922, 1267, 1266, 3599,
3240      1264, 3654, 3654, 3654, 1263, 3655, 1262, 3601, 3656, 3614,
3241      3614, 3614, 3669, 3669, 3669, 1261, 3670, 1259, 1258, 3671,
3242      3624, 3624, 3624, 3642, 3642, 3642, 3615, 3680, 3680, 3680,
3243      2132, 3681, 1257, 1256, 3682, 1255, 1254, 3625, 3654, 3654,
3244      3654, 1312, 3655, 1251, 1250, 3656, 3669, 3669, 3669, 1248,
3245      3670, 1245, 1243, 3671, 3680, 3680, 3680, 1242, 3681, 1241,
3246
3247      3697, 3682, 3894, 3894, 3894, 3894, 3894, 3894, 1240, 3911,
3248      1239, 1234, 3912, 4047, 4047, 4047, 4047, 4047, 4047, 1232,
3249      1312, 1231, 1230, 1312, 4085, 4085, 4085, 4085, 4085, 4085,
3250      1228, 4048, 1227, 1226, 4048, 1223, 1222, 1221, 1220, 1218,
3251      1217, 1216, 4086, 1214, 1211, 4086,  324,  324,  324,  324,
3252       324,  324,  324,  324,  324,  325,  325,  325,  325,  325,
3253       325,  325,  325,  325,  330,  330,  330,  330,  330,  330,
3254       330,  330,  330,  333,  333,  333,  333,  333,  333,  333,
3255       333,  333,  336,  336,  336,  336,  336,  336,  336,  336,
3256       336,  339,  339,  339,  339,  339,  339,  339,  339,  339,
3257
3258       346,  346,  346,  346,  346,  346,  346,  346,  346,  353,
3259       353,  353,  353,  353,  353,  353,  353,  353,  358,  358,
3260       358,  358,  358,  358,  358,  358,  358,  377,  377,  377,
3261       377,  377,  377,  377,  377,  377,  383,  383,  383,  383,
3262       383,  383,  383,  383,  383,  391,  391,  391,  391,  391,
3263       391,  391,  391,  391,  399,  399,  399,  399,  399,  399,
3264       399,  399,  399,  407,  407,  407,  407,  407,  407,  407,
3265       407,  407,  411,  411,  411,  411,  411,  411,  411,  411,
3266       411,  417,  417,  417,  417,  417,  417,  417,  417,  417,
3267       423,  423,  423,  423,  423,  423,  423,  423,  423,  429,
3268
3269       429,  429,  429,  429,  429,  429,  429,  429,  435,  435,
3270       435,  435,  435,  435,  435,  435,  435,  442,  442,  442,
3271       442,  442,  442,  442,  442,  442,  447,  447,  447,  447,
3272       447,  447,  447,  447,  447,  454,  454,  454,  454,  454,
3273       454,  454,  454,  454,  460,  460,  460,  460,  460,  460,
3274       460,  460,  460,  467,  467,  467,  467,  467,  467,  467,
3275       467,  467,  476,  476,  476,  476,  476,  476,  476,  476,
3276       476,  482,  482,  482,  482,  482,  482,  482,  482,  482,
3277       493,  493,  493,  493,  493,  493,  493,  493,  493,  500,
3278       500,  500,  500,  500,  500,  500,  500,  500,  504,  504,
3279
3280       504,  504,  504,  504,  504,  504,  504,  511,  511,  511,
3281       511,  511,  511,  511,  511,  511,  519,  519,  519,  519,
3282       519,  519,  519,  519,  519,  527,  527,  527,  527,  527,
3283       527,  527,  527,  527,  533,  533,  533,  533,  533,  533,
3284       533,  533,  533,  539,  539,  539,  539,  539,  539,  539,
3285       539,  539,  543,  543,  543,  543,  543,  543,  543,  543,
3286       543,  551,  551,  551,  551,  551,  551,  551,  551,  551,
3287       558,  558,  558,  558,  558,  558,  558,  558,  558,  565,
3288       565,  565,  565,  565,  565,  565,  565,  565,  570,  570,
3289       570,  570,  570,  570,  570,  570,  570,  576,  576,  576,
3290
3291       576,  576,  576,  576,  576,  576,  581,  581,  581,  581,
3292       581,  581,  581,  581,  581,  587,  587,  587,  587,  587,
3293       587,  587,  587,  587,  592,  592,  592,  592,  592,  592,
3294       592,  592,  592,  598,  598,  598,  598,  598,  598,  598,
3295       598,  598,  607,  607,  607,  607,  607,  607,  607,  607,
3296       607,  614,  614,  614,  614,  614,  614,  614,  614,  614,
3297       618,  618,  618,  618,  618,  618,  618,  618,  618,  629,
3298       629,  629,  629,  629,  629,  629,  629,  629,  637,  637,
3299       637,  637,  637,  637,  637,  637,  637,  644,  644,  644,
3300       644,  644,  644,  644,  644,  644,  649,  649,  649,  649,
3301
3302       649,  649,  649,  649,  649,  655,  655,  655,  655,  655,
3303       655,  655,  655,  655,  663,  663,  663,  663,  663,  663,
3304       663,  663,  663,  669,  669,  669,  669,  669,  669,  669,
3305       669,  669,  674,  674,  674,  674,  674,  674,  674,  674,
3306       674,  681,  681,  681,  681,  681,  681,  681,  681,  681,
3307       686,  686,  686,  686,  686,  686,  686,  686,  686,  692,
3308       692,  692,  692,  692,  692,  692,  692,  692,  699,  699,
3309       699,  699,  699,  699,  699,  699,  699,  706,  706,  706,
3310       706,  706,  706,  706,  706,  706,  713,  713,  713,  713,
3311       713,  713,  713,  713,  713,  721,  721,  721,  721,  721,
3312
3313       721,  721,  721,  721,  339,  339,  339,  339,  339,  339,
3314       339,  339,  339,  732,  732,  732,  732,  732,  732,  732,
3315       732,  732,  738,  738,  738,  738,  738,  738,  738,  738,
3316       738,  744,  744,  744,  744,  744,  744,  744,  744,  744,
3317       749,  749,  749,  749,  749,  749,  749,  749,  749,  763,
3318       763,  763,  763,  763,  763,  763,  763,  763,  769,  769,
3319       769,  769,  769,  769,  769,  769,  769,  789,  789,  789,
3320      1207, 1206, 1204,  789,  832,  832,  832, 1203, 1202, 1199,
3321       832,  840,  840,  840, 1198, 1196, 1195,  840,  849,  849,
3322       849, 1189, 1188, 1187,  849,  853,  853,  853, 1185, 1184,
3323
3324      1183,  853,  859,  859,  859, 1178, 1177, 1173,  859,  865,
3325       865,  865, 1171, 1170, 1169,  865,  870,  870,  870, 1168,
3326      1167, 1166,  870,  876,  876,  876, 1165, 1164, 1163,  876,
3327       886,  886,  886, 1162, 1159, 1156,  886,  903,  903,  903,
3328      1155, 1153, 1152,  903,  907,  907,  907, 1151, 1150, 1149,
3329       907,  917,  917,  917, 1144, 1142, 1141,  917,  923,  923,
3330       923, 1140, 1139, 1137,  923,  927,  927,  927, 1136, 1135,
3331      1133,  927,  935,  935,  935, 1132, 1131, 1130,  935,  940,
3332       940,  940, 1128, 1125, 1124,  940,  945,  945,  945, 1122,
3333      1120, 1118,  945,  950,  950,  950, 1117, 1116, 1115,  950,
3334
3335       961,  961,  961, 1114, 1113, 1112,  961,  971,  971,  971,
3336      1110, 1109, 1108,  971,  979,  979,  979, 1107, 1103, 1102,
3337       979,  984,  984,  984, 1101, 1099, 1098,  984,  995,  995,
3338       995, 1097, 1096, 1093,  995, 1001, 1001, 1001, 1092, 1091,
3339      1086, 1001, 1006, 1006, 1006, 1084, 1083, 1082, 1006, 1013,
3340      1013, 1013, 1076, 1075, 1074, 1013, 1021, 1021, 1021, 1073,
3341      1065, 1064, 1021, 1029, 1029, 1029, 1062, 1059, 1058, 1029,
3342      1035, 1035, 1035, 1057, 1056, 1051, 1035, 1041, 1041, 1041,
3343      1048, 1050, 1043, 1041, 1047, 1047, 1047, 1047, 1047, 1047,
3344      1047, 1042, 1047,  789,  789,  789, 1040, 1039,  806,  789,
3345
3346      1063, 1037, 1036, 1034, 1063,  832,  832,  832, 1032, 1031,
3347      1030,  832, 1111, 1028, 1027, 1024, 1111,  840,  840,  840,
3348      1023, 1022, 1020,  840, 1119, 1019, 1017, 1016, 1119,  849,
3349       849,  849, 1015, 1014, 1012,  849, 1123, 1011, 1010, 1009,
3350      1123,  853,  853,  853, 1008, 1007, 1005,  853, 1129, 1003,
3351      1002, 1000, 1129,  859,  859,  859,  996,  994,  990,  859,
3352      1134,  986,  985,  983, 1134,  865,  865,  865,  981,  980,
3353       978,  865, 1138,  976,  975,  974, 1138,  870,  870,  870,
3354       973,  972,  970,  870, 1143,  962,  960,  955, 1143,  876,
3355       876,  876,  954,  953,  952,  876, 1154,  951,  949,  947,
3356
3357      1154,  886,  886,  886,  946,  944,  942,  886, 1172,  941,
3358       939,  937, 1172,  903,  903,  903,  936,  934,  933,  903,
3359      1176,  930,  929,  928, 1176,  907,  907,  907,  926,  924,
3360       922,  907, 1186,  920,  919,  918, 1186,  917,  917,  917,
3361       916,  915,  911,  917, 1194,  910,  909,  908, 1194,  923,
3362       923,  923,  906,  905,  904,  923, 1197,  902,  901,  900,
3363      1197,  927,  927,  927,  894,  890,  889,  927, 1205,  885,
3364       881,  880, 1205,  935,  935,  935,  879,  878,  877,  935,
3365      1210,  875,  873,  872, 1210,  940,  940,  940,  871,  869,
3366       867,  940, 1215,  866,  864,  862, 1215,  945,  945,  945,
3367
3368       861,  860,  858,  945, 1219,  856,  855,  854, 1219,  950,
3369       950,  950,  852,  850,  848,  950, 1229,  847,  845,  844,
3370      1229,  961,  961,  961,  843,  842,  841,  961, 1233,  839,
3371       834,  833, 1233,  971,  971,  971,  831, 4087, 4087,  971,
3372      1244,  806,  791,  790, 1244,  979,  979,  979,  788,  787,
3373       781,  979, 1249,  780,  781,  780, 1249,  984,  984,  984,
3374       779,  778, 4087,  984, 1260, 4087, 4087, 4087, 1260,  995,
3375       995,  995, 4087, 4087, 4087,  995, 1265, 4087, 4087, 4087,
3376      1265, 1001, 1001, 1001, 4087, 4087, 4087, 1001, 1270, 4087,
3377      4087, 4087, 1270, 1006, 1006, 1006, 4087, 4087, 4087, 1006,
3378
3379      1277, 4087, 4087, 4087, 1277, 1013, 1013, 1013, 4087, 4087,
3380      4087, 1013, 1284, 4087, 4087, 4087, 1284, 1021, 1021, 1021,
3381      4087, 4087, 4087, 1021, 1292, 4087, 4087, 4087, 1292, 1029,
3382      1029, 1029, 4087, 4087, 4087, 1029, 1298, 4087, 4087, 4087,
3383      1298, 1035, 1035, 1035, 4087, 4087, 4087, 1035, 1303, 4087,
3384      4087, 4087, 1303, 1041, 1041, 1041, 4087, 4087, 4087, 1041,
3385      1309, 4087, 4087, 4087, 1309, 1311, 1311, 1311, 1311, 1311,
3386      1311, 1311, 1311, 1311, 1317, 4087, 4087, 4087, 4087, 1317,
3387       789,  789,  789, 4087, 4087, 4087,  789, 1328, 1328, 1328,
3388      1328, 4087, 4087, 1328, 1328,  832,  832,  832,  832, 4087,
3389
3390       832, 4087,  832, 1382, 1382, 1382, 1382, 4087, 4087, 1382,
3391      1382,  840,  840,  840, 4087, 4087, 4087,  840, 1392, 1392,
3392      1392, 1392, 4087, 4087, 1392, 1392,  849,  849,  849, 4087,
3393      4087, 4087,  849, 1398, 1398, 1398, 1398, 4087, 4087, 1398,
3394      1398,  853,  853,  853, 4087, 4087, 4087,  853, 1407, 1407,
3395      1407, 1407, 4087, 4087, 1407, 1407,  859,  859,  859,  859,
3396      4087,  859, 4087,  859, 1417, 1417, 1417, 1417, 4087, 4087,
3397      1417, 1417,  865,  865,  865,  865, 4087,  865, 4087,  865,
3398      1425, 1425, 1425, 1425, 4087, 4087, 1425, 1425,  870,  870,
3399       870,  870, 4087,  870, 4087,  870, 1435, 1435, 1435, 1435,
3400
3401      4087, 4087, 1435, 1435,  876,  876,  876,  876, 4087,  876,
3402      4087,  876, 1451, 1451, 1451, 1451, 4087, 4087, 1451, 1451,
3403       886,  886,  886, 4087, 4087, 4087,  886, 1476, 1476, 1476,
3404      1476, 4087, 4087, 1476, 1476, 1483, 1483, 1483, 1483, 4087,
3405      4087, 1483, 1483,  907,  907,  907, 4087, 4087, 4087,  907,
3406      1496, 1496, 1496, 1496, 4087, 4087, 1496, 1496,  917,  917,
3407       917, 4087, 4087, 4087,  917, 1508, 1508, 1508, 1508, 4087,
3408      4087, 1508, 1508,  923,  923,  923, 4087, 4087, 4087,  923,
3409      1513, 1513, 1513, 1513, 4087, 4087, 1513, 1513,  927,  927,
3410       927, 4087, 4087, 4087,  927, 1524, 1524, 1524, 1524, 4087,
3411
3412      4087, 1524, 1524,  935,  935,  935, 4087, 4087, 4087,  935,
3413      1532, 1532, 1532, 1532, 4087, 4087, 1532, 1532,  940,  940,
3414       940, 4087, 4087, 4087,  940, 1540, 1540, 1540, 1540, 4087,
3415      4087, 1540, 1540,  945,  945,  945, 4087, 4087, 4087,  945,
3416      1546, 1546, 1546, 1546, 4087, 4087, 1546, 1546,  950,  950,
3417       950, 4087, 4087, 4087,  950, 1561, 1561, 1561, 1561, 4087,
3418      4087, 1561, 1561,  961,  961,  961, 4087, 4087, 4087,  961,
3419      1567, 1567, 1567, 1567, 4087, 4087, 1567, 1567,  971,  971,
3420       971, 4087, 4087, 4087,  971, 1580, 1580, 1580, 1580, 4087,
3421      4087, 1580, 1580,  979,  979,  979, 4087, 4087, 4087,  979,
3422
3423      1588, 1588, 1588, 1588, 4087, 4087, 1588, 1588,  984,  984,
3424       984, 4087, 4087, 4087,  984, 1604, 1604, 1604, 1604, 4087,
3425      4087, 1604, 1604,  995,  995,  995,  995, 4087,  995, 4087,
3426       995, 1613, 1613, 1613, 1613, 4087, 4087, 1613, 1613, 1001,
3427      1001, 1001, 4087, 4087, 4087, 1001, 1621, 1621, 1621, 1621,
3428      4087, 4087, 1621, 1621, 1006, 1006, 1006, 4087, 4087, 4087,
3429      1006, 1631, 1631, 1631, 1631, 4087, 4087, 1631, 1631, 1013,
3430      1013, 1013, 4087, 4087, 4087, 1013, 1641, 1641, 1641, 1641,
3431      4087, 4087, 1641, 1641, 1021, 1021, 1021, 4087, 4087, 4087,
3432      1021, 1652, 1652, 1652, 1652, 4087, 4087, 1652, 1652, 1029,
3433
3434      1029, 1029, 4087, 4087, 4087, 1029, 1659, 1659, 1659, 1659,
3435      4087, 4087, 1659, 1659, 1035, 1035, 1035, 4087, 4087, 4087,
3436      1035, 1667, 1667, 1667, 1667, 4087, 4087, 1667, 1667, 1041,
3437      1041, 1041, 1041, 4087, 1041, 4087, 1041, 1678, 1678, 1678,
3438      1678, 4087, 4087, 1678, 1678, 1311, 1311, 1311, 1311, 1311,
3439      1311, 1311, 1311, 1311, 1317, 4087, 1317, 4087, 4087, 1317,
3440       789,  789,  789, 4087, 4087, 4087,  789, 1328, 1328, 1328,
3441      1328, 4087, 4087, 1328, 1328,  832,  832,  832, 4087, 4087,
3442      4087,  832, 1382, 1382, 1382, 1382, 4087, 4087, 1382, 1382,
3443       840,  840,  840, 4087, 4087, 4087,  840, 1392, 1392, 1392,
3444
3445      1392, 4087, 4087, 1392, 1392,  849,  849,  849, 4087, 4087,
3446      4087,  849, 1398, 1398, 1398, 1398, 4087, 4087, 1398, 1398,
3447       853,  853,  853, 4087, 4087, 4087,  853, 1407, 1407, 1407,
3448      1407, 4087, 4087, 1407, 1407,  859,  859,  859, 4087, 4087,
3449      4087,  859, 1417, 1417, 1417, 1417, 4087, 4087, 1417, 1417,
3450      1425, 1425, 1425, 1425, 4087, 4087, 1425, 1425,  870,  870,
3451       870, 4087, 4087, 4087,  870, 1435, 1435, 1435, 1435, 4087,
3452      4087, 1435, 1435,  876,  876,  876, 4087, 4087, 4087,  876,
3453      1451, 1451, 1451, 1451, 4087, 4087, 1451, 1451,  886,  886,
3454       886, 4087, 4087, 4087,  886, 1476, 1476, 1476, 1476, 4087,
3455
3456      4087, 1476, 1476, 1483, 1483, 1483, 1483, 4087, 4087, 1483,
3457      1483,  907,  907,  907, 4087, 4087, 4087,  907, 1496, 1496,
3458      1496, 1496, 4087, 4087, 1496, 1496,  917,  917,  917,  917,
3459      4087,  917, 4087,  917, 1508, 1508, 1508, 1508, 4087, 4087,
3460      1508, 1508,  923,  923,  923,  923, 4087,  923, 4087,  923,
3461      1513, 1513, 1513, 1513, 4087, 4087, 1513, 1513,  927,  927,
3462       927, 4087, 4087, 4087,  927, 1524, 1524, 1524, 1524, 4087,
3463      4087, 1524, 1524,  935,  935,  935, 4087, 4087, 4087,  935,
3464      1532, 1532, 1532, 1532, 4087, 4087, 1532, 1532,  940,  940,
3465       940, 4087, 4087, 4087,  940, 1540, 1540, 1540, 1540, 4087,
3466
3467      4087, 1540, 1540,  945,  945,  945,  945, 4087,  945, 4087,
3468       945, 1546, 1546, 1546, 1546, 4087, 4087, 1546, 1546,  950,
3469       950,  950, 4087, 4087, 4087,  950, 1561, 1561, 1561, 1561,
3470      4087, 4087, 1561, 1561,  961,  961,  961, 4087, 4087, 4087,
3471       961, 1567, 1567, 1567, 1567, 4087, 4087, 1567, 1567,  971,
3472       971,  971, 4087, 4087, 4087,  971, 1580, 1580, 1580, 1580,
3473      4087, 4087, 1580, 1580,  979,  979,  979, 4087, 4087, 4087,
3474       979, 1588, 1588, 1588, 1588, 4087, 4087, 1588, 1588,  984,
3475       984,  984, 4087, 4087, 4087,  984, 1604, 1604, 1604, 1604,
3476      4087, 4087, 1604, 1604,  995,  995,  995, 4087, 4087, 4087,
3477
3478       995, 1613, 1613, 1613, 1613, 4087, 4087, 1613, 1613, 1001,
3479      1001, 1001, 4087, 4087, 4087, 1001, 1621, 1621, 1621, 1621,
3480      4087, 4087, 1621, 1621, 1006, 1006, 1006, 4087, 4087, 4087,
3481      1006, 1631, 1631, 1631, 1631, 4087, 4087, 1631, 1631, 1013,
3482      1013, 1013, 4087, 4087, 4087, 1013, 1641, 1641, 1641, 1641,
3483      4087, 4087, 1641, 1641, 1021, 1021, 1021, 1021, 4087, 1021,
3484      4087, 1021, 1652, 1652, 1652, 1652, 4087, 4087, 1652, 1652,
3485      1029, 1029, 1029, 4087, 4087, 4087, 1029, 1659, 1659, 1659,
3486      1659, 4087, 4087, 1659, 1659, 1035, 1035, 1035, 4087, 4087,
3487      4087, 1035, 1667, 1667, 1667, 1667, 4087, 4087, 1667, 1667,
3488
3489      1041, 1041, 1041, 4087, 4087, 4087, 1041, 1678, 1678, 1678,
3490      1678, 4087, 4087, 1678, 1678, 1311, 1311, 1311, 1311, 1311,
3491      1311, 1311, 1311, 1311, 1920, 1920, 1920, 1920, 1920, 1920,
3492      1920, 1920, 1920,  789,  789,  789, 4087, 4087, 4087,  789,
3493       832,  832,  832, 4087, 4087, 4087,  832, 1382, 1382, 1382,
3494      1382, 4087, 4087, 1382, 1382,  840,  840,  840, 4087, 4087,
3495      4087,  840, 1392, 1392, 1392, 1392, 4087, 4087, 1392, 1392,
3496       849,  849,  849,  849, 4087,  849, 4087,  849, 1398, 1398,
3497      1398, 1398, 4087, 4087, 1398, 1398,  853,  853,  853, 4087,
3498      4087, 4087,  853, 1407, 1407, 1407, 1407, 4087, 4087, 1407,
3499
3500      1407,  859,  859,  859, 4087, 4087, 4087,  859, 1417, 1417,
3501      1417, 1417, 4087, 4087, 1417, 1417, 1425, 1425, 1425, 1425,
3502      4087, 4087, 1425, 1425,  870,  870,  870, 4087, 4087, 4087,
3503       870, 1435, 1435, 1435, 1435, 4087, 4087, 1435, 1435,  876,
3504       876,  876, 4087, 4087, 4087,  876, 1451, 1451, 1451, 1451,
3505      4087, 4087, 1451, 1451,  886,  886,  886,  886, 4087,  886,
3506      4087,  886, 1476, 1476, 1476, 1476, 4087, 4087, 1476, 1476,
3507      1483, 1483, 1483, 1483, 4087, 4087, 1483, 1483,  907,  907,
3508       907, 4087, 4087, 4087,  907, 1496, 1496, 1496, 1496, 4087,
3509      4087, 1496, 1496, 1508, 1508, 1508, 1508, 4087, 4087, 1508,
3510
3511      1508, 1513, 1513, 1513, 1513, 4087, 4087, 1513, 1513,  927,
3512       927,  927, 4087, 4087, 4087,  927, 1524, 1524, 1524, 1524,
3513      4087, 4087, 1524, 1524,  935,  935,  935, 4087, 4087, 4087,
3514       935, 1532, 1532, 1532, 1532, 4087, 4087, 1532, 1532,  940,
3515       940,  940,  940, 4087,  940, 4087,  940, 1540, 1540, 1540,
3516      1540, 4087, 4087, 1540, 1540,  945,  945,  945, 4087, 4087,
3517      4087,  945, 1546, 1546, 1546, 1546, 4087, 4087, 1546, 1546,
3518       950,  950,  950, 4087, 4087, 4087,  950, 1561, 1561, 1561,
3519      1561, 4087, 4087, 1561, 1561,  961,  961,  961, 4087, 4087,
3520      4087,  961, 1567, 1567, 1567, 1567, 4087, 4087, 1567, 1567,
3521
3522       971,  971,  971, 4087, 4087, 4087,  971, 1580, 1580, 1580,
3523      1580, 4087, 4087, 1580, 1580,  979,  979,  979,  979, 4087,
3524       979, 4087,  979, 1588, 1588, 1588, 1588, 4087, 4087, 1588,
3525      1588,  984,  984,  984, 4087, 4087, 4087,  984, 1604, 1604,
3526      1604, 1604, 4087, 4087, 1604, 1604,  995,  995,  995, 4087,
3527      4087, 4087,  995, 1613, 1613, 1613, 1613, 4087, 4087, 1613,
3528      1613, 1001, 1001, 1001, 4087, 4087, 4087, 1001, 1621, 1621,
3529      1621, 1621, 4087, 4087, 1621, 1621, 1006, 1006, 1006, 4087,
3530      4087, 4087, 1006, 1631, 1631, 1631, 1631, 4087, 4087, 1631,
3531      1631, 1013, 1013, 1013, 4087, 4087, 4087, 1013, 1641, 1641,
3532
3533      1641, 1641, 4087, 4087, 1641, 1641, 1021, 1021, 1021, 4087,
3534      4087, 4087, 1021, 1652, 1652, 1652, 1652, 4087, 4087, 1652,
3535      1652, 1029, 1029, 1029, 4087, 4087, 4087, 1029, 1659, 1659,
3536      1659, 1659, 4087, 4087, 1659, 1659, 1035, 1035, 1035, 4087,
3537      4087, 4087, 1035, 1667, 1667, 1667, 1667, 4087, 4087, 1667,
3538      1667, 1041, 1041, 1041, 4087, 4087, 4087, 1041, 1678, 1678,
3539      1678, 1678, 4087, 4087, 1678, 1678, 1311, 1311, 1311, 1311,
3540      1311, 1311, 1311, 1311, 1311, 1920, 1920, 1920, 1920, 1920,
3541      1920, 1920, 1920, 1920,  789,  789,  789, 4087, 4087, 4087,
3542       789,  832,  832,  832,  832, 4087,  832, 4087,  832, 1382,
3543
3544      1382, 1382, 1382, 4087, 4087, 1382, 1382,  840,  840,  840,
3545      4087, 4087, 4087,  840, 1392, 1392, 1392, 1392, 4087, 4087,
3546      1392, 1392, 1398, 1398, 1398, 1398, 4087, 4087, 1398, 1398,
3547       853,  853,  853, 4087, 4087, 4087,  853, 1407, 1407, 1407,
3548      1407, 4087, 4087, 1407, 1407,  859,  859,  859,  859, 4087,
3549       859, 4087,  859, 1417, 1417, 1417, 1417, 4087, 4087, 1417,
3550      1417, 1425, 1425, 1425, 1425, 4087, 4087, 1425, 1425,  870,
3551       870,  870,  870, 4087,  870, 4087,  870, 1435, 1435, 1435,
3552      1435, 4087, 4087, 1435, 1435,  876,  876,  876,  876, 4087,
3553       876, 4087,  876, 1451, 1451, 1451, 1451, 4087, 4087, 1451,
3554
3555      1451,  886,  886,  886,  886, 4087,  886, 4087,  886, 1476,
3556      1476, 1476, 1476, 4087, 4087, 1476, 1476, 1483, 1483, 1483,
3557      1483, 4087, 4087, 1483, 1483,  907,  907,  907, 4087, 4087,
3558      4087,  907, 1496, 1496, 1496, 1496, 4087, 4087, 1496, 1496,
3559      1508, 1508, 1508, 1508, 4087, 4087, 1508, 1508, 1513, 1513,
3560      1513, 1513, 4087, 4087, 1513, 1513,  927,  927,  927, 4087,
3561      4087, 4087,  927, 1524, 1524, 1524, 1524, 4087, 4087, 1524,
3562      1524,  935,  935,  935, 4087, 4087, 4087,  935, 1532, 1532,
3563      1532, 1532, 4087, 4087, 1532, 1532, 1540, 1540, 1540, 1540,
3564      4087, 4087, 1540, 1540,  945,  945,  945, 4087, 4087, 4087,
3565
3566       945, 1546, 1546, 1546, 1546, 4087, 4087, 1546, 1546,  950,
3567       950,  950, 4087, 4087, 4087,  950, 1561, 1561, 1561, 1561,
3568      4087, 4087, 1561, 1561,  961,  961,  961, 4087, 4087, 4087,
3569       961, 1567, 1567, 1567, 1567, 4087, 4087, 1567, 1567,  971,
3570       971,  971, 4087, 4087, 4087,  971, 1580, 1580, 1580, 1580,
3571      4087, 4087, 1580, 1580, 1588, 1588, 1588, 1588, 4087, 4087,
3572      1588, 1588,  984,  984,  984, 4087, 4087, 4087,  984, 1604,
3573      1604, 1604, 1604, 4087, 4087, 1604, 1604,  995,  995,  995,
3574      4087, 4087, 4087,  995, 1613, 1613, 1613, 1613, 4087, 4087,
3575      1613, 1613, 1001, 1001, 1001, 4087, 4087, 4087, 1001, 1621,
3576
3577      1621, 1621, 1621, 4087, 4087, 1621, 1621, 1006, 1006, 1006,
3578      1006, 4087, 1006, 4087, 1006, 1631, 1631, 1631, 1631, 4087,
3579      4087, 1631, 1631, 1013, 1013, 1013, 4087, 4087, 4087, 1013,
3580      1641, 1641, 1641, 1641, 4087, 4087, 1641, 1641, 1021, 1021,
3581      1021, 4087, 4087, 4087, 1021, 1652, 1652, 1652, 1652, 4087,
3582      4087, 1652, 1652, 1029, 1029, 1029, 4087, 4087, 4087, 1029,
3583      1659, 1659, 1659, 1659, 4087, 4087, 1659, 1659, 1035, 1035,
3584      1035, 4087, 4087, 4087, 1035, 1667, 1667, 1667, 1667, 4087,
3585      4087, 1667, 1667, 1041, 1041, 1041, 1041, 4087, 1041, 4087,
3586      1041, 1678, 1678, 1678, 1678, 4087, 4087, 1678, 1678, 1311,
3587
3588      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1920, 1920,
3589      1920, 1920, 1920, 1920, 1920, 1920, 1920,  789,  789,  789,
3590       789, 4087,  789, 4087,  789,  832,  832,  832, 4087, 4087,
3591      4087,  832, 1382, 1382, 1382, 1382, 4087, 4087, 1382, 1382,
3592       840,  840,  840, 4087, 4087, 4087,  840, 1392, 1392, 1392,
3593      1392, 4087, 4087, 1392, 1392, 1398, 1398, 1398, 1398, 4087,
3594      4087, 1398, 1398,  853,  853,  853, 4087, 4087, 4087,  853,
3595      1407, 1407, 1407, 1407, 4087, 4087, 1407, 1407, 1417, 1417,
3596      1417, 1417, 4087, 4087, 1417, 1417, 1425, 1425, 1425, 1425,
3597      4087, 4087, 1425, 1425, 1435, 1435, 1435, 1435, 4087, 4087,
3598
3599      1435, 1435,  876,  876,  876,  876, 4087,  876, 4087,  876,
3600      1451, 1451, 1451, 1451, 4087, 4087, 1451, 1451,  886,  886,
3601       886, 4087, 4087, 4087,  886, 1476, 1476, 1476, 1476, 4087,
3602      4087, 1476, 1476, 1483, 1483, 1483, 1483, 4087, 4087, 1483,
3603      1483,  907,  907,  907, 4087, 4087, 4087,  907, 1508, 1508,
3604      1508, 1508, 4087, 4087, 1508, 1508, 1513, 1513, 1513, 1513,
3605      4087, 4087, 1513, 1513,  927,  927,  927, 4087, 4087, 4087,
3606       927,  935,  935,  935, 4087, 4087, 4087,  935, 1532, 1532,
3607      1532, 1532, 4087, 4087, 1532, 1532, 1540, 1540, 1540, 1540,
3608      4087, 4087, 1540, 1540,  945,  945,  945, 4087, 4087, 4087,
3609
3610       945, 1546, 1546, 1546, 1546, 4087, 4087, 1546, 1546,  950,
3611       950,  950, 4087, 4087, 4087,  950,  961,  961,  961,  961,
3612      4087,  961, 4087,  961, 1567, 1567, 1567, 1567, 4087, 4087,
3613      1567, 1567,  971,  971,  971, 4087, 4087, 4087,  971, 1580,
3614      1580, 1580, 1580, 4087, 4087, 1580, 1580,  984,  984,  984,
3615      4087, 4087, 4087,  984, 1604, 1604, 1604, 1604, 4087, 4087,
3616      1604, 1604,  995,  995,  995, 4087, 4087, 4087,  995, 1613,
3617      1613, 1613, 1613, 4087, 4087, 1613, 1613, 1001, 1001, 1001,
3618      4087, 4087, 4087, 1001, 1621, 1621, 1621, 1621, 4087, 4087,
3619      1621, 1621, 1006, 1006, 1006, 1006, 4087, 1006, 4087, 1006,
3620
3621      1631, 1631, 1631, 1631, 4087, 4087, 1631, 1631, 1013, 1013,
3622      1013, 1013, 4087, 1013, 4087, 1013, 1641, 1641, 1641, 1641,
3623      4087, 4087, 1641, 1641, 1021, 1021, 1021, 4087, 4087, 4087,
3624      1021, 1652, 1652, 1652, 1652, 4087, 4087, 1652, 1652, 1029,
3625      1029, 1029, 1029, 4087, 1029, 4087, 1029, 1659, 1659, 1659,
3626      1659, 4087, 4087, 1659, 1659, 1035, 1035, 1035, 1035, 4087,
3627      1035, 4087, 1035, 1041, 1041, 1041, 4087, 4087, 4087, 1041,
3628      1678, 1678, 1678, 1678, 4087, 4087, 1678, 1678, 1311, 1311,
3629      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1920, 1920, 1920,
3630      1920, 1920, 1920, 1920, 1920, 1920,  832,  832,  832, 4087,
3631
3632      4087, 4087,  832, 1382, 1382, 1382, 1382, 4087, 4087, 1382,
3633      1382,  840,  840,  840,  840, 4087,  840, 4087,  840, 1398,
3634      1398, 1398, 1398, 4087, 4087, 1398, 1398,  853,  853,  853,
3635      4087, 4087, 4087,  853, 1407, 1407, 1407, 1407, 4087, 4087,
3636      1407, 1407, 1417, 1417, 1417, 1417, 4087, 4087, 1417, 1417,
3637      1425, 1425, 1425, 1425, 4087, 4087, 1425, 1425, 1435, 1435,
3638      1435, 1435, 4087, 4087, 1435, 1435, 1451, 1451, 1451, 1451,
3639      4087, 4087, 1451, 1451,  886,  886,  886, 4087, 4087, 4087,
3640       886, 1476, 1476, 1476, 1476, 4087, 4087, 1476, 1476, 1483,
3641      1483, 1483, 1483, 4087, 4087, 1483, 1483,  907,  907,  907,
3642
3643      4087, 4087, 4087,  907, 1508, 1508, 1508, 1508, 4087, 4087,
3644      1508, 1508, 1513, 1513, 1513, 1513, 4087, 4087, 1513, 1513,
3645       927,  927,  927, 4087, 4087, 4087,  927,  935,  935,  935,
3646      4087, 4087, 4087,  935, 1532, 1532, 1532, 1532, 4087, 4087,
3647      1532, 1532, 1540, 1540, 1540, 1540, 4087, 4087, 1540, 1540,
3648       945,  945,  945, 4087, 4087, 4087,  945,  950,  950,  950,
3649      4087, 4087, 4087,  950, 1567, 1567, 1567, 1567, 4087, 4087,
3650      1567, 1567,  971,  971,  971,  971, 4087,  971, 4087,  971,
3651      1580, 1580, 1580, 1580, 4087, 4087, 1580, 1580,  984,  984,
3652       984, 4087, 4087, 4087,  984, 1604, 1604, 1604, 1604, 4087,
3653
3654      4087, 1604, 1604,  995,  995,  995, 4087, 4087, 4087,  995,
3655      1001, 1001, 1001, 4087, 4087, 4087, 1001, 1621, 1621, 1621,
3656      1621, 4087, 4087, 1621, 1621, 1631, 1631, 1631, 1631, 4087,
3657      4087, 1631, 1631, 1641, 1641, 1641, 1641, 4087, 4087, 1641,
3658      1641, 1021, 1021, 1021, 4087, 4087, 4087, 1021, 1659, 1659,
3659      1659, 1659, 4087, 4087, 1659, 1659, 1041, 1041, 1041, 4087,
3660      4087, 4087, 1041, 1678, 1678, 1678, 1678, 4087, 4087, 1678,
3661      1678, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
3662      1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,  832,
3663       832,  832, 4087, 4087, 4087,  832, 1382, 1382, 1382, 1382,
3664
3665      4087, 4087, 1382, 1382,  840,  840,  840,  840, 4087,  840,
3666      4087,  840, 1398, 1398, 1398, 1398, 4087, 4087, 1398, 1398,
3667       853,  853,  853,  853, 4087,  853, 4087,  853, 1407, 1407,
3668      1407, 1407, 4087, 4087, 1407, 1407, 1417, 1417, 1417, 1417,
3669      4087, 4087, 1417, 1417, 1425, 1425, 1425, 1425, 4087, 4087,
3670      1425, 1425, 1435, 1435, 1435, 1435, 4087, 4087, 1435, 1435,
3671      1451, 1451, 1451, 1451, 4087, 4087, 1451, 1451,  886,  886,
3672       886, 4087, 4087, 4087,  886, 1476, 1476, 1476, 1476, 4087,
3673      4087, 1476, 1476,  907,  907,  907, 4087, 4087, 4087,  907,
3674      1508, 1508, 1508, 1508, 4087, 4087, 1508, 1508, 1513, 1513,
3675
3676      1513, 1513, 4087, 4087, 1513, 1513,  927,  927,  927,  927,
3677      4087,  927, 4087,  927,  935,  935,  935,  935, 4087,  935,
3678      4087,  935, 1532, 1532, 1532, 1532, 4087, 4087, 1532, 1532,
3679      1540, 1540, 1540, 1540, 4087, 4087, 1540, 1540,  945,  945,
3680       945,  945, 4087,  945, 4087,  945,  950,  950,  950, 4087,
3681      4087, 4087,  950, 1567, 1567, 1567, 1567, 4087, 4087, 1567,
3682      1567,  971,  971,  971,  971, 4087,  971, 4087,  971, 1580,
3683      1580, 1580, 1580, 4087, 4087, 1580, 1580,  984,  984,  984,
3684       984, 4087,  984, 4087,  984,  995,  995,  995, 4087, 4087,
3685      4087,  995, 1001, 1001, 1001, 4087, 4087, 4087, 1001, 1631,
3686
3687      1631, 1631, 1631, 4087, 4087, 1631, 1631, 1641, 1641, 1641,
3688      1641, 4087, 4087, 1641, 1641, 1021, 1021, 1021, 4087, 4087,
3689      4087, 1021, 1659, 1659, 1659, 1659, 4087, 4087, 1659, 1659,
3690      1041, 1041, 1041, 4087, 4087, 4087, 1041, 1678, 1678, 1678,
3691      1678, 4087, 4087, 1678, 1678, 1311, 1311, 1311, 1311, 1311,
3692      1311, 1311, 1311, 1311, 1920, 1920, 1920, 1920, 1920, 1920,
3693      1920, 1920, 1920,  832,  832,  832, 4087, 4087, 4087,  832,
3694       840,  840,  840,  840, 4087,  840, 4087,  840, 1398, 1398,
3695      1398, 1398, 4087, 4087, 1398, 1398, 1407, 1407, 1407, 1407,
3696      4087, 4087, 1407, 1407, 1417, 1417, 1417, 1417, 4087, 4087,
3697
3698      1417, 1417, 1425, 1425, 1425, 1425, 4087, 4087, 1425, 1425,
3699      1435, 1435, 1435, 1435, 4087, 4087, 1435, 1435,  886,  886,
3700       886, 4087, 4087, 4087,  886,  907,  907,  907, 4087, 4087,
3701      4087,  907, 1508, 1508, 1508, 1508, 4087, 4087, 1508, 1508,
3702       927,  927,  927, 4087, 4087, 4087,  927, 1532, 1532, 1532,
3703      1532, 4087, 4087, 1532, 1532, 1540, 1540, 1540, 1540, 4087,
3704      4087, 1540, 1540,  950,  950,  950, 4087, 4087, 4087,  950,
3705      1567, 1567, 1567, 1567, 4087, 4087, 1567, 1567,  971,  971,
3706       971,  971, 4087,  971, 4087,  971,  984,  984,  984, 4087,
3707      4087, 4087,  984,  995,  995,  995, 4087, 4087, 4087,  995,
3708
3709      1001, 1001, 1001, 4087, 4087, 4087, 1001, 3414, 3414, 3414,
3710      3414, 3414, 3414, 3414, 3414, 3414, 3415, 3415, 3415, 3415,
3711      3415, 3415, 3415, 3415, 3415, 3506, 3506, 3506, 3506, 3506,
3712      3506, 3506, 3506, 3506, 3509, 3509, 3509, 3509, 3509, 3509,
3713      3509, 3509, 3509, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
3714      3582, 3582, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584,
3715      3584,  323, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3716      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3717      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3718      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3719
3720      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3721      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3722      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
3723      4087, 4087, 4087, 4087, 4087, 4087, 4087
3724     } ;
3725
3726 static const flex_int16_t yy_chk[14138] =
3727     {   0,
3728         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3729         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3730         4,   10, 1025,    5,    0,    9,    6,  401,   10,    7,
3731         8,    8,    8,  328,   11,   13,   13,   12,   14,   14,
3732        13,   13,  373,   14,   14,  329,    8,   17,   17,  328,
3733        13,   15,   15,   14,   15,  332,   15,   16,   16, 1025,
3734        16,  329,   16,   18,   18,  401,   15,   21,   21,   21,
3735      1551,  332,   16,   22,   22,   22,  557,   23,   23,   23,
3736        24,   24,   24,   21,   25,   25,   25,  366,  557,   22,
3737       368,  354,   17,   23,  368,  373,   24,  326,  326,  326,
3738
3739        25,  327,  327,  327,  331,  331,  331,  354,   18,   19,
3740        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3741        19,   19,   19,   19, 1552,   19,   19,   19,   19,   19,
3742        26,   26,   26,   27,   27,   27,   28,   28,   28,  490,
3743       366,   29,   29,   29,  366,  475,   26,  382,  378,   27,
3744       475, 1558,   28,  490,  382,   19,   19,   29,   30,   30,
3745        30,  351,  351,  351,  378,  385,   19,  359,  359,  359,
3746       375,  375,  375, 1559,   30,   19,   20,   20,   20,   20,
3747        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3748        20,  485,   20,   20,   20,   20,   20,   31,   31,   31,
3749
3750        32,   32,   32,   33,   33,   33,  267,  267,   34,   34,
3751        34,  267,  485,   31,  385,  387,   32,  621,  385,   33,
3752      1564,  267,   20,   20,   34,   35,   35,   35,   36,   36,
3753        36, 1565,  621,   20,   37,   37,   37,   38,   38,   38,
3754       783,   35,   20,  783,   36,   39,   39,   39,  386, 1570,
3755        37,  267,  386,   38,   40,   40,   40,   41,   41,   41,
3756      1571,   39,   42,   42,   42,   43,   43,   43,  387,  546,
3757        40, 1573,  392,   41,   44,   44,   44,  909,   42,  546,
3758       909,   43,   45,   45,   45,   46,   46,   46,  392,  365,
3759        44,   47,   47,   47,   48,   48,   48, 1574,   45,  365,
3760
3761       369,   46,   49,   49,   49, 1576,  521,   47,  639,  408,
3762        48,   50,   50,   50,   51,   51,   51, 1076,   49,   52,
3763        52,   52,   53,   53,   53,  408, 1577,   50,  365,  369,
3764        51,   54,   54,   54, 1076,   52,  403, 1188,   53,   55,
3765        55,   55,   56,   56,   56,  369,  639,   54,  384,  384,
3766       384,  715,  365,  369, 1188,   55,  521, 1578,   56,   57,
3767        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3768        57,   57,   57,   57,  418,   57,   57,   57,   57,   57,
3769        59,   59,   59,   60,   60,   60,   61,   61,   61,  403,
3770       418,   62,   62,   62,  518, 1286,   59,  413,  518,   60,
3771
3772      1586,  715,   61,  371,  413,   57,   57,   62,   63,   63,
3773        63,   57, 1286,  413,   57,  389,  389,  389,  400,  400,
3774       400,  405,  405,  405,   63, 1591,   57,   58,   58,   58,
3775        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3776        58,   58,  371,   58,   58,   58,   58,   58,   64,   64,
3777        64,   65,   65,   65,   66,   66,   66,  796,  371,   69,
3778        69,   69,  606, 1600,   64,  425,  606,   65,  796,  795,
3779        66,  796,  425,   58,   58,   69,   70,   70,   70,   58,
3780       438,  425,   58,  412,  412,  412,  415,  415,  415,  424,
3781       424,  424,   70,  795,   58,   67,   67,   67,   67,   67,
3782
3783        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3784       430,   67,   67,   67,   67,   67,   71,   71,   71,   72,
3785        72,   72,   73,   73,   73,  450,  430,   74,   74,   74,
3786      1222,  443,   71,  438,  455,   72, 1222,  468,   73, 1602,
3787       463,   67,   67,   74,   75,   75,   75,  443, 1347,   67,
3788       455,   67,  437,  468,   67,  427,  427,  427,   67, 1611,
3789        75, 1347,   67,   68,   68,   68,   68,   68,   68,   68,
3790        68,   68,   68,   68,   68,   68,   68,   68,  450,   68,
3791        68,   68,   68,   68,   76,   76,   76,   79,   79,   79,
3792        80,   80,   80,  463,  488,   83,   83,   83, 1616,  483,
3793
3794        76,  437,  488,   79,  802,  437,   80,  814,  488,   68,
3795        68,   83,   84,   84,   84,  483, 1353,   68,  802,   68,
3796       449,  814,   68,  436,  436,  436,   68,  545,   84, 1353,
3797        68,   77,   77,   77,   77,   77,   77,   77,   77,   77,
3798        77,   77,   77,   77,   77,   77,  624,   77,   77,   77,
3799        77,   77,   87,   87,   87,   88,   88,   88,   89,   89,
3800        89,  624,  491,   90,   90,   90,  545, 1624,   87,  449,
3801       491,   88, 1625,  449,   89,  491,  545,   77,   77,   90,
3802        91,   91,   91,   92,   92,   92,  440,  440,  440,  448,
3803       448,  448,  452,  452,  452, 1629,   91, 1634, 1638,   92,
3804
3805      1644,   77,   78,   78,   78,   78,   78,   78,   78,   78,
3806        78,   78,   78,   78,   78,   78,   78,  501,   78,   78,
3807        78,   78,   78,   93,   93,   93,   94,   94,   94,   97,
3808        97,   97,  809,  501,   98,   98,   98,  673, 1650,   93,
3809      1655, 1657,   94,  809,  673,   97,  809,  512,   78,   78,
3810        98,   99,   99,   99,  100,  100,  100,  461,  461,  461,
3811       465,  465,  465,  512,  768,  462, 1665,   99,  342, 1672,
3812       100,  768,   78,   81,   81,   81,   81,   81,   81,   81,
3813        81,   81,   81,   81,   81,   81,   81,   81,  528,   81,
3814        81,   81,   81,   81,  101,  101,  101,  102,  102,  102,
3815
3816       103,  103,  103, 1673,  528,  104,  104,  104,  808, 1676,
3817       101,  342,  496,  102,  462,  540,  103,  342,  462,   81,
3818        81,  104,  342,   81,  477,  477,  477,  342, 1685, 1686,
3819        81,  540,  808,   81,   82,   82,   82,   82,   82,   82,
3820        82,   82,   82,   82,   82,   82,   82,   82,   82,  662,
3821        82,   82,   82,   82,   82,  107,  107,  107,  108,  108,
3822       108,  109,  109,  109,  662,  496,  110,  110,  110,  478,
3823      1687,  107,  507,  523,  108,  774,  478,  109,  547,  827,
3824        82,   82,  110,  561,   82,  478,  480,  480,  480, 1690,
3825       774,   82, 1691,  827,   82,   85,   85,   85,   85,   85,
3826
3827        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
3828       819,   85,   85,   85,   85,   85,  111,  111,  111,  112,
3829       112,  112,  113,  113,  113,  507,  523,  114,  114,  114,
3830      1692,  547,  111,  535,  819,  112,  561,  823,  113, 1693,
3831       535,   85,   85,  114,  117,  117,  117,   85, 1694,  535,
3832        85,  494,  494,  494,  498,  498,  498,  505,  505,  505,
3833       117,  823,   85,   86,   86,   86,   86,   86,   86,   86,
3834        86,   86,   86,   86,   86,   86,   86,   86,  552,   86,
3835        86,   86,   86,   86,  118,  118,  118,  121,  121,  121,
3836       122,  122,  122,  828,  552,  123,  123,  123, 1314, 1695,
3837
3838       118,  566, 1314,  121,  828,  825,  122,  828,  625,   86,
3839        86,  123,  124,  124,  124,   86,  640,  566,   86,  509,
3840       509,  509,  520,  520,  520,  525,  525,  525,  124,  825,
3841        86,   95,   95,   95,   95,   95,   95,   95,   95,   95,
3842        95,   95,   95,   95,   95,   95,  577,   95,   95,   95,
3843        95,   95,  125,  125,  125,  126,  126,  126,  127,  127,
3844       127,  625,  577,  128,  128,  128, 1696, 1697,  125,  640,
3845      1699,  126, 1701,  826,  127, 1702,  677,   95,   95,  128,
3846       131,  131,  131,   95,  534,  534,  534,  537,  537,  537,
3847       544,  544,  544,  549,  549,  549,  131,  826,   95,   96,
3848
3849        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
3850        96,   96,   96,   96,  588,   96,   96,   96,   96,   96,
3851       132,  132,  132,  133,  133,  133,  134,  134,  134,  677,
3852       588,  135,  135,  135, 1704, 1705,  132, 1707, 1708,  133,
3853      1709,  830,  134, 1710,  702,   96,   96,  135,  136,  136,
3854       136,   96,  559,  559,  559,  563,  563,  563,  571,  571,
3855       571,  574,  574,  574,  136,  830,   96,  105,  105,  105,
3856       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
3857       105,  105,  599,  105,  105,  105,  105,  105,  137,  137,
3858       137,  138,  138,  138,  141,  141,  141,  702,  599,  142,
3859
3860       142,  142, 1713, 1714,  137,  572,  829,  138, 1715, 1716,
3861       141, 1717,  572,  105,  105,  142,  143,  143,  143,  105,
3862       829,  572,  105,  582,  582,  582,  585,  585,  585,  593,
3863       593,  593,  143, 1719,  105,  106,  106,  106,  106,  106,
3864       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
3865       615,  106,  106,  106,  106,  106,  144,  144,  144,  145,
3866       145,  145,  146,  146,  146,  965,  615,  147,  147,  147,
3867      1722, 1723,  144,  583,  967,  145,  965, 1724,  146,  965,
3868       583,  106,  106,  147,  148,  148,  148,  106,  967,  583,
3869       106,  596,  596,  596,  608,  608,  608,  612,  612,  612,
3870
3871       148, 1726,  106,  115,  115,  115,  115,  115,  115,  115,
3872       115,  115,  115,  115,  115,  115,  115,  115,  630,  115,
3873       115,  115,  115,  115,  151,  151,  151,  152,  152,  152,
3874       155,  155,  155,  717,  630,  156,  156,  156,  594,  645,
3875       151,  609,  610,  152, 1729,  594,  155, 1730,  609,  115,
3876       115,  156,  651,  115,  594,  645,  759,  609,  610,  651,
3877       115, 1731,  772,  115,  619,  619,  619,  115,  651,  115,
3878       115,  116,  116,  116,  116,  116,  116,  116,  116,  116,
3879       116,  116,  116,  116,  116,  116,  717,  116,  116,  116,
3880       116,  116,  157,  157,  157,  158,  158,  158,  159,  159,
3881
3882       159, 1735,  610,  160,  160,  160, 1736,  622,  157,  759,
3883       656,  158, 1740,  670,  159,  772,  623,  116,  116,  160,
3884       622,  116,  622,  627,  627,  627,  656,  756,  116,  670,
3885      1743,  116,  638,  638,  638,  116, 1746,  116,  116,  119,
3886       119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
3887       119,  119,  119,  119,  623,  119,  119,  119,  119,  119,
3888       161,  161,  161,  162,  162,  162,  165,  165,  165,  623,
3889       660,  166,  166,  166,  660, 1681,  161, 1747,  660,  162,
3890       756,  665,  165,  794,  756,  119,  119,  166,  665,  119,
3891       119,  642,  642,  642,  676, 1681,  119,  665,  794,  119,
3892
3893       650,  650,  650,  119, 1748,  119,  119,  119,  120,  120,
3894       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
3895       120,  120,  120,  682,  120,  120,  120,  120,  120,  167,
3896       167,  167,  168,  168,  168,  169,  169,  169,  847,  682,
3897       170,  170,  170,  676, 1750,  167, 1753,  676,  168,  964,
3898       688,  169, 1754,  847,  120,  120,  170,  688,  120,  120,
3899       653,  653,  653, 1759,  964,  120,  688, 1760,  120,  664,
3900       664,  664,  120, 1775,  120,  120,  120,  129,  129,  129,
3901       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
3902       129,  129,  693,  129,  129,  129,  129,  129,  171,  171,
3903
3904       171,  172,  172,  172,  175,  175,  175,  968,  693,  176,
3905       176,  176, 1776, 1784,  171, 1785,  707,  172,  968, 1787,
3906       175,  968, 1809,  129,  129,  176,  667,  667,  667,  675,
3907       675,  675,  707, 1810,  129,  130,  130,  130,  130,  130,
3908       130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
3909       722,  130,  130,  130,  130,  130,  179,  179,  179,  180,
3910       180,  180,  183,  183,  183, 1039,  722,  184,  184,  184,
3911      1813, 1815,  179, 1817,  733,  180, 1039, 1824,  183, 1039,
3912      1825,  130,  130,  184,  679,  679,  679,  687,  687,  687,
3913       733, 1826,  130,  139,  139,  139,  139,  139,  139,  139,
3914
3915       139,  139,  139,  139,  139,  139,  139,  139,  745,  139,
3916       139,  139,  139,  139,  187,  187,  187,  188,  188,  188,
3917       189,  189,  189, 1474,  745,  190,  190,  190, 1827, 1829,
3918       187, 1835,  764,  188, 1837, 1474,  189, 1839, 1840,  139,
3919       139,  190,  139,  771,  139,  690,  690,  690,  764, 1845,
3920       139,  700,  700,  700,  704,  704,  704,  139, 1847, 1848,
3921       139,  140,  140,  140,  140,  140,  140,  140,  140,  140,
3922       140,  140,  140,  140,  140,  140, 1850,  140,  140,  140,
3923       140,  140,  193,  193,  193,  194,  194,  194,  195,  195,
3924       195, 1851,  771,  196,  196,  196,  771, 1852,  193, 1853,
3925
3926      1049,  194, 1854, 1857,  195, 1858, 1859,  140,  140,  196,
3927       140, 1863,  140,  714,  714,  714, 1049, 1872,  140,  719,
3928       719,  719,  730,  730,  730,  140, 1875, 1883,  140,  149,
3929       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3930       149,  149,  149,  149, 1885,  149,  149,  149,  149,  149,
3931       197,  197,  197,  198,  198,  198,  199,  199,  199, 1887,
3932      1572,  200,  200,  200, 1888, 1889,  197,  727, 1891,  198,
3933      1896, 1899,  199, 1572,  727,  149,  149,  200,  201,  201,
3934       201,  149, 1900,  727, 1902,  757,  149,  739,  739,  739,
3935       742,  742,  742, 1907,  201,  750,  750,  750,  149,  150,
3936
3937       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3938       150,  150,  150,  150,  757,  150,  150,  150,  150,  150,
3939       202,  202,  202,  203,  203,  203,  204,  204,  204, 1912,
3940       757,  205,  205,  205, 1913, 1917,  202,  740,  757,  203,
3941      1920, 1923,  204, 1926,  740,  150,  150,  205,  206,  206,
3942       206,  150, 1927,  740, 1929, 1930,  150,  761,  761,  761,
3943       770,  770,  770, 1931,  206,  773,  773,  773,  150,  153,
3944       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3945       153,  153,  153,  153, 1932,  153,  153,  153,  153,  153,
3946       207,  207,  207,  208,  208,  208,  209,  209,  209, 1933,
3947
3948       801,  210,  210,  210, 1156, 1934,  207,  801, 1936,  208,
3949      1937, 1939,  209,  801, 1156,  153,  153,  210, 1052, 1052,
3950      1052, 1156, 1052,  153,  154,  154,  154,  154,  154,  154,
3951       154,  154,  154,  154,  154,  154,  154,  154,  154, 1940,
3952       154,  154,  154,  154,  154,  211,  211,  211,  212,  212,
3953       212,  215,  215,  215, 1943,  806,  216,  216,  216, 1944,
3954      1946,  211,  806, 1948,  212, 1951, 1953,  215,  806, 1919,
3955       154,  154,  216,  782,  782,  782, 1954, 1955,  154,  163,
3956       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3957       163,  163,  163,  163, 1919,  163,  163,  163,  163,  163,
3958
3959       217,  217,  217,  218,  218,  218,  219,  219,  219, 1956,
3960       813,  220,  220,  220, 1957, 1959,  217,  813, 1960,  218,
3961      1964,  820,  219,  813,  966,  163,  163,  220,  820,  163,
3962      1967,  966, 1968,  782,  820, 1969,  163,  966, 1976,  163,
3963      1977, 1065, 1065, 1065, 1981, 1982,  163,  164,  164,  164,
3964       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3965       164,  164, 1983,  164,  164,  164,  164,  164,  221,  221,
3966       221,  222,  222,  222,  225,  225,  225, 1985,  969,  226,
3967       226,  226, 1989, 1990,  221,  969, 2025,  222, 2026, 2033,
3968       225,  969, 2044,  164,  164,  226, 2045,  164, 1061, 1061,
3969
3970      1061, 2046, 1061, 2047,  164, 1061, 1065,  164, 1331, 1331,
3971      1331, 1354, 1354, 1354,  164,  173,  173,  173,  173,  173,
3972       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
3973      2049,  173,  173,  173,  173,  173,  229,  229,  229,  230,
3974       230,  230,  233,  233,  233, 2057, 2059,  234,  234,  234,
3975      2063, 2066,  229, 2068, 2069,  230, 2072, 2073,  233, 2074,
3976      2075,  173,  173,  234, 1086, 1086, 1086,  173, 1698, 1698,
3977      1698, 2079,  173,  174,  174,  174,  174,  174,  174,  174,
3978       174,  174,  174,  174,  174,  174,  174,  174, 2080,  174,
3979       174,  174,  174,  174,  235,  235,  235,  236,  236,  236,
3980
3981       237,  237,  237, 2081, 2086,  238,  238,  238, 2090, 2094,
3982       235, 2096, 2098,  236, 2104, 1698,  237, 2111, 2115,  174,
3983       174,  238, 1099, 1099, 1099,  174, 1102, 1102, 1102, 1086,
3984       174,  177,  177,  177,  177,  177,  177,  177,  177,  177,
3985       177,  177,  177,  177,  177,  177, 2116,  177,  177,  177,
3986       177,  177,  239,  239,  239,  240,  240,  240,  243,  243,
3987       243, 2118, 2125,  244,  244,  244, 2136, 2138,  239, 2131,
3988      2139,  240, 2141, 2142,  243, 2144, 2145,  177,  177,  244,
3989       247,  247,  247,  248,  248,  248, 2131, 1099,  177, 2132,
3990      2146, 1102, 2147, 1127, 1127, 1127,  247, 1127, 2149,  248,
3991
3992      1127,  177,  178,  178,  178,  178,  178,  178,  178,  178,
3993       178,  178,  178,  178,  178,  178,  178, 2140,  178,  178,
3994       178,  178,  178,  249,  249,  249,  250,  250,  250,  251,
3995       251,  251, 2132, 2140,  252,  252,  252, 2133, 2150,  249,
3996      2154, 2140,  250, 2156, 2157,  251, 2158, 2159,  178,  178,
3997       252,  253,  253,  253,  254,  254,  254, 2161, 2162,  178,
3998      2163, 1146, 1146, 1146, 2164, 1146, 2167,  253, 1146, 2169,
3999       254, 2133,  178,  181,  181,  181,  181,  181,  181,  181,
4000       181,  181,  181,  181,  181,  181,  181,  181, 2160,  181,
4001       181,  181,  181,  181,  257,  257,  257,  258,  258,  258,
4002
4003       259,  259,  259, 2170, 2160,  260,  260,  260, 2177, 2179,
4004       257, 2180, 2160,  258, 2181, 2171,  259, 2182, 2183,  181,
4005       181,  260,  261,  261,  261, 1148, 1148, 1148, 2185, 1148,
4006      2190, 2171, 1148, 2218, 2219,  181, 2220, 2224,  261, 2171,
4007       181,  182,  182,  182,  182,  182,  182,  182,  182,  182,
4008       182,  182,  182,  182,  182,  182, 2172,  182,  182,  182,
4009       182,  182,  262,  262,  262,  263,  263,  263,  264,  264,
4010       264, 2225, 2172,  271,  271,  271, 2231, 2232,  262, 2235,
4011      2172,  263, 2236, 2242,  264,  268,  268,  182,  182,  271,
4012       268,  272,  272,  272, 1158, 1158, 1158, 2248, 1158, 2250,
4013
4014       268, 1158, 2251,  182, 1700, 1700, 1700,  272,  182,  185,
4015       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
4016       185,  185,  185,  185, 2254,  185,  185,  185,  185,  185,
4017       268,  275,  275,  275,  276,  276,  276,  277,  277,  277,
4018      2260,  278,  278,  278,  790,  790,  790,  275, 2262, 2268,
4019       276, 1700, 2272,  277, 2275,  185,  185,  278,  185,  185,
4020       185,  790, 2280, 1161, 1161, 1161,  185, 1161, 2282,  185,
4021      1161, 1703, 1703, 1703, 2283, 2284,  185,  186,  186,  186,
4022       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
4023       186,  186, 2285,  186,  186,  186,  186,  186,  279,  279,
4024
4025       279,  280,  280,  280,  281,  281,  281, 2292, 2294,  282,
4026       282,  282, 2296, 2298,  279, 2311, 2312,  280, 2313, 2316,
4027       281, 2317, 2319,  186,  186,  282,  186,  186,  186, 1175,
4028      1175, 1175, 2320, 1175,  186, 2321, 1175,  186, 1706, 1706,
4029      1706, 1712, 1712, 1712,  186,  191,  191,  191,  191,  191,
4030       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
4031      2323,  191,  191,  191,  191,  191,  283,  283,  283,  284,
4032       284,  284,  285,  285,  285, 2318, 2322,  286,  286,  286,
4033      2335, 2337,  283, 2318, 2322,  284, 2343, 2337,  285, 2344,
4034      2345,  191,  191,  286,  287,  287,  287,  288,  288,  288,
4035
4036      1182, 1182, 1182, 2346, 1182, 2339, 2347, 1182, 2351, 2353,
4037       287, 2354, 2355,  288, 2338,  191,  192,  192,  192,  192,
4038       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
4039       192, 2360,  192,  192,  192,  192,  192,  289,  289,  289,
4040       290,  290,  290,  291,  291,  291, 2338, 2361,  292,  292,
4041       292, 2363, 2339,  289, 2364, 2365,  290, 2366, 2369,  291,
4042      2373, 2374,  192,  192,  292,  293,  293,  293,  294,  294,
4043       294, 1191, 1191, 1191, 2381, 1191, 2383, 2390, 1191, 2392,
4044      2423,  293, 2424, 2425,  294, 2431,  192,  213,  213,  213,
4045       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
4046
4047       213,  213, 2432,  213,  213,  213,  213,  213,  295,  295,
4048       295,  296,  296,  296,  297,  297,  297, 2436, 2440,  298,
4049       298,  298, 2441, 2445,  295, 2448, 2451,  296, 2452, 2453,
4050       297, 2454, 2457,  213,  213,  298,  299,  299,  299, 2460,
4051      2464,  213, 2465,  213, 2466, 2478,  213, 1718, 1718, 1718,
4052       213, 2481,  299, 2483,  213,  214,  214,  214,  214,  214,
4053       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
4054      2486,  214,  214,  214,  214,  214,  300,  300,  300,  301,
4055       301,  301,  302,  302,  302, 2500, 2501,  303,  303,  303,
4056      2502, 2507,  300, 2508, 1718,  301, 2509, 2510,  302, 2511,
4057
4058      2512,  214,  214,  303,  304,  304,  304, 2513, 2514,  214,
4059      2515,  214, 2516, 2526,  214, 1720, 1720, 1720,  214, 2530,
4060       304, 2529,  214,  223,  223,  223,  223,  223,  223,  223,
4061       223,  223,  223,  223,  223,  223,  223,  223, 2537,  223,
4062       223,  223,  223,  223,  305,  305,  305,  306,  306,  306,
4063       307,  307,  307, 2538, 2539,  308,  308,  308, 2542, 2545,
4064       305, 2549, 1720,  306, 2550, 2529,  307, 2530, 2551,  223,
4065       223,  308,  309,  309,  309,  310,  310,  310, 2554, 2555,
4066       223, 2556, 1193, 1193, 1193, 2559, 1193, 2562,  309, 1193,
4067      2563,  310, 2564,  223,  224,  224,  224,  224,  224,  224,
4068
4069       224,  224,  224,  224,  224,  224,  224,  224,  224, 2565,
4070       224,  224,  224,  224,  224,  313,  313,  313,  314,  314,
4071       314,  315,  315,  315, 2587, 2588,  316,  316,  316, 2589,
4072      2594,  313, 2595, 2601,  314, 2602, 2603,  315, 2617, 2589,
4073       224,  224,  316,  317,  317,  317,  318,  318,  318, 2618,
4074      2619,  224, 2639,  363, 1201, 1201, 1201, 2640, 1201,  317,
4075       620, 1201,  318,  363,  224,  227,  227,  227,  227,  227,
4076       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
4077      2651,  227,  227,  227,  227,  227,  319,  319,  319,  320,
4078       320,  320,  363, 2652, 1711, 1711, 1711, 2657,  620,  620,
4079
4080       620, 2658,  319, 2659, 2660,  320,  363, 2661, 2662,  620,
4081       363,  227,  227,  620, 2663,  620,  363, 2664,  751,  753,
4082       227, 2665,  227, 2666,  370, 2671,  227, 2676,  751,  753,
4083      1711,  227,  227,  228,  228,  228,  228,  228,  228,  228,
4084       228,  228,  228,  228,  228,  228,  228,  228, 2677,  228,
4085       228,  228,  228,  228,  370, 2679, 2680,  751,  753,  370,
4086      1063, 1063, 1063,  751, 1721, 1721, 1721,  370, 2681,  370,
4087       370,  751,  753,  751,  751, 2678,  753,  370, 1063,  228,
4088       228,  751,  753,  755, 2678, 1209, 1209, 1209,  228, 1209,
4089       228, 2674, 1209,  755,  228, 2682,  758, 2684, 2685,  228,
4090
4091       228,  231,  231,  231,  231,  231,  231,  231,  231,  231,
4092       231,  231,  231,  231,  231,  231, 2688,  231,  231,  231,
4093       231,  231,  755,  755, 2674,  758,  758,  855,  855,  855,
4094      1725, 1725, 1725,  877,  877,  877, 1111, 1111, 1111,  758,
4095       878,  878,  878, 2683,  855, 2120,  755,  231,  231,  758,
4096       877, 2120, 2683,  231, 1111, 2120, 2689,  878, 1213, 1213,
4097      1213, 2120, 1213, 2690, 2693, 1213, 1725, 2695,  231,  232,
4098       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
4099       232,  232,  232,  232, 2696,  232,  232,  232,  232,  232,
4100       888,  888,  888,  890,  890,  890,  904,  904,  904, 2699,
4101
4102       910,  910,  910,  919,  919,  919, 2700,  888, 2701, 2703,
4103       890, 2704, 2706,  904, 2675,  232,  232,  910, 2727, 2728,
4104       919,  232, 1225, 1225, 1225, 2729, 1225, 2730, 2733, 1225,
4105      2734, 1727, 1727, 1727, 2740, 2741,  232,  241,  241,  241,
4106       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
4107       241,  241, 2675,  241,  241,  241,  241,  241,  920,  920,
4108       920,  929,  929,  929,  937,  937,  937, 1727,  941,  941,
4109       941, 2748,  954,  954,  954,  920, 2749, 2750,  929, 2758,
4110      2759,  937, 2774,  241,  241,  941, 2775, 2776,  241,  954,
4111      1742, 1742, 1742, 2780,  241,  242,  242,  242,  242,  242,
4112
4113       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
4114      2781,  242,  242,  242,  242,  242,  980,  980,  980,  986,
4115       986,  986, 1003, 1003, 1003, 2782, 1009, 1009, 1009, 2783,
4116      1015, 1015, 1015,  980, 2784, 2785,  986, 1742, 2786, 1003,
4117      2787,  242,  242, 1009, 2788, 2789,  242, 1015, 1928, 1928,
4118      1928, 2790,  242,  245,  245,  245,  245,  245,  245,  245,
4119       245,  245,  245,  245,  245,  245,  245,  245, 2791,  245,
4120       245,  245,  245,  245, 1023, 1023, 1023, 1036, 1036, 1036,
4121      1060, 1060, 1060, 1064, 1064, 1064, 1107, 1107, 1107, 2793,
4122      2794, 1023, 2796, 2736, 1036, 2736, 2737, 1060, 2737,  245,
4123
4124       245, 1064,  245, 1107,  245, 1247, 1247, 1247, 2736, 1247,
4125       245, 2737, 1247, 2797, 2798, 1728, 1728, 1728, 2799, 2801,
4126      1064,  245,  246,  246,  246,  246,  246,  246,  246,  246,
4127       246,  246,  246,  246,  246,  246,  246, 2795,  246,  246,
4128       246,  246,  246, 1109, 1109, 1109, 2795, 2802, 1112, 1112,
4129      1112, 1728, 1119, 1119, 1119, 1108, 1108, 1108, 2800, 2803,
4130      1109, 2808, 2809, 1110, 1110, 1110, 1112, 2800,  246,  246,
4131      1119,  246, 1108,  246, 1253, 1253, 1253, 2810, 1253,  246,
4132      1110, 1253, 1269, 1269, 1269, 1112, 1269, 2811, 2812, 1269,
4133       246,  255,  255,  255,  255,  255,  255,  255,  255,  255,
4134
4135       255,  255,  255,  255,  255,  255, 1108,  255,  255,  255,
4136       255,  255, 1123, 1123, 1123, 2805, 2813, 1124, 1124, 1124,
4137      2814, 1108, 2815, 1110, 1126, 1126, 1126, 1129, 1129, 1129,
4138      1123, 1120, 1120, 1120, 2121, 1124, 2806,  255,  255, 2816,
4139      2121, 1126,  255, 2817, 2121, 1129, 2818, 2819,  255, 1120,
4140      2121, 2820,  255, 1935, 1935, 1935, 2805, 2807,  255,  256,
4141       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
4142       256,  256,  256,  256, 2806,  256,  256,  256,  256,  256,
4143      2821, 1120, 1124, 1131, 1131, 1131, 1133, 1133, 1133, 1134,
4144      1134, 1134, 2822, 2825, 1130, 1130, 1130, 1132, 1132, 1132,
4145
4146      1131, 2807, 2826, 1133, 2828,  256,  256, 1134, 2829, 2830,
4147       256, 2832, 1130, 2833, 1132, 2853,  256, 1275, 1275, 1275,
4148       256, 1275, 2854, 2856, 1275, 2860,  256,  265,  265,  265,
4149       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
4150       265,  265, 1130,  265,  265,  265,  265,  265, 1132, 1135,
4151      1135, 1135, 1136, 1136, 1136, 1137, 1137, 1137, 1138, 1138,
4152      1138, 2861, 2862, 1132, 1139, 1139, 1139, 1135, 2864, 1136,
4153      2865, 2867, 1137,  265,  265, 2868, 1138, 1938, 1938, 1938,
4154      2876,  265, 1139, 2877,  265, 1941, 1941, 1941, 1942, 1942,
4155      1942,  265,  266,  266,  266,  266,  266,  266,  266,  266,
4156
4157       266,  266,  266,  266,  266,  266,  266, 2878,  266,  266,
4158       266,  266,  266, 1140, 1140, 1140, 1142, 1142, 1142, 2890,
4159      2863, 1135, 1143, 1143, 1143, 2906, 2866, 1141, 1141, 1141,
4160      1140, 2863, 2912, 1142, 2913, 2914, 1139, 2866,  266,  266,
4161      1143, 1281, 1281, 1281, 1141, 1281,  266, 2915, 1281,  266,
4162      1945, 1945, 1945, 1947, 1947, 1947,  266,  269,  269,  269,
4163       269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
4164       269,  269, 2916,  269,  269,  269,  269,  269, 1141, 1144,
4165      1144, 1144, 1145, 1145, 1145, 1147, 1147, 1147, 1149, 1149,
4166      1149, 2917, 2918, 1141, 1150, 1150, 1150, 1144, 2919, 1145,
4167
4168      2920, 2921, 1147,  269,  269, 1149, 1151, 1151, 1151, 2904,
4169       269, 1150, 2923, 1289, 1289, 1289,  269, 1289, 1947, 2904,
4170      1289, 2924, 2904, 1151, 2925,  269,  270,  270,  270,  270,
4171       270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
4172       270, 2926,  270,  270,  270,  270,  270, 1150, 1154, 1154,
4173      1154, 1144, 1950, 1950, 1950, 1952, 1952, 1952, 1152, 1152,
4174      1152, 2927, 1151, 1153, 1153, 1153, 1154, 2928, 2929, 1155,
4175      1155, 1155,  270,  270, 2930, 1152, 1157, 1157, 1157,  270,
4176      1153, 2931, 1301, 1301, 1301,  270, 1301, 1155, 2932, 1301,
4177      1949, 1949, 1949, 1157,  270,  273,  273,  273,  273,  273,
4178
4179       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
4180      1152,  273,  273,  273,  273,  273, 1153, 1155, 1160, 1160,
4181      1160, 1162, 1162, 1162, 2882, 1172, 1172, 1172, 1173, 1173,
4182      1173, 1174, 1174, 1174, 2882, 1160, 2933, 1949, 1162, 2934,
4183      2882,  273,  273, 1172, 2883, 2940, 1173, 2937, 1174, 1323,
4184      1323, 1323,  273, 1323, 2883, 2941, 1323, 1958, 1958, 1958,
4185      2883,  273,  274,  274,  274,  274,  274,  274,  274,  274,
4186       274,  274,  274,  274,  274,  274,  274, 2937,  274,  274,
4187       274,  274,  274, 1176, 1176, 1176, 2942, 1173, 1177, 1177,
4188      1177, 2943, 2944, 1181, 1181, 1181, 1186, 1186, 1186, 2945,
4189
4190      2946, 1176, 1187, 1187, 1187, 2947, 1177, 2948,  274,  274,
4191      1181, 1375, 1375, 1375, 1186, 1375, 2949, 2950, 1375,  274,
4192      1187, 1961, 1961, 1961, 1962, 1962, 1962, 2938,  274,  311,
4193       311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
4194       311,  311,  311,  311, 2951,  311,  311,  311,  311,  311,
4195      1177, 1190, 1190, 1190, 1192, 1192, 1192, 2952, 2954, 1194,
4196      1194, 1194, 2956, 2957, 1187, 1195, 1195, 1195, 1190, 2939,
4197      2938, 1192, 1197, 1197, 1197,  311,  311, 1194, 1200, 1200,
4198      1200,  311, 2958, 1195,  311, 1379, 1379, 1379, 2960, 1379,
4199      1197, 2961, 1379, 2962, 2974, 1200,  311,  312,  312,  312,
4200
4201       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
4202       312,  312, 2939,  312,  312,  312,  312,  312, 1198, 1198,
4203      1198, 1205, 1205, 1205, 1206, 1206, 1206, 1195, 1208, 1208,
4204      1208, 2979, 1210, 1210, 1210, 2980, 1198, 2981, 2966, 1205,
4205      2982, 2983, 1206,  312,  312, 1208, 1212, 1212, 1212,  312,
4206      1210, 2966,  312, 1211, 1211, 1211, 1215, 1215, 1215, 1219,
4207      1219, 1219, 2967, 1212,  312,  360, 2984, 2985, 1216, 1216,
4208      1216, 1211,  360, 2986, 1215, 2967, 2987, 1219, 2988, 1198,
4209      1206,  360,  360, 1220, 1220, 1220, 1216, 1224, 1224, 1224,
4210      1226, 1226, 1226, 2905, 2989, 1229, 1229, 1229, 1230, 1230,
4211
4212      1230, 1220, 2997, 2905, 1224, 2999, 2905, 1226, 3003, 1211,
4213       360,  360,  360, 1229, 3004, 3005, 1230,  360,  360, 3006,
4214      3007,  360,  360, 3008, 3010,  360, 3022,  360,  360,  360,
4215      1216, 1233, 1233, 1233, 3023,  360,  362, 3025, 1234, 1234,
4216      1234, 1244, 1244, 1244, 3026, 1220, 1245, 1245, 1245, 1233,
4217      1230, 3028,  362,  362, 2532, 2532, 1234, 2532, 3037, 1244,
4218      1246, 1246, 1246, 3017, 1245, 2532, 1249, 1249, 1249, 1250,
4219      1250, 1250, 2532, 1252, 1252, 1252, 3017, 1246, 1254, 1254,
4220      1254,  362,  362,  362, 1249, 3038, 3039, 1250,  362,  362,
4221      1252, 3018,  362,  362, 3040, 1254,  362, 1234,  362,  362,
4222
4223       362, 1256, 1256, 1256, 3018, 3042,  362,  364, 1260, 1260,
4224      1260, 1245, 3024, 1261, 1261, 1261, 3043, 3027, 1256, 1262,
4225      1262, 1262, 3044,  364,  364, 3024, 1260, 1263, 1263, 1263,
4226      3027, 1261, 3045, 3048, 1250, 3049, 1262, 3050, 1264, 1264,
4227      1264, 1966, 1966, 1966, 1263, 3051, 3052, 1265, 1265, 1265,
4228      3053, 3054,  364,  364,  364, 1264, 1266, 1266, 1266,  364,
4229       364, 1261, 3055,  364,  364, 1265, 3056,  364, 3057,  364,
4230       364,  364, 3058, 3059, 1266, 3064, 3067,  364, 1268, 1268,
4231      1268, 1270, 1270, 1270, 1271, 1271, 1271, 1274, 1274, 1274,
4232      1277, 1277, 1277, 3068, 3069, 1268, 3065, 3070, 1264, 1270,
4233
4234      3071, 3072, 1271, 3073, 1274, 1278, 1278, 1278, 1277, 1280,
4235      1280, 1280, 1284, 1284, 1284, 1285, 1285, 1285, 1266, 1288,
4236      1288, 1288, 3074, 1278, 3064, 3075, 1280, 1292, 1292, 1292,
4237      1284, 3076, 3065, 1285, 3077, 3078, 1288, 1293, 1293, 1293,
4238      1298, 1298, 1298, 3079, 3081, 1292, 1271, 1299, 1299, 1299,
4239      1300, 1300, 1300, 3083, 3084, 1293, 3086, 3088, 1298, 1303,
4240      1303, 1303, 1304, 1304, 1304, 1299, 3092, 1300, 1305, 1305,
4241      1305, 3093, 1278, 3094, 1306, 1306, 1306, 1303, 3095, 3099,
4242      1304, 3107, 1285, 3108, 3109, 1305, 1307, 1307, 1307, 3110,
4243      3111, 1306, 1308, 1308, 1308, 1309, 1309, 1309, 1310, 1310,
4244
4245      1310, 3112, 1293, 1307, 1327, 1327, 1327, 3113, 3114, 1308,
4246      3115, 3090, 1299, 1309, 3116, 3117, 1310, 1328, 1328, 1328,
4247      3121, 3090, 1327, 3124, 1304, 1306, 1330, 1330, 1330, 1374,
4248      1374, 1374, 1378, 1378, 1378, 1328, 1381, 1381, 1381, 3090,
4249      1306, 1382, 1382, 1382, 1330, 3125, 1374, 3126, 3127, 1378,
4250      3090, 3128, 1308, 3129, 1381, 1384, 1384, 1384, 3130, 1382,
4251      1310, 1387, 1387, 1387, 1391, 1391, 1391, 1392, 1392, 1392,
4252      1394, 1394, 1394, 1384, 1397, 1397, 1397, 3133, 1387, 1398,
4253      1398, 1398, 1391, 3137, 3138, 1392, 3139, 3140, 1394, 1400,
4254      1400, 1400, 1397, 3141, 1402, 1402, 1402, 1398, 1402, 3142,
4255
4256      3143, 1402, 3144, 1406, 1406, 1406, 3145, 1400, 1407, 1407,
4257      1407, 1409, 1409, 1409, 1410, 1410, 1410, 1414, 1414, 1414,
4258      1384, 1406, 3146, 1411, 1411, 1411, 1407, 1411, 3147, 1409,
4259      1411, 1410, 3148, 3160, 1414, 3161, 3162, 1394, 1415, 1415,
4260      1415, 3163, 1415, 1400, 3164, 1415, 1416, 1416, 1416, 1417,
4261      1417, 1417, 1419, 1419, 1419, 1420, 1420, 1420, 1421, 1421,
4262      1421, 1409, 1421, 3165, 1416, 1421, 3166, 1417, 3167, 3169,
4263      1419, 3170, 1420, 1422, 1422, 1422, 1423, 1423, 1423, 3171,
4264      1423, 3172, 3173, 1423, 1424, 1424, 1424, 1425, 1425, 1425,
4265      1422, 1427, 1427, 1427, 1428, 1428, 1428, 1429, 1429, 1429,
4266
4267      3174, 1429, 1424, 3175, 1429, 1425, 1432, 1432, 1432, 1427,
4268      3176, 1428, 1433, 1433, 1433, 1419, 1433, 3177, 3178, 1433,
4269      1434, 1434, 1434, 1432, 1435, 1435, 1435, 1437, 1437, 1437,
4270      1438, 1438, 1438, 3179, 1438, 3180, 3188, 1438, 1434, 1441,
4271      1441, 1441, 1435, 1441, 3189, 1437, 1441, 1444, 1444, 1444,
4272      3184, 1445, 1445, 1445, 1427, 1445, 3190, 3193, 1445, 1450,
4273      1450, 1450, 3194, 3195, 1444, 1451, 1451, 1451, 1453, 1453,
4274      1453, 1457, 1457, 1457, 3196, 1457, 3199, 1450, 1457, 1460,
4275      1460, 1460, 3201, 1451, 3205, 3184, 1453, 1461, 1461, 1461,
4276      1437, 1461, 3208, 3209, 1461, 3210, 1460, 1464, 1464, 1464,
4277
4278      1465, 1465, 1465, 3211, 1465, 3212, 3213, 1465, 1475, 1475,
4279      1475, 1476, 1476, 1476, 1464, 3214, 3215, 1453, 1478, 1478,
4280      1478, 1479, 1479, 1479, 3216, 1479, 1475, 3217, 1479, 1476,
4281      1482, 1482, 1482, 1483, 1483, 1483, 1478, 1485, 1485, 1485,
4282      1488, 1488, 1488, 1489, 1489, 1489, 3218, 1489, 1482, 3219,
4283      1489, 1483, 1495, 1495, 1495, 1485, 3224, 1488, 1496, 1496,
4284      1496, 1498, 1498, 1498, 1500, 1500, 1500, 1501, 1501, 1501,
4285      1495, 1501, 3232, 3233, 1501, 3234, 1496, 3235, 3236, 1498,
4286      3237, 1500, 3238, 1504, 1504, 1504, 1478, 1504, 3239, 3240,
4287      1504, 1507, 1507, 1507, 1508, 1508, 1508, 3241, 1485, 1510,
4288
4289      1510, 1510, 1511, 1511, 1511, 1512, 1512, 1512, 3247, 1507,
4290      3248, 3250, 1508, 1513, 1513, 1513, 3251, 1510, 3253, 1511,
4291      1515, 1515, 1515, 1512, 1523, 1523, 1523, 1498, 1517, 1517,
4292      1517, 1513, 1517, 3254, 3255, 1517, 3256, 3257, 1515, 1524,
4293      1524, 1524, 1523, 1526, 1526, 1526, 1528, 1528, 1528, 3258,
4294      1528, 3259, 3260, 1528, 1531, 1531, 1531, 1524, 1532, 1532,
4295      1532, 1526, 1534, 1534, 1534, 1510, 3261, 1535, 1535, 1535,
4296      1515, 1535, 1531, 3262, 1535, 3263, 1532, 1539, 1539, 1539,
4297      1534, 1540, 1540, 1540, 1542, 1542, 1542, 3264, 1543, 1543,
4298      1543, 1544, 1544, 1544, 3265, 1539, 1545, 1545, 1545, 1540,
4299
4300      3268, 3269, 1542, 3091, 1526, 1543, 3270, 3271, 1544, 1546,
4301      1546, 1546, 3272, 3091, 1545, 1548, 1548, 1548, 1553, 1553,
4302      1553, 3273, 1553, 1534, 3274, 1553, 3275, 1546, 1556, 1556,
4303      1556, 3091, 3277, 1548, 3278, 1542, 1557, 1557, 1557, 1544,
4304      1557, 3280, 3091, 1557, 3281, 1556, 1560, 1560, 1560, 1561,
4305      1561, 1561, 1563, 1563, 1563, 1566, 1566, 1566, 1567, 1567,
4306      1567, 1569, 1569, 1569, 1560, 3282, 3284, 1561, 3286, 3287,
4307      1563, 3288, 3291, 1566, 3292, 3293, 1567, 3294, 3297, 1569,
4308      1575, 1575, 1575, 1548, 1579, 1579, 1579, 1580, 1580, 1580,
4309      1582, 1582, 1582, 3298, 1583, 1583, 1583, 1575, 1583, 3299,
4310
4311      3300, 1583, 1579, 3301, 1563, 1580, 3302, 3303, 1582, 1569,
4312      1587, 1587, 1587, 1588, 1588, 1588, 1590, 1590, 1590, 1592,
4313      1592, 1592, 3151, 1592, 2533, 2533, 1592, 2533, 1587, 3304,
4314      3305, 1588, 3151, 3312, 1590, 2533, 1595, 1595, 1595, 1596,
4315      1596, 1596, 2533, 1596, 3313, 3315, 1596, 1597, 1597, 1597,
4316      3151, 3306, 1582, 1595, 1598, 1598, 1598, 3316, 1599, 1599,
4317      1599, 3151, 1599, 3317, 1597, 1599, 1601, 1601, 1601, 3319,
4318      3321, 1598, 1603, 1603, 1603, 1604, 1604, 1604, 1590, 1606,
4319      1606, 1606, 3324, 1601, 1607, 1607, 1607, 1608, 1608, 1608,
4320      1603, 1608, 3326, 1604, 1608, 3306, 3327, 1606, 1609, 1609,
4321
4322      1609, 1607, 1610, 1610, 1610, 3328, 1610, 3329, 3330, 1610,
4323      1612, 1612, 1612, 3331, 3332, 1609, 1613, 1613, 1613, 1615,
4324      1615, 1615, 1617, 1617, 1617, 3333, 1617, 3334, 1612, 1617,
4325      1620, 1620, 1620, 3335, 1613, 3336, 3337, 1615, 3340, 3344,
4326      1606, 1621, 1621, 1621, 1623, 1623, 1623, 3345, 1620, 1626,
4327      1626, 1626, 3347, 1626, 3348, 3349, 1626, 3351, 3352, 1621,
4328      3357, 3358, 1623, 1630, 1630, 1630, 1631, 1631, 1631, 3359,
4329      1633, 1633, 1633, 1635, 1635, 1635, 3152, 1635, 3360, 3361,
4330      1635, 1630, 3362, 3363, 1631, 3364, 3152, 1615, 1633, 1639,
4331      1639, 1639, 1640, 1640, 1640, 1641, 1641, 1641, 1643, 1643,
4332
4333      1643, 1645, 1645, 1645, 3152, 3365, 1639, 1646, 1646, 1646,
4334      1640, 1646, 1623, 1641, 1646, 3152, 1643, 3366, 1645, 1649,
4335      1649, 1649, 1651, 1651, 1651, 1652, 1652, 1652, 1654, 1654,
4336      1654, 3367, 1633, 1656, 1656, 1656, 1649, 1658, 1658, 1658,
4337      1651, 3368, 3369, 1652, 3370, 3371, 1654, 1659, 1659, 1659,
4338      1656, 1661, 1661, 1661, 3372, 1658, 3373, 1662, 1662, 1662,
4339      1643, 1662, 3377, 3378, 1662, 1659, 1666, 1666, 1666, 1661,
4340      1667, 1667, 1667, 1669, 1669, 1669, 1654, 1670, 1670, 1670,
4341      3379, 1649, 3380, 3381, 1666, 1671, 1671, 1671, 1667, 1671,
4342      3382, 1669, 1671, 3383, 1670, 1674, 1674, 1674, 3384, 1661,
4343
4344      1675, 1675, 1675, 3387, 1675, 3388, 3389, 1675, 1677, 1677,
4345      1677, 3390, 1674, 1678, 1678, 1678, 3391, 1680, 1680, 1680,
4346      1682, 1682, 1682, 1688, 1688, 1688, 1677, 1741, 1741, 1741,
4347      3392, 1678, 3394, 3395, 1669, 1680, 3397, 3398, 1682, 1682,
4348      3399, 1688, 1732, 1732, 1732, 1741, 1732, 3401, 3402, 1732,
4349      1737, 1737, 1737, 3403, 1737, 3404, 3405, 1737, 1744, 1744,
4350      1744, 1745, 1745, 1745, 3406, 1745, 3182, 3407, 1745, 1749,
4351      1749, 1749, 1752, 1752, 1752, 1744, 3182, 3408, 1680, 1751,
4352      1751, 1751, 3409, 1755, 1755, 1755, 3413, 1749, 3417, 1741,
4353      1752, 1756, 1756, 1756, 3182, 1756, 1751, 3413, 1756, 3418,
4354
4355      3410, 1755, 1761, 1761, 1761, 3182, 1761, 3412, 3420, 1761,
4356      1764, 1764, 1764, 1765, 1765, 1765, 3421, 1765, 3425, 3427,
4357      1765, 3412, 1768, 1768, 1768, 3429, 1768, 3431, 1764, 1768,
4358      3433, 1749, 1771, 1771, 1771, 1772, 1772, 1772, 3435, 1772,
4359      1752, 1755, 1772, 3439, 1777, 1777, 1777, 3410, 1777, 3441,
4360      1771, 1777, 1780, 1780, 1780, 1781, 1781, 1781, 1764, 1781,
4361      3445, 3441, 1781, 3446, 1786, 1786, 1786, 1788, 1788, 1788,
4362      1780, 1789, 1789, 1789, 1790, 1790, 1790, 1791, 1791, 1791,
4363      1771, 1786, 1792, 1792, 1792, 1788, 3442, 3448, 1789, 3449,
4364      3451, 1790, 3456, 3462, 1791, 1797, 1797, 1797, 3442, 1792,
4365
4366      1780, 1793, 1793, 1793, 3456, 1793, 3464, 3466, 1793, 1794,
4367      1794, 1794, 1797, 1794, 3416, 3467, 1794, 1798, 1798, 1798,
4368      1799, 1799, 1799, 1788, 3457, 1791, 1800, 1800, 1800, 1801,
4369      1801, 1801, 3470, 3416, 1798, 3416, 3457, 1799, 1802, 1802,
4370      1802, 1790, 3471, 1800, 3474, 3476, 1801, 1797, 3416, 1803,
4371      1803, 1803, 1804, 1804, 1804, 1802, 1805, 1805, 1805, 1806,
4372      1806, 1806, 1807, 1807, 1807, 1798, 1803, 3478, 3480, 1804,
4373      1811, 1811, 1811, 1805, 1800, 3482, 1806, 1808, 1808, 1808,
4374      1807, 1812, 1812, 1812, 3484, 1812, 3485, 1811, 1812, 3487,
4375      3488, 1799, 3492, 3493, 1801, 1808, 1814, 1814, 1814, 1802,
4376
4377      1816, 1816, 1816, 1818, 1818, 1818, 3495, 1819, 1819, 1819,
4378      3496, 1819, 3498, 1814, 1819, 1820, 1820, 1820, 1816, 1805,
4379      1818, 1806, 3500, 1804, 1821, 1821, 1821, 3502, 1807, 3504,
4380      1808, 3508, 3505, 1820, 3510, 1822, 1822, 1822, 3513, 1822,
4381      3514, 1821, 1822, 1823, 1823, 1823, 1828, 1828, 1828, 3506,
4382      1830, 1830, 1830, 1831, 1831, 1831, 3183, 1832, 1832, 1832,
4383      3515, 1823, 3519, 3506, 1828, 3520, 3183, 1816, 1830, 3521,
4384      1831, 1833, 1833, 1833, 3505, 1832, 1834, 1834, 1834, 3530,
4385      1834, 3531, 1820, 1834, 3183, 1836, 1836, 1836, 1833, 1838,
4386      1838, 1838, 1841, 1841, 1841, 3183, 1841, 3507, 3507, 1841,
4387
4388      3541, 3542, 1823, 1836, 1828, 3543, 1838, 3516, 1830, 1832,
4389      1844, 1844, 1844, 1846, 1846, 1846, 1849, 1849, 1849, 1855,
4390      1855, 1855, 1856, 1856, 1856, 3516, 1856, 1844, 3544, 1856,
4391      3551, 1846, 3552, 3534, 1849, 3522, 1855, 1860, 1860, 1860,
4392      1861, 1861, 1861, 1862, 1862, 1862, 1836, 1864, 1864, 1864,
4393      3522, 1864, 3534, 3553, 1864, 1860, 3509, 1861, 1867, 1867,
4394      1867, 1862, 1868, 1868, 1868, 3535, 1868, 3509, 3554, 1868,
4395      1869, 1869, 1869, 3535, 1869, 1867, 3536, 1869, 1846, 1873,
4396      1873, 1873, 3537, 1849, 1874, 1874, 1874, 1860, 1874, 3555,
4397      3537, 1874, 1876, 1876, 1876, 3536, 1873, 1877, 1877, 1877,
4398
4399      3556, 1877, 3566, 3567, 1877, 3547, 1862, 1880, 1880, 1880,
4400      1876, 1880, 3568, 3547, 1880, 1884, 1884, 1884, 1886, 1886,
4401      1886, 1890, 1890, 1890, 1892, 1892, 1892, 1893, 1893, 1893,
4402      1894, 1894, 1894, 1884, 1894, 3546, 1886, 1894, 3548, 1890,
4403      3572, 1892, 3573, 1876, 1893, 1895, 1895, 1895, 1897, 1897,
4404      1897, 1898, 1898, 1898, 3546, 1898, 3549, 3548, 1898, 1901,
4405      1901, 1901, 3574, 1895, 3549, 1897, 1903, 1903, 1903, 1904,
4406      1904, 1904, 3582, 1904, 3583, 3569, 1904, 1901, 1905, 1905,
4407      1905, 3584, 1884, 1903, 3575, 1886, 1890, 1906, 1906, 1906,
4408      1908, 1908, 1908, 3569, 3586, 1905, 1909, 1909, 1909, 3575,
4409
4410      1909, 3587, 3588, 1909, 3590, 1906, 3591, 3592, 1908, 1901,
4411      1895, 1914, 1914, 1914, 3593, 1914, 3595, 3596, 1914, 3597,
4412      1918, 1918, 1918, 1921, 1921, 1921, 1963, 1963, 1963, 1965,
4413      1965, 1965, 1970, 1970, 1970, 3602, 3603, 1906, 1918, 3604,
4414      3605, 1921, 1908, 1971, 1971, 1971, 1972, 1972, 1972, 1973,
4415      1973, 1973, 1974, 1974, 1974, 1975, 1975, 1975, 1978, 1978,
4416      1978, 3606, 1978, 1972, 3607, 1978, 1973, 3608, 3609, 1974,
4417      3610, 3611, 1918, 1975, 3612, 1921, 1965, 1984, 1984, 1984,
4418      3613, 1986, 1986, 1986, 3616, 3617, 1987, 1987, 1987, 3618,
4419      1987, 1963, 1921, 1987, 3619, 1984, 3620, 1970, 1986, 3621,
4420
4421      1988, 1988, 1988, 1991, 1991, 1991, 3622, 3623, 1971, 1992,
4422      1992, 1992, 1993, 1993, 1993, 3626, 3627, 1974, 1988, 3628,
4423      3629, 1991, 3630, 1975, 3631, 3632, 1992, 3633, 3634, 1993,
4424      1994, 1994, 1994, 1995, 1995, 1995, 1996, 1996, 1996, 1997,
4425      1997, 1997, 1984, 1998, 1998, 1998, 3636, 3637, 1994, 3638,
4426      3639, 1995, 1991, 1996, 3641, 3643, 1997, 1999, 1999, 1999,
4427      1988, 1998, 2000, 2000, 2000, 2001, 2001, 2001, 2002, 2002,
4428      2002, 3644, 2002, 3645, 1999, 2002, 2003, 2003, 2003, 2000,
4429      3646, 3647, 2001, 2004, 2004, 2004, 2005, 2005, 2005, 3648,
4430      2006, 2006, 2006, 2003, 2006, 3649, 1994, 2006, 3650, 1995,
4431
4432      3651, 2004, 3652, 2005, 3653, 2007, 2007, 2007, 3657, 1998,
4433      2008, 2008, 2008, 2009, 2009, 2009, 3658, 2009, 3659, 3660,
4434      2009, 2000, 2007, 2012, 2012, 2012, 3661, 2008, 2013, 2013,
4435      2013, 2014, 2014, 2014, 2015, 2015, 2015, 2016, 2016, 2016,
4436      2012, 2017, 2017, 2017, 2004, 2013, 3419, 3662, 2014, 3663,
4437      3664, 2015, 3491, 3655, 2016, 2018, 2018, 2018, 2017, 2019,
4438      2019, 2019, 3419, 2019, 3419, 3655, 2019, 3665, 2020, 2020,
4439      2020, 3491, 2018, 3491, 3667, 2008, 3672, 3419, 2013, 2021,
4440      2021, 2021, 3656, 3673, 2016, 2020, 3491, 3674, 2012, 2022,
4441      2022, 2022, 3675, 2015, 3656, 2017, 2021, 2023, 2023, 2023,
4442
4443      2024, 2024, 2024, 2027, 2027, 2027, 2022, 2027, 3676, 3677,
4444      2027, 2030, 2030, 2030, 3678, 2023, 3679, 3683, 2024, 2031,
4445      2031, 2031, 2032, 2032, 2032, 3684, 2032, 2021, 2030, 2032,
4446      2034, 2034, 2034, 2035, 2035, 2035, 2031, 2036, 2036, 2036,
4447      3686, 2036, 3688, 2022, 2036, 2039, 2039, 2039, 2034, 3689,
4448      2040, 2040, 2040, 3690, 2040, 3691, 2024, 2040, 2043, 2043,
4449      2043, 3692, 3693, 2039, 2023, 2048, 2048, 2048, 2050, 2050,
4450      2050, 2051, 2051, 2051, 3694, 3695, 2043, 2052, 2052, 2052,
4451      3696, 2052, 3699, 2048, 2052, 3700, 2050, 3697, 2051, 2053,
4452      2053, 2053, 2039, 2054, 2054, 2054, 3701, 2054, 3702, 3703,
4453
4454      2054, 2058, 2058, 2058, 2060, 2060, 2060, 2053, 3704, 2061,
4455      2061, 2061, 3697, 2061, 3705, 2050, 2061, 3706, 3709, 2058,
4456      3710, 2060, 2062, 2062, 2062, 3711, 2043, 2064, 2064, 2064,
4457      2065, 2065, 2065, 3712, 2065, 3713, 3714, 2065, 3715, 2062,
4458      2067, 2067, 2067, 3716, 2064, 2070, 2070, 2070, 2053, 2071,
4459      2071, 2071, 2076, 2076, 2076, 3717, 2076, 3718, 2067, 2076,
4460      2082, 2082, 2082, 2070, 2083, 2083, 2083, 3719, 2058, 2084,
4461      2084, 2084, 3720, 2084, 3723, 3724, 2084, 3725, 2082, 3726,
4462      3727, 2083, 2085, 2085, 2085, 2087, 2087, 2087, 3728, 2087,
4463      3729, 3730, 2087, 3733, 3734, 2091, 2091, 2091, 2070, 2091,
4464
4465      2085, 3735, 2091, 2095, 2095, 2095, 2097, 2097, 2097, 2099,
4466      2099, 2099, 2082, 2100, 2100, 2100, 2101, 2101, 2101, 3736,
4467      3737, 2095, 3738, 3739, 2097, 3740, 3741, 2099, 3742, 3743,
4468      2100, 3744, 3745, 2101, 2102, 2102, 2102, 2103, 2103, 2103,
4469      2105, 2105, 2105, 2106, 2106, 2106, 3746, 2106, 3743, 3747,
4470      2106, 2102, 2107, 2107, 2107, 2103, 2107, 2105, 2097, 2107,
4471      3748, 2099, 2110, 2110, 2110, 2095, 2112, 2112, 2112, 3749,
4472      2112, 3750, 3751, 2112, 2117, 2117, 2117, 2119, 2119, 2119,
4473      2110, 2119, 3752, 2101, 2119, 2103, 2122, 2122, 2122, 2123,
4474      2123, 2123, 2117, 2123, 3753, 3754, 2123, 2124, 2124, 2124,
4475
4476      2126, 2126, 2126, 2122, 2127, 2127, 2127, 2128, 2128, 2128,
4477      2110, 2129, 2129, 2129, 3755, 2124, 3756, 3757, 2126, 3758,
4478      3759, 2127, 3760, 3761, 2128, 3762, 2117, 3763, 2129, 2130,
4479      2130, 2130, 3764, 2135, 2135, 2135, 2137, 2137, 2137, 2143,
4480      2143, 2143, 2148, 2148, 2148, 3765, 3766, 2130, 3767, 2124,
4481      2135, 2151, 2151, 2151, 2152, 2152, 2152, 2153, 2153, 2153,
4482      2155, 2155, 2155, 3768, 3769, 2130, 2165, 2165, 2165, 2166,
4483      2166, 2166, 2168, 2168, 2168, 3770, 2129, 2173, 2173, 2173,
4484      2174, 2174, 2174, 3771, 2174, 3774, 3775, 2174, 2175, 2175,
4485      2175, 2176, 2176, 2176, 2173, 2176, 3776, 3777, 2176, 2178,
4486
4487      2178, 2178, 2184, 2184, 2184, 2175, 2186, 2186, 2186, 3778,
4488      2186, 3779, 3780, 2186, 2191, 2191, 2191, 2178, 3781, 3783,
4489      2184, 2189, 2189, 2189, 2192, 2192, 2192, 2193, 2193, 2193,
4490      3784, 2191, 3786, 2194, 2194, 2194, 3787, 2194, 3788, 2189,
4491      2194, 3790, 2192, 3791, 2193, 2195, 2195, 2195, 2196, 2196,
4492      2196, 3782, 2196, 3792, 3793, 2196, 2197, 2197, 2197, 2198,
4493      2198, 2198, 2195, 2199, 2199, 2199, 2178, 3794, 2200, 2200,
4494      2200, 3782, 2200, 2189, 2197, 2200, 3795, 2198, 3796, 3797,
4495      2199, 2201, 2201, 2201, 3798, 3799, 2192, 2202, 2202, 2202,
4496      3800, 2202, 3801, 3802, 2202, 2203, 2203, 2203, 2201, 2204,
4497
4498      2204, 2204, 2205, 2205, 2205, 3803, 2205, 3804, 3805, 2205,
4499      2206, 2206, 2206, 2203, 3806, 3807, 2204, 2207, 2207, 2207,
4500      3808, 2207, 2197, 3809, 2207, 2198, 3810, 2206, 2210, 2210,
4501      2210, 2211, 2211, 2211, 3811, 2211, 3812, 3814, 2211, 2212,
4502      2212, 2212, 2213, 2213, 2213, 2210, 2213, 3815, 3816, 2213,
4503      2216, 2216, 2216, 2221, 2221, 2221, 3818, 2212, 2217, 2217,
4504      2217, 2203, 2217, 3820, 3821, 2217, 3823, 2216, 3819, 3494,
4505      2221, 2222, 2222, 2222, 3819, 2222, 3824, 3826, 2222, 2223,
4506      2223, 2223, 2226, 2226, 2226, 3494, 2226, 3494, 3827, 2226,
4507      3828, 2212, 2229, 2229, 2229, 3829, 2223, 2230, 2230, 2230,
4508
4509      3494, 2230, 3830, 3831, 2230, 2233, 2233, 2233, 3833, 2229,
4510      2234, 2234, 2234, 2237, 2237, 2237, 3834, 2238, 2238, 2238,
4511      3835, 2238, 3837, 2233, 2238, 2239, 2239, 2239, 2234, 2239,
4512      2237, 3838, 2239, 2243, 2243, 2243, 2245, 2245, 2245, 3839,
4513      2246, 2246, 2246, 2247, 2247, 2247, 2249, 2249, 2249, 3841,
4514      3842, 2243, 2252, 2252, 2252, 3843, 3845, 2233, 2246, 3846,
4515      3847, 2247, 3849, 2249, 2234, 2255, 2255, 2255, 3850, 3853,
4516      2252, 2256, 2256, 2256, 3855, 2256, 3857, 3852, 2256, 2259,
4517      2259, 2259, 3858, 2255, 2261, 2261, 2261, 3859, 2263, 2263,
4518      2263, 3852, 2263, 2249, 2247, 2263, 3860, 2259, 3862, 2246,
4519
4520      3863, 3865, 2261, 2266, 2266, 2266, 2267, 2267, 2267, 3866,
4521      2267, 3868, 3869, 2267, 3871, 2255, 3872, 2269, 2269, 2269,
4522      2266, 2269, 3873, 3875, 2269, 3878, 2259, 2273, 2273, 2273,
4523      2276, 2276, 2276, 2277, 2277, 2277, 2278, 2278, 2278, 2279,
4524      2279, 2279, 2281, 2281, 2281, 2273, 3879, 2276, 2286, 2286,
4525      2286, 2277, 2287, 2287, 2287, 3880, 2287, 3881, 3882, 2287,
4526      2290, 2290, 2290, 2293, 2293, 2293, 2286, 2295, 2295, 2295,
4527      2297, 2297, 2297, 2299, 2299, 2299, 3883, 3884, 2290, 3885,
4528      2293, 2300, 2300, 2300, 3886, 2295, 3887, 3888, 2297, 3889,
4529      3890, 2299, 2301, 2301, 2301, 2277, 2301, 3891, 2300, 2301,
4530
4531      2302, 2302, 2302, 2303, 2303, 2303, 2304, 2304, 2304, 3892,
4532      2304, 3893, 3897, 2304, 2286, 3899, 3901, 2302, 3902, 3903,
4533      2303, 2305, 2305, 2305, 2306, 2306, 2306, 2295, 2307, 2307,
4534      2307, 3904, 2307, 3905, 3906, 2307, 3907, 3908, 2299, 2305,
4535      3916, 2306, 2310, 2310, 2310, 2314, 2314, 2314, 2315, 2315,
4536      2315, 2324, 2324, 2324, 3911, 2324, 3918, 3912, 2324, 3920,
4537      2310, 3922, 3923, 2314, 3943, 2315, 2327, 2327, 2327, 2328,
4538      2328, 2328, 2329, 2329, 2329, 2305, 2331, 2331, 2331, 3931,
4539      3971, 2332, 2332, 2332, 2327, 2332, 2328, 3935, 2332, 3971,
4540      2329, 3911, 3947, 2331, 3912, 3935, 2310, 2333, 2333, 2333,
4541
4542      2334, 2334, 2334, 1550, 2334, 1549, 1538, 2334, 2336, 2336,
4543      2336, 3923, 3943, 2327, 2333, 2340, 2340, 2340, 2341, 2341,
4544      2341, 1527, 2341, 1522, 3931, 2341, 2336, 2342, 2342, 2342,
4545      3947, 3924, 2340, 2348, 2348, 2348, 2349, 2349, 2349, 2350,
4546      2350, 2350, 2352, 2352, 2352, 2356, 2356, 2356, 2357, 2357,
4547      2357, 2358, 2358, 2358, 2359, 2359, 2359, 2362, 2362, 2362,
4548      2367, 2367, 2367, 2368, 2368, 2368, 2370, 2370, 2370, 3929,
4549      2336, 2371, 2371, 2371, 2372, 2372, 2372, 2375, 2375, 2375,
4550      3924, 2375, 3979, 1521, 2375, 2378, 2378, 2378, 3981, 2378,
4551      3930, 3932, 2378, 2382, 2382, 2382, 2384, 2384, 2384, 1520,
4552
4553      3949, 2359, 2385, 2385, 2385, 2386, 2386, 2386, 2387, 2387,
4554      2387, 2382, 1516, 2384, 2388, 2388, 2388, 3979, 3929, 2385,
4555      3936, 2372, 2386, 3981, 3936, 2387, 2391, 2391, 2391, 2393,
4556      2393, 2393, 2388, 2394, 2394, 2394, 3932, 2394, 3949, 3930,
4557      2394, 2395, 2395, 2395, 2391, 2382, 2393, 3938, 2396, 2396,
4558      2396, 3938, 2396, 3937, 2385, 2396, 2399, 2399, 2399, 2395,
4559      2399, 3937, 3945, 2399, 2402, 2402, 2402, 3951, 2387, 3939,
4560      2386, 2403, 2403, 2403, 2404, 2404, 2404, 3939, 2404, 3933,
4561      1499, 2404, 2402, 3933, 2402, 2669, 2669, 2391, 2669, 2403,
4562      2407, 2407, 2407, 3940, 2407, 4019, 2669, 2407, 2410, 2410,
4563
4564      2410, 3940, 2395, 2669, 2411, 2411, 2411, 2403, 2411, 3951,
4565      3945, 2411, 2414, 2414, 2414, 3941, 2410, 2415, 2415, 2415,
4566      3953, 2415, 3948, 3941, 2415, 4019, 2416, 2416, 2416, 2414,
4567      2416, 3933, 3942, 2416, 2419, 2419, 2419, 2420, 2420, 2420,
4568      3942, 2420, 2410, 3944, 2420, 1494, 2426, 2426, 2426, 3952,
4569      2426, 3944, 2419, 2426, 2429, 2429, 2429, 2430, 2430, 2430,
4570      3946, 2430, 3953, 3950, 2430, 2433, 2433, 2433, 3946, 2433,
4571      3948, 2429, 2433, 2437, 2437, 2437, 2438, 2438, 2438, 2439,
4572      2439, 2439, 2442, 2442, 2442, 3954, 2442, 3952, 3955, 2442,
4573      2437, 2446, 2446, 2446, 2438, 3956, 3973, 2439, 2447, 2447,
4574
4575      2447, 2419, 2449, 2449, 2449, 3973, 2450, 2450, 2450, 2446,
4576      2450, 3950, 3959, 2450, 4027, 3958, 2447, 1493, 4004, 2449,
4577      2455, 2455, 2455, 3954, 3955, 2456, 2456, 2456, 2458, 2458,
4578      2458, 3976, 2461, 2461, 2461, 1492, 2461, 3956, 2455, 2461,
4579      3976, 2438, 3957, 2456, 3934, 1487, 2458, 2446, 3934, 4027,
4580      2447, 2467, 2467, 2467, 2468, 2468, 2468, 3958, 2468, 3959,
4581      4004, 2468, 2469, 2469, 2469, 2470, 2470, 2470, 2467, 2471,
4582      2471, 2471, 2472, 2472, 2472, 2473, 2473, 2473, 3957, 3961,
4583      2469, 2474, 2474, 2474, 2475, 2475, 2475, 2455, 2456, 2477,
4584      2477, 2477, 2473, 2476, 2476, 2476, 3934, 3978, 2474, 3967,
4585
4586      3992, 2475, 2479, 2479, 2479, 1486, 3978, 2477, 3992, 3963,
4587      2476, 2480, 2480, 2480, 3980, 2480, 4007, 3964, 2480, 2479,
4588      2482, 2482, 2482, 2484, 2484, 2484, 3961, 2469, 2487, 2487,
4589      2487, 3960, 3967, 2474, 3966, 2488, 2488, 2488, 2482, 2488,
4590      3965, 2484, 2488, 2491, 2491, 2491, 2487, 3963, 3968, 2475,
4591      2492, 2492, 2492, 2476, 2492, 2477, 1473, 2492, 3980, 4007,
4592      2491, 2493, 2493, 2493, 3964, 2493, 3962, 3960, 2493, 2496,
4593      2496, 2496, 2497, 2497, 2497, 2498, 2498, 2498, 3965, 2498,
4594      4029, 3966, 2498, 2499, 2499, 2499, 3968, 2496, 3975, 2497,
4595      2503, 2503, 2503, 2505, 2505, 2505, 2506, 2506, 2506, 3994,
4596
4597      2506, 2499, 3962, 2506, 2517, 2517, 2517, 3994, 2503, 3969,
4598      2505, 2518, 2518, 2518, 3977, 4029, 2519, 2519, 2519, 3970,
4599      2519, 2496, 2517, 2519, 3975, 2520, 2520, 2520, 2518, 2520,
4600      3972, 3974, 2520, 4035, 1472, 2499, 2523, 2523, 2523, 1471,
4601      2523, 4035, 3969, 2523, 2527, 2527, 2527, 2528, 2528, 2528,
4602      3977, 2531, 2531, 2531, 2517, 2531, 1470, 3970, 2531, 2534,
4603      2534, 2534, 2527, 3972, 3974, 2528, 2535, 2535, 2535, 2536,
4604      2536, 2536, 2540, 2540, 2540, 2541, 2541, 2541, 2543, 2543,
4605      2543, 2544, 2544, 2544, 2546, 2546, 2546, 2547, 2547, 2547,
4606      2548, 2548, 2548, 2552, 2552, 2552, 2553, 2553, 2553, 2557,
4607
4608      2557, 2557, 2558, 2558, 2558, 2560, 2560, 2560, 2561, 2561,
4609      2561, 3982, 2527, 2566, 2566, 2566, 2567, 2567, 2567, 2568,
4610      2568, 2568, 2569, 2569, 2569, 4000, 2569, 3983, 1469, 2569,
4611      3988, 2566, 2570, 2570, 2570, 1468, 2568, 2571, 2571, 2571,
4612      2572, 2572, 2572, 2573, 2573, 2573, 2574, 2574, 2574, 2570,
4613      2575, 2575, 2575, 3995, 2571, 3982, 3984, 2572, 2576, 2576,
4614      2576, 3985, 2576, 4000, 2574, 2576, 3988, 2575, 2579, 2579,
4615      2579, 3983, 2580, 2580, 2580, 2581, 2581, 2581, 2582, 2582,
4616      2582, 2583, 2583, 2583, 3996, 2583, 2579, 3995, 2583, 2571,
4617      2580, 3986, 2572, 2581, 1467, 1466, 2582, 2586, 2586, 2586,
4618
4619      2590, 2590, 2590, 3984, 2590, 3985, 4020, 2590, 3998, 2580,
4620      2593, 2593, 2593, 2574, 3987, 2586, 2596, 2596, 2596, 1456,
4621      2579, 2597, 2597, 2597, 3997, 2597, 1455, 2593, 2597, 2598,
4622      2598, 2598, 3996, 2596, 2599, 2599, 2599, 2581, 3986, 4020,
4623      2582, 2604, 2604, 2604, 2605, 2605, 2605, 2598, 2606, 2606,
4624      2606, 3990, 2599, 2607, 2607, 2607, 3998, 2607, 3997, 2604,
4625      2607, 3987, 2605, 4002, 3991, 2606, 2610, 2610, 2610, 2611,
4626      2611, 2611, 2612, 2612, 2612, 2613, 2613, 2613, 2614, 2614,
4627      2614, 3999, 4001, 2610, 4021, 3993, 2611, 3990, 1454, 2612,
4628      3999, 4001, 2613, 1449, 3989, 2606, 2614, 2615, 2615, 2615,
4629
4630      3991, 4002, 2604, 2616, 2616, 2616, 2620, 2620, 2620, 2621,
4631      2621, 2621, 4042, 2621, 4021, 2615, 2621, 2624, 2624, 2624,
4632      2616, 3993, 2610, 4042, 2612, 2625, 2625, 2625, 2626, 2626,
4633      2626, 2611, 2628, 2628, 2628, 2624, 2627, 2627, 2627, 2614,
4634      2627, 3989, 4011, 2627, 4006, 2626, 2629, 2629, 2629, 2628,
4635      2630, 2630, 2630, 2631, 2631, 2631, 2632, 2632, 2632, 2636,
4636      2636, 2636, 2615, 2629, 2637, 2637, 2637, 2630, 2633, 2633,
4637      2633, 2631, 2633, 2632, 4022, 2633, 2636, 2624, 2641, 2641,
4638      2641, 4003, 2637, 2643, 2643, 2643, 4006, 2643, 4023, 4011,
4639      2643, 2646, 2646, 2646, 4005, 4009, 2641, 4023, 2629, 2647,
4640
4641      2647, 2647, 2630, 2647, 4008, 4010, 2647, 4022, 4012, 2646,
4642      2650, 2650, 2650, 2654, 2654, 2654, 4013, 2654, 1448, 4003,
4643      2654, 2667, 2667, 2667, 2670, 2670, 2636, 2670, 2650, 2668,
4644      2668, 2668, 4005, 2668, 1447, 2670, 2668, 1446, 4009, 2667,
4645      4008, 4010, 2670, 2672, 2672, 2672, 2673, 2673, 2673, 2686,
4646      2686, 2686, 2687, 2687, 2687, 4012, 4014, 2650, 2691, 2691,
4647      2691, 2672, 4028, 4013, 2673, 2692, 2692, 2692, 2694, 2694,
4648      2694, 2697, 2697, 2697, 2698, 2698, 2698, 2702, 2702, 2702,
4649      2705, 2705, 2705, 2667, 2707, 2707, 2707, 2709, 2709, 2709,
4650      2710, 2710, 2710, 4040, 2710, 4028, 1431, 2710, 2713, 2713,
4651
4652      2713, 4015, 2707, 4014, 2714, 2714, 2714, 4040, 2714, 2673,
4653      2672, 2714, 2715, 2715, 2715, 2713, 2716, 2716, 2716, 2717,
4654      2717, 2717, 2718, 2718, 2718, 2719, 2719, 2719, 4016, 2715,
4655      2720, 2720, 2720, 2716, 2720, 4030, 4017, 2720, 4032, 4015,
4656      2718, 4018, 2719, 2721, 2721, 2721, 2722, 2722, 2722, 2723,
4657      2723, 2723, 2724, 2724, 2724, 2725, 2725, 2725, 2731, 2731,
4658      2731, 2721, 4024, 4025, 2722, 4034, 4016, 2723, 4030, 4078,
4659      2724, 4024, 4025, 2725, 4017, 2731, 2732, 2732, 2732, 4018,
4660      2732, 4026, 4036, 2732, 2735, 2735, 2735, 4032, 2735, 1430,
4661      4026, 2735, 2738, 2738, 2738, 2742, 2742, 2742, 2743, 2743,
4662
4663      2743, 2744, 2744, 2744, 2746, 2746, 2746, 2754, 2754, 2754,
4664      2738, 2722, 2742, 2724, 4034, 4036, 2743, 2723, 4078, 2744,
4665      1413, 2746, 2747, 2747, 2747, 2754, 2747, 4038, 4031, 2747,
4666      2751, 2751, 2751, 2752, 2752, 2752, 2753, 2753, 2753, 4046,
4667      2753, 4037, 1412, 2753, 2755, 2755, 2755, 2751, 1405, 4037,
4668      2752, 2756, 2756, 2756, 4043, 4045, 2743, 2757, 2757, 2757,
4669      4038, 2757, 2755, 4033, 2757, 2760, 2760, 2760, 2756, 2761,
4670      2761, 2761, 2762, 2762, 2762, 4031, 2763, 2763, 2763, 4039,
4671      2763, 4046, 2760, 2763, 2766, 2766, 2766, 2767, 2767, 2767,
4672      2762, 2767, 4043, 4045, 2767, 2768, 2768, 2768, 2769, 2769,
4673
4674      2769, 2766, 2770, 2770, 2770, 4074, 2755, 2772, 2772, 2772,
4675      4033, 4058, 2768, 4049, 4074, 2769, 2777, 2777, 2777, 4058,
4676      2770, 2773, 2773, 2773, 2772, 2773, 1401, 4039, 2773, 2779,
4677      2779, 2779, 4054, 1396, 2777, 4041, 2792, 2792, 2792, 2804,
4678      2804, 2804, 2823, 2823, 2823, 1395, 4055, 2779, 2824, 2824,
4679      2824, 2827, 2827, 2827, 2792, 4049, 4056, 2804, 2831, 2831,
4680      2831, 2834, 2834, 2834, 2835, 2835, 2835, 2836, 2836, 2836,
4681      4054, 2836, 1390, 4050, 2836, 2839, 2839, 2839, 2840, 2840,
4682      2840, 2835, 2840, 4041, 4055, 2840, 2841, 2841, 2841, 4056,
4683      1389, 2804, 2839, 2843, 2843, 2843, 2779, 2792, 2842, 2842,
4684
4685      2842, 4051, 2842, 2841, 4059, 2842, 2845, 2845, 2845, 4050,
4686      2845, 2843, 4059, 2845, 2848, 2848, 2848, 2850, 2850, 2850,
4687      2851, 2851, 2851, 2852, 2852, 2852, 2855, 2855, 2855, 2857,
4688      2857, 2857, 2848, 2857, 4066, 2850, 2857, 4051, 2851, 4062,
4689      4057, 2852, 4052, 2855, 2869, 2869, 2869, 2870, 2870, 2870,
4690      2871, 2871, 2871, 4064, 2871, 1388, 4065, 2871, 2872, 2872,
4691      2872, 2869, 4053, 4060, 2870, 2873, 2873, 2873, 1386, 2873,
4692      4066, 4061, 2873, 4057, 4063, 2852, 2872, 4062, 1385, 2850,
4693      2879, 2879, 2879, 4068, 2880, 2880, 2880, 2851, 2880, 4052,
4694      4070, 2880, 2881, 2881, 2881, 4064, 2881, 2879, 4065, 2881,
4695
4696      2884, 2884, 2884, 2886, 2886, 2886, 2887, 2887, 2887, 4053,
4697      2887, 4060, 4063, 2887, 2891, 2891, 2891, 4067, 2884, 4061,
4698      4079, 2886, 2892, 2892, 2892, 2893, 2893, 2893, 4070, 2893,
4699      4068, 2891, 2893, 2894, 2894, 2894, 2896, 2896, 2896, 2892,
4700      2896, 4071, 1380, 2896, 2899, 2899, 2899, 4072, 2900, 2900,
4701      2900, 2894, 2900, 4067, 4069, 2900, 2901, 2901, 2901, 4075,
4702      4083, 2899, 1377, 2902, 2902, 2902, 2886, 2902, 4075, 4079,
4703      2902, 4083, 1376, 2901, 2903, 2903, 2903, 4073, 2903, 4071,
4704      4072, 2903, 2907, 2907, 2907, 2908, 2908, 2908, 2909, 2909,
4705      2909, 2910, 2910, 2910, 2911, 2911, 2911, 1373, 1372, 2907,
4706
4707      1371, 4069, 2908, 2922, 2922, 2922, 2909, 2935, 2935, 2935,
4708      4073, 2911, 2936, 2936, 2936, 2953, 2953, 2953, 2955, 2955,
4709      2955, 2922, 4076, 4077, 2935, 2959, 2959, 2959, 1370, 1369,
4710      2936, 2963, 2963, 2963, 2964, 2964, 2964, 1368, 2964, 4082,
4711      1367, 2964, 2965, 2965, 2965, 4080, 2965, 1366, 2963, 2965,
4712      2968, 2968, 2968, 4082, 2968, 4076, 4077, 2968, 1365, 1364,
4713      2909, 2971, 2971, 2971, 2922, 2972, 2972, 2972, 2973, 2973,
4714      2973, 2975, 2975, 2975, 2976, 2976, 2976, 1363, 4080, 2971,
4715      2977, 2977, 2977, 2972, 2977, 1362, 2973, 2977, 2975, 1361,
4716      1360, 2976, 2978, 2978, 2978, 2990, 2990, 2990, 2991, 2991,
4717
4718      2991, 4081, 2991, 1359, 2973, 2991, 2992, 2992, 2992, 2978,
4719      2992, 1358, 2990, 2992, 2995, 2995, 2995, 2972, 2998, 2998,
4720      2998, 3000, 3000, 3000, 1357, 3000, 1356, 1355, 3000, 2971,
4721      1352, 1351, 2995, 1350, 4081, 2998, 3009, 3009, 3009, 3011,
4722      3011, 3011, 3012, 3012, 3012, 1349, 3012, 1348, 1346, 3012,
4723      1345, 3013, 3013, 3013, 3009, 3013, 3011, 1344, 3013, 3016,
4724      3016, 3016, 1343, 3016, 1342, 1341, 3016, 3019, 3019, 3019,
4725      1340, 3019, 1339, 1338, 3019, 3029, 3029, 3029, 3030, 3030,
4726      3030, 1337, 3030, 1336, 1335, 3030, 3031, 3031, 3031, 3032,
4727      3032, 3032, 3029, 3032, 1334, 1333, 3032, 3033, 3033, 3033,
4728
4729      3034, 3034, 3034, 3031, 3035, 3035, 3035, 3036, 3036, 3036,
4730      1332, 3036, 1326, 1322, 3036, 3033, 3047, 3047, 3047, 1319,
4731      1318, 3035, 3060, 3060, 3060, 3061, 3061, 3061, 1317, 3061,
4732      1315, 1311, 3061, 1302, 3047, 3062, 3062, 3062, 1297, 3060,
4733      3066, 3066, 3066, 3080, 3080, 3080, 3082, 3082, 3082, 3085,
4734      3085, 3085, 1296, 3062, 3087, 3087, 3087, 3066, 3066, 1295,
4735      3033, 1291, 3089, 3089, 3089, 1290, 3089, 1287, 3047, 3089,
4736      3096, 3096, 3096, 3097, 3097, 3097, 3098, 3098, 3098, 3100,
4737      3100, 3100, 3101, 3101, 3101, 1283, 3101, 1282, 3096, 3101,
4738      1279, 3097, 1276, 1273, 3098, 1272, 3100, 3102, 3102, 3102,
4739
4740      1267, 3102, 1259, 1258, 3102, 3105, 3105, 3105, 3106, 3106,
4741      3106, 1257, 3106, 1255, 1251, 3106, 3118, 3118, 3118, 1248,
4742      3118, 1243, 3105, 3118, 3122, 3122, 3122, 3123, 3123, 3123,
4743      1242, 3123, 1241, 1240, 3123, 1239, 1238, 3096, 3098, 1237,
4744      1236, 3122, 3131, 3131, 3131, 3134, 3134, 3134, 1235, 3134,
4745      1232, 1231, 3134, 3149, 3149, 3149, 1228, 3150, 3150, 3150,
4746      3131, 3150, 1227, 1223, 3150, 3153, 3153, 3153, 1221, 3153,
4747      3149, 1218, 3153, 3156, 3156, 3156, 3157, 3157, 3157, 1217,
4748      3157, 1214, 1207, 3157, 3168, 3168, 3168, 1204, 3181, 3181,
4749      3181, 3156, 3181, 1203, 1202, 3181, 3185, 3185, 3185, 3186,
4750
4751      3186, 3186, 3168, 3187, 3187, 3187, 1199, 3187, 1196, 1189,
4752      3187, 1185, 1184, 3185, 3185, 1183, 3186, 3186, 3200, 3200,
4753      3200, 3187, 3202, 3202, 3202, 3156, 3203, 3203, 3203, 3204,
4754      3204, 3204, 1180, 1179, 3168, 3206, 3206, 3206, 3207, 3207,
4755      3207, 3220, 3220, 3220, 3221, 3221, 3221, 3223, 3223, 3223,
4756      3225, 3225, 3225, 1178, 3225, 1171, 1170, 3225, 1169, 3220,
4757      1168, 1167, 3221, 1166, 1165, 3223, 3228, 3228, 3228, 1164,
4758      3228, 1163, 1159, 3228, 3231, 3231, 3231, 3242, 3242, 3242,
4759      3243, 3243, 3243, 1128, 3243, 1125, 1122, 3243, 3246, 3246,
4760      3246, 3231, 1121, 3220, 3242, 3266, 3266, 3266, 1118, 3267,
4761
4762      3267, 3267, 1117, 3267, 1116, 3246, 3267, 3276, 3276, 3276,
4763      1115, 1114, 3266, 1113, 1106, 3223, 3285, 3285, 3285, 3307,
4764      3307, 3307, 3308, 3308, 3308, 3276, 3308, 1105, 1104, 3308,
4765      1103, 3309, 3309, 3309, 3285, 3309, 3307, 3307, 3309, 1101,
4766      3308, 3320, 3320, 3320, 3322, 3322, 3322, 1100, 1098, 3309,
4767      3323, 3323, 3323, 3325, 3325, 3325, 3338, 3338, 3338, 3339,
4768      3339, 3339, 3341, 3341, 3341, 3342, 3342, 3342, 1097, 3342,
4769      1096, 1095, 3342, 1094, 3338, 1093, 1092, 3339, 1091, 3341,
4770      3343, 3343, 3343, 3285, 3310, 3310, 3310, 3310, 3310, 3310,
4771      3310, 3310, 3310, 1090, 1089, 3310, 1088, 3343, 1087, 1085,
4772
4773      3310, 3310, 3310, 3310, 3310, 3353, 3353, 3353, 3354, 3354,
4774      3354, 1084, 3354, 1083, 1082, 3354, 3356, 3356, 3356, 1081,
4775      3356, 1080, 3353, 3356, 1079, 1078, 3339, 3355, 3355, 3355,
4776      3310, 3310, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
4777      3311, 1077, 1075, 3311, 3355, 3385, 3385, 3385, 3311, 3311,
4778      3311, 3311, 3311, 3374, 3374, 3374, 1074, 3374, 1073, 1072,
4779      3374, 1071, 1070, 3385, 3393, 3393, 3393, 3411, 3411, 3411,
4780      1069, 3411, 1068, 1067, 3411, 3422, 3422, 3422, 3311, 3311,
4781      1066, 1062, 3393, 1058, 1057, 3411, 3414, 3414, 3414, 3414,
4782      3414, 3414, 3414, 3414, 3414, 1056, 1055, 3414, 3423, 3423,
4783
4784      3423, 1054, 3414, 3414, 3414, 3414, 3414, 3436, 3436, 3436,
4785      3438, 3438, 3438, 3440, 3440, 3440, 1050, 3440, 1048, 1047,
4786      3440, 3524, 3524, 3524, 1046, 3436, 1045, 1044, 3438, 3443,
4787      3443, 3443, 3414, 3414, 3415, 3415, 3415, 3415, 3415, 3415,
4788      3415, 3415, 3415, 1043, 1042, 3415, 3443, 3525, 3525, 3525,
4789      3415, 3415, 3415, 3415, 3415, 1038, 3444, 3444, 3444, 1037,
4790      3444, 1033, 3438, 3444, 3452, 3452, 3452, 1032, 3452, 1031,
4791      1030, 3452, 3455, 3455, 3455, 1027, 3455, 1026, 1024, 3455,
4792      3415, 3415, 3489, 3489, 3489, 3511, 3511, 3511, 3532, 3532,
4793      3532, 3533, 3533, 3533, 3538, 3538, 3538, 1022, 3538, 1019,
4794
4795      3489, 3538, 1018, 3511, 3511, 1017, 3532, 1016, 3533, 3545,
4796      3545, 3545, 3550, 3550, 3550, 3581, 3581, 3581, 3585, 3585,
4797      3585, 3598, 3598, 3598, 1014, 1011, 3545, 1010, 1008, 3550,
4798      3600, 3600, 3600, 3581, 1007, 1004, 3585, 1002,  999, 3598,
4799       998, 3601, 3601, 3601,  997, 3601,  996, 3600, 3601, 3614,
4800      3614, 3614, 3615, 3615, 3615,  993, 3615,  992,  991, 3615,
4801      3624, 3624, 3624, 3642, 3642, 3642, 3614, 3625, 3625, 3625,
4802      3585, 3625,  990,  989, 3625,  988,  987, 3624, 3654, 3654,
4803      3654, 3642, 3654,  985,  982, 3654, 3669, 3669, 3669,  981,
4804      3669,  977,  976, 3669, 3680, 3680, 3680,  975, 3680,  974,
4805
4806      3642, 3680, 3877, 3877, 3877, 3894, 3894, 3894,  973, 3894,
4807       972,  963, 3894, 4044, 4044, 4044, 4047, 4047, 4047,  962,
4808      3877,  959,  958, 3894, 4084, 4084, 4084, 4085, 4085, 4085,
4809       957, 4044,  956,  955, 4047,  953,  952,  951,  948,  947,
4810       946,  943, 4084,  942,  938, 4085, 4088, 4088, 4088, 4088,
4811      4088, 4088, 4088, 4088, 4088, 4089, 4089, 4089, 4089, 4089,
4812      4089, 4089, 4089, 4089, 4090, 4090, 4090, 4090, 4090, 4090,
4813      4090, 4090, 4090, 4091, 4091, 4091, 4091, 4091, 4091, 4091,
4814      4091, 4091, 4092, 4092, 4092, 4092, 4092, 4092, 4092, 4092,
4815      4092, 4093, 4093, 4093, 4093, 4093, 4093, 4093, 4093, 4093,
4816
4817      4094, 4094, 4094, 4094, 4094, 4094, 4094, 4094, 4094, 4095,
4818      4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4096, 4096,
4819      4096, 4096, 4096, 4096, 4096, 4096, 4096, 4097, 4097, 4097,
4820      4097, 4097, 4097, 4097, 4097, 4097, 4098, 4098, 4098, 4098,
4821      4098, 4098, 4098, 4098, 4098, 4099, 4099, 4099, 4099, 4099,
4822      4099, 4099, 4099, 4099, 4100, 4100, 4100, 4100, 4100, 4100,
4823      4100, 4100, 4100, 4101, 4101, 4101, 4101, 4101, 4101, 4101,
4824      4101, 4101, 4102, 4102, 4102, 4102, 4102, 4102, 4102, 4102,
4825      4102, 4103, 4103, 4103, 4103, 4103, 4103, 4103, 4103, 4103,
4826      4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4105,
4827
4828      4105, 4105, 4105, 4105, 4105, 4105, 4105, 4105, 4106, 4106,
4829      4106, 4106, 4106, 4106, 4106, 4106, 4106, 4107, 4107, 4107,
4830      4107, 4107, 4107, 4107, 4107, 4107, 4108, 4108, 4108, 4108,
4831      4108, 4108, 4108, 4108, 4108, 4109, 4109, 4109, 4109, 4109,
4832      4109, 4109, 4109, 4109, 4110, 4110, 4110, 4110, 4110, 4110,
4833      4110, 4110, 4110, 4111, 4111, 4111, 4111, 4111, 4111, 4111,
4834      4111, 4111, 4112, 4112, 4112, 4112, 4112, 4112, 4112, 4112,
4835      4112, 4113, 4113, 4113, 4113, 4113, 4113, 4113, 4113, 4113,
4836      4114, 4114, 4114, 4114, 4114, 4114, 4114, 4114, 4114, 4115,
4837      4115, 4115, 4115, 4115, 4115, 4115, 4115, 4115, 4116, 4116,
4838
4839      4116, 4116, 4116, 4116, 4116, 4116, 4116, 4117, 4117, 4117,
4840      4117, 4117, 4117, 4117, 4117, 4117, 4118, 4118, 4118, 4118,
4841      4118, 4118, 4118, 4118, 4118, 4119, 4119, 4119, 4119, 4119,
4842      4119, 4119, 4119, 4119, 4120, 4120, 4120, 4120, 4120, 4120,
4843      4120, 4120, 4120, 4121, 4121, 4121, 4121, 4121, 4121, 4121,
4844      4121, 4121, 4122, 4122, 4122, 4122, 4122, 4122, 4122, 4122,
4845      4122, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123,
4846      4124, 4124, 4124, 4124, 4124, 4124, 4124, 4124, 4124, 4125,
4847      4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4126, 4126,
4848      4126, 4126, 4126, 4126, 4126, 4126, 4126, 4127, 4127, 4127,
4849
4850      4127, 4127, 4127, 4127, 4127, 4127, 4128, 4128, 4128, 4128,
4851      4128, 4128, 4128, 4128, 4128, 4129, 4129, 4129, 4129, 4129,
4852      4129, 4129, 4129, 4129, 4130, 4130, 4130, 4130, 4130, 4130,
4853      4130, 4130, 4130, 4131, 4131, 4131, 4131, 4131, 4131, 4131,
4854      4131, 4131, 4132, 4132, 4132, 4132, 4132, 4132, 4132, 4132,
4855      4132, 4133, 4133, 4133, 4133, 4133, 4133, 4133, 4133, 4133,
4856      4134, 4134, 4134, 4134, 4134, 4134, 4134, 4134, 4134, 4135,
4857      4135, 4135, 4135, 4135, 4135, 4135, 4135, 4135, 4136, 4136,
4858      4136, 4136, 4136, 4136, 4136, 4136, 4136, 4137, 4137, 4137,
4859      4137, 4137, 4137, 4137, 4137, 4137, 4138, 4138, 4138, 4138,
4860
4861      4138, 4138, 4138, 4138, 4138, 4139, 4139, 4139, 4139, 4139,
4862      4139, 4139, 4139, 4139, 4140, 4140, 4140, 4140, 4140, 4140,
4863      4140, 4140, 4140, 4141, 4141, 4141, 4141, 4141, 4141, 4141,
4864      4141, 4141, 4142, 4142, 4142, 4142, 4142, 4142, 4142, 4142,
4865      4142, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143,
4866      4144, 4144, 4144, 4144, 4144, 4144, 4144, 4144, 4144, 4145,
4867      4145, 4145, 4145, 4145, 4145, 4145, 4145, 4145, 4146, 4146,
4868      4146, 4146, 4146, 4146, 4146, 4146, 4146, 4147, 4147, 4147,
4869      4147, 4147, 4147, 4147, 4147, 4147, 4148, 4148, 4148, 4148,
4870      4148, 4148, 4148, 4148, 4148, 4149, 4149, 4149, 4149, 4149,
4871
4872      4149, 4149, 4149, 4149, 4150, 4150, 4150, 4150, 4150, 4150,
4873      4150, 4150, 4150, 4151, 4151, 4151, 4151, 4151, 4151, 4151,
4874      4151, 4151, 4152, 4152, 4152, 4152, 4152, 4152, 4152, 4152,
4875      4152, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
4876      4154, 4154, 4154, 4154, 4154, 4154, 4154, 4154, 4154, 4155,
4877      4155, 4155, 4155, 4155, 4155, 4155, 4155, 4155, 4156, 4156,
4878      4156, 4156, 4156, 4156, 4156, 4156, 4156, 4157, 4157, 4157,
4879       936,  933,  932, 4157, 4158, 4158, 4158,  931,  930,  928,
4880      4158, 4159, 4159, 4159,  925,  924,  921, 4159, 4160, 4160,
4881      4160,  918,  915,  914, 4160, 4161, 4161, 4161,  913,  912,
4882
4883       911, 4161, 4162, 4162, 4162,  908,  905,  901, 4162, 4163,
4884      4163, 4163,  900,  899,  898, 4163, 4164, 4164, 4164,  897,
4885       896,  895, 4164, 4165, 4165, 4165,  894,  893,  892, 4165,
4886      4166, 4166, 4166,  891,  889,  887, 4166, 4167, 4167, 4167,
4887       884,  883,  882, 4167, 4168, 4168, 4168,  881,  880,  879,
4888      4168, 4169, 4169, 4169,  874,  873,  872, 4169, 4170, 4170,
4889      4170,  871,  868,  867, 4170, 4171, 4171, 4171,  866,  863,
4890       862, 4171, 4172, 4172, 4172,  861,  860,  857, 4172, 4173,
4891      4173, 4173,  856,  854,  851, 4173, 4174, 4174, 4174,  850,
4892       846,  845, 4174, 4175, 4175, 4175,  844,  843,  842, 4175,
4893
4894      4176, 4176, 4176,  841,  838,  837, 4176, 4177, 4177, 4177,
4895       836,  835,  834, 4177, 4178, 4178, 4178,  833,  824,  822,
4896      4178, 4179, 4179, 4179,  821,  818,  817, 4179, 4180, 4180,
4897      4180,  816,  815,  812, 4180, 4181, 4181, 4181,  811,  810,
4898       807, 4181, 4182, 4182, 4182,  805,  804,  803, 4182, 4183,
4899      4183, 4183,  800,  799,  798, 4183, 4184, 4184, 4184,  797,
4900       793,  792, 4184, 4185, 4185, 4185,  791,  787,  786, 4185,
4901      4186, 4186, 4186,  785,  784,  778, 4186, 4187, 4187, 4187,
4902       777,  775,  767, 4187, 4188, 4188, 4188, 4188, 4188, 4188,
4903      4188,  766, 4188, 4189, 4189, 4189,  762,  754,  752, 4189,
4904
4905      4190,  748,  747,  743, 4190, 4191, 4191, 4191,  737,  736,
4906       735, 4191, 4192,  731,  728,  726, 4192, 4193, 4193, 4193,
4907       725,  724,  720, 4193, 4194,  716,  712,  711, 4194, 4195,
4908      4195, 4195,  710,  709,  705, 4195, 4196,  701,  698,  697,
4909      4196, 4197, 4197, 4197,  696,  695,  691, 4197, 4198,  685,
4910       684,  680, 4198, 4199, 4199, 4199,  672,  668,  661, 4199,
4911      4200,  659,  658,  654, 4200, 4201, 4201, 4201,  648,  647,
4912       643, 4201, 4202,  636,  635,  634, 4202, 4203, 4203, 4203,
4913       633,  632,  628, 4203, 4204,  617,  613,  605, 4204, 4205,
4914      4205, 4205,  604,  603,  602, 4205, 4206,  601,  597,  591,
4915
4916      4206, 4207, 4207, 4207,  590,  586,  580, 4207, 4208,  579,
4917       575,  569, 4208, 4209, 4209, 4209,  568,  564,  560, 4209,
4918      4210,  556,  555,  554, 4210, 4211, 4211, 4211,  550,  542,
4919       538, 4211, 4212,  532,  531,  530, 4212, 4213, 4213, 4213,
4920       526,  522,  517, 4213, 4214,  516,  515,  514, 4214, 4215,
4921      4215, 4215,  510,  506,  503, 4215, 4216,  499,  495,  492,
4922      4216, 4217, 4217, 4217,  489,  487,  486, 4217, 4218,  481,
4923       474,  473, 4218, 4219, 4219, 4219,  472,  471,  470, 4219,
4924      4220,  466,  459,  458, 4220, 4221, 4221, 4221,  457,  453,
4925       446, 4221, 4222,  445,  441,  434, 4222, 4223, 4223, 4223,
4926
4927       433,  432,  428, 4223, 4224,  422,  421,  420, 4224, 4225,
4928      4225, 4225,  416,  410,  406, 4225, 4226,  402,  398,  397,
4929      4226, 4227, 4227, 4227,  396,  395,  394, 4227, 4228,  390,
4930       381,  380, 4228, 4229, 4229, 4229,  376,  372,  367, 4229,
4931      4230,  361,  357,  356, 4230, 4231, 4231, 4231,  352,  349,
4932       348, 4231, 4232,  347,  341,  340, 4232, 4233, 4233, 4233,
4933       338,  335,  323, 4233, 4234,    0,    0,    0, 4234, 4235,
4934      4235, 4235,    0,    0,    0, 4235, 4236,    0,    0,    0,
4935      4236, 4237, 4237, 4237,    0,    0,    0, 4237, 4238,    0,
4936         0,    0, 4238, 4239, 4239, 4239,    0,    0,    0, 4239,
4937
4938      4240,    0,    0,    0, 4240, 4241, 4241, 4241,    0,    0,
4939         0, 4241, 4242,    0,    0,    0, 4242, 4243, 4243, 4243,
4940         0,    0,    0, 4243, 4244,    0,    0,    0, 4244, 4245,
4941      4245, 4245,    0,    0,    0, 4245, 4246,    0,    0,    0,
4942      4246, 4247, 4247, 4247,    0,    0,    0, 4247, 4248,    0,
4943         0,    0, 4248, 4249, 4249, 4249,    0,    0,    0, 4249,
4944      4250,    0,    0,    0, 4250, 4251, 4251, 4251, 4251, 4251,
4945      4251, 4251, 4251, 4251, 4252,    0,    0,    0,    0, 4252,
4946      4253, 4253, 4253,    0,    0,    0, 4253, 4254, 4254, 4254,
4947      4254,    0,    0, 4254, 4254, 4255, 4255, 4255, 4255,    0,
4948
4949      4255,    0, 4255, 4256, 4256, 4256, 4256,    0,    0, 4256,
4950      4256, 4257, 4257, 4257,    0,    0,    0, 4257, 4258, 4258,
4951      4258, 4258,    0,    0, 4258, 4258, 4259, 4259, 4259,    0,
4952         0,    0, 4259, 4260, 4260, 4260, 4260,    0,    0, 4260,
4953      4260, 4261, 4261, 4261,    0,    0,    0, 4261, 4262, 4262,
4954      4262, 4262,    0,    0, 4262, 4262, 4263, 4263, 4263, 4263,
4955         0, 4263,    0, 4263, 4264, 4264, 4264, 4264,    0,    0,
4956      4264, 4264, 4265, 4265, 4265, 4265,    0, 4265,    0, 4265,
4957      4266, 4266, 4266, 4266,    0,    0, 4266, 4266, 4267, 4267,
4958      4267, 4267,    0, 4267,    0, 4267, 4268, 4268, 4268, 4268,
4959
4960         0,    0, 4268, 4268, 4269, 4269, 4269, 4269,    0, 4269,
4961         0, 4269, 4270, 4270, 4270, 4270,    0,    0, 4270, 4270,
4962      4271, 4271, 4271,    0,    0,    0, 4271, 4272, 4272, 4272,
4963      4272,    0,    0, 4272, 4272, 4273, 4273, 4273, 4273,    0,
4964         0, 4273, 4273, 4274, 4274, 4274,    0,    0,    0, 4274,
4965      4275, 4275, 4275, 4275,    0,    0, 4275, 4275, 4276, 4276,
4966      4276,    0,    0,    0, 4276, 4277, 4277, 4277, 4277,    0,
4967         0, 4277, 4277, 4278, 4278, 4278,    0,    0,    0, 4278,
4968      4279, 4279, 4279, 4279,    0,    0, 4279, 4279, 4280, 4280,
4969      4280,    0,    0,    0, 4280, 4281, 4281, 4281, 4281,    0,
4970
4971         0, 4281, 4281, 4282, 4282, 4282,    0,    0,    0, 4282,
4972      4283, 4283, 4283, 4283,    0,    0, 4283, 4283, 4284, 4284,
4973      4284,    0,    0,    0, 4284, 4285, 4285, 4285, 4285,    0,
4974         0, 4285, 4285, 4286, 4286, 4286,    0,    0,    0, 4286,
4975      4287, 4287, 4287, 4287,    0,    0, 4287, 4287, 4288, 4288,
4976      4288,    0,    0,    0, 4288, 4289, 4289, 4289, 4289,    0,
4977         0, 4289, 4289, 4290, 4290, 4290,    0,    0,    0, 4290,
4978      4291, 4291, 4291, 4291,    0,    0, 4291, 4291, 4292, 4292,
4979      4292,    0,    0,    0, 4292, 4293, 4293, 4293, 4293,    0,
4980         0, 4293, 4293, 4294, 4294, 4294,    0,    0,    0, 4294,
4981
4982      4295, 4295, 4295, 4295,    0,    0, 4295, 4295, 4296, 4296,
4983      4296,    0,    0,    0, 4296, 4297, 4297, 4297, 4297,    0,
4984         0, 4297, 4297, 4298, 4298, 4298, 4298,    0, 4298,    0,
4985      4298, 4299, 4299, 4299, 4299,    0,    0, 4299, 4299, 4300,
4986      4300, 4300,    0,    0,    0, 4300, 4301, 4301, 4301, 4301,
4987         0,    0, 4301, 4301, 4302, 4302, 4302,    0,    0,    0,
4988      4302, 4303, 4303, 4303, 4303,    0,    0, 4303, 4303, 4304,
4989      4304, 4304,    0,    0,    0, 4304, 4305, 4305, 4305, 4305,
4990         0,    0, 4305, 4305, 4306, 4306, 4306,    0,    0,    0,
4991      4306, 4307, 4307, 4307, 4307,    0,    0, 4307, 4307, 4308,
4992
4993      4308, 4308,    0,    0,    0, 4308, 4309, 4309, 4309, 4309,
4994         0,    0, 4309, 4309, 4310, 4310, 4310,    0,    0,    0,
4995      4310, 4311, 4311, 4311, 4311,    0,    0, 4311, 4311, 4312,
4996      4312, 4312, 4312,    0, 4312,    0, 4312, 4313, 4313, 4313,
4997      4313,    0,    0, 4313, 4313, 4314, 4314, 4314, 4314, 4314,
4998      4314, 4314, 4314, 4314, 4315,    0, 4315,    0,    0, 4315,
4999      4316, 4316, 4316,    0,    0,    0, 4316, 4317, 4317, 4317,
5000      4317,    0,    0, 4317, 4317, 4318, 4318, 4318,    0,    0,
5001         0, 4318, 4319, 4319, 4319, 4319,    0,    0, 4319, 4319,
5002      4320, 4320, 4320,    0,    0,    0, 4320, 4321, 4321, 4321,
5003
5004      4321,    0,    0, 4321, 4321, 4322, 4322, 4322,    0,    0,
5005         0, 4322, 4323, 4323, 4323, 4323,    0,    0, 4323, 4323,
5006      4324, 4324, 4324,    0,    0,    0, 4324, 4325, 4325, 4325,
5007      4325,    0,    0, 4325, 4325, 4326, 4326, 4326,    0,    0,
5008         0, 4326, 4327, 4327, 4327, 4327,    0,    0, 4327, 4327,
5009      4328, 4328, 4328, 4328,    0,    0, 4328, 4328, 4329, 4329,
5010      4329,    0,    0,    0, 4329, 4330, 4330, 4330, 4330,    0,
5011         0, 4330, 4330, 4331, 4331, 4331,    0,    0,    0, 4331,
5012      4332, 4332, 4332, 4332,    0,    0, 4332, 4332, 4333, 4333,
5013      4333,    0,    0,    0, 4333, 4334, 4334, 4334, 4334,    0,
5014
5015         0, 4334, 4334, 4335, 4335, 4335, 4335,    0,    0, 4335,
5016      4335, 4336, 4336, 4336,    0,    0,    0, 4336, 4337, 4337,
5017      4337, 4337,    0,    0, 4337, 4337, 4338, 4338, 4338, 4338,
5018         0, 4338,    0, 4338, 4339, 4339, 4339, 4339,    0,    0,
5019      4339, 4339, 4340, 4340, 4340, 4340,    0, 4340,    0, 4340,
5020      4341, 4341, 4341, 4341,    0,    0, 4341, 4341, 4342, 4342,
5021      4342,    0,    0,    0, 4342, 4343, 4343, 4343, 4343,    0,
5022         0, 4343, 4343, 4344, 4344, 4344,    0,    0,    0, 4344,
5023      4345, 4345, 4345, 4345,    0,    0, 4345, 4345, 4346, 4346,
5024      4346,    0,    0,    0, 4346, 4347, 4347, 4347, 4347,    0,
5025
5026         0, 4347, 4347, 4348, 4348, 4348, 4348,    0, 4348,    0,
5027      4348, 4349, 4349, 4349, 4349,    0,    0, 4349, 4349, 4350,
5028      4350, 4350,    0,    0,    0, 4350, 4351, 4351, 4351, 4351,
5029         0,    0, 4351, 4351, 4352, 4352, 4352,    0,    0,    0,
5030      4352, 4353, 4353, 4353, 4353,    0,    0, 4353, 4353, 4354,
5031      4354, 4354,    0,    0,    0, 4354, 4355, 4355, 4355, 4355,
5032         0,    0, 4355, 4355, 4356, 4356, 4356,    0,    0,    0,
5033      4356, 4357, 4357, 4357, 4357,    0,    0, 4357, 4357, 4358,
5034      4358, 4358,    0,    0,    0, 4358, 4359, 4359, 4359, 4359,
5035         0,    0, 4359, 4359, 4360, 4360, 4360,    0,    0,    0,
5036
5037      4360, 4361, 4361, 4361, 4361,    0,    0, 4361, 4361, 4362,
5038      4362, 4362,    0,    0,    0, 4362, 4363, 4363, 4363, 4363,
5039         0,    0, 4363, 4363, 4364, 4364, 4364,    0,    0,    0,
5040      4364, 4365, 4365, 4365, 4365,    0,    0, 4365, 4365, 4366,
5041      4366, 4366,    0,    0,    0, 4366, 4367, 4367, 4367, 4367,
5042         0,    0, 4367, 4367, 4368, 4368, 4368, 4368,    0, 4368,
5043         0, 4368, 4369, 4369, 4369, 4369,    0,    0, 4369, 4369,
5044      4370, 4370, 4370,    0,    0,    0, 4370, 4371, 4371, 4371,
5045      4371,    0,    0, 4371, 4371, 4372, 4372, 4372,    0,    0,
5046         0, 4372, 4373, 4373, 4373, 4373,    0,    0, 4373, 4373,
5047
5048      4374, 4374, 4374,    0,    0,    0, 4374, 4375, 4375, 4375,
5049      4375,    0,    0, 4375, 4375, 4376, 4376, 4376, 4376, 4376,
5050      4376, 4376, 4376, 4376, 4377, 4377, 4377, 4377, 4377, 4377,
5051      4377, 4377, 4377, 4378, 4378, 4378,    0,    0,    0, 4378,
5052      4379, 4379, 4379,    0,    0,    0, 4379, 4380, 4380, 4380,
5053      4380,    0,    0, 4380, 4380, 4381, 4381, 4381,    0,    0,
5054         0, 4381, 4382, 4382, 4382, 4382,    0,    0, 4382, 4382,
5055      4383, 4383, 4383, 4383,    0, 4383,    0, 4383, 4384, 4384,
5056      4384, 4384,    0,    0, 4384, 4384, 4385, 4385, 4385,    0,
5057         0,    0, 4385, 4386, 4386, 4386, 4386,    0,    0, 4386,
5058
5059      4386, 4387, 4387, 4387,    0,    0,    0, 4387, 4388, 4388,
5060      4388, 4388,    0,    0, 4388, 4388, 4389, 4389, 4389, 4389,
5061         0,    0, 4389, 4389, 4390, 4390, 4390,    0,    0,    0,
5062      4390, 4391, 4391, 4391, 4391,    0,    0, 4391, 4391, 4392,
5063      4392, 4392,    0,    0,    0, 4392, 4393, 4393, 4393, 4393,
5064         0,    0, 4393, 4393, 4394, 4394, 4394, 4394,    0, 4394,
5065         0, 4394, 4395, 4395, 4395, 4395,    0,    0, 4395, 4395,
5066      4396, 4396, 4396, 4396,    0,    0, 4396, 4396, 4397, 4397,
5067      4397,    0,    0,    0, 4397, 4398, 4398, 4398, 4398,    0,
5068         0, 4398, 4398, 4399, 4399, 4399, 4399,    0,    0, 4399,
5069
5070      4399, 4400, 4400, 4400, 4400,    0,    0, 4400, 4400, 4401,
5071      4401, 4401,    0,    0,    0, 4401, 4402, 4402, 4402, 4402,
5072         0,    0, 4402, 4402, 4403, 4403, 4403,    0,    0,    0,
5073      4403, 4404, 4404, 4404, 4404,    0,    0, 4404, 4404, 4405,
5074      4405, 4405, 4405,    0, 4405,    0, 4405, 4406, 4406, 4406,
5075      4406,    0,    0, 4406, 4406, 4407, 4407, 4407,    0,    0,
5076         0, 4407, 4408, 4408, 4408, 4408,    0,    0, 4408, 4408,
5077      4409, 4409, 4409,    0,    0,    0, 4409, 4410, 4410, 4410,
5078      4410,    0,    0, 4410, 4410, 4411, 4411, 4411,    0,    0,
5079         0, 4411, 4412, 4412, 4412, 4412,    0,    0, 4412, 4412,
5080
5081      4413, 4413, 4413,    0,    0,    0, 4413, 4414, 4414, 4414,
5082      4414,    0,    0, 4414, 4414, 4415, 4415, 4415, 4415,    0,
5083      4415,    0, 4415, 4416, 4416, 4416, 4416,    0,    0, 4416,
5084      4416, 4417, 4417, 4417,    0,    0,    0, 4417, 4418, 4418,
5085      4418, 4418,    0,    0, 4418, 4418, 4419, 4419, 4419,    0,
5086         0,    0, 4419, 4420, 4420, 4420, 4420,    0,    0, 4420,
5087      4420, 4421, 4421, 4421,    0,    0,    0, 4421, 4422, 4422,
5088      4422, 4422,    0,    0, 4422, 4422, 4423, 4423, 4423,    0,
5089         0,    0, 4423, 4424, 4424, 4424, 4424,    0,    0, 4424,
5090      4424, 4425, 4425, 4425,    0,    0,    0, 4425, 4426, 4426,
5091
5092      4426, 4426,    0,    0, 4426, 4426, 4427, 4427, 4427,    0,
5093         0,    0, 4427, 4428, 4428, 4428, 4428,    0,    0, 4428,
5094      4428, 4429, 4429, 4429,    0,    0,    0, 4429, 4430, 4430,
5095      4430, 4430,    0,    0, 4430, 4430, 4431, 4431, 4431,    0,
5096         0,    0, 4431, 4432, 4432, 4432, 4432,    0,    0, 4432,
5097      4432, 4433, 4433, 4433,    0,    0,    0, 4433, 4434, 4434,
5098      4434, 4434,    0,    0, 4434, 4434, 4435, 4435, 4435, 4435,
5099      4435, 4435, 4435, 4435, 4435, 4436, 4436, 4436, 4436, 4436,
5100      4436, 4436, 4436, 4436, 4437, 4437, 4437,    0,    0,    0,
5101      4437, 4438, 4438, 4438, 4438,    0, 4438,    0, 4438, 4439,
5102
5103      4439, 4439, 4439,    0,    0, 4439, 4439, 4440, 4440, 4440,
5104         0,    0,    0, 4440, 4441, 4441, 4441, 4441,    0,    0,
5105      4441, 4441, 4442, 4442, 4442, 4442,    0,    0, 4442, 4442,
5106      4443, 4443, 4443,    0,    0,    0, 4443, 4444, 4444, 4444,
5107      4444,    0,    0, 4444, 4444, 4445, 4445, 4445, 4445,    0,
5108      4445,    0, 4445, 4446, 4446, 4446, 4446,    0,    0, 4446,
5109      4446, 4447, 4447, 4447, 4447,    0,    0, 4447, 4447, 4448,
5110      4448, 4448, 4448,    0, 4448,    0, 4448, 4449, 4449, 4449,
5111      4449,    0,    0, 4449, 4449, 4450, 4450, 4450, 4450,    0,
5112      4450,    0, 4450, 4451, 4451, 4451, 4451,    0,    0, 4451,
5113
5114      4451, 4452, 4452, 4452, 4452,    0, 4452,    0, 4452, 4453,
5115      4453, 4453, 4453,    0,    0, 4453, 4453, 4454, 4454, 4454,
5116      4454,    0,    0, 4454, 4454, 4455, 4455, 4455,    0,    0,
5117         0, 4455, 4456, 4456, 4456, 4456,    0,    0, 4456, 4456,
5118      4457, 4457, 4457, 4457,    0,    0, 4457, 4457, 4458, 4458,
5119      4458, 4458,    0,    0, 4458, 4458, 4459, 4459, 4459,    0,
5120         0,    0, 4459, 4460, 4460, 4460, 4460,    0,    0, 4460,
5121      4460, 4461, 4461, 4461,    0,    0,    0, 4461, 4462, 4462,
5122      4462, 4462,    0,    0, 4462, 4462, 4463, 4463, 4463, 4463,
5123         0,    0, 4463, 4463, 4464, 4464, 4464,    0,    0,    0,
5124
5125      4464, 4465, 4465, 4465, 4465,    0,    0, 4465, 4465, 4466,
5126      4466, 4466,    0,    0,    0, 4466, 4467, 4467, 4467, 4467,
5127         0,    0, 4467, 4467, 4468, 4468, 4468,    0,    0,    0,
5128      4468, 4469, 4469, 4469, 4469,    0,    0, 4469, 4469, 4470,
5129      4470, 4470,    0,    0,    0, 4470, 4471, 4471, 4471, 4471,
5130         0,    0, 4471, 4471, 4472, 4472, 4472, 4472,    0,    0,
5131      4472, 4472, 4473, 4473, 4473,    0,    0,    0, 4473, 4474,
5132      4474, 4474, 4474,    0,    0, 4474, 4474, 4475, 4475, 4475,
5133         0,    0,    0, 4475, 4476, 4476, 4476, 4476,    0,    0,
5134      4476, 4476, 4477, 4477, 4477,    0,    0,    0, 4477, 4478,
5135
5136      4478, 4478, 4478,    0,    0, 4478, 4478, 4479, 4479, 4479,
5137      4479,    0, 4479,    0, 4479, 4480, 4480, 4480, 4480,    0,
5138         0, 4480, 4480, 4481, 4481, 4481,    0,    0,    0, 4481,
5139      4482, 4482, 4482, 4482,    0,    0, 4482, 4482, 4483, 4483,
5140      4483,    0,    0,    0, 4483, 4484, 4484, 4484, 4484,    0,
5141         0, 4484, 4484, 4485, 4485, 4485,    0,    0,    0, 4485,
5142      4486, 4486, 4486, 4486,    0,    0, 4486, 4486, 4487, 4487,
5143      4487,    0,    0,    0, 4487, 4488, 4488, 4488, 4488,    0,
5144         0, 4488, 4488, 4489, 4489, 4489, 4489,    0, 4489,    0,
5145      4489, 4490, 4490, 4490, 4490,    0,    0, 4490, 4490, 4491,
5146
5147      4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491, 4492, 4492,
5148      4492, 4492, 4492, 4492, 4492, 4492, 4492, 4493, 4493, 4493,
5149      4493,    0, 4493,    0, 4493, 4494, 4494, 4494,    0,    0,
5150         0, 4494, 4495, 4495, 4495, 4495,    0,    0, 4495, 4495,
5151      4496, 4496, 4496,    0,    0,    0, 4496, 4497, 4497, 4497,
5152      4497,    0,    0, 4497, 4497, 4498, 4498, 4498, 4498,    0,
5153         0, 4498, 4498, 4499, 4499, 4499,    0,    0,    0, 4499,
5154      4500, 4500, 4500, 4500,    0,    0, 4500, 4500, 4501, 4501,
5155      4501, 4501,    0,    0, 4501, 4501, 4502, 4502, 4502, 4502,
5156         0,    0, 4502, 4502, 4503, 4503, 4503, 4503,    0,    0,
5157
5158      4503, 4503, 4504, 4504, 4504, 4504,    0, 4504,    0, 4504,
5159      4505, 4505, 4505, 4505,    0,    0, 4505, 4505, 4506, 4506,
5160      4506,    0,    0,    0, 4506, 4507, 4507, 4507, 4507,    0,
5161         0, 4507, 4507, 4508, 4508, 4508, 4508,    0,    0, 4508,
5162      4508, 4509, 4509, 4509,    0,    0,    0, 4509, 4510, 4510,
5163      4510, 4510,    0,    0, 4510, 4510, 4511, 4511, 4511, 4511,
5164         0,    0, 4511, 4511, 4512, 4512, 4512,    0,    0,    0,
5165      4512, 4513, 4513, 4513,    0,    0,    0, 4513, 4514, 4514,
5166      4514, 4514,    0,    0, 4514, 4514, 4515, 4515, 4515, 4515,
5167         0,    0, 4515, 4515, 4516, 4516, 4516,    0,    0,    0,
5168
5169      4516, 4517, 4517, 4517, 4517,    0,    0, 4517, 4517, 4518,
5170      4518, 4518,    0,    0,    0, 4518, 4519, 4519, 4519, 4519,
5171         0, 4519,    0, 4519, 4520, 4520, 4520, 4520,    0,    0,
5172      4520, 4520, 4521, 4521, 4521,    0,    0,    0, 4521, 4522,
5173      4522, 4522, 4522,    0,    0, 4522, 4522, 4523, 4523, 4523,
5174         0,    0,    0, 4523, 4524, 4524, 4524, 4524,    0,    0,
5175      4524, 4524, 4525, 4525, 4525,    0,    0,    0, 4525, 4526,
5176      4526, 4526, 4526,    0,    0, 4526, 4526, 4527, 4527, 4527,
5177         0,    0,    0, 4527, 4528, 4528, 4528, 4528,    0,    0,
5178      4528, 4528, 4529, 4529, 4529, 4529,    0, 4529,    0, 4529,
5179
5180      4530, 4530, 4530, 4530,    0,    0, 4530, 4530, 4531, 4531,
5181      4531, 4531,    0, 4531,    0, 4531, 4532, 4532, 4532, 4532,
5182         0,    0, 4532, 4532, 4533, 4533, 4533,    0,    0,    0,
5183      4533, 4534, 4534, 4534, 4534,    0,    0, 4534, 4534, 4535,
5184      4535, 4535, 4535,    0, 4535,    0, 4535, 4536, 4536, 4536,
5185      4536,    0,    0, 4536, 4536, 4537, 4537, 4537, 4537,    0,
5186      4537,    0, 4537, 4538, 4538, 4538,    0,    0,    0, 4538,
5187      4539, 4539, 4539, 4539,    0,    0, 4539, 4539, 4540, 4540,
5188      4540, 4540, 4540, 4540, 4540, 4540, 4540, 4541, 4541, 4541,
5189      4541, 4541, 4541, 4541, 4541, 4541, 4542, 4542, 4542,    0,
5190
5191         0,    0, 4542, 4543, 4543, 4543, 4543,    0,    0, 4543,
5192      4543, 4544, 4544, 4544, 4544,    0, 4544,    0, 4544, 4545,
5193      4545, 4545, 4545,    0,    0, 4545, 4545, 4546, 4546, 4546,
5194         0,    0,    0, 4546, 4547, 4547, 4547, 4547,    0,    0,
5195      4547, 4547, 4548, 4548, 4548, 4548,    0,    0, 4548, 4548,
5196      4549, 4549, 4549, 4549,    0,    0, 4549, 4549, 4550, 4550,
5197      4550, 4550,    0,    0, 4550, 4550, 4551, 4551, 4551, 4551,
5198         0,    0, 4551, 4551, 4552, 4552, 4552,    0,    0,    0,
5199      4552, 4553, 4553, 4553, 4553,    0,    0, 4553, 4553, 4554,
5200      4554, 4554, 4554,    0,    0, 4554, 4554, 4555, 4555, 4555,
5201
5202         0,    0,    0, 4555, 4556, 4556, 4556, 4556,    0,    0,
5203      4556, 4556, 4557, 4557, 4557, 4557,    0,    0, 4557, 4557,
5204      4558, 4558, 4558,    0,    0,    0, 4558, 4559, 4559, 4559,
5205         0,    0,    0, 4559, 4560, 4560, 4560, 4560,    0,    0,
5206      4560, 4560, 4561, 4561, 4561, 4561,    0,    0, 4561, 4561,
5207      4562, 4562, 4562,    0,    0,    0, 4562, 4563, 4563, 4563,
5208         0,    0,    0, 4563, 4564, 4564, 4564, 4564,    0,    0,
5209      4564, 4564, 4565, 4565, 4565, 4565,    0, 4565,    0, 4565,
5210      4566, 4566, 4566, 4566,    0,    0, 4566, 4566, 4567, 4567,
5211      4567,    0,    0,    0, 4567, 4568, 4568, 4568, 4568,    0,
5212
5213         0, 4568, 4568, 4569, 4569, 4569,    0,    0,    0, 4569,
5214      4570, 4570, 4570,    0,    0,    0, 4570, 4571, 4571, 4571,
5215      4571,    0,    0, 4571, 4571, 4572, 4572, 4572, 4572,    0,
5216         0, 4572, 4572, 4573, 4573, 4573, 4573,    0,    0, 4573,
5217      4573, 4574, 4574, 4574,    0,    0,    0, 4574, 4575, 4575,
5218      4575, 4575,    0,    0, 4575, 4575, 4576, 4576, 4576,    0,
5219         0,    0, 4576, 4577, 4577, 4577, 4577,    0,    0, 4577,
5220      4577, 4578, 4578, 4578, 4578, 4578, 4578, 4578, 4578, 4578,
5221      4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4580,
5222      4580, 4580,    0,    0,    0, 4580, 4581, 4581, 4581, 4581,
5223
5224         0,    0, 4581, 4581, 4582, 4582, 4582, 4582,    0, 4582,
5225         0, 4582, 4583, 4583, 4583, 4583,    0,    0, 4583, 4583,
5226      4584, 4584, 4584, 4584,    0, 4584,    0, 4584, 4585, 4585,
5227      4585, 4585,    0,    0, 4585, 4585, 4586, 4586, 4586, 4586,
5228         0,    0, 4586, 4586, 4587, 4587, 4587, 4587,    0,    0,
5229      4587, 4587, 4588, 4588, 4588, 4588,    0,    0, 4588, 4588,
5230      4589, 4589, 4589, 4589,    0,    0, 4589, 4589, 4590, 4590,
5231      4590,    0,    0,    0, 4590, 4591, 4591, 4591, 4591,    0,
5232         0, 4591, 4591, 4592, 4592, 4592,    0,    0,    0, 4592,
5233      4593, 4593, 4593, 4593,    0,    0, 4593, 4593, 4594, 4594,
5234
5235      4594, 4594,    0,    0, 4594, 4594, 4595, 4595, 4595, 4595,
5236         0, 4595,    0, 4595, 4596, 4596, 4596, 4596,    0, 4596,
5237         0, 4596, 4597, 4597, 4597, 4597,    0,    0, 4597, 4597,
5238      4598, 4598, 4598, 4598,    0,    0, 4598, 4598, 4599, 4599,
5239      4599, 4599,    0, 4599,    0, 4599, 4600, 4600, 4600,    0,
5240         0,    0, 4600, 4601, 4601, 4601, 4601,    0,    0, 4601,
5241      4601, 4602, 4602, 4602, 4602,    0, 4602,    0, 4602, 4603,
5242      4603, 4603, 4603,    0,    0, 4603, 4603, 4604, 4604, 4604,
5243      4604,    0, 4604,    0, 4604, 4605, 4605, 4605,    0,    0,
5244         0, 4605, 4606, 4606, 4606,    0,    0,    0, 4606, 4607,
5245
5246      4607, 4607, 4607,    0,    0, 4607, 4607, 4608, 4608, 4608,
5247      4608,    0,    0, 4608, 4608, 4609, 4609, 4609,    0,    0,
5248         0, 4609, 4610, 4610, 4610, 4610,    0,    0, 4610, 4610,
5249      4611, 4611, 4611,    0,    0,    0, 4611, 4612, 4612, 4612,
5250      4612,    0,    0, 4612, 4612, 4613, 4613, 4613, 4613, 4613,
5251      4613, 4613, 4613, 4613, 4614, 4614, 4614, 4614, 4614, 4614,
5252      4614, 4614, 4614, 4615, 4615, 4615,    0,    0,    0, 4615,
5253      4616, 4616, 4616, 4616,    0, 4616,    0, 4616, 4617, 4617,
5254      4617, 4617,    0,    0, 4617, 4617, 4618, 4618, 4618, 4618,
5255         0,    0, 4618, 4618, 4619, 4619, 4619, 4619,    0,    0,
5256
5257      4619, 4619, 4620, 4620, 4620, 4620,    0,    0, 4620, 4620,
5258      4621, 4621, 4621, 4621,    0,    0, 4621, 4621, 4622, 4622,
5259      4622,    0,    0,    0, 4622, 4623, 4623, 4623,    0,    0,
5260         0, 4623, 4624, 4624, 4624, 4624,    0,    0, 4624, 4624,
5261      4625, 4625, 4625,    0,    0,    0, 4625, 4626, 4626, 4626,
5262      4626,    0,    0, 4626, 4626, 4627, 4627, 4627, 4627,    0,
5263         0, 4627, 4627, 4628, 4628, 4628,    0,    0,    0, 4628,
5264      4629, 4629, 4629, 4629,    0,    0, 4629, 4629, 4630, 4630,
5265      4630, 4630,    0, 4630,    0, 4630, 4631, 4631, 4631,    0,
5266         0,    0, 4631, 4632, 4632, 4632,    0,    0,    0, 4632,
5267
5268      4633, 4633, 4633,    0,    0,    0, 4633, 4634, 4634, 4634,
5269      4634, 4634, 4634, 4634, 4634, 4634, 4635, 4635, 4635, 4635,
5270      4635, 4635, 4635, 4635, 4635, 4636, 4636, 4636, 4636, 4636,
5271      4636, 4636, 4636, 4636, 4637, 4637, 4637, 4637, 4637, 4637,
5272      4637, 4637, 4637, 4638, 4638, 4638, 4638, 4638, 4638, 4638,
5273      4638, 4638, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639,
5274      4639, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5275      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5276      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5277      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5278
5279      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5280      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5281      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
5282      4087, 4087, 4087, 4087, 4087, 4087, 4087
5283     } ;
5284
5285 /* Table of booleans, true if rule could match eol. */
5286 static const flex_int32_t yy_rule_can_match_eol[665] =
5287     {   0,
5288 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 
5289     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5290     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5291     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5292     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
5293     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5294     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5295     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5296     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5297     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5298     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5299     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5300     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5301     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5302     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5303     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5304     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5305     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
5306     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
5307     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5308     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5309     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5310     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5311     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5312     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5313     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5314     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5315     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
5316     0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5317     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5318     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5319     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5320     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5321     0, 0, 0, 1, 0,     };
5322
5323 static yy_state_type yy_last_accepting_state;
5324 static char *yy_last_accepting_cpos;
5325
5326 extern int yy_flex_debug;
5327 int yy_flex_debug = 0;
5328
5329 /* The intent behind this definition is that it'll catch
5330  * any uses of REJECT which flex missed.
5331  */
5332 #define REJECT reject_used_but_not_detected
5333 #define yymore() yymore_used_but_not_detected
5334 #define YY_MORE_ADJ 0
5335 #define YY_RESTORE_YY_MORE_OFFSET
5336 char *yytext;
5337 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5338  *
5339  * This program was generated with the FleXML XML processor generator.
5340  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5341  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5342  * (1.9.6).
5343  * 
5344  * There are two, intertwined parts to this program, part A and part B.
5345  *
5346  * Part A
5347  * ------
5348  * 
5349  * Some parts, here collectively called "Part A", are found in the 
5350  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5351  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5352  *
5353  * You can redistribute, use, perform, display and/or modify "Part A"
5354  * provided the following two conditions hold:
5355  *
5356  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5357  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5358  *    FITNESS FOR A PARTICULAR PURPOSE.
5359  *
5360  * 2. The program distribution conditions do not in any way affect the
5361  *    distribution conditions of the FleXML system used to generate this
5362  *    file or any version of FleXML derived from that system.
5363  *
5364  * Notice that these are explicit rights granted to you for files
5365  * generated by the FleXML system.  For your rights in connection with
5366  * the FleXML system itself please consult the GNU General Public License.
5367  * 
5368  * Part B
5369  * ------
5370  * 
5371  * The other parts, here collectively called "Part B", and which came 
5372  * from the DTD used by FleXML to generate this program, can be 
5373  * distributed (or not, as the case may be) under the terms of whoever
5374  * wrote them, provided these terms respect and obey the two conditions 
5375  * above under the heading "Part A".
5376  *
5377  * The author of and contributors to FleXML specifically disclaim
5378  * any copyright interest in "Part B", unless "Part B" was written 
5379  * by the author of or contributors to FleXML.
5380  * 
5381  */
5382
5383 /* Version strings. */
5384 const char surfxml_flexml_version[] = "1.9.6";
5385
5386 /* ANSI headers. */
5387 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5388 #include <stdio.h>
5389 #include <string.h>
5390 #include <assert.h>
5391 #include <stdarg.h>
5392 #include <ctype.h>
5393      
5394 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5395 # ifndef __STRICT_ANSI__
5396 #  include <io.h>
5397 #  include <process.h>
5398 # endif
5399 #else
5400 # include <unistd.h>
5401 #endif
5402      
5403 #ifndef FLEXML_INDEXSTACKSIZE
5404 #define FLEXML_INDEXSTACKSIZE 1000
5405 #endif
5406
5407 /* Generated definitions. */
5408 #define FLEXML_yylineno
5409 #ifndef FLEXML_BUFFERSTACKSIZE
5410 #define FLEXML_BUFFERSTACKSIZE 1000000
5411 #endif
5412 #define FLEXML_NEED_BUFFERLIT
5413
5414 /* XML processor api. */
5415 /* FleXML-provided data. */
5416 int surfxml_pcdata_ix;
5417 extern char *surfxml_bufferstack;
5418 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5419 AT_surfxml_AS_id AX_surfxml_AS_id;
5420 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5421 short int surfxml_AS_id_isset;
5422 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5423 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5424 short int surfxml_AS_routing_isset;
5425 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5426 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5427 short int surfxml_ASroute_dst_isset;
5428 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5429 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5430 short int surfxml_ASroute_gw___dst_isset;
5431 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5432 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5433 short int surfxml_ASroute_gw___src_isset;
5434 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5435 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5436 short int surfxml_ASroute_src_isset;
5437 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5438 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5439 short int surfxml_ASroute_symmetrical_isset;
5440 AT_surfxml_actor_function AX_surfxml_actor_function;
5441 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5442 short int surfxml_actor_function_isset;
5443 AT_surfxml_actor_host AX_surfxml_actor_host;
5444 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5445 short int surfxml_actor_host_isset;
5446 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5447 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5448 short int surfxml_actor_kill___time_isset;
5449 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5450 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5451 short int surfxml_actor_on___failure_isset;
5452 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5453 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5454 short int surfxml_actor_start___time_isset;
5455 AT_surfxml_argument_value AX_surfxml_argument_value;
5456 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5457 short int surfxml_argument_value_isset;
5458 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5459 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5460 short int surfxml_backbone_bandwidth_isset;
5461 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5462 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5463 short int surfxml_backbone_id_isset;
5464 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5465 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5466 short int surfxml_backbone_latency_isset;
5467 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5468 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5469 short int surfxml_bypassASroute_dst_isset;
5470 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5471 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5472 short int surfxml_bypassASroute_gw___dst_isset;
5473 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5474 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5475 short int surfxml_bypassASroute_gw___src_isset;
5476 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5477 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5478 short int surfxml_bypassASroute_src_isset;
5479 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5480 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5481 short int surfxml_bypassRoute_dst_isset;
5482 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5483 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5484 short int surfxml_bypassRoute_src_isset;
5485 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5486 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5487 short int surfxml_bypassZoneRoute_dst_isset;
5488 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5489 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5490 short int surfxml_bypassZoneRoute_gw___dst_isset;
5491 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5492 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5493 short int surfxml_bypassZoneRoute_gw___src_isset;
5494 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5495 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5496 short int surfxml_bypassZoneRoute_src_isset;
5497 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5498 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5499 short int surfxml_cabinet_bw_isset;
5500 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5501 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5502 short int surfxml_cabinet_id_isset;
5503 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5504 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5505 short int surfxml_cabinet_lat_isset;
5506 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5507 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5508 short int surfxml_cabinet_prefix_isset;
5509 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5510 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5511 short int surfxml_cabinet_radical_isset;
5512 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5513 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5514 short int surfxml_cabinet_speed_isset;
5515 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5516 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5517 short int surfxml_cabinet_suffix_isset;
5518 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5519 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5520 short int surfxml_cluster_bb___bw_isset;
5521 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5522 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5523 short int surfxml_cluster_bb___lat_isset;
5524 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5525 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5526 short int surfxml_cluster_bb___sharing___policy_isset;
5527 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5528 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5529 short int surfxml_cluster_bw_isset;
5530 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5531 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5532 short int surfxml_cluster_core_isset;
5533 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5534 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5535 short int surfxml_cluster_id_isset;
5536 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5537 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5538 short int surfxml_cluster_lat_isset;
5539 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5540 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5541 short int surfxml_cluster_limiter___link_isset;
5542 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5543 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5544 short int surfxml_cluster_loopback___bw_isset;
5545 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5546 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5547 short int surfxml_cluster_loopback___lat_isset;
5548 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5549 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5550 short int surfxml_cluster_prefix_isset;
5551 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5552 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5553 short int surfxml_cluster_radical_isset;
5554 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5555 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5556 short int surfxml_cluster_router___id_isset;
5557 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5558 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5559 short int surfxml_cluster_sharing___policy_isset;
5560 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5561 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5562 short int surfxml_cluster_speed_isset;
5563 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5564 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5565 short int surfxml_cluster_suffix_isset;
5566 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5567 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5568 short int surfxml_cluster_topo___parameters_isset;
5569 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5570 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5571 short int surfxml_cluster_topology_isset;
5572 AT_surfxml_config_id AX_surfxml_config_id;
5573 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5574 short int surfxml_config_id_isset;
5575 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5576 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5577 short int surfxml_host_availability___file_isset;
5578 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5579 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5580 short int surfxml_host_coordinates_isset;
5581 AT_surfxml_host_core AX_surfxml_host_core;
5582 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5583 short int surfxml_host_core_isset;
5584 AT_surfxml_host_id AX_surfxml_host_id;
5585 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5586 short int surfxml_host_id_isset;
5587 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5588 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5589 short int surfxml_host_pstate_isset;
5590 AT_surfxml_host_speed AX_surfxml_host_speed;
5591 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5592 short int surfxml_host_speed_isset;
5593 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5594 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5595 short int surfxml_host_state___file_isset;
5596 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5597 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5598 short int surfxml_host___link_down_isset;
5599 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5600 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5601 short int surfxml_host___link_id_isset;
5602 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5603 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5604 short int surfxml_host___link_up_isset;
5605 AT_surfxml_include_file AX_surfxml_include_file;
5606 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5607 short int surfxml_include_file_isset;
5608 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5609 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5610 short int surfxml_link_bandwidth_isset;
5611 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5612 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5613 short int surfxml_link_bandwidth___file_isset;
5614 AT_surfxml_link_id AX_surfxml_link_id;
5615 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5616 short int surfxml_link_id_isset;
5617 AT_surfxml_link_latency AX_surfxml_link_latency;
5618 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5619 short int surfxml_link_latency_isset;
5620 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5621 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5622 short int surfxml_link_latency___file_isset;
5623 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5624 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5625 short int surfxml_link_sharing___policy_isset;
5626 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5627 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5628 short int surfxml_link_state___file_isset;
5629 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5630 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5631 short int surfxml_link___ctn_direction_isset;
5632 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5633 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5634 short int surfxml_link___ctn_id_isset;
5635 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5636 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5637 short int surfxml_model___prop_id_isset;
5638 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5639 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5640 short int surfxml_model___prop_value_isset;
5641 AT_surfxml_mount_name AX_surfxml_mount_name;
5642 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5643 short int surfxml_mount_name_isset;
5644 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5645 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5646 short int surfxml_mount_storageId_isset;
5647 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5648 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5649 short int surfxml_peer_availability___file_isset;
5650 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5651 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5652 short int surfxml_peer_bw___in_isset;
5653 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5654 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5655 short int surfxml_peer_bw___out_isset;
5656 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5657 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5658 short int surfxml_peer_coordinates_isset;
5659 AT_surfxml_peer_id AX_surfxml_peer_id;
5660 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5661 short int surfxml_peer_id_isset;
5662 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5663 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5664 short int surfxml_peer_lat_isset;
5665 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5666 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5667 short int surfxml_peer_speed_isset;
5668 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5669 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5670 short int surfxml_peer_state___file_isset;
5671 AT_surfxml_platform_version AX_surfxml_platform_version;
5672 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5673 short int surfxml_platform_version_isset;
5674 AT_surfxml_process_function AX_surfxml_process_function;
5675 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5676 short int surfxml_process_function_isset;
5677 AT_surfxml_process_host AX_surfxml_process_host;
5678 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5679 short int surfxml_process_host_isset;
5680 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5681 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5682 short int surfxml_process_kill___time_isset;
5683 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5684 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5685 short int surfxml_process_on___failure_isset;
5686 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5687 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5688 short int surfxml_process_start___time_isset;
5689 AT_surfxml_prop_id AX_surfxml_prop_id;
5690 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5691 short int surfxml_prop_id_isset;
5692 AT_surfxml_prop_value AX_surfxml_prop_value;
5693 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5694 short int surfxml_prop_value_isset;
5695 AT_surfxml_random_generator AX_surfxml_random_generator;
5696 #define A_surfxml_random_generator AX_surfxml_random_generator
5697 short int surfxml_random_generator_isset;
5698 AT_surfxml_random_id AX_surfxml_random_id;
5699 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5700 short int surfxml_random_id_isset;
5701 AT_surfxml_random_max AX_surfxml_random_max;
5702 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5703 short int surfxml_random_max_isset;
5704 AT_surfxml_random_mean AX_surfxml_random_mean;
5705 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5706 short int surfxml_random_mean_isset;
5707 AT_surfxml_random_min AX_surfxml_random_min;
5708 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5709 short int surfxml_random_min_isset;
5710 AT_surfxml_random_radical AX_surfxml_random_radical;
5711 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5712 short int surfxml_random_radical_isset;
5713 AT_surfxml_random_seed AX_surfxml_random_seed;
5714 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5715 short int surfxml_random_seed_isset;
5716 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5717 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5718 short int surfxml_random_std___deviation_isset;
5719 AT_surfxml_route_dst AX_surfxml_route_dst;
5720 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5721 short int surfxml_route_dst_isset;
5722 AT_surfxml_route_src AX_surfxml_route_src;
5723 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5724 short int surfxml_route_src_isset;
5725 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5726 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5727 short int surfxml_route_symmetrical_isset;
5728 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5729 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5730 short int surfxml_router_coordinates_isset;
5731 AT_surfxml_router_id AX_surfxml_router_id;
5732 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5733 short int surfxml_router_id_isset;
5734 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5735 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5736 short int surfxml_storage_attach_isset;
5737 AT_surfxml_storage_content AX_surfxml_storage_content;
5738 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5739 short int surfxml_storage_content_isset;
5740 AT_surfxml_storage_id AX_surfxml_storage_id;
5741 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5742 short int surfxml_storage_id_isset;
5743 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5744 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5745 short int surfxml_storage_typeId_isset;
5746 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5747 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5748 short int surfxml_storage___type_content_isset;
5749 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5750 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5751 short int surfxml_storage___type_id_isset;
5752 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5753 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5754 short int surfxml_storage___type_model_isset;
5755 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5756 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5757 short int surfxml_storage___type_size_isset;
5758 AT_surfxml_trace_file AX_surfxml_trace_file;
5759 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5760 short int surfxml_trace_file_isset;
5761 AT_surfxml_trace_id AX_surfxml_trace_id;
5762 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5763 short int surfxml_trace_id_isset;
5764 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5765 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5766 short int surfxml_trace_periodicity_isset;
5767 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5768 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5769 short int surfxml_trace___connect_element_isset;
5770 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5771 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5772 short int surfxml_trace___connect_kind_isset;
5773 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5774 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5775 short int surfxml_trace___connect_trace_isset;
5776 AT_surfxml_zone_id AX_surfxml_zone_id;
5777 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5778 short int surfxml_zone_id_isset;
5779 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5780 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5781 short int surfxml_zone_routing_isset;
5782 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5783 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5784 short int surfxml_zoneRoute_dst_isset;
5785 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5786 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5787 short int surfxml_zoneRoute_gw___dst_isset;
5788 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5789 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5790 short int surfxml_zoneRoute_gw___src_isset;
5791 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5792 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5793 short int surfxml_zoneRoute_src_isset;
5794 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5795 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5796 short int surfxml_zoneRoute_symmetrical_isset;
5797
5798 /* XML state. */
5799 #ifdef FLEX_DEBUG
5800 # define ENTER(state)   debug_enter(state,#state)
5801 # define LEAVE          debug_leave()
5802 # define SET(state)     debug_set(state,#state)
5803   static void debug_enter(int, const char*);
5804   static void debug_leave(void);
5805   static void debug_set(int, const char*);
5806 #else
5807 # define ENTER(state)   (yy_push_state(state))
5808 # define LEAVE          (yy_pop_state())
5809 # define SET(state)     BEGIN(state)
5810 #endif
5811
5812 /* Generic actions. */
5813 #define SKIP    /*skip*/
5814 #define SUCCEED        CLEANUP; return 0
5815
5816 #define FAIL    return fail
5817 static int fail(const char*, ...);
5818
5819 enum {flexml_max_err_msg_size = 512};
5820 static char flexml_err_msg[flexml_max_err_msg_size];
5821 const char * surfxml_parse_err_msg()
5822 {
5823     return flexml_err_msg;
5824 }
5825 static void reset_surfxml_parse_err_msg()
5826 {
5827     flexml_err_msg[0] = '\0';
5828 }
5829
5830 /* Cleanup */
5831 static void cleanup(void);
5832 #define CLEANUP  cleanup()
5833
5834 /* Text buffer stack handling. */
5835 char *surfxml_bufferstack = NULL;
5836 static int blimit = FLEXML_BUFFERSTACKSIZE;
5837 static int bnext = 1;
5838
5839 static int *indexstack = NULL;
5840 static int ilimit = FLEXML_INDEXSTACKSIZE;
5841 static int inext = 1;
5842
5843 #define BUFFERSET(P)  (P = bnext)
5844 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5845 #define BUFFERDONE    (BUFFERPUTC('\0'))
5846
5847 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), yytext)
5848
5849 /* after this is called, there are at least 2 slots left in the stack */
5850 static int ck_blimit()
5851 {
5852      if (bnext >= blimit) {
5853          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5854          {
5855              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5856              assert(temp);
5857              surfxml_bufferstack = temp;
5858          }
5859      }
5860      return 0;
5861 }
5862
5863 /* after this is called, there are at least 2 slots left in the stack */
5864 static int ck_ilimit()
5865 {
5866      if (inext >= ilimit) {
5867          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5868          {
5869              int *temp = (int *) realloc(indexstack, ilimit);
5870              assert(temp);
5871              indexstack = temp;
5872          }
5873      }
5874      return 0;
5875 }
5876
5877 #ifdef FLEXML_NEED_BUFFERLIT
5878 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5879 {
5880    BUFFERSET(*pp);
5881    if (c) {
5882       const char *s = strchr(text, c), *e = strrchr(text, c);
5883       assert(s && e && s <= e);
5884       ++s;
5885       while (s < e) {
5886          if (isspace(*s)) {
5887             BUFFERPUTC(' ');
5888             do ++s; while (s < e && isspace(*s));
5889          } else
5890            BUFFERPUTC(*s++);
5891       }
5892    } else {
5893       const char *s = text;
5894       while (*s)
5895         BUFFERPUTC(*s++);
5896    }
5897    BUFFERDONE;
5898 }
5899 #endif
5900
5901 static void pushbuffer(int p)
5902 {
5903     ck_ilimit();
5904     indexstack[inext++] = p;
5905     indexstack[inext++] = bnext;    
5906 }
5907
5908 static int popbuffer(void)
5909 {
5910     assert(inext >= 2);
5911     bnext = indexstack[--inext];
5912     return indexstack[--inext];
5913 }
5914
5915 /* General internal entities are `unput' back onto the input stream... */
5916 #define ENTITYTEXT(T) \
5917   { char *s = (T), *e = s+strlen(s);\
5918     while (--e >= s) { unput(*e); }}
5919
5920 /* Flex standard options. */
5921 #define YY_NO_INPUT 1
5922 /* Flex user-requested options. */
5923 /* XML character classes (currently restricted to ASCII). */
5924 /* "Common syntactic structures." */
5925 /* "Names and Tokens." */
5926 /* Miscellaneous. */
5927 /* Parser states (flex `exclusive start conditions'):
5928  *
5929  * PROLOG       the XML prolog of the document before <?xml...>
5930  * DOCTYPE      the XML prolog of the document after <?xml...>
5931  * EPILOG       after the root element
5932  * INCOMMENT    inside an XML comment <!--....-->
5933  * INPI         inside an XML PI <?...?>
5934  * VALUE1       inside a '...'-delimited literal
5935  * VALUE2       inside a "..."-delimited literal
5936  * CDATA        inside a <![CDATA[...] ]> section.
5937  * ROOT_<tag>   expect root element <tag>
5938  * AL_<tag>     inside the attribute list for <tag>
5939  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5940  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5941  */
5942
5943 /* State names. */
5944 const char* *surfxml_statenames=NULL;
5945
5946 #define INITIAL 0
5947 #define PROLOG 1
5948 #define DOCTYPE 2
5949 #define EPILOG 3
5950 #define INCOMMENT 4
5951 #define INPI 5
5952 #define VALUE1 6
5953 #define VALUE2 7
5954 #define CDATA 8
5955 #define AL_surfxml_AS 9
5956 #define S_surfxml_AS 10
5957 #define S_surfxml_AS_1 11
5958 #define S_surfxml_AS_2 12
5959 #define S_surfxml_AS_3 13
5960 #define S_surfxml_AS_4 14
5961 #define S_surfxml_AS_5 15
5962 #define S_surfxml_AS_6 16
5963 #define S_surfxml_AS_7 17
5964 #define S_surfxml_AS_8 18
5965 #define S_surfxml_AS_9 19
5966 #define S_surfxml_AS_10 20
5967 #define S_surfxml_AS_11 21
5968 #define S_surfxml_AS_12 22
5969 #define S_surfxml_AS_13 23
5970 #define S_surfxml_AS_14 24
5971 #define S_surfxml_AS_15 25
5972 #define S_surfxml_AS_16 26
5973 #define E_surfxml_AS 27
5974 #define AL_surfxml_ASroute 28
5975 #define S_surfxml_ASroute 29
5976 #define S_surfxml_ASroute_1 30
5977 #define S_surfxml_ASroute_2 31
5978 #define E_surfxml_ASroute 32
5979 #define AL_surfxml_actor 33
5980 #define S_surfxml_actor 34
5981 #define S_surfxml_actor_1 35
5982 #define S_surfxml_actor_2 36
5983 #define E_surfxml_actor 37
5984 #define AL_surfxml_argument 38
5985 #define E_surfxml_argument 39
5986 #define AL_surfxml_backbone 40
5987 #define E_surfxml_backbone 41
5988 #define AL_surfxml_bypassASroute 42
5989 #define S_surfxml_bypassASroute 43
5990 #define S_surfxml_bypassASroute_1 44
5991 #define S_surfxml_bypassASroute_2 45
5992 #define E_surfxml_bypassASroute 46
5993 #define AL_surfxml_bypassRoute 47
5994 #define S_surfxml_bypassRoute 48
5995 #define S_surfxml_bypassRoute_1 49
5996 #define S_surfxml_bypassRoute_2 50
5997 #define E_surfxml_bypassRoute 51
5998 #define AL_surfxml_bypassZoneRoute 52
5999 #define S_surfxml_bypassZoneRoute 53
6000 #define S_surfxml_bypassZoneRoute_1 54
6001 #define S_surfxml_bypassZoneRoute_2 55
6002 #define E_surfxml_bypassZoneRoute 56
6003 #define AL_surfxml_cabinet 57
6004 #define E_surfxml_cabinet 58
6005 #define AL_surfxml_cluster 59
6006 #define S_surfxml_cluster 60
6007 #define S_surfxml_cluster_1 61
6008 #define S_surfxml_cluster_2 62
6009 #define E_surfxml_cluster 63
6010 #define AL_surfxml_config 64
6011 #define S_surfxml_config 65
6012 #define S_surfxml_config_1 66
6013 #define S_surfxml_config_2 67
6014 #define E_surfxml_config 68
6015 #define AL_surfxml_host 69
6016 #define S_surfxml_host 70
6017 #define S_surfxml_host_1 71
6018 #define S_surfxml_host_2 72
6019 #define E_surfxml_host 73
6020 #define AL_surfxml_host___link 74
6021 #define E_surfxml_host___link 75
6022 #define AL_surfxml_include 76
6023 #define S_surfxml_include 77
6024 #define S_surfxml_include_1 78
6025 #define S_surfxml_include_2 79
6026 #define E_surfxml_include 80
6027 #define AL_surfxml_link 81
6028 #define S_surfxml_link 82
6029 #define S_surfxml_link_1 83
6030 #define S_surfxml_link_2 84
6031 #define E_surfxml_link 85
6032 #define AL_surfxml_link___ctn 86
6033 #define E_surfxml_link___ctn 87
6034 #define AL_surfxml_model___prop 88
6035 #define E_surfxml_model___prop 89
6036 #define AL_surfxml_mount 90
6037 #define E_surfxml_mount 91
6038 #define AL_surfxml_peer 92
6039 #define E_surfxml_peer 93
6040 #define ROOT_surfxml_platform 94
6041 #define AL_surfxml_platform 95
6042 #define S_surfxml_platform 96
6043 #define S_surfxml_platform_1 97
6044 #define S_surfxml_platform_2 98
6045 #define S_surfxml_platform_3 99
6046 #define S_surfxml_platform_4 100
6047 #define S_surfxml_platform_5 101
6048 #define S_surfxml_platform_6 102
6049 #define S_surfxml_platform_7 103
6050 #define S_surfxml_platform_8 104
6051 #define E_surfxml_platform 105
6052 #define AL_surfxml_process 106
6053 #define S_surfxml_process 107
6054 #define S_surfxml_process_1 108
6055 #define S_surfxml_process_2 109
6056 #define E_surfxml_process 110
6057 #define AL_surfxml_prop 111
6058 #define E_surfxml_prop 112
6059 #define AL_surfxml_random 113
6060 #define E_surfxml_random 114
6061 #define AL_surfxml_route 115
6062 #define S_surfxml_route 116
6063 #define S_surfxml_route_1 117
6064 #define S_surfxml_route_2 118
6065 #define E_surfxml_route 119
6066 #define AL_surfxml_router 120
6067 #define E_surfxml_router 121
6068 #define AL_surfxml_storage 122
6069 #define S_surfxml_storage 123
6070 #define S_surfxml_storage_1 124
6071 #define S_surfxml_storage_2 125
6072 #define E_surfxml_storage 126
6073 #define AL_surfxml_storage___type 127
6074 #define S_surfxml_storage___type 128
6075 #define S_surfxml_storage___type_1 129
6076 #define S_surfxml_storage___type_2 130
6077 #define E_surfxml_storage___type 131
6078 #define AL_surfxml_trace 132
6079 #define IN_trace 133
6080 #define AL_surfxml_trace___connect 134
6081 #define E_surfxml_trace___connect 135
6082 #define AL_surfxml_zone 136
6083 #define S_surfxml_zone 137
6084 #define S_surfxml_zone_1 138
6085 #define S_surfxml_zone_2 139
6086 #define S_surfxml_zone_3 140
6087 #define S_surfxml_zone_4 141
6088 #define S_surfxml_zone_5 142
6089 #define S_surfxml_zone_6 143
6090 #define S_surfxml_zone_7 144
6091 #define S_surfxml_zone_8 145
6092 #define S_surfxml_zone_9 146
6093 #define S_surfxml_zone_10 147
6094 #define S_surfxml_zone_11 148
6095 #define S_surfxml_zone_12 149
6096 #define S_surfxml_zone_13 150
6097 #define S_surfxml_zone_14 151
6098 #define S_surfxml_zone_15 152
6099 #define S_surfxml_zone_16 153
6100 #define E_surfxml_zone 154
6101 #define AL_surfxml_zoneRoute 155
6102 #define S_surfxml_zoneRoute 156
6103 #define S_surfxml_zoneRoute_1 157
6104 #define S_surfxml_zoneRoute_2 158
6105 #define E_surfxml_zoneRoute 159
6106 #define IMPOSSIBLE 160
6107
6108 #ifndef YY_NO_UNISTD_H
6109 /* Special case for "unistd.h", since it is non-ANSI. We include it way
6110  * down here because we want the user's section 1 to have been scanned first.
6111  * The user has a chance to override it with an option.
6112  */
6113 #if defined(_WIN32)
6114 #  ifndef __STRICT_ANSI__
6115 #    include <io.h>
6116 #    include <process.h>
6117 #  endif
6118 #else
6119 #  include <unistd.h>
6120 #endif
6121 #endif
6122
6123 #ifndef YY_EXTRA_TYPE
6124 #define YY_EXTRA_TYPE void *
6125 #endif
6126
6127 static int yy_init_globals ( void );
6128
6129 /* Accessor methods to globals.
6130    These are made visible to non-reentrant scanners for convenience. */
6131
6132 int yylex_destroy ( void );
6133
6134 int yyget_debug ( void );
6135
6136 void yyset_debug ( int debug_flag  );
6137
6138 YY_EXTRA_TYPE yyget_extra ( void );
6139
6140 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
6141
6142 FILE *yyget_in ( void );
6143
6144 void yyset_in  ( FILE * _in_str  );
6145
6146 FILE *yyget_out ( void );
6147
6148 void yyset_out  ( FILE * _out_str  );
6149
6150                         int yyget_leng ( void );
6151
6152 char *yyget_text ( void );
6153
6154 int yyget_lineno ( void );
6155
6156 void yyset_lineno ( int _line_number  );
6157
6158 /* Macros after this point can all be overridden by user definitions in
6159  * section 1.
6160  */
6161
6162 #ifndef YY_SKIP_YYWRAP
6163 #ifdef __cplusplus
6164 extern "C" int yywrap ( void );
6165 #else
6166 extern int yywrap ( void );
6167 #endif
6168 #endif
6169
6170 #ifndef YY_NO_UNPUT
6171     
6172 #endif
6173
6174 #ifndef yytext_ptr
6175 static void yy_flex_strncpy ( char *, const char *, int );
6176 #endif
6177
6178 #ifdef YY_NEED_STRLEN
6179 static int yy_flex_strlen ( const char * );
6180 #endif
6181
6182 #ifndef YY_NO_INPUT
6183 #ifdef __cplusplus
6184 static int yyinput ( void );
6185 #else
6186 static int input ( void );
6187 #endif
6188
6189 #endif
6190
6191         static int yy_start_stack_ptr = 0;
6192         static int yy_start_stack_depth = 0;
6193         static int *yy_start_stack = NULL;
6194     
6195     static void yy_push_state ( int _new_state );
6196     
6197     static void yy_pop_state ( void );
6198     
6199 /* Amount of stuff to slurp up with each read. */
6200 #ifndef YY_READ_BUF_SIZE
6201 #ifdef __ia64__
6202 /* On IA-64, the buffer size is 16k, not 8k */
6203 #define YY_READ_BUF_SIZE 16384
6204 #else
6205 #define YY_READ_BUF_SIZE 8192
6206 #endif /* __ia64__ */
6207 #endif
6208
6209 /* Copy whatever the last rule matched to the standard output. */
6210 #ifndef ECHO
6211 /* This used to be an fputs(), but since the string might contain NUL's,
6212  * we now use fwrite().
6213  */
6214 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
6215 #endif
6216
6217 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
6218  * is returned in "result".
6219  */
6220 #ifndef YY_INPUT
6221 #define YY_INPUT(buf,result,max_size) \
6222         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
6223                 { \
6224                 int c = '*'; \
6225                 int n; \
6226                 for ( n = 0; n < max_size && \
6227                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
6228                         buf[n] = (char) c; \
6229                 if ( c == '\n' ) \
6230                         buf[n++] = (char) c; \
6231                 if ( c == EOF && ferror( yyin ) ) \
6232                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
6233                 result = n; \
6234                 } \
6235         else \
6236                 { \
6237                 errno=0; \
6238                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
6239                         { \
6240                         if( errno != EINTR) \
6241                                 { \
6242                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
6243                                 break; \
6244                                 } \
6245                         errno=0; \
6246                         clearerr(yyin); \
6247                         } \
6248                 }\
6249 \
6250
6251 #endif
6252
6253 /* No semi-colon after return; correct usage is to write "yyterminate();" -
6254  * we don't want an extra ';' after the "return" because that will cause
6255  * some compilers to complain about unreachable statements.
6256  */
6257 #ifndef yyterminate
6258 #define yyterminate() return YY_NULL
6259 #endif
6260
6261 /* Number of entries by which start-condition stack grows. */
6262 #ifndef YY_START_STACK_INCR
6263 #define YY_START_STACK_INCR 25
6264 #endif
6265
6266 /* Report a fatal error. */
6267 #ifndef YY_FATAL_ERROR
6268 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
6269 #endif
6270
6271 /* end tables serialization structures and prototypes */
6272
6273 /* Default declaration of generated scanner - a define so the user can
6274  * easily add parameters.
6275  */
6276 #ifndef YY_DECL
6277 #define YY_DECL_IS_OURS 1
6278
6279 extern int yylex (void);
6280
6281 #define YY_DECL int yylex (void)
6282 #endif /* !YY_DECL */
6283
6284 /* Code executed at the beginning of each rule, after yytext and yyleng
6285  * have been set up.
6286  */
6287 #ifndef YY_USER_ACTION
6288 #define YY_USER_ACTION
6289 #endif
6290
6291 /* Code executed at the end of each rule. */
6292 #ifndef YY_BREAK
6293 #define YY_BREAK /*LINTED*/break;
6294 #endif
6295
6296 #define YY_RULE_SETUP \
6297         YY_USER_ACTION
6298
6299 /** The main scanner function which does all the work.
6300  */
6301 YY_DECL
6302 {
6303         yy_state_type yy_current_state;
6304         char *yy_cp, *yy_bp;
6305         int yy_act;
6306     
6307         if ( !(yy_init) )
6308                 {
6309                 (yy_init) = 1;
6310
6311 #ifdef YY_USER_INIT
6312                 YY_USER_INIT;
6313 #endif
6314
6315                 if ( ! (yy_start) )
6316                         (yy_start) = 1; /* first start state */
6317
6318                 if ( ! yyin )
6319                         yyin = stdin;
6320
6321                 if ( ! yyout )
6322                         yyout = stdout;
6323
6324                 if ( ! YY_CURRENT_BUFFER ) {
6325                         yyensure_buffer_stack ();
6326                         YY_CURRENT_BUFFER_LVALUE =
6327                                 yy_create_buffer( yyin, YY_BUF_SIZE );
6328                 }
6329
6330                 yy_load_buffer_state(  );
6331                 }
6332
6333         {
6334
6335  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
6336  SET(PROLOG);
6337  reset_surfxml_parse_err_msg();
6338  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
6339  assert(surfxml_bufferstack);
6340  #ifdef FLEX_DEBUG
6341  {
6342      int i;
6343      for (i = 0; i < blimit; i++) {
6344          surfxml_bufferstack[i] = '\377';
6345      }
6346  }
6347  #endif
6348  surfxml_bufferstack[0] = '\0';
6349  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6350  assert(indexstack);
6351  indexstack[0] = 0;
6352
6353   /* FleXML_init */
6354   bnext = inext = 1;
6355   surfxml_bufferliteral('\0', &bnext, "0.0");
6356   surfxml_bufferliteral('\0', &bnext, "2147483647");
6357   surfxml_bufferliteral('\0', &bnext, "N11");
6358   surfxml_bufferliteral('\0', &bnext, "1");
6359   surfxml_bufferliteral('\0', &bnext, "0.0");
6360   surfxml_bufferliteral('\0', &bnext, "1");
6361   surfxml_bufferliteral('\0', &bnext, "0s");
6362   surfxml_bufferliteral('\0', &bnext, "-1.0");
6363   surfxml_bufferliteral('\0', &bnext, "-1.0");
6364   surfxml_bufferliteral('\0', &bnext, "-1.0");
6365   surfxml_bufferliteral('\0', &bnext, "-1.0");
6366   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6367   surfxml_statenames[PROLOG] = NULL;
6368   surfxml_statenames[DOCTYPE] = NULL;
6369   surfxml_statenames[EPILOG] = NULL;
6370   surfxml_statenames[INCOMMENT] = NULL;
6371   surfxml_statenames[INPI] = NULL;
6372   surfxml_statenames[VALUE1] = NULL;
6373   surfxml_statenames[VALUE2] = NULL;
6374   surfxml_statenames[CDATA] = NULL;
6375   surfxml_statenames[AL_surfxml_AS] = NULL;
6376   surfxml_statenames[S_surfxml_AS] = "AS";
6377   surfxml_statenames[S_surfxml_AS_1] = "AS";
6378   surfxml_statenames[S_surfxml_AS_2] = "AS";
6379   surfxml_statenames[S_surfxml_AS_3] = "AS";
6380   surfxml_statenames[S_surfxml_AS_4] = "AS";
6381   surfxml_statenames[S_surfxml_AS_5] = "AS";
6382   surfxml_statenames[S_surfxml_AS_6] = "AS";
6383   surfxml_statenames[S_surfxml_AS_7] = "AS";
6384   surfxml_statenames[S_surfxml_AS_8] = "AS";
6385   surfxml_statenames[S_surfxml_AS_9] = "AS";
6386   surfxml_statenames[S_surfxml_AS_10] = "AS";
6387   surfxml_statenames[S_surfxml_AS_11] = "AS";
6388   surfxml_statenames[S_surfxml_AS_12] = "AS";
6389   surfxml_statenames[S_surfxml_AS_13] = "AS";
6390   surfxml_statenames[S_surfxml_AS_14] = "AS";
6391   surfxml_statenames[S_surfxml_AS_15] = "AS";
6392   surfxml_statenames[S_surfxml_AS_16] = "AS";
6393   surfxml_statenames[E_surfxml_AS] = "AS";
6394   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6395   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6396   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6397   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6398   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6399   surfxml_statenames[AL_surfxml_actor] = NULL;
6400   surfxml_statenames[S_surfxml_actor] = "actor";
6401   surfxml_statenames[S_surfxml_actor_1] = "actor";
6402   surfxml_statenames[S_surfxml_actor_2] = "actor";
6403   surfxml_statenames[E_surfxml_actor] = "actor";
6404   surfxml_statenames[AL_surfxml_argument] = NULL;
6405   surfxml_statenames[E_surfxml_argument] = "argument";
6406   surfxml_statenames[AL_surfxml_backbone] = NULL;
6407   surfxml_statenames[E_surfxml_backbone] = "backbone";
6408   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6409   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6410   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6411   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6412   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6413   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6414   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6415   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6416   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6417   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6418   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6419   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6420   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6421   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6422   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6423   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6424   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6425   surfxml_statenames[AL_surfxml_cluster] = NULL;
6426   surfxml_statenames[S_surfxml_cluster] = "cluster";
6427   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6428   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6429   surfxml_statenames[E_surfxml_cluster] = "cluster";
6430   surfxml_statenames[AL_surfxml_config] = NULL;
6431   surfxml_statenames[S_surfxml_config] = "config";
6432   surfxml_statenames[S_surfxml_config_1] = "config";
6433   surfxml_statenames[S_surfxml_config_2] = "config";
6434   surfxml_statenames[E_surfxml_config] = "config";
6435   surfxml_statenames[AL_surfxml_host] = NULL;
6436   surfxml_statenames[S_surfxml_host] = "host";
6437   surfxml_statenames[S_surfxml_host_1] = "host";
6438   surfxml_statenames[S_surfxml_host_2] = "host";
6439   surfxml_statenames[E_surfxml_host] = "host";
6440   surfxml_statenames[AL_surfxml_host___link] = NULL;
6441   surfxml_statenames[E_surfxml_host___link] = "host_link";
6442   surfxml_statenames[AL_surfxml_include] = NULL;
6443   surfxml_statenames[S_surfxml_include] = "include";
6444   surfxml_statenames[S_surfxml_include_1] = "include";
6445   surfxml_statenames[S_surfxml_include_2] = "include";
6446   surfxml_statenames[E_surfxml_include] = "include";
6447   surfxml_statenames[AL_surfxml_link] = NULL;
6448   surfxml_statenames[S_surfxml_link] = "link";
6449   surfxml_statenames[S_surfxml_link_1] = "link";
6450   surfxml_statenames[S_surfxml_link_2] = "link";
6451   surfxml_statenames[E_surfxml_link] = "link";
6452   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6453   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6454   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6455   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6456   surfxml_statenames[AL_surfxml_mount] = NULL;
6457   surfxml_statenames[E_surfxml_mount] = "mount";
6458   surfxml_statenames[AL_surfxml_peer] = NULL;
6459   surfxml_statenames[E_surfxml_peer] = "peer";
6460   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6461   surfxml_statenames[AL_surfxml_platform] = NULL;
6462   surfxml_statenames[S_surfxml_platform] = "platform";
6463   surfxml_statenames[S_surfxml_platform_1] = "platform";
6464   surfxml_statenames[S_surfxml_platform_2] = "platform";
6465   surfxml_statenames[S_surfxml_platform_3] = "platform";
6466   surfxml_statenames[S_surfxml_platform_4] = "platform";
6467   surfxml_statenames[S_surfxml_platform_5] = "platform";
6468   surfxml_statenames[S_surfxml_platform_6] = "platform";
6469   surfxml_statenames[S_surfxml_platform_7] = "platform";
6470   surfxml_statenames[S_surfxml_platform_8] = "platform";
6471   surfxml_statenames[E_surfxml_platform] = "platform";
6472   surfxml_statenames[AL_surfxml_process] = NULL;
6473   surfxml_statenames[S_surfxml_process] = "process";
6474   surfxml_statenames[S_surfxml_process_1] = "process";
6475   surfxml_statenames[S_surfxml_process_2] = "process";
6476   surfxml_statenames[E_surfxml_process] = "process";
6477   surfxml_statenames[AL_surfxml_prop] = NULL;
6478   surfxml_statenames[E_surfxml_prop] = "prop";
6479   surfxml_statenames[AL_surfxml_random] = NULL;
6480   surfxml_statenames[E_surfxml_random] = "random";
6481   surfxml_statenames[AL_surfxml_route] = NULL;
6482   surfxml_statenames[S_surfxml_route] = "route";
6483   surfxml_statenames[S_surfxml_route_1] = "route";
6484   surfxml_statenames[S_surfxml_route_2] = "route";
6485   surfxml_statenames[E_surfxml_route] = "route";
6486   surfxml_statenames[AL_surfxml_router] = NULL;
6487   surfxml_statenames[E_surfxml_router] = "router";
6488   surfxml_statenames[AL_surfxml_storage] = NULL;
6489   surfxml_statenames[S_surfxml_storage] = "storage";
6490   surfxml_statenames[S_surfxml_storage_1] = "storage";
6491   surfxml_statenames[S_surfxml_storage_2] = "storage";
6492   surfxml_statenames[E_surfxml_storage] = "storage";
6493   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6494   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6495   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6496   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6497   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6498   surfxml_statenames[AL_surfxml_trace] = NULL;
6499   surfxml_statenames[IN_trace] = "trace";
6500   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6501   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6502   surfxml_statenames[AL_surfxml_zone] = NULL;
6503   surfxml_statenames[S_surfxml_zone] = "zone";
6504   surfxml_statenames[S_surfxml_zone_1] = "zone";
6505   surfxml_statenames[S_surfxml_zone_2] = "zone";
6506   surfxml_statenames[S_surfxml_zone_3] = "zone";
6507   surfxml_statenames[S_surfxml_zone_4] = "zone";
6508   surfxml_statenames[S_surfxml_zone_5] = "zone";
6509   surfxml_statenames[S_surfxml_zone_6] = "zone";
6510   surfxml_statenames[S_surfxml_zone_7] = "zone";
6511   surfxml_statenames[S_surfxml_zone_8] = "zone";
6512   surfxml_statenames[S_surfxml_zone_9] = "zone";
6513   surfxml_statenames[S_surfxml_zone_10] = "zone";
6514   surfxml_statenames[S_surfxml_zone_11] = "zone";
6515   surfxml_statenames[S_surfxml_zone_12] = "zone";
6516   surfxml_statenames[S_surfxml_zone_13] = "zone";
6517   surfxml_statenames[S_surfxml_zone_14] = "zone";
6518   surfxml_statenames[S_surfxml_zone_15] = "zone";
6519   surfxml_statenames[S_surfxml_zone_16] = "zone";
6520   surfxml_statenames[E_surfxml_zone] = "zone";
6521   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6522   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6523   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6524   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6525   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6526   }
6527
6528  /* COMMENTS and PIs: handled uniformly for efficiency. */
6529
6530         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6531                 {
6532                 yy_cp = (yy_c_buf_p);
6533
6534                 /* Support of yytext. */
6535                 *yy_cp = (yy_hold_char);
6536
6537                 /* yy_bp points to the position in yy_ch_buf of the start of
6538                  * the current run.
6539                  */
6540                 yy_bp = yy_cp;
6541
6542                 yy_current_state = (yy_start);
6543 yy_match:
6544                 do
6545                         {
6546                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6547                         if ( yy_accept[yy_current_state] )
6548                                 {
6549                                 (yy_last_accepting_state) = yy_current_state;
6550                                 (yy_last_accepting_cpos) = yy_cp;
6551                                 }
6552                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6553                                 {
6554                                 yy_current_state = (int) yy_def[yy_current_state];
6555                                 if ( yy_current_state >= 4088 )
6556                                         yy_c = yy_meta[yy_c];
6557                                 }
6558                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6559                         ++yy_cp;
6560                         }
6561                 while ( yy_base[yy_current_state] != 14062 );
6562
6563 yy_find_action:
6564                 yy_act = yy_accept[yy_current_state];
6565                 if ( yy_act == 0 )
6566                         { /* have to back up */
6567                         yy_cp = (yy_last_accepting_cpos);
6568                         yy_current_state = (yy_last_accepting_state);
6569                         yy_act = yy_accept[yy_current_state];
6570                         }
6571
6572                 YY_DO_BEFORE_ACTION;
6573
6574                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6575                         {
6576                         int yyl;
6577                         for ( yyl = 0; yyl < yyleng; ++yyl )
6578                                 if ( yytext[yyl] == '\n' )
6579                                         
6580     yylineno++;
6581 ;
6582                         }
6583
6584 do_action:      /* This label is used only to access EOF actions. */
6585
6586                 switch ( yy_act )
6587         { /* beginning of action switch */
6588                         case 0: /* must back up */
6589                         /* undo the effects of YY_DO_BEFORE_ACTION */
6590                         *yy_cp = (yy_hold_char);
6591                         yy_cp = (yy_last_accepting_cpos);
6592                         yy_current_state = (yy_last_accepting_state);
6593                         goto yy_find_action;
6594
6595 case 1:
6596 YY_RULE_SETUP
6597 ENTER(INCOMMENT);
6598         YY_BREAK
6599 case 2:
6600 YY_RULE_SETUP
6601 ENTER(INPI);
6602         YY_BREAK
6603
6604 case 3:
6605 YY_RULE_SETUP
6606 LEAVE;
6607         YY_BREAK
6608 case 4:
6609 case 5:
6610 case 6:
6611 /* rule 6 can match eol */
6612 YY_RULE_SETUP
6613 SKIP;
6614         YY_BREAK
6615 case YY_STATE_EOF(INCOMMENT):
6616 FAIL("EOF in comment.");
6617         YY_BREAK
6618
6619 case 7:
6620 YY_RULE_SETUP
6621 LEAVE;
6622         YY_BREAK
6623 case 8:
6624 case 9:
6625 /* rule 9 can match eol */
6626 YY_RULE_SETUP
6627 SKIP;
6628         YY_BREAK
6629 case YY_STATE_EOF(INPI):
6630 FAIL("EOF in PI (processing instruction).");
6631         YY_BREAK
6632
6633 /* SPACES: skipped uniformly */
6634 case 10:
6635 /* rule 10 can match eol */
6636 YY_RULE_SETUP
6637 SKIP;
6638         YY_BREAK
6639 /* PROLOG: determine root element and process it. */
6640
6641 case 11:
6642 /* rule 11 can match eol */
6643 YY_RULE_SETUP
6644 SET(DOCTYPE); 
6645         YY_BREAK
6646 case 12:
6647 /* rule 12 can match eol */
6648 YY_RULE_SETUP
6649 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6650         YY_BREAK
6651
6652 case 13:
6653 /* rule 13 can match eol */
6654 YY_RULE_SETUP
6655 SET(ROOT_surfxml_platform);
6656         YY_BREAK
6657 case 14:
6658 /* rule 14 can match eol */
6659 YY_RULE_SETUP
6660 SET(ROOT_surfxml_platform);
6661         YY_BREAK
6662 case 15:
6663 /* rule 15 can match eol */
6664 YY_RULE_SETUP
6665 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6666         YY_BREAK
6667 case 16:
6668 YY_RULE_SETUP
6669 FAIL("Unexpected character `%c' in prolog.", yytext[0]);
6670         YY_BREAK
6671 case YY_STATE_EOF(PROLOG):
6672 case YY_STATE_EOF(DOCTYPE):
6673 FAIL("EOF in prolog.");
6674         YY_BREAK
6675
6676 /* RULES DERIVED FROM DTD. */
6677 /* <!-- A zone is either an internal node that contains other zones, 
6678   *      or a  leaf containing hosts and other leaf-like elements -->
6679   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
6680   *         (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
6681   *         (trace|trace_connect)*)
6682   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
6683   *          (route|trace|trace_connect|bypassRoute)*)))>  */
6684 case 17:
6685 /* rule 17 can match eol */
6686 YY_RULE_SETUP
6687 FAIL("Starting tag <AS> is not allowed here.");
6688         YY_BREAK
6689 case 18:
6690 /* rule 18 can match eol */
6691 YY_RULE_SETUP
6692 {
6693   AX_surfxml_AS_id = 0;
6694   surfxml_AS_id_isset = 0;
6695   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6696   surfxml_AS_routing_isset = 0;
6697   ENTER(AL_surfxml_AS); pushbuffer(0);
6698   }
6699         YY_BREAK
6700
6701 case 19:
6702 /* rule 19 can match eol */
6703 YY_RULE_SETUP
6704 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
6705         YY_BREAK
6706 case 20:
6707 /* rule 20 can match eol */
6708 YY_RULE_SETUP
6709 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
6710         YY_BREAK
6711 case 21:
6712 /* rule 21 can match eol */
6713 case 22:
6714 /* rule 22 can match eol */
6715 YY_RULE_SETUP
6716 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6717         YY_BREAK
6718 case 23:
6719 /* rule 23 can match eol */
6720 case 24:
6721 /* rule 24 can match eol */
6722 YY_RULE_SETUP
6723 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6724         YY_BREAK
6725 case 25:
6726 /* rule 25 can match eol */
6727 case 26:
6728 /* rule 26 can match eol */
6729 YY_RULE_SETUP
6730 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6731         YY_BREAK
6732 case 27:
6733 /* rule 27 can match eol */
6734 case 28:
6735 /* rule 28 can match eol */
6736 YY_RULE_SETUP
6737 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6738         YY_BREAK
6739 case 29:
6740 /* rule 29 can match eol */
6741 case 30:
6742 /* rule 30 can match eol */
6743 YY_RULE_SETUP
6744 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6745         YY_BREAK
6746 case 31:
6747 /* rule 31 can match eol */
6748 case 32:
6749 /* rule 32 can match eol */
6750 YY_RULE_SETUP
6751 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6752         YY_BREAK
6753 case 33:
6754 /* rule 33 can match eol */
6755 case 34:
6756 /* rule 34 can match eol */
6757 YY_RULE_SETUP
6758 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6759         YY_BREAK
6760 case 35:
6761 /* rule 35 can match eol */
6762 case 36:
6763 /* rule 36 can match eol */
6764 YY_RULE_SETUP
6765 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6766         YY_BREAK
6767 case 37:
6768 /* rule 37 can match eol */
6769 case 38:
6770 /* rule 38 can match eol */
6771 YY_RULE_SETUP
6772 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6773         YY_BREAK
6774 case 39:
6775 /* rule 39 can match eol */
6776 case 40:
6777 /* rule 40 can match eol */
6778 YY_RULE_SETUP
6779 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6780         YY_BREAK
6781 case 41:
6782 YY_RULE_SETUP
6783 {
6784   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6785   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6786   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6787  }
6788         YY_BREAK
6789 case 42:
6790 YY_RULE_SETUP
6791 {
6792   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6793   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6794   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6795   switch (YY_START) {
6796    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6797    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6798    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6799    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6800   }
6801  }
6802         YY_BREAK
6803 case 43:
6804 YY_RULE_SETUP
6805 FAIL("Unexpected character `%c' in attribute list of AS element.", yytext[0]);
6806         YY_BREAK
6807 case 44:
6808 YY_RULE_SETUP
6809 FAIL("Bad attribute `%s' in `AS' element start tag.",yytext);
6810         YY_BREAK
6811 case YY_STATE_EOF(AL_surfxml_AS):
6812 FAIL("EOF in attribute list of `AS' element.");
6813         YY_BREAK
6814
6815 case 45:
6816 /* rule 45 can match eol */
6817 YY_RULE_SETUP
6818 {
6819   LEAVE;
6820   ETag_surfxml_AS();
6821   popbuffer(); /* attribute */
6822   switch (YY_START) {
6823    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6824    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6825    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6826    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6827   }
6828  }
6829         YY_BREAK
6830 case 46:
6831 /* rule 46 can match eol */
6832 YY_RULE_SETUP
6833 FAIL("Unexpected end-tag `%s': `</AS>' expected.",yytext);
6834         YY_BREAK
6835 case 47:
6836 YY_RULE_SETUP
6837 FAIL("Unexpected character `%c': `</AS>' expected.",yytext[0]);
6838         YY_BREAK
6839 case YY_STATE_EOF(E_surfxml_AS):
6840 case YY_STATE_EOF(S_surfxml_AS):
6841 case YY_STATE_EOF(S_surfxml_AS_1):
6842 case YY_STATE_EOF(S_surfxml_AS_11):
6843 case YY_STATE_EOF(S_surfxml_AS_12):
6844 case YY_STATE_EOF(S_surfxml_AS_14):
6845 case YY_STATE_EOF(S_surfxml_AS_16):
6846 case YY_STATE_EOF(S_surfxml_AS_3):
6847 case YY_STATE_EOF(S_surfxml_AS_4):
6848 case YY_STATE_EOF(S_surfxml_AS_6):
6849 case YY_STATE_EOF(S_surfxml_AS_7):
6850 case YY_STATE_EOF(S_surfxml_AS_9):
6851 FAIL("Premature EOF: `</AS>' expected.");
6852         YY_BREAK
6853
6854 case 48:
6855 /* rule 48 can match eol */
6856 YY_RULE_SETUP
6857 FAIL("Starting tag <ASroute> is not allowed here.");
6858         YY_BREAK
6859 case 49:
6860 /* rule 49 can match eol */
6861 YY_RULE_SETUP
6862 {
6863   AX_surfxml_ASroute_dst = 0;
6864   surfxml_ASroute_dst_isset = 0;
6865   AX_surfxml_ASroute_gw___dst = 0;
6866   surfxml_ASroute_gw___dst_isset = 0;
6867   AX_surfxml_ASroute_gw___src = 0;
6868   surfxml_ASroute_gw___src_isset = 0;
6869   AX_surfxml_ASroute_src = 0;
6870   surfxml_ASroute_src_isset = 0;
6871   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6872   surfxml_ASroute_symmetrical_isset = 0;
6873   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6874   }
6875         YY_BREAK
6876
6877 case 50:
6878 /* rule 50 can match eol */
6879 YY_RULE_SETUP
6880 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
6881         YY_BREAK
6882 case 51:
6883 /* rule 51 can match eol */
6884 YY_RULE_SETUP
6885 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
6886         YY_BREAK
6887 case 52:
6888 /* rule 52 can match eol */
6889 YY_RULE_SETUP
6890 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
6891         YY_BREAK
6892 case 53:
6893 /* rule 53 can match eol */
6894 YY_RULE_SETUP
6895 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
6896         YY_BREAK
6897 case 54:
6898 /* rule 54 can match eol */
6899 YY_RULE_SETUP
6900 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
6901         YY_BREAK
6902 case 55:
6903 /* rule 55 can match eol */
6904 YY_RULE_SETUP
6905 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
6906         YY_BREAK
6907 case 56:
6908 /* rule 56 can match eol */
6909 YY_RULE_SETUP
6910 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
6911         YY_BREAK
6912 case 57:
6913 /* rule 57 can match eol */
6914 YY_RULE_SETUP
6915 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
6916         YY_BREAK
6917 case 58:
6918 /* rule 58 can match eol */
6919 case 59:
6920 /* rule 59 can match eol */
6921 YY_RULE_SETUP
6922 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6923         YY_BREAK
6924 case 60:
6925 /* rule 60 can match eol */
6926 case 61:
6927 /* rule 61 can match eol */
6928 YY_RULE_SETUP
6929 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6930         YY_BREAK
6931 case 62:
6932 /* rule 62 can match eol */
6933 case 63:
6934 /* rule 63 can match eol */
6935 YY_RULE_SETUP
6936 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_yes;
6937         YY_BREAK
6938 case 64:
6939 /* rule 64 can match eol */
6940 case 65:
6941 /* rule 65 can match eol */
6942 YY_RULE_SETUP
6943 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_no;
6944         YY_BREAK
6945 case 66:
6946 YY_RULE_SETUP
6947 {
6948   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6949   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6950   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6951   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6952   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6953  }
6954         YY_BREAK
6955 case 67:
6956 YY_RULE_SETUP
6957 {
6958   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6959   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6960   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6961   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6962   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6963   switch (YY_START) {
6964    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6965    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6966   }
6967  }
6968         YY_BREAK
6969 case 68:
6970 YY_RULE_SETUP
6971 FAIL("Unexpected character `%c' in attribute list of ASroute element.", yytext[0]);
6972         YY_BREAK
6973 case 69:
6974 YY_RULE_SETUP
6975 FAIL("Bad attribute `%s' in `ASroute' element start tag.",yytext);
6976         YY_BREAK
6977 case YY_STATE_EOF(AL_surfxml_ASroute):
6978 FAIL("EOF in attribute list of `ASroute' element.");
6979         YY_BREAK
6980
6981 case 70:
6982 /* rule 70 can match eol */
6983 YY_RULE_SETUP
6984 {
6985   LEAVE;
6986   ETag_surfxml_ASroute();
6987   popbuffer(); /* attribute */
6988   switch (YY_START) {
6989    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6990    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6991   }
6992  }
6993         YY_BREAK
6994 case 71:
6995 /* rule 71 can match eol */
6996 YY_RULE_SETUP
6997 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",yytext);
6998         YY_BREAK
6999 case 72:
7000 YY_RULE_SETUP
7001 FAIL("Unexpected character `%c': `</ASroute>' expected.",yytext[0]);
7002         YY_BREAK
7003 case YY_STATE_EOF(E_surfxml_ASroute):
7004 case YY_STATE_EOF(S_surfxml_ASroute):
7005 case YY_STATE_EOF(S_surfxml_ASroute_2):
7006 FAIL("Premature EOF: `</ASroute>' expected.");
7007         YY_BREAK
7008
7009 case 73:
7010 /* rule 73 can match eol */
7011 YY_RULE_SETUP
7012 FAIL("Starting tag <actor> is not allowed here.");
7013         YY_BREAK
7014 case 74:
7015 /* rule 74 can match eol */
7016 YY_RULE_SETUP
7017 {
7018   AX_surfxml_actor_function = 0;
7019   surfxml_actor_function_isset = 0;
7020   AX_surfxml_actor_host = 0;
7021   surfxml_actor_host_isset = 0;
7022   AX_surfxml_actor_kill___time = 46;
7023   surfxml_actor_kill___time_isset = 0;
7024   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7025   surfxml_actor_on___failure_isset = 0;
7026   AX_surfxml_actor_start___time = 41;
7027   surfxml_actor_start___time_isset = 0;
7028   ENTER(AL_surfxml_actor); pushbuffer(0);
7029   }
7030         YY_BREAK
7031
7032 case 75:
7033 /* rule 75 can match eol */
7034 YY_RULE_SETUP
7035 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");} surfxml_actor_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_function);
7036         YY_BREAK
7037 case 76:
7038 /* rule 76 can match eol */
7039 YY_RULE_SETUP
7040 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");}  surfxml_actor_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_function);
7041         YY_BREAK
7042 case 77:
7043 /* rule 77 can match eol */
7044 YY_RULE_SETUP
7045 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");} surfxml_actor_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_host);
7046         YY_BREAK
7047 case 78:
7048 /* rule 78 can match eol */
7049 YY_RULE_SETUP
7050 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");}  surfxml_actor_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_host);
7051         YY_BREAK
7052 case 79:
7053 /* rule 79 can match eol */
7054 YY_RULE_SETUP
7055 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");} surfxml_actor_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_kill___time);
7056         YY_BREAK
7057 case 80:
7058 /* rule 80 can match eol */
7059 YY_RULE_SETUP
7060 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");}  surfxml_actor_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_kill___time);
7061         YY_BREAK
7062 case 81:
7063 /* rule 81 can match eol */
7064 case 82:
7065 /* rule 82 can match eol */
7066 YY_RULE_SETUP
7067 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7068         YY_BREAK
7069 case 83:
7070 /* rule 83 can match eol */
7071 case 84:
7072 /* rule 84 can match eol */
7073 YY_RULE_SETUP
7074 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
7075         YY_BREAK
7076 case 85:
7077 /* rule 85 can match eol */
7078 YY_RULE_SETUP
7079 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");} surfxml_actor_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_start___time);
7080         YY_BREAK
7081 case 86:
7082 /* rule 86 can match eol */
7083 YY_RULE_SETUP
7084 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");}  surfxml_actor_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_start___time);
7085         YY_BREAK
7086 case 87:
7087 YY_RULE_SETUP
7088 {
7089   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7090   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7091   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
7092  }
7093         YY_BREAK
7094 case 88:
7095 YY_RULE_SETUP
7096 {
7097   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7098   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7099   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
7100   switch (YY_START) {
7101    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
7102   }
7103  }
7104         YY_BREAK
7105 case 89:
7106 YY_RULE_SETUP
7107 FAIL("Unexpected character `%c' in attribute list of actor element.", yytext[0]);
7108         YY_BREAK
7109 case 90:
7110 YY_RULE_SETUP
7111 FAIL("Bad attribute `%s' in `actor' element start tag.",yytext);
7112         YY_BREAK
7113 case YY_STATE_EOF(AL_surfxml_actor):
7114 FAIL("EOF in attribute list of `actor' element.");
7115         YY_BREAK
7116
7117 case 91:
7118 /* rule 91 can match eol */
7119 YY_RULE_SETUP
7120 {
7121   LEAVE;
7122   ETag_surfxml_actor();
7123   popbuffer(); /* attribute */
7124   switch (YY_START) {
7125    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
7126   }
7127  }
7128         YY_BREAK
7129 case 92:
7130 /* rule 92 can match eol */
7131 YY_RULE_SETUP
7132 FAIL("Unexpected end-tag `%s': `</actor>' expected.",yytext);
7133         YY_BREAK
7134 case 93:
7135 YY_RULE_SETUP
7136 FAIL("Unexpected character `%c': `</actor>' expected.",yytext[0]);
7137         YY_BREAK
7138 case YY_STATE_EOF(E_surfxml_actor):
7139 case YY_STATE_EOF(S_surfxml_actor):
7140 case YY_STATE_EOF(S_surfxml_actor_2):
7141 FAIL("Premature EOF: `</actor>' expected.");
7142         YY_BREAK
7143
7144 case 94:
7145 /* rule 94 can match eol */
7146 YY_RULE_SETUP
7147 FAIL("Starting tag <argument> is not allowed here.");
7148         YY_BREAK
7149 case 95:
7150 /* rule 95 can match eol */
7151 YY_RULE_SETUP
7152 {
7153   AX_surfxml_argument_value = 0;
7154   surfxml_argument_value_isset = 0;
7155   ENTER(AL_surfxml_argument); pushbuffer(0);
7156   }
7157         YY_BREAK
7158
7159 case 96:
7160 /* rule 96 can match eol */
7161 YY_RULE_SETUP
7162 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
7163         YY_BREAK
7164 case 97:
7165 /* rule 97 can match eol */
7166 YY_RULE_SETUP
7167 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
7168         YY_BREAK
7169 case 98:
7170 YY_RULE_SETUP
7171 {
7172   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7173   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7174  }
7175         YY_BREAK
7176 case 99:
7177 YY_RULE_SETUP
7178 {
7179   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7180   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7181   switch (YY_START) {
7182    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7183    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7184   }
7185  }
7186         YY_BREAK
7187 case 100:
7188 YY_RULE_SETUP
7189 FAIL("Unexpected character `%c' in attribute list of argument element.", yytext[0]);
7190         YY_BREAK
7191 case 101:
7192 YY_RULE_SETUP
7193 FAIL("Bad attribute `%s' in `argument' element start tag.",yytext);
7194         YY_BREAK
7195 case YY_STATE_EOF(AL_surfxml_argument):
7196 FAIL("EOF in attribute list of `argument' element.");
7197         YY_BREAK
7198
7199 case 102:
7200 /* rule 102 can match eol */
7201 YY_RULE_SETUP
7202 {
7203   LEAVE;
7204   ETag_surfxml_argument();
7205   popbuffer(); /* attribute */
7206   switch (YY_START) {
7207    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7208    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7209   }
7210  }
7211         YY_BREAK
7212 case 103:
7213 /* rule 103 can match eol */
7214 YY_RULE_SETUP
7215 FAIL("Unexpected end-tag `%s': `</argument>' expected.",yytext);
7216         YY_BREAK
7217 case 104:
7218 YY_RULE_SETUP
7219 FAIL("Unexpected character `%c': `</argument>' expected.",yytext[0]);
7220         YY_BREAK
7221 case YY_STATE_EOF(E_surfxml_argument):
7222 FAIL("Premature EOF: `</argument>' expected.");
7223         YY_BREAK
7224
7225 case 105:
7226 /* rule 105 can match eol */
7227 YY_RULE_SETUP
7228 FAIL("Starting tag <backbone> is not allowed here.");
7229         YY_BREAK
7230 case 106:
7231 /* rule 106 can match eol */
7232 YY_RULE_SETUP
7233 {
7234   AX_surfxml_backbone_bandwidth = 0;
7235   surfxml_backbone_bandwidth_isset = 0;
7236   AX_surfxml_backbone_id = 0;
7237   surfxml_backbone_id_isset = 0;
7238   AX_surfxml_backbone_latency = 0;
7239   surfxml_backbone_latency_isset = 0;
7240   ENTER(AL_surfxml_backbone); pushbuffer(0);
7241   }
7242         YY_BREAK
7243
7244 case 107:
7245 /* rule 107 can match eol */
7246 YY_RULE_SETUP
7247 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7248         YY_BREAK
7249 case 108:
7250 /* rule 108 can match eol */
7251 YY_RULE_SETUP
7252 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7253         YY_BREAK
7254 case 109:
7255 /* rule 109 can match eol */
7256 YY_RULE_SETUP
7257 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7258         YY_BREAK
7259 case 110:
7260 /* rule 110 can match eol */
7261 YY_RULE_SETUP
7262 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7263         YY_BREAK
7264 case 111:
7265 /* rule 111 can match eol */
7266 YY_RULE_SETUP
7267 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7268         YY_BREAK
7269 case 112:
7270 /* rule 112 can match eol */
7271 YY_RULE_SETUP
7272 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7273         YY_BREAK
7274 case 113:
7275 YY_RULE_SETUP
7276 {
7277   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7278   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7279   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7280   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7281  }
7282         YY_BREAK
7283 case 114:
7284 YY_RULE_SETUP
7285 {
7286   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7287   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7288   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7289   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7290   switch (YY_START) {
7291    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7292    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7293    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
7294    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7295   }
7296  }
7297         YY_BREAK
7298 case 115:
7299 YY_RULE_SETUP
7300 FAIL("Unexpected character `%c' in attribute list of backbone element.", yytext[0]);
7301         YY_BREAK
7302 case 116:
7303 YY_RULE_SETUP
7304 FAIL("Bad attribute `%s' in `backbone' element start tag.",yytext);
7305         YY_BREAK
7306 case YY_STATE_EOF(AL_surfxml_backbone):
7307 FAIL("EOF in attribute list of `backbone' element.");
7308         YY_BREAK
7309
7310 case 117:
7311 /* rule 117 can match eol */
7312 YY_RULE_SETUP
7313 {
7314   LEAVE;
7315   ETag_surfxml_backbone();
7316   popbuffer(); /* attribute */
7317   switch (YY_START) {
7318    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7319    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7320    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
7321    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7322   }
7323  }
7324         YY_BREAK
7325 case 118:
7326 /* rule 118 can match eol */
7327 YY_RULE_SETUP
7328 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",yytext);
7329         YY_BREAK
7330 case 119:
7331 YY_RULE_SETUP
7332 FAIL("Unexpected character `%c': `</backbone>' expected.",yytext[0]);
7333         YY_BREAK
7334 case YY_STATE_EOF(E_surfxml_backbone):
7335 FAIL("Premature EOF: `</backbone>' expected.");
7336         YY_BREAK
7337
7338 case 120:
7339 /* rule 120 can match eol */
7340 YY_RULE_SETUP
7341 FAIL("Starting tag <bypassASroute> is not allowed here.");
7342         YY_BREAK
7343 case 121:
7344 /* rule 121 can match eol */
7345 YY_RULE_SETUP
7346 {
7347   AX_surfxml_bypassASroute_dst = 0;
7348   surfxml_bypassASroute_dst_isset = 0;
7349   AX_surfxml_bypassASroute_gw___dst = 0;
7350   surfxml_bypassASroute_gw___dst_isset = 0;
7351   AX_surfxml_bypassASroute_gw___src = 0;
7352   surfxml_bypassASroute_gw___src_isset = 0;
7353   AX_surfxml_bypassASroute_src = 0;
7354   surfxml_bypassASroute_src_isset = 0;
7355   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7356   }
7357         YY_BREAK
7358
7359 case 122:
7360 /* rule 122 can match eol */
7361 YY_RULE_SETUP
7362 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
7363         YY_BREAK
7364 case 123:
7365 /* rule 123 can match eol */
7366 YY_RULE_SETUP
7367 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
7368         YY_BREAK
7369 case 124:
7370 /* rule 124 can match eol */
7371 YY_RULE_SETUP
7372 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
7373         YY_BREAK
7374 case 125:
7375 /* rule 125 can match eol */
7376 YY_RULE_SETUP
7377 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
7378         YY_BREAK
7379 case 126:
7380 /* rule 126 can match eol */
7381 YY_RULE_SETUP
7382 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
7383         YY_BREAK
7384 case 127:
7385 /* rule 127 can match eol */
7386 YY_RULE_SETUP
7387 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
7388         YY_BREAK
7389 case 128:
7390 /* rule 128 can match eol */
7391 YY_RULE_SETUP
7392 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
7393         YY_BREAK
7394 case 129:
7395 /* rule 129 can match eol */
7396 YY_RULE_SETUP
7397 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
7398         YY_BREAK
7399 case 130:
7400 YY_RULE_SETUP
7401 {
7402   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7403   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7404   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7405   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7406   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7407  }
7408         YY_BREAK
7409 case 131:
7410 YY_RULE_SETUP
7411 {
7412   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7413   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7414   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7415   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7416   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7417   switch (YY_START) {
7418    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7419    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7420   }
7421  }
7422         YY_BREAK
7423 case 132:
7424 YY_RULE_SETUP
7425 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", yytext[0]);
7426         YY_BREAK
7427 case 133:
7428 YY_RULE_SETUP
7429 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",yytext);
7430         YY_BREAK
7431 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7432 FAIL("EOF in attribute list of `bypassASroute' element.");
7433         YY_BREAK
7434
7435 case 134:
7436 /* rule 134 can match eol */
7437 YY_RULE_SETUP
7438 {
7439   LEAVE;
7440   ETag_surfxml_bypassASroute();
7441   popbuffer(); /* attribute */
7442   switch (YY_START) {
7443    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7444    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7445   }
7446  }
7447         YY_BREAK
7448 case 135:
7449 /* rule 135 can match eol */
7450 YY_RULE_SETUP
7451 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",yytext);
7452         YY_BREAK
7453 case 136:
7454 YY_RULE_SETUP
7455 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",yytext[0]);
7456         YY_BREAK
7457 case YY_STATE_EOF(E_surfxml_bypassASroute):
7458 case YY_STATE_EOF(S_surfxml_bypassASroute):
7459 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7460 FAIL("Premature EOF: `</bypassASroute>' expected.");
7461         YY_BREAK
7462
7463 case 137:
7464 /* rule 137 can match eol */
7465 YY_RULE_SETUP
7466 FAIL("Starting tag <bypassRoute> is not allowed here.");
7467         YY_BREAK
7468 case 138:
7469 /* rule 138 can match eol */
7470 YY_RULE_SETUP
7471 {
7472   AX_surfxml_bypassRoute_dst = 0;
7473   surfxml_bypassRoute_dst_isset = 0;
7474   AX_surfxml_bypassRoute_src = 0;
7475   surfxml_bypassRoute_src_isset = 0;
7476   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7477   }
7478         YY_BREAK
7479
7480 case 139:
7481 /* rule 139 can match eol */
7482 YY_RULE_SETUP
7483 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7484         YY_BREAK
7485 case 140:
7486 /* rule 140 can match eol */
7487 YY_RULE_SETUP
7488 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7489         YY_BREAK
7490 case 141:
7491 /* rule 141 can match eol */
7492 YY_RULE_SETUP
7493 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7494         YY_BREAK
7495 case 142:
7496 /* rule 142 can match eol */
7497 YY_RULE_SETUP
7498 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7499         YY_BREAK
7500 case 143:
7501 YY_RULE_SETUP
7502 {
7503   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7504   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7505   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7506  }
7507         YY_BREAK
7508 case 144:
7509 YY_RULE_SETUP
7510 {
7511   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7512   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7513   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7514   switch (YY_START) {
7515    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
7516    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7517   }
7518  }
7519         YY_BREAK
7520 case 145:
7521 YY_RULE_SETUP
7522 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", yytext[0]);
7523         YY_BREAK
7524 case 146:
7525 YY_RULE_SETUP
7526 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",yytext);
7527         YY_BREAK
7528 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7529 FAIL("EOF in attribute list of `bypassRoute' element.");
7530         YY_BREAK
7531
7532 case 147:
7533 /* rule 147 can match eol */
7534 YY_RULE_SETUP
7535 {
7536   LEAVE;
7537   ETag_surfxml_bypassRoute();
7538   popbuffer(); /* attribute */
7539   switch (YY_START) {
7540    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
7541    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7542   }
7543  }
7544         YY_BREAK
7545 case 148:
7546 /* rule 148 can match eol */
7547 YY_RULE_SETUP
7548 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",yytext);
7549         YY_BREAK
7550 case 149:
7551 YY_RULE_SETUP
7552 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",yytext[0]);
7553         YY_BREAK
7554 case YY_STATE_EOF(E_surfxml_bypassRoute):
7555 case YY_STATE_EOF(S_surfxml_bypassRoute):
7556 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7557 FAIL("Premature EOF: `</bypassRoute>' expected.");
7558         YY_BREAK
7559
7560 case 150:
7561 /* rule 150 can match eol */
7562 YY_RULE_SETUP
7563 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7564         YY_BREAK
7565 case 151:
7566 /* rule 151 can match eol */
7567 YY_RULE_SETUP
7568 {
7569   AX_surfxml_bypassZoneRoute_dst = 0;
7570   surfxml_bypassZoneRoute_dst_isset = 0;
7571   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7572   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7573   AX_surfxml_bypassZoneRoute_gw___src = 0;
7574   surfxml_bypassZoneRoute_gw___src_isset = 0;
7575   AX_surfxml_bypassZoneRoute_src = 0;
7576   surfxml_bypassZoneRoute_src_isset = 0;
7577   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7578   }
7579         YY_BREAK
7580
7581 case 152:
7582 /* rule 152 can match eol */
7583 YY_RULE_SETUP
7584 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7585         YY_BREAK
7586 case 153:
7587 /* rule 153 can match eol */
7588 YY_RULE_SETUP
7589 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7590         YY_BREAK
7591 case 154:
7592 /* rule 154 can match eol */
7593 YY_RULE_SETUP
7594 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7595         YY_BREAK
7596 case 155:
7597 /* rule 155 can match eol */
7598 YY_RULE_SETUP
7599 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7600         YY_BREAK
7601 case 156:
7602 /* rule 156 can match eol */
7603 YY_RULE_SETUP
7604 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7605         YY_BREAK
7606 case 157:
7607 /* rule 157 can match eol */
7608 YY_RULE_SETUP
7609 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7610         YY_BREAK
7611 case 158:
7612 /* rule 158 can match eol */
7613 YY_RULE_SETUP
7614 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7615         YY_BREAK
7616 case 159:
7617 /* rule 159 can match eol */
7618 YY_RULE_SETUP
7619 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7620         YY_BREAK
7621 case 160:
7622 YY_RULE_SETUP
7623 {
7624   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7625   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7626   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7627   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7628   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7629  }
7630         YY_BREAK
7631 case 161:
7632 YY_RULE_SETUP
7633 {
7634   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7635   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7636   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7637   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7638   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7639   switch (YY_START) {
7640    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7641    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7642   }
7643  }
7644         YY_BREAK
7645 case 162:
7646 YY_RULE_SETUP
7647 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", yytext[0]);
7648         YY_BREAK
7649 case 163:
7650 YY_RULE_SETUP
7651 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",yytext);
7652         YY_BREAK
7653 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7654 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7655         YY_BREAK
7656
7657 case 164:
7658 /* rule 164 can match eol */
7659 YY_RULE_SETUP
7660 {
7661   LEAVE;
7662   ETag_surfxml_bypassZoneRoute();
7663   popbuffer(); /* attribute */
7664   switch (YY_START) {
7665    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7666    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7667   }
7668  }
7669         YY_BREAK
7670 case 165:
7671 /* rule 165 can match eol */
7672 YY_RULE_SETUP
7673 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",yytext);
7674         YY_BREAK
7675 case 166:
7676 YY_RULE_SETUP
7677 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",yytext[0]);
7678         YY_BREAK
7679 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7680 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7681 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7682 FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7683         YY_BREAK
7684
7685 case 167:
7686 /* rule 167 can match eol */
7687 YY_RULE_SETUP
7688 FAIL("Starting tag <cabinet> is not allowed here.");
7689         YY_BREAK
7690 case 168:
7691 /* rule 168 can match eol */
7692 YY_RULE_SETUP
7693 {
7694   AX_surfxml_cabinet_bw = 0;
7695   surfxml_cabinet_bw_isset = 0;
7696   AX_surfxml_cabinet_id = 0;
7697   surfxml_cabinet_id_isset = 0;
7698   AX_surfxml_cabinet_lat = 0;
7699   surfxml_cabinet_lat_isset = 0;
7700   AX_surfxml_cabinet_prefix = 0;
7701   surfxml_cabinet_prefix_isset = 0;
7702   AX_surfxml_cabinet_radical = 0;
7703   surfxml_cabinet_radical_isset = 0;
7704   AX_surfxml_cabinet_speed = 0;
7705   surfxml_cabinet_speed_isset = 0;
7706   AX_surfxml_cabinet_suffix = 0;
7707   surfxml_cabinet_suffix_isset = 0;
7708   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7709   }
7710         YY_BREAK
7711
7712 case 169:
7713 /* rule 169 can match eol */
7714 YY_RULE_SETUP
7715 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7716         YY_BREAK
7717 case 170:
7718 /* rule 170 can match eol */
7719 YY_RULE_SETUP
7720 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7721         YY_BREAK
7722 case 171:
7723 /* rule 171 can match eol */
7724 YY_RULE_SETUP
7725 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7726         YY_BREAK
7727 case 172:
7728 /* rule 172 can match eol */
7729 YY_RULE_SETUP
7730 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7731         YY_BREAK
7732 case 173:
7733 /* rule 173 can match eol */
7734 YY_RULE_SETUP
7735 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7736         YY_BREAK
7737 case 174:
7738 /* rule 174 can match eol */
7739 YY_RULE_SETUP
7740 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7741         YY_BREAK
7742 case 175:
7743 /* rule 175 can match eol */
7744 YY_RULE_SETUP
7745 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7746         YY_BREAK
7747 case 176:
7748 /* rule 176 can match eol */
7749 YY_RULE_SETUP
7750 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7751         YY_BREAK
7752 case 177:
7753 /* rule 177 can match eol */
7754 YY_RULE_SETUP
7755 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7756         YY_BREAK
7757 case 178:
7758 /* rule 178 can match eol */
7759 YY_RULE_SETUP
7760 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7761         YY_BREAK
7762 case 179:
7763 /* rule 179 can match eol */
7764 YY_RULE_SETUP
7765 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
7766         YY_BREAK
7767 case 180:
7768 /* rule 180 can match eol */
7769 YY_RULE_SETUP
7770 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
7771         YY_BREAK
7772 case 181:
7773 /* rule 181 can match eol */
7774 YY_RULE_SETUP
7775 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7776         YY_BREAK
7777 case 182:
7778 /* rule 182 can match eol */
7779 YY_RULE_SETUP
7780 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7781         YY_BREAK
7782 case 183:
7783 YY_RULE_SETUP
7784 {
7785   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7786   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7787   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7788   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7789   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7790   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7791   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7792   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7793  }
7794         YY_BREAK
7795 case 184:
7796 YY_RULE_SETUP
7797 {
7798   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7799   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7800   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7801   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7802   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7803   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7804   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7805   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7806   switch (YY_START) {
7807    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7808    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7809    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7810    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7811    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
7812   }
7813  }
7814         YY_BREAK
7815 case 185:
7816 YY_RULE_SETUP
7817 FAIL("Unexpected character `%c' in attribute list of cabinet element.", yytext[0]);
7818         YY_BREAK
7819 case 186:
7820 YY_RULE_SETUP
7821 FAIL("Bad attribute `%s' in `cabinet' element start tag.",yytext);
7822         YY_BREAK
7823 case YY_STATE_EOF(AL_surfxml_cabinet):
7824 FAIL("EOF in attribute list of `cabinet' element.");
7825         YY_BREAK
7826
7827 case 187:
7828 /* rule 187 can match eol */
7829 YY_RULE_SETUP
7830 {
7831   LEAVE;
7832   ETag_surfxml_cabinet();
7833   popbuffer(); /* attribute */
7834   switch (YY_START) {
7835    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7836    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7837    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7838    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7839    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
7840   }
7841  }
7842         YY_BREAK
7843 case 188:
7844 /* rule 188 can match eol */
7845 YY_RULE_SETUP
7846 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",yytext);
7847         YY_BREAK
7848 case 189:
7849 YY_RULE_SETUP
7850 FAIL("Unexpected character `%c': `</cabinet>' expected.",yytext[0]);
7851         YY_BREAK
7852 case YY_STATE_EOF(E_surfxml_cabinet):
7853 FAIL("Premature EOF: `</cabinet>' expected.");
7854         YY_BREAK
7855
7856 case 190:
7857 /* rule 190 can match eol */
7858 YY_RULE_SETUP
7859 FAIL("Starting tag <cluster> is not allowed here.");
7860         YY_BREAK
7861 case 191:
7862 /* rule 191 can match eol */
7863 YY_RULE_SETUP
7864 {
7865   AX_surfxml_cluster_bb___bw = 0;
7866   surfxml_cluster_bb___bw_isset = 0;
7867   AX_surfxml_cluster_bb___lat = 28;
7868   surfxml_cluster_bb___lat_isset = 0;
7869   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7870   surfxml_cluster_bb___sharing___policy_isset = 0;
7871   AX_surfxml_cluster_bw = 0;
7872   surfxml_cluster_bw_isset = 0;
7873   AX_surfxml_cluster_core = 26;
7874   surfxml_cluster_core_isset = 0;
7875   AX_surfxml_cluster_id = 0;
7876   surfxml_cluster_id_isset = 0;
7877   AX_surfxml_cluster_lat = 0;
7878   surfxml_cluster_lat_isset = 0;
7879   AX_surfxml_cluster_limiter___link = 0;
7880   surfxml_cluster_limiter___link_isset = 0;
7881   AX_surfxml_cluster_loopback___bw = 0;
7882   surfxml_cluster_loopback___bw_isset = 0;
7883   AX_surfxml_cluster_loopback___lat = 0;
7884   surfxml_cluster_loopback___lat_isset = 0;
7885   AX_surfxml_cluster_prefix = 0;
7886   surfxml_cluster_prefix_isset = 0;
7887   AX_surfxml_cluster_radical = 0;
7888   surfxml_cluster_radical_isset = 0;
7889   AX_surfxml_cluster_router___id = 0;
7890   surfxml_cluster_router___id_isset = 0;
7891   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7892   surfxml_cluster_sharing___policy_isset = 0;
7893   AX_surfxml_cluster_speed = 0;
7894   surfxml_cluster_speed_isset = 0;
7895   AX_surfxml_cluster_suffix = 0;
7896   surfxml_cluster_suffix_isset = 0;
7897   AX_surfxml_cluster_topo___parameters = 0;
7898   surfxml_cluster_topo___parameters_isset = 0;
7899   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7900   surfxml_cluster_topology_isset = 0;
7901   ENTER(AL_surfxml_cluster); pushbuffer(0);
7902   }
7903         YY_BREAK
7904
7905 case 192:
7906 /* rule 192 can match eol */
7907 YY_RULE_SETUP
7908 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
7909         YY_BREAK
7910 case 193:
7911 /* rule 193 can match eol */
7912 YY_RULE_SETUP
7913 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
7914         YY_BREAK
7915 case 194:
7916 /* rule 194 can match eol */
7917 YY_RULE_SETUP
7918 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
7919         YY_BREAK
7920 case 195:
7921 /* rule 195 can match eol */
7922 YY_RULE_SETUP
7923 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
7924         YY_BREAK
7925 case 196:
7926 /* rule 196 can match eol */
7927 case 197:
7928 /* rule 197 can match eol */
7929 YY_RULE_SETUP
7930 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7931         YY_BREAK
7932 case 198:
7933 /* rule 198 can match eol */
7934 case 199:
7935 /* rule 199 can match eol */
7936 YY_RULE_SETUP
7937 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7938         YY_BREAK
7939 case 200:
7940 /* rule 200 can match eol */
7941 YY_RULE_SETUP
7942 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7943         YY_BREAK
7944 case 201:
7945 /* rule 201 can match eol */
7946 YY_RULE_SETUP
7947 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7948         YY_BREAK
7949 case 202:
7950 /* rule 202 can match eol */
7951 YY_RULE_SETUP
7952 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7953         YY_BREAK
7954 case 203:
7955 /* rule 203 can match eol */
7956 YY_RULE_SETUP
7957 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7958         YY_BREAK
7959 case 204:
7960 /* rule 204 can match eol */
7961 YY_RULE_SETUP
7962 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
7963         YY_BREAK
7964 case 205:
7965 /* rule 205 can match eol */
7966 YY_RULE_SETUP
7967 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
7968         YY_BREAK
7969 case 206:
7970 /* rule 206 can match eol */
7971 YY_RULE_SETUP
7972 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7973         YY_BREAK
7974 case 207:
7975 /* rule 207 can match eol */
7976 YY_RULE_SETUP
7977 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7978         YY_BREAK
7979 case 208:
7980 /* rule 208 can match eol */
7981 YY_RULE_SETUP
7982 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7983         YY_BREAK
7984 case 209:
7985 /* rule 209 can match eol */
7986 YY_RULE_SETUP
7987 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7988         YY_BREAK
7989 case 210:
7990 /* rule 210 can match eol */
7991 YY_RULE_SETUP
7992 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7993         YY_BREAK
7994 case 211:
7995 /* rule 211 can match eol */
7996 YY_RULE_SETUP
7997 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7998         YY_BREAK
7999 case 212:
8000 /* rule 212 can match eol */
8001 YY_RULE_SETUP
8002 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
8003         YY_BREAK
8004 case 213:
8005 /* rule 213 can match eol */
8006 YY_RULE_SETUP
8007 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
8008         YY_BREAK
8009 case 214:
8010 /* rule 214 can match eol */
8011 YY_RULE_SETUP
8012 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
8013         YY_BREAK
8014 case 215:
8015 /* rule 215 can match eol */
8016 YY_RULE_SETUP
8017 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
8018         YY_BREAK
8019 case 216:
8020 /* rule 216 can match eol */
8021 YY_RULE_SETUP
8022 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
8023         YY_BREAK
8024 case 217:
8025 /* rule 217 can match eol */
8026 YY_RULE_SETUP
8027 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
8028         YY_BREAK
8029 case 218:
8030 /* rule 218 can match eol */
8031 YY_RULE_SETUP
8032 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
8033         YY_BREAK
8034 case 219:
8035 /* rule 219 can match eol */
8036 YY_RULE_SETUP
8037 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
8038         YY_BREAK
8039 case 220:
8040 /* rule 220 can match eol */
8041 case 221:
8042 /* rule 221 can match eol */
8043 YY_RULE_SETUP
8044 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
8045         YY_BREAK
8046 case 222:
8047 /* rule 222 can match eol */
8048 case 223:
8049 /* rule 223 can match eol */
8050 YY_RULE_SETUP
8051 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
8052         YY_BREAK
8053 case 224:
8054 /* rule 224 can match eol */
8055 case 225:
8056 /* rule 225 can match eol */
8057 YY_RULE_SETUP
8058 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
8059         YY_BREAK
8060 case 226:
8061 /* rule 226 can match eol */
8062 case 227:
8063 /* rule 227 can match eol */
8064 YY_RULE_SETUP
8065 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
8066         YY_BREAK
8067 case 228:
8068 /* rule 228 can match eol */
8069 YY_RULE_SETUP
8070 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
8071         YY_BREAK
8072 case 229:
8073 /* rule 229 can match eol */
8074 YY_RULE_SETUP
8075 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
8076         YY_BREAK
8077 case 230:
8078 /* rule 230 can match eol */
8079 YY_RULE_SETUP
8080 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
8081         YY_BREAK
8082 case 231:
8083 /* rule 231 can match eol */
8084 YY_RULE_SETUP
8085 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
8086         YY_BREAK
8087 case 232:
8088 /* rule 232 can match eol */
8089 YY_RULE_SETUP
8090 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
8091         YY_BREAK
8092 case 233:
8093 /* rule 233 can match eol */
8094 YY_RULE_SETUP
8095 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
8096         YY_BREAK
8097 case 234:
8098 /* rule 234 can match eol */
8099 case 235:
8100 /* rule 235 can match eol */
8101 YY_RULE_SETUP
8102 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
8103         YY_BREAK
8104 case 236:
8105 /* rule 236 can match eol */
8106 case 237:
8107 /* rule 237 can match eol */
8108 YY_RULE_SETUP
8109 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
8110         YY_BREAK
8111 case 238:
8112 /* rule 238 can match eol */
8113 case 239:
8114 /* rule 239 can match eol */
8115 YY_RULE_SETUP
8116 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
8117         YY_BREAK
8118 case 240:
8119 /* rule 240 can match eol */
8120 case 241:
8121 /* rule 241 can match eol */
8122 YY_RULE_SETUP
8123 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
8124         YY_BREAK
8125 case 242:
8126 YY_RULE_SETUP
8127 {
8128   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8129   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8130   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8131   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8132   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8133   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8134   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8135   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
8136  }
8137         YY_BREAK
8138 case 243:
8139 YY_RULE_SETUP
8140 {
8141   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8142   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8143   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8144   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8145   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8146   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8147   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8148   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
8149   switch (YY_START) {
8150    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8151    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8152    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8153    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8154   }
8155  }
8156         YY_BREAK
8157 case 244:
8158 YY_RULE_SETUP
8159 FAIL("Unexpected character `%c' in attribute list of cluster element.", yytext[0]);
8160         YY_BREAK
8161 case 245:
8162 YY_RULE_SETUP
8163 FAIL("Bad attribute `%s' in `cluster' element start tag.",yytext);
8164         YY_BREAK
8165 case YY_STATE_EOF(AL_surfxml_cluster):
8166 FAIL("EOF in attribute list of `cluster' element.");
8167         YY_BREAK
8168
8169 case 246:
8170 /* rule 246 can match eol */
8171 YY_RULE_SETUP
8172 {
8173   LEAVE;
8174   ETag_surfxml_cluster();
8175   popbuffer(); /* attribute */
8176   switch (YY_START) {
8177    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8178    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8179    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8180    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8181   }
8182  }
8183         YY_BREAK
8184 case 247:
8185 /* rule 247 can match eol */
8186 YY_RULE_SETUP
8187 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",yytext);
8188         YY_BREAK
8189 case 248:
8190 YY_RULE_SETUP
8191 FAIL("Unexpected character `%c': `</cluster>' expected.",yytext[0]);
8192         YY_BREAK
8193 case YY_STATE_EOF(E_surfxml_cluster):
8194 case YY_STATE_EOF(S_surfxml_cluster):
8195 case YY_STATE_EOF(S_surfxml_cluster_2):
8196 FAIL("Premature EOF: `</cluster>' expected.");
8197         YY_BREAK
8198
8199 case 249:
8200 /* rule 249 can match eol */
8201 YY_RULE_SETUP
8202 FAIL("Starting tag <config> is not allowed here.");
8203         YY_BREAK
8204 case 250:
8205 /* rule 250 can match eol */
8206 YY_RULE_SETUP
8207 {
8208   AX_surfxml_config_id = 0;
8209   surfxml_config_id_isset = 0;
8210   ENTER(AL_surfxml_config); pushbuffer(0);
8211   }
8212         YY_BREAK
8213
8214 case 251:
8215 /* rule 251 can match eol */
8216 YY_RULE_SETUP
8217 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8218         YY_BREAK
8219 case 252:
8220 /* rule 252 can match eol */
8221 YY_RULE_SETUP
8222 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8223         YY_BREAK
8224 case 253:
8225 YY_RULE_SETUP
8226 {
8227   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8228  }
8229         YY_BREAK
8230 case 254:
8231 YY_RULE_SETUP
8232 {
8233   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8234   switch (YY_START) {
8235    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8236   }
8237  }
8238         YY_BREAK
8239 case 255:
8240 YY_RULE_SETUP
8241 FAIL("Unexpected character `%c' in attribute list of config element.", yytext[0]);
8242         YY_BREAK
8243 case 256:
8244 YY_RULE_SETUP
8245 FAIL("Bad attribute `%s' in `config' element start tag.",yytext);
8246         YY_BREAK
8247 case YY_STATE_EOF(AL_surfxml_config):
8248 FAIL("EOF in attribute list of `config' element.");
8249         YY_BREAK
8250
8251 case 257:
8252 /* rule 257 can match eol */
8253 YY_RULE_SETUP
8254 {
8255   LEAVE;
8256   ETag_surfxml_config();
8257   popbuffer(); /* attribute */
8258   switch (YY_START) {
8259    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8260   }
8261  }
8262         YY_BREAK
8263 case 258:
8264 /* rule 258 can match eol */
8265 YY_RULE_SETUP
8266 FAIL("Unexpected end-tag `%s': `</config>' expected.",yytext);
8267         YY_BREAK
8268 case 259:
8269 YY_RULE_SETUP
8270 FAIL("Unexpected character `%c': `</config>' expected.",yytext[0]);
8271         YY_BREAK
8272 case YY_STATE_EOF(E_surfxml_config):
8273 case YY_STATE_EOF(S_surfxml_config):
8274 case YY_STATE_EOF(S_surfxml_config_2):
8275 FAIL("Premature EOF: `</config>' expected.");
8276         YY_BREAK
8277
8278 case 260:
8279 /* rule 260 can match eol */
8280 YY_RULE_SETUP
8281 FAIL("Starting tag <host> is not allowed here.");
8282         YY_BREAK
8283 case 261:
8284 /* rule 261 can match eol */
8285 YY_RULE_SETUP
8286 {
8287   AX_surfxml_host_availability___file = 0;
8288   surfxml_host_availability___file_isset = 0;
8289   AX_surfxml_host_coordinates = 0;
8290   surfxml_host_coordinates_isset = 0;
8291   AX_surfxml_host_core = 20;
8292   surfxml_host_core_isset = 0;
8293   AX_surfxml_host_id = 0;
8294   surfxml_host_id_isset = 0;
8295   AX_surfxml_host_pstate = 22;
8296   surfxml_host_pstate_isset = 0;
8297   AX_surfxml_host_speed = 0;
8298   surfxml_host_speed_isset = 0;
8299   AX_surfxml_host_state___file = 0;
8300   surfxml_host_state___file_isset = 0;
8301   ENTER(AL_surfxml_host); pushbuffer(0);
8302   }
8303         YY_BREAK
8304
8305 case 262:
8306 /* rule 262 can match eol */
8307 YY_RULE_SETUP
8308 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
8309         YY_BREAK
8310 case 263:
8311 /* rule 263 can match eol */
8312 YY_RULE_SETUP
8313 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
8314         YY_BREAK
8315 case 264:
8316 /* rule 264 can match eol */
8317 YY_RULE_SETUP
8318 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
8319         YY_BREAK
8320 case 265:
8321 /* rule 265 can match eol */
8322 YY_RULE_SETUP
8323 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
8324         YY_BREAK
8325 case 266:
8326 /* rule 266 can match eol */
8327 YY_RULE_SETUP
8328 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
8329         YY_BREAK
8330 case 267:
8331 /* rule 267 can match eol */
8332 YY_RULE_SETUP
8333 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
8334         YY_BREAK
8335 case 268:
8336 /* rule 268 can match eol */
8337 YY_RULE_SETUP
8338 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
8339         YY_BREAK
8340 case 269:
8341 /* rule 269 can match eol */
8342 YY_RULE_SETUP
8343 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
8344         YY_BREAK
8345 case 270:
8346 /* rule 270 can match eol */
8347 YY_RULE_SETUP
8348 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
8349         YY_BREAK
8350 case 271:
8351 /* rule 271 can match eol */
8352 YY_RULE_SETUP
8353 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
8354         YY_BREAK
8355 case 272:
8356 /* rule 272 can match eol */
8357 YY_RULE_SETUP
8358 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
8359         YY_BREAK
8360 case 273:
8361 /* rule 273 can match eol */
8362 YY_RULE_SETUP
8363 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
8364         YY_BREAK
8365 case 274:
8366 /* rule 274 can match eol */
8367 YY_RULE_SETUP
8368 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
8369         YY_BREAK
8370 case 275:
8371 /* rule 275 can match eol */
8372 YY_RULE_SETUP
8373 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
8374         YY_BREAK
8375 case 276:
8376 YY_RULE_SETUP
8377 {
8378   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8379   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8380   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
8381  }
8382         YY_BREAK
8383 case 277:
8384 YY_RULE_SETUP
8385 {
8386   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8387   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8388   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
8389   switch (YY_START) {
8390    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8391    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8392   }
8393  }
8394         YY_BREAK
8395 case 278:
8396 YY_RULE_SETUP
8397 FAIL("Unexpected character `%c' in attribute list of host element.", yytext[0]);
8398         YY_BREAK
8399 case 279:
8400 YY_RULE_SETUP
8401 FAIL("Bad attribute `%s' in `host' element start tag.",yytext);
8402         YY_BREAK
8403 case YY_STATE_EOF(AL_surfxml_host):
8404 FAIL("EOF in attribute list of `host' element.");
8405         YY_BREAK
8406
8407 case 280:
8408 /* rule 280 can match eol */
8409 YY_RULE_SETUP
8410 {
8411   LEAVE;
8412   ETag_surfxml_host();
8413   popbuffer(); /* attribute */
8414   switch (YY_START) {
8415    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8416    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8417   }
8418  }
8419         YY_BREAK
8420 case 281:
8421 /* rule 281 can match eol */
8422 YY_RULE_SETUP
8423 FAIL("Unexpected end-tag `%s': `</host>' expected.",yytext);
8424         YY_BREAK
8425 case 282:
8426 YY_RULE_SETUP
8427 FAIL("Unexpected character `%c': `</host>' expected.",yytext[0]);
8428         YY_BREAK
8429 case YY_STATE_EOF(E_surfxml_host):
8430 case YY_STATE_EOF(S_surfxml_host):
8431 case YY_STATE_EOF(S_surfxml_host_2):
8432 FAIL("Premature EOF: `</host>' expected.");
8433         YY_BREAK
8434
8435 case 283:
8436 /* rule 283 can match eol */
8437 YY_RULE_SETUP
8438 FAIL("Starting tag <host_link> is not allowed here.");
8439         YY_BREAK
8440 case 284:
8441 /* rule 284 can match eol */
8442 YY_RULE_SETUP
8443 {
8444   AX_surfxml_host___link_down = 0;
8445   surfxml_host___link_down_isset = 0;
8446   AX_surfxml_host___link_id = 0;
8447   surfxml_host___link_id_isset = 0;
8448   AX_surfxml_host___link_up = 0;
8449   surfxml_host___link_up_isset = 0;
8450   ENTER(AL_surfxml_host___link); pushbuffer(0);
8451   }
8452         YY_BREAK
8453
8454 case 285:
8455 /* rule 285 can match eol */
8456 YY_RULE_SETUP
8457 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
8458         YY_BREAK
8459 case 286:
8460 /* rule 286 can match eol */
8461 YY_RULE_SETUP
8462 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
8463         YY_BREAK
8464 case 287:
8465 /* rule 287 can match eol */
8466 YY_RULE_SETUP
8467 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
8468         YY_BREAK
8469 case 288:
8470 /* rule 288 can match eol */
8471 YY_RULE_SETUP
8472 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
8473         YY_BREAK
8474 case 289:
8475 /* rule 289 can match eol */
8476 YY_RULE_SETUP
8477 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
8478         YY_BREAK
8479 case 290:
8480 /* rule 290 can match eol */
8481 YY_RULE_SETUP
8482 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
8483         YY_BREAK
8484 case 291:
8485 YY_RULE_SETUP
8486 {
8487   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8488   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8489   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8490   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8491  }
8492         YY_BREAK
8493 case 292:
8494 YY_RULE_SETUP
8495 {
8496   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8497   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8498   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8499   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8500   switch (YY_START) {
8501    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8502    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8503   }
8504  }
8505         YY_BREAK
8506 case 293:
8507 YY_RULE_SETUP
8508 FAIL("Unexpected character `%c' in attribute list of host_link element.", yytext[0]);
8509         YY_BREAK
8510 case 294:
8511 YY_RULE_SETUP
8512 FAIL("Bad attribute `%s' in `host_link' element start tag.",yytext);
8513         YY_BREAK
8514 case YY_STATE_EOF(AL_surfxml_host___link):
8515 FAIL("EOF in attribute list of `host_link' element.");
8516         YY_BREAK
8517
8518 case 295:
8519 /* rule 295 can match eol */
8520 YY_RULE_SETUP
8521 {
8522   LEAVE;
8523   ETag_surfxml_host___link();
8524   popbuffer(); /* attribute */
8525   switch (YY_START) {
8526    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8527    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8528   }
8529  }
8530         YY_BREAK
8531 case 296:
8532 /* rule 296 can match eol */
8533 YY_RULE_SETUP
8534 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",yytext);
8535         YY_BREAK
8536 case 297:
8537 YY_RULE_SETUP
8538 FAIL("Unexpected character `%c': `</host_link>' expected.",yytext[0]);
8539         YY_BREAK
8540 case YY_STATE_EOF(E_surfxml_host___link):
8541 FAIL("Premature EOF: `</host_link>' expected.");
8542         YY_BREAK
8543
8544 /* <!-- tag include is deprecated. Not documented, and removed in v3.22 -->  */
8545 case 298:
8546 /* rule 298 can match eol */
8547 YY_RULE_SETUP
8548 FAIL("Starting tag <include> is not allowed here.");
8549         YY_BREAK
8550 case 299:
8551 /* rule 299 can match eol */
8552 YY_RULE_SETUP
8553 {
8554   AX_surfxml_include_file = 0;
8555   surfxml_include_file_isset = 0;
8556   ENTER(AL_surfxml_include); pushbuffer(0);
8557   }
8558         YY_BREAK
8559
8560 case 300:
8561 /* rule 300 can match eol */
8562 YY_RULE_SETUP
8563 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
8564         YY_BREAK
8565 case 301:
8566 /* rule 301 can match eol */
8567 YY_RULE_SETUP
8568 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
8569         YY_BREAK
8570 case 302:
8571 YY_RULE_SETUP
8572 {
8573   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8574   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8575  }
8576         YY_BREAK
8577 case 303:
8578 YY_RULE_SETUP
8579 {
8580   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8581   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8582   switch (YY_START) {
8583    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8584    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8585    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8586    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8587    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8588    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8589   }
8590  }
8591         YY_BREAK
8592 case 304:
8593 YY_RULE_SETUP
8594 FAIL("Unexpected character `%c' in attribute list of include element.", yytext[0]);
8595         YY_BREAK
8596 case 305:
8597 YY_RULE_SETUP
8598 FAIL("Bad attribute `%s' in `include' element start tag.",yytext);
8599         YY_BREAK
8600 case YY_STATE_EOF(AL_surfxml_include):
8601 FAIL("EOF in attribute list of `include' element.");
8602         YY_BREAK
8603
8604 case 306:
8605 /* rule 306 can match eol */
8606 YY_RULE_SETUP
8607 {
8608   LEAVE;
8609   ETag_surfxml_include();
8610   popbuffer(); /* attribute */
8611   switch (YY_START) {
8612    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8613    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8614    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8615    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8616    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8617    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8618   }
8619  }
8620         YY_BREAK
8621 case 307:
8622 /* rule 307 can match eol */
8623 YY_RULE_SETUP
8624 FAIL("Unexpected end-tag `%s': `</include>' expected.",yytext);
8625         YY_BREAK
8626 case 308:
8627 YY_RULE_SETUP
8628 FAIL("Unexpected character `%c': `</include>' expected.",yytext[0]);
8629         YY_BREAK
8630 case YY_STATE_EOF(E_surfxml_include):
8631 case YY_STATE_EOF(S_surfxml_include):
8632 case YY_STATE_EOF(S_surfxml_include_2):
8633 FAIL("Premature EOF: `</include>' expected.");
8634         YY_BREAK
8635
8636 case 309:
8637 /* rule 309 can match eol */
8638 YY_RULE_SETUP
8639 FAIL("Starting tag <link> is not allowed here.");
8640         YY_BREAK
8641 case 310:
8642 /* rule 310 can match eol */
8643 YY_RULE_SETUP
8644 {
8645   AX_surfxml_link_bandwidth = 0;
8646   surfxml_link_bandwidth_isset = 0;
8647   AX_surfxml_link_bandwidth___file = 0;
8648   surfxml_link_bandwidth___file_isset = 0;
8649   AX_surfxml_link_id = 0;
8650   surfxml_link_id_isset = 0;
8651   AX_surfxml_link_latency = 0;
8652   surfxml_link_latency_isset = 0;
8653   AX_surfxml_link_latency___file = 0;
8654   surfxml_link_latency___file_isset = 0;
8655   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8656   surfxml_link_sharing___policy_isset = 0;
8657   AX_surfxml_link_state___file = 0;
8658   surfxml_link_state___file_isset = 0;
8659   ENTER(AL_surfxml_link); pushbuffer(0);
8660   }
8661         YY_BREAK
8662
8663 case 311:
8664 /* rule 311 can match eol */
8665 YY_RULE_SETUP
8666 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
8667         YY_BREAK
8668 case 312:
8669 /* rule 312 can match eol */
8670 YY_RULE_SETUP
8671 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
8672         YY_BREAK
8673 case 313:
8674 /* rule 313 can match eol */
8675 YY_RULE_SETUP
8676 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
8677         YY_BREAK
8678 case 314:
8679 /* rule 314 can match eol */
8680 YY_RULE_SETUP
8681 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
8682         YY_BREAK
8683 case 315:
8684 /* rule 315 can match eol */
8685 YY_RULE_SETUP
8686 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
8687         YY_BREAK
8688 case 316:
8689 /* rule 316 can match eol */
8690 YY_RULE_SETUP
8691 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
8692         YY_BREAK
8693 case 317:
8694 /* rule 317 can match eol */
8695 YY_RULE_SETUP
8696 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
8697         YY_BREAK
8698 case 318:
8699 /* rule 318 can match eol */
8700 YY_RULE_SETUP
8701 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
8702         YY_BREAK
8703 case 319:
8704 /* rule 319 can match eol */
8705 YY_RULE_SETUP
8706 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
8707         YY_BREAK
8708 case 320:
8709 /* rule 320 can match eol */
8710 YY_RULE_SETUP
8711 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
8712         YY_BREAK
8713 case 321:
8714 /* rule 321 can match eol */
8715 case 322:
8716 /* rule 322 can match eol */
8717 YY_RULE_SETUP
8718 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8719         YY_BREAK
8720 case 323:
8721 /* rule 323 can match eol */
8722 case 324:
8723 /* rule 324 can match eol */
8724 YY_RULE_SETUP
8725 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SPLITDUPLEX;
8726         YY_BREAK
8727 case 325:
8728 /* rule 325 can match eol */
8729 case 326:
8730 /* rule 326 can match eol */
8731 YY_RULE_SETUP
8732 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8733         YY_BREAK
8734 case 327:
8735 /* rule 327 can match eol */
8736 case 328:
8737 /* rule 328 can match eol */
8738 YY_RULE_SETUP
8739 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8740         YY_BREAK
8741 case 329:
8742 /* rule 329 can match eol */
8743 YY_RULE_SETUP
8744 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
8745         YY_BREAK
8746 case 330:
8747 /* rule 330 can match eol */
8748 YY_RULE_SETUP
8749 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
8750         YY_BREAK
8751 case 331:
8752 YY_RULE_SETUP
8753 {
8754   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8755   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8756   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8757  }
8758         YY_BREAK
8759 case 332:
8760 YY_RULE_SETUP
8761 {
8762   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8763   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8764   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8765   switch (YY_START) {
8766    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8767    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8768    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8769    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8770   }
8771  }
8772         YY_BREAK
8773 case 333:
8774 YY_RULE_SETUP
8775 FAIL("Unexpected character `%c' in attribute list of link element.", yytext[0]);
8776         YY_BREAK
8777 case 334:
8778 YY_RULE_SETUP
8779 FAIL("Bad attribute `%s' in `link' element start tag.",yytext);
8780         YY_BREAK
8781 case YY_STATE_EOF(AL_surfxml_link):
8782 FAIL("EOF in attribute list of `link' element.");
8783         YY_BREAK
8784
8785 case 335:
8786 /* rule 335 can match eol */
8787 YY_RULE_SETUP
8788 {
8789   LEAVE;
8790   ETag_surfxml_link();
8791   popbuffer(); /* attribute */
8792   switch (YY_START) {
8793    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8794    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8795    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8796    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8797   }
8798  }
8799         YY_BREAK
8800 case 336:
8801 /* rule 336 can match eol */
8802 YY_RULE_SETUP
8803 FAIL("Unexpected end-tag `%s': `</link>' expected.",yytext);
8804         YY_BREAK
8805 case 337:
8806 YY_RULE_SETUP
8807 FAIL("Unexpected character `%c': `</link>' expected.",yytext[0]);
8808         YY_BREAK
8809 case YY_STATE_EOF(E_surfxml_link):
8810 case YY_STATE_EOF(S_surfxml_link):
8811 case YY_STATE_EOF(S_surfxml_link_2):
8812 FAIL("Premature EOF: `</link>' expected.");
8813         YY_BREAK
8814
8815 case 338:
8816 /* rule 338 can match eol */
8817 YY_RULE_SETUP
8818 FAIL("Starting tag <link_ctn> is not allowed here.");
8819         YY_BREAK
8820 case 339:
8821 /* rule 339 can match eol */
8822 YY_RULE_SETUP
8823 {
8824   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8825   surfxml_link___ctn_direction_isset = 0;
8826   AX_surfxml_link___ctn_id = 0;
8827   surfxml_link___ctn_id_isset = 0;
8828   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8829   }
8830         YY_BREAK
8831
8832 case 340:
8833 /* rule 340 can match eol */
8834 case 341:
8835 /* rule 341 can match eol */
8836 YY_RULE_SETUP
8837 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8838         YY_BREAK
8839 case 342:
8840 /* rule 342 can match eol */
8841 case 343:
8842 /* rule 343 can match eol */
8843 YY_RULE_SETUP
8844 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8845         YY_BREAK
8846 case 344:
8847 /* rule 344 can match eol */
8848 case 345:
8849 /* rule 345 can match eol */
8850 YY_RULE_SETUP
8851 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8852         YY_BREAK
8853 case 346:
8854 /* rule 346 can match eol */
8855 YY_RULE_SETUP
8856 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
8857         YY_BREAK
8858 case 347:
8859 /* rule 347 can match eol */
8860 YY_RULE_SETUP
8861 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
8862         YY_BREAK
8863 case 348:
8864 YY_RULE_SETUP
8865 {
8866   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8867   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8868  }
8869         YY_BREAK
8870 case 349:
8871 YY_RULE_SETUP
8872 {
8873   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8874   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8875   switch (YY_START) {
8876    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8877    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8878    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8879    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8880    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8881    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8882   }
8883  }
8884         YY_BREAK
8885 case 350:
8886 YY_RULE_SETUP
8887 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", yytext[0]);
8888         YY_BREAK
8889 case 351:
8890 YY_RULE_SETUP
8891 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",yytext);
8892         YY_BREAK
8893 case YY_STATE_EOF(AL_surfxml_link___ctn):
8894 FAIL("EOF in attribute list of `link_ctn' element.");
8895         YY_BREAK
8896
8897 case 352:
8898 /* rule 352 can match eol */
8899 YY_RULE_SETUP
8900 {
8901   LEAVE;
8902   ETag_surfxml_link___ctn();
8903   popbuffer(); /* attribute */
8904   switch (YY_START) {
8905    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8906    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8907    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8908    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8909    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8910    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8911   }
8912  }
8913         YY_BREAK
8914 case 353:
8915 /* rule 353 can match eol */
8916 YY_RULE_SETUP
8917 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",yytext);
8918         YY_BREAK
8919 case 354:
8920 YY_RULE_SETUP
8921 FAIL("Unexpected character `%c': `</link_ctn>' expected.",yytext[0]);
8922         YY_BREAK
8923 case YY_STATE_EOF(E_surfxml_link___ctn):
8924 FAIL("Premature EOF: `</link_ctn>' expected.");
8925         YY_BREAK
8926
8927 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8928   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8929 case 355:
8930 /* rule 355 can match eol */
8931 YY_RULE_SETUP
8932 FAIL("Starting tag <model_prop> is not allowed here.");
8933         YY_BREAK
8934 case 356:
8935 /* rule 356 can match eol */
8936 YY_RULE_SETUP
8937 {
8938   AX_surfxml_model___prop_id = 0;
8939   surfxml_model___prop_id_isset = 0;
8940   AX_surfxml_model___prop_value = 0;
8941   surfxml_model___prop_value_isset = 0;
8942   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8943   }
8944         YY_BREAK
8945
8946 case 357:
8947 /* rule 357 can match eol */
8948 YY_RULE_SETUP
8949 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
8950         YY_BREAK
8951 case 358:
8952 /* rule 358 can match eol */
8953 YY_RULE_SETUP
8954 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
8955         YY_BREAK
8956 case 359:
8957 /* rule 359 can match eol */
8958 YY_RULE_SETUP
8959 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
8960         YY_BREAK
8961 case 360:
8962 /* rule 360 can match eol */
8963 YY_RULE_SETUP
8964 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
8965         YY_BREAK
8966 case 361:
8967 YY_RULE_SETUP
8968 {
8969   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8970   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8971   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
8972  }
8973         YY_BREAK
8974 case 362:
8975 YY_RULE_SETUP
8976 {
8977   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8978   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8979   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
8980   switch (YY_START) {
8981    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8982   }
8983  }
8984         YY_BREAK
8985 case 363:
8986 YY_RULE_SETUP
8987 FAIL("Unexpected character `%c' in attribute list of model_prop element.", yytext[0]);
8988         YY_BREAK
8989 case 364:
8990 YY_RULE_SETUP
8991 FAIL("Bad attribute `%s' in `model_prop' element start tag.",yytext);
8992         YY_BREAK
8993 case YY_STATE_EOF(AL_surfxml_model___prop):
8994 FAIL("EOF in attribute list of `model_prop' element.");
8995         YY_BREAK
8996
8997 case 365:
8998 /* rule 365 can match eol */
8999 YY_RULE_SETUP
9000 {
9001   LEAVE;
9002   ETag_surfxml_model___prop();
9003   popbuffer(); /* attribute */
9004   switch (YY_START) {
9005    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9006   }
9007  }
9008         YY_BREAK
9009 case 366:
9010 /* rule 366 can match eol */
9011 YY_RULE_SETUP
9012 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",yytext);
9013         YY_BREAK
9014 case 367:
9015 YY_RULE_SETUP
9016 FAIL("Unexpected character `%c': `</model_prop>' expected.",yytext[0]);
9017         YY_BREAK
9018 case YY_STATE_EOF(E_surfxml_model___prop):
9019 FAIL("Premature EOF: `</model_prop>' expected.");
9020         YY_BREAK
9021
9022 case 368:
9023 /* rule 368 can match eol */
9024 YY_RULE_SETUP
9025 FAIL("Starting tag <mount> is not allowed here.");
9026         YY_BREAK
9027 case 369:
9028 /* rule 369 can match eol */
9029 YY_RULE_SETUP
9030 {
9031   AX_surfxml_mount_name = 0;
9032   surfxml_mount_name_isset = 0;
9033   AX_surfxml_mount_storageId = 0;
9034   surfxml_mount_storageId_isset = 0;
9035   ENTER(AL_surfxml_mount); pushbuffer(0);
9036   }
9037         YY_BREAK
9038
9039 case 370:
9040 /* rule 370 can match eol */
9041 YY_RULE_SETUP
9042 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
9043         YY_BREAK
9044 case 371:
9045 /* rule 371 can match eol */
9046 YY_RULE_SETUP
9047 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
9048         YY_BREAK
9049 case 372:
9050 /* rule 372 can match eol */
9051 YY_RULE_SETUP
9052 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
9053         YY_BREAK
9054 case 373:
9055 /* rule 373 can match eol */
9056 YY_RULE_SETUP
9057 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
9058         YY_BREAK
9059 case 374:
9060 YY_RULE_SETUP
9061 {
9062   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9063   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9064   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
9065  }
9066         YY_BREAK
9067 case 375:
9068 YY_RULE_SETUP
9069 {
9070   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9071   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9072   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
9073   switch (YY_START) {
9074    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9075   }
9076  }
9077         YY_BREAK
9078 case 376:
9079 YY_RULE_SETUP
9080 FAIL("Unexpected character `%c' in attribute list of mount element.", yytext[0]);
9081         YY_BREAK
9082 case 377:
9083 YY_RULE_SETUP
9084 FAIL("Bad attribute `%s' in `mount' element start tag.",yytext);
9085         YY_BREAK
9086 case YY_STATE_EOF(AL_surfxml_mount):
9087 FAIL("EOF in attribute list of `mount' element.");
9088         YY_BREAK
9089
9090 case 378:
9091 /* rule 378 can match eol */
9092 YY_RULE_SETUP
9093 {
9094   LEAVE;
9095   ETag_surfxml_mount();
9096   popbuffer(); /* attribute */
9097   switch (YY_START) {
9098    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9099   }
9100  }
9101         YY_BREAK
9102 case 379:
9103 /* rule 379 can match eol */
9104 YY_RULE_SETUP
9105 FAIL("Unexpected end-tag `%s': `</mount>' expected.",yytext);
9106         YY_BREAK
9107 case 380:
9108 YY_RULE_SETUP
9109 FAIL("Unexpected character `%c': `</mount>' expected.",yytext[0]);
9110         YY_BREAK
9111 case YY_STATE_EOF(E_surfxml_mount):
9112 FAIL("Premature EOF: `</mount>' expected.");
9113         YY_BREAK
9114
9115 case 381:
9116 /* rule 381 can match eol */
9117 YY_RULE_SETUP
9118 FAIL("Starting tag <peer> is not allowed here.");
9119         YY_BREAK
9120 case 382:
9121 /* rule 382 can match eol */
9122 YY_RULE_SETUP
9123 {
9124   AX_surfxml_peer_availability___file = 0;
9125   surfxml_peer_availability___file_isset = 0;
9126   AX_surfxml_peer_bw___in = 0;
9127   surfxml_peer_bw___in_isset = 0;
9128   AX_surfxml_peer_bw___out = 0;
9129   surfxml_peer_bw___out_isset = 0;
9130   AX_surfxml_peer_coordinates = 0;
9131   surfxml_peer_coordinates_isset = 0;
9132   AX_surfxml_peer_id = 0;
9133   surfxml_peer_id_isset = 0;
9134   AX_surfxml_peer_lat = 0;
9135   surfxml_peer_lat_isset = 0;
9136   AX_surfxml_peer_speed = 0;
9137   surfxml_peer_speed_isset = 0;
9138   AX_surfxml_peer_state___file = 0;
9139   surfxml_peer_state___file_isset = 0;
9140   ENTER(AL_surfxml_peer); pushbuffer(0);
9141   }
9142         YY_BREAK
9143
9144 case 383:
9145 /* rule 383 can match eol */
9146 YY_RULE_SETUP
9147 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
9148         YY_BREAK
9149 case 384:
9150 /* rule 384 can match eol */
9151 YY_RULE_SETUP
9152 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
9153         YY_BREAK
9154 case 385:
9155 /* rule 385 can match eol */
9156 YY_RULE_SETUP
9157 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
9158         YY_BREAK
9159 case 386:
9160 /* rule 386 can match eol */
9161 YY_RULE_SETUP
9162 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
9163         YY_BREAK
9164 case 387:
9165 /* rule 387 can match eol */
9166 YY_RULE_SETUP
9167 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
9168         YY_BREAK
9169 case 388:
9170 /* rule 388 can match eol */
9171 YY_RULE_SETUP
9172 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
9173         YY_BREAK
9174 case 389:
9175 /* rule 389 can match eol */
9176 YY_RULE_SETUP
9177 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
9178         YY_BREAK
9179 case 390:
9180 /* rule 390 can match eol */
9181 YY_RULE_SETUP
9182 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
9183         YY_BREAK
9184 case 391:
9185 /* rule 391 can match eol */
9186 YY_RULE_SETUP
9187 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
9188         YY_BREAK
9189 case 392:
9190 /* rule 392 can match eol */
9191 YY_RULE_SETUP
9192 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
9193         YY_BREAK
9194 case 393:
9195 /* rule 393 can match eol */
9196 YY_RULE_SETUP
9197 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
9198         YY_BREAK
9199 case 394:
9200 /* rule 394 can match eol */
9201 YY_RULE_SETUP
9202 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
9203         YY_BREAK
9204 case 395:
9205 /* rule 395 can match eol */
9206 YY_RULE_SETUP
9207 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
9208         YY_BREAK
9209 case 396:
9210 /* rule 396 can match eol */
9211 YY_RULE_SETUP
9212 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
9213         YY_BREAK
9214 case 397:
9215 /* rule 397 can match eol */
9216 YY_RULE_SETUP
9217 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
9218         YY_BREAK
9219 case 398:
9220 /* rule 398 can match eol */
9221 YY_RULE_SETUP
9222 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
9223         YY_BREAK
9224 case 399:
9225 YY_RULE_SETUP
9226 {
9227   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9228   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9229   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9230   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9231   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
9232  }
9233         YY_BREAK
9234 case 400:
9235 YY_RULE_SETUP
9236 {
9237   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9238   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9239   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9240   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9241   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
9242   switch (YY_START) {
9243    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9244    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9245    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9246    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9247   }
9248  }
9249         YY_BREAK
9250 case 401:
9251 YY_RULE_SETUP
9252 FAIL("Unexpected character `%c' in attribute list of peer element.", yytext[0]);
9253         YY_BREAK
9254 case 402:
9255 YY_RULE_SETUP
9256 FAIL("Bad attribute `%s' in `peer' element start tag.",yytext);
9257         YY_BREAK
9258 case YY_STATE_EOF(AL_surfxml_peer):
9259 FAIL("EOF in attribute list of `peer' element.");
9260         YY_BREAK
9261
9262 case 403:
9263 /* rule 403 can match eol */
9264 YY_RULE_SETUP
9265 {
9266   LEAVE;
9267   ETag_surfxml_peer();
9268   popbuffer(); /* attribute */
9269   switch (YY_START) {
9270    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9271    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9272    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9273    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9274   }
9275  }
9276         YY_BREAK
9277 case 404:
9278 /* rule 404 can match eol */
9279 YY_RULE_SETUP
9280 FAIL("Unexpected end-tag `%s': `</peer>' expected.",yytext);
9281         YY_BREAK
9282 case 405:
9283 YY_RULE_SETUP
9284 FAIL("Unexpected character `%c': `</peer>' expected.",yytext[0]);
9285         YY_BREAK
9286 case YY_STATE_EOF(E_surfxml_peer):
9287 FAIL("Premature EOF: `</peer>' expected.");
9288         YY_BREAK
9289
9290 /* <!--
9291   *              DTD of SimGrid platform and deployment files.
9292   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
9293   * To upgrade your files, use the tool simgrid_update_xml
9294   * * Things that will change in upcoming version 5 (TODO):
9295   *   - The following tags will be removed:
9296   *     - <include> spits an error since v3.18
9297   *     - <random> does nothing since a very long time
9298   *     - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
9299   *   - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
9300   * * New in DTD version 4.2 (in SimGrid 3.19): backward compatible change (v4 files are valid v4.2 files)
9301   *    - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX
9302   * * New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
9303   *    - <zone> can be used as a synonym for the now deprecated <as>
9304   *    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
9305   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
9306   *    - <actor> can be used as a synonym for the now deprecated <process>
9307   * * New in DTD version 4 (in SimGrid 3.13):
9308   *    - Rename (power->speed) the attributes describing the amount of flop
9309   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
9310   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
9311   *    - In <host> and <link>, attributes availability and state are gone.
9312   *      It was redundent with state and availability traces, and with peak values.
9313   *    - In <cluster>, cannot set the availability nor state traces.
9314   *      This was too complex and unused.
9315   *    - The DOCTYPE points to the right URL (this file).
9316   *    - Kill <gpu>. Was not doing anything.
9317   *    - A warning is emitted for unit-less values (they are still accepted).
9318   *      The value 0 can remain unit-less, as its unit does not matter.
9319   *      - speed. Default: 'f' or 'flops'. Also defined:
9320   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
9321   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
9322   *      - bandwidth. Default: 'Bps' bytes per second
9323   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
9324   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
9325   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
9326   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
9327   *        (Exa and Peta notations were introduced in SimGrid v3.14)
9328   *      - latency. Default: 's' second. Also defined:
9329   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
9330   * * New in DTD version 3 (in SimGrid 3.5):
9331   *    - The AS tag were introduced. Every platform should now
9332   *      contain an englobing AS tag.
9333   *    - Routes are now symmetric by default.
9334   *    - Renamed tags (for sake of XML sanity):
9335   *      - LINK:CTN -> LINK_CTN
9336   *      - TRACE:CONNECT -> TRACE_CONNECT
9337   * * New in DTD version 2 (in SimGrid 3.4):
9338   *    - Renamed tags:
9339   *      - CPU -> HOST
9340   *      - NETWORK_LINK -> LINK
9341   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
9342   *      - PLATFORM_DESCRIPTION -> PLATFORM
9343   * * New in DTD version 1 (in SimGrid 3.3):
9344   *    - DTD is now versionned with the version attribute of platform
9345   *    - Unit change:
9346   *      - Link bandwidth: from Mb/s to b/s
9347   *      - CPU speed: from MFlop/s to Flop/s
9348   * -->  */
9349 case 406:
9350 /* rule 406 can match eol */
9351 YY_RULE_SETUP
9352 FAIL("Starting tag <platform> is not allowed here.");
9353         YY_BREAK
9354 case 407:
9355 /* rule 407 can match eol */
9356 YY_RULE_SETUP
9357 {
9358   AX_surfxml_platform_version = 1;
9359   surfxml_platform_version_isset = 0;
9360   ENTER(AL_surfxml_platform); pushbuffer(0);
9361   }
9362         YY_BREAK
9363
9364 case 408:
9365 /* rule 408 can match eol */
9366 YY_RULE_SETUP
9367 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
9368         YY_BREAK
9369 case 409:
9370 /* rule 409 can match eol */
9371 YY_RULE_SETUP
9372 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
9373         YY_BREAK
9374 case 410:
9375 YY_RULE_SETUP
9376 {
9377   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
9378  }
9379         YY_BREAK
9380 case 411:
9381 YY_RULE_SETUP
9382 {
9383   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
9384   switch (YY_START) {
9385    case ROOT_surfxml_platform: SET(EPILOG); break;
9386   }
9387  }
9388         YY_BREAK
9389 case 412:
9390 YY_RULE_SETUP
9391 FAIL("Unexpected character `%c' in attribute list of platform element.", yytext[0]);
9392         YY_BREAK
9393 case 413:
9394 YY_RULE_SETUP
9395 FAIL("Bad attribute `%s' in `platform' element start tag.",yytext);
9396         YY_BREAK
9397 case YY_STATE_EOF(AL_surfxml_platform):
9398 FAIL("EOF in attribute list of `platform' element.");
9399         YY_BREAK
9400
9401 case 414:
9402 /* rule 414 can match eol */
9403 YY_RULE_SETUP
9404 {
9405   LEAVE;
9406   ETag_surfxml_platform();
9407   popbuffer(); /* attribute */
9408   switch (YY_START) {
9409    case ROOT_surfxml_platform: SET(EPILOG); break;
9410   }
9411  }
9412         YY_BREAK
9413 case 415:
9414 /* rule 415 can match eol */
9415 YY_RULE_SETUP
9416 FAIL("Unexpected end-tag `%s': `</platform>' expected.",yytext);
9417         YY_BREAK
9418 case 416:
9419 YY_RULE_SETUP
9420 FAIL("Unexpected character `%c': `</platform>' expected.",yytext[0]);
9421         YY_BREAK
9422 case YY_STATE_EOF(E_surfxml_platform):
9423 case YY_STATE_EOF(S_surfxml_platform):
9424 case YY_STATE_EOF(S_surfxml_platform_1):
9425 case YY_STATE_EOF(S_surfxml_platform_3):
9426 case YY_STATE_EOF(S_surfxml_platform_4):
9427 case YY_STATE_EOF(S_surfxml_platform_6):
9428 case YY_STATE_EOF(S_surfxml_platform_8):
9429 FAIL("Premature EOF: `</platform>' expected.");
9430         YY_BREAK
9431
9432 case 417:
9433 /* rule 417 can match eol */
9434 YY_RULE_SETUP
9435 FAIL("Starting tag <process> is not allowed here.");
9436         YY_BREAK
9437 case 418:
9438 /* rule 418 can match eol */
9439 YY_RULE_SETUP
9440 {
9441   AX_surfxml_process_function = 0;
9442   surfxml_process_function_isset = 0;
9443   AX_surfxml_process_host = 0;
9444   surfxml_process_host_isset = 0;
9445   AX_surfxml_process_kill___time = 36;
9446   surfxml_process_kill___time_isset = 0;
9447   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9448   surfxml_process_on___failure_isset = 0;
9449   AX_surfxml_process_start___time = 31;
9450   surfxml_process_start___time_isset = 0;
9451   ENTER(AL_surfxml_process); pushbuffer(0);
9452   }
9453         YY_BREAK
9454
9455 case 419:
9456 /* rule 419 can match eol */
9457 YY_RULE_SETUP
9458 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
9459         YY_BREAK
9460 case 420:
9461 /* rule 420 can match eol */
9462 YY_RULE_SETUP
9463 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
9464         YY_BREAK
9465 case 421:
9466 /* rule 421 can match eol */
9467 YY_RULE_SETUP
9468 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
9469         YY_BREAK
9470 case 422:
9471 /* rule 422 can match eol */
9472 YY_RULE_SETUP
9473 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
9474         YY_BREAK
9475 case 423:
9476 /* rule 423 can match eol */
9477 YY_RULE_SETUP
9478 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
9479         YY_BREAK
9480 case 424:
9481 /* rule 424 can match eol */
9482 YY_RULE_SETUP
9483 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
9484         YY_BREAK
9485 case 425:
9486 /* rule 425 can match eol */
9487 case 426:
9488 /* rule 426 can match eol */
9489 YY_RULE_SETUP
9490 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9491         YY_BREAK
9492 case 427:
9493 /* rule 427 can match eol */
9494 case 428:
9495 /* rule 428 can match eol */
9496 YY_RULE_SETUP
9497 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9498         YY_BREAK
9499 case 429:
9500 /* rule 429 can match eol */
9501 YY_RULE_SETUP
9502 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
9503         YY_BREAK
9504 case 430:
9505 /* rule 430 can match eol */
9506 YY_RULE_SETUP
9507 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
9508         YY_BREAK
9509 case 431:
9510 YY_RULE_SETUP
9511 {
9512   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9513   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9514   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9515  }
9516         YY_BREAK
9517 case 432:
9518 YY_RULE_SETUP
9519 {
9520   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9521   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9522   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9523   switch (YY_START) {
9524    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9525   }
9526  }
9527         YY_BREAK
9528 case 433:
9529 YY_RULE_SETUP
9530 FAIL("Unexpected character `%c' in attribute list of process element.", yytext[0]);
9531         YY_BREAK
9532 case 434:
9533 YY_RULE_SETUP
9534 FAIL("Bad attribute `%s' in `process' element start tag.",yytext);
9535         YY_BREAK
9536 case YY_STATE_EOF(AL_surfxml_process):
9537 FAIL("EOF in attribute list of `process' element.");
9538         YY_BREAK
9539
9540 case 435:
9541 /* rule 435 can match eol */
9542 YY_RULE_SETUP
9543 {
9544   LEAVE;
9545   ETag_surfxml_process();
9546   popbuffer(); /* attribute */
9547   switch (YY_START) {
9548    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9549   }
9550  }
9551         YY_BREAK
9552 case 436:
9553 /* rule 436 can match eol */
9554 YY_RULE_SETUP
9555 FAIL("Unexpected end-tag `%s': `</process>' expected.",yytext);
9556         YY_BREAK
9557 case 437:
9558 YY_RULE_SETUP
9559 FAIL("Unexpected character `%c': `</process>' expected.",yytext[0]);
9560         YY_BREAK
9561 case YY_STATE_EOF(E_surfxml_process):
9562 case YY_STATE_EOF(S_surfxml_process):
9563 case YY_STATE_EOF(S_surfxml_process_2):
9564 FAIL("Premature EOF: `</process>' expected.");
9565         YY_BREAK
9566
9567 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9568   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9569 case 438:
9570 /* rule 438 can match eol */
9571 YY_RULE_SETUP
9572 FAIL("Starting tag <prop> is not allowed here.");
9573         YY_BREAK
9574 case 439:
9575 /* rule 439 can match eol */
9576 YY_RULE_SETUP
9577 {
9578   AX_surfxml_prop_id = 0;
9579   surfxml_prop_id_isset = 0;
9580   AX_surfxml_prop_value = 0;
9581   surfxml_prop_value_isset = 0;
9582   ENTER(AL_surfxml_prop); pushbuffer(0);
9583   }
9584         YY_BREAK
9585
9586 case 440:
9587 /* rule 440 can match eol */
9588 YY_RULE_SETUP
9589 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
9590         YY_BREAK
9591 case 441:
9592 /* rule 441 can match eol */
9593 YY_RULE_SETUP
9594 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
9595         YY_BREAK
9596 case 442:
9597 /* rule 442 can match eol */
9598 YY_RULE_SETUP
9599 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
9600         YY_BREAK
9601 case 443:
9602 /* rule 443 can match eol */
9603 YY_RULE_SETUP
9604 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
9605         YY_BREAK
9606 case 444:
9607 YY_RULE_SETUP
9608 {
9609   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9610   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9611   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9612  }
9613         YY_BREAK
9614 case 445:
9615 YY_RULE_SETUP
9616 {
9617   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9618   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9619   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9620   switch (YY_START) {
9621    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9622    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9623    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9624    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9625    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9626    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9627    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9628    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9629    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9630    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9631   }
9632  }
9633         YY_BREAK
9634 case 446:
9635 YY_RULE_SETUP
9636 FAIL("Unexpected character `%c' in attribute list of prop element.", yytext[0]);
9637         YY_BREAK
9638 case 447:
9639 YY_RULE_SETUP
9640 FAIL("Bad attribute `%s' in `prop' element start tag.",yytext);
9641         YY_BREAK
9642 case YY_STATE_EOF(AL_surfxml_prop):
9643 FAIL("EOF in attribute list of `prop' element.");
9644         YY_BREAK
9645
9646 case 448:
9647 /* rule 448 can match eol */
9648 YY_RULE_SETUP
9649 {
9650   LEAVE;
9651   ETag_surfxml_prop();
9652   popbuffer(); /* attribute */
9653   switch (YY_START) {
9654    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9655    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9656    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9657    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9658    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9659    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9660    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9661    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9662    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9663    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9664   }
9665  }
9666         YY_BREAK
9667 case 449:
9668 /* rule 449 can match eol */
9669 YY_RULE_SETUP
9670 FAIL("Unexpected end-tag `%s': `</prop>' expected.",yytext);
9671         YY_BREAK
9672 case 450:
9673 YY_RULE_SETUP
9674 FAIL("Unexpected character `%c': `</prop>' expected.",yytext[0]);
9675         YY_BREAK
9676 case YY_STATE_EOF(E_surfxml_prop):
9677 FAIL("Premature EOF: `</prop>' expected.");
9678         YY_BREAK
9679
9680 case 451:
9681 /* rule 451 can match eol */
9682 YY_RULE_SETUP
9683 FAIL("Starting tag <random> is not allowed here.");
9684         YY_BREAK
9685 case 452:
9686 /* rule 452 can match eol */
9687 YY_RULE_SETUP
9688 {
9689   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9690   surfxml_random_generator_isset = 0;
9691   AX_surfxml_random_id = 0;
9692   surfxml_random_id_isset = 0;
9693   AX_surfxml_random_max = 0;
9694   surfxml_random_max_isset = 0;
9695   AX_surfxml_random_mean = 0;
9696   surfxml_random_mean_isset = 0;
9697   AX_surfxml_random_min = 0;
9698   surfxml_random_min_isset = 0;
9699   AX_surfxml_random_radical = 0;
9700   surfxml_random_radical_isset = 0;
9701   AX_surfxml_random_seed = 5;
9702   surfxml_random_seed_isset = 0;
9703   AX_surfxml_random_std___deviation = 0;
9704   surfxml_random_std___deviation_isset = 0;
9705   ENTER(AL_surfxml_random); pushbuffer(0);
9706   }
9707         YY_BREAK
9708
9709 case 453:
9710 /* rule 453 can match eol */
9711 case 454:
9712 /* rule 454 can match eol */
9713 YY_RULE_SETUP
9714 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9715         YY_BREAK
9716 case 455:
9717 /* rule 455 can match eol */
9718 case 456:
9719 /* rule 456 can match eol */
9720 YY_RULE_SETUP
9721 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9722         YY_BREAK
9723 case 457:
9724 /* rule 457 can match eol */
9725 case 458:
9726 /* rule 458 can match eol */
9727 YY_RULE_SETUP
9728 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9729         YY_BREAK
9730 case 459:
9731 /* rule 459 can match eol */
9732 case 460:
9733 /* rule 460 can match eol */
9734 YY_RULE_SETUP
9735 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9736         YY_BREAK
9737 case 461:
9738 /* rule 461 can match eol */
9739 YY_RULE_SETUP
9740 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
9741         YY_BREAK
9742 case 462:
9743 /* rule 462 can match eol */
9744 YY_RULE_SETUP
9745 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
9746         YY_BREAK
9747 case 463:
9748 /* rule 463 can match eol */
9749 YY_RULE_SETUP
9750 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
9751         YY_BREAK
9752 case 464:
9753 /* rule 464 can match eol */
9754 YY_RULE_SETUP
9755 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
9756         YY_BREAK
9757 case 465:
9758 /* rule 465 can match eol */
9759 YY_RULE_SETUP
9760 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
9761         YY_BREAK
9762 case 466:
9763 /* rule 466 can match eol */
9764 YY_RULE_SETUP
9765 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
9766         YY_BREAK
9767 case 467:
9768 /* rule 467 can match eol */
9769 YY_RULE_SETUP
9770 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
9771         YY_BREAK
9772 case 468:
9773 /* rule 468 can match eol */
9774 YY_RULE_SETUP
9775 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
9776         YY_BREAK
9777 case 469:
9778 /* rule 469 can match eol */
9779 YY_RULE_SETUP
9780 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
9781         YY_BREAK
9782 case 470:
9783 /* rule 470 can match eol */
9784 YY_RULE_SETUP
9785 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
9786         YY_BREAK
9787 case 471:
9788 /* rule 471 can match eol */
9789 YY_RULE_SETUP
9790 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
9791         YY_BREAK
9792 case 472:
9793 /* rule 472 can match eol */
9794 YY_RULE_SETUP
9795 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
9796         YY_BREAK
9797 case 473:
9798 /* rule 473 can match eol */
9799 YY_RULE_SETUP
9800 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
9801         YY_BREAK
9802 case 474:
9803 /* rule 474 can match eol */
9804 YY_RULE_SETUP
9805 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
9806         YY_BREAK
9807 case 475:
9808 YY_RULE_SETUP
9809 {
9810   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9811   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9812   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9813   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9814   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9815   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9816  }
9817         YY_BREAK
9818 case 476:
9819 YY_RULE_SETUP
9820 {
9821   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9822   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9823   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9824   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9825   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9826   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9827   switch (YY_START) {
9828    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9829   }
9830  }
9831         YY_BREAK
9832 case 477:
9833 YY_RULE_SETUP
9834 FAIL("Unexpected character `%c' in attribute list of random element.", yytext[0]);
9835         YY_BREAK
9836 case 478:
9837 YY_RULE_SETUP
9838 FAIL("Bad attribute `%s' in `random' element start tag.",yytext);
9839         YY_BREAK
9840 case YY_STATE_EOF(AL_surfxml_random):
9841 FAIL("EOF in attribute list of `random' element.");
9842         YY_BREAK
9843
9844 case 479:
9845 /* rule 479 can match eol */
9846 YY_RULE_SETUP
9847 {
9848   LEAVE;
9849   ETag_surfxml_random();
9850   popbuffer(); /* attribute */
9851   switch (YY_START) {
9852    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9853   }
9854  }
9855         YY_BREAK
9856 case 480:
9857 /* rule 480 can match eol */
9858 YY_RULE_SETUP
9859 FAIL("Unexpected end-tag `%s': `</random>' expected.",yytext);
9860         YY_BREAK
9861 case 481:
9862 YY_RULE_SETUP
9863 FAIL("Unexpected character `%c': `</random>' expected.",yytext[0]);
9864         YY_BREAK
9865 case YY_STATE_EOF(E_surfxml_random):
9866 FAIL("Premature EOF: `</random>' expected.");
9867         YY_BREAK
9868
9869 case 482:
9870 /* rule 482 can match eol */
9871 YY_RULE_SETUP
9872 FAIL("Starting tag <route> is not allowed here.");
9873         YY_BREAK
9874 case 483:
9875 /* rule 483 can match eol */
9876 YY_RULE_SETUP
9877 {
9878   AX_surfxml_route_dst = 0;
9879   surfxml_route_dst_isset = 0;
9880   AX_surfxml_route_src = 0;
9881   surfxml_route_src_isset = 0;
9882   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9883   surfxml_route_symmetrical_isset = 0;
9884   ENTER(AL_surfxml_route); pushbuffer(0);
9885   }
9886         YY_BREAK
9887
9888 case 484:
9889 /* rule 484 can match eol */
9890 YY_RULE_SETUP
9891 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
9892         YY_BREAK
9893 case 485:
9894 /* rule 485 can match eol */
9895 YY_RULE_SETUP
9896 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
9897         YY_BREAK
9898 case 486:
9899 /* rule 486 can match eol */
9900 YY_RULE_SETUP
9901 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
9902         YY_BREAK
9903 case 487:
9904 /* rule 487 can match eol */
9905 YY_RULE_SETUP
9906 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
9907         YY_BREAK
9908 case 488:
9909 /* rule 488 can match eol */
9910 case 489:
9911 /* rule 489 can match eol */
9912 YY_RULE_SETUP
9913 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9914         YY_BREAK
9915 case 490:
9916 /* rule 490 can match eol */
9917 case 491:
9918 /* rule 491 can match eol */
9919 YY_RULE_SETUP
9920 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9921         YY_BREAK
9922 case 492:
9923 /* rule 492 can match eol */
9924 case 493:
9925 /* rule 493 can match eol */
9926 YY_RULE_SETUP
9927 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_yes;
9928         YY_BREAK
9929 case 494:
9930 /* rule 494 can match eol */
9931 case 495:
9932 /* rule 495 can match eol */
9933 YY_RULE_SETUP
9934 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_no;
9935         YY_BREAK
9936 case 496:
9937 YY_RULE_SETUP
9938 {
9939   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9940   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9941   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9942  }
9943         YY_BREAK
9944 case 497:
9945 YY_RULE_SETUP
9946 {
9947   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9948   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9949   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
9950   switch (YY_START) {
9951    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
9952    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9953   }
9954  }
9955         YY_BREAK
9956 case 498:
9957 YY_RULE_SETUP
9958 FAIL("Unexpected character `%c' in attribute list of route element.", yytext[0]);
9959         YY_BREAK
9960 case 499:
9961 YY_RULE_SETUP
9962 FAIL("Bad attribute `%s' in `route' element start tag.",yytext);
9963         YY_BREAK
9964 case YY_STATE_EOF(AL_surfxml_route):
9965 FAIL("EOF in attribute list of `route' element.");
9966         YY_BREAK
9967
9968 case 500:
9969 /* rule 500 can match eol */
9970 YY_RULE_SETUP
9971 {
9972   LEAVE;
9973   ETag_surfxml_route();
9974   popbuffer(); /* attribute */
9975   switch (YY_START) {
9976    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
9977    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9978   }
9979  }
9980         YY_BREAK
9981 case 501:
9982 /* rule 501 can match eol */
9983 YY_RULE_SETUP
9984 FAIL("Unexpected end-tag `%s': `</route>' expected.",yytext);
9985         YY_BREAK
9986 case 502:
9987 YY_RULE_SETUP
9988 FAIL("Unexpected character `%c': `</route>' expected.",yytext[0]);
9989         YY_BREAK
9990 case YY_STATE_EOF(E_surfxml_route):
9991 case YY_STATE_EOF(S_surfxml_route):
9992 case YY_STATE_EOF(S_surfxml_route_2):
9993 FAIL("Premature EOF: `</route>' expected.");
9994         YY_BREAK
9995
9996 case 503:
9997 /* rule 503 can match eol */
9998 YY_RULE_SETUP
9999 FAIL("Starting tag <router> is not allowed here.");
10000         YY_BREAK
10001 case 504:
10002 /* rule 504 can match eol */
10003 YY_RULE_SETUP
10004 {
10005   AX_surfxml_router_coordinates = 0;
10006   surfxml_router_coordinates_isset = 0;
10007   AX_surfxml_router_id = 0;
10008   surfxml_router_id_isset = 0;
10009   ENTER(AL_surfxml_router); pushbuffer(0);
10010   }
10011         YY_BREAK
10012
10013 case 505:
10014 /* rule 505 can match eol */
10015 YY_RULE_SETUP
10016 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
10017         YY_BREAK
10018 case 506:
10019 /* rule 506 can match eol */
10020 YY_RULE_SETUP
10021 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
10022         YY_BREAK
10023 case 507:
10024 /* rule 507 can match eol */
10025 YY_RULE_SETUP
10026 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
10027         YY_BREAK
10028 case 508:
10029 /* rule 508 can match eol */
10030 YY_RULE_SETUP
10031 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
10032         YY_BREAK
10033 case 509:
10034 YY_RULE_SETUP
10035 {
10036   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10037   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
10038  }
10039         YY_BREAK
10040 case 510:
10041 YY_RULE_SETUP
10042 {
10043   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10044   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
10045   switch (YY_START) {
10046    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10047    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10048   }
10049  }
10050         YY_BREAK
10051 case 511:
10052 YY_RULE_SETUP
10053 FAIL("Unexpected character `%c' in attribute list of router element.", yytext[0]);
10054         YY_BREAK
10055 case 512:
10056 YY_RULE_SETUP
10057 FAIL("Bad attribute `%s' in `router' element start tag.",yytext);
10058         YY_BREAK
10059 case YY_STATE_EOF(AL_surfxml_router):
10060 FAIL("EOF in attribute list of `router' element.");
10061         YY_BREAK
10062
10063 case 513:
10064 /* rule 513 can match eol */
10065 YY_RULE_SETUP
10066 {
10067   LEAVE;
10068   ETag_surfxml_router();
10069   popbuffer(); /* attribute */
10070   switch (YY_START) {
10071    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10072    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10073   }
10074  }
10075         YY_BREAK
10076 case 514:
10077 /* rule 514 can match eol */
10078 YY_RULE_SETUP
10079 FAIL("Unexpected end-tag `%s': `</router>' expected.",yytext);
10080         YY_BREAK
10081 case 515:
10082 YY_RULE_SETUP
10083 FAIL("Unexpected character `%c': `</router>' expected.",yytext[0]);
10084         YY_BREAK
10085 case YY_STATE_EOF(E_surfxml_router):
10086 FAIL("Premature EOF: `</router>' expected.");
10087         YY_BREAK
10088
10089 case 516:
10090 /* rule 516 can match eol */
10091 YY_RULE_SETUP
10092 FAIL("Starting tag <storage> is not allowed here.");
10093         YY_BREAK
10094 case 517:
10095 /* rule 517 can match eol */
10096 YY_RULE_SETUP
10097 {
10098   AX_surfxml_storage_attach = 0;
10099   surfxml_storage_attach_isset = 0;
10100   AX_surfxml_storage_content = 0;
10101   surfxml_storage_content_isset = 0;
10102   AX_surfxml_storage_id = 0;
10103   surfxml_storage_id_isset = 0;
10104   AX_surfxml_storage_typeId = 0;
10105   surfxml_storage_typeId_isset = 0;
10106   ENTER(AL_surfxml_storage); pushbuffer(0);
10107   }
10108         YY_BREAK
10109
10110 case 518:
10111 /* rule 518 can match eol */
10112 YY_RULE_SETUP
10113 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
10114         YY_BREAK
10115 case 519:
10116 /* rule 519 can match eol */
10117 YY_RULE_SETUP
10118 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
10119         YY_BREAK
10120 case 520:
10121 /* rule 520 can match eol */
10122 YY_RULE_SETUP
10123 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
10124         YY_BREAK
10125 case 521:
10126 /* rule 521 can match eol */
10127 YY_RULE_SETUP
10128 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
10129         YY_BREAK
10130 case 522:
10131 /* rule 522 can match eol */
10132 YY_RULE_SETUP
10133 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
10134         YY_BREAK
10135 case 523:
10136 /* rule 523 can match eol */
10137 YY_RULE_SETUP
10138 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
10139         YY_BREAK
10140 case 524:
10141 /* rule 524 can match eol */
10142 YY_RULE_SETUP
10143 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
10144         YY_BREAK
10145 case 525:
10146 /* rule 525 can match eol */
10147 YY_RULE_SETUP
10148 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
10149         YY_BREAK
10150 case 526:
10151 YY_RULE_SETUP
10152 {
10153   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10154   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10155   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10156   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
10157  }
10158         YY_BREAK
10159 case 527:
10160 YY_RULE_SETUP
10161 {
10162   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10163   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10164   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10165   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
10166   switch (YY_START) {
10167    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10168    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10169   }
10170  }
10171         YY_BREAK
10172 case 528:
10173 YY_RULE_SETUP
10174 FAIL("Unexpected character `%c' in attribute list of storage element.", yytext[0]);
10175         YY_BREAK
10176 case 529:
10177 YY_RULE_SETUP
10178 FAIL("Bad attribute `%s' in `storage' element start tag.",yytext);
10179         YY_BREAK
10180 case YY_STATE_EOF(AL_surfxml_storage):
10181 FAIL("EOF in attribute list of `storage' element.");
10182         YY_BREAK
10183
10184 case 530:
10185 /* rule 530 can match eol */
10186 YY_RULE_SETUP
10187 {
10188   LEAVE;
10189   ETag_surfxml_storage();
10190   popbuffer(); /* attribute */
10191   switch (YY_START) {
10192    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10193    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10194   }
10195  }
10196         YY_BREAK
10197 case 531:
10198 /* rule 531 can match eol */
10199 YY_RULE_SETUP
10200 FAIL("Unexpected end-tag `%s': `</storage>' expected.",yytext);
10201         YY_BREAK
10202 case 532:
10203 YY_RULE_SETUP
10204 FAIL("Unexpected character `%c': `</storage>' expected.",yytext[0]);
10205         YY_BREAK
10206 case YY_STATE_EOF(E_surfxml_storage):
10207 case YY_STATE_EOF(S_surfxml_storage):
10208 case YY_STATE_EOF(S_surfxml_storage_2):
10209 FAIL("Premature EOF: `</storage>' expected.");
10210         YY_BREAK
10211
10212 case 533:
10213 /* rule 533 can match eol */
10214 YY_RULE_SETUP
10215 FAIL("Starting tag <storage_type> is not allowed here.");
10216         YY_BREAK
10217 case 534:
10218 /* rule 534 can match eol */
10219 YY_RULE_SETUP
10220 {
10221   AX_surfxml_storage___type_content = 0;
10222   surfxml_storage___type_content_isset = 0;
10223   AX_surfxml_storage___type_id = 0;
10224   surfxml_storage___type_id_isset = 0;
10225   AX_surfxml_storage___type_model = 16;
10226   surfxml_storage___type_model_isset = 0;
10227   AX_surfxml_storage___type_size = 0;
10228   surfxml_storage___type_size_isset = 0;
10229   ENTER(AL_surfxml_storage___type); pushbuffer(0);
10230   }
10231         YY_BREAK
10232
10233 case 535:
10234 /* rule 535 can match eol */
10235 YY_RULE_SETUP
10236 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
10237         YY_BREAK
10238 case 536:
10239 /* rule 536 can match eol */
10240 YY_RULE_SETUP
10241 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
10242         YY_BREAK
10243 case 537:
10244 /* rule 537 can match eol */
10245 YY_RULE_SETUP
10246 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
10247         YY_BREAK
10248 case 538:
10249 /* rule 538 can match eol */
10250 YY_RULE_SETUP
10251 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
10252         YY_BREAK
10253 case 539:
10254 /* rule 539 can match eol */
10255 YY_RULE_SETUP
10256 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
10257         YY_BREAK
10258 case 540:
10259 /* rule 540 can match eol */
10260 YY_RULE_SETUP
10261 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
10262         YY_BREAK
10263 case 541:
10264 /* rule 541 can match eol */
10265 YY_RULE_SETUP
10266 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
10267         YY_BREAK
10268 case 542:
10269 /* rule 542 can match eol */
10270 YY_RULE_SETUP
10271 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
10272         YY_BREAK
10273 case 543:
10274 YY_RULE_SETUP
10275 {
10276   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10277   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10278   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
10279  }
10280         YY_BREAK
10281 case 544:
10282 YY_RULE_SETUP
10283 {
10284   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10285   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10286   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
10287   switch (YY_START) {
10288    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10289    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10290   }
10291  }
10292         YY_BREAK
10293 case 545:
10294 YY_RULE_SETUP
10295 FAIL("Unexpected character `%c' in attribute list of storage_type element.", yytext[0]);
10296         YY_BREAK
10297 case 546:
10298 YY_RULE_SETUP
10299 FAIL("Bad attribute `%s' in `storage_type' element start tag.",yytext);
10300         YY_BREAK
10301 case YY_STATE_EOF(AL_surfxml_storage___type):
10302 FAIL("EOF in attribute list of `storage_type' element.");
10303         YY_BREAK
10304
10305 case 547:
10306 /* rule 547 can match eol */
10307 YY_RULE_SETUP
10308 {
10309   LEAVE;
10310   ETag_surfxml_storage___type();
10311   popbuffer(); /* attribute */
10312   switch (YY_START) {
10313    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10314    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10315   }
10316  }
10317         YY_BREAK
10318 case 548:
10319 /* rule 548 can match eol */
10320 YY_RULE_SETUP
10321 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",yytext);
10322         YY_BREAK
10323 case 549:
10324 YY_RULE_SETUP
10325 FAIL("Unexpected character `%c': `</storage_type>' expected.",yytext[0]);
10326         YY_BREAK
10327 case YY_STATE_EOF(E_surfxml_storage___type):
10328 case YY_STATE_EOF(S_surfxml_storage___type):
10329 case YY_STATE_EOF(S_surfxml_storage___type_2):
10330 FAIL("Premature EOF: `</storage_type>' expected.");
10331         YY_BREAK
10332
10333 case 550:
10334 /* rule 550 can match eol */
10335 YY_RULE_SETUP
10336 FAIL("Starting tag <trace> is not allowed here.");
10337         YY_BREAK
10338 case 551:
10339 /* rule 551 can match eol */
10340 YY_RULE_SETUP
10341 {
10342   AX_surfxml_trace_file = 0;
10343   surfxml_trace_file_isset = 0;
10344   AX_surfxml_trace_id = 0;
10345   surfxml_trace_id_isset = 0;
10346   AX_surfxml_trace_periodicity = 0;
10347   surfxml_trace_periodicity_isset = 0;
10348   ENTER(AL_surfxml_trace); pushbuffer(0);
10349   }
10350         YY_BREAK
10351
10352 case 552:
10353 /* rule 552 can match eol */
10354 YY_RULE_SETUP
10355 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
10356         YY_BREAK
10357 case 553:
10358 /* rule 553 can match eol */
10359 YY_RULE_SETUP
10360 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
10361         YY_BREAK
10362 case 554:
10363 /* rule 554 can match eol */
10364 YY_RULE_SETUP
10365 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
10366         YY_BREAK
10367 case 555:
10368 /* rule 555 can match eol */
10369 YY_RULE_SETUP
10370 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
10371         YY_BREAK
10372 case 556:
10373 /* rule 556 can match eol */
10374 YY_RULE_SETUP
10375 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
10376         YY_BREAK
10377 case 557:
10378 /* rule 557 can match eol */
10379 YY_RULE_SETUP
10380 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
10381         YY_BREAK
10382 case 558:
10383 YY_RULE_SETUP
10384 {
10385   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10386   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10387   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
10388  }
10389         YY_BREAK
10390 case 559:
10391 YY_RULE_SETUP
10392 {
10393   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10394   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10395   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
10396   switch (YY_START) {
10397    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10398    case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10399    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10400    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10401    case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10402    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10403    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10404    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10405    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10406    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10407    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10408    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10409   }
10410  }
10411         YY_BREAK
10412 case 560:
10413 YY_RULE_SETUP
10414 FAIL("Unexpected character `%c' in attribute list of trace element.", yytext[0]);
10415         YY_BREAK
10416 case 561:
10417 YY_RULE_SETUP
10418 FAIL("Bad attribute `%s' in `trace' element start tag.",yytext);
10419         YY_BREAK
10420 case YY_STATE_EOF(AL_surfxml_trace):
10421 FAIL("EOF in attribute list of `trace' element.");
10422         YY_BREAK
10423
10424 case 562:
10425 /* rule 562 can match eol */
10426 YY_RULE_SETUP
10427 {
10428   LEAVE;
10429   BUFFERDONE;
10430   ETag_surfxml_trace();
10431   surfxml_pcdata_ix = popbuffer();
10432   popbuffer(); /* attribute */
10433   switch (YY_START) {
10434    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10435    case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10436    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10437    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10438    case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10439    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10440    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10441    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10442    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10443    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10444    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10445    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10446   }
10447  }
10448         YY_BREAK
10449 case 563:
10450 /* rule 563 can match eol */
10451 YY_RULE_SETUP
10452 FAIL("Unexpected end-tag `%s': `</trace>' expected.",yytext);
10453         YY_BREAK
10454 case YY_STATE_EOF(IN_trace):
10455 FAIL("Premature EOF: `</trace>' expected.");
10456         YY_BREAK
10457
10458 case 564:
10459 /* rule 564 can match eol */
10460 YY_RULE_SETUP
10461 FAIL("Starting tag <trace_connect> is not allowed here.");
10462         YY_BREAK
10463 case 565:
10464 /* rule 565 can match eol */
10465 YY_RULE_SETUP
10466 {
10467   AX_surfxml_trace___connect_element = 0;
10468   surfxml_trace___connect_element_isset = 0;
10469   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10470   surfxml_trace___connect_kind_isset = 0;
10471   AX_surfxml_trace___connect_trace = 0;
10472   surfxml_trace___connect_trace_isset = 0;
10473   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10474   }
10475         YY_BREAK
10476
10477 case 566:
10478 /* rule 566 can match eol */
10479 YY_RULE_SETUP
10480 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
10481         YY_BREAK
10482 case 567:
10483 /* rule 567 can match eol */
10484 YY_RULE_SETUP
10485 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
10486         YY_BREAK
10487 case 568:
10488 /* rule 568 can match eol */
10489 case 569:
10490 /* rule 569 can match eol */
10491 YY_RULE_SETUP
10492 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10493         YY_BREAK
10494 case 570:
10495 /* rule 570 can match eol */
10496 case 571:
10497 /* rule 571 can match eol */
10498 YY_RULE_SETUP
10499 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10500         YY_BREAK
10501 case 572:
10502 /* rule 572 can match eol */
10503 case 573:
10504 /* rule 573 can match eol */
10505 YY_RULE_SETUP
10506 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10507         YY_BREAK
10508 case 574:
10509 /* rule 574 can match eol */
10510 case 575:
10511 /* rule 575 can match eol */
10512 YY_RULE_SETUP
10513 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10514         YY_BREAK
10515 case 576:
10516 /* rule 576 can match eol */
10517 case 577:
10518 /* rule 577 can match eol */
10519 YY_RULE_SETUP
10520 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10521         YY_BREAK
10522 case 578:
10523 /* rule 578 can match eol */
10524 YY_RULE_SETUP
10525 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
10526         YY_BREAK
10527 case 579:
10528 /* rule 579 can match eol */
10529 YY_RULE_SETUP
10530 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
10531         YY_BREAK
10532 case 580:
10533 YY_RULE_SETUP
10534 {
10535   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10536   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10537   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10538  }
10539         YY_BREAK
10540 case 581:
10541 YY_RULE_SETUP
10542 {
10543   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10544   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10545   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10546   switch (YY_START) {
10547    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10548    case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10549    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10550    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10551    case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10552    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10553    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10554    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10555    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10556    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10557    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10558    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10559   }
10560  }
10561         YY_BREAK
10562 case 582:
10563 YY_RULE_SETUP
10564 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", yytext[0]);
10565         YY_BREAK
10566 case 583:
10567 YY_RULE_SETUP
10568 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",yytext);
10569         YY_BREAK
10570 case YY_STATE_EOF(AL_surfxml_trace___connect):
10571 FAIL("EOF in attribute list of `trace_connect' element.");
10572         YY_BREAK
10573
10574 case 584:
10575 /* rule 584 can match eol */
10576 YY_RULE_SETUP
10577 {
10578   LEAVE;
10579   ETag_surfxml_trace___connect();
10580   popbuffer(); /* attribute */
10581   switch (YY_START) {
10582    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10583    case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10584    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10585    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10586    case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10587    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10588    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10589    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10590    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10591    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10592    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10593    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10594   }
10595  }
10596         YY_BREAK
10597 case 585:
10598 /* rule 585 can match eol */
10599 YY_RULE_SETUP
10600 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",yytext);
10601         YY_BREAK
10602 case 586:
10603 YY_RULE_SETUP
10604 FAIL("Unexpected character `%c': `</trace_connect>' expected.",yytext[0]);
10605         YY_BREAK
10606 case YY_STATE_EOF(E_surfxml_trace___connect):
10607 FAIL("Premature EOF: `</trace_connect>' expected.");
10608         YY_BREAK
10609
10610 /* <!-- A zone is either an internal node that contains other zones, 
10611   *      or a  leaf containing hosts and other leaf-like elements -->
10612   *           (((AS|zone|include|link|backbone|cluster|peer|trace|trace_connect)*,
10613   *             (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
10614   *         (trace|trace_connect)*)
10615   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
10616   *          (route|trace|trace_connect|bypassRoute)*)))>  */
10617 case 587:
10618 /* rule 587 can match eol */
10619 YY_RULE_SETUP
10620 FAIL("Starting tag <zone> is not allowed here.");
10621         YY_BREAK
10622 case 588:
10623 /* rule 588 can match eol */
10624 YY_RULE_SETUP
10625 {
10626   AX_surfxml_zone_id = 0;
10627   surfxml_zone_id_isset = 0;
10628   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10629   surfxml_zone_routing_isset = 0;
10630   ENTER(AL_surfxml_zone); pushbuffer(0);
10631   }
10632         YY_BREAK
10633
10634 case 589:
10635 /* rule 589 can match eol */
10636 YY_RULE_SETUP
10637 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");} surfxml_zone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zone_id);
10638         YY_BREAK
10639 case 590:
10640 /* rule 590 can match eol */
10641 YY_RULE_SETUP
10642 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");}  surfxml_zone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zone_id);
10643         YY_BREAK
10644 case 591:
10645 /* rule 591 can match eol */
10646 case 592:
10647 /* rule 592 can match eol */
10648 YY_RULE_SETUP
10649 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10650         YY_BREAK
10651 case 593:
10652 /* rule 593 can match eol */
10653 case 594:
10654 /* rule 594 can match eol */
10655 YY_RULE_SETUP
10656 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10657         YY_BREAK
10658 case 595:
10659 /* rule 595 can match eol */
10660 case 596:
10661 /* rule 596 can match eol */
10662 YY_RULE_SETUP
10663 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10664         YY_BREAK
10665 case 597:
10666 /* rule 597 can match eol */
10667 case 598:
10668 /* rule 598 can match eol */
10669 YY_RULE_SETUP
10670 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10671         YY_BREAK
10672 case 599:
10673 /* rule 599 can match eol */
10674 case 600:
10675 /* rule 600 can match eol */
10676 YY_RULE_SETUP
10677 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10678         YY_BREAK
10679 case 601:
10680 /* rule 601 can match eol */
10681 case 602:
10682 /* rule 602 can match eol */
10683 YY_RULE_SETUP
10684 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10685         YY_BREAK
10686 case 603:
10687 /* rule 603 can match eol */
10688 case 604:
10689 /* rule 604 can match eol */
10690 YY_RULE_SETUP
10691 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10692         YY_BREAK
10693 case 605:
10694 /* rule 605 can match eol */
10695 case 606:
10696 /* rule 606 can match eol */
10697 YY_RULE_SETUP
10698 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10699         YY_BREAK
10700 case 607:
10701 /* rule 607 can match eol */
10702 case 608:
10703 /* rule 608 can match eol */
10704 YY_RULE_SETUP
10705 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10706         YY_BREAK
10707 case 609:
10708 /* rule 609 can match eol */
10709 case 610:
10710 /* rule 610 can match eol */
10711 YY_RULE_SETUP
10712 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10713         YY_BREAK
10714 case 611:
10715 YY_RULE_SETUP
10716 {
10717   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10718   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10719   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10720  }
10721         YY_BREAK
10722 case 612:
10723 YY_RULE_SETUP
10724 {
10725   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10726   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10727   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10728   switch (YY_START) {
10729    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10730    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10731    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10732    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10733   }
10734  }
10735         YY_BREAK
10736 case 613:
10737 YY_RULE_SETUP
10738 FAIL("Unexpected character `%c' in attribute list of zone element.", yytext[0]);
10739         YY_BREAK
10740 case 614:
10741 YY_RULE_SETUP
10742 FAIL("Bad attribute `%s' in `zone' element start tag.",yytext);
10743         YY_BREAK
10744 case YY_STATE_EOF(AL_surfxml_zone):
10745 FAIL("EOF in attribute list of `zone' element.");
10746         YY_BREAK
10747
10748 case 615:
10749 /* rule 615 can match eol */
10750 YY_RULE_SETUP
10751 {
10752   LEAVE;
10753   ETag_surfxml_zone();
10754   popbuffer(); /* attribute */
10755   switch (YY_START) {
10756    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10757    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10758    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10759    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10760   }
10761  }
10762         YY_BREAK
10763 case 616:
10764 /* rule 616 can match eol */
10765 YY_RULE_SETUP
10766 FAIL("Unexpected end-tag `%s': `</zone>' expected.",yytext);
10767         YY_BREAK
10768 case 617:
10769 YY_RULE_SETUP
10770 FAIL("Unexpected character `%c': `</zone>' expected.",yytext[0]);
10771         YY_BREAK
10772 case YY_STATE_EOF(E_surfxml_zone):
10773 case YY_STATE_EOF(S_surfxml_zone):
10774 case YY_STATE_EOF(S_surfxml_zone_1):
10775 case YY_STATE_EOF(S_surfxml_zone_11):
10776 case YY_STATE_EOF(S_surfxml_zone_12):
10777 case YY_STATE_EOF(S_surfxml_zone_14):
10778 case YY_STATE_EOF(S_surfxml_zone_16):
10779 case YY_STATE_EOF(S_surfxml_zone_3):
10780 case YY_STATE_EOF(S_surfxml_zone_4):
10781 case YY_STATE_EOF(S_surfxml_zone_6):
10782 case YY_STATE_EOF(S_surfxml_zone_7):
10783 case YY_STATE_EOF(S_surfxml_zone_9):
10784 FAIL("Premature EOF: `</zone>' expected.");
10785         YY_BREAK
10786
10787 case 618:
10788 /* rule 618 can match eol */
10789 YY_RULE_SETUP
10790 FAIL("Starting tag <zoneRoute> is not allowed here.");
10791         YY_BREAK
10792 case 619:
10793 /* rule 619 can match eol */
10794 YY_RULE_SETUP
10795 {
10796   AX_surfxml_zoneRoute_dst = 0;
10797   surfxml_zoneRoute_dst_isset = 0;
10798   AX_surfxml_zoneRoute_gw___dst = 0;
10799   surfxml_zoneRoute_gw___dst_isset = 0;
10800   AX_surfxml_zoneRoute_gw___src = 0;
10801   surfxml_zoneRoute_gw___src_isset = 0;
10802   AX_surfxml_zoneRoute_src = 0;
10803   surfxml_zoneRoute_src_isset = 0;
10804   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10805   surfxml_zoneRoute_symmetrical_isset = 0;
10806   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10807   }
10808         YY_BREAK
10809
10810 case 620:
10811 /* rule 620 can match eol */
10812 YY_RULE_SETUP
10813 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_dst);
10814         YY_BREAK
10815 case 621:
10816 /* rule 621 can match eol */
10817 YY_RULE_SETUP
10818 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_dst);
10819         YY_BREAK
10820 case 622:
10821 /* rule 622 can match eol */
10822 YY_RULE_SETUP
10823 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10824         YY_BREAK
10825 case 623:
10826 /* rule 623 can match eol */
10827 YY_RULE_SETUP
10828 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10829         YY_BREAK
10830 case 624:
10831 /* rule 624 can match eol */
10832 YY_RULE_SETUP
10833 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10834         YY_BREAK
10835 case 625:
10836 /* rule 625 can match eol */
10837 YY_RULE_SETUP
10838 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10839         YY_BREAK
10840 case 626:
10841 /* rule 626 can match eol */
10842 YY_RULE_SETUP
10843 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");} surfxml_zoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_src);
10844         YY_BREAK
10845 case 627:
10846 /* rule 627 can match eol */
10847 YY_RULE_SETUP
10848 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_src);
10849         YY_BREAK
10850 case 628:
10851 /* rule 628 can match eol */
10852 case 629:
10853 /* rule 629 can match eol */
10854 YY_RULE_SETUP
10855 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10856         YY_BREAK
10857 case 630:
10858 /* rule 630 can match eol */
10859 case 631:
10860 /* rule 631 can match eol */
10861 YY_RULE_SETUP
10862 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10863         YY_BREAK
10864 case 632:
10865 /* rule 632 can match eol */
10866 case 633:
10867 /* rule 633 can match eol */
10868 YY_RULE_SETUP
10869 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_yes;
10870         YY_BREAK
10871 case 634:
10872 /* rule 634 can match eol */
10873 case 635:
10874 /* rule 635 can match eol */
10875 YY_RULE_SETUP
10876 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_no;
10877         YY_BREAK
10878 case 636:
10879 YY_RULE_SETUP
10880 {
10881   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10882   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10883   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10884   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10885   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10886  }
10887         YY_BREAK
10888 case 637:
10889 YY_RULE_SETUP
10890 {
10891   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10892   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10893   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10894   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10895   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10896   switch (YY_START) {
10897    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10898    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10899   }
10900  }
10901         YY_BREAK
10902 case 638:
10903 YY_RULE_SETUP
10904 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", yytext[0]);
10905         YY_BREAK
10906 case 639:
10907 YY_RULE_SETUP
10908 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",yytext);
10909         YY_BREAK
10910 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10911 FAIL("EOF in attribute list of `zoneRoute' element.");
10912         YY_BREAK
10913
10914 case 640:
10915 /* rule 640 can match eol */
10916 YY_RULE_SETUP
10917 {
10918   LEAVE;
10919   ETag_surfxml_zoneRoute();
10920   popbuffer(); /* attribute */
10921   switch (YY_START) {
10922    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10923    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10924   }
10925  }
10926         YY_BREAK
10927 case 641:
10928 /* rule 641 can match eol */
10929 YY_RULE_SETUP
10930 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",yytext);
10931         YY_BREAK
10932 case 642:
10933 YY_RULE_SETUP
10934 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",yytext[0]);
10935         YY_BREAK
10936 case YY_STATE_EOF(E_surfxml_zoneRoute):
10937 case YY_STATE_EOF(S_surfxml_zoneRoute):
10938 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10939 FAIL("Premature EOF: `</zoneRoute>' expected.");
10940         YY_BREAK
10941
10942 /* EPILOG: after the root element. */
10943
10944 case 643:
10945 YY_RULE_SETUP
10946 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
10947         YY_BREAK
10948 case YY_STATE_EOF(EPILOG):
10949 SUCCEED;
10950         YY_BREAK
10951
10952 /* CHARACTER DATA. */
10953
10954 /* Non-defined standard entities... */
10955 case 644:
10956 YY_RULE_SETUP
10957 BUFFERPUTC('&');
10958         YY_BREAK
10959 case 645:
10960 YY_RULE_SETUP
10961 BUFFERPUTC('<');
10962         YY_BREAK
10963 case 646:
10964 YY_RULE_SETUP
10965 BUFFERPUTC('>');
10966         YY_BREAK
10967 case 647:
10968 YY_RULE_SETUP
10969 BUFFERPUTC('\'');
10970         YY_BREAK
10971 case 648:
10972 YY_RULE_SETUP
10973 BUFFERPUTC('"');
10974         YY_BREAK
10975 /* Character entities. */
10976 case 649:
10977 YY_RULE_SETUP
10978 BUFFERPUTC((unsigned char)atoi(yytext+2));
10979         YY_BREAK
10980 case 650:
10981 YY_RULE_SETUP
10982 BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16));
10983         YY_BREAK
10984
10985 case 651:
10986 /* rule 651 can match eol */
10987 case 652:
10988 /* rule 652 can match eol */
10989 case 653:
10990 /* rule 653 can match eol */
10991 case 654:
10992 /* rule 654 can match eol */
10993 YY_RULE_SETUP
10994 BUFFERPUTC('\n');
10995         YY_BREAK
10996
10997 case 655:
10998 YY_RULE_SETUP
10999 ENTER(CDATA);
11000         YY_BREAK
11001 case 656:
11002 YY_RULE_SETUP
11003 FAIL("Unexpected `]""]>' in character data.");
11004         YY_BREAK
11005
11006 case 657:
11007 YY_RULE_SETUP
11008 BUFFERDONE; LEAVE;
11009         YY_BREAK
11010 case YY_STATE_EOF(VALUE1):
11011 FAIL("EOF in literal (\"'\" expected).");
11012         YY_BREAK
11013
11014 case 658:
11015 YY_RULE_SETUP
11016 BUFFERDONE; LEAVE;
11017         YY_BREAK
11018 case YY_STATE_EOF(VALUE2):
11019 FAIL("EOF in literal (`\"' expected).");
11020         YY_BREAK
11021
11022 case 659:
11023 /* rule 659 can match eol */
11024 YY_RULE_SETUP
11025 BUFFERPUTC(yytext[0]);
11026         YY_BREAK
11027 case 660:
11028 YY_RULE_SETUP
11029 FAIL("Spurious `%c' in character data.",yytext[0]);
11030         YY_BREAK
11031
11032 case 661:
11033 YY_RULE_SETUP
11034 LEAVE;
11035         YY_BREAK
11036 /* "]""]"               BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); */
11037 case 662:
11038 YY_RULE_SETUP
11039 BUFFERPUTC(yytext[0]);
11040         YY_BREAK
11041 case YY_STATE_EOF(CDATA):
11042 FAIL("EOF in CDATA section.");
11043         YY_BREAK
11044
11045 /* Impossible rules to avoid warnings from flex(1). */
11046 /* Ideally, this should be replaced by code in flexml.pl that
11047     generates just the states not covered by other rules. */
11048
11049 case 663:
11050 /* rule 663 can match eol */
11051 YY_RULE_SETUP
11052 FAIL("Syntax error on character `%c'.", yytext[0]);
11053         YY_BREAK
11054
11055 case 664:
11056 YY_RULE_SETUP
11057 ECHO;
11058         YY_BREAK
11059 case YY_STATE_EOF(INITIAL):
11060 case YY_STATE_EOF(S_surfxml_AS_2):
11061 case YY_STATE_EOF(S_surfxml_AS_5):
11062 case YY_STATE_EOF(S_surfxml_AS_8):
11063 case YY_STATE_EOF(S_surfxml_AS_10):
11064 case YY_STATE_EOF(S_surfxml_AS_13):
11065 case YY_STATE_EOF(S_surfxml_AS_15):
11066 case YY_STATE_EOF(S_surfxml_ASroute_1):
11067 case YY_STATE_EOF(S_surfxml_actor_1):
11068 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
11069 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
11070 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
11071 case YY_STATE_EOF(S_surfxml_cluster_1):
11072 case YY_STATE_EOF(S_surfxml_config_1):
11073 case YY_STATE_EOF(S_surfxml_host_1):
11074 case YY_STATE_EOF(S_surfxml_include_1):
11075 case YY_STATE_EOF(S_surfxml_link_1):
11076 case YY_STATE_EOF(ROOT_surfxml_platform):
11077 case YY_STATE_EOF(S_surfxml_platform_2):
11078 case YY_STATE_EOF(S_surfxml_platform_5):
11079 case YY_STATE_EOF(S_surfxml_platform_7):
11080 case YY_STATE_EOF(S_surfxml_process_1):
11081 case YY_STATE_EOF(S_surfxml_route_1):
11082 case YY_STATE_EOF(S_surfxml_storage_1):
11083 case YY_STATE_EOF(S_surfxml_storage___type_1):
11084 case YY_STATE_EOF(S_surfxml_zone_2):
11085 case YY_STATE_EOF(S_surfxml_zone_5):
11086 case YY_STATE_EOF(S_surfxml_zone_8):
11087 case YY_STATE_EOF(S_surfxml_zone_10):
11088 case YY_STATE_EOF(S_surfxml_zone_13):
11089 case YY_STATE_EOF(S_surfxml_zone_15):
11090 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
11091 case YY_STATE_EOF(IMPOSSIBLE):
11092         yyterminate();
11093
11094         case YY_END_OF_BUFFER:
11095                 {
11096                 /* Amount of text matched not including the EOB char. */
11097                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
11098
11099                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
11100                 *yy_cp = (yy_hold_char);
11101                 YY_RESTORE_YY_MORE_OFFSET
11102
11103                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
11104                         {
11105                         /* We're scanning a new file or input source.  It's
11106                          * possible that this happened because the user
11107                          * just pointed yyin at a new source and called
11108                          * yylex().  If so, then we have to assure
11109                          * consistency between YY_CURRENT_BUFFER and our
11110                          * globals.  Here is the right place to do so, because
11111                          * this is the first action (other than possibly a
11112                          * back-up) that will match for the new input source.
11113                          */
11114                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11115                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
11116                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
11117                         }
11118
11119                 /* Note that here we test for yy_c_buf_p "<=" to the position
11120                  * of the first EOB in the buffer, since yy_c_buf_p will
11121                  * already have been incremented past the NUL character
11122                  * (since all states make transitions on EOB to the
11123                  * end-of-buffer state).  Contrast this with the test
11124                  * in input().
11125                  */
11126                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11127                         { /* This was really a NUL. */
11128                         yy_state_type yy_next_state;
11129
11130                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
11131
11132                         yy_current_state = yy_get_previous_state(  );
11133
11134                         /* Okay, we're now positioned to make the NUL
11135                          * transition.  We couldn't have
11136                          * yy_get_previous_state() go ahead and do it
11137                          * for us because it doesn't know how to deal
11138                          * with the possibility of jamming (and we don't
11139                          * want to build jamming into it because then it
11140                          * will run more slowly).
11141                          */
11142
11143                         yy_next_state = yy_try_NUL_trans( yy_current_state );
11144
11145                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11146
11147                         if ( yy_next_state )
11148                                 {
11149                                 /* Consume the NUL. */
11150                                 yy_cp = ++(yy_c_buf_p);
11151                                 yy_current_state = yy_next_state;
11152                                 goto yy_match;
11153                                 }
11154
11155                         else
11156                                 {
11157                                 yy_cp = (yy_c_buf_p);
11158                                 goto yy_find_action;
11159                                 }
11160                         }
11161
11162                 else switch ( yy_get_next_buffer(  ) )
11163                         {
11164                         case EOB_ACT_END_OF_FILE:
11165                                 {
11166                                 (yy_did_buffer_switch_on_eof) = 0;
11167
11168                                 if ( yywrap(  ) )
11169                                         {
11170                                         /* Note: because we've taken care in
11171                                          * yy_get_next_buffer() to have set up
11172                                          * yytext, we can now set up
11173                                          * yy_c_buf_p so that if some total
11174                                          * hoser (like flex itself) wants to
11175                                          * call the scanner after we return the
11176                                          * YY_NULL, it'll still work - another
11177                                          * YY_NULL will get returned.
11178                                          */
11179                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
11180
11181                                         yy_act = YY_STATE_EOF(YY_START);
11182                                         goto do_action;
11183                                         }
11184
11185                                 else
11186                                         {
11187                                         if ( ! (yy_did_buffer_switch_on_eof) )
11188                                                 YY_NEW_FILE;
11189                                         }
11190                                 break;
11191                                 }
11192
11193                         case EOB_ACT_CONTINUE_SCAN:
11194                                 (yy_c_buf_p) =
11195                                         (yytext_ptr) + yy_amount_of_matched_text;
11196
11197                                 yy_current_state = yy_get_previous_state(  );
11198
11199                                 yy_cp = (yy_c_buf_p);
11200                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11201                                 goto yy_match;
11202
11203                         case EOB_ACT_LAST_MATCH:
11204                                 (yy_c_buf_p) =
11205                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
11206
11207                                 yy_current_state = yy_get_previous_state(  );
11208
11209                                 yy_cp = (yy_c_buf_p);
11210                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11211                                 goto yy_find_action;
11212                         }
11213                 break;
11214                 }
11215
11216         default:
11217                 YY_FATAL_ERROR(
11218                         "fatal flex scanner internal error--no action found" );
11219         } /* end of action switch */
11220                 } /* end of scanning one token */
11221         } /* end of user's declarations */
11222 } /* end of yylex */
11223
11224 /* yy_get_next_buffer - try to read in a new buffer
11225  *
11226  * Returns a code representing an action:
11227  *      EOB_ACT_LAST_MATCH -
11228  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
11229  *      EOB_ACT_END_OF_FILE - end of file
11230  */
11231 static int yy_get_next_buffer (void)
11232 {
11233         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
11234         char *source = (yytext_ptr);
11235         int number_to_move, i;
11236         int ret_val;
11237
11238         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
11239                 YY_FATAL_ERROR(
11240                 "fatal flex scanner internal error--end of buffer missed" );
11241
11242         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
11243                 { /* Don't try to fill the buffer, so this is an EOF. */
11244                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
11245                         {
11246                         /* We matched a single character, the EOB, so
11247                          * treat this as a final EOF.
11248                          */
11249                         return EOB_ACT_END_OF_FILE;
11250                         }
11251
11252                 else
11253                         {
11254                         /* We matched some text prior to the EOB, first
11255                          * process it.
11256                          */
11257                         return EOB_ACT_LAST_MATCH;
11258                         }
11259                 }
11260
11261         /* Try to read more data. */
11262
11263         /* First move last chars to start of buffer. */
11264         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
11265
11266         for ( i = 0; i < number_to_move; ++i )
11267                 *(dest++) = *(source++);
11268
11269         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
11270                 /* don't do the read, it's not guaranteed to return an EOF,
11271                  * just force an EOF
11272                  */
11273                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
11274
11275         else
11276                 {
11277                         int num_to_read =
11278                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
11279
11280                 while ( num_to_read <= 0 )
11281                         { /* Not enough room in the buffer - grow it. */
11282
11283                         /* just a shorter name for the current buffer */
11284                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
11285
11286                         int yy_c_buf_p_offset =
11287                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
11288
11289                         if ( b->yy_is_our_buffer )
11290                                 {
11291                                 int new_size = b->yy_buf_size * 2;
11292
11293                                 if ( new_size <= 0 )
11294                                         b->yy_buf_size += b->yy_buf_size / 8;
11295                                 else
11296                                         b->yy_buf_size *= 2;
11297
11298                                 b->yy_ch_buf = (char *)
11299                                         /* Include room in for 2 EOB chars. */
11300                                         yyrealloc( (void *) b->yy_ch_buf,
11301                                                          (yy_size_t) (b->yy_buf_size + 2)  );
11302                                 }
11303                         else
11304                                 /* Can't grow it, we don't own it. */
11305                                 b->yy_ch_buf = NULL;
11306
11307                         if ( ! b->yy_ch_buf )
11308                                 YY_FATAL_ERROR(
11309                                 "fatal error - scanner input buffer overflow" );
11310
11311                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
11312
11313                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
11314                                                 number_to_move - 1;
11315
11316                         }
11317
11318                 if ( num_to_read > YY_READ_BUF_SIZE )
11319                         num_to_read = YY_READ_BUF_SIZE;
11320
11321                 /* Read in more data. */
11322                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
11323                         (yy_n_chars), num_to_read );
11324
11325                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11326                 }
11327
11328         if ( (yy_n_chars) == 0 )
11329                 {
11330                 if ( number_to_move == YY_MORE_ADJ )
11331                         {
11332                         ret_val = EOB_ACT_END_OF_FILE;
11333                         yyrestart( yyin  );
11334                         }
11335
11336                 else
11337                         {
11338                         ret_val = EOB_ACT_LAST_MATCH;
11339                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
11340                                 YY_BUFFER_EOF_PENDING;
11341                         }
11342                 }
11343
11344         else
11345                 ret_val = EOB_ACT_CONTINUE_SCAN;
11346
11347         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
11348                 /* Extend the array by 50%, plus the number we really need. */
11349                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
11350                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
11351                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
11352                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
11353                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
11354                 /* "- 2" to take care of EOB's */
11355                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
11356         }
11357
11358         (yy_n_chars) += number_to_move;
11359         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
11360         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
11361
11362         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
11363
11364         return ret_val;
11365 }
11366
11367 /* yy_get_previous_state - get the state just before the EOB char was reached */
11368
11369     static yy_state_type yy_get_previous_state (void)
11370 {
11371         yy_state_type yy_current_state;
11372         char *yy_cp;
11373     
11374         yy_current_state = (yy_start);
11375
11376         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
11377                 {
11378                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
11379                 if ( yy_accept[yy_current_state] )
11380                         {
11381                         (yy_last_accepting_state) = yy_current_state;
11382                         (yy_last_accepting_cpos) = yy_cp;
11383                         }
11384                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11385                         {
11386                         yy_current_state = (int) yy_def[yy_current_state];
11387                         if ( yy_current_state >= 4088 )
11388                                 yy_c = yy_meta[yy_c];
11389                         }
11390                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11391                 }
11392
11393         return yy_current_state;
11394 }
11395
11396 /* yy_try_NUL_trans - try to make a transition on the NUL character
11397  *
11398  * synopsis
11399  *      next_state = yy_try_NUL_trans( current_state );
11400  */
11401     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
11402 {
11403         int yy_is_jam;
11404         char *yy_cp = (yy_c_buf_p);
11405
11406         YY_CHAR yy_c = 1;
11407         if ( yy_accept[yy_current_state] )
11408                 {
11409                 (yy_last_accepting_state) = yy_current_state;
11410                 (yy_last_accepting_cpos) = yy_cp;
11411                 }
11412         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11413                 {
11414                 yy_current_state = (int) yy_def[yy_current_state];
11415                 if ( yy_current_state >= 4088 )
11416                         yy_c = yy_meta[yy_c];
11417                 }
11418         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11419         yy_is_jam = (yy_current_state == 4087);
11420
11421                 return yy_is_jam ? 0 : yy_current_state;
11422 }
11423
11424 #ifndef YY_NO_UNPUT
11425
11426 #endif
11427
11428 #ifndef YY_NO_INPUT
11429 #ifdef __cplusplus
11430     static int yyinput (void)
11431 #else
11432     static int input  (void)
11433 #endif
11434
11435 {
11436         int c;
11437     
11438         *(yy_c_buf_p) = (yy_hold_char);
11439
11440         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
11441                 {
11442                 /* yy_c_buf_p now points to the character we want to return.
11443                  * If this occurs *before* the EOB characters, then it's a
11444                  * valid NUL; if not, then we've hit the end of the buffer.
11445                  */
11446                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11447                         /* This was really a NUL. */
11448                         *(yy_c_buf_p) = '\0';
11449
11450                 else
11451                         { /* need more input */
11452                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
11453                         ++(yy_c_buf_p);
11454
11455                         switch ( yy_get_next_buffer(  ) )
11456                                 {
11457                                 case EOB_ACT_LAST_MATCH:
11458                                         /* This happens because yy_g_n_b()
11459                                          * sees that we've accumulated a
11460                                          * token and flags that we need to
11461                                          * try matching the token before
11462                                          * proceeding.  But for input(),
11463                                          * there's no matching to consider.
11464                                          * So convert the EOB_ACT_LAST_MATCH
11465                                          * to EOB_ACT_END_OF_FILE.
11466                                          */
11467
11468                                         /* Reset buffer status. */
11469                                         yyrestart( yyin );
11470
11471                                         /*FALLTHROUGH*/
11472
11473                                 case EOB_ACT_END_OF_FILE:
11474                                         {
11475                                         if ( yywrap(  ) )
11476                                                 return 0;
11477
11478                                         if ( ! (yy_did_buffer_switch_on_eof) )
11479                                                 YY_NEW_FILE;
11480 #ifdef __cplusplus
11481                                         return yyinput();
11482 #else
11483                                         return input();
11484 #endif
11485                                         }
11486
11487                                 case EOB_ACT_CONTINUE_SCAN:
11488                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11489                                         break;
11490                                 }
11491                         }
11492                 }
11493
11494         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11495         *(yy_c_buf_p) = '\0';   /* preserve yytext */
11496         (yy_hold_char) = *++(yy_c_buf_p);
11497
11498         if ( c == '\n' )
11499                 
11500     yylineno++;
11501 ;
11502
11503         return c;
11504 }
11505 #endif  /* ifndef YY_NO_INPUT */
11506
11507 /** Immediately switch to a different input stream.
11508  * @param input_file A readable stream.
11509  * 
11510  * @note This function does not reset the start condition to @c INITIAL .
11511  */
11512     void yyrestart  (FILE * input_file )
11513 {
11514     
11515         if ( ! YY_CURRENT_BUFFER ){
11516         yyensure_buffer_stack ();
11517                 YY_CURRENT_BUFFER_LVALUE =
11518             yy_create_buffer( yyin, YY_BUF_SIZE );
11519         }
11520
11521         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
11522         yy_load_buffer_state(  );
11523 }
11524
11525 /** Switch to a different input buffer.
11526  * @param new_buffer The new input buffer.
11527  * 
11528  */
11529     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11530 {
11531     
11532         /* TODO. We should be able to replace this entire function body
11533          * with
11534          *              yypop_buffer_state();
11535          *              yypush_buffer_state(new_buffer);
11536      */
11537         yyensure_buffer_stack ();
11538         if ( YY_CURRENT_BUFFER == new_buffer )
11539                 return;
11540
11541         if ( YY_CURRENT_BUFFER )
11542                 {
11543                 /* Flush out information for old buffer. */
11544                 *(yy_c_buf_p) = (yy_hold_char);
11545                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11546                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11547                 }
11548
11549         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11550         yy_load_buffer_state(  );
11551
11552         /* We don't actually know whether we did this switch during
11553          * EOF (yywrap()) processing, but the only time this flag
11554          * is looked at is after yywrap() is called, so it's safe
11555          * to go ahead and always set it.
11556          */
11557         (yy_did_buffer_switch_on_eof) = 1;
11558 }
11559
11560 static void yy_load_buffer_state  (void)
11561 {
11562         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11563         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11564         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11565         (yy_hold_char) = *(yy_c_buf_p);
11566 }
11567
11568 /** Allocate and initialize an input buffer state.
11569  * @param file A readable stream.
11570  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11571  * 
11572  * @return the allocated buffer state.
11573  */
11574     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
11575 {
11576         YY_BUFFER_STATE b;
11577     
11578         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11579         if ( ! b )
11580                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11581
11582         b->yy_buf_size = size;
11583
11584         /* yy_ch_buf has to be 2 characters longer than the size given because
11585          * we need to put in 2 end-of-buffer characters.
11586          */
11587         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
11588         if ( ! b->yy_ch_buf )
11589                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11590
11591         b->yy_is_our_buffer = 1;
11592
11593         yy_init_buffer( b, file );
11594
11595         return b;
11596 }
11597
11598 /** Destroy the buffer.
11599  * @param b a buffer created with yy_create_buffer()
11600  * 
11601  */
11602     void yy_delete_buffer (YY_BUFFER_STATE  b )
11603 {
11604     
11605         if ( ! b )
11606                 return;
11607
11608         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11609                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11610
11611         if ( b->yy_is_our_buffer )
11612                 yyfree( (void *) b->yy_ch_buf  );
11613
11614         yyfree( (void *) b  );
11615 }
11616
11617 /* Initializes or reinitializes a buffer.
11618  * This function is sometimes called more than once on the same buffer,
11619  * such as during a yyrestart() or at EOF.
11620  */
11621     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11622
11623 {
11624         int oerrno = errno;
11625     
11626         yy_flush_buffer( b );
11627
11628         b->yy_input_file = file;
11629         b->yy_fill_buffer = 1;
11630
11631     /* If b is the current buffer, then yy_init_buffer was _probably_
11632      * called from yyrestart() or through yy_get_next_buffer.
11633      * In that case, we don't want to reset the lineno or column.
11634      */
11635     if (b != YY_CURRENT_BUFFER){
11636         b->yy_bs_lineno = 1;
11637         b->yy_bs_column = 0;
11638     }
11639
11640         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11641     
11642         errno = oerrno;
11643 }
11644
11645 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11646  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11647  * 
11648  */
11649     void yy_flush_buffer (YY_BUFFER_STATE  b )
11650 {
11651         if ( ! b )
11652                 return;
11653
11654         b->yy_n_chars = 0;
11655
11656         /* We always need two end-of-buffer characters.  The first causes
11657          * a transition to the end-of-buffer state.  The second causes
11658          * a jam in that state.
11659          */
11660         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11661         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11662
11663         b->yy_buf_pos = &b->yy_ch_buf[0];
11664
11665         b->yy_at_bol = 1;
11666         b->yy_buffer_status = YY_BUFFER_NEW;
11667
11668         if ( b == YY_CURRENT_BUFFER )
11669                 yy_load_buffer_state(  );
11670 }
11671
11672 /** Pushes the new state onto the stack. The new state becomes
11673  *  the current state. This function will allocate the stack
11674  *  if necessary.
11675  *  @param new_buffer The new state.
11676  *  
11677  */
11678 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
11679 {
11680         if (new_buffer == NULL)
11681                 return;
11682
11683         yyensure_buffer_stack();
11684
11685         /* This block is copied from yy_switch_to_buffer. */
11686         if ( YY_CURRENT_BUFFER )
11687                 {
11688                 /* Flush out information for old buffer. */
11689                 *(yy_c_buf_p) = (yy_hold_char);
11690                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11691                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11692                 }
11693
11694         /* Only push if top exists. Otherwise, replace top. */
11695         if (YY_CURRENT_BUFFER)
11696                 (yy_buffer_stack_top)++;
11697         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11698
11699         /* copied from yy_switch_to_buffer. */
11700         yy_load_buffer_state(  );
11701         (yy_did_buffer_switch_on_eof) = 1;
11702 }
11703
11704 /** Removes and deletes the top of the stack, if present.
11705  *  The next element becomes the new top.
11706  *  
11707  */
11708 void yypop_buffer_state (void)
11709 {
11710         if (!YY_CURRENT_BUFFER)
11711                 return;
11712
11713         yy_delete_buffer(YY_CURRENT_BUFFER );
11714         YY_CURRENT_BUFFER_LVALUE = NULL;
11715         if ((yy_buffer_stack_top) > 0)
11716                 --(yy_buffer_stack_top);
11717
11718         if (YY_CURRENT_BUFFER) {
11719                 yy_load_buffer_state(  );
11720                 (yy_did_buffer_switch_on_eof) = 1;
11721         }
11722 }
11723
11724 /* Allocates the stack if it does not exist.
11725  *  Guarantees space for at least one push.
11726  */
11727 static void yyensure_buffer_stack (void)
11728 {
11729         yy_size_t num_to_alloc;
11730     
11731         if (!(yy_buffer_stack)) {
11732
11733                 /* First allocation is just for 2 elements, since we don't know if this
11734                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11735                  * immediate realloc on the next call.
11736          */
11737       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11738                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
11739                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11740                                                                 );
11741                 if ( ! (yy_buffer_stack) )
11742                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11743
11744                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11745
11746                 (yy_buffer_stack_max) = num_to_alloc;
11747                 (yy_buffer_stack_top) = 0;
11748                 return;
11749         }
11750
11751         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11752
11753                 /* Increase the buffer to prepare for a possible push. */
11754                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11755
11756                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11757                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
11758                                                                 ((yy_buffer_stack),
11759                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11760                                                                 );
11761                 if ( ! (yy_buffer_stack) )
11762                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11763
11764                 /* zero only the new slots.*/
11765                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11766                 (yy_buffer_stack_max) = num_to_alloc;
11767         }
11768 }
11769
11770 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11771  * @param base the character buffer
11772  * @param size the size in bytes of the character buffer
11773  * 
11774  * @return the newly allocated buffer state object.
11775  */
11776 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
11777 {
11778         YY_BUFFER_STATE b;
11779     
11780         if ( size < 2 ||
11781              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11782              base[size-1] != YY_END_OF_BUFFER_CHAR )
11783                 /* They forgot to leave room for the EOB's. */
11784                 return NULL;
11785
11786         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11787         if ( ! b )
11788                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
11789
11790         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
11791         b->yy_buf_pos = b->yy_ch_buf = base;
11792         b->yy_is_our_buffer = 0;
11793         b->yy_input_file = NULL;
11794         b->yy_n_chars = b->yy_buf_size;
11795         b->yy_is_interactive = 0;
11796         b->yy_at_bol = 1;
11797         b->yy_fill_buffer = 0;
11798         b->yy_buffer_status = YY_BUFFER_NEW;
11799
11800         yy_switch_to_buffer( b  );
11801
11802         return b;
11803 }
11804
11805 /** Setup the input buffer state to scan a string. The next call to yylex() will
11806  * scan from a @e copy of @a str.
11807  * @param yystr a NUL-terminated string to scan
11808  * 
11809  * @return the newly allocated buffer state object.
11810  * @note If you want to scan bytes that may contain NUL values, then use
11811  *       yy_scan_bytes() instead.
11812  */
11813 YY_BUFFER_STATE yy_scan_string (const char * yystr )
11814 {
11815     
11816         return yy_scan_bytes( yystr, (int) strlen(yystr) );
11817 }
11818
11819 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
11820  * scan from a @e copy of @a bytes.
11821  * @param yybytes the byte buffer to scan
11822  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11823  * 
11824  * @return the newly allocated buffer state object.
11825  */
11826 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
11827 {
11828         YY_BUFFER_STATE b;
11829         char *buf;
11830         yy_size_t n;
11831         int i;
11832     
11833         /* Get memory for full buffer, including space for trailing EOB's. */
11834         n = (yy_size_t) (_yybytes_len + 2);
11835         buf = (char *) yyalloc( n  );
11836         if ( ! buf )
11837                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
11838
11839         for ( i = 0; i < _yybytes_len; ++i )
11840                 buf[i] = yybytes[i];
11841
11842         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11843
11844         b = yy_scan_buffer( buf, n );
11845         if ( ! b )
11846                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
11847
11848         /* It's okay to grow etc. this buffer, and we should throw it
11849          * away when we're done.
11850          */
11851         b->yy_is_our_buffer = 1;
11852
11853         return b;
11854 }
11855
11856     static void yy_push_state (int  _new_state )
11857 {
11858         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11859                 {
11860                 yy_size_t new_size;
11861
11862                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11863                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11864
11865                 if ( ! (yy_start_stack) )
11866                         (yy_start_stack) = (int *) yyalloc( new_size  );
11867
11868                 else
11869                         (yy_start_stack) = (int *) yyrealloc(
11870                                         (void *) (yy_start_stack), new_size  );
11871
11872                 if ( ! (yy_start_stack) )
11873                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11874                 }
11875
11876         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11877
11878         BEGIN(_new_state);
11879 }
11880
11881     static void yy_pop_state  (void)
11882 {
11883         if ( --(yy_start_stack_ptr) < 0 )
11884                 YY_FATAL_ERROR( "start-condition stack underflow" );
11885
11886         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11887 }
11888
11889 #ifndef YY_EXIT_FAILURE
11890 #define YY_EXIT_FAILURE 2
11891 #endif
11892
11893 static void yynoreturn yy_fatal_error (const char* msg )
11894 {
11895                         fprintf( stderr, "%s\n", msg );
11896         exit( YY_EXIT_FAILURE );
11897 }
11898
11899 /* Redefine yyless() so it works in section 3 code. */
11900
11901 #undef yyless
11902 #define yyless(n) \
11903         do \
11904                 { \
11905                 /* Undo effects of setting up yytext. */ \
11906         int yyless_macro_arg = (n); \
11907         YY_LESS_LINENO(yyless_macro_arg);\
11908                 yytext[yyleng] = (yy_hold_char); \
11909                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
11910                 (yy_hold_char) = *(yy_c_buf_p); \
11911                 *(yy_c_buf_p) = '\0'; \
11912                 yyleng = yyless_macro_arg; \
11913                 } \
11914         while ( 0 )
11915
11916 /* Accessor  methods (get/set functions) to struct members. */
11917
11918 /** Get the current line number.
11919  * 
11920  */
11921 int yyget_lineno  (void)
11922 {
11923     
11924     return yylineno;
11925 }
11926
11927 /** Get the input stream.
11928  * 
11929  */
11930 FILE *yyget_in  (void)
11931 {
11932         return yyin;
11933 }
11934
11935 /** Get the output stream.
11936  * 
11937  */
11938 FILE *yyget_out  (void)
11939 {
11940         return yyout;
11941 }
11942
11943 /** Get the length of the current token.
11944  * 
11945  */
11946 int yyget_leng  (void)
11947 {
11948         return yyleng;
11949 }
11950
11951 /** Get the current token.
11952  * 
11953  */
11954
11955 char *yyget_text  (void)
11956 {
11957         return yytext;
11958 }
11959
11960 /** Set the current line number.
11961  * @param _line_number line number
11962  * 
11963  */
11964 void yyset_lineno (int  _line_number )
11965 {
11966     
11967     yylineno = _line_number;
11968 }
11969
11970 /** Set the input stream. This does not discard the current
11971  * input buffer.
11972  * @param _in_str A readable stream.
11973  * 
11974  * @see yy_switch_to_buffer
11975  */
11976 void yyset_in (FILE *  _in_str )
11977 {
11978         yyin = _in_str ;
11979 }
11980
11981 void yyset_out (FILE *  _out_str )
11982 {
11983         yyout = _out_str ;
11984 }
11985
11986 int yyget_debug  (void)
11987 {
11988         return yy_flex_debug;
11989 }
11990
11991 void yyset_debug (int  _bdebug )
11992 {
11993         yy_flex_debug = _bdebug ;
11994 }
11995
11996 static int yy_init_globals (void)
11997 {
11998         /* Initialization is the same as for the non-reentrant scanner.
11999      * This function is called from yylex_destroy(), so don't allocate here.
12000      */
12001
12002     /* We do not touch yylineno unless the option is enabled. */
12003     yylineno =  1;
12004     
12005     (yy_buffer_stack) = NULL;
12006     (yy_buffer_stack_top) = 0;
12007     (yy_buffer_stack_max) = 0;
12008     (yy_c_buf_p) = NULL;
12009     (yy_init) = 0;
12010     (yy_start) = 0;
12011
12012     (yy_start_stack_ptr) = 0;
12013     (yy_start_stack_depth) = 0;
12014     (yy_start_stack) =  NULL;
12015
12016 /* Defined in main.c */
12017 #ifdef YY_STDINIT
12018     yyin = stdin;
12019     yyout = stdout;
12020 #else
12021     yyin = NULL;
12022     yyout = NULL;
12023 #endif
12024
12025     /* For future reference: Set errno on error, since we are called by
12026      * yylex_init()
12027      */
12028     return 0;
12029 }
12030
12031 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
12032 int yylex_destroy  (void)
12033 {
12034     
12035     /* Pop the buffer stack, destroying each element. */
12036         while(YY_CURRENT_BUFFER){
12037                 yy_delete_buffer( YY_CURRENT_BUFFER  );
12038                 YY_CURRENT_BUFFER_LVALUE = NULL;
12039                 yypop_buffer_state();
12040         }
12041
12042         /* Destroy the stack itself. */
12043         yyfree((yy_buffer_stack) );
12044         (yy_buffer_stack) = NULL;
12045
12046     /* Destroy the start condition stack. */
12047         yyfree( (yy_start_stack)  );
12048         (yy_start_stack) = NULL;
12049
12050     /* Reset the globals. This is important in a non-reentrant scanner so the next time
12051      * yylex() is called, initialization will occur. */
12052     yy_init_globals( );
12053
12054     return 0;
12055 }
12056
12057 /*
12058  * Internal utility routines.
12059  */
12060
12061 #ifndef yytext_ptr
12062 static void yy_flex_strncpy (char* s1, const char * s2, int n )
12063 {
12064                 
12065         int i;
12066         for ( i = 0; i < n; ++i )
12067                 s1[i] = s2[i];
12068 }
12069 #endif
12070
12071 #ifdef YY_NEED_STRLEN
12072 static int yy_flex_strlen (const char * s )
12073 {
12074         int n;
12075         for ( n = 0; s[n]; ++n )
12076                 ;
12077
12078         return n;
12079 }
12080 #endif
12081
12082 void *yyalloc (yy_size_t  size )
12083 {
12084                         return malloc(size);
12085 }
12086
12087 void *yyrealloc  (void * ptr, yy_size_t  size )
12088 {
12089                 
12090         /* The cast to (char *) in the following accommodates both
12091          * implementations that use char* generic pointers, and those
12092          * that use void* generic pointers.  It works with the latter
12093          * because both ANSI C and C++ allow castless assignment from
12094          * any pointer type to void*, and deal with argument conversions
12095          * as though doing an assignment.
12096          */
12097         return realloc(ptr, size);
12098 }
12099
12100 void yyfree (void * ptr )
12101 {
12102                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
12103 }
12104
12105 #define YYTABLES_NAME "yytables"
12106
12107 /* Element context stack lookup. */
12108 int surfxml_element_context(int i)
12109 {
12110   return (0<i && i<yy_start_stack_depth
12111           ? yy_start_stack[yy_start_stack_ptr - i]
12112           : 0);
12113 }
12114
12115 #ifdef FLEX_DEBUG
12116 void print_yy_stack(char* fmt, ...)
12117 {
12118   int i = 0; va_list ap; va_start(ap, fmt);
12119   vfprintf(stderr, fmt, ap);
12120   if (surfxml_statenames) {
12121       for (i=1; i<yy_start_stack_ptr; i++) {
12122           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
12123       }
12124       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
12125   }
12126   va_end(ap);
12127 }
12128
12129 void print_surfxml_bufferstack()
12130 {
12131     int i;
12132     fputs("Buffer: ", stderr);
12133     for (i = 0; i < blimit; i++) {
12134        if ( surfxml_bufferstack[i] == '\377' ) break;
12135          putc(surfxml_bufferstack[i], stderr);
12136     }
12137     putc('\n', stderr);
12138 }
12139
12140 static void debug_enter(int state, const char* statename) {
12141   yy_push_state(state);
12142   if (yy_flex_debug) {
12143        print_yy_stack("--ENTER(%s) : ",statename);
12144        print_surfxml_bufferstack();
12145   }
12146 }
12147
12148 static void debug_leave(void) {
12149     if (yy_flex_debug) {
12150         print_yy_stack("--LEAVE : ");
12151         print_surfxml_bufferstack();
12152     }
12153   yy_pop_state();
12154 }
12155
12156 static void debug_set(int state, const char* statename) {
12157   BEGIN(state);
12158   if (yy_flex_debug) print_yy_stack("--SET(%s) : ",statename);
12159 }
12160 #endif
12161
12162 static void cleanup(void)
12163 {
12164     if (surfxml_statenames) {
12165         free(surfxml_statenames);
12166         surfxml_statenames = NULL;
12167     }
12168     free(surfxml_bufferstack);
12169     surfxml_bufferstack = NULL;
12170
12171     free(indexstack);
12172     indexstack = NULL;
12173 }
12174
12175 static int fail(const char* fmt, ...)
12176 {
12177     int chars_left, used;
12178     va_list ap; va_start(ap, fmt);
12179 #ifdef FLEXML_yylineno
12180     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12181                    "Invalid XML (XML input line %d, state %d): ",
12182                    yylineno, YY_START);
12183 #else
12184     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12185                    "Invalid XML (state %d): ",
12186                    YY_START);
12187 #endif
12188     chars_left = flexml_max_err_msg_size - used - 1;
12189     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
12190     va_end(ap);
12191
12192 #ifndef FLEXML_quiet_parser
12193     /* print directly to sdterr */
12194     fprintf(stderr, "%s\n", flexml_err_msg);
12195     flexml_err_msg[0] = '\0';
12196 #endif
12197
12198     cleanup();
12199
12200     return 1;
12201 }
12202