Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Sometimes (ubuntu 15.10 for us) sighup was blocked and made the following line useless.
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 39
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 unsigned int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 595
414 #define YY_END_OF_BUFFER 596
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3481] =
423     {   0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,    0,    0,    0,    0,  596,  594,   15,   10,
451        10,   15,   15,  574,   10,  574,    5,    6,    5,    8,
452         9,    8,  590,  582,  583,  591,  588,  591,  589,  593,
453       582,  583,  593,   40,   10,   40,   40,   40,   38,   40,
454        40,   44,   10,   44,   44,  594,   44,  594,  594,   44,
455        61,   10,   61,   61,   61,   59,   61,   61,   61,   65,
456
457        10,   65,  594,   65,   72,   10,   72,   72,   72,   70,
458        72,   76,   10,   76,   87,   10,   87,   87,   87,   85,
459        87,   87,   87,   91,   10,   91,  104,   10,  104,  104,
460       104,  102,  104,  104,  104,  108,   10,  108,  108,  117,
461        10,  117,  117,  117,  115,  117,  117,  121,   10,  121,
462       121,  140,   10,  140,  140,  140,  138,  140,  140,  140,
463       140,  140,  140,  144,   10,  144,  199,   10,  199,  199,
464       199,  197,  199,  199,  199,  199,  199,  199,  199,  199,
465       199,  203,   10,  203,  203,  210,   10,  210,  210,  210,
466       208,  210,  214,   10,  214,  214,  221,   10,  221,  221,
467
468       221,  219,  221,  225,   10,  225,  250,   10,  250,  250,
469       250,  248,  250,  250,  250,  250,  250,  254,   10,  254,
470       594,  254,  265,   10,  265,  265,  265,  263,  265,  265,
471       265,  269,   10,  269,  276,   10,  276,  276,  276,  274,
472       276,  280,   10,  280,  594,  280,  307,   10,  307,  307,
473       307,  305,  307,  307,  307,  307,  311,   10,  311,  311,
474       324,   10,  324,  324,  324,  322,  324,  324,  328,   10,
475       328,  337,   10,  337,  337,  337,  335,  337,  337,  341,
476        10,  341,  350,   10,  350,  350,  350,  348,  350,  350,
477       354,   10,  354,  363,   10,  363,  363,  363,  361,  363,
478
479       363,  367,   10,  367,  388,   10,  388,  388,  388,  386,
480       388,  388,  388,  388,  388,  388,  392,   10,  392,  594,
481       399,   10,  399,  399,  399,  397,  399,  403,   10,  403,
482       403,  594,  403,  594,  403,  420,   10,  420,  420,  420,
483       418,  420,  420,  420,  420,  420,  424,   10,  424,  594,
484       424,  433,   10,  433,  433,  433,  431,  433,  433,  437,
485        10,  437,  464,   10,  464,  464,  464,  462,  464,  464,
486       464,  464,  464,  468,   10,  468,  481,   10,  481,  481,
487       481,  479,  481,  481,  485,   10,  485,  485,  494,   10,
488       494,  494,  494,  492,  494,  494,  498,   10,  498,  513,
489
490        10,  513,  513,  513,  511,  513,  513,  513,  513,  517,
491        10,  517,  517,  532,   10,  532,  532,  532,  530,  532,
492       532,  532,  532,  536,   10,  536,  594,  536,  547,   10,
493       547,  547,  547,  545,  547,  547,  547,  591,  590,  569,
494        10,  569,  569,  569,  567,  569,  569,  569,  573,   10,
495       573,   10,    0,    2,    2,    0,    4,    7,  585,  584,
496         0,    0,    0,    0,    0,    0,   39,   41,   41,   41,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500
501         0,    0,   60,   62,   62,   62,   62,   62,    0,    0,
502        71,   73,   73,    0,   86,   88,   88,   88,   88,    0,
503       103,  105,  105,  105,  105,    0,  116,  118,  118,  118,
504         0,  139,  141,  141,  141,  141,  141,  141,  141,  141,
505         0,  198,  200,  200,  200,  200,  200,  200,  200,  200,
506       200,  200,  200,  200,  200,  200,  200,  200,  200,    0,
507       209,  211,  211,    0,  220,  222,  222,    0,  249,  251,
508       251,  251,  251,  251,  251,  251,    0,    0,  264,  266,
509       266,  266,  266,    0,  275,  277,  277,    0,    0,  306,
510       308,  308,  308,  308,  308,  308,    0,  323,  325,  325,
511
512       325,    0,  336,  338,  338,  338,    0,  349,  351,  351,
513       351,    0,  362,  364,  364,  364,    0,  387,  389,  389,
514       389,  389,  389,  389,  389,  389,    0,    0,  398,  400,
515       400,    0,    0,    0,    0,    0,    0,  419,  421,  421,
516       421,  421,  421,  421,    0,    0,  432,  434,  434,  434,
517         0,  463,  465,  465,  465,  465,  465,  465,  465,  465,
518       465,    0,  480,  482,  482,  482,  482,    0,  493,  495,
519       495,  495,    0,  512,  514,  514,  514,  514,  514,    0,
520       531,  533,  533,  533,  533,  533,    0,    0,  546,  548,
521       548,  548,  548,    0,    0,    0,  568,  570,  570,  570,
522
523       570,    0,    0,    0,    0,    0,    3,    0,    0,    0,
524         0,    0,    0,    0,  592,    0,    0,   41,    0,    0,
525        17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
527         0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
528         0,    0,    0,    0,   16,    0,    0,   62,   62,   62,
529        62,    0,    0,    0,   73,    0,    0,   88,    0,    0,
530        88,    0,    0,  105,  105,  105,    0,    0,  118,  118,
531         0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
532       141,    0,    0,  200,  200,    0,    0,  200,    0,    0,
533
534       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
535       200,    0,    0,    0,    0,    0,    0,  222,    0,    0,
536       251,  251,  251,    0,    0,  251,  251,  251,    0,    0,
537         0,    0,  266,    0,    0,    0,    0,    0,    0,  277,
538         0,    0,   17,  308,    0,    0,  308,  308,  308,    0,
539         0,  325,    0,    0,    0,    0,    0,    0,  338,    0,
540         0,  351,  351,    0,    0,  364,  364,    0,    0,  389,
541       389,  389,    0,    0,  389,  389,  389,    0,    0,    0,
542       400,    0,    0,    0,    0,    0,  421,  421,  421,  421,
543       421,    0,    0,    0,    0,    0,  434,    0,    0,  465,
544
545         0,    0,  465,  465,  465,  465,  465,  465,    0,    0,
546       482,  482,  482,    0,    0,  495,    0,    0,    0,    0,
547       514,  514,    0,    0,  514,    0,    0,  533,    0,    0,
548       533,  533,    0,    0,    0,  548,    0,    0,  548,    0,
549         0,    0,  587,  570,  570,  570,    0,    0,    0,   14,
550         1,    0,    0,  580,    0,    0,    0,  577,  576,    0,
551         0,   19,   18,   41,    0,    0,   43,    0,   17,    0,
552         0,    0,    0,    0,    0,    0,  216,    0,    0,    0,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,   16,    0,    0,    0,    0,    0,  215,    0,    0,
555
556         0,    0,    0,    0,    0,    0,    0,    0,    0,   62,
557        62,    0,    0,   62,    0,    0,   64,    0,    0,   73,
558         0,    0,   75,    0,   88,    0,   82,   81,   88,    0,
559         0,   90,    0,    0,    0,  105,  105,    0,    0,    0,
560         0,  107,    0,    0,    0,    0,    0,    0,    0,  120,
561         0,    0,  125,  124,    0,  127,  126,    0,    0,  141,
562       141,  141,  141,    0,    0,  143,    0,  200,  200,  200,
563       200,    0,  158,  157,  200,    0,  162,  161,    0,    0,
564       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
565         0,    0,  202,    0,    0,  207,  206,    0,    0,  213,
566
567         0,  222,    0,    0,  224,    0,  251,  251,  251,    0,
568       237,  236,  251,  251,  251,    0,    0,  253,    0,    0,
569         0,  266,    0,  260,  259,    0,  262,  261,    0,    0,
570       268,    0,  277,    0,    0,  279,    0,  308,    0,  288,
571       287,  308,  308,  308,    0,    0,  310,    0,  325,    0,
572       321,  320,    0,    0,  327,    0,    0,  332,  331,  338,
573         0,    0,  340,    0,  351,  351,    0,    0,  353,    0,
574       364,  364,    0,    0,  366,    0,  389,  389,  389,  389,
575         0,  379,  378,    0,    0,  389,  389,    0,    0,  391,
576         0,    0,  400,    0,    0,  402,    0,    0,    0,    0,
577
578       421,  421,  421,  421,  421,    0,    0,  423,    0,    0,
579         0,  428,  427,  434,    0,    0,  436,    0,  465,    0,
580       449,  448,    0,    0,  465,    0,    0,  465,  465,  465,
581         0,    0,  467,    0,    0,    0,    0,    0,  482,    0,
582         0,  484,    0,  495,    0,  491,  490,    0,    0,  497,
583         0,  514,  514,    0,  508,  507,  514,    0,    0,  516,
584         0,  533,    0,  525,  524,  533,  533,    0,    0,  535,
585         0,    0,  548,    0,  542,  541,  548,    0,    0,    0,
586       550,    0,  570,  570,  570,    0,    0,  572,    0,    0,
587         0,  581,  575,    0,    0,   41,    0,   42,    0,    0,
588
589         0,    0,    0,    0,    0,  216,  227,    0,  282,    0,
590         0,    0,  369,    0,    0,  426,    0,    0,    0,    0,
591       425,    0,    0,    0,    0,    0,  215,  226,    0,  281,
592       368,    0,    0,    0,    0,    0,    0,   48,   47,   62,
593        62,    0,   54,   53,   62,    0,  281,   73,    0,   88,
594        88,    0,    0,   95,   94,  105,  105,    0,  101,  100,
595         0,    0,  112,  111,    0,  114,  113,    0,    0,  129,
596       128,  141,  141,  141,  141,    0,  200,  200,  200,  200,
597         0,    0,    0,  164,  163,  200,  200,  200,  200,  200,
598       200,  200,  200,  200,  200,  200,    0,    0,    0,    0,
599
600         0,  251,  251,    0,    0,  251,  251,  251,    0,    0,
601         0,    0,    0,    0,    0,    0,    0,  308,  308,  308,
602       308,    0,  325,    0,  338,    0,    0,    0,  351,    0,
603         0,    0,  364,    0,  389,  389,  389,  389,    0,  381,
604       380,  389,  389,    0,    0,  400,    0,    0,    0,    0,
605       421,    0,    0,  421,  421,  421,    0,    0,  434,    0,
606       465,    0,  451,  450,    0,    0,    0,  455,  454,  465,
607         0,    0,  465,    0,    0,  472,  471,    0,  474,  473,
608       482,    0,  495,    0,  514,  514,  514,    0,  533,  533,
609         0,    0,    0,    0,    0,    0,  548,    0,    0,  570,
610
611         0,    0,  570,    0,    0,    0,    0,   12,    0,  578,
612       579,   41,    0,    0,    0,    0,    0,    0,    0,  227,
613         0,    0,  282,    0,    0,  342,    0,  369,    0,    0,
614       426,    0,  470,    0,  538,  425,    0,    0,    0,    0,
615         0,  226,    0,    0,  281,  368,  469,    0,  537,  470,
616       469,   62,   62,   62,    0,    0,    0,    0,    0,   88,
617        88,    0,  105,  105,    0,    0,  141,  141,    0,    0,
618       141,    0,  200,    0,    0,  200,  200,    0,  160,  159,
619       200,  200,  200,  200,  200,  200,    0,    0,  200,  200,
620       200,  200,    0,    0,    0,  218,  217,    0,  223,  251,
621
622       251,    0,  235,  234,  251,    0,    0,    0,    0,  251,
623         0,  343,    0,    0,  258,  257,    0,    0,  273,  272,
624         0,  308,  308,  308,    0,    0,  308,    0,  325,    0,
625         0,    0,    0,    0,  345,  344,  351,    0,    0,  358,
626       357,  364,    0,  389,    0,    0,  389,  389,    0,    0,
627       389,    0,    0,  400,    0,    0,    0,    0,  421,    0,
628       409,  408,  421,  421,  421,    0,    0,    0,    0,    0,
629       465,    0,  453,  452,  465,    0,  459,  458,  465,    0,
630       482,    0,  495,    0,  514,  514,  514,    0,  533,    0,
631         0,    0,  529,  528,    0,    0,    0,  540,  539,  548,
632
633         0,    0,  570,    0,    0,    0,    0,    0,    0,    0,
634         0,    0,   11,   41,    0,    0,    0,    0,    0,    0,
635       204,    0,    0,    0,    0,  342,    0,    0,    0,  438,
636       470,  487,    0,  538,    0,    0,    0,    0,    0,    0,
637         0,    0,  469,  486,    0,  537,    0,    0,    0,    0,
638         0,   62,    0,    0,    0,   69,   68,    0,   88,   88,
639         0,    0,    0,    0,    0,    0,    0,    0,    0,  141,
640         0,  135,  134,    0,    0,    0,  200,    0,  150,  149,
641         0,    0,  200,  200,  200,    0,    0,  200,  200,  200,
642         0,  184,  183,  200,    0,    0,  200,  200,    0,    0,
643
644       251,  251,    0,    0,    0,  241,  240,    0,    0,    0,
645       251,    0,  252,  343,    0,    0,    0,  308,  308,  308,
646         0,    0,    0,  308,    0,  309,  325,    0,    0,  334,
647       333,    0,  351,    0,    0,    0,    0,  389,    0,  373,
648       372,    0,    0,  389,    0,  383,  382,  389,    0,  390,
649         0,  400,    0,  205,    0,  439,  421,  421,  421,  421,
650         0,    0,    0,  430,  429,    0,  435,  465,  465,  465,
651         0,  482,    0,  495,    0,    0,    0,  514,    0,    0,
652         0,  533,    0,  527,  526,    0,    0,  548,    0,    0,
653       570,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654
655       566,  565,    0,    0,    0,    0,    0,    0,   46,    0,
656         0,    0,    0,  123,  146,  204,    0,  271,    0,    0,
657         0,    0,  404,  438,  487,  500,    0,   45,    0,    0,
658         0,  122,  145,    0,  270,  486,  499,    0,    0,   50,
659        49,    0,   52,   51,   62,    0,    0,    0,   88,    0,
660         0,    0,    0,   97,   96,    0,   99,   98,    0,    0,
661         0,  131,  130,    0,    0,    0,  137,  136,    0,  200,
662         0,  152,  151,  200,  200,  200,    0,  172,  171,    0,
663         0,  200,  200,  200,    0,  188,  187,  200,  200,    0,
664         0,  251,  251,    0,  239,  238,    0,    0,  251,    0,
665
666         0,    0,  308,    0,    0,  308,  308,    0,    0,  308,
667       325,    0,    0,  351,    0,  352,    0,  360,  359,    0,
668       389,    0,  375,  374,  389,  389,    0,    0,    0,    0,
669       205,  405,  439,  421,  421,  421,  421,    0,    0,  465,
670         0,    0,  465,    0,  482,    0,  483,  495,    0,    0,
671       502,  501,    0,    0,  514,    0,  510,  509,    0,    0,
672         0,  533,    0,    0,  548,    0,    0,  549,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,   46,   66,   78,
675         0,    0,  123,  146,    0,  271,  312,    0,  355,  393,
676
677       404,  500,    0,    0,   45,   77,    0,    0,  122,  145,
678         0,  270,  499,    0,    0,   62,    0,  313,    0,   88,
679         0,   84,   83,    0,    0,    0,    0,  133,  132,    0,
680       200,  200,  200,  200,    0,  174,  173,  200,  200,  200,
681       200,    0,    0,    0,    0,  212,  251,  251,    0,    0,
682         0,    0,  251,  356,    0,    0,  308,    0,  290,  289,
683       308,  308,    0,    0,    0,    0,  308,  325,    0,    0,
684       351,    0,  389,  389,  389,  394,    0,  396,  395,    0,
685       405,    0,    0,  421,  421,  421,    0,   67,  465,    0,
686       457,  456,  465,    0,  466,  482,  495,    0,  496,    0,
687
688       504,  503,  514,    0,    0,  521,  520,  533,    0,    0,
689       548,  586,    0,  554,  553,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691         0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
692        78,    0,    0,  256,  312,    0,  355,  393,    0,    0,
693        77,    0,    0,  255,    0,    0,   62,    0,   63,  313,
694         0,    0,    0,    0,    0,    0,    0,  142,  200,  200,
695       200,  200,  200,    0,    0,  200,  200,  200,    0,    0,
696         0,    0,  201,  251,  251,    0,  243,    0,  242,  251,
697       356,    0,    0,  278,    0,    0,  308,  308,  308,    0,
698
699       300,    0,  299,  308,    0,    0,    0,    0,    0,    0,
700         0,  389,  389,  389,  394,    0,    0,  407,  406,    0,
701         0,  421,  421,    0,  422,   67,    0,    0,  465,  482,
702       495,  514,    0,  515,  533,    0,    0,  548,    0,    0,
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,  256,  329,    0,    0,
706         0,    0,  255,    0,    0,   62,    0,   74,    0,   80,
707        79,    0,   89,    0,    0,  200,  200,  200,  200,  200,
708         0,  176,  175,  200,    0,    0,  200,    0,    0,    0,
709
710         0,  251,  251,  245,  244,    0,    0,    0,    0,  284,
711       283,  308,  308,  308,  302,  301,    0,    0,    0,    0,
712         0,    0,  326,    0,    0,  347,  346,    0,  365,  389,
713       389,    0,    0,    0,  401,    0,  411,  410,    0,    0,
714         0,    0,    0,    0,    0,  465,  482,  495,  514,  533,
715         0,  330,  548,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718       110,  329,    0,    0,    0,  109,    0,    0,    0,    0,
719         0,    0,  200,  200,  200,    0,    0,  200,  200,    0,
720
721       186,  185,  200,    0,    0,    0,    0,    0,    0,  251,
722         0,    0,    0,  247,  246,    0,  267,  308,  308,  308,
723         0,  304,  303,    0,    0,    0,    0,    0,    0,    0,
724       389,    0,    0,    0,  385,  384,    0,    0,    0,    0,
725       417,  416,    0,    0,    0,    0,    0,    0,  465,    0,
726         0,    0,    0,  514,  533,    0,  330,    0,    0,    0,
727         0,    0,    0,  558,    0,    0,    0,    0,  557,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,  110,  519,    0,    0,
730       109,  518,    0,    0,    0,    0,    0,    0,  200,  200,
731
732         0,    0,    0,  168,  167,    0,    0,  200,  200,    0,
733         0,    0,    0,    0,    0,    0,    0,  251,    0,  233,
734       232,  308,    0,    0,  308,    0,    0,    0,    0,    0,
735         0,    0,  339,  389,    0,  377,  376,    0,    0,    0,
736         0,    0,    0,    0,    0,    0,    0,    0,    0,  465,
737         0,    0,    0,    0,  489,  488,    0,    0,    0,    0,
738         0,    0,  544,  543,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740        21,   29,    0,    0,    0,    0,   20,   28,    0,   93,
741       519,  552,   92,  518,  551,    0,    0,    0,    0,    0,
742
743         0,  119,  200,  200,    0,  166,  165,    0,  170,  169,
744       200,  200,    0,    0,    0,    0,    0,    0,    0,  229,
745       228,  251,  308,    0,  292,  291,  308,    0,    0,  315,
746         0,    0,  314,  389,    0,    0,    0,    0,    0,    0,
747         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,  506,  505,    0,  523,  522,    0,    0,
749         0,  564,    0,    0,    0,  563,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
751        22,    0,   93,  552,   92,  551,    0,    0,    0,    0,
752         0,  200,  200,    0,    0,  200,    0,  192,    0,    0,
753
754       191,    0,  251,    0,    0,    0,    0,    0,    0,    0,
755         0,  389,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,  461,  460,    0,    0,    0,
757         0,    0,  534,    0,    0,    0,    0,    0,    0,    0,
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,   58,    0,   57,    0,    0,  106,  200,  200,
760         0,    0,    0,    0,    0,    0,  194,    0,  193,  251,
761         0,  286,  285,    0,    0,    0,  317,  319,  316,  318,
762       389,  413,    0,  412,    0,    0,  447,  443,    0,    0,
763       446,  442,    0,  478,    0,  477,    0,  562,    0,    0,
764
765       561,    0,    0,    0,  571,    0,    0,    0,   12,    0,
766        12,    0,   33,    0,    0,   31,   32,    0,    0,   30,
767        56,   55,  200,  200,    0,    0,    0,    0,    0,  190,
768       189,    0,    0,  251,    0,    0,    0,    0,  389,    0,
769         0,    0,    0,    0,    0,  476,  475,  556,  560,  555,
770       559,    0,    0,    0,    0,    0,    0,    0,   25,    0,
771         0,    0,   24,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
776         0,  148,  147,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,  196,  195,    0,  231,  230,    0,    0,    0,
778         0,    0,    0,    0,  371,  370,    0,    0,  441,    0,
779       440,    0,    0,   11,    0,    0,    0,    0,    0,    0,
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,  415,  414,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,  445,  444,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788        35,   27,    0,   34,   26,    0,    0,    0,    0,    0,
789         0,  178,    0,    0,  177,    0,    0,  294,    0,    0,
790       293,    0,    0,    0,    0,    0,    0,    0,  182,    0,
791       181,    0,  296,    0,  295,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,    0,   37,   36,
793         0,  154,    0,  153,    0,    0,    0,    0,    0,    0,
794       156,  155,  180,  179,  298,  297,    0,    0,    0,    0,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
797
798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
804         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
805         0,    0,    0,    0,    0,    0,    0,    0,   13,    0
806     } ;
807
808 static yyconst flex_int32_t yy_ec[256] =
809     {   0,
810         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
811         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
813         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
814         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
815        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
816        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
817        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
818        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
819        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
820
821        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
822        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
823        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
831
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
836         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
837         1,    1,    1,    1,    1
838     } ;
839
840 static yyconst flex_int32_t yy_meta[75] =
841     {   0,
842         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
843         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
844         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
845         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
846         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
847         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
848         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
849         5,    5,    5,    5
850     } ;
851
852 static yyconst flex_int16_t yy_base[3988] =
853     {   0,
854         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
855        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
856        66,   72,   75,   78,   83,  128,  131,  134,  138,  141,
857       194,  197,  200,  204,  207,  224,  230,  233,  241,  250,
858       268,  335,  288,  291,  294,  298,  301,  355,  358,  361,
859       402,  472,  365,  368,  542,  602,  422,  425,  662,  729,
860       428,  432,  435,  452,  492,  495,  498,  502,  796,  863,
861       505,  522,  562,  565,  568,  572,  575,  622,  930,  997,
862       625,  628, 1064,    0,  632,  635,  682,  685,  688,  692,
863       695,  749, 1138, 1195,  752,  755,  759,  762,  816,  819,
864
865       822,  826, 1252, 1314,  829,  883, 1376, 1443,  886,  889,
866       893,  896,  950,  953,  956,  960, 1510, 1579,  963, 1017,
867      1648, 1702, 1020, 1023, 1027, 1030, 1158, 1161, 1164, 1168,
868      1756, 1823, 1171, 1215, 1218, 1221, 1225, 1228, 1272, 1275,
869      1890, 1947, 1278, 1282, 2004, 2074, 1285, 1334, 2144, 2211,
870      1337, 1340, 2278, 2346, 1344, 1347, 2414, 2481, 1396, 1399,
871      1402, 1406, 2548, 2618, 1463, 1466, 1469, 1473, 1530, 1533,
872      1536, 1540, 1543, 1599, 1602, 1605, 1609, 1612, 1668, 1671,
873      1674, 1678, 1681, 1722, 2688, 2755, 1725, 1728, 1732, 1735,
874      1776, 1779, 1782, 1786, 2822, 2892, 1789, 1843, 2962, 3029,
875
876      1846, 1849, 3096, 3163, 1853, 1856, 1910, 1913, 1916, 1920,
877      1923, 1967, 3230, 3287, 1970, 1973, 3344, 3412, 1977, 1980,
878      2024, 2027, 2030, 2034, 2037, 2054, 3480, 3547, 2094, 2097,
879      2100, 2104, 2107, 2124, 2164, 2167, 3614, 3678, 2180, 2189,
880      3742, 3810, 2171, 2176,    0,    0, 9499,12459,12459,   95,
881       100,   29,   41,12459,  103,   51,12459,12459, 9484,12459,
882     12459, 9473,12459, 9488, 9486,  164,12459,12459,12459,12459,
883      9484, 9484, 9435,12459,  158, 9461,    0,  142,12459, 9428,
884      9414,12459,  164, 3874, 9412, 3938, 2183, 1362, 9463,   31,
885     12459,  253, 9450,    0,  143,12459, 9402, 9397,   84,12459,
886
887       258,  253,  109,  141,12459,  322, 9445,    0,  209,12459,
888      9415,12459,  325,  372,12459,  328, 9443,    0,  218,12459,
889      9409, 9405, 9407,12459,  392,  380,12459,  395, 9433,    0,
890       242,12459, 9385, 9380, 9380,12459,  455,  451,  246,12459,
891       458, 9425,    0,  245,12459, 9377, 9375,12459,  462,  457,
892       287,12459,  525, 9420,    0,  313,12459, 9368, 9382, 9384,
893      9366, 9380,    2,12459,  528,  579,12459,  531, 9408,    0,
894       370,12459, 9357,  101, 9359, 9369,  317, 9354,  258,  651,
895      9354,12459,  534, 9404,  377,12459,  592, 9395,    0,  446,
896     12459, 9358,12459,  652, 9397,  388,12459,  719, 9388,    0,
897
898       576,12459, 9356,12459,  722,  639,12459,  783, 9384,    0,
899       577,12459, 9333, 9335, 9345, 9329,  577,12459,  786,  272,
900      9332,  681,12459,  789, 9372,    0,  580,12459, 9328, 9334,
901      9321,12459,  847,  706,12459,  850, 9364,    0,  637,12459,
902      9324,12459,  853, 2188, 9368,  704,12459,  856, 9359,    0,
903       707,12459, 9325, 9313, 9315,   32,12459,  914, 9351,  748,
904     12459,  917, 9338,    0,  773,12459, 9300, 9304,12459,  920,
905       967,12459,  923, 9331,    0,  774,12459, 9298, 9300,12459,
906       980, 1034,12459,  989, 9324,    0,  840,12459, 9294, 9274,
907     12459, 1047, 1289,12459, 1056, 9317,    0,  841,12459, 9287,
908
909      9262,12459, 1188, 1290,12459, 1245, 9310,    0,  907,12459,
910      9259, 9257, 9260, 9270, 9272,  593,12459, 1302, 1351,  964,
911     12459, 1305, 9296,    0,  908,12459, 9262,12459, 1364, 1429,
912       771, 1365,  815, 9250,  882,12459, 1367, 9289,    0,  965,
913     12459, 9239, 9244, 9245, 9239, 9232,12459, 1432,   11, 9246,
914       949,12459, 1435, 9274,    0,  968,12459, 9241, 9239,12459,
915      1494, 1352,12459, 1499, 9267,    0, 1031,12459, 9233, 9229,
916      1358, 9231,   71,12459, 1502, 1547,12459, 1561, 9259,    0,
917      1032,12459, 9207, 1114,12459, 1567, 1514, 1171,12459, 1573,
918      9253,    0, 1035,12459, 9209, 9215,12459, 1630, 1616,12459,
919
920      1636, 9246,    0, 1172,12459, 9197, 9197, 9207, 9185,12459,
921      1639, 9241, 1176,12459, 1642, 9232,    0, 1173,12459, 9188,
922      9194, 9182, 9187,12459, 1806, 1222, 9178, 1233,12459, 1815,
923      9218,    0, 1354,12459, 9180, 9180, 9178, 1793, 9183,12459,
924      1818, 9205,    0, 1478,12459, 9164, 9166, 9152,12459, 1873,
925      1860, 1882,  239, 9145,12459, 9206, 9191,12459,12459,12459,
926      1874,   30, 9142, 9141, 9135, 9183,12459,    0, 2240, 9133,
927      9175, 9157, 9129,  168,  384, 9126, 9126, 9126, 9126,  638,
928      1184,  259, 9114, 9115, 1500, 9137,  369, 1425, 9111, 9111,
929      9107, 9111, 1569,  524, 9099, 8520, 8546,  439, 1879,  584,
930
931       629, 1369,12459,    0, 8515, 8534, 8530, 8519, 8557, 8521,
932     12459,    0, 8517, 8526,12459,    0, 8512, 2251, 8504, 8514,
933     12459,    0, 8495, 8513, 8502, 8501,12459,    0, 8482, 8497,
934      8493,12459,    0, 2258, 2298, 8474, 8487, 8482, 8479, 8474,
935      8475,12459,    0, 8476, 8467, 2301, 8438, 2304, 8435, 8432,
936      8429, 8437, 8428, 8404, 8423, 8417, 8420, 8398, 8385, 8396,
937     12459,    0, 2307, 8392,12459,    0, 8379, 8384,12459,    0,
938      8382,  405, 2310, 8362, 8375, 8374, 8366,  839,12459,    0,
939      8349, 2366, 2369, 8355,12459,    0, 8350, 8349, 8354,12459,
940         0, 8323, 2372, 8316, 8333, 8327, 8315,12459,    0, 8307,
941
942      2375, 8304,12459,    0, 2378, 8299, 8286,12459,    0, 8285,
943      8276, 8277,12459,    0, 8275, 8271, 8272,12459,    0, 8276,
944      8276, 8259, 2434, 8245, 8259, 8261, 8244, 8228,12459,    0,
945      8221, 8221, 1630, 1936, 1492, 1638, 1937,12459,    0, 8218,
946      8211, 8217, 8227, 8212, 8178, 8174,12459,    0, 2437, 8179,
947      8173,12459,    0, 8164, 2440, 8143, 8165, 8150, 8155, 8153,
948      8151, 8135,12459,    0, 8132, 8147, 8135, 8129,12459,    0,
949      8130, 2443, 8113,12459,    0, 8110, 8114, 2447, 8107, 8103,
950     12459,    0, 8101, 2501, 8110, 8086, 8092, 1415,12459,    0,
951      8097, 2504, 8079,  493, 8076, 8122,12459,    0, 8088, 8069,
952
953      8081, 8060, 8100, 8107, 1775, 8051,12459, 2049,    0, 8046,
954      8046, 8090, 8082, 8035,12459, 2507, 2130, 8000, 2513, 2568,
955      2199, 8011, 8011, 7993, 7999, 7979, 7976, 7968, 7960, 7975,
956      7962,  489, 7948, 7960, 7959, 7944, 7939, 7927, 7932, 7936,
957      7919, 2264, 7922, 7907, 7916, 7896, 7886, 7887, 7901, 7881,
958      7882, 7864, 7858, 7867, 2272, 7846, 7844, 2510, 2582, 2571,
959      2579, 2576, 2639, 7833, 7825, 2589, 2648, 7840, 2642, 2330,
960      7837, 2651, 2728, 2654, 2719, 2708, 2713, 2716, 2722, 2776,
961      2779, 2788, 2794, 2396, 2801, 2466, 2843, 2854, 2861, 2868,
962      2872, 2846, 2912, 7832, 1993, 2921, 2533, 7834, 2925, 2602,
963
964      2931, 7816, 7808, 7816, 7812, 7784, 7785, 7796, 7780, 7792,
965      7778, 2939, 2985, 2982, 2673, 2990, 2993, 7787, 2996, 3000,
966      7777, 7767, 7778, 3049, 2879, 7771, 7766, 7749, 3057, 3063,
967      1199, 7744, 7749, 3068, 2949, 3116, 3076, 3119, 3125, 7756,
968      3129, 3134, 2340, 7752, 3183, 3149, 7744, 7729, 7726, 3187,
969      3196, 7739, 3201, 3215, 3191, 3252, 3210, 3255, 7712, 3263,
970      3266, 7726, 7712, 3308, 3311, 7723, 7721, 3315, 3319, 7716,
971        26, 7705, 3322, 3276, 3364, 7707, 7691, 3367, 3450, 7708,
972      7685, 3374, 3377, 7688, 7686, 7685, 7693, 7674, 7678, 7675,
973      7662, 3436, 3440, 7671, 3432, 3396, 7649, 3444, 3505, 7663,
974
975      3509, 3469, 3513, 7653, 3516, 7652, 7653, 7655, 3519, 3581,
976      3570, 3573, 3576, 3636, 3639, 7627, 3584, 3603, 3642, 3645,
977      7642, 7621, 3648, 3701, 7631, 3709, 3713, 7615, 3651, 3717,
978      7628, 7623, 3762, 3765, 1261, 7618, 3768, 3771, 7596, 7628,
979      3788, 3832,12459, 7589, 7597, 7596, 3835, 3838, 7626,12459,
980     12459, 1721, 7569,12459, 7611, 7609, 7554,12459,12459, 7552,
981      3794,12459,12459, 7561, 3841, 3844,12459, 3847, 2065, 7550,
982      7543, 7551, 7559, 7550, 7533, 7538, 2407, 7523, 7529, 7522,
983      7527, 7516, 7514, 7509, 7506,  718, 7516, 7492, 7493, 7506,
984      1691, 2474, 7489, 7492, 7500, 7480, 7468, 2541, 7462, 7469,
985
986      7468, 7453, 7450, 7446, 7459, 7441, 7438, 3868, 3871, 7438,
987      7437, 3880, 3888, 7449, 3898, 3906,12459, 3912, 7441, 7436,
988      3917, 3942,12459, 3945, 7417, 3948,12459,12459, 7424, 3964,
989      3970,12459, 3977, 3903, 4005, 7413, 7411, 3909, 4013, 4021,
990      4027,12459, 4030, 3967, 4033, 3973, 4042, 4050, 4053,12459,
991      4056, 4059,12459,12459, 4075,12459,12459, 4083, 4086, 7414,
992      7419, 7407, 7398, 4094, 4097,12459, 4101, 7393, 7369, 7390,
993      7381, 4104,12459,12459, 4120, 4123,12459,12459, 4131, 4134,
994      7358, 7375, 7358, 7346, 7343, 7329, 7333, 7330, 7325,  110,
995      4142, 4145,12459, 4150, 4154,12459,12459, 4164, 4169,12459,
996
997      4172, 4175, 4178, 4183,12459, 4193, 7314, 7313, 4197, 4202,
998     12459,12459, 7296, 7301, 7297, 4218, 4221,12459, 4224, 7269,
999      7266, 4227, 4233,12459,12459, 4245,12459,12459, 4253, 4256,
1000     12459, 4261, 4264, 4267, 4275,12459, 4282, 7253, 4290,12459,
1001     12459, 7261, 7261, 7264, 4286, 4301,12459, 4305, 7261, 4308,
1002     12459,12459, 4316, 4320,12459, 4327, 4335,12459,12459, 7258,
1003      4346, 4349,12459, 4352, 4355, 4358, 4361, 4376,12459, 4380,
1004      4383, 4389, 4395, 4407,12459, 4410, 7245, 7242, 7233, 7239,
1005      4414,12459,12459, 4422, 4429, 7236, 7229, 4440, 4443,12459,
1006      4448, 7213, 7220, 4451, 4454,12459, 4462, 7222, 1748, 7219,
1007
1008      7200, 4473, 7201, 7198, 7138, 4477, 4482,12459, 4485, 7123,
1009      4504,12459,12459, 7110, 4492, 4496,12459, 4515, 7076, 4518,
1010     12459,12459, 4526, 4530, 4538, 4547, 4550, 7063, 4558, 7061,
1011      4561, 4565,12459, 4568, 4571, 4580, 4589, 4592, 7055, 4600,
1012      4603,12459, 4607, 7035, 4610,12459,12459, 4622, 4629,12459,
1013      4632, 7012, 7000, 4635,12459,12459, 6969, 4643, 4651,12459,
1014      4654, 6939, 4658,12459,12459, 6905, 4666, 4675, 4678,12459,
1015      4684, 6828, 4687, 4690,12459,12459, 4705, 6795, 4708, 4711,
1016     12459, 4716, 6766, 4719, 6742, 4723, 4730,12459, 4737,  955,
1017      4742,12459,12459, 6775, 6686, 6531, 4749,12459, 6501, 6504,
1018
1019      6449, 6382, 6246, 6216, 6178, 2610, 2681, 6163, 2943,  130,
1020       148,  172, 2613,  192,  214, 2750,  248,  325,  339,  392,
1021      2813,  445,  472,  551,  642,  703, 2849, 3158,  703, 3223,
1022      3022,  721,  787,  785,  786,  788, 4752,12459,12459,  835,
1023       854, 4768,12459,12459,  840, 4776, 3407, 4779, 4785,  985,
1024      1011, 4788, 4791,12459,12459, 1086, 1118, 4800,12459,12459,
1025      4808, 4811,12459,12459, 4820,12459,12459, 4828, 4831,12459,
1026     12459, 1109, 1162, 4839, 1154, 4842, 1189, 4847, 1223, 1243,
1027      4857, 4861, 4869,12459,12459, 1259, 1296, 1281, 1305, 1326,
1028      1351, 4877, 1371, 1349, 1378, 1396, 4880, 4883, 4886, 4889,
1029
1030      4904, 1430, 1429, 4907, 4910, 1455, 4919, 4925, 4928, 1441,
1031      1483, 4931, 4937, 4949, 4952, 4955, 4963, 1493, 1521, 1511,
1032      4972, 4975, 1527, 4978, 4982, 4985, 4990, 5004, 1555, 5012,
1033      5000, 5022, 1566, 5037, 1570, 5040, 1556, 1590, 5043,12459,
1034     12459, 5051, 1616, 5058, 1634, 1628, 5061, 1640, 1647, 1655,
1035      1676, 5064, 5073, 1676, 1690, 1703, 5069, 1691, 5082, 5088,
1036      1705, 5093,12459,12459, 5102, 5107, 5124,12459,12459, 1723,
1037      5115, 5133, 1734, 5141, 5144,12459,12459, 5153,12459,12459,
1038      1728, 5161, 1744, 5164, 1759, 1777, 1802, 5167, 1800, 5170,
1039      5173, 5176, 5192, 1803, 5195, 5198, 1814, 1846, 5206, 1816,
1040
1041      5215, 5218, 5233, 5236, 2026, 1859, 5239,12459, 1862,12459,
1042     12459, 1851, 1853, 1876, 1867, 1866, 1882, 1887, 1888, 3089,
1043      1884, 1911, 3271, 1927, 1938, 3404, 1938, 3463, 1929, 1933,
1044      3540, 1940, 3670, 1965, 3735, 3673, 1967, 1981, 1980, 1996,
1045      2001, 3802, 1999, 2013, 5242, 5245, 5251, 2015, 5258, 5261,
1046      5264, 5267, 5270, 5274, 5277, 2022, 5280, 5292, 5300, 2038,
1047      2032, 5308, 5312, 5319, 5322, 5330, 5333, 5341, 5345, 5353,
1048      5363, 5366, 2063, 5369, 5372, 5381, 2048, 5389,12459,12459,
1049      2050, 2066, 5400, 2059, 2075, 2069, 5403, 5406, 2075, 5414,
1050      2081, 2080, 5421, 5427, 5433,12459,12459, 5441,12459, 2087,
1051
1052      2076, 5446,12459,12459, 5454, 5460, 5463, 5472, 5479, 2086,
1053      5490, 5493, 2092, 5496,12459,12459, 5504, 5509,12459,12459,
1054      5517, 2091, 2087, 2117, 5523, 5526, 2122, 5536, 2120, 5541,
1055      5544, 5551, 5547, 5562,12459,12459, 2128, 5570, 5573,12459,
1056     12459, 5581, 5589, 2136, 5592, 5595, 5610, 2125, 5613, 5616,
1057      2142, 5624, 2136, 2142, 5631, 2153, 2142, 2173, 2172, 5637,
1058     12459,12459, 2180, 2178, 2172, 5645, 2188, 5650, 5654, 5664,
1059      2178, 5668,12459,12459, 2188, 5677,12459,12459, 2180, 5685,
1060      2197, 5688, 2202, 5691, 5697, 5700, 5710, 5718, 2201, 5721,
1061      5724, 5733,12459,12459, 5743, 2223, 5747,12459,12459, 2215,
1062
1063      2254, 5755, 2247, 5767, 2298, 3101, 5758, 5776, 5784, 2298,
1064      2321, 2342,12459, 5762, 2263, 2257, 2260, 2365, 2260, 2279,
1065      5787, 2327, 2333, 2321, 2326, 5791, 2341, 2335, 2337, 5794,
1066      5797, 5803, 2354, 5807, 2361, 2360, 2368, 2435, 2380, 2386,
1067      2397, 2402, 5810, 5813, 2405, 5816, 2416, 5819, 5822, 5830,
1068      5837, 2422, 5848, 2412, 5851,12459,12459, 5859, 2429, 5862,
1069      5867, 5870, 5874, 5882, 5888, 5900, 5903, 5896, 5915, 5906,
1070      5925,12459,12459, 5933, 5936, 5944, 2461, 5947,12459,12459,
1071      5955, 5959, 2462, 2473, 2463, 5969, 5973, 5981, 2467, 2477,
1072      5987,12459,12459, 2477, 5999, 6002, 2474, 2473, 6010, 6013,
1073
1074      2490, 2515, 6017, 6020, 6035,12459,12459, 6043, 2540, 2541,
1075      2530, 6051,12459, 6054, 2534, 6057, 6062, 2529, 6070, 2551,
1076      6077, 2564, 2566, 2546, 6088,12459, 2547, 6091, 6094,12459,
1077     12459, 6102, 2617, 6117, 6121, 6124, 6132, 2591, 6142,12459,
1078     12459, 6151, 6154, 2611, 6162,12459,12459, 2605, 6170,12459,
1079      2597, 6173, 6176, 6180, 2599, 6183, 2605, 2608, 2601, 2615,
1080      6191, 2612, 6195,12459,12459, 6203,12459, 2617, 6206, 2624,
1081      6210, 2629, 6213, 2638, 6216, 6224, 6238, 6246, 6249, 6253,
1082      6270, 6273, 6277,12459,12459, 6285, 2640, 2662, 2706, 6293,
1083      6296, 2715, 2703, 2763, 2703, 2721, 2709, 2837, 2709, 6300,
1084
1085     12459,12459, 6308, 2768, 2787, 2824, 6314, 6320, 6328, 2681,
1086      2697, 2745, 2724, 6332, 6335, 6339, 2738, 6342, 2744, 2744,
1087      2759, 2758, 6345, 6348, 6351, 6355, 2758, 6358, 2801, 2816,
1088      2797, 6361, 6364, 2815, 6367, 6370, 6373, 2815, 6376,12459,
1089     12459, 6384,12459,12459, 2833, 6392, 2824, 6395, 2833, 6398,
1090      6402, 6416, 6420,12459,12459, 6428,12459,12459, 6436, 6439,
1091      6444,12459,12459, 6460, 6463, 6478,12459,12459, 6471, 2857,
1092      6486,12459,12459, 2857, 2860, 2874, 6494,12459,12459, 6502,
1093      6505, 2878, 2867, 2876, 6513,12459,12459, 2888, 6521, 6524,
1094      6527, 2888, 2886, 6532,12459,12459, 2979, 2980, 2896, 2904,
1095
1096      6546, 6549, 2904, 6552, 6555, 2924, 2926, 3027, 3028, 2951,
1097      2950, 6571, 6574, 2966, 6577,12459, 6580,12459,12459, 6596,
1098      2961, 6602,12459,12459, 2954, 2967, 2996, 6610, 6615, 6623,
1099      6628, 6631, 6638, 6642, 6645, 6650, 6653, 6656, 2990, 3003,
1100      6663, 6671, 3024, 6681, 3023, 6684,12459, 3013, 6688, 6691,
1101     12459,12459, 6703, 6709, 3020, 6722,12459,12459, 6717, 6730,
1102      6736, 3021, 6744, 3028, 3055, 3079, 6748,12459, 6752, 6756,
1103      3106, 3105, 3106, 3112, 3124, 3121, 3118, 3119, 3144, 3166,
1104      6770, 6773, 3240, 3317, 6776, 6759, 6764, 6800, 6805, 6808,
1105      3131, 3132, 6811, 6814, 3149, 6820, 6823, 3159, 6826, 6829,
1106
1107      6832, 6835, 3155, 3166, 6838, 6841, 3180, 3183, 6844, 6847,
1108      3203, 6850, 6853, 3195, 3222, 3267, 6856, 6859, 6862, 6865,
1109      6868,12459,12459, 6876, 6883, 6886, 6889,12459,12459, 6897,
1110      3263, 3272, 3273, 3282, 6905,12459,12459, 6916, 3273, 3287,
1111      3282, 6921, 6930, 6924, 6939,12459, 3303, 3319, 3346, 3369,
1112      3355, 3376, 3335, 6943, 6948, 6951, 6954, 6958,12459,12459,
1113      6972, 6975, 3362, 3386, 3369, 3394, 6978, 6981, 6984, 7003,
1114      7009, 7012, 3347, 3375, 3388, 7015, 7018,12459,12459, 7031,
1115      7037, 7040, 7046, 7054, 7058, 7064, 7068, 7072, 7076, 7087,
1116     12459,12459, 7082, 7095,12459, 3396, 3396, 7100,12459, 7103,
1117
1118     12459,12459, 3377, 7119, 7122,12459,12459, 3384, 7131, 3399,
1119      3400,12459, 7134,12459,12459, 3449, 3436, 3451, 3447, 3470,
1120      3477, 3464, 3479, 3478, 3488, 7142, 7145, 3518, 3525, 3464,
1121      3472, 3521, 3467, 3476, 3474, 3479, 3531, 3477, 3489, 7150,
1122      7153, 3500, 3501, 7156, 7164, 3532, 7167, 7170, 3524, 3537,
1123      7173, 3539, 3542, 7178, 3538, 3551, 3576, 7181,12459, 7184,
1124      7187, 7191, 7194, 7209, 7212, 7215, 7218,12459, 3589, 3610,
1125      3601, 3593, 3617, 7221, 7224, 3609, 7239, 3641, 7242, 3674,
1126      3682, 7250,12459, 3632, 3639, 3712,12459, 3718,12459, 7253,
1127      7257, 7260, 7263,12459, 7271, 7283, 3674, 3670, 3671, 3728,
1128
1129     12459, 3731,12459, 7291, 7294, 7297, 7305, 7312, 7318, 7324,
1130      7332, 3673, 3691, 7336, 7339, 7342, 7345,12459,12459, 7354,
1131      7357, 7365, 7368, 7374,12459, 7377, 7386, 7389, 7397, 3716,
1132      3711, 3715, 7400,12459, 3720, 7404, 3722, 3720, 3751, 3751,
1133      3767, 3759, 3784, 3783, 3784, 3818, 3806, 3834, 7407, 3873,
1134      3846, 3919, 3791, 3804, 3802, 3808, 3814, 3811, 3816, 3830,
1135      3826, 3857, 3865, 3866, 3884, 3902, 7410, 7415, 3892, 3905,
1136      3892, 3910, 7419, 3900, 3930, 7426, 7429,12459, 7432,12459,
1137     12459, 7440,12459, 7444, 7448, 3912, 3927, 3937, 7454, 3933,
1138      7472,12459,12459, 3946, 7463, 7481, 3942, 4005, 3976, 4042,
1139
1140      3977, 3945, 7489,12459,12459, 7492, 7495, 7459, 7511,12459,
1141     12459, 3963, 3968, 3969,12459,12459, 7519, 7522, 7530, 4177,
1142      4291, 7538,12459, 7541, 7544,12459,12459, 7552,12459, 3967,
1143      7560, 7563, 7567, 7581,12459, 7584,12459,12459, 7592, 7600,
1144      7595, 7613, 7621, 4093, 4215, 7629, 7632, 7635, 3990, 3996,
1145      7638, 7641, 7653, 4036, 4045, 4045, 4049, 4066, 4044, 4058,
1146      4058, 4061, 4082, 7657, 4092, 4099, 4170, 4026, 4050, 4038,
1147      4055, 4063, 4081, 4075, 4096, 4086, 4104, 4116, 4134, 4120,
1148      7660, 7663, 4138, 4142, 4139, 7666, 4156, 4159, 7671, 7676,
1149      7684, 7692, 4166, 4152, 7695, 7698, 7704, 7718, 4166, 7721,
1150
1151     12459,12459, 4180, 4203, 4223, 4214, 4221, 4250, 4236, 7729,
1152      7732, 7737, 7752,12459,12459, 7760,12459, 4215, 7763, 4229,
1153      7766,12459,12459, 4246, 4261, 4261, 4264, 4265, 4276, 7781,
1154      4267, 7784, 7787, 7796,12459,12459, 7804, 4350, 4365, 7812,
1155     12459,12459, 4289, 4298, 4399, 4297, 4306, 4426, 7820, 7823,
1156      7826, 7834, 7841, 7852, 7855, 7858, 7861, 7864, 7882, 4318,
1157      4303, 4301, 4326,12459, 4345, 4329, 4328, 4334,12459, 7873,
1158      4402, 4374, 7877, 4327, 4334, 4353, 4400, 4422, 4376, 4369,
1159      4372, 4388, 4450, 4453, 4407, 4416, 7896, 7899, 4404, 4420,
1160      7902, 7905, 4415, 7908, 4458, 4469, 7916, 7921, 4436, 4431,
1161
1162      7925, 7928, 7936,12459,12459, 7944, 7947, 4436, 4449, 4475,
1163      4485, 4485, 4483, 4497, 4497, 7955, 7958, 4489, 7966,12459,
1164     12459, 4491, 7974, 7977, 4473, 4504, 4520, 4552, 4533, 4544,
1165      4571, 7985,12459, 4533, 7988,12459,12459, 4567, 4573, 4570,
1166      4589, 4595, 4583, 4586, 4594, 4606, 4594, 4605, 4615, 7996,
1167      8000, 4630, 4638, 8008,12459,12459, 8016, 8019, 8027, 8030,
1168      8038, 8041,12459,12459, 4608, 4628, 4645, 4637, 4626, 4650,
1169      4675, 4675, 8049, 4683, 8052, 8057, 8061, 4647, 4634, 4699,
1170     12459,12459, 4664, 4676, 4662, 4726,12459,12459, 4690, 8071,
1171      8076, 8080, 8083, 8086, 8090, 4712, 4723, 4723, 4734, 8093,
1172
1173      8099,12459, 4707, 4709, 8102,12459,12459, 8112,12459,12459,
1174      8120, 4700, 4733, 4769, 4737, 4744, 4776, 4760, 8123,12459,
1175     12459, 4744, 8131, 8134,12459,12459, 8145, 4772, 4790,12459,
1176      4783, 4793,12459, 4764, 4799, 4788, 4810, 4799, 4817, 4827,
1177      4830, 4817, 4833, 4843, 4849, 4855, 8149, 8152, 4861, 4875,
1178      4866, 4878, 8163,12459,12459, 8171,12459,12459, 8179, 4886,
1179      4887,12459, 4888, 4891, 4895,12459, 4906, 8182, 4948, 8185,
1180      8188, 8207, 8250, 8297, 4876, 4879,12459, 4892, 4894, 4896,
1181     12459, 4906, 8215, 8218, 8221, 8226, 4964, 4933, 4981, 4958,
1182      8229, 4939, 4949, 8241, 8232, 8244, 4974,12459, 5012, 4983,
1183
1184     12459, 5013, 4967, 8262, 8270, 8288, 8280, 5023, 5024, 5024,
1185      5026, 4976, 5042, 5010, 5042, 5016, 5033, 5063, 5074, 5047,
1186      5063, 5084, 5085, 5058, 8317,12459,12459, 5097, 5068, 5103,
1187      5075, 8291,12459, 5109, 5089, 5090, 5116, 5098, 5099, 8325,
1188      5120, 8328, 5185, 5129, 8348, 8395, 5135, 5102, 5148, 5202,
1189      5109, 5151,12459, 5182,12459, 5181, 8338,12459, 5150, 5133,
1190      8368, 5186, 5189, 8359, 8377, 5189,12459, 5197,12459, 5177,
1191      8415,12459,12459, 8423, 5261, 5280,12459,12459,12459,12459,
1192      5178,12459, 5229,12459, 5253, 5271,12459,12459, 5252, 5277,
1193     12459,12459, 5267,12459, 5302,12459, 5304,12459, 5312, 5323,
1194
1195     12459, 5330, 5332, 8385,12459, 5333, 5357, 5359, 5345, 5412,
1196      5345, 8388,12459, 5345, 5390,12459,12459, 5366, 5402,12459,
1197     12459,12459, 8431, 8434, 5405, 5358, 5418, 5361, 8442,12459,
1198     12459, 5412, 5425, 8452, 5446, 5424, 5449, 5425, 8455, 5422,
1199      5432, 5462, 5452, 5465, 5460,12459,12459,12459,12459,12459,
1200     12459, 8458, 5495, 5482, 5495, 8461, 5460, 5451,12459, 5467,
1201      5468, 5459,12459, 5474, 8464, 8473, 8482, 8485, 5491, 5500,
1202      5512, 5496, 5508, 5536, 5553, 5553, 8493, 8496, 5529, 5537,
1203      5556, 5540, 5548, 5565, 8504, 8507, 5548, 5562, 5597, 5583,
1204      5597, 5586, 8515, 5590, 5553, 5557, 5573, 5562, 5565, 5585,
1205
1206      8518,12459,12459, 8527, 5623, 5634, 5600, 5609, 5607, 5622,
1207      5631, 5637,12459,12459, 8535,12459,12459, 5639, 5645, 5644,
1208      5659, 5664, 5668, 8543,12459,12459, 5701, 5700,12459, 5676,
1209     12459, 5681, 5698,12459, 5669, 5662, 5676, 5686, 5683, 5698,
1210      5733, 5743, 5752, 5754, 5754, 5777, 5777, 5797, 5804, 5804,
1211      5805, 5811, 5816, 5814, 5820, 5821,12459,12459, 5842, 5847,
1212      5875, 5790, 5792, 5814, 5807, 5815, 5835, 5853, 5874, 5871,
1213      5891, 5885, 5885, 5907, 5896, 5900, 5918, 5907, 5913, 5930,
1214      5923, 5925, 5944,12459,12459, 5958, 5914, 5975, 5980, 5921,
1215      5983, 5985, 5958, 5961, 5970, 5971, 5984, 5988, 6021, 6002,
1216
1217      5994, 6023, 6008, 5998, 6034, 6016, 6006, 6039, 6049, 5997,
1218     12459,12459, 5998,12459,12459, 6032, 6041, 6040, 6050, 6072,
1219      6051,12459, 6076, 6054,12459, 6082, 6066,12459, 6092, 6069,
1220     12459, 6095, 6054, 6056, 6073, 6087, 6076, 6091,12459, 6105,
1221     12459, 6106,12459, 6112,12459, 6113, 8553, 6135, 6134, 6121,
1222      6143, 6133, 6152, 6118, 6123, 6125, 6144, 8556,12459,12459,
1223      6183,12459, 6182,12459, 6194, 6193, 6197, 6212, 6204, 6211,
1224     12459,12459,12459,12459,12459,12459, 6202, 6217, 6225, 6246,
1225      6214, 6243, 6393, 6394, 6226, 6249, 6307, 6369, 6234, 6387,
1226      6371, 6413, 6364, 6407, 6209, 6396, 6435, 6466, 6456, 6463,
1227
1228      6441, 6490, 6372, 6424, 6482, 6513, 6440, 6492, 6525, 6547,
1229      6543, 6602, 6540, 6552, 6432, 6567, 6581, 6617, 6642, 6709,
1230      6523, 6616, 6630, 6643, 6710, 6724, 6271, 6661, 6659, 6716,
1231      6542, 6715, 6651, 6721, 6603, 6741, 6451, 6896, 6743, 6853,
1232      6682, 6737, 6882, 6893, 6855, 6970, 6874, 6946, 6863, 6918,
1233      6885, 6892, 6978, 7027, 6952, 6969, 6976, 7080, 6975, 7061,
1234      6988, 7044, 7062, 7107, 6949, 6973, 6785, 7188, 7109, 7182,
1235      7110, 7211, 7184, 7217, 7112, 7230, 8564, 8567,12459,12459,
1236      8587, 8596, 8605, 8614, 8623, 8632, 8641, 8650, 8659, 8668,
1237      8677, 8686, 8695, 8704, 8713, 8722, 8731, 8740, 8749, 8758,
1238
1239      8767, 8776, 8785, 8794, 8803, 8812, 8821, 8830, 8839, 8848,
1240      8857, 8866, 8875, 8884, 8893, 8902, 8911, 8920, 8929, 8938,
1241      8947, 8956, 8965, 8974, 8983, 8992, 9001, 9010, 9019, 9028,
1242      9037, 9046, 9055, 9064, 9073, 9082, 9091, 9100, 9109, 9118,
1243      9127, 9136, 9145, 9154, 9161, 9168, 9175, 9182, 9189, 9196,
1244      9203, 9210, 9217, 9224, 9231, 9238, 9245, 9252, 9259, 9266,
1245      9273, 9280, 9287, 9294, 9301, 9308, 9315, 9322, 9329, 9336,
1246      9343, 9350, 9357, 9366, 9373, 9378, 9385, 9390, 9397, 9402,
1247      9409, 9414, 9421, 9426, 9433, 9438, 9445, 9450, 9457, 9462,
1248      9469, 9474, 9481, 9486, 9493, 9498, 9505, 9510, 9517, 9522,
1249
1250      9529, 9534, 9541, 9546, 9553, 9558, 9565, 9570, 9577, 9582,
1251      9589, 9594, 9601, 9606, 9613, 9618, 9625, 9630, 9637, 9642,
1252      9649, 9654, 9661, 9666, 9673, 9678, 9685, 9690, 9697, 9702,
1253      9709, 9714, 9723, 9729, 9736, 9744, 9752, 9760, 9767, 9775,
1254      9782, 9790, 9798, 9806, 9814, 9822, 9830, 9838, 9845, 9853,
1255      9861, 9868, 9876, 9883, 9891, 9898, 9906, 9913, 9921, 9928,
1256      9936, 9943, 9951, 9958, 9966, 9973, 9981, 9988, 9996,10003,
1257     10011,10018,10026,10033,10041,10048,10056,10063,10071,10079,
1258     10087,10094,10102,10109,10117,10124,10132,10139,10147,10154,
1259     10162,10171,10177,10184,10192,10199,10207,10214,10222,10229,
1260
1261     10237,10244,10252,10260,10267,10275,10282,10290,10298,10306,
1262     10314,10321,10329,10337,10345,10353,10361,10368,10376,10383,
1263     10391,10398,10406,10414,10422,10430,10438,10445,10453,10460,
1264     10468,10475,10483,10490,10498,10505,10513,10520,10528,10535,
1265     10543,10550,10558,10565,10573,10581,10589,10596,10604,10613,
1266     10622,10629,10636,10644,10652,10660,10667,10675,10682,10690,
1267     10698,10705,10713,10720,10728,10736,10744,10751,10759,10767,
1268     10775,10782,10790,10797,10805,10813,10821,10828,10836,10843,
1269     10851,10858,10866,10873,10881,10888,10896,10904,10912,10919,
1270     10927,10934,10942,10949,10957,10964,10972,10979,10987,10994,
1271
1272     11002,11009,11017,11026,11035,11042,11050,11058,11066,11073,
1273     11081,11089,11097,11105,11113,11121,11128,11136,11144,11151,
1274     11159,11167,11175,11182,11190,11197,11205,11213,11220,11228,
1275     11236,11244,11251,11259,11266,11274,11281,11289,11297,11304,
1276     11312,11319,11327,11334,11342,11350,11358,11365,11373,11380,
1277     11388,11395,11403,11412,11421,11429,11436,11444,11452,11459,
1278     11467,11475,11483,11491,11499,11506,11514,11522,11529,11537,
1279     11545,11552,11559,11567,11575,11582,11590,11598,11605,11613,
1280     11621,11628,11636,11643,11651,11658,11666,11673,11681,11689,
1281     11697,11705,11713,11720,11728,11736,11744,11753,11762,11769,
1282
1283     11777,11785,11792,11800,11808,11816,11824,11831,11839,11847,
1284     11854,11862,11870,11877,11884,11892,11900,11907,11915,11922,
1285     11930,11938,11946,11953,11961,11968,11975,11983,11990,11998,
1286     12005,12013,12020,12028,12037,12046,12053,12061,12069,12077,
1287     12085,12093,12101,12109,12116,12124,12131,12139,12147,12155,
1288     12163,12171,12179,12187,12195,12202,12210,12218,12226,12234,
1289     12241,12248,12255,12263,12270,12278,12285,12293,12302,12311,
1290     12318,12326,12334,12342,12350,12357,12364,12372,12379,12387,
1291     12395,12404,12413,12422,12431,12440,12449
1292     } ;
1293
1294 static yyconst flex_int16_t yy_def[3988] =
1295     {   0,
1296      3481, 3481, 3482, 3482, 3482, 3482, 3483, 3483, 3484, 3484,
1297      3485, 3485, 3486, 3486, 3486, 3486, 3487, 3487, 3488, 3488,
1298      3489, 3489, 3489, 3489, 3481, 3481, 3489, 3489, 3489, 3489,
1299      3481, 3481, 3489, 3489, 3481, 3481, 3489, 3489, 3489, 3489,
1300      3490, 3490, 3491, 3491, 3481, 3481, 3491, 3491, 3491, 3491,
1301      3492, 3492, 3493, 3493, 3494, 3494, 3495, 3495, 3496, 3496,
1302      3497, 3497, 3481, 3481, 3497, 3497, 3497, 3497, 3498, 3498,
1303      3499, 3499, 3481, 3481, 3499, 3499, 3499, 3499, 3500, 3500,
1304      3501, 3501, 3480,   83, 3502, 3502, 3481, 3481, 3502, 3502,
1305      3502, 3502, 3503, 3503, 3504, 3504, 3481, 3481, 3504, 3504,
1306
1307      3504, 3504, 3505, 3505, 3506, 3506, 3507, 3507, 3508, 3508,
1308      3481, 3481, 3508, 3508, 3508, 3508, 3509, 3509, 3510, 3510,
1309      3511, 3511, 3512, 3512, 3481, 3481, 3512, 3512, 3512, 3512,
1310      3513, 3513, 3514, 3514, 3481, 3481, 3514, 3514, 3514, 3514,
1311      3515, 3515, 3516, 3516, 3517, 3517, 3518, 3518, 3519, 3519,
1312      3520, 3520, 3521, 3521, 3522, 3522, 3523, 3523, 3524, 3524,
1313      3481, 3481, 3525, 3525, 3526, 3526, 3526, 3526, 3481, 3481,
1314      3526, 3526, 3526, 3526, 3481, 3481, 3526, 3526, 3481, 3481,
1315      3526, 3526, 3526, 3526, 3527, 3527, 3528, 3528, 3481, 3481,
1316      3528, 3528, 3528, 3528, 3529, 3529, 3530, 3530, 3531, 3531,
1317
1318      3532, 3532, 3533, 3533, 3534, 3534, 3481, 3481, 3534, 3534,
1319      3534, 3534, 3535, 3535, 3536, 3536, 3537, 3537, 3538, 3538,
1320      3481, 3481, 3538, 3538, 3538, 3538, 3539, 3539, 3540, 3540,
1321      3481, 3481, 3540, 3540, 3540, 3540, 3541, 3541, 3542, 3542,
1322      3543, 3543, 3544, 3544, 3481, 3481, 3480, 3480, 3480, 3480,
1323      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1324      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1325      3480, 3480, 3480, 3480, 3480, 3480, 3545, 3480, 3480, 3545,
1326      3545, 3480, 3480, 3480,  284, 3480,  286,  284,  287,  286,
1327      3480, 3480, 3480, 3546, 3480, 3480, 3546, 3546, 3546, 3480,
1328
1329      3480,  286,  286,  286, 3480, 3480, 3480, 3547, 3480, 3480,
1330      3547, 3480, 3480, 3480, 3480, 3480, 3480, 3548, 3480, 3480,
1331      3548, 3548, 3548, 3480, 3480, 3480, 3480, 3480, 3480, 3549,
1332      3480, 3480, 3549, 3549, 3549, 3480, 3480,  286,  286, 3480,
1333      3480, 3480, 3550, 3480, 3480, 3550, 3550, 3480, 3480,  286,
1334       286, 3480, 3480, 3480, 3551, 3480, 3480, 3551, 3551, 3551,
1335      3551, 3551, 3551, 3480, 3480, 3480, 3480, 3480, 3480, 3552,
1336      3480, 3480, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552,
1337      3552, 3480, 3480,  286,  286, 3480, 3480, 3480, 3553, 3480,
1338      3480, 3553, 3480, 3480,  286,  286, 3480, 3480, 3480, 3554,
1339
1340      3480, 3480, 3554, 3480, 3480, 3480, 3480, 3480, 3480, 3555,
1341      3480, 3480, 3555, 3555, 3555, 3555, 3555, 3480, 3480,  286,
1342       286,  286, 3480, 3480, 3480, 3556, 3480, 3480, 3556, 3556,
1343      3556, 3480, 3480, 3480, 3480, 3480, 3480, 3557, 3480, 3480,
1344      3557, 3480, 3480,  286,  444,  286, 3480, 3480, 3480, 3558,
1345      3480, 3480, 3558, 3558, 3558, 3558, 3480, 3480,  286,  286,
1346      3480, 3480, 3480, 3559, 3480, 3480, 3559, 3559, 3480, 3480,
1347      3480, 3480, 3480, 3480, 3560, 3480, 3480, 3560, 3560, 3480,
1348      3480, 3480, 3480, 3480, 3480, 3561, 3480, 3480, 3561, 3561,
1349      3480, 3480, 3480, 3480, 3480, 3480, 3562, 3480, 3480, 3562,
1350
1351      3562, 3480, 3480, 3480, 3480, 3480, 3480, 3563, 3480, 3480,
1352      3563, 3563, 3563, 3563, 3563, 3563, 3480, 3480, 3480, 3480,
1353      3480, 3480, 3480, 3564, 3480, 3480, 3564, 3480, 3480,  444,
1354       444,  286,  286,  286,  286, 3480, 3480, 3480, 3565, 3480,
1355      3480, 3565, 3565, 3565, 3565, 3565, 3480, 3480,  286,  286,
1356       286, 3480, 3480, 3480, 3566, 3480, 3480, 3566, 3566, 3480,
1357      3480, 3480, 3480, 3480, 3480, 3567, 3480, 3480, 3567, 3567,
1358      3567, 3567, 3567, 3480, 3480, 3480, 3480, 3480, 3480, 3568,
1359      3480, 3480, 3568, 3568, 3480, 3480,  286,  286, 3480, 3480,
1360      3480, 3569, 3480, 3480, 3569, 3569, 3480, 3480, 3480, 3480,
1361
1362      3480, 3480, 3570, 3480, 3480, 3570, 3570, 3570, 3570, 3480,
1363      3480,  286,  286, 3480, 3480, 3480, 3571, 3480, 3480, 3571,
1364      3571, 3571, 3571, 3480, 3480,  286,  286,  286, 3480, 3480,
1365      3480, 3572, 3480, 3480, 3572, 3572, 3572, 3480, 3480, 3480,
1366      3480, 3480, 3573, 3480, 3480, 3573, 3573, 3573, 3480, 3480,
1367      3480, 3480, 3574, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1368      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3575, 3575, 3575,
1369      3576, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1370      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1371      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1372
1373      3480, 3480, 3480, 3577, 3577, 3577, 3577, 3577, 3578, 3480,
1374      3480, 3579, 3579, 3580, 3480, 3581, 3581, 3581, 3581, 3582,
1375      3480, 3583, 3583, 3583, 3583, 3584, 3480, 3585, 3585, 3585,
1376      3586, 3480, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587,
1377      3588, 3480, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589,
1378      3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3590,
1379      3480, 3591, 3591, 3592, 3480, 3593, 3593, 3594, 3480, 3595,
1380      3595, 3595, 3595, 3595, 3595, 3595, 3596, 3480, 3480, 3597,
1381      3597, 3597, 3597, 3598, 3480, 3599, 3599, 3600, 3480, 3480,
1382      3601, 3601, 3601, 3601, 3601, 3601, 3602, 3480, 3603, 3603,
1383
1384      3603, 3604, 3480, 3605, 3605, 3605, 3606, 3480, 3607, 3607,
1385      3607, 3608, 3480, 3609, 3609, 3609, 3610, 3480, 3611, 3611,
1386      3611, 3611, 3611, 3611, 3611, 3611, 3612, 3480, 3480, 3613,
1387      3613, 3614, 3480, 3480, 3480, 3480, 3480, 3480, 3615, 3615,
1388      3615, 3615, 3615, 3615, 3616, 3480, 3480, 3617, 3617, 3617,
1389      3618, 3480, 3619, 3619, 3619, 3619, 3619, 3619, 3619, 3619,
1390      3619, 3620, 3480, 3621, 3621, 3621, 3621, 3622, 3480, 3623,
1391      3623, 3623, 3624, 3480, 3625, 3625, 3625, 3625, 3625, 3626,
1392      3480, 3627, 3627, 3627, 3627, 3627, 3628, 3480, 3480, 3629,
1393      3629, 3629, 3629, 3480, 3630, 3480, 3480, 3631, 3631, 3631,
1394
1395      3631, 3632, 3633, 3480, 3633, 3480, 3480, 3480, 3634, 3480,
1396      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3635, 3636, 3636,
1397      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1398      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1399      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1400      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3637, 3637, 3637,
1401      3637, 3638, 3638, 3480, 3639, 3640, 3640, 3641, 3480, 3480,
1402      3641, 3642, 3642, 3643, 3643, 3643, 3644, 3644, 3645, 3645,
1403      3646, 3646, 3480, 3480, 3480, 3480, 3647, 3647, 3647, 3647,
1404      3647, 3648, 3648, 3649, 3649, 3480, 3480, 3649, 3480, 3480,
1405
1406      3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649,
1407      3649, 3650, 3650, 3480, 3480, 3651, 3651, 3652, 3653, 3653,
1408      3654, 3654, 3654, 3480, 3480, 3654, 3654, 3654, 3655, 3655,
1409      3480, 3480, 3656, 3480, 3480, 3480, 3480, 3657, 3657, 3658,
1410      3659, 3659, 3480, 3660, 3480, 3480, 3660, 3660, 3660, 3661,
1411      3661, 3662, 3480, 3480, 3663, 3663, 3480, 3480, 3664, 3665,
1412      3665, 3666, 3666, 3667, 3667, 3668, 3668, 3669, 3669, 3670,
1413      3670, 3670, 3480, 3480, 3670, 3670, 3670, 3671, 3671, 3480,
1414      3672, 3673, 3673, 3480, 3480, 3480, 3674, 3674, 3674, 3674,
1415      3674, 3675, 3675, 3480, 3480, 3480, 3676, 3677, 3677, 3678,
1416
1417      3480, 3480, 3678, 3678, 3678, 3678, 3678, 3678, 3679, 3679,
1418      3680, 3680, 3680, 3681, 3681, 3682, 3480, 3480, 3683, 3683,
1419      3684, 3684, 3480, 3480, 3684, 3685, 3685, 3686, 3480, 3480,
1420      3686, 3686, 3687, 3687, 3480, 3688, 3480, 3480, 3688, 3480,
1421      3689, 3689, 3480, 3690, 3690, 3690, 3691, 3691, 3692, 3480,
1422      3480, 3692, 3480, 3480, 3693, 3480, 3480, 3480, 3480, 3480,
1423      3480, 3480, 3480, 3694, 3480, 3695, 3480, 3695, 3480, 3480,
1424      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1425      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1426      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1427
1428      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3696,
1429      3696, 3480, 3480, 3696, 3480, 3697, 3480, 3697, 3480, 3698,
1430      3480, 3699, 3480, 3699, 3700, 3480, 3480, 3480, 3700, 3480,
1431      3701, 3480, 3701, 3480, 3480, 3702, 3702, 3480, 3480, 3480,
1432      3703, 3480, 3703, 3480, 3480, 3480, 3480, 3480, 3704, 3480,
1433      3704, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3705,
1434      3705, 3705, 3705, 3480, 3706, 3480, 3706, 3707, 3707, 3707,
1435      3707, 3480, 3480, 3480, 3707, 3480, 3480, 3480, 3480, 3480,
1436      3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
1437      3480, 3708, 3480, 3708, 3480, 3480, 3480, 3480, 3709, 3480,
1438
1439      3709, 3710, 3480, 3711, 3480, 3711, 3712, 3712, 3712, 3480,
1440      3480, 3480, 3712, 3712, 3712, 3480, 3713, 3480, 3713, 3480,
1441      3480, 3714, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3715,
1442      3480, 3715, 3716, 3480, 3717, 3480, 3717, 3718, 3480, 3480,
1443      3480, 3718, 3718, 3718, 3480, 3719, 3480, 3719, 3720, 3480,
1444      3480, 3480, 3480, 3721, 3480, 3721, 3480, 3480, 3480, 3722,
1445      3480, 3723, 3480, 3723, 3724, 3724, 3480, 3725, 3480, 3725,
1446      3726, 3726, 3480, 3727, 3480, 3727, 3728, 3728, 3728, 3728,
1447      3480, 3480, 3480, 3480, 3480, 3728, 3728, 3480, 3729, 3480,
1448      3729, 3480, 3730, 3480, 3731, 3480, 3731, 3480, 3480, 3480,
1449
1450      3732, 3732, 3732, 3732, 3732, 3480, 3733, 3480, 3733, 3480,
1451      3480, 3480, 3480, 3734, 3480, 3735, 3480, 3735, 3736, 3480,
1452      3480, 3480, 3480, 3480, 3736, 3480, 3480, 3736, 3736, 3736,
1453      3480, 3737, 3480, 3737, 3480, 3480, 3480, 3480, 3738, 3480,
1454      3739, 3480, 3739, 3740, 3480, 3480, 3480, 3480, 3741, 3480,
1455      3741, 3742, 3742, 3480, 3480, 3480, 3742, 3480, 3743, 3480,
1456      3743, 3744, 3480, 3480, 3480, 3744, 3744, 3480, 3745, 3480,
1457      3745, 3480, 3746, 3480, 3480, 3480, 3746, 3480, 3480, 3747,
1458      3480, 3747, 3748, 3748, 3748, 3480, 3749, 3480, 3749, 3750,
1459      3751, 3480, 3480, 3480, 3480, 3752, 3480, 3480, 3480, 3480,
1460
1461      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1462      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1463      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1464      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3753,
1465      3753, 3480, 3480, 3480, 3753, 3754, 3480, 3755, 3756, 3757,
1466      3757, 3758, 3480, 3480, 3480, 3759, 3759, 3480, 3480, 3480,
1467      3760, 3480, 3480, 3480, 3480, 3480, 3480, 3761, 3480, 3480,
1468      3480, 3762, 3762, 3762, 3762, 3763, 3764, 3764, 3764, 3764,
1469      3480, 3480, 3480, 3480, 3480, 3764, 3764, 3764, 3764, 3764,
1470      3764, 3764, 3764, 3764, 3764, 3764, 3765, 3766, 3480, 3480,
1471
1472      3767, 3768, 3768, 3480, 3480, 3768, 3768, 3768, 3769, 3480,
1473      3480, 3480, 3480, 3770, 3480, 3480, 3771, 3772, 3772, 3772,
1474      3772, 3773, 3774, 3775, 3776, 3777, 3480, 3480, 3778, 3779,
1475      3480, 3480, 3780, 3781, 3782, 3782, 3782, 3782, 3480, 3480,
1476      3480, 3782, 3782, 3783, 3480, 3784, 3785, 3480, 3480, 3480,
1477      3786, 3480, 3480, 3786, 3786, 3786, 3787, 3480, 3788, 3789,
1478      3790, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3790,
1479      3480, 3480, 3790, 3791, 3480, 3480, 3480, 3480, 3480, 3480,
1480      3792, 3793, 3794, 3795, 3796, 3796, 3796, 3797, 3798, 3798,
1481      3480, 3480, 3799, 3480, 3480, 3480, 3800, 3480, 3801, 3802,
1482
1483      3480, 3480, 3802, 3803, 3804, 3805, 3805, 3480, 3805, 3480,
1484      3480, 3806, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1485      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1486      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1487      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1488      3480, 3807, 3807, 3807, 3808, 3480, 3480, 3480, 3809, 3810,
1489      3810, 3811, 3812, 3812, 3813, 3814, 3815, 3815, 3480, 3480,
1490      3815, 3816, 3817, 3480, 3480, 3817, 3817, 3480, 3480, 3480,
1491      3817, 3817, 3817, 3817, 3817, 3817, 3480, 3480, 3817, 3817,
1492      3817, 3817, 3818, 3819, 3480, 3480, 3480, 3480, 3480, 3820,
1493
1494      3820, 3480, 3480, 3480, 3820, 3480, 3480, 3480, 3480, 3820,
1495      3821, 3480, 3480, 3480, 3480, 3480, 3822, 3480, 3480, 3480,
1496      3823, 3824, 3824, 3824, 3480, 3480, 3824, 3825, 3826, 3827,
1497      3480, 3480, 3828, 3480, 3480, 3480, 3829, 3830, 3480, 3480,
1498      3480, 3831, 3832, 3833, 3480, 3480, 3833, 3833, 3480, 3480,
1499      3833, 3834, 3480, 3835, 3836, 3480, 3480, 3480, 3837, 3480,
1500      3480, 3480, 3837, 3837, 3837, 3838, 3480, 3480, 3480, 3839,
1501      3840, 3480, 3480, 3480, 3840, 3480, 3480, 3480, 3840, 3841,
1502      3842, 3843, 3844, 3845, 3846, 3846, 3846, 3847, 3848, 3480,
1503      3480, 3480, 3480, 3480, 3849, 3480, 3480, 3480, 3480, 3850,
1504
1505      3480, 3851, 3852, 3480, 3480, 3480, 3480, 3480, 3853, 3854,
1506      3855, 3855, 3480, 3856, 3480, 3480, 3480, 3480, 3480, 3480,
1507      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1508      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1509      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1510      3480, 3857, 3858, 3480, 3480, 3480, 3480, 3859, 3860, 3860,
1511      3861, 3480, 3480, 3480, 3480, 3862, 3863, 3480, 3480, 3864,
1512      3480, 3480, 3480, 3480, 3480, 3865, 3866, 3480, 3480, 3480,
1513      3480, 3480, 3866, 3866, 3866, 3480, 3480, 3866, 3866, 3866,
1514      3480, 3480, 3480, 3866, 3480, 3480, 3866, 3866, 3867, 3868,
1515
1516      3869, 3869, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1517      3869, 3480, 3480, 3480, 3480, 3870, 3871, 3872, 3872, 3872,
1518      3480, 3480, 3480, 3872, 3480, 3480, 3873, 3874, 3480, 3480,
1519      3480, 3875, 3876, 3877, 3480, 3480, 3878, 3879, 3480, 3480,
1520      3480, 3480, 3480, 3879, 3480, 3480, 3480, 3879, 3480, 3480,
1521      3480, 3880, 3881, 3480, 3480, 3480, 3882, 3882, 3882, 3882,
1522      3883, 3480, 3480, 3480, 3480, 3480, 3480, 3884, 3884, 3884,
1523      3885, 3886, 3887, 3888, 3889, 3480, 3480, 3890, 3480, 3480,
1524      3891, 3892, 3480, 3480, 3480, 3893, 3480, 3894, 3480, 3895,
1525      3896, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1526
1527      3480, 3480, 3897, 3898, 3899, 3899, 3480, 3480, 3480, 3480,
1528      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1529      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1530      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1531      3480, 3480, 3480, 3480, 3900, 3901, 3480, 3902, 3903, 3480,
1532      3480, 3904, 3480, 3480, 3480, 3480, 3480, 3480, 3905, 3906,
1533      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3907, 3908,
1534      3480, 3480, 3480, 3908, 3908, 3908, 3480, 3480, 3480, 3480,
1535      3480, 3908, 3908, 3908, 3480, 3480, 3480, 3908, 3908, 3909,
1536      3910, 3911, 3911, 3480, 3480, 3480, 3480, 3480, 3911, 3480,
1537
1538      3912, 3913, 3914, 3480, 3480, 3914, 3914, 3480, 3480, 3914,
1539      3915, 3916, 3917, 3918, 3480, 3480, 3480, 3480, 3480, 3919,
1540      3920, 3480, 3480, 3480, 3920, 3920, 3480, 3480, 3480, 3921,
1541      3480, 3480, 3480, 3922, 3922, 3922, 3922, 3923, 3480, 3924,
1542      3480, 3480, 3924, 3925, 3926, 3480, 3480, 3927, 3928, 3480,
1543      3480, 3480, 3480, 3480, 3929, 3480, 3480, 3480, 3930, 3480,
1544      3480, 3931, 3932, 3480, 3933, 3480, 3480, 3480, 3480, 3480,
1545      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1546      3934, 3935, 3936, 3936, 3480, 3480, 3480, 3480, 3480, 3480,
1547      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1548
1549      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1550      3480, 3480, 3480, 3480, 3480, 3937, 3938, 3480, 3939, 3940,
1551      3480, 3480, 3480, 3941, 3942, 3943, 3480, 3480, 3480, 3944,
1552      3945, 3945, 3945, 3945, 3480, 3480, 3480, 3945, 3945, 3945,
1553      3945, 3480, 3480, 3946, 3480, 3480, 3947, 3947, 3480, 3480,
1554      3480, 3480, 3947, 3480, 3948, 3949, 3950, 3480, 3480, 3480,
1555      3950, 3950, 3480, 3480, 3480, 3480, 3950, 3951, 3952, 3953,
1556      3954, 3955, 3956, 3956, 3956, 3480, 3480, 3480, 3480, 3957,
1557      3480, 3480, 3480, 3958, 3958, 3958, 3959, 3480, 3960, 3480,
1558      3480, 3480, 3960, 3480, 3480, 3961, 3962, 3480, 3480, 3480,
1559
1560      3480, 3480, 3963, 3964, 3480, 3480, 3480, 3965, 3966, 3480,
1561      3967, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1562      3480, 3480, 3480, 3480, 3480, 3968, 3969, 3970, 3970, 3480,
1563      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1564      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1565      3480, 3480, 3480, 3480, 3480, 3480, 3971, 3480, 3480, 3480,
1566      3972, 3480, 3480, 3973, 3974, 3975, 3480, 3480, 3976, 3976,
1567      3976, 3976, 3976, 3480, 3480, 3976, 3976, 3976, 3480, 3480,
1568      3480, 3480, 3480, 3977, 3977, 3480, 3480, 3480, 3480, 3977,
1569      3480, 3978, 3480, 3480, 3480, 3480, 3979, 3979, 3979, 3480,
1570
1571      3480, 3480, 3480, 3979, 3480, 3480, 3980, 3981, 3480, 3480,
1572      3955, 3956, 3956, 3956, 3480, 3957, 3480, 3480, 3480, 3480,
1573      3480, 3958, 3958, 3480, 3480, 3480, 3480, 3480, 3960, 3961,
1574      3962, 3963, 3480, 3480, 3965, 3966, 3480, 3967, 3480, 3480,
1575      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3968, 3969,
1576      3970, 3970, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1577      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1578      3480, 3480, 3480, 3480, 3480, 3971, 3480, 3480, 3480, 3480,
1579      3480, 3480, 3480, 3974, 3975, 3976, 3976, 3976, 3976, 3976,
1580      3480, 3480, 3480, 3976, 3480, 3480, 3976, 3480, 3480, 3480,
1581
1582      3480, 3977, 3977, 3480, 3480, 3480, 3480, 3978, 3480, 3480,
1583      3480, 3979, 3979, 3979, 3480, 3480, 3480, 3480, 3480, 3480,
1584      3480, 3480, 3480, 3981, 3480, 3480, 3480, 3480, 3480, 3956,
1585      3956, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1586      3480, 3480, 3480, 3480, 3480, 3960, 3961, 3962, 3963, 3965,
1587      3966, 3480, 3967, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1588      3480, 3480, 3480, 3968, 3969, 3970, 3970, 3480, 3480, 3480,
1589      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1590      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1591      3974, 3975, 3976, 3976, 3976, 3480, 3480, 3976, 3976, 3480,
1592
1593      3480, 3480, 3976, 3480, 3480, 3480, 3480, 3480, 3480, 3977,
1594      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3979, 3979, 3979,
1595      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3981,
1596      3956, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1597      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3960, 3480,
1598      3480, 3480, 3480, 3963, 3965, 3966, 3480, 3480, 3480, 3480,
1599      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3968,
1600      3969, 3970, 3970, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1601      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1602      3480, 3480, 3480, 3480, 3480, 3480, 3974, 3975, 3976, 3976,
1603
1604      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3976, 3976, 3480,
1605      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3977, 3480, 3480,
1606      3480, 3979, 3480, 3480, 3979, 3480, 3480, 3480, 3480, 3480,
1607      3480, 3480, 3480, 3956, 3480, 3480, 3480, 3480, 3480, 3480,
1608      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3960,
1609      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1610      3966, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1611      3480, 3480, 3968, 3969, 3970, 3970, 3970, 3480, 3480, 3480,
1612      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1613      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3974,
1614
1615      3480, 3480, 3976, 3976, 3480, 3480, 3480, 3480, 3480, 3480,
1616      3976, 3976, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1617      3480, 3977, 3979, 3480, 3480, 3480, 3979, 3480, 3480, 3480,
1618      3480, 3480, 3480, 3956, 3480, 3480, 3480, 3480, 3480, 3480,
1619      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1620      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3966, 3480,
1621      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3968, 3969, 3970,
1622      3970, 3970, 3982, 3983, 3480, 3480, 3480, 3480, 3480, 3480,
1623      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1624      3974, 3976, 3976, 3480, 3480, 3976, 3480, 3480, 3480, 3480,
1625
1626      3480, 3480, 3977, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1627      3480, 3956, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1628      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1629      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3968,
1630      3969, 3970, 3984, 3985, 3982, 3983, 3480, 3480, 3480, 3480,
1631      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3976, 3976,
1632      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3977,
1633      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1634      3956, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1635      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1636
1637      3480, 3480, 3480, 3480, 3480, 3969, 3984, 3970, 3986, 3985,
1638      3987, 3970, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1639      3480, 3480, 3976, 3976, 3480, 3480, 3480, 3480, 3480, 3480,
1640      3480, 3480, 3480, 3977, 3480, 3480, 3480, 3480, 3956, 3480,
1641      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1642      3480, 3969, 3986, 3480, 3987, 3970, 3480, 3480, 3480, 3480,
1643      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1644      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1645      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1646      3480, 3480, 3969, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1647
1648      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1649      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1650      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1651      3480, 3480, 3969, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1652      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1653      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1654      3969, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1655      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1656      3480, 3480, 3480, 3480, 3480, 3969, 3480, 3480, 3480, 3480,
1657      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1658
1659      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3969, 3480,
1660      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1661      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1662      3480, 3969, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1663      3480, 3480, 3480, 3480, 3480, 3480, 3969, 3480, 3480, 3480,
1664      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3969, 3480, 3480,
1665      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3969, 3969,
1666      3480, 3480, 3480, 3480, 3480, 3480, 3969, 3969, 3969, 3969,
1667      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1668      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1669
1670      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1671      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1672      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1673      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1674      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1675      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1676      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
1677      3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3480,    0,
1678      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1679      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1680
1681      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1682      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1683      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1684      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1685      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1686      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1687      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1688      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1689      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1690      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1691
1692      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1693      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1694      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1695      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1696      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1697      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1698      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1699      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1700      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1701      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1702
1703      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1704      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1705      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1706      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1707      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1708      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1709      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1710      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1711      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1712      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1713
1714      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1715      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1716      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1717      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1718      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1719      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1720      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1721      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1722      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1723      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1724
1725      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1726      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1727      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1728      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1729      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1730      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1731      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1732      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
1733      3480, 3480, 3480, 3480, 3480, 3480, 3480
1734     } ;
1735
1736 static yyconst flex_int16_t yy_nxt[12534] =
1737     {   0,
1738      3480,  250,  251,  250,  250,  251,  250,  250,  251,  250,
1739       250,  251,  250,  255,  251,  255,  261,  252,  258,  261,
1740       252,  258,  845,  253, 3480,  259,  253, 3480,  259,  256,
1741       255,  251,  255,  653,  262,  264,  265,  262,  264,  265,
1742       266,  267,  671,  266,  267,  653,  256,  271,  272,  654,
1743       268,  264,  265,  268,  269,  656,  266,  264,  265,  846,
1744       269,  655,  266,  271,  272,  739,  268,  283,  251,  283,
1745       740,  655,  268,  283,  251,  283,  283,  251,  283,  283,
1746       251,  283, 1378,  284,  251,  251,  251,  795, 1379,  284,
1747       910,  273,  285,  911,  699,  285,  652,  652,  652,  796,
1748
1749       286,  652,  652,  652,  652,  652,  652,  273,  274,  275,
1750       251,  275,  274,  274,  274,  274,  274,  274,  274,  276,
1751       274,  274,  274,  860,  274,  278,  274,  279,  274,  251,
1752       251,  251,  283,  251,  283,  283,  251,  283,  861,  283,
1753       251,  283,  283,  251,  283,  286,  656,  656,  284,  707,
1754       745,  284,  709,  274,  274,  287,  708, 1595,  287,  652,
1755       652,  652,  655,  655,  280,  652,  652,  652,  710, 1596,
1756       661,  746,  699,  281,  274,  275,  251,  275,  274,  274,
1757       274,  274,  274,  274,  274,  276,  274,  274,  274, 1725,
1758       274,  278,  274,  279,  274,  251,  251,  251,  251,  251,
1759
1760       251,  283,  251,  283,  699,  283,  251,  283,  251,  251,
1761       251,  288,  662,  656,  288, 1726,  923,  285,  663,  274,
1762       274,  285,  656,  664,  289,  251,  251,  251,  665,  655,
1763       280,  283,  251,  283,  283,  251,  283, 1727,  655,  281,
1764       924,  289,  283,  251,  283, 1729,  656,  287,  904,  656,
1765       287,  283,  251,  283,  652,  652,  652,  726,  290,  652,
1766       652,  652,  655,  905,  709,  655, 1730,  290,  291,  292,
1767       251,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1768       291,  291,  291,  777,  291,  295,  291,  296,  291,  301,
1769       251,  301,  301,  251,  301,  251,  251,  251,  731,  251,
1770
1771       251,  251,  301,  251,  301,  302,  753,  937,  302,  699,
1772      1732,  303,  710,  291,  291,  303,  699,  656,  302,  297,
1773       754,  938,  298,  652,  652,  652,  652,  652,  652,  652,
1774       652,  652,  778,  655,  299,  291,  292,  251,  292,  291,
1775       291,  291,  291,  291,  291,  291,  293,  291,  291,  291,
1776       699,  291,  295,  291,  296,  291,  301,  251,  301,  301,
1777       251,  301,  301,  251,  301,  749,  313,  251,  313,  313,
1778       251,  313,  302,  750,  656,  304,  656, 1733,  304,  751,
1779       291,  291,  314,  714,  656,  314,  297, 1734,  760,  298,
1780       655,  720,  655,  652,  652,  652,  652,  652,  652,  764,
1781
1782       655,  299,  305,  306,  251,  306,  305,  305,  305,  305,
1783       305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
1784       305,  310,  305,  325,  251,  325,  325,  251,  325,  337,
1785       251,  337,  925,  337,  251,  337,  251,  251,  251,  326,
1786       699,  944,  326,  926, 1735,  338,  927,  305,  305,  338,
1787       656,  699,  303,  251,  251,  251,  652,  652,  652,  652,
1788       652,  652,  726,  652,  652,  652,  655, 1022,  731,  303,
1789      1023,  311,  305,  306,  251,  306,  305,  305,  305,  305,
1790       305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
1791       305,  310,  305,  337,  251,  337,  337,  251,  337,  337,
1792
1793       251,  337,  904,  337,  251,  337,  349,  251,  349,  338,
1794       710,  924,  338, 1737,  699,  339,  710,  305,  305,  339,
1795       699, 1738,  350,  349,  251,  349,  652,  652,  652,  652,
1796       652,  652,  652,  652,  652,  652,  652,  652, 1140,  350,
1797      1181,  311,  315,  316,  251,  316,  315,  315,  315,  315,
1798       315,  315,  315,  317,  315,  315,  315, 1182,  315,  319,
1799       315,  320,  315,  251,  251,  251,  251,  251,  251,  349,
1800       251,  349,  937,  349,  251,  349,  349,  251,  349,  303,
1801       656,  656,  303,  656,  656,  350,  952,  315,  315,  350,
1802       741,  321,  351,  652,  652,  652,  655,  655,  322,  655,
1803
1804       655,  323,  315,  316,  251,  316,  315,  315,  315,  315,
1805       315,  315,  315,  317,  315,  315,  315, 1739,  315,  319,
1806       315,  320,  315,  349,  251,  349,  365,  251,  365,  365,
1807       251,  365,  937,  383,  251,  383,  383,  251,  383,  351,
1808       775,  656,  366,  656,  776,  366,  956,  315,  315,  384,
1809       768,  321,  384,  652,  652,  652,  825,  655,  322,  655,
1810       826,  323,  327,  328,  251,  328,  327,  327,  327,  327,
1811       327,  327,  327,  329,  327,  327,  327,  923,  327,  331,
1812       327,  332,  327,  251,  251,  251,  251,  251,  251,  383,
1813       251,  383,  777,  383,  251,  383,  383,  251,  383,  286,
1814
1815       932,  944,  286, 1740,  933,  384,  755,  327,  327,  384,
1816       656,  656,  385,  333,  756,  788,  334,  784,  757,  758,
1817       652,  652,  652,  652,  652,  652,  655,  655,  335,  327,
1818       328,  251,  328,  327,  327,  327,  327,  327,  327,  327,
1819       329,  327,  327,  327,  699,  327,  331,  327,  332,  327,
1820       383,  251,  383,  394,  251,  394,  394,  251,  394,  797,
1821       251,  251,  251,  251,  251,  251,  385,  699, 1515,  395,
1822      1741, 1744,  395, 1747,  327,  327,  286,  656,  656,  286,
1823       333, 1516,  832,  334,  652,  652,  652,  652,  652,  652,
1824       652,  652,  652,  655,  655,  335,  340,  341,  251,  341,
1825
1826       340,  340,  340,  340,  340,  340,  340,  342,  340,  340,
1827       340,  699,  340,  344,  340,  345,  340,  394,  251,  394,
1828       394,  251,  394,  394,  251,  394,  832,  394,  251,  394,
1829       405,  251,  405,  395,  834, 1748,  395, 1749, 1750,  396,
1830      1751,  340,  340,  396,  656,  656,  406,  346,  652,  652,
1831       652,  652,  652,  652,  652,  652,  652,  652,  652,  652,
1832       655,  655,  347,  340,  341,  251,  341,  340,  340,  340,
1833       340,  340,  340,  340,  342,  340,  340,  340,  837,  340,
1834       344,  340,  345,  340,  405,  251,  405,  419,  251,  419,
1835       419,  251,  419,  832,  251,  251,  251,  251,  251,  251,
1836
1837       406, 1031, 1752,  420, 1753, 1032,  420, 1754,  340,  340,
1838       421,  656,  656,  421,  346,  652,  652,  652,  652,  652,
1839       652,  652,  652,  652,  652,  652,  652,  655,  655,  347,
1840       352,  353,  251,  353,  352,  352,  352,  352,  352,  352,
1841       352,  354,  352,  352,  352,  699,  352,  356,  352,  357,
1842       352,  419,  251,  419,  419,  251,  419,  419,  251,  419,
1843       845,  419,  251,  419,  433,  251,  433,  420,  656,  656,
1844       420,  656,  656,  422, 1150,  352,  352,  422,  802,  358,
1845       434,  652,  652,  652,  655,  655,  359,  655,  655,  360,
1846       652,  652,  652,  361, 1705,  362,  363,  352,  353,  251,
1847
1848       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1849       352,  352,  699,  352,  356,  352,  357,  352,  433,  251,
1850       433,  443,  251,  443,  443,  251,  443,  828,  251,  251,
1851       251,  251,  251,  251,  434,  656,  656,  444,  656,  656,
1852       444, 1760,  352,  352,  445,  807,  358,  445,  652,  652,
1853       652,  655,  655,  359,  655,  655,  360,  652,  652,  652,
1854       361, 1761,  362,  363,  367,  368,  251,  368,  367,  367,
1855       367,  367,  367,  367,  367,  369,  367,  367,  367,  370,
1856       367,  371,  367,  372,  367,  370,  370,  370,  370,  370,
1857       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
1858
1859       370,  370,  370,  370,  370,  370,  370,  370,  370,  367,
1860       367,  370,  373,  374,  375,  370,  370,  370,  370,  370,
1861       376,  370,  370,  377,  370,  370,  370,  378,  370,  379,
1862       380,  381,  370,  370,  370,  370,  370,  370,  386,  387,
1863       251,  387,  386,  386,  386,  386,  386,  386,  386,  388,
1864       386,  386,  386, 1763,  386,  390,  386,  391,  386,  443,
1865       251,  443,  443,  251,  443,  443,  251,  443, 1764,  443,
1866       251,  443,  458,  251,  458,  444,  656,  656,  444,  866,
1867      1767,  446,  868,  386,  386,  446,  867,  880,  459,  652,
1868       652,  652,  655,  655,  392,  386,  387,  251,  387,  386,
1869
1870       386,  386,  386,  386,  386,  386,  388,  386,  386,  386,
1871      1768,  386,  390,  386,  391,  386,  458,  251,  458,  251,
1872       251,  251,  251,  251,  251, 1771,  458,  251,  458,  458,
1873       251,  458,  459,  887,  699,  286,  934, 1773,  286,  699,
1874       386,  386,  459,  935,  887,  459,  652,  652,  652,  936,
1875      1181,  392,  397,  398,  251,  398,  397,  397,  397,  397,
1876       397,  397,  397,  399,  397,  397,  397, 1320,  397,  401,
1877       397,  402,  397,  458,  251,  458,  458,  251,  458,  470,
1878       251,  470,  888,  470,  251,  470,  481,  251,  481,  460,
1879      1776, 1777,  460,  656,  656,  471,  699,  397,  397,  471,
1880
1881       812,  817,  482,  652,  652,  652,  652,  652,  652,  655,
1882       655, 1781, 1472,  403,  397,  398,  251,  398,  397,  397,
1883       397,  397,  397,  397,  397,  399,  397,  397,  397, 1182,
1884       397,  401,  397,  402,  397,  481,  251,  481,  492,  251,
1885       492,  492,  251,  492, 1782,  503,  251,  503,  503,  251,
1886       503,  482, 1783, 1784,  493,  656,  656,  493,  656,  397,
1887       397,  504,  827,  851,  504,  652,  652,  652,  652,  652,
1888       652,  655,  655, 3480,  655,  403,  407,  408,  251,  408,
1889       407,  407,  407,  407,  407,  407,  407,  409,  407,  407,
1890       407, 1785,  407,  411,  407,  412,  407,  518,  251,  518,
1891
1892       518,  251,  518,  251,  251,  251,  856,  251,  251,  251,
1893       857,  701, 1786,  519,  858,  836,  519,  937, 1789,  520,
1894      1790,  407,  407,  520,  413,  685,  414,  702,  699,  696,
1895       835,  957,  415,  652,  652,  652,  652,  652,  652,  416,
1896       832, 1791,  417,  407,  408,  251,  408,  407,  407,  407,
1897       407,  407,  407,  407,  409,  407,  407,  407, 1792,  407,
1898       411,  407,  412,  407,  529,  251,  529,  529,  251,  529,
1899       529,  251,  529,  945,  529,  251,  529, 1135, 1800,  833,
1900       530,  933,  656,  530,  946, 1801,  531,  927,  407,  407,
1901       531,  413,  834,  414,  835,  652,  652,  652,  655,  415,
1902
1903       652,  652,  652,  652,  652,  652,  416, 1805, 1812,  417,
1904       423,  424,  251,  424,  423,  423,  423,  423,  423,  423,
1905       423,  425,  423,  423,  423,  868,  423,  427,  423,  428,
1906       423,  251,  251,  251,  251,  251,  251,  529,  251,  529,
1907      1086,  529,  251,  529,  529,  251,  529,  532, 1813, 1822,
1908       532,  656,  934,  530,  952,  423,  423,  530,  862,  935,
1909       533,  429,  652,  652,  652,  941,  430,  655,  652,  652,
1910       652, 1823, 1824,  710,  652,  652,  652,  699,  431,  423,
1911       424,  251,  424,  423,  423,  423,  423,  423,  423,  423,
1912       425,  423,  423,  423, 1829,  423,  427,  423,  428,  423,
1913
1914       529,  251,  529,  251,  251,  251,  251,  251,  251, 1837,
1915       529,  251,  529,  529,  251,  529,  533, 1842, 1844,  445,
1916       656,  951,  445, 1847,  423,  423,  531,  873,  935,  531,
1917       429,  652,  652,  652,  936,  430,  655,  652,  652,  652,
1918       652,  652,  652,  652,  652,  652, 1848,  431,  435,  436,
1919       251,  436,  435,  435,  435,  435,  435,  435,  435,  437,
1920       435,  435,  435, 1851,  435,  439,  435,  440,  435,  251,
1921       251,  251,  251,  251,  251,  529,  251,  529,  925,  529,
1922       251,  529,  529,  251,  529,  534,  945, 1853,  534,  926,
1923      1854,  533, 1084,  435,  435,  533, 1856,  946,  535, 1857,
1924
1925      1084,  441,  435,  436,  251,  436,  435,  435,  435,  435,
1926       435,  435,  435,  437,  435,  435,  435, 1858,  435,  439,
1927       435,  440,  435,  529,  251,  529,  548,  251,  548,  548,
1928       251,  548, 1859,  251,  251,  251,  251,  251,  251,  535,
1929      1150, 1515,  549, 1863, 1490,  549, 1864,  435,  435,  550,
1930      1865, 1867,  550, 1871, 1521,  441,  447,  448,  251,  448,
1931       447,  447,  447,  447,  447,  447,  447,  449,  447,  447,
1932       447, 1875,  447,  451,  447,  452,  447,  548,  251,  548,
1933       548,  251,  548,  548,  251,  548, 1879,  548,  251,  548,
1934       561,  251,  561,  549, 1150, 1881,  549,  894, 1649,  551,
1935
1936      1883,  447,  447,  551,  895,  453,  562,  652,  652,  652,
1937      1152, 1521,  454,  655, 1885,  455,  652,  652,  652,  652,
1938       652,  652,  456,  447,  448,  251,  448,  447,  447,  447,
1939       447,  447,  447,  447,  449,  447,  447,  447, 1886,  447,
1940       451,  447,  452,  447,  561,  251,  561,  575,  251,  575,
1941       575,  251,  575, 1887,  586,  251,  586,  586,  251,  586,
1942       562, 1889, 1896,  576,  656, 1900,  576, 1901,  447,  447,
1943       587,  902,  453,  587,  652,  652,  652, 1903, 1708,  454,
1944       655, 1913,  455,  652,  652,  652,  908,  908,  908,  456,
1945       461,  462,  251,  462,  461,  461,  461,  461,  461,  461,
1946
1947       461,  463,  461,  461,  461, 1914,  461,  465,  461,  466,
1948       461,  251,  251,  251,  251,  251,  251,  586,  251,  586,
1949      1915,  586,  251,  586,  586,  251,  586,  303, 1916, 1917,
1950       303,  951, 1918,  587, 1919,  461,  461,  587,  935, 1920,
1951       588,  467, 1921, 1922,  941,  909,  468,  461,  462,  251,
1952       462,  461,  461,  461,  461,  461,  461,  461,  463,  461,
1953       461,  461, 1923,  461,  465,  461,  466,  461,  586,  251,
1954       586,  598,  251,  598,  598,  251,  598, 1924,  611,  251,
1955       611,  611,  251,  611,  588, 1925, 1927,  599,  934,  951,
1956       599, 1928,  461,  461,  612,  935,  935,  612,  467, 1929,
1957
1958      1930, 1085, 1085,  468,  472,  473,  251,  473,  472,  472,
1959       472,  472,  472,  472,  472,  474,  472,  472,  472, 1933,
1960       472,  476,  472,  477,  472,  251,  251,  251,  251,  251,
1961       251,  611,  251,  611, 1936,  611,  251,  611,  611,  251,
1962       611,  286, 1269, 1937,  286, 1150, 1938,  612, 1939,  472,
1963       472,  612, 1270, 1940,  613,  611,  251,  611, 1941, 1271,
1964       478,  908,  908,  908, 1942, 1154, 1169, 1169, 1169, 1945,
1965      1910,  613, 1954,  479,  472,  473,  251,  473,  472,  472,
1966       472,  472,  472,  472,  472,  474,  472,  472,  472, 1959,
1967       472,  476,  472,  477,  472,  625,  251,  625,  625,  251,
1968
1969       625,  251,  251,  251, 1960,  251,  251,  251,  625,  251,
1970       625,  626, 1977, 1983,  626, 1984, 1985,  627, 1988,  472,
1971       472,  627, 1989, 1990,  626,  625,  251,  625, 1994, 1997,
1972       478, 1161, 1161, 1161, 1998, 1162, 2001, 2002, 1163, 2011,
1973      2015,  626, 2018,  479,  483,  484,  251,  484,  483,  483,
1974       483,  483,  483,  483,  483,  485,  483,  483,  483, 2019,
1975       483,  487,  483,  488,  483,  625,  251,  625,  625,  251,
1976       625, 2020,  650,  251,  650, 2024, 2027,  650,  251,  650,
1977      2033,  628,  264,  265,  628, 2038, 2044,  266,  651,  483,
1978       483,  264,  265,  651,  671, 2048,  266,  638, 2051,  788,
1979
1980      1169, 1169, 1169, 2052,  697,  489,  638, 2054, 2055,  789,
1981       490,  483,  484,  251,  484,  483,  483,  483,  483,  483,
1982       483,  483,  485,  483,  483,  483,  639,  483,  487,  483,
1983       488,  483,  698, 2056, 2057,  639, 2058, 2059,  675, 2060,
1984      2062,  916,  916,  916,  678, 2068,  699, 2069,  700, 2070,
1985       684,  685,  969,  969,  969,  684,  483,  483,  917,  983,
1986       983,  983, 2072, 2074, 1170, 1192, 1192, 1192, 2082,  970,
1987      2087, 2088,  489, 1192, 1192, 1192,  984,  490,  494,  495,
1988       251,  495,  494,  494,  494,  494,  494,  494,  494,  496,
1989       494,  494,  494, 2089,  494,  498,  494,  499,  494,  985,
1990
1991       985,  985,  996,  996,  996,  999,  999,  999, 1014, 1014,
1992      1014, 1024, 1024, 1024, 2091, 2109,  986, 1150, 2110,  997,
1993      2092, 2111, 1000,  494,  494, 1015, 2093, 2114, 1025, 1193,
1994      2094, 1226, 1226, 1226, 2104, 1227, 2095, 1170, 1228,  500,
1995      1708, 1169, 1169, 1169, 2115,  501,  494,  495,  251,  495,
1996       494,  494,  494,  494,  494,  494,  494,  496,  494,  494,
1997       494, 1708,  494,  498,  494,  499,  494, 1034, 1034, 1034,
1998      1036, 1036, 1036, 1045, 1045, 1045, 1053, 1053, 1053, 1057,
1999      1057, 1057, 2105, 2117, 1035, 2118, 2112, 1037, 2119, 2120,
2000      1046,  494,  494, 1054, 2106, 2121, 1058, 1252, 1252, 1252,
2001
2002      2122, 1253, 2113, 2123, 1254, 1193, 2126,  500, 1506, 1506,
2003      1506, 2127, 2128,  501,  505,  506,  251,  506,  505,  505,
2004       505,  505,  505,  505,  505,  507,  505,  505,  505, 2129,
2005       505,  509,  505,  510,  505, 1073, 1073, 1073, 1095, 1095,
2006      1095, 1101, 1101, 1101, 1117, 1117, 1117, 2132, 1123, 1123,
2007      1123, 2133, 1074, 2134, 2135, 1096, 2130, 2137, 1102,  505,
2008       505, 1118,  511,  512,  513, 1124, 2138, 1255, 1255, 1255,
2009       514, 1256, 2131,  515, 1257, 1192, 1192, 1192, 2145, 2147,
2010       516,  505,  506,  251,  506,  505,  505,  505,  505,  505,
2011       505,  505,  507,  505,  505,  505, 2149,  505,  509,  505,
2012
2013       510,  505, 1129, 1129, 1129, 1137, 1137, 1137,  916,  916,
2014       916, 1208, 1208, 1208, 1165, 1165, 1165, 2170, 2174, 1130,
2015      2175, 2176, 1138, 2182, 2183,  917,  505,  505, 1209,  511,
2016       512,  513, 1167, 2184, 1272, 1272, 1272,  514, 1273, 2188,
2017       515, 1274, 1527, 1527, 1527, 2189, 2192,  516,  521,  522,
2018       251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
2019       521,  521,  521, 2193,  521,  525,  521,  526,  521, 1165,
2020      1165, 1165, 1212, 1212, 1212, 2197, 2198, 1215, 1215, 1215,
2021      3480, 3480, 3480, 3480, 3480, 3480, 2199, 1167, 2200, 1213,
2022      1221, 1221, 1221,  521,  521, 1217, 2203, 3480, 2207, 2208,
2023
2024      3480, 2209, 2210, 1276, 1276, 1276, 1168, 1277, 1223, 2211,
2025      1278, 1506, 1506, 1506, 1728, 1728, 1728,  527,  521,  522,
2026       251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
2027       521,  521,  521, 1210,  521,  525,  521,  526,  521, 1214,
2028      1215, 1215, 1215,  969,  969,  969, 2214, 2221, 1211, 1221,
2029      1221, 1221, 1230, 1230, 1230, 1234, 1234, 1234, 1217, 2225,
2030       970, 2226, 2227,  521,  521, 2232, 2234, 1223, 2235, 2236,
2031      1232, 2237, 1235, 2239, 1295, 1295, 1295, 1218, 1296, 2240,
2032      2243, 1297, 1720, 1720, 1720, 2245, 2248,  527,  536,  537,
2033       251,  537,  536,  536,  536,  536,  536,  536,  536,  538,
2034
2035       536,  536,  536, 2264,  536,  540,  536,  541,  536, 1238,
2036      1238, 1238, 2265, 1224, 1240, 1240, 1240, 1240, 1240, 1240,
2037      3480, 3480, 3480, 1244, 1244, 1244, 1239, 2266, 1721, 1230,
2038      1230, 1230, 1242,  536,  536, 1242, 2271, 3480, 2272, 2275,
2039      1245,  542, 2276,  543, 2277, 2280,  544, 1232, 2289, 2290,
2040       545, 1731, 1731, 1731,  546,  536,  537,  251,  537,  536,
2041       536,  536,  536,  536,  536,  536,  538,  536,  536,  536,
2042      1236,  536,  540,  536,  541,  536, 1233, 1246, 1246, 1246,
2043      1248, 1248, 1248, 2291, 2273, 1237, 2292, 1150, 1243, 1248,
2044      1248, 1248, 2274, 2282, 1247,  983,  983,  983, 1250, 2295,
2045
2046       536,  536,  985,  985,  985, 2297, 1708, 1250,  542, 2298,
2047       543, 2299,  984,  544, 1736, 1736, 1736,  545, 2300,  986,
2048      2304,  546,  552,  553,  251,  553,  552,  552,  552,  552,
2049       552,  552,  552,  554,  552,  552,  552, 2283,  552,  556,
2050       552,  557,  552, 1708, 1258, 1258, 1258, 1264, 1264, 1264,
2051      1527, 1527, 1527, 2306, 2307, 3480, 3480, 3480, 2278, 2308,
2052      1251, 1259, 3480, 3480, 3480, 1266, 2279,  552,  552, 3480,
2053      3480, 3480, 3480, 3480, 3480, 3480, 2311, 2315,  558, 3480,
2054      1310, 1310, 1310, 2316, 1311, 2318, 3480, 1312, 2320, 2284,
2055      3480,  559,  552,  553,  251,  553,  552,  552,  552,  552,
2056
2057       552,  552,  552,  554,  552,  552,  552, 1260,  552,  556,
2058       552,  557,  552, 1264, 1264, 1264, 2331, 1261, 2332, 2333,
2059      1262, 2334,  996,  996,  996, 1263,  999,  999,  999, 2338,
2060      2339, 1266, 1279, 1279, 1279, 2340, 2341,  552,  552,  997,
2061      1291, 1291, 1291, 1000, 1723, 1723, 1723, 2347,  558, 1280,
2062      1323, 1323, 1323, 2348, 1324, 2353, 2354, 1325, 1293, 2357,
2063      1267,  559,  563,  564,  251,  564,  563,  563,  563,  563,
2064       563,  563,  563,  565,  563,  563,  563, 2361,  563,  567,
2065       563,  568,  563, 1014, 1014, 1014, 1291, 1291, 1291, 2362,
2066      1724, 1298, 1298, 1298, 1298, 1298, 1298, 1303, 1303, 1303,
2067
2068      1015, 1303, 1303, 1303, 1293, 2349, 2351,  563,  563, 1300,
2069      2367, 2368, 1300, 2350, 2352, 1305,  569, 2371,  570, 1305,
2070      2373, 2374,  571, 1746, 1746, 1746, 2375,  572,  573,  563,
2071       564,  251,  564,  563,  563,  563,  563,  563,  563,  563,
2072       565,  563,  563,  563, 1294,  563,  567,  563,  568,  563,
2073      1024, 1024, 1024, 2363, 2365, 1301, 2376, 2388, 1316, 1316,
2074      1316, 2364, 2366, 1306, 1316, 1316, 1316, 1025, 2389, 1034,
2075      1034, 1034, 2393, 2396,  563,  563, 1318, 1326, 1326, 1326,
2076      2397, 1327, 1318,  569, 1328,  570, 1035, 2403, 2408,  571,
2077      1720, 1720, 1720, 2410,  572,  573,  577,  578,  251,  578,
2078
2079       577,  577,  577,  577,  577,  577,  577,  579,  577,  577,
2080       577, 2411,  577,  581,  577,  582,  577, 1036, 1036, 1036,
2081      1329, 1329, 1329, 2096, 2412, 1319, 1329, 1329, 1329, 2097,
2082      1334, 1334, 1334, 2098, 1037, 1334, 1334, 1334, 1331, 2099,
2083      2416,  577,  577, 2417, 1331, 2418, 2419,  583, 1336, 2420,
2084      1339, 1339, 1339, 1336, 1340, 2421, 2422, 1341, 2423, 1742,
2085      1742, 1742,  584,  577,  578,  251,  578,  577,  577,  577,
2086       577,  577,  577,  577,  579,  577,  577,  577, 2424,  577,
2087       581,  577,  582,  577, 1045, 1045, 1045, 1332, 1345, 1345,
2088      1345, 2425, 1353, 1353, 1353, 1337, 2442, 1345, 1345, 1345,
2089
2090      2443, 1046, 1053, 1053, 1053, 1743, 1347, 2444,  577,  577,
2091      1355, 1057, 1057, 1057,  583, 1347, 1350, 1350, 1350, 1054,
2092      1351, 2446, 2449, 1352, 1745, 1745, 1745, 2450, 1058,  584,
2093       589,  590,  251,  590,  589,  589,  589,  589,  589,  589,
2094       589,  591,  589,  589,  589, 2452,  589,  593,  589,  594,
2095       589, 2453, 1348, 1353, 1353, 1353, 1357, 1357, 1357, 1708,
2096      1358, 2454, 2455, 1359, 1361, 1361, 1361, 1361, 1361, 1361,
2097      1724, 1355, 1723, 1723, 1723,  589,  589, 1381, 1381, 1381,
2098       595, 1382, 1363, 2456, 1383, 1363,  596,  589,  590,  251,
2099       590,  589,  589,  589,  589,  589,  589,  589,  591,  589,
2100
2101       589,  589, 2428,  589,  593,  589,  594,  589, 1356, 1367,
2102      1367, 1367, 1367, 1367, 1367, 2457, 1373, 1373, 1373, 2469,
2103      1373, 1373, 1373, 1073, 1073, 1073, 2470, 1369, 1364, 2471,
2104      1369, 2472,  589,  589, 1375, 2476, 1708,  595, 1375, 2477,
2105      1074, 2473, 2478,  596,  600,  601,  251,  601,  600,  600,
2106       600,  600,  600,  600,  600,  602,  600,  600,  600, 2484,
2107       600,  604,  600,  605,  600, 1384, 1384, 1384, 1388, 1388,
2108      1388, 2485, 2486, 1370, 2487, 1394, 1394, 1394, 1394, 1394,
2109      1394, 2488, 1385, 2429, 2489, 1376, 1390, 2490, 2500,  600,
2110       600, 2501,  606, 1396,  607, 2502, 1396, 1411, 1411, 1411,
2111
2112       608, 1412, 2503, 2512, 1413, 1926, 1926, 1926, 1745, 1745,
2113      1745,  609,  600,  601,  251,  601,  600,  600,  600,  600,
2114       600,  600,  600,  602,  600,  600,  600, 2513,  600,  604,
2115       600,  605,  600, 1095, 1095, 1095, 1397, 1406, 1406, 1406,
2116      2514, 1406, 1406, 1406, 2530, 1415, 1415, 1415, 2531, 2532,
2117      1096, 1388, 1388, 1388, 1756, 1408, 2535,  600,  600, 1408,
2118       606, 2537,  607, 1417, 1728, 1728, 1728, 2538,  608, 1390,
2119      1420, 1420, 1420, 2539, 1421, 2540, 2541, 1422, 2542,  609,
2120       614,  615,  251,  615,  614,  614,  614,  614,  614,  614,
2121       614,  616,  614,  614,  614, 2543,  614,  618,  614,  619,
2122
2123       614, 2544, 1391, 2545, 2546, 1409, 1415, 1415, 1415, 2547,
2124      1101, 1101, 1101, 2548, 1423, 1423, 1423, 1426, 1426, 1426,
2125      1431, 1431, 1431, 2553, 1417,  614,  614, 1102, 2554, 2557,
2126       620, 1424, 2558, 2559, 1427, 2560,  621, 1708, 1433, 2563,
2127       622, 1731, 1731, 1731, 1708, 2564,  623,  614,  615,  251,
2128       615,  614,  614,  614,  614,  614,  614,  614,  616,  614,
2129       614,  614, 2565,  614,  618,  614,  619,  614, 2566, 2551,
2130      1418, 1435, 1435, 1435, 1437, 1437, 1437, 3480, 3480, 3480,
2131      2555, 2552, 1431, 1431, 1431, 1117, 1117, 1117, 1436, 2556,
2132      2561, 1438,  614,  614, 3480, 2568, 2569,  620, 2570, 2562,
2133
2134      1433, 2571, 1118,  621, 1445, 1445, 1445,  622, 1446, 2572,
2135      2574, 1447, 2575,  623,  629,  630,  251,  630,  629,  629,
2136       629,  629,  629,  629,  629,  631,  629,  629,  629, 1434,
2137       629,  633,  629,  634,  629, 2576, 1439, 1440, 1440, 1440,
2138      1440, 1440, 1440, 1448, 1448, 1448, 1448, 1448, 1448, 1123,
2139      1123, 1123, 1129, 1129, 1129, 1442, 2586, 2587, 1442,  629,
2140       629, 1450, 2588, 2589, 1450, 2590, 1124,  635, 2594, 1130,
2141       636, 1931, 1931, 1931, 1736, 1736, 1736,  637,  629,  630,
2142       251,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2143       629,  629,  629, 2597,  629,  633,  629,  634,  629, 2602,
2144
2145      2598, 1443, 1454, 1454, 1454, 2603, 1455, 1451, 2600, 1456,
2146      1458, 1458, 1458, 2599, 1458, 1458, 1458, 2604, 1463, 1463,
2147      1463, 2601, 1464,  629,  629, 1465, 2605, 2612, 1460, 2613,
2148      2614,  635, 1460, 2615,  636, 1932, 1934, 1934, 1934, 2616,
2149      2630,  637,  640,  641,  251,  641,  640,  640,  640,  640,
2150       640,  640,  640,  642,  640,  640,  640, 2631,  640,  644,
2151       640,  645,  640, 1468, 1468, 1468, 1468, 1468, 1468, 1137,
2152      1137, 1137, 1474, 1474, 1474, 2647, 1475, 2648, 2649, 1476,
2153      1461, 1470, 1935, 2650, 1470, 2652, 1138,  640,  640, 1479,
2154      1479, 1479, 2653, 2654,  646, 1161, 1161, 1161, 2655, 1162,
2155
2156       647, 2656, 1163, 1742, 1742, 1742, 2657, 1481, 2658,  648,
2157       640,  641,  251,  641,  640,  640,  640,  640,  640,  640,
2158       640,  642,  640,  640,  640, 2659,  640,  644,  640,  645,
2159       640, 2660, 1471, 1479, 1479, 1479, 1486, 1486, 1486, 1486,
2160      1486, 1486, 1165, 1165, 1165, 1165, 1165, 1165, 1497, 1497,
2161      1497, 1481, 2661, 2662, 1488,  640,  640, 1488, 2663, 2668,
2162      1167, 2669,  646, 1167, 2670, 1708, 1498, 2671,  647, 1208,
2163      1208, 1208, 1537, 1537, 1537, 2672, 1538,  648,  656, 1539,
2164      2673, 1212, 1212, 1212, 2674,  671, 1209, 2675, 2676, 1542,
2165      1542, 1542, 1150, 1543,  655,  672, 1544, 1482, 1213, 1215,
2166
2167      1215, 1215, 2666, 1489, 1234, 1234, 1234, 1215, 1215, 1215,
2168      1238, 1238, 1238, 1215, 1215, 1215, 2677, 1217, 1221, 1221,
2169      1221, 1235,  673,  674,  675, 1217, 2678, 1239,  676,  677,
2170       678, 1217, 2665,  679,  680, 2679, 1223,  681, 1708,  682,
2171       683,  684,  656, 1221, 1221, 1221, 1221, 1221, 1221, 1226,
2172      1226, 1226, 2680, 1227, 2681, 2683, 1228, 2684,  655,  686,
2173      2685, 1223, 2686, 2687, 1223, 1230, 1230, 1230, 1244, 1244,
2174      1244, 1230, 1230, 1230, 1246, 1246, 1246, 1546, 1230, 1230,
2175      1230, 2667, 2688, 1232, 2693, 1245,  673,  687,  688, 1232,
2176      2694, 1247,  689,  690,  691, 2695, 1232,  692,  680, 1549,
2177
2178      2698,  693, 2699,  694,  695,  696, 1553, 1553, 1553, 2703,
2179      1554, 2706, 2709, 1555, 1558, 1558, 1558, 2710, 1559, 2718,
2180      2719, 1560, 1240, 1240, 1240, 2720, 2704, 1552, 1240, 1240,
2181      1240, 1240, 1240, 1240, 1562, 1562, 1562, 2705, 1563, 2731,
2182      1242, 1564, 2754, 1565, 1565, 1565, 1242, 1566, 2755, 1242,
2183      1567, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
2184      1252, 1252, 1252, 2707, 1253, 2760, 2761, 1254, 2762, 1250,
2185      2763, 2764, 1250, 2765, 2708, 1250, 1255, 1255, 1255, 2766,
2186      1256, 2767, 2768, 1257, 1258, 1258, 1258, 1569, 1569, 1569,
2187      2769, 1570, 2774, 1561, 1571, 1264, 1264, 1264, 1264, 1264,
2188
2189      1264, 1259, 1264, 1264, 1264, 1272, 1272, 1272, 2775, 1273,
2190      2776, 1150, 1274, 1266, 2777, 2778, 1266, 2743, 1708, 1568,
2191      1266, 1581, 1581, 1581, 1276, 1276, 1276, 2744, 1277, 2779,
2192      2745, 1278, 1279, 1279, 1279, 1583, 1583, 1583, 1582, 1584,
2193      2771, 2780, 1585, 1291, 1291, 1291, 1291, 1291, 1291, 1280,
2194      1576, 1291, 1291, 1291, 2781, 1295, 1295, 1295, 2782, 1296,
2195      2772, 1293, 1297, 2783, 1293, 1298, 1298, 1298, 2784, 1293,
2196      1298, 1298, 1298, 1298, 1298, 1298, 1599, 1599, 1599, 1303,
2197      1303, 1303, 2785, 1300, 1303, 1303, 1303, 2786, 1300, 1708,
2198      2788, 1300, 2789, 1600, 1303, 1303, 1303, 1305, 1604, 1604,
2199
2200      1604, 2724, 1305, 1310, 1310, 1310, 2790, 1311, 2792, 2793,
2201      1312, 2725, 1305, 2799, 2800, 1605, 2808, 2726, 1597, 1316,
2202      1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1612, 1612,
2203      1612, 2773, 2809, 1598, 1323, 1323, 1323, 1318, 1324, 2746,
2204      1318, 1325, 2810, 1318, 2811, 1613, 1326, 1326, 1326, 2747,
2205      1327, 2812, 2748, 1328, 1329, 1329, 1329, 1329, 1329, 1329,
2206      2813, 1601, 1329, 1329, 1329, 1615, 1615, 1615, 1334, 1334,
2207      1334, 2814, 1331, 2815, 2822, 1331, 1334, 1334, 1334, 2825,
2208      1331, 2826, 1616, 1334, 1334, 1334, 1336, 1345, 1345, 1345,
2209      1609, 1339, 1339, 1339, 1336, 1340, 2827, 2828, 1341, 2829,
2210
2211      2830, 1336, 1345, 1345, 1345, 1347, 1345, 1345, 1345, 1350,
2212      1350, 1350, 2831, 1351, 2834, 2727, 1352, 1353, 1353, 1353,
2213      1347, 1353, 1353, 1353, 1347, 2728, 2842, 1614, 1353, 1353,
2214      1353, 2729, 1617, 2843, 2846, 1355, 1357, 1357, 1357, 1355,
2215      1358, 2847, 2865, 1359, 2866, 2867, 1355, 1361, 1361, 1361,
2216      1361, 1361, 1361, 1361, 1361, 1361, 1627, 1627, 1627, 3480,
2217      3480, 3480, 1367, 1367, 1367, 1363, 1622, 2868, 1363, 2869,
2218      2870, 1363, 2871, 1628, 2838, 2872, 3480, 1367, 1367, 1367,
2219      1369, 1367, 1367, 1367, 1631, 1631, 1631, 2839, 1624, 2840,
2220      3480, 3480, 3480, 1708, 2878, 1369, 1373, 1373, 1373, 1369,
2221
2222      2879, 1632, 2841, 1626, 2880, 2881, 1629, 3480, 1373, 1373,
2223      1373, 1373, 1373, 1373, 1375, 1381, 1381, 1381, 1633, 1382,
2224      2844, 1150, 1383, 1384, 1384, 1384, 1375, 2882, 2875, 1375,
2225      1639, 1639, 1639, 2845, 1640, 2883, 2884, 1641, 2885, 2886,
2226      1385, 1388, 1388, 1388, 1388, 1388, 1388, 2848, 1630, 1388,
2227      1388, 1388, 1394, 1394, 1394, 1394, 1394, 1394, 2887, 1390,
2228      2849, 2888, 1390, 1394, 1394, 1394, 2889, 1390, 2890, 2874,
2229      1396, 2892, 2893, 1396, 1652, 1652, 1652, 1634, 1406, 1406,
2230      1406, 1396, 2895, 1406, 1406, 1406, 1406, 1406, 1406, 2903,
2231      2904, 1653, 2896, 1415, 1415, 1415, 1408, 1415, 1415, 1415,
2232
2233      1644, 1408, 2897, 2898, 1408, 1411, 1411, 1411, 2911, 1412,
2234      1647, 1417, 1413, 2899, 2912, 1417, 1415, 1415, 1415, 1420,
2235      1420, 1420, 2913, 1421, 2914, 2915, 1422, 1423, 1423, 1423,
2236      2916, 1662, 1662, 1662, 1417, 1663, 2917, 2918, 1664, 1665,
2237      1665, 1665, 2922, 2923, 1424, 2927, 2928, 1657, 1426, 1426,
2238      1426, 1667, 1667, 1667, 2929, 1668, 1666, 2930, 1669, 1671,
2239      1671, 1671, 1431, 1431, 1431, 1427, 1431, 1431, 1431, 1431,
2240      1431, 1431, 1435, 1435, 1435, 2931, 1672, 1660, 2932, 2933,
2241      1433, 1675, 1675, 1675, 1433, 1676, 2934, 1433, 1677, 1436,
2242      1437, 1437, 1437, 1678, 1678, 1678, 2935, 1679, 2936, 2937,
2243
2244      1680, 1440, 1440, 1440, 1440, 1440, 1440, 1438, 1440, 1440,
2245      1440, 1445, 1445, 1445, 2938, 1446, 2939, 2940, 1447, 1442,
2246      2941, 2942, 1442, 1448, 1448, 1448, 1442, 2943, 2944, 1674,
2247      1448, 1448, 1448, 1448, 1448, 1448, 1454, 1454, 1454, 2945,
2248      1455, 1450, 2946, 1456, 1458, 1458, 1458, 2960, 1450, 2961,
2249      2962, 1450, 1458, 1458, 1458, 1458, 1458, 1458, 2963, 1463,
2250      1463, 1463, 1460, 1464, 2949, 2964, 1465, 1691, 1691, 1691,
2251      1460, 2965, 2951, 1460, 2950, 1682, 1468, 1468, 1468, 1468,
2252      1468, 1468, 2952, 2966, 1692, 1468, 1468, 1468, 1695, 1695,
2253      1695, 1474, 1474, 1474, 1470, 1475, 2967, 1470, 1476, 2975,
2254
2255      1684, 2976, 1150, 1470, 2977, 1696, 3480, 3480, 3480, 1479,
2256      1479, 1479, 1479, 1479, 1479, 2978, 1688, 1479, 1479, 1479,
2257      1701, 1701, 1701, 3480, 1486, 1486, 1486, 1481, 2979, 2980,
2258      1481, 1486, 1486, 1486, 2981, 1481, 2969, 1702, 1486, 1486,
2259      1486, 2982, 1488, 1707, 1707, 1707, 1693, 2987, 2988, 1488,
2260      1497, 1497, 1497, 1537, 1537, 1537, 1488, 1538, 2989, 2990,
2261      1539, 1708, 1709, 2992, 1699, 2993, 2996, 1697, 1498, 1542,
2262      1542, 1542, 2997, 1543, 2998, 2999, 1544, 1215, 1215, 1215,
2263      1757, 1757, 1757, 3000, 3001, 1704, 1221, 1221, 1221, 1230,
2264      1230, 1230, 1553, 1553, 1553, 1217, 1554, 1758, 3002, 1555,
2265
2266      3003, 1558, 1558, 1558, 1223, 1559, 3008, 1232, 1560, 1240,
2267      1240, 1240, 1562, 1562, 1562, 3009, 1563, 3010, 3011, 1564,
2268      3012, 1565, 1565, 1565, 3013, 1566, 3014, 1242, 1567, 1248,
2269      1248, 1248, 1569, 1569, 1569, 3015, 1570, 3016, 1755, 1571,
2270      1769, 1769, 1769, 1264, 1264, 1264, 1762, 1250, 1774, 1774,
2271      1774, 3017, 3018, 1759, 3019, 3020, 1765, 1770, 1581, 1581,
2272      1581, 1266, 1778, 1778, 1778, 1775, 1779, 3021, 3022, 1780,
2273      1583, 1583, 1583, 3023, 1584, 1582, 1766, 1585, 1787, 1787,
2274      1787, 1291, 1291, 1291, 1298, 1298, 1298, 1599, 1599, 1599,
2275      1795, 1795, 1795, 3024, 1796, 1788, 3028, 1797, 1772, 1293,
2276
2277      3029, 3030, 1300, 3031, 1600, 1798, 1798, 1798, 1604, 1604,
2278      1604, 1802, 1802, 1802, 3034, 1803, 3035, 3036, 1804, 3037,
2279      1806, 1806, 1806, 1799, 3038, 1605, 1808, 1808, 1808, 1316,
2280      1316, 1316, 1612, 1612, 1612, 3039, 1794, 1807, 1814, 1814,
2281      1814, 3047, 1815, 1809, 3048, 1816, 1793, 1318, 3049, 1613,
2282      1329, 1329, 1329, 1615, 1615, 1615, 1818, 1818, 1818, 3050,
2283      1819, 3051, 3052, 1820, 1334, 1334, 1334, 1150, 1331, 3053,
2284      1616, 3054, 1810, 1825, 1825, 1825, 1345, 1345, 1345, 1353,
2285      1353, 1353, 1336, 1831, 1831, 1831, 1361, 1361, 1361, 3055,
2286      1826, 1627, 1627, 1627, 1347, 1811, 3056, 1355, 3059, 3060,
2287
2288      1832, 1631, 1631, 1631, 1363, 1834, 1834, 1834, 1628, 1835,
2289      3041, 3066, 1836, 1367, 1367, 1367, 1817, 3067, 1632, 1827,
2290      3068, 3069, 1821, 1839, 1839, 1839, 3070, 1840, 3077, 3078,
2291      1841, 1369, 3079, 1828, 3080, 3081, 1830, 1833, 1373, 1373,
2292      1373, 1845, 1845, 1845, 1639, 1639, 1639, 3082, 1640, 3083,
2293      3084, 1641, 1849, 1849, 1849, 3085, 1375, 3086, 1846, 1388,
2294      1388, 1388, 1394, 1394, 1394, 1652, 1652, 1652, 3087, 1850,
2295      1406, 1406, 1406, 1838, 1860, 1860, 1860, 1390, 1861, 3088,
2296      1396, 1862, 1653, 1868, 1868, 1868, 3089, 3090, 1408, 1415,
2297      1415, 1415, 3091, 3092, 1662, 1662, 1662, 3093, 1663, 1843,
2298
2299      1869, 1664, 3094, 1665, 1665, 1665, 3095, 1417, 1872, 1872,
2300      1872, 3096, 1873, 3097, 3098, 1874, 1671, 1671, 1671, 1866,
2301      1666, 3099, 3100, 1852, 3101, 1667, 1667, 1667, 1855, 1668,
2302      3102, 3103, 1669, 1672, 1876, 1876, 1876, 3108, 1877, 1150,
2303      3113, 1878, 1431, 1431, 1431, 1675, 1675, 1675, 3111, 1676,
2304      3115, 1870, 1677, 3116, 1678, 1678, 1678, 3119, 1679, 3120,
2305      1433, 1680, 1440, 1440, 1440, 1448, 1448, 1448, 1458, 1458,
2306      1458, 1890, 1890, 1890, 1691, 1691, 1691, 1892, 1892, 1892,
2307      1442, 1893, 3114, 1450, 1894, 3106, 1460, 3121, 1891, 3122,
2308      3108, 1692, 1880, 1468, 1468, 1468, 1695, 1695, 1695, 1897,
2309
2310      1897, 1897, 3123, 1898, 3109, 3124, 1899, 1479, 1479, 1479,
2311      3117, 1470, 3125, 1696, 3132, 3127, 1701, 1701, 1701, 1904,
2312      1904, 1904, 3133, 1905, 3126, 1481, 1906, 3128, 1882, 3134,
2313      3139, 1884, 1888, 1702, 1907, 1907, 1907, 1486, 1486, 1486,
2314      1707, 1707, 1707, 1745, 1745, 1745, 1746, 1746, 1746, 3118,
2315      3140, 1908, 1943, 1943, 1943, 1488, 1902, 1895, 1708, 1946,
2316      1946, 1946, 1931, 1931, 1931, 1943, 1943, 1943, 1948, 1948,
2317      1948, 1950, 1950, 1950, 3141, 3480, 3480, 3480, 1215, 1215,
2318      1215, 1757, 1757, 1757, 3142, 1949, 1909, 3135, 1951, 3143,
2319      3144, 1911, 3480, 1955, 1955, 1955, 1217, 1956, 1758, 3136,
2320
2321      1957, 1221, 1221, 1221, 3145, 1947, 3137, 3146, 1912, 1230,
2322      1230, 1230, 3147, 1962, 1962, 1962, 1944, 3148, 3138, 1223,
2323      1964, 1964, 1964, 1240, 1240, 1240, 1944, 1232, 3149, 1932,
2324      1963, 1248, 1248, 1248, 1968, 1968, 1968, 1965, 3150, 1952,
2325      3151, 1242, 3480, 3480, 3480, 1953, 1769, 1769, 1769, 1250,
2326      3154, 1969, 1150, 3154, 1971, 1971, 1971, 1961, 1972, 3480,
2327      1958, 1973, 3108, 1770, 1974, 1974, 1974, 1264, 1264, 1264,
2328      1774, 1774, 1774, 1978, 1978, 1978, 3109, 1979, 1708, 1709,
2329      1980, 1975, 1981, 1981, 1981, 1266, 3171, 1775, 1966, 3174,
2330      1778, 1778, 1778, 3152, 1779, 3159, 1967, 1780, 3157, 1982,
2331
2332      1970, 1986, 1986, 1986, 1787, 1787, 1787, 1991, 1991, 1991,
2333      3163, 1992, 3158, 3160, 1993, 1995, 1995, 1995, 1987, 3161,
2334      3108, 1788, 1291, 1291, 1291, 3164, 3169, 1976, 1298, 1298,
2335      1298, 3111, 1996, 3162, 1795, 1795, 1795, 3175, 1796, 3172,
2336      1293, 1797, 1798, 1798, 1798, 3170, 1300, 1802, 1802, 1802,
2337      3176, 1803, 3181, 3184, 1804, 2003, 2003, 2003, 3173, 3187,
2338      1799, 1806, 1806, 1806, 2005, 2005, 2005, 3179, 2006, 3188,
2339      3182, 2007, 2004, 1808, 1808, 1808, 3189, 3190, 1807, 3191,
2340      2008, 2008, 2008, 2000, 2009, 3192, 3180, 2010, 1999, 3183,
2341      1809, 2012, 2012, 2012, 2014, 2014, 2014, 1814, 1814, 1814,
2342
2343      3154, 1815, 3194, 3154, 1816, 1329, 1329, 1329, 3195, 2013,
2344      1818, 1818, 1818, 3196, 1819, 3197, 3198, 1820, 1334, 1334,
2345      1334, 3199, 3200, 1331, 1825, 1825, 1825, 2021, 2021, 2021,
2346      3207, 2022, 3208, 3209, 2023, 3210, 1336, 2025, 2025, 2025,
2347      3211, 1826, 1353, 1353, 1353, 1831, 1831, 1831, 1361, 1361,
2348      1361, 2016, 2029, 2029, 2029, 2026, 2030, 3212, 3213, 2031,
2349      1355, 3214, 1832, 1834, 1834, 1834, 1363, 1835, 3218, 3219,
2350      1836, 1367, 1367, 1367, 1839, 1839, 1839, 3220, 1840, 3221,
2351      3222, 1841, 2035, 2035, 2035, 2017, 3223, 3227, 2028, 1369,
2352      1373, 1373, 1373, 1845, 1845, 1845, 2039, 2039, 2039, 2036,
2353
2354      2040, 3228, 3229, 2041, 3230, 3231, 2032, 3232, 1375, 3234,
2355      1846, 2042, 2042, 2042, 1849, 1849, 1849, 2045, 2045, 2045,
2356      3235, 2046, 3236, 3237, 2047, 2049, 2049, 2049, 2043, 3238,
2357      3239, 1850, 1394, 1394, 1394, 3240, 3245, 2034, 1860, 1860,
2358      1860, 3246, 1861, 2050, 3247, 1862, 1406, 1406, 1406, 3241,
2359      1396, 1868, 1868, 1868, 2037, 2063, 2063, 2063, 3248, 2064,
2360      3243, 3242, 2065, 3249, 1408, 2066, 2066, 2066, 1869, 1872,
2361      1872, 1872, 3244, 1873, 3250, 3251, 1874, 3252, 1876, 1876,
2362      1876, 3253, 1877, 2067, 2053, 1878, 1431, 1431, 1431, 1440,
2363      1440, 1440, 1448, 1448, 1448, 3254, 3255, 2061, 2076, 2076,
2364
2365      2076, 3480, 3480, 3480, 1433, 3256, 3257, 1442, 3258, 3259,
2366      1450, 2079, 2079, 2079, 3260, 2077, 3262, 1150, 3480, 1458,
2367      1458, 1458, 1890, 1890, 1890, 2083, 2083, 2083, 2080, 2084,
2368      3263, 3264, 2085, 3265, 1892, 1892, 1892, 1460, 1893, 1891,
2369      2073, 1894, 3261, 2075, 1468, 1468, 1468, 2071, 1897, 1897,
2370      1897, 3266, 1898, 3267, 3268, 1899, 1479, 1479, 1479, 1907,
2371      1907, 1907, 1470, 2107, 2107, 2107, 2081, 2078, 1904, 1904,
2372      1904, 3269, 1905, 3270, 1481, 1906, 1908, 2100, 2100, 2100,
2373      2108, 2101, 3271, 3272, 2102, 1486, 1486, 1486, 2116, 2116,
2374      2116, 2086, 1926, 1926, 1926, 2124, 2124, 2124, 1931, 1931,
2375
2376      1931, 3273, 3274, 1488, 2125, 2125, 2125, 2090, 1934, 1934,
2377      1934, 1943, 1943, 1943, 2136, 2136, 2136, 1946, 1946, 1946,
2378      1948, 1948, 1948, 2139, 2139, 2139, 3275, 2140, 3276, 3277,
2379      2141, 1950, 1950, 1950, 3278, 3279, 2103, 1949, 2142, 2142,
2380      2142, 3280, 2143, 3281, 3282, 2144, 3283, 3284, 1951, 1215,
2381      1215, 1215, 1955, 1955, 1955, 3285, 1956, 3287, 3288, 1957,
2382      1221, 1221, 1221, 2150, 2150, 2150, 3289, 1217, 1230, 1230,
2383      1230, 1962, 1962, 1962, 3290, 2153, 2153, 2153, 1223, 2154,
2384      2151, 3291, 2155, 1964, 1964, 1964, 1232, 3292, 1963, 2156,
2385      2156, 2156, 3293, 2157, 1150, 3294, 2158, 1968, 1968, 1968,
2386
2387      1965, 1240, 1240, 1240, 1248, 1248, 1248, 2164, 2164, 2164,
2388      3295, 2148, 3296, 3286, 1969, 2146, 2161, 2161, 2161, 1242,
2389      2162, 3297, 1250, 2163, 2165, 3298, 1971, 1971, 1971, 2152,
2390      1972, 3299, 3300, 1973, 1974, 1974, 1974, 2166, 2166, 2166,
2391      3301, 2167, 3302, 3303, 2168, 1264, 1264, 1264, 1978, 1978,
2392      1978, 1975, 1979, 3304, 3305, 1980, 1981, 1981, 1981, 3306,
2393      2171, 2171, 2171, 1266, 2172, 3307, 2159, 2173, 3308, 2160,
2394      1986, 1986, 1986, 1982, 2177, 2177, 2177, 1150, 2178, 3310,
2395      3311, 2179, 2180, 2180, 2180, 3312, 3313, 1987, 1991, 1991,
2396      1991, 3314, 1992, 3315, 3316, 1993, 2169, 3309, 3317, 2181,
2397
2398      1995, 1995, 1995, 2185, 2185, 2185, 3318, 2186, 3319, 3320,
2399      2187, 1291, 1291, 1291, 1298, 1298, 1298, 1996, 2003, 2003,
2400      2003, 2194, 2194, 2194, 3321, 2195, 3322, 3323, 2196, 1293,
2401      3324, 3325, 1300, 3326, 3327, 2004, 2005, 2005, 2005, 3328,
2402      2006, 3329, 3330, 2007, 2008, 2008, 2008, 3331, 2009, 3333,
2403      3334, 2010, 2012, 2012, 2012, 2014, 2014, 2014, 1329, 1329,
2404      1329, 3335, 2190, 1334, 1334, 1334, 3336, 2191, 1150, 3337,
2405      2013, 2204, 2204, 2204, 3332, 3338, 1331, 3339, 2021, 2021,
2406      2021, 1336, 2022, 3340, 3341, 2023, 3342, 3343, 2205, 2025,
2407      2025, 2025, 1353, 1353, 1353, 2029, 2029, 2029, 3344, 2030,
2408
2409      3345, 3346, 2031, 1361, 1361, 1361, 3348, 2026, 3349, 3350,
2410      1355, 3351, 3352, 2202, 1150, 3353, 2201, 2206, 2215, 2215,
2411      2215, 1363, 2035, 2035, 2035, 2217, 2217, 2217, 3347, 2218,
2412      3354, 3355, 2219, 1373, 1373, 1373, 2216, 3356, 3357, 2036,
2413      3359, 2212, 3360, 2039, 2039, 2039, 3361, 2040, 3362, 2213,
2414      2041, 1375, 2042, 2042, 2042, 2222, 2222, 2222, 3363, 2223,
2415      3364, 3365, 2224, 2045, 2045, 2045, 3366, 2046, 3367, 2043,
2416      2047, 2049, 2049, 2049, 2228, 2228, 2228, 1394, 1394, 1394,
2417      2220, 2231, 2231, 2231, 2233, 2233, 2233, 3368, 3371, 2050,
2418      3372, 2229, 1406, 1406, 1406, 1396, 2063, 2063, 2063, 3373,
2419
2420      2064, 3374, 3375, 2065, 2066, 2066, 2066, 2241, 2241, 2241,
2421      1408, 1431, 1431, 1431, 2246, 2246, 2246, 1448, 1448, 1448,
2422      3376, 1150, 2067, 1150, 2242, 2076, 2076, 2076, 1150, 1433,
2423      1150, 1722, 2247, 1150, 1719, 1450, 1150, 3387, 2230, 2250,
2424      2250, 2250, 2077, 2251, 1150, 1150, 2252, 2253, 2253, 2253,
2425      2079, 2079, 2079, 1150, 2256, 2256, 2256, 2238, 2257, 3377,
2426      3388, 2258, 1150, 3397, 2254, 1150, 3378, 2080, 1150, 3379,
2427      2244, 1458, 1458, 1458, 2260, 2260, 2260, 3383, 2083, 2083,
2428      2083, 2249, 2084, 1718, 3380, 2085, 1468, 1468, 1468, 1460,
2429      1150, 2261, 3381, 2255, 2267, 2267, 2267, 2269, 2269, 2269,
2430
2431      3391, 2100, 2100, 2100, 1470, 2101, 3384, 1717, 2102, 1486,
2432      1486, 1486, 2268, 3382, 2270, 2107, 2107, 2107, 3389, 3429,
2433      2262, 2285, 2285, 2285, 2259, 2286, 1150, 1488, 2287, 2288,
2434      2288, 2288, 2108, 2293, 2293, 2293, 2294, 2294, 2294, 2263,
2435      2116, 2116, 2116, 2296, 2296, 2296, 2301, 2301, 2301, 2124,
2436      2124, 2124, 2125, 2125, 2125, 2281, 2302, 2302, 2302, 2305,
2437      2305, 2305, 2309, 2309, 2309, 2310, 2310, 2310, 2312, 2312,
2438      2312, 2136, 2136, 2136, 2313, 2313, 2313, 2139, 2139, 2139,
2439      3390, 2140, 3405, 1150, 2141, 2142, 2142, 2142, 1150, 2143,
2440      1150, 1150, 2144, 1215, 1215, 1215, 1221, 1221, 1221, 2150,
2441
2442      2150, 2150, 2303, 2321, 2321, 2321, 1150, 2322, 3385, 3386,
2443      2323, 1217, 1150, 1150, 1223, 1150, 2151, 1230, 1230, 1230,
2444      2314, 2153, 2153, 2153, 3395, 2154, 1150, 3393, 2155, 2156,
2445      2156, 2156, 1150, 2157, 3406, 1232, 2158, 1240, 1240, 1240,
2446      1248, 1248, 1248, 1150, 2317, 2161, 2161, 2161, 1716, 2162,
2447      3398, 1150, 2163, 3392, 1150, 1242, 2319, 2325, 1250, 1150,
2448      1150, 2164, 2164, 2164, 2327, 2327, 2327, 3396, 2328, 3394,
2449      1150, 2329, 1264, 1264, 1264, 1150, 2326, 2324, 2165, 2166,
2450      2166, 2166, 1150, 2167, 3417, 1150, 2168, 2171, 2171, 2171,
2451      1266, 2172, 3403, 3409, 2173, 2177, 2177, 2177, 1715, 2178,
2452
2453      3399, 1150, 2179, 2180, 2180, 2180, 2335, 2335, 2335, 1150,
2454      2336, 1150, 3401, 2337, 2185, 2185, 2185, 3439, 2186, 3402,
2455      2181, 2187, 2342, 2342, 2342, 1291, 1291, 1291, 2345, 2345,
2456      2345, 3400, 1150, 2194, 2194, 2194, 3407, 2195, 2330, 2343,
2457      2196, 3404, 1150, 1293, 1150, 3410, 2346, 1329, 1329, 1329,
2458      1334, 1334, 1334, 2204, 2204, 2204, 2358, 2358, 2358, 1150,
2459      2359, 1150, 1150, 2360, 1714, 1331, 1150, 3408, 1336, 1713,
2460      2205, 1150, 1353, 1353, 1353, 1361, 1361, 1361, 2215, 2215,
2461      2215, 2217, 2217, 2217, 3423, 2218, 1150, 3411, 2219, 2344,
2462      1355, 3419, 1712, 1363, 3415, 3433, 2216, 1373, 1373, 1373,
2463
2464      1150, 2356, 2355, 2222, 2222, 2222, 3416, 2223, 3413, 3412,
2465      2224, 2228, 2228, 2228, 3437, 1375, 2377, 2377, 2377, 3418,
2466      2378, 1150, 1150, 2379, 1394, 1394, 1394, 3420, 2229, 2231,
2467      2231, 2231, 2381, 2381, 2381, 1150, 1150, 2370, 2369, 2233,
2468      2233, 2233, 1396, 2382, 2382, 2382, 3480, 3480, 3480, 1150,
2469      2372, 3480, 3480, 3480, 3480, 3480, 3480, 1406, 1406, 1406,
2470      2383, 1150, 1150, 3480, 2241, 2241, 2241, 3414, 3480, 3431,
2471      1150, 3480, 2390, 2390, 2390, 1408, 2391, 3424, 1150, 2392,
2472      1150, 2242, 2394, 2394, 2394, 2246, 2246, 2246, 2380, 2398,
2473      2398, 2398, 2250, 2250, 2250, 3425, 2251, 2384, 3421, 2252,
2474
2475      2395, 1150, 1711, 2247, 2253, 2253, 2253, 2399, 3426, 3430,
2476      2400, 2400, 2400, 2386, 2401, 2385, 3435, 2402, 1458, 1458,
2477      1458, 2254, 2387, 2256, 2256, 2256, 3432, 2257, 1150, 1150,
2478      2258, 2260, 2260, 2260, 1150, 1150, 1460, 2405, 2405, 2405,
2479      1150, 2406, 3443, 1150, 2407, 1468, 1468, 1468, 2261, 2267,
2480      2267, 2267, 3438, 2269, 2269, 2269, 1150, 2413, 2413, 2413,
2481      1150, 2414, 1150, 1470, 2415, 3422, 3427, 2268, 3434, 2404,
2482      2270, 1486, 1486, 1486, 2427, 2427, 2427, 2285, 2285, 2285,
2483      3428, 2286, 2430, 2431, 2287, 2432, 3436, 2435, 2436, 1488,
2484      2437, 1710, 1150, 2433, 1703, 3469, 2409, 3444, 2438, 3441,
2485
2486      2434, 2288, 2288, 2288, 1150, 2439, 2440, 2440, 2440, 2441,
2487      2441, 2441, 2293, 2293, 2293, 2294, 2294, 2294, 1700, 1698,
2488      2426, 2296, 2296, 2296, 2445, 2445, 2445, 2447, 2447, 2447,
2489      2448, 2448, 2448, 2301, 2301, 2301, 2302, 2302, 2302, 2305,
2490      2305, 2305, 2451, 2451, 2451, 2309, 2309, 2309, 2310, 2310,
2491      2310, 2312, 2312, 2312, 2313, 2313, 2313, 2458, 2458, 2458,
2492      2460, 2460, 2460, 1221, 1221, 1221, 2462, 2462, 2462, 2321,
2493      2321, 2321, 1150, 2322, 1150, 2459, 2323, 1230, 1230, 1230,
2494      1694, 1223, 1150, 2463, 1240, 1240, 1240, 1248, 1248, 1248,
2495      2327, 2327, 2327, 1150, 2328, 1232, 3453, 2329, 2467, 2467,
2496
2497      2467, 1150, 1242, 3454, 1150, 1250, 2335, 2335, 2335, 3442,
2498      2336, 1150, 1150, 2337, 3451, 1150, 2468, 2474, 2474, 2474,
2499      3447, 2465, 2342, 2342, 2342, 2482, 2482, 2482, 2464, 2461,
2500      3449, 2479, 2479, 2479, 2475, 2480, 3445, 1150, 2481, 2343,
2501      2345, 2345, 2345, 2483, 2491, 2491, 2491, 3446, 2466, 1329,
2502      1329, 1329, 2493, 2493, 2493, 2495, 2495, 2495, 2346, 2358,
2503      2358, 2358, 3440, 2359, 1690, 1150, 2360, 1331, 1150, 3452,
2504      2494, 1150, 2496, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
2505      3480, 3480, 2505, 2505, 2505, 1353, 1353, 1353, 1150, 1150,
2506      3480, 1689, 1150, 3480, 1150, 1150, 3480, 1150, 1687, 2506,
2507
2508      3467, 2497, 3450, 1355, 1361, 1361, 1361, 1150, 3457, 2492,
2509      2509, 2509, 2509, 1373, 1373, 1373, 2515, 2515, 2515, 2377,
2510      2377, 2377, 1363, 2378, 3468, 3458, 2379, 2510, 2498, 3461,
2511      2504, 1375, 1394, 1394, 1394, 3448, 3459, 2499, 2381, 2381,
2512      2381, 2382, 2382, 2382, 3455, 2507, 1150, 2517, 2517, 2517,
2513      1396, 2518, 1686, 3463, 2519, 2520, 2520, 2520, 2383, 3480,
2514      3480, 3480, 1685, 1150, 2511, 3480, 3480, 3480, 2508, 2524,
2515      2524, 2524, 2521, 2526, 2526, 2526, 3480, 2527, 2527, 2527,
2516      1150, 1150, 3480, 3480, 3480, 3480, 1683, 2525, 2390, 2390,
2517      2390, 2516, 2391, 3456, 2528, 2392, 2394, 2394, 2394, 1150,
2518
2519      3480, 2398, 2398, 2398, 2400, 2400, 2400, 1681, 2401, 3464,
2520      2522, 2402, 1673, 1670, 2395, 3462, 2523, 3477, 3465, 2399,
2521      2533, 2533, 2533, 2405, 2405, 2405, 1150, 2406, 1150, 1150,
2522      2407, 1150, 1468, 1468, 1468, 2413, 2413, 2413, 2534, 2414,
2523      3460, 1661, 2415, 1486, 1486, 1486, 2427, 2427, 2427, 2529,
2524      1470, 2440, 2440, 2440, 2441, 2441, 2441, 2567, 2567, 2567,
2525      3471, 1488, 1659, 3466, 1150, 2445, 2445, 2445, 2447, 2447,
2526      2447, 2448, 2448, 2448, 2451, 2451, 2451, 3473, 2536, 2573,
2527      2573, 2573, 2458, 2458, 2458, 2460, 2460, 2460, 2577, 2577,
2528      2577, 1658, 2462, 2462, 2462, 2579, 2579, 2579, 3470, 2580,
2529
2530      2459, 1150, 2581, 1150, 2549, 1656, 2578, 1150, 2550, 2463,
2531      2582, 2582, 2582, 1240, 1240, 1240, 1248, 1248, 1248, 2467,
2532      2467, 2467, 2474, 2474, 2474, 2591, 2591, 2591, 2583, 2592,
2533      1150, 1242, 2593, 3472, 1250, 3475, 1150, 2468, 3477, 2475,
2534      2595, 2595, 2595, 2479, 2479, 2479, 1655, 2480, 1654, 1150,
2535      2481, 2482, 2482, 2482, 2606, 2606, 2606, 2596, 2491, 2491,
2536      2491, 1329, 1329, 1329, 2493, 2493, 2493, 1651, 3476, 2483,
2537      1650, 2607, 2495, 2495, 2495, 1648, 1646, 2584, 3474, 1331,
2538      1645, 1643, 2494, 2585, 2609, 2609, 2609, 1642, 2610, 2496,
2539      1638, 2611, 2617, 2617, 2617, 2505, 2505, 2505, 2619, 2619,
2540
2541      2619, 1637, 2620, 1636, 1635, 2621, 2622, 2622, 2622, 2618,
2542      1625, 1623, 2506, 1361, 1361, 1361, 1621, 1620, 2608, 2509,
2543      2509, 2509, 1619, 1618, 2623, 2625, 2625, 2625, 1611, 2626,
2544      1610, 1363, 2627, 2628, 2628, 2628, 2510, 2632, 2632, 2632,
2545      2515, 2515, 2515, 2634, 2634, 2634, 2517, 2517, 2517, 1608,
2546      2518, 2629, 1607, 2519, 2633, 2520, 2520, 2520, 2636, 2636,
2547      2636, 2635, 2637, 1606, 1603, 2638, 2639, 2639, 2639, 2641,
2548      2641, 2641, 2521, 1602, 2624, 2524, 2524, 2524, 2526, 2526,
2549      2526, 1594, 1593, 2640, 1592, 1591, 2642, 2527, 2527, 2527,
2550      2643, 2643, 2643, 2525, 2644, 1590, 1589, 2645, 3480, 3480,
2551
2552      3480, 2533, 2533, 2533, 2528, 1468, 1468, 1468, 1486, 1486,
2553      1486, 2567, 2567, 2567, 1588, 3480, 2682, 2682, 2682, 2534,
2554      2573, 2573, 2573, 1470, 1587, 1586, 1488, 2689, 2689, 2689,
2555      2577, 2577, 2577, 2579, 2579, 2579, 1580, 2580, 1579, 1578,
2556      2581, 2582, 2582, 2582, 2690, 1240, 1240, 1240, 2578, 1248,
2557      1248, 1248, 1577, 2646, 1575, 2696, 2696, 2696, 1574, 2583,
2558      2716, 2716, 2716, 1242, 2595, 2595, 2595, 1250, 2664, 1573,
2559      1572, 2651, 2697, 2591, 2591, 2591, 1557, 2592, 2717, 1556,
2560      2593, 2596, 2700, 2700, 2700, 1551, 2701, 1550, 1548, 2702,
2561      2711, 2711, 2711, 2606, 2606, 2606, 2713, 2713, 2713, 1547,
2562
2563      2714, 1545, 1541, 2715, 1540, 1536, 2691, 2712, 1535, 1534,
2564      2607, 1533, 2609, 2609, 2609, 2692, 2610, 1532, 1531, 2611,
2565      2617, 2617, 2617, 2721, 2721, 2721, 1530, 2722, 1529, 1528,
2566      2723, 2619, 2619, 2619, 1526, 2620, 1525, 2618, 2621, 2622,
2567      2622, 2622, 1361, 1361, 1361, 2625, 2625, 2625, 1524, 2626,
2568      1523, 1522, 2627, 2628, 2628, 2628, 1520, 2623, 1519, 1518,
2569      1363, 2732, 2732, 2732, 2632, 2632, 2632, 1517, 2734, 2734,
2570      2734, 2629, 2735, 1514, 1513, 2736, 1512, 1511, 2733, 1510,
2571      1509, 2633, 2634, 2634, 2634, 2636, 2636, 2636, 1508, 2637,
2572      1507, 1505, 2638, 2639, 2639, 2639, 2641, 2641, 2641, 1504,
2573
2574      2635, 2737, 2737, 2737, 2730, 2738, 1503, 1502, 2739, 1501,
2575      2640, 1500, 1499, 2642, 2740, 2740, 2740, 1496, 2741, 1495,
2576      1494, 2742, 2643, 2643, 2643, 1493, 2644, 1492, 1491, 2645,
2577      3480, 3480, 3480, 2750, 2750, 2750, 2752, 2752, 2752, 1468,
2578      1468, 1468, 2757, 2757, 2757, 1150, 1485, 3480, 1484, 1483,
2579      2751, 1478, 1477, 2753, 2758, 2758, 2758, 1470, 1486, 1486,
2580      1486, 2787, 2787, 2787, 2682, 2682, 2682, 2791, 2791, 2791,
2581      1473, 2759, 2689, 2689, 2689, 1467, 1488, 2794, 2794, 2794,
2582      1466, 2795, 1462, 1457, 2796, 1240, 1240, 1240, 1453, 2690,
2583      1452, 2749, 1444, 1248, 1248, 1248, 2801, 2801, 2801, 2696,
2584
2585      2696, 2696, 1430, 1242, 1429, 2803, 2803, 2803, 1428, 2804,
2586      2756, 1250, 2805, 2802, 1425, 1419, 2697, 1414, 2770, 2806,
2587      2806, 2806, 2700, 2700, 2700, 1410, 2701, 1405, 1404, 2702,
2588      2816, 2816, 2816, 2711, 2711, 2711, 2807, 1403, 2819, 2819,
2589      2819, 1402, 2820, 1401, 2798, 2821, 1400, 2817, 1399, 1398,
2590      2712, 1393, 2797, 2713, 2713, 2713, 1392, 2714, 1387, 1386,
2591      2715, 2716, 2716, 2716, 2823, 2823, 2823, 2721, 2721, 2721,
2592      1380, 2722, 1377, 1372, 2723, 1371, 2818, 1366, 1365, 2717,
2593      1360, 2824, 2832, 2832, 2832, 2732, 2732, 2732, 2835, 2835,
2594      2835, 1349, 2836, 1344, 1343, 2837, 1342, 2734, 2734, 2734,
2595
2596      2833, 2735, 2733, 1338, 2736, 2737, 2737, 2737, 1333, 2738,
2597      1322, 1321, 2739, 2740, 2740, 2740, 1315, 2741, 1314, 1313,
2598      2742, 3480, 3480, 3480, 2750, 2750, 2750, 2851, 2851, 2851,
2599      1309, 2852, 1308, 1307, 2853, 2752, 2752, 2752, 3480, 1302,
2600      1290, 2751, 2854, 2854, 2854, 1289, 2855, 1288, 1287, 2856,
2601      1286, 1285, 2753, 2857, 2857, 2857, 2859, 2859, 2859, 1468,
2602      1468, 1468, 2757, 2757, 2757, 2758, 2758, 2758, 1284, 1283,
2603      2858, 1282, 1281, 2860, 1486, 1486, 1486, 1470, 2876, 2876,
2604      2876, 2850, 2759, 2862, 2862, 2862, 1275, 2863, 1268, 1229,
2605      2864, 1225, 1488, 1220, 1219, 2877, 1708, 2787, 2787, 2787,
2606
2607      2891, 2891, 2891, 2791, 2791, 2791, 2894, 2894, 2894, 2794,
2608      2794, 2794, 1207, 2795, 1206, 1205, 2796, 1240, 1240, 1240,
2609      1204, 2861, 2901, 2901, 2901, 2873, 2801, 2801, 2801, 2905,
2610      2905, 2905, 1203, 2906, 1202, 1242, 2907, 2803, 2803, 2803,
2611      2902, 2804, 1201, 2802, 2805, 2806, 2806, 2806, 2908, 2908,
2612      2908, 1200, 2909, 1199, 1198, 2910, 2816, 2816, 2816, 2919,
2613      2919, 2919, 2807, 2920, 1197, 1196, 2921, 2819, 2819, 2819,
2614      1195, 2820, 1194, 2817, 2821, 2823, 2823, 2823, 2924, 2924,
2615      2924, 1191, 2925, 2900, 1190, 2926, 2832, 2832, 2832, 2835,
2616      2835, 2835, 2824, 2836, 1189, 1188, 2837, 2947, 2947, 2947,
2617
2618      1187, 2851, 2851, 2851, 2833, 2852, 1186, 1185, 2853, 2854,
2619      2854, 2854, 1184, 2855, 2948, 1183, 2856, 2857, 2857, 2857,
2620      2953, 2953, 2953, 1180, 2954, 1179, 1178, 2955, 2859, 2859,
2621      2859, 2956, 2956, 2956, 2858, 2957, 1177, 1176, 2958, 1468,
2622      1468, 1468, 2862, 2862, 2862, 2860, 2863, 1175, 1174, 2864,
2623      1486, 1486, 1486, 2970, 2970, 2970, 1173, 1470, 2876, 2876,
2624      2876, 1172, 2972, 2972, 2972, 1171, 2973, 1164, 1488, 2974,
2625      2971, 1708, 2983, 2983, 2983, 2877, 1708, 2891, 2891, 2891,
2626      1708, 2984, 2984, 2984, 2985, 2985, 2985, 2894, 2894, 2894,
2627      2959, 2986, 2986, 2986, 1240, 1240, 1240, 1160, 1159, 2968,
2628
2629      2901, 2901, 2901, 2905, 2905, 2905, 1158, 2906, 1157, 1156,
2630      2907, 1153, 1242, 2908, 2908, 2908, 1151, 2909, 2902, 1150,
2631      2910, 2994, 2994, 2994, 2919, 2919, 2919, 1148, 2920, 1146,
2632      1145, 2921, 3004, 3004, 3004, 2924, 2924, 2924, 2995, 2925,
2633      1144, 1143, 2926, 1142, 1139, 2991, 3006, 3006, 3006, 3005,
2634      2947, 2947, 2947, 3025, 3025, 3025, 1136, 3026, 1134, 1132,
2635      3027, 1131, 1128, 3007, 2953, 2953, 2953, 2948, 2954, 1127,
2636      1125, 2955, 2956, 2956, 2956, 1122, 2957, 1121, 1120, 2958,
2637      3032, 3032, 3032, 1486, 1486, 1486, 2970, 2970, 2970, 3042,
2638      3042, 3042, 1116, 3043, 1115, 1113, 3044, 1112, 3033, 1111,
2639
2640      1110, 1488, 1108, 2971, 1708, 1107, 1106, 1708, 2972, 2972,
2641      2972, 1105, 2973, 1104, 1103, 2974, 2983, 2983, 2983, 2984,
2642      2984, 2984, 2985, 2985, 2985, 1100, 1708, 2986, 2986, 2986,
2643      3057, 3057, 3057, 3061, 3061, 3061, 1099, 3062, 1097, 1094,
2644      3063, 1093, 2994, 2994, 2994, 3064, 3064, 3064, 3058, 3040,
2645      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 2995,
2646      1091, 1706, 3065, 3004, 3004, 3004, 1706, 1706, 1706, 1708,
2647      1706, 3071, 3071, 3071, 1090, 3072, 1089, 1088, 3073, 1087,
2648      3005, 3074, 3074, 3074, 1083, 3075, 1081, 1080, 3076, 3006,
2649      3006, 3006, 3032, 3032, 3032, 1706, 1706, 1706, 1706, 1706,
2650
2651      1706, 1706, 1706, 1706, 1706, 1706, 3007, 1079, 1706, 1077,
2652      3033, 1076, 1075, 1706, 1706, 1706, 1708, 1706, 3025, 3025,
2653      3025, 1072, 3026, 1071, 1070, 3027, 3104, 3104, 3104, 3042,
2654      3042, 3042, 1069, 3043, 1067, 1066, 3044, 1065, 1063, 3057,
2655      3057, 3057, 1706, 1706, 3105, 1062, 1061, 1708, 1706, 1706,
2656      1706, 1706, 1706, 3112, 1706, 1706, 1706, 3058, 1059, 1706,
2657      3064, 3064, 3064, 1056, 1706, 1706, 1706, 1708, 1706, 3061,
2658      3061, 3061, 1052, 3062, 1051, 1049, 3063, 3065, 3129, 3129,
2659      3129, 1048, 3130, 1047, 1044, 3131, 3104, 3104, 3104, 3156,
2660      3156, 3156, 1043, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2661
2662      1706, 1706, 1706, 3112, 3105, 1042, 1706, 1708, 1709, 1040,
2663      1039, 1706, 1706, 1706, 1708, 1706, 3071, 3071, 3071, 1033,
2664      3072, 1030, 1028, 3073, 3074, 3074, 3074, 1027, 3075, 1026,
2665      1021, 3076, 3165, 3165, 3165, 3167, 3167, 3167, 1020, 1018,
2666      1706, 1706, 1017, 3129, 3129, 3129, 1013, 3130, 1011, 3166,
2667      3131, 1010, 3168, 3177, 3177, 3177, 3185, 3185, 3185, 3193,
2668      3193, 3193, 3156, 3156, 3156, 3165, 3165, 3165, 1009, 1008,
2669      3178, 1007, 1006, 3186, 3201, 3201, 3201, 1150, 3202, 1005,
2670      1708, 3203, 3166, 3167, 3167, 3167, 3204, 3204, 3204, 1004,
2671      3205, 1003, 1002, 3206, 3177, 3177, 3177, 3215, 3215, 3215,
2672
2673      3168, 3216, 1001,  998, 3217, 3185, 3185, 3185, 3224, 3224,
2674      3224, 3178, 3225, 1911,  995, 3226, 3193, 3193, 3193, 3201,
2675      3201, 3201, 3186, 3202,  994,  993, 3203,  991, 3204, 3204,
2676      3204,  990, 3205,  989, 1150, 3206, 3215, 3215, 3215,  988,
2677      3216,  987,  982, 3217, 3224, 3224, 3224,  980, 3225,  979,
2678       978, 3226,  976, 3233, 3358, 3358, 3358, 3358, 3358, 3358,
2679       975, 3369,  974,  973, 3370, 3478, 3478, 3478, 3478, 3478,
2680      3478,  971, 1150,  968,  967, 1150,  965,  964,  963,  961,
2681       960,  959,  958, 3479,  955,  954, 3479,  248,  248,  248,
2682       248,  248,  248,  248,  248,  248,  249,  249,  249,  249,
2683
2684       249,  249,  249,  249,  249,  254,  254,  254,  254,  254,
2685       254,  254,  254,  254,  257,  257,  257,  257,  257,  257,
2686       257,  257,  257,  260,  260,  260,  260,  260,  260,  260,
2687       260,  260,  263,  263,  263,  263,  263,  263,  263,  263,
2688       263,  270,  270,  270,  270,  270,  270,  270,  270,  270,
2689       277,  277,  277,  277,  277,  277,  277,  277,  277,  282,
2690       282,  282,  282,  282,  282,  282,  282,  282,  294,  294,
2691       294,  294,  294,  294,  294,  294,  294,  300,  300,  300,
2692       300,  300,  300,  300,  300,  300,  308,  308,  308,  308,
2693       308,  308,  308,  308,  308,  312,  312,  312,  312,  312,
2694
2695       312,  312,  312,  312,  318,  318,  318,  318,  318,  318,
2696       318,  318,  318,  324,  324,  324,  324,  324,  324,  324,
2697       324,  324,  330,  330,  330,  330,  330,  330,  330,  330,
2698       330,  336,  336,  336,  336,  336,  336,  336,  336,  336,
2699       343,  343,  343,  343,  343,  343,  343,  343,  343,  348,
2700       348,  348,  348,  348,  348,  348,  348,  348,  355,  355,
2701       355,  355,  355,  355,  355,  355,  355,  364,  364,  364,
2702       364,  364,  364,  364,  364,  364,  382,  382,  382,  382,
2703       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2704       389,  389,  389,  389,  393,  393,  393,  393,  393,  393,
2705
2706       393,  393,  393,  400,  400,  400,  400,  400,  400,  400,
2707       400,  400,  404,  404,  404,  404,  404,  404,  404,  404,
2708       404,  410,  410,  410,  410,  410,  410,  410,  410,  410,
2709       418,  418,  418,  418,  418,  418,  418,  418,  418,  426,
2710       426,  426,  426,  426,  426,  426,  426,  426,  432,  432,
2711       432,  432,  432,  432,  432,  432,  432,  438,  438,  438,
2712       438,  438,  438,  438,  438,  438,  442,  442,  442,  442,
2713       442,  442,  442,  442,  442,  450,  450,  450,  450,  450,
2714       450,  450,  450,  450,  457,  457,  457,  457,  457,  457,
2715       457,  457,  457,  464,  464,  464,  464,  464,  464,  464,
2716
2717       464,  464,  469,  469,  469,  469,  469,  469,  469,  469,
2718       469,  475,  475,  475,  475,  475,  475,  475,  475,  475,
2719       480,  480,  480,  480,  480,  480,  480,  480,  480,  486,
2720       486,  486,  486,  486,  486,  486,  486,  486,  491,  491,
2721       491,  491,  491,  491,  491,  491,  491,  497,  497,  497,
2722       497,  497,  497,  497,  497,  497,  502,  502,  502,  502,
2723       502,  502,  502,  502,  502,  508,  508,  508,  508,  508,
2724       508,  508,  508,  508,  517,  517,  517,  517,  517,  517,
2725       517,  517,  517,  524,  524,  524,  524,  524,  524,  524,
2726       524,  524,  528,  528,  528,  528,  528,  528,  528,  528,
2727
2728       528,  539,  539,  539,  539,  539,  539,  539,  539,  539,
2729       547,  547,  547,  547,  547,  547,  547,  547,  547,  555,
2730       555,  555,  555,  555,  555,  555,  555,  555,  560,  560,
2731       560,  560,  560,  560,  560,  560,  560,  566,  566,  566,
2732       566,  566,  566,  566,  566,  566,  574,  574,  574,  574,
2733       574,  574,  574,  574,  574,  580,  580,  580,  580,  580,
2734       580,  580,  580,  580,  585,  585,  585,  585,  585,  585,
2735       585,  585,  585,  592,  592,  592,  592,  592,  592,  592,
2736       592,  592,  597,  597,  597,  597,  597,  597,  597,  597,
2737       597,  603,  603,  603,  603,  603,  603,  603,  603,  603,
2738
2739       610,  610,  610,  610,  610,  610,  610,  610,  610,  617,
2740       617,  617,  617,  617,  617,  617,  617,  617,  624,  624,
2741       624,  624,  624,  624,  624,  624,  624,  632,  632,  632,
2742       632,  632,  632,  632,  632,  632,  263,  263,  263,  263,
2743       263,  263,  263,  263,  263,  643,  643,  643,  643,  643,
2744       643,  643,  643,  643,  649,  649,  649,  649,  649,  649,
2745       649,  649,  649,  668,  668,  668,  953,  950,  949,  668,
2746       704,  704,  704,  948,  947,  942,  704,  712,  712,  712,
2747       940,  939,  931,  712,  716,  716,  716,  930,  929,  928,
2748       716,  722,  722,  722,  922,  921,  920,  722,  728,  728,
2749
2750       728,  918,  915,  914,  728,  733,  733,  733,  913,  912,
2751       907,  733,  743,  743,  743,  904,  906,  901,  743,  762,
2752       762,  762,  900,  899,  897,  762,  766,  766,  766,  896,
2753       893,  892,  766,  770,  770,  770,  891,  889,  888,  770,
2754       780,  780,  780,  886,  885,  884,  780,  786,  786,  786,
2755       883,  881,  880,  786,  791,  791,  791,  879,  878,  877,
2756       791,  799,  799,  799,  876,  874,  872,  799,  804,  804,
2757       804,  871,  869,  865,  804,  809,  809,  809,  863,  859,
2758       855,  809,  814,  814,  814,  854,  852,  850,  814,  819,
2759       819,  819,  849,  847,  846,  819,  830,  830,  830,  844,
2760
2761       843,  842,  830,  839,  839,  839,  841,  840,  838,  839,
2762       848,  848,  848,  837,  831,  829,  848,  853,  853,  853,
2763       824,  823,  822,  853,  864,  864,  864,  821,  820,  818,
2764       864,  870,  870,  870,  816,  815,  813,  870,  875,  875,
2765       875,  811,  810,  808,  875,  882,  882,  882,  806,  805,
2766       803,  882,  890,  890,  890,  801,  800,  798,  890,  898,
2767       898,  898,  797,  794,  793,  898,  903,  903,  903,  903,
2768       903,  903,  903,  792,  903,  668,  668,  668,  790, 3480,
2769       787,  668,  919,  785,  783,  782,  919,  704,  704,  704,
2770       781,  779,  778,  704,  962,  774,  773,  772,  962,  712,
2771
2772       712,  712,  771,  769,  767,  712,  966,  765,  764,  763,
2773       966,  716,  716,  716,  761,  760,  759,  716,  972,  752,
2774       748,  747,  972,  722,  722,  722,  744,  742,  738,  722,
2775       977,  737,  736,  735,  977,  728,  728,  728,  734,  732,
2776       730,  728,  981,  729,  727,  725,  981,  733,  733,  733,
2777       724,  723,  721,  733,  992,  719,  718,  717,  992,  743,
2778       743,  743,  715,  713,  711,  743, 1012,  706,  705,  703,
2779      1012,  762,  762,  762, 3480,  685,  670,  762, 1016,  669,
2780       667,  666, 1016,  766,  766,  766,  660,  659,  660,  766,
2781      1019,  659,  658,  657, 1019,  770,  770,  770, 3480, 3480,
2782
2783      3480,  770, 1029, 3480, 3480, 3480, 1029,  780,  780,  780,
2784      3480, 3480, 3480,  780, 1038, 3480, 3480, 3480, 1038,  786,
2785       786,  786, 3480, 3480, 3480,  786, 1041, 3480, 3480, 3480,
2786      1041,  791,  791,  791, 3480, 3480, 3480,  791, 1050, 3480,
2787      3480, 3480, 1050,  799,  799,  799, 3480, 3480, 3480,  799,
2788      1055, 3480, 3480, 3480, 1055,  804,  804,  804, 3480, 3480,
2789      3480,  804, 1060, 3480, 3480, 3480, 1060,  809,  809,  809,
2790      3480, 3480, 3480,  809, 1064, 3480, 3480, 3480, 1064,  814,
2791       814,  814, 3480, 3480, 3480,  814, 1068, 3480, 3480, 3480,
2792      1068,  819,  819,  819, 3480, 3480, 3480,  819, 1078, 3480,
2793
2794      3480, 3480, 1078,  830,  830,  830, 3480, 3480, 3480,  830,
2795      1082, 3480, 3480, 3480, 1082,  839,  839,  839, 3480, 3480,
2796      3480,  839, 1092, 3480, 3480, 3480, 1092,  848,  848,  848,
2797      3480, 3480, 3480,  848, 1098, 3480, 3480, 3480, 1098,  853,
2798       853,  853, 3480, 3480, 3480,  853, 1109, 3480, 3480, 3480,
2799      1109,  864,  864,  864, 3480, 3480, 3480,  864, 1114, 3480,
2800      3480, 3480, 1114,  870,  870,  870, 3480, 3480, 3480,  870,
2801      1119, 3480, 3480, 3480, 1119,  875,  875,  875, 3480, 3480,
2802      3480,  875, 1126, 3480, 3480, 3480, 1126,  882,  882,  882,
2803      3480, 3480, 3480,  882, 1133, 3480, 3480, 3480, 1133,  890,
2804
2805       890,  890, 3480, 3480, 3480,  890, 1141, 3480, 3480, 3480,
2806      1141,  898,  898,  898, 3480, 3480, 3480,  898, 1147, 3480,
2807      3480, 3480, 1147, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2808      1149, 1149, 1155, 3480, 3480, 3480, 3480, 1155,  668,  668,
2809       668, 3480, 3480, 3480,  668, 1166, 1166, 1166, 1166, 3480,
2810      3480, 1166, 1166,  704,  704,  704,  704, 3480,  704, 3480,
2811       704, 1216, 1216, 1216, 1216, 3480, 3480, 1216, 1216,  712,
2812       712,  712, 3480, 3480, 3480,  712, 1222, 1222, 1222, 1222,
2813      3480, 3480, 1222, 1222,  716,  716,  716, 3480, 3480, 3480,
2814       716, 1231, 1231, 1231, 1231, 3480, 3480, 1231, 1231,  722,
2815
2816       722,  722,  722, 3480,  722, 3480,  722, 1241, 1241, 1241,
2817      1241, 3480, 3480, 1241, 1241,  728,  728,  728,  728, 3480,
2818       728, 3480,  728, 1249, 1249, 1249, 1249, 3480, 3480, 1249,
2819      1249,  733,  733,  733,  733, 3480,  733, 3480,  733, 1265,
2820      1265, 1265, 1265, 3480, 3480, 1265, 1265,  743,  743,  743,
2821      3480, 3480, 3480,  743, 1292, 1292, 1292, 1292, 3480, 3480,
2822      1292, 1292, 1299, 1299, 1299, 1299, 3480, 3480, 1299, 1299,
2823       766,  766,  766, 3480, 3480, 3480,  766, 1304, 1304, 1304,
2824      1304, 3480, 3480, 1304, 1304,  770,  770,  770, 3480, 3480,
2825      3480,  770, 1317, 1317, 1317, 1317, 3480, 3480, 1317, 1317,
2826
2827       780,  780,  780, 3480, 3480, 3480,  780, 1330, 1330, 1330,
2828      1330, 3480, 3480, 1330, 1330,  786,  786,  786, 3480, 3480,
2829      3480,  786, 1335, 1335, 1335, 1335, 3480, 3480, 1335, 1335,
2830       791,  791,  791, 3480, 3480, 3480,  791, 1346, 1346, 1346,
2831      1346, 3480, 3480, 1346, 1346,  799,  799,  799, 3480, 3480,
2832      3480,  799, 1354, 1354, 1354, 1354, 3480, 3480, 1354, 1354,
2833       804,  804,  804, 3480, 3480, 3480,  804, 1362, 1362, 1362,
2834      1362, 3480, 3480, 1362, 1362,  809,  809,  809, 3480, 3480,
2835      3480,  809, 1368, 1368, 1368, 1368, 3480, 3480, 1368, 1368,
2836       814,  814,  814, 3480, 3480, 3480,  814, 1374, 1374, 1374,
2837
2838      1374, 3480, 3480, 1374, 1374,  819,  819,  819, 3480, 3480,
2839      3480,  819, 1389, 1389, 1389, 1389, 3480, 3480, 1389, 1389,
2840       830,  830,  830, 3480, 3480, 3480,  830, 1395, 1395, 1395,
2841      1395, 3480, 3480, 1395, 1395,  839,  839,  839, 3480, 3480,
2842      3480,  839, 1407, 1407, 1407, 1407, 3480, 3480, 1407, 1407,
2843       848,  848,  848, 3480, 3480, 3480,  848, 1416, 1416, 1416,
2844      1416, 3480, 3480, 1416, 1416,  853,  853,  853, 3480, 3480,
2845      3480,  853, 1432, 1432, 1432, 1432, 3480, 3480, 1432, 1432,
2846       864,  864,  864,  864, 3480,  864, 3480,  864, 1441, 1441,
2847      1441, 1441, 3480, 3480, 1441, 1441,  870,  870,  870, 3480,
2848
2849      3480, 3480,  870, 1449, 1449, 1449, 1449, 3480, 3480, 1449,
2850      1449,  875,  875,  875, 3480, 3480, 3480,  875, 1459, 1459,
2851      1459, 1459, 3480, 3480, 1459, 1459,  882,  882,  882, 3480,
2852      3480, 3480,  882, 1469, 1469, 1469, 1469, 3480, 3480, 1469,
2853      1469,  890,  890,  890, 3480, 3480, 3480,  890, 1480, 1480,
2854      1480, 1480, 3480, 3480, 1480, 1480,  898,  898,  898, 3480,
2855      3480, 3480,  898, 1487, 1487, 1487, 1487, 3480, 3480, 1487,
2856      1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2857      1155, 3480, 1155, 3480, 3480, 1155,  668,  668,  668, 3480,
2858      3480, 3480,  668, 1166, 1166, 1166, 1166, 3480, 3480, 1166,
2859
2860      1166,  704,  704,  704, 3480, 3480, 3480,  704, 1216, 1216,
2861      1216, 1216, 3480, 3480, 1216, 1216,  712,  712,  712, 3480,
2862      3480, 3480,  712, 1222, 1222, 1222, 1222, 3480, 3480, 1222,
2863      1222,  716,  716,  716, 3480, 3480, 3480,  716, 1231, 1231,
2864      1231, 1231, 3480, 3480, 1231, 1231,  722,  722,  722, 3480,
2865      3480, 3480,  722, 1241, 1241, 1241, 1241, 3480, 3480, 1241,
2866      1241, 1249, 1249, 1249, 1249, 3480, 3480, 1249, 1249,  733,
2867       733,  733, 3480, 3480, 3480,  733, 1265, 1265, 1265, 1265,
2868      3480, 3480, 1265, 1265,  743,  743,  743, 3480, 3480, 3480,
2869       743, 1292, 1292, 1292, 1292, 3480, 3480, 1292, 1292, 1299,
2870
2871      1299, 1299, 1299, 3480, 3480, 1299, 1299,  766,  766,  766,
2872       766, 3480,  766, 3480,  766, 1304, 1304, 1304, 1304, 3480,
2873      3480, 1304, 1304,  770,  770,  770, 3480, 3480, 3480,  770,
2874      1317, 1317, 1317, 1317, 3480, 3480, 1317, 1317,  780,  780,
2875       780,  780, 3480,  780, 3480,  780, 1330, 1330, 1330, 1330,
2876      3480, 3480, 1330, 1330,  786,  786,  786,  786, 3480,  786,
2877      3480,  786, 1335, 1335, 1335, 1335, 3480, 3480, 1335, 1335,
2878       791,  791,  791, 3480, 3480, 3480,  791, 1346, 1346, 1346,
2879      1346, 3480, 3480, 1346, 1346,  799,  799,  799, 3480, 3480,
2880      3480,  799, 1354, 1354, 1354, 1354, 3480, 3480, 1354, 1354,
2881
2882       804,  804,  804, 3480, 3480, 3480,  804, 1362, 1362, 1362,
2883      1362, 3480, 3480, 1362, 1362,  809,  809,  809,  809, 3480,
2884       809, 3480,  809, 1368, 1368, 1368, 1368, 3480, 3480, 1368,
2885      1368,  814,  814,  814,  814, 3480,  814, 3480,  814, 1374,
2886      1374, 1374, 1374, 3480, 3480, 1374, 1374,  819,  819,  819,
2887      3480, 3480, 3480,  819, 1389, 1389, 1389, 1389, 3480, 3480,
2888      1389, 1389,  830,  830,  830, 3480, 3480, 3480,  830, 1395,
2889      1395, 1395, 1395, 3480, 3480, 1395, 1395,  839,  839,  839,
2890      3480, 3480, 3480,  839, 1407, 1407, 1407, 1407, 3480, 3480,
2891      1407, 1407,  848,  848,  848, 3480, 3480, 3480,  848, 1416,
2892
2893      1416, 1416, 1416, 3480, 3480, 1416, 1416,  853,  853,  853,
2894      3480, 3480, 3480,  853, 1432, 1432, 1432, 1432, 3480, 3480,
2895      1432, 1432,  864,  864,  864, 3480, 3480, 3480,  864, 1441,
2896      1441, 1441, 1441, 3480, 3480, 1441, 1441,  870,  870,  870,
2897      3480, 3480, 3480,  870, 1449, 1449, 1449, 1449, 3480, 3480,
2898      1449, 1449,  875,  875,  875, 3480, 3480, 3480,  875, 1459,
2899      1459, 1459, 1459, 3480, 3480, 1459, 1459,  882,  882,  882,
2900      3480, 3480, 3480,  882, 1469, 1469, 1469, 1469, 3480, 3480,
2901      1469, 1469,  890,  890,  890,  890, 3480,  890, 3480,  890,
2902      1480, 1480, 1480, 1480, 3480, 3480, 1480, 1480,  898,  898,
2903
2904       898, 3480, 3480, 3480,  898, 1487, 1487, 1487, 1487, 3480,
2905      3480, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2906      1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2907      1706,  668,  668,  668, 3480, 3480, 3480,  668,  704,  704,
2908       704, 3480, 3480, 3480,  704, 1216, 1216, 1216, 1216, 3480,
2909      3480, 1216, 1216,  712,  712,  712,  712, 3480,  712, 3480,
2910       712, 1222, 1222, 1222, 1222, 3480, 3480, 1222, 1222,  716,
2911       716,  716, 3480, 3480, 3480,  716, 1231, 1231, 1231, 1231,
2912      3480, 3480, 1231, 1231,  722,  722,  722, 3480, 3480, 3480,
2913       722, 1241, 1241, 1241, 1241, 3480, 3480, 1241, 1241, 1249,
2914
2915      1249, 1249, 1249, 3480, 3480, 1249, 1249,  733,  733,  733,
2916      3480, 3480, 3480,  733, 1265, 1265, 1265, 1265, 3480, 3480,
2917      1265, 1265,  743,  743,  743, 3480, 3480, 3480,  743, 1292,
2918      1292, 1292, 1292, 3480, 3480, 1292, 1292, 1299, 1299, 1299,
2919      1299, 3480, 3480, 1299, 1299, 1304, 1304, 1304, 1304, 3480,
2920      3480, 1304, 1304,  770,  770,  770, 3480, 3480, 3480,  770,
2921      1317, 1317, 1317, 1317, 3480, 3480, 1317, 1317, 1330, 1330,
2922      1330, 1330, 3480, 3480, 1330, 1330, 1335, 1335, 1335, 1335,
2923      3480, 3480, 1335, 1335,  791,  791,  791, 3480, 3480, 3480,
2924       791, 1346, 1346, 1346, 1346, 3480, 3480, 1346, 1346,  799,
2925
2926       799,  799, 3480, 3480, 3480,  799, 1354, 1354, 1354, 1354,
2927      3480, 3480, 1354, 1354,  804,  804,  804,  804, 3480,  804,
2928      3480,  804, 1362, 1362, 1362, 1362, 3480, 3480, 1362, 1362,
2929       809,  809,  809, 3480, 3480, 3480,  809, 1368, 1368, 1368,
2930      1368, 3480, 3480, 1368, 1368,  814,  814,  814, 3480, 3480,
2931      3480,  814, 1374, 1374, 1374, 1374, 3480, 3480, 1374, 1374,
2932       819,  819,  819, 3480, 3480, 3480,  819, 1389, 1389, 1389,
2933      1389, 3480, 3480, 1389, 1389,  830,  830,  830, 3480, 3480,
2934      3480,  830, 1395, 1395, 1395, 1395, 3480, 3480, 1395, 1395,
2935       839,  839,  839, 3480, 3480, 3480,  839, 1407, 1407, 1407,
2936
2937      1407, 3480, 3480, 1407, 1407,  848,  848,  848,  848, 3480,
2938       848, 3480,  848, 1416, 1416, 1416, 1416, 3480, 3480, 1416,
2939      1416,  853,  853,  853, 3480, 3480, 3480,  853, 1432, 1432,
2940      1432, 1432, 3480, 3480, 1432, 1432,  864,  864,  864, 3480,
2941      3480, 3480,  864, 1441, 1441, 1441, 1441, 3480, 3480, 1441,
2942      1441,  870,  870,  870, 3480, 3480, 3480,  870, 1449, 1449,
2943      1449, 1449, 3480, 3480, 1449, 1449,  875,  875,  875, 3480,
2944      3480, 3480,  875, 1459, 1459, 1459, 1459, 3480, 3480, 1459,
2945      1459,  882,  882,  882, 3480, 3480, 3480,  882, 1469, 1469,
2946      1469, 1469, 3480, 3480, 1469, 1469,  890,  890,  890, 3480,
2947
2948      3480, 3480,  890, 1480, 1480, 1480, 1480, 3480, 3480, 1480,
2949      1480,  898,  898,  898, 3480, 3480, 3480,  898, 1487, 1487,
2950      1487, 1487, 3480, 3480, 1487, 1487, 1149, 1149, 1149, 1149,
2951      1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706, 1706,
2952      1706, 1706, 1706, 1706,  668,  668,  668, 3480, 3480, 3480,
2953       668,  704,  704,  704,  704, 3480,  704, 3480,  704, 1216,
2954      1216, 1216, 1216, 3480, 3480, 1216, 1216, 1222, 1222, 1222,
2955      1222, 3480, 3480, 1222, 1222,  716,  716,  716, 3480, 3480,
2956      3480,  716, 1231, 1231, 1231, 1231, 3480, 3480, 1231, 1231,
2957       722,  722,  722,  722, 3480,  722, 3480,  722, 1241, 1241,
2958
2959      1241, 1241, 3480, 3480, 1241, 1241, 1249, 1249, 1249, 1249,
2960      3480, 3480, 1249, 1249,  733,  733,  733,  733, 3480,  733,
2961      3480,  733, 1265, 1265, 1265, 1265, 3480, 3480, 1265, 1265,
2962       743,  743,  743, 3480, 3480, 3480,  743, 1292, 1292, 1292,
2963      1292, 3480, 3480, 1292, 1292, 1299, 1299, 1299, 1299, 3480,
2964      3480, 1299, 1299,  770,  770,  770, 3480, 3480, 3480,  770,
2965      1317, 1317, 1317, 1317, 3480, 3480, 1317, 1317, 1330, 1330,
2966      1330, 1330, 3480, 3480, 1330, 1330, 1335, 1335, 1335, 1335,
2967      3480, 3480, 1335, 1335,  791,  791,  791, 3480, 3480, 3480,
2968       791, 1346, 1346, 1346, 1346, 3480, 3480, 1346, 1346,  799,
2969
2970       799,  799, 3480, 3480, 3480,  799, 1354, 1354, 1354, 1354,
2971      3480, 3480, 1354, 1354, 1362, 1362, 1362, 1362, 3480, 3480,
2972      1362, 1362,  809,  809,  809, 3480, 3480, 3480,  809, 1368,
2973      1368, 1368, 1368, 3480, 3480, 1368, 1368,  814,  814,  814,
2974       814, 3480,  814, 3480,  814, 1374, 1374, 1374, 1374, 3480,
2975      3480, 1374, 1374,  819,  819,  819, 3480, 3480, 3480,  819,
2976      1389, 1389, 1389, 1389, 3480, 3480, 1389, 1389,  830,  830,
2977       830, 3480, 3480, 3480,  830, 1395, 1395, 1395, 1395, 3480,
2978      3480, 1395, 1395,  839,  839,  839, 3480, 3480, 3480,  839,
2979      1407, 1407, 1407, 1407, 3480, 3480, 1407, 1407, 1416, 1416,
2980
2981      1416, 1416, 3480, 3480, 1416, 1416,  853,  853,  853, 3480,
2982      3480, 3480,  853, 1432, 1432, 1432, 1432, 3480, 3480, 1432,
2983      1432,  864,  864,  864, 3480, 3480, 3480,  864, 1441, 1441,
2984      1441, 1441, 3480, 3480, 1441, 1441,  870,  870,  870, 3480,
2985      3480, 3480,  870, 1449, 1449, 1449, 1449, 3480, 3480, 1449,
2986      1449,  875,  875,  875,  875, 3480,  875, 3480,  875, 1459,
2987      1459, 1459, 1459, 3480, 3480, 1459, 1459,  882,  882,  882,
2988      3480, 3480, 3480,  882, 1469, 1469, 1469, 1469, 3480, 3480,
2989      1469, 1469,  890,  890,  890, 3480, 3480, 3480,  890, 1480,
2990      1480, 1480, 1480, 3480, 3480, 1480, 1480,  898,  898,  898,
2991
2992      3480, 3480, 3480,  898, 1487, 1487, 1487, 1487, 3480, 3480,
2993      1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2994      1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2995       668,  668,  668,  668, 3480,  668, 3480,  668,  704,  704,
2996       704, 3480, 3480, 3480,  704, 1216, 1216, 1216, 1216, 3480,
2997      3480, 1216, 1216, 1222, 1222, 1222, 1222, 3480, 3480, 1222,
2998      1222,  716,  716,  716, 3480, 3480, 3480,  716, 1231, 1231,
2999      1231, 1231, 3480, 3480, 1231, 1231, 1241, 1241, 1241, 1241,
3000      3480, 3480, 1241, 1241, 1249, 1249, 1249, 1249, 3480, 3480,
3001      1249, 1249,  733,  733,  733,  733, 3480,  733, 3480,  733,
3002
3003      1265, 1265, 1265, 1265, 3480, 3480, 1265, 1265,  743,  743,
3004       743, 3480, 3480, 3480,  743, 1292, 1292, 1292, 1292, 3480,
3005      3480, 1292, 1292, 1299, 1299, 1299, 1299, 3480, 3480, 1299,
3006      1299,  770,  770,  770, 3480, 3480, 3480,  770, 1330, 1330,
3007      1330, 1330, 3480, 3480, 1330, 1330, 1335, 1335, 1335, 1335,
3008      3480, 3480, 1335, 1335,  791,  791,  791, 3480, 3480, 3480,
3009       791,  799,  799,  799, 3480, 3480, 3480,  799, 1354, 1354,
3010      1354, 1354, 3480, 3480, 1354, 1354, 1362, 1362, 1362, 1362,
3011      3480, 3480, 1362, 1362,  809,  809,  809, 3480, 3480, 3480,
3012       809, 1368, 1368, 1368, 1368, 3480, 3480, 1368, 1368, 1374,
3013
3014      1374, 1374, 1374, 3480, 3480, 1374, 1374,  819,  819,  819,
3015      3480, 3480, 3480,  819,  830,  830,  830,  830, 3480,  830,
3016      3480,  830, 1395, 1395, 1395, 1395, 3480, 3480, 1395, 1395,
3017       839,  839,  839, 3480, 3480, 3480,  839, 1407, 1407, 1407,
3018      1407, 3480, 3480, 1407, 1407,  853,  853,  853, 3480, 3480,
3019      3480,  853, 1432, 1432, 1432, 1432, 3480, 3480, 1432, 1432,
3020       864,  864,  864, 3480, 3480, 3480,  864, 1441, 1441, 1441,
3021      1441, 3480, 3480, 1441, 1441,  870,  870,  870, 3480, 3480,
3022      3480,  870, 1449, 1449, 1449, 1449, 3480, 3480, 1449, 1449,
3023       875,  875,  875,  875, 3480,  875, 3480,  875, 1459, 1459,
3024
3025      1459, 1459, 3480, 3480, 1459, 1459,  882,  882,  882,  882,
3026      3480,  882, 3480,  882, 1469, 1469, 1469, 1469, 3480, 3480,
3027      1469, 1469,  890,  890,  890, 3480, 3480, 3480,  890, 1480,
3028      1480, 1480, 1480, 3480, 3480, 1480, 1480,  898,  898,  898,
3029       898, 3480,  898, 3480,  898, 1487, 1487, 1487, 1487, 3480,
3030      3480, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
3031      1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
3032      1706,  704,  704,  704, 3480, 3480, 3480,  704, 1216, 1216,
3033      1216, 1216, 3480, 3480, 1216, 1216, 1222, 1222, 1222, 1222,
3034      3480, 3480, 1222, 1222,  716,  716,  716, 3480, 3480, 3480,
3035
3036       716, 1231, 1231, 1231, 1231, 3480, 3480, 1231, 1231, 1241,
3037      1241, 1241, 1241, 3480, 3480, 1241, 1241, 1249, 1249, 1249,
3038      1249, 3480, 3480, 1249, 1249, 1265, 1265, 1265, 1265, 3480,
3039      3480, 1265, 1265,  743,  743,  743, 3480, 3480, 3480,  743,
3040      1292, 1292, 1292, 1292, 3480, 3480, 1292, 1292, 1299, 1299,
3041      1299, 1299, 3480, 3480, 1299, 1299,  770,  770,  770, 3480,
3042      3480, 3480,  770, 1330, 1330, 1330, 1330, 3480, 3480, 1330,
3043      1330, 1335, 1335, 1335, 1335, 3480, 3480, 1335, 1335,  791,
3044       791,  791, 3480, 3480, 3480,  791,  799,  799,  799, 3480,
3045      3480, 3480,  799, 1354, 1354, 1354, 1354, 3480, 3480, 1354,
3046
3047      1354, 1362, 1362, 1362, 1362, 3480, 3480, 1362, 1362,  809,
3048       809,  809, 3480, 3480, 3480,  809, 1374, 1374, 1374, 1374,
3049      3480, 3480, 1374, 1374,  819,  819,  819, 3480, 3480, 3480,
3050       819, 1395, 1395, 1395, 1395, 3480, 3480, 1395, 1395,  839,
3051       839,  839,  839, 3480,  839, 3480,  839, 1407, 1407, 1407,
3052      1407, 3480, 3480, 1407, 1407,  853,  853,  853, 3480, 3480,
3053      3480,  853, 1432, 1432, 1432, 1432, 3480, 3480, 1432, 1432,
3054       864,  864,  864, 3480, 3480, 3480,  864,  870,  870,  870,
3055      3480, 3480, 3480,  870, 1449, 1449, 1449, 1449, 3480, 3480,
3056      1449, 1449,  875,  875,  875, 3480, 3480, 3480,  875, 1459,
3057
3058      1459, 1459, 1459, 3480, 3480, 1459, 1459,  882,  882,  882,
3059      3480, 3480, 3480,  882, 1469, 1469, 1469, 1469, 3480, 3480,
3060      1469, 1469,  890,  890,  890, 3480, 3480, 3480,  890, 1487,
3061      1487, 1487, 1487, 3480, 3480, 1487, 1487, 1149, 1149, 1149,
3062      1149, 1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706,
3063      1706, 1706, 1706, 1706, 1706,  704,  704,  704, 3480, 3480,
3064      3480,  704, 1216, 1216, 1216, 1216, 3480, 3480, 1216, 1216,
3065      1222, 1222, 1222, 1222, 3480, 3480, 1222, 1222,  716,  716,
3066       716,  716, 3480,  716, 3480,  716, 1231, 1231, 1231, 1231,
3067      3480, 3480, 1231, 1231, 1241, 1241, 1241, 1241, 3480, 3480,
3068
3069      1241, 1241, 1249, 1249, 1249, 1249, 3480, 3480, 1249, 1249,
3070      1265, 1265, 1265, 1265, 3480, 3480, 1265, 1265,  743,  743,
3071       743, 3480, 3480, 3480,  743, 1292, 1292, 1292, 1292, 3480,
3072      3480, 1292, 1292,  770,  770,  770, 3480, 3480, 3480,  770,
3073      1330, 1330, 1330, 1330, 3480, 3480, 1330, 1330, 1335, 1335,
3074      1335, 1335, 3480, 3480, 1335, 1335,  791,  791,  791,  791,
3075      3480,  791, 3480,  791,  799,  799,  799,  799, 3480,  799,
3076      3480,  799, 1354, 1354, 1354, 1354, 3480, 3480, 1354, 1354,
3077      1362, 1362, 1362, 1362, 3480, 3480, 1362, 1362,  809,  809,
3078       809,  809, 3480,  809, 3480,  809, 1374, 1374, 1374, 1374,
3079
3080      3480, 3480, 1374, 1374,  819,  819,  819, 3480, 3480, 3480,
3081       819, 1395, 1395, 1395, 1395, 3480, 3480, 1395, 1395,  839,
3082       839,  839,  839, 3480,  839, 3480,  839, 1407, 1407, 1407,
3083      1407, 3480, 3480, 1407, 1407,  853,  853,  853,  853, 3480,
3084       853, 3480,  853,  864,  864,  864, 3480, 3480, 3480,  864,
3085       870,  870,  870, 3480, 3480, 3480,  870,  875,  875,  875,
3086      3480, 3480, 3480,  875, 1459, 1459, 1459, 1459, 3480, 3480,
3087      1459, 1459,  882,  882,  882, 3480, 3480, 3480,  882, 1469,
3088      1469, 1469, 1469, 3480, 3480, 1469, 1469,  890,  890,  890,
3089      3480, 3480, 3480,  890, 1487, 1487, 1487, 1487, 3480, 3480,
3090
3091      1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
3092      1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
3093       704,  704,  704, 3480, 3480, 3480,  704, 1222, 1222, 1222,
3094      1222, 3480, 3480, 1222, 1222, 1231, 1231, 1231, 1231, 3480,
3095      3480, 1231, 1231, 1241, 1241, 1241, 1241, 3480, 3480, 1241,
3096      1241, 1249, 1249, 1249, 1249, 3480, 3480, 1249, 1249,  743,
3097       743,  743, 3480, 3480, 3480,  743,  770,  770,  770, 3480,
3098      3480, 3480,  770, 1330, 1330, 1330, 1330, 3480, 3480, 1330,
3099      1330,  791,  791,  791, 3480, 3480, 3480,  791, 1354, 1354,
3100      1354, 1354, 3480, 3480, 1354, 1354, 1362, 1362, 1362, 1362,
3101
3102      3480, 3480, 1362, 1362, 3045, 3045, 3045, 3045, 3045, 3045,
3103      3045, 3045, 3045, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
3104      3046, 3046, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
3105      3107, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
3106      3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3155,
3107      3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155,  247, 3480,
3108      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3109      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3110      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3111      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3112
3113      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3114      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3115      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
3116      3480, 3480, 3480
3117     } ;
3118
3119 static yyconst flex_int16_t yy_chk[12534] =
3120     {   0,
3121         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3122         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3123         4,   10,  549,    5,    0,    9,    6,    0,   10,    7,
3124         8,    8,    8,  252,   11,   13,   13,   12,   14,   14,
3125        13,   13,  290,   14,   14,  253,    8,   17,   17,  252,
3126        13,   15,   15,   14,   15,  256,   15,   16,   16,  549,
3127        16,  253,   16,   18,   18,  363,   15,   21,   21,   21,
3128       363,  256,   16,   22,   22,   22,   23,   23,   23,   24,
3129        24,   24, 1071,   21,   25,   25,   25,  456, 1071,   22,
3130       662,   17,   23,  662,  290,   24,  250,  250,  250,  456,
3131
3132        25,  251,  251,  251,  255,  255,  255,   18,   19,   19,
3133        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3134        19,   19,   19,  573,   19,   19,   19,   19,   19,   26,
3135        26,   26,   27,   27,   27,   28,   28,   28,  573,   29,
3136        29,   29,   30,   30,   30,   26,  278,  295,   27,  299,
3137       374,   28,  304,   19,   19,   29,  299, 1290,   30,  275,
3138       275,  275,  278,  295,   19,  283,  283,  283,  303, 1290,
3139       266,  374,  303,   19,   20,   20,   20,   20,   20,   20,
3140        20,   20,   20,   20,   20,   20,   20,   20,   20, 1510,
3141        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
3142
3143        32,   33,   33,   33,  304,   34,   34,   34,   35,   35,
3144        35,   31,  266,  309,   32, 1511,  674,   33,  266,   20,
3145        20,   34,  319,  266,   35,   36,   36,   36,  266,  309,
3146        20,   37,   37,   37,   38,   38,   38, 1512,  319,   20,
3147       674,   36,   39,   39,   39, 1514,  331,   37,  653,  344,
3148        38,   40,   40,   40,  292,  292,  292,  339,   39,  301,
3149       301,  301,  331,  653,  302,  344, 1515,   40,   41,   41,
3150        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3151        41,   41,   41,  420,   41,   41,   41,   41,   41,   43,
3152        43,   43,   44,   44,   44,   45,   45,   45,  351,   46,
3153
3154        46,   46,   47,   47,   47,   43,  379,  682,   44,  339,
3155      1517,   45,  302,   41,   41,   46,  302,  356,   47,   41,
3156       379,  682,   41,  306,  306,  306,  313,  313,  313,  316,
3157       316,  316,  420,  356,   41,   42,   42,   42,   42,   42,
3158        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3159       351,   42,   42,   42,   42,   42,   48,   48,   48,   49,
3160        49,   49,   50,   50,   50,  377,   53,   53,   53,   54,
3161        54,   54,   48,  377,  371,   49,  314, 1518,   50,  377,
3162        42,   42,   53,  314,  326,   54,   42, 1519,  385,   42,
3163       371,  326,  314,  325,  325,  325,  328,  328,  328,  396,
3164
3165       326,   42,   51,   51,   51,   51,   51,   51,   51,   51,
3166        51,   51,   51,   51,   51,   51,   51,  687,   51,   51,
3167        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
3168        61,   61,  675,   62,   62,   62,   63,   63,   63,   57,
3169       385,  687,   58,  675, 1520,   61,  675,   51,   51,   62,
3170       390,  396,   63,   64,   64,   64,  337,  337,  337,  341,
3171       341,  341,  338,  349,  349,  349,  390,  772,  350,   64,
3172       772,   51,   52,   52,   52,   52,   52,   52,   52,   52,
3173        52,   52,   52,   52,   52,   52,   52,  698,   52,   52,
3174        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
3175
3176        67,   67,  894,   68,   68,   68,   71,   71,   71,   65,
3177       338,  698,   66, 1522,  338,   67,  350,   52,   52,   68,
3178       350, 1523,   71,   72,   72,   72,  353,  353,  353,  365,
3179       365,  365,  368,  368,  368,  383,  383,  383,  894,   72,
3180       932,   52,   55,   55,   55,   55,   55,   55,   55,   55,
3181        55,   55,   55,   55,   55,   55,   55,  932,   55,   55,
3182        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
3183        75,   75,  694,   76,   76,   76,   77,   77,   77,   73,
3184       401,  411,   74,  366,  427,   75,  694,   55,   55,   76,
3185       366,   55,   77,  387,  387,  387,  401,  411,   55,  366,
3186
3187       427,   55,   56,   56,   56,   56,   56,   56,   56,   56,
3188        56,   56,   56,   56,   56,   56,   56, 1524,   56,   56,
3189        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
3190        82,   82,  700,   85,   85,   85,   86,   86,   86,   78,
3191       417,  439,   81,  406,  417,   82,  700,   56,   56,   85,
3192       406,   56,   86,  394,  394,  394,  516,  439,   56,  406,
3193       516,   56,   59,   59,   59,   59,   59,   59,   59,   59,
3194        59,   59,   59,   59,   59,   59,   59,  701,   59,   59,
3195        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
3196        89,   89,  422,   90,   90,   90,   91,   91,   91,   87,
3197
3198       680,  701,   88, 1525,  680,   89,  380,   59,   59,   90,
3199       434,  451,   91,   59,  380,  446,   59,  434,  380,  380,
3200       398,  398,  398,  405,  405,  405,  434,  451,   59,   60,
3201        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
3202        60,   60,   60,   60,  422,   60,   60,   60,   60,   60,
3203        92,   92,   92,   95,   95,   95,   96,   96,   96,  460,
3204        97,   97,   97,   98,   98,   98,   92,  446, 1186,   95,
3205      1526, 1529,   96, 1532,   60,   60,   97,  465,  476,   98,
3206        60, 1186,  531,   60,  408,  408,  408,  419,  419,  419,
3207       424,  424,  424,  465,  476,   60,   69,   69,   69,   69,
3208
3209        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3210        69,  460,   69,   69,   69,   69,   69,   99,   99,   99,
3211       100,  100,  100,  101,  101,  101,  533,  102,  102,  102,
3212       105,  105,  105,   99,  531, 1533,  100, 1534, 1535,  101,
3213      1536,   69,   69,  102,  487,  498,  105,   69,  433,  433,
3214       433,  436,  436,  436,  443,  443,  443,  448,  448,  448,
3215       487,  498,   69,   70,   70,   70,   70,   70,   70,   70,
3216        70,   70,   70,   70,   70,   70,   70,   70,  533,   70,
3217        70,   70,   70,   70,  106,  106,  106,  109,  109,  109,
3218       110,  110,  110,  535,  111,  111,  111,  112,  112,  112,
3219
3220       106,  778, 1540,  109, 1541,  778,  110, 1545,   70,   70,
3221       111,  509,  525,  112,   70,  458,  458,  458,  462,  462,
3222       462,  470,  470,  470,  473,  473,  473,  509,  525,   70,
3223        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
3224        79,   79,   79,   79,   79,  535,   79,   79,   79,   79,
3225        79,  113,  113,  113,  114,  114,  114,  115,  115,  115,
3226       551,  116,  116,  116,  119,  119,  119,  113,  520,  540,
3227       114,  471,  556,  115, 1490,   79,   79,  116,  471,   79,
3228       119,  481,  481,  481,  520,  540,   79,  471,  556,   79,
3229       484,  484,  484,   79, 1490,   79,   79,   80,   80,   80,
3230
3231        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3232        80,   80,  551,   80,   80,   80,   80,   80,  120,  120,
3233       120,  123,  123,  123,  124,  124,  124,  520,  125,  125,
3234       125,  126,  126,  126,  120,  567,  581,  123,  482,  593,
3235       124, 1550,   80,   80,  125,  482,   80,  126,  492,  492,
3236       492,  567,  581,   80,  482,  593,   80,  495,  495,  495,
3237        80, 1551,   80,   80,   83,   83,   83,   83,   83,   83,
3238        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3239        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3240        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3241
3242        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3243        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3244        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3245        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
3246        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
3247        93,   93,   93, 1556,   93,   93,   93,   93,   93,  127,
3248       127,  127,  128,  128,  128,  129,  129,  129, 1557,  130,
3249       130,  130,  133,  133,  133,  127,  604,  618,  128,  584,
3250      1572,  129,  588,   93,   93,  130,  584,  613,  133,  503,
3251       503,  503,  604,  618,   93,   94,   94,   94,   94,   94,
3252
3253        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
3254      1573,   94,   94,   94,   94,   94,  134,  134,  134,  135,
3255       135,  135,  136,  136,  136, 1575,  137,  137,  137,  138,
3256       138,  138,  134,  626,  588,  135,  681, 1577,  136,  613,
3257        94,   94,  137,  681,  628,  138,  506,  506,  506,  681,
3258      1031,   94,  103,  103,  103,  103,  103,  103,  103,  103,
3259       103,  103,  103,  103,  103,  103,  103, 1031,  103,  103,
3260       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
3261       143,  143,  626,  144,  144,  144,  147,  147,  147,  139,
3262      1579, 1580,  140,  493,  504,  143,  628,  103,  103,  144,
3263
3264       493,  504,  147,  518,  518,  518,  522,  522,  522,  493,
3265       504, 1586, 1135,  103,  104,  104,  104,  104,  104,  104,
3266       104,  104,  104,  104,  104,  104,  104,  104,  104, 1135,
3267       104,  104,  104,  104,  104,  148,  148,  148,  151,  151,
3268       151,  152,  152,  152, 1587,  155,  155,  155,  156,  156,
3269       156,  148, 1588, 1589,  151,  519,  562,  152,  633,  104,
3270       104,  155,  519,  562,  156,  529,  529,  529,  537,  537,
3271       537,  519,  562,  288,  633,  104,  107,  107,  107,  107,
3272       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
3273       107, 1590,  107,  107,  107,  107,  107,  159,  159,  159,
3274
3275       160,  160,  160,  161,  161,  161,  571,  162,  162,  162,
3276       571,  288, 1591,  159,  571,  532,  160,  702, 1593,  161,
3277      1594,  107,  107,  162,  107,  288,  107,  288,  532,  288,
3278       532,  702,  107,  548,  548,  548,  553,  553,  553,  107,
3279       530, 1595,  107,  108,  108,  108,  108,  108,  108,  108,
3280       108,  108,  108,  108,  108,  108,  108,  108, 1596,  108,
3281       108,  108,  108,  108,  165,  165,  165,  166,  166,  166,
3282       167,  167,  167,  688,  168,  168,  168,  888, 1602,  530,
3283       165,  888,  644,  166,  688, 1603,  167,  688,  108,  108,
3284       168,  108,  530,  108,  530,  561,  561,  561,  644,  108,
3285
3286       564,  564,  564,  575,  575,  575,  108, 1606, 1610,  108,
3287       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3288       117,  117,  117,  117,  117,  587,  117,  117,  117,  117,
3289       117,  169,  169,  169,  170,  170,  170,  171,  171,  171,
3290       835,  172,  172,  172,  173,  173,  173,  169, 1611, 1618,
3291       170,  576,  685,  171,  835,  117,  117,  172,  576,  685,
3292       173,  117,  578,  578,  578,  685,  117,  576,  586,  586,
3293       586, 1619, 1620,  587,  590,  590,  590,  587,  117,  118,
3294       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3295       118,  118,  118,  118, 1623,  118,  118,  118,  118,  118,
3296
3297       174,  174,  174,  175,  175,  175,  176,  176,  176, 1629,
3298       177,  177,  177,  178,  178,  178,  174, 1633, 1635,  175,
3299       599,  693,  176, 1637,  118,  118,  177,  599,  693,  178,
3300       118,  598,  598,  598,  693,  118,  599,  601,  601,  601,
3301       611,  611,  611,  615,  615,  615, 1638,  118,  121,  121,
3302       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3303       121,  121,  121, 1643,  121,  121,  121,  121,  121,  179,
3304       179,  179,  180,  180,  180,  181,  181,  181,  833,  182,
3305       182,  182,  183,  183,  183,  179,  836, 1645,  180,  833,
3306      1646,  181,  833,  121,  121,  182, 1648,  836,  183, 1649,
3307
3308       836,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3309       122,  122,  122,  122,  122,  122,  122, 1650,  122,  122,
3310       122,  122,  122,  184,  184,  184,  187,  187,  187,  188,
3311       188,  188, 1651,  189,  189,  189,  190,  190,  190,  184,
3312      1152, 1191,  187, 1654, 1152,  188, 1655,  122,  122,  189,
3313      1656, 1658,  190, 1661, 1191,  122,  131,  131,  131,  131,
3314       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3315       131, 1670,  131,  131,  131,  131,  131,  191,  191,  191,
3316       192,  192,  192,  193,  193,  193, 1673,  194,  194,  194,
3317       197,  197,  197,  191,  905, 1681,  192,  638, 1399,  193,
3318
3319      1683,  131,  131,  194,  638,  131,  197,  625,  625,  625,
3320       905, 1399,  131,  638, 1685,  131,  630,  630,  630,  641,
3321       641,  641,  131,  132,  132,  132,  132,  132,  132,  132,
3322       132,  132,  132,  132,  132,  132,  132,  132, 1686,  132,
3323       132,  132,  132,  132,  198,  198,  198,  201,  201,  201,
3324       202,  202,  202, 1687,  205,  205,  205,  206,  206,  206,
3325       198, 1689, 1694,  201,  651, 1697,  202, 1698,  132,  132,
3326       205,  651,  132,  206,  650,  650,  650, 1700, 1706,  132,
3327       651, 1709,  132,  652,  652,  652,  661,  661,  661,  132,
3328       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3329
3330       141,  141,  141,  141,  141, 1712,  141,  141,  141,  141,
3331       141,  207,  207,  207,  208,  208,  208,  209,  209,  209,
3332      1713,  210,  210,  210,  211,  211,  211,  207, 1714, 1715,
3333       208,  699, 1716,  209, 1717,  141,  141,  210,  699, 1718,
3334       211,  141, 1719, 1721,  699,  661,  141,  142,  142,  142,
3335       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3336       142,  142, 1722,  142,  142,  142,  142,  142,  212,  212,
3337       212,  215,  215,  215,  216,  216,  216, 1724,  219,  219,
3338       219,  220,  220,  220,  212, 1725, 1727,  215,  834,  837,
3339       216, 1729,  142,  142,  219,  834,  837,  220,  142, 1730,
3340
3341      1732,  834,  837,  142,  145,  145,  145,  145,  145,  145,
3342       145,  145,  145,  145,  145,  145,  145,  145,  145, 1734,
3343       145,  145,  145,  145,  145,  221,  221,  221,  222,  222,
3344       222,  223,  223,  223, 1737,  224,  224,  224,  225,  225,
3345       225,  221,  995, 1738,  222, 1705, 1739,  223, 1740,  145,
3346       145,  224,  995, 1741,  225,  226,  226,  226, 1743,  995,
3347       145,  908,  908,  908, 1744,  908, 1169, 1169, 1169, 1748,
3348      1705,  226, 1756,  145,  146,  146,  146,  146,  146,  146,
3349       146,  146,  146,  146,  146,  146,  146,  146,  146, 1760,
3350       146,  146,  146,  146,  146,  229,  229,  229,  230,  230,
3351
3352       230,  231,  231,  231, 1761,  232,  232,  232,  233,  233,
3353       233,  229, 1773, 1777,  230, 1781, 1782,  231, 1784,  146,
3354       146,  232, 1785, 1786,  233,  234,  234,  234, 1789, 1791,
3355       146,  917,  917,  917, 1792,  917, 1800, 1801,  917, 1810,
3356      1813,  234, 1822,  146,  149,  149,  149,  149,  149,  149,
3357       149,  149,  149,  149,  149,  149,  149,  149,  149, 1823,
3358       149,  149,  149,  149,  149,  235,  235,  235,  236,  236,
3359       236, 1824,  243,  243,  243, 1827, 1829,  244,  244,  244,
3360      1837,  235,  239,  239,  236, 1844, 1848,  239,  243,  149,
3361       149,  240,  240,  244,  287, 1851,  240,  239, 1853,  444,
3362
3363       921,  921,  921, 1854,  287,  149,  240, 1856, 1857,  444,
3364       149,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3365       150,  150,  150,  150,  150,  150,  239,  150,  150,  150,
3366       150,  150,  287, 1858, 1859,  240, 1863, 1864,  444, 1865,
3367      1867,  669,  669,  669,  444, 1871,  287, 1875,  287, 1879,
3368       287,  444,  718,  718,  718,  444,  150,  150,  669,  734,
3369       734,  734, 1881, 1883,  921,  942,  942,  942, 1889,  718,
3370      1896, 1900,  150,  955,  955,  955,  734,  150,  153,  153,
3371       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3372       153,  153,  153, 1901,  153,  153,  153,  153,  153,  735,
3373
3374       735,  735,  746,  746,  746,  748,  748,  748,  763,  763,
3375       763,  773,  773,  773, 1903, 1915,  735, 1910, 1916,  746,
3376      1905, 1917,  748,  153,  153,  763, 1905, 1919,  773,  942,
3377      1905,  970,  970,  970, 1910,  970, 1905,  955,  970,  153,
3378      1911, 1043, 1043, 1043, 1920,  153,  154,  154,  154,  154,
3379       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3380       154, 1912,  154,  154,  154,  154,  154,  782,  782,  782,
3381       783,  783,  783,  793,  793,  793,  801,  801,  801,  805,
3382       805,  805, 1911, 1922,  782, 1923, 1918,  783, 1924, 1925,
3383       793,  154,  154,  801, 1912, 1927,  805,  984,  984,  984,
3384
3385      1928,  984, 1918, 1929,  984, 1043, 1933,  154, 1177, 1177,
3386      1177, 1935, 1936,  154,  157,  157,  157,  157,  157,  157,
3387       157,  157,  157,  157,  157,  157,  157,  157,  157, 1937,
3388       157,  157,  157,  157,  157,  823,  823,  823,  849,  849,
3389       849,  855,  855,  855,  872,  872,  872, 1939,  878,  878,
3390       878, 1940,  823, 1941, 1942,  849, 1938, 1945,  855,  157,
3391       157,  872,  157,  157,  157,  878, 1947,  986,  986,  986,
3392       157,  986, 1938,  157,  986, 1192, 1192, 1192, 1952, 1954,
3393       157,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3394       158,  158,  158,  158,  158,  158, 1959,  158,  158,  158,
3395
3396       158,  158,  884,  884,  884,  892,  892,  892,  916,  916,
3397       916,  958,  958,  958,  919,  919,  919, 1977, 1983,  884,
3398      1984, 1985,  892, 1989, 1990,  916,  158,  158,  958,  158,
3399       158,  158,  919, 1994,  997,  997,  997,  158,  997, 1997,
3400       158,  997, 1198, 1198, 1198, 1998, 2001,  158,  163,  163,
3401       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3402       163,  163,  163, 2002,  163,  163,  163,  163,  163,  920,
3403       920,  920,  960,  960,  960, 2009, 2010,  962,  962,  962,
3404       961,  961,  961,  959,  959,  959, 2011,  920, 2015,  960,
3405       966,  966,  966,  163,  163,  962, 2018,  961, 2020, 2022,
3406
3407       959, 2023, 2024, 1000, 1000, 1000,  920, 1000,  966, 2027,
3408      1000, 1506, 1506, 1506, 1513, 1513, 1513,  163,  164,  164,
3409       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3410       164,  164,  164,  959,  164,  164,  164,  164,  164,  961,
3411       963,  963,  963,  969,  969,  969, 2033, 2038,  959,  967,
3412       967,  967,  972,  972,  972,  974,  974,  974,  963, 2044,
3413       969, 2048, 2051,  164,  164, 2055, 2057,  967, 2058, 2059,
3414       972, 2060,  974, 2062, 1015, 1015, 1015,  963, 1015, 2068,
3415      2070, 1015, 1507, 1507, 1507, 2072, 2074,  164,  185,  185,
3416       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3417
3418       185,  185,  185, 2087,  185,  185,  185,  185,  185,  976,
3419       976,  976, 2088,  967,  977,  977,  977,  978,  978,  978,
3420       975,  975,  975,  979,  979,  979,  976, 2089, 1507,  973,
3421       973,  973,  977,  185,  185,  978, 2092,  975, 2093, 2095,
3422       979,  185, 2096,  185, 2097, 2099,  185,  973, 2110, 2111,
3423       185, 1516, 1516, 1516,  185,  186,  186,  186,  186,  186,
3424       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
3425       975,  186,  186,  186,  186,  186,  973,  980,  980,  980,
3426       981,  981,  981, 2112, 2094,  975, 2113, 2104,  978,  982,
3427       982,  982, 2094, 2104,  980,  983,  983,  983,  981, 2117,
3428
3429       186,  186,  985,  985,  985, 2119, 2105,  982,  186, 2120,
3430       186, 2121,  983,  186, 1521, 1521, 1521,  186, 2122,  985,
3431      2127,  186,  195,  195,  195,  195,  195,  195,  195,  195,
3432       195,  195,  195,  195,  195,  195,  195, 2105,  195,  195,
3433       195,  195,  195, 2106,  987,  987,  987,  992,  992,  992,
3434      1527, 1527, 1527, 2129, 2130,  988,  988,  988, 2098, 2131,
3435       982,  987,  989,  989,  989,  992, 2098,  195,  195,  990,
3436       990,  990,  988,  991,  991,  991, 2134, 2138,  195,  989,
3437      1025, 1025, 1025, 2145, 1025, 2147,  990, 1025, 2149, 2106,
3438       991,  195,  196,  196,  196,  196,  196,  196,  196,  196,
3439
3440       196,  196,  196,  196,  196,  196,  196,  988,  196,  196,
3441       196,  196,  196,  993,  993,  993, 2170,  989, 2174, 2175,
3442       990, 2176,  996,  996,  996,  991,  999,  999,  999, 2182,
3443      2183,  993, 1001, 1001, 1001, 2184, 2188,  196,  196,  996,
3444      1012, 1012, 1012,  999, 1509, 1509, 1509, 2192,  196, 1001,
3445      1035, 1035, 1035, 2193, 1035, 2199, 2200, 1035, 1012, 2203,
3446       993,  196,  199,  199,  199,  199,  199,  199,  199,  199,
3447       199,  199,  199,  199,  199,  199,  199, 2206,  199,  199,
3448       199,  199,  199, 1014, 1014, 1014, 1013, 1013, 1013, 2207,
3449      1509, 1016, 1016, 1016, 1017, 1017, 1017, 1019, 1019, 1019,
3450
3451      1014, 1020, 1020, 1020, 1013, 2197, 2198,  199,  199, 1016,
3452      2210, 2211, 1017, 2197, 2198, 1019,  199, 2214,  199, 1020,
3453      2221, 2225,  199, 1531, 1531, 1531, 2226,  199,  199,  200,
3454       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
3455       200,  200,  200,  200, 1013,  200,  200,  200,  200,  200,
3456      1024, 1024, 1024, 2208, 2209, 1017, 2227, 2239, 1029, 1029,
3457      1029, 2208, 2209, 1020, 1030, 1030, 1030, 1024, 2240, 1034,
3458      1034, 1034, 2243, 2245,  200,  200, 1029, 1037, 1037, 1037,
3459      2248, 1037, 1030,  200, 1037,  200, 1034, 2255, 2262,  200,
3460      1720, 1720, 1720, 2264,  200,  200,  203,  203,  203,  203,
3461
3462       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3463       203, 2265,  203,  203,  203,  203,  203, 1036, 1036, 1036,
3464      1038, 1038, 1038, 1906, 2266, 1030, 1039, 1039, 1039, 1906,
3465      1041, 1041, 1041, 1906, 1036, 1042, 1042, 1042, 1038, 1906,
3466      2271,  203,  203, 2272, 1039, 2273, 2274,  203, 1041, 2275,
3467      1046, 1046, 1046, 1042, 1046, 2276, 2277, 1046, 2278, 1528,
3468      1528, 1528,  203,  204,  204,  204,  204,  204,  204,  204,
3469       204,  204,  204,  204,  204,  204,  204,  204, 2279,  204,
3470       204,  204,  204,  204, 1045, 1045, 1045, 1039, 1050, 1050,
3471      1050, 2280, 1055, 1055, 1055, 1042, 2291, 1051, 1051, 1051,
3472
3473      2292, 1045, 1053, 1053, 1053, 1528, 1050, 2295,  204,  204,
3474      1055, 1057, 1057, 1057,  204, 1051, 1054, 1054, 1054, 1053,
3475      1054, 2298, 2303, 1054, 1530, 1530, 1530, 2304, 1057,  204,
3476       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
3477       213,  213,  213,  213,  213, 2307,  213,  213,  213,  213,
3478       213, 2308, 1051, 1056, 1056, 1056, 1058, 1058, 1058, 2283,
3479      1058, 2311, 2314, 1058, 1060, 1060, 1060, 1061, 1061, 1061,
3480      1530, 1056, 1723, 1723, 1723,  213,  213, 1074, 1074, 1074,
3481       213, 1074, 1060, 2315, 1074, 1061,  213,  214,  214,  214,
3482       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3483
3484       214,  214, 2283,  214,  214,  214,  214,  214, 1056, 1064,
3485      1064, 1064, 1065, 1065, 1065, 2316, 1068, 1068, 1068, 2331,
3486      1069, 1069, 1069, 1073, 1073, 1073, 2332, 1064, 1061, 2333,
3487      1065, 2334,  214,  214, 1068, 2339, 2284,  214, 1069, 2340,
3488      1073, 2334, 2341,  214,  217,  217,  217,  217,  217,  217,
3489       217,  217,  217,  217,  217,  217,  217,  217,  217, 2347,
3490       217,  217,  217,  217,  217, 1075, 1075, 1075, 1078, 1078,
3491      1078, 2348, 2349, 1065, 2350, 1082, 1082, 1082, 1083, 1083,
3492      1083, 2351, 1075, 2284, 2352, 1069, 1078, 2353, 2363,  217,
3493       217, 2364,  217, 1082,  217, 2365, 1083, 1096, 1096, 1096,
3494
3495       217, 1096, 2366, 2373, 1096, 1726, 1726, 1726, 1547, 1547,
3496      1547,  217,  218,  218,  218,  218,  218,  218,  218,  218,
3497       218,  218,  218,  218,  218,  218,  218, 2374,  218,  218,
3498       218,  218,  218, 1095, 1095, 1095, 1083, 1092, 1092, 1092,
3499      2375, 1093, 1093, 1093, 2396, 1098, 1098, 1098, 2397, 2403,
3500      1095, 1079, 1079, 1079, 1547, 1092, 2408,  218,  218, 1093,
3501       218, 2410,  218, 1098, 1728, 1728, 1728, 2411,  218, 1079,
3502      1102, 1102, 1102, 2416, 1102, 2417, 2418, 1102, 2419,  218,
3503       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
3504       227,  227,  227,  227,  227, 2420,  227,  227,  227,  227,
3505
3506       227, 2421, 1079, 2422, 2423, 1093, 1099, 1099, 1099, 2424,
3507      1101, 1101, 1101, 2425, 1103, 1103, 1103, 1105, 1105, 1105,
3508      1109, 1109, 1109, 2430, 1099,  227,  227, 1101, 2431, 2433,
3509       227, 1103, 2434, 2435, 1105, 2436,  227, 2428, 1109, 2438,
3510       227, 1731, 1731, 1731, 2429, 2439,  227,  228,  228,  228,
3511       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
3512       228,  228, 2442,  228,  228,  228,  228,  228, 2443, 2428,
3513      1099, 1111, 1111, 1111, 1112, 1112, 1112, 1113, 1113, 1113,
3514      2432, 2429, 1110, 1110, 1110, 1117, 1117, 1117, 1111, 2432,
3515      2437, 1112,  228,  228, 1113, 2446, 2449,  228, 2450, 2437,
3516
3517      1110, 2452, 1117,  228, 1118, 1118, 1118,  228, 1118, 2453,
3518      2455, 1118, 2456,  228,  237,  237,  237,  237,  237,  237,
3519       237,  237,  237,  237,  237,  237,  237,  237,  237, 1110,
3520       237,  237,  237,  237,  237, 2457, 1113, 1114, 1114, 1114,
3521      1115, 1115, 1115, 1119, 1119, 1119, 1120, 1120, 1120, 1123,
3522      1123, 1123, 1129, 1129, 1129, 1114, 2469, 2470, 1115,  237,
3523       237, 1119, 2471, 2472, 1120, 2473, 1123,  237, 2476, 1129,
3524       237, 1733, 1733, 1733, 1736, 1736, 1736,  237,  238,  238,
3525       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3526       238,  238,  238, 2478,  238,  238,  238,  238,  238, 2484,
3527
3528      2480, 1115, 1124, 1124, 1124, 2485, 1124, 1120, 2481, 1124,
3529      1126, 1126, 1126, 2480, 1127, 1127, 1127, 2486, 1130, 1130,
3530      1130, 2481, 1130,  238,  238, 1130, 2488, 2497, 1126, 2498,
3531      2499,  238, 1127, 2500,  238, 1733, 1735, 1735, 1735, 2502,
3532      2512,  238,  241,  241,  241,  241,  241,  241,  241,  241,
3533       241,  241,  241,  241,  241,  241,  241, 2513,  241,  241,
3534       241,  241,  241, 1133, 1133, 1133, 1134, 1134, 1134, 1137,
3535      1137, 1137, 1138, 1138, 1138, 2530, 1138, 2531, 2532, 1138,
3536      1127, 1133, 1735, 2535, 1134, 2537, 1137,  241,  241, 1141,
3537      1141, 1141, 2538, 2539,  241, 1161, 1161, 1161, 2540, 1161,
3538
3539       241, 2541, 1161, 1742, 1742, 1742, 2542, 1141, 2543,  241,
3540       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
3541       242,  242,  242,  242,  242, 2544,  242,  242,  242,  242,
3542       242, 2545, 1134, 1142, 1142, 1142, 1147, 1147, 1147, 1148,
3543      1148, 1148, 1165, 1165, 1165, 1166, 1166, 1166, 1168, 1168,
3544      1168, 1142, 2546, 2547, 1147,  242,  242, 1148, 2548, 2553,
3545      1165, 2554,  242, 1166, 2555, 2551, 1168, 2556,  242, 1208,
3546      1208, 1208, 1209, 1209, 1209, 2557, 1209,  242,  284, 1209,
3547      2558, 1212, 1212, 1212, 2559,  284, 1208, 2560, 2561, 1213,
3548      1213, 1213, 2550, 1213,  284,  284, 1213, 1142, 1212, 1215,
3549
3550      1215, 1215, 2551, 1148, 1234, 1234, 1234, 1216, 1216, 1216,
3551      1238, 1238, 1238, 1218, 1218, 1218, 2562, 1215, 1221, 1221,
3552      1221, 1234,  284,  284,  284, 1216, 2563, 1238,  284,  284,
3553       284, 1218, 2550,  284,  284, 2564, 1221,  284, 2552,  284,
3554       284,  284,  286, 1222, 1222, 1222, 1224, 1224, 1224, 1226,
3555      1226, 1226, 2565, 1226, 2566, 2569, 1226, 2570,  286,  286,
3556      2571, 1222, 2572, 2574, 1224, 1230, 1230, 1230, 1244, 1244,
3557      1244, 1231, 1231, 1231, 1246, 1246, 1246, 1218, 1233, 1233,
3558      1233, 2552, 2575, 1230, 2586, 1244,  286,  286,  286, 1231,
3559      2587, 1246,  286,  286,  286, 2588, 1233,  286,  286, 1224,
3560
3561      2590,  286, 2594,  286,  286,  286, 1235, 1235, 1235, 2597,
3562      1235, 2599, 2601, 1235, 1239, 1239, 1239, 2602, 1239, 2612,
3563      2613, 1239, 1240, 1240, 1240, 2614, 2598, 1233, 1241, 1241,
3564      1241, 1243, 1243, 1243, 1245, 1245, 1245, 2598, 1245, 2630,
3565      1240, 1245, 2649, 1247, 1247, 1247, 1241, 1247, 2650, 1243,
3566      1247, 1248, 1248, 1248, 1249, 1249, 1249, 1251, 1251, 1251,
3567      1252, 1252, 1252, 2600, 1252, 2654, 2655, 1252, 2656, 1248,
3568      2657, 2658, 1249, 2659, 2600, 1251, 1255, 1255, 1255, 2660,
3569      1255, 2661, 2662, 1255, 1258, 1258, 1258, 1259, 1259, 1259,
3570      2663, 1259, 2668, 1243, 1259, 1264, 1264, 1264, 1265, 1265,
3571
3572      1265, 1258, 1267, 1267, 1267, 1272, 1272, 1272, 2669, 1272,
3573      2670, 2665, 1272, 1264, 2671, 2672, 1265, 2644, 2666, 1251,
3574      1267, 1275, 1275, 1275, 1276, 1276, 1276, 2644, 1276, 2673,
3575      2644, 1276, 1279, 1279, 1279, 1280, 1280, 1280, 1275, 1280,
3576      2665, 2674, 1280, 1291, 1291, 1291, 1292, 1292, 1292, 1279,
3577      1267, 1294, 1294, 1294, 2675, 1295, 1295, 1295, 2676, 1295,
3578      2666, 1291, 1295, 2677, 1292, 1298, 1298, 1298, 2678, 1294,
3579      1299, 1299, 1299, 1301, 1301, 1301, 1302, 1302, 1302, 1303,
3580      1303, 1303, 2679, 1298, 1304, 1304, 1304, 2680, 1299, 2667,
3581      2683, 1301, 2684, 1302, 1306, 1306, 1306, 1303, 1309, 1309,
3582
3583      1309, 2620, 1304, 1310, 1310, 1310, 2685, 1310, 2687, 2688,
3584      1310, 2620, 1306, 2693, 2694, 1309, 2699, 2620, 1294, 1316,
3585      1316, 1316, 1317, 1317, 1317, 1319, 1319, 1319, 1322, 1322,
3586      1322, 2667, 2703, 1301, 1323, 1323, 1323, 1316, 1323, 2645,
3587      1317, 1323, 2704, 1319, 2705, 1322, 1326, 1326, 1326, 2645,
3588      1326, 2706, 2645, 1326, 1329, 1329, 1329, 1330, 1330, 1330,
3589      2707, 1306, 1332, 1332, 1332, 1333, 1333, 1333, 1334, 1334,
3590      1334, 2708, 1329, 2709, 2718, 1330, 1335, 1335, 1335, 2720,
3591      1332, 2724, 1333, 1337, 1337, 1337, 1334, 1345, 1345, 1345,
3592      1319, 1339, 1339, 1339, 1335, 1339, 2725, 2726, 1339, 2727,
3593
3594      2728, 1337, 1346, 1346, 1346, 1345, 1348, 1348, 1348, 1350,
3595      1350, 1350, 2729, 1350, 2731, 2621, 1350, 1353, 1353, 1353,
3596      1346, 1354, 1354, 1354, 1348, 2621, 2743, 1332, 1356, 1356,
3597      1356, 2621, 1337, 2744, 2746, 1353, 1357, 1357, 1357, 1354,
3598      1357, 2747, 2760, 1357, 2761, 2762, 1356, 1361, 1361, 1361,
3599      1362, 1362, 1362, 1364, 1364, 1364, 1365, 1365, 1365, 1366,
3600      1366, 1366, 1367, 1367, 1367, 1361, 1348, 2763, 1362, 2765,
3601      2766, 1364, 2767, 1365, 2738, 2768, 1366, 1368, 1368, 1368,
3602      1367, 1370, 1370, 1370, 1371, 1371, 1371, 2738, 1356, 2739,
3603      1372, 1372, 1372, 2772, 2774, 1368, 1373, 1373, 1373, 1370,
3604
3605      2775, 1371, 2739, 1364, 2776, 2777, 1366, 1372, 1374, 1374,
3606      1374, 1376, 1376, 1376, 1373, 1381, 1381, 1381, 1372, 1381,
3607      2745, 2771, 1381, 1384, 1384, 1384, 1374, 2778, 2772, 1376,
3608      1385, 1385, 1385, 2745, 1385, 2779, 2780, 1385, 2781, 2782,
3609      1384, 1388, 1388, 1388, 1389, 1389, 1389, 2748, 1370, 1391,
3610      1391, 1391, 1394, 1394, 1394, 1395, 1395, 1395, 2783, 1388,
3611      2748, 2784, 1389, 1397, 1397, 1397, 2785, 1391, 2786, 2771,
3612      1394, 2789, 2790, 1395, 1402, 1402, 1402, 1376, 1406, 1406,
3613      1406, 1397, 2793, 1407, 1407, 1407, 1409, 1409, 1409, 2799,
3614      2800, 1402, 2795, 1415, 1415, 1415, 1406, 1416, 1416, 1416,
3615
3616      1391, 1407, 2795, 2796, 1409, 1411, 1411, 1411, 2808, 1411,
3617      1397, 1415, 1411, 2796, 2809, 1416, 1418, 1418, 1418, 1420,
3618      1420, 1420, 2810, 1420, 2811, 2812, 1420, 1423, 1423, 1423,
3619      2813, 1424, 1424, 1424, 1418, 1424, 2814, 2815, 1424, 1425,
3620      1425, 1425, 2818, 2822, 1423, 2825, 2826, 1409, 1426, 1426,
3621      1426, 1427, 1427, 1427, 2827, 1427, 1425, 2828, 1427, 1429,
3622      1429, 1429, 1431, 1431, 1431, 1426, 1432, 1432, 1432, 1434,
3623      1434, 1434, 1435, 1435, 1435, 2829, 1429, 1418, 2830, 2831,
3624      1431, 1436, 1436, 1436, 1432, 1436, 2834, 1434, 1436, 1435,
3625      1437, 1437, 1437, 1438, 1438, 1438, 2838, 1438, 2839, 2840,
3626
3627      1438, 1440, 1440, 1440, 1441, 1441, 1441, 1437, 1443, 1443,
3628      1443, 1445, 1445, 1445, 2841, 1445, 2842, 2843, 1445, 1440,
3629      2844, 2845, 1441, 1448, 1448, 1448, 1443, 2846, 2847, 1434,
3630      1449, 1449, 1449, 1451, 1451, 1451, 1454, 1454, 1454, 2848,
3631      1454, 1448, 2849, 1454, 1458, 1458, 1458, 2865, 1449, 2866,
3632      2867, 1451, 1459, 1459, 1459, 1461, 1461, 1461, 2868, 1463,
3633      1463, 1463, 1458, 1463, 2852, 2869, 1463, 1467, 1467, 1467,
3634      1459, 2870, 2853, 1461, 2852, 1443, 1468, 1468, 1468, 1469,
3635      1469, 1469, 2853, 2871, 1467, 1471, 1471, 1471, 1473, 1473,
3636      1473, 1474, 1474, 1474, 1468, 1474, 2872, 1469, 1474, 2878,
3637
3638      1451, 2879, 2874, 1471, 2880, 1473, 1477, 1477, 1477, 1479,
3639      1479, 1479, 1480, 1480, 1480, 2883, 1461, 1482, 1482, 1482,
3640      1484, 1484, 1484, 1477, 1486, 1486, 1486, 1479, 2884, 2885,
3641      1480, 1487, 1487, 1487, 2886, 1482, 2874, 1484, 1489, 1489,
3642      1489, 2889, 1486, 1491, 1491, 1491, 1471, 2896, 2897, 1487,
3643      1497, 1497, 1497, 1537, 1537, 1537, 1489, 1537, 2898, 2899,
3644      1537, 1491, 1491, 2903, 1482, 2904, 2912, 1477, 1497, 1542,
3645      1542, 1542, 2913, 1542, 2914, 2915, 1542, 1546, 1546, 1546,
3646      1548, 1548, 1548, 2916, 2917, 1489, 1549, 1549, 1549, 1552,
3647      1552, 1552, 1553, 1553, 1553, 1546, 1553, 1548, 2918, 1553,
3648
3649      2922, 1558, 1558, 1558, 1549, 1558, 2928, 1552, 1558, 1561,
3650      1561, 1561, 1562, 1562, 1562, 2929, 1562, 2931, 2932, 1562,
3651      2934, 1565, 1565, 1565, 2935, 1565, 2936, 1561, 1565, 1568,
3652      1568, 1568, 1569, 1569, 1569, 2937, 1569, 2938, 1546, 1569,
3653      1574, 1574, 1574, 1576, 1576, 1576, 1552, 1568, 1578, 1578,
3654      1578, 2939, 2940, 1549, 2941, 2942, 1561, 1574, 1581, 1581,
3655      1581, 1576, 1582, 1582, 1582, 1578, 1582, 2943, 2944, 1582,
3656      1583, 1583, 1583, 2945, 1583, 1581, 1568, 1583, 1592, 1592,
3657      1592, 1597, 1597, 1597, 1598, 1598, 1598, 1599, 1599, 1599,
3658      1600, 1600, 1600, 2946, 1600, 1592, 2949, 1600, 1576, 1597,
3659
3660      2950, 2951, 1598, 2952, 1599, 1601, 1601, 1601, 1604, 1604,
3661      1604, 1605, 1605, 1605, 2960, 1605, 2961, 2963, 1605, 2964,
3662      1607, 1607, 1607, 1601, 2965, 1604, 1608, 1608, 1608, 1609,
3663      1609, 1609, 1612, 1612, 1612, 2967, 1598, 1607, 1613, 1613,
3664      1613, 2975, 1613, 1608, 2976, 1613, 1597, 1609, 2978, 1612,
3665      1614, 1614, 1614, 1615, 1615, 1615, 1616, 1616, 1616, 2979,
3666      1616, 2980, 2982, 1616, 1617, 1617, 1617, 2969, 1614, 2987,
3667      1615, 2988, 1608, 1621, 1621, 1621, 1622, 1622, 1622, 1624,
3668      1624, 1624, 1617, 1625, 1625, 1625, 1626, 1626, 1626, 2989,
3669      1621, 1627, 1627, 1627, 1622, 1609, 2990, 1624, 2992, 2993,
3670
3671      1625, 1631, 1631, 1631, 1626, 1628, 1628, 1628, 1627, 1628,
3672      2969, 2997, 1628, 1630, 1630, 1630, 1614, 2999, 1631, 1621,
3673      3000, 3002, 1617, 1632, 1632, 1632, 3003, 1632, 3008, 3009,
3674      1632, 1630, 3010, 1622, 3011, 3012, 1624, 1626, 1634, 1634,
3675      1634, 1636, 1636, 1636, 1639, 1639, 1639, 3013, 1639, 3014,
3676      3015, 1639, 1642, 1642, 1642, 3016, 1634, 3017, 1636, 1644,
3677      1644, 1644, 1647, 1647, 1647, 1652, 1652, 1652, 3018, 1642,
3678      1657, 1657, 1657, 1630, 1653, 1653, 1653, 1644, 1653, 3019,
3679      1647, 1653, 1652, 1659, 1659, 1659, 3020, 3021, 1657, 1660,
3680      1660, 1660, 3022, 3023, 1662, 1662, 1662, 3024, 1662, 1634,
3681
3682      1659, 1662, 3028, 1665, 1665, 1665, 3029, 1660, 1666, 1666,
3683      1666, 3030, 1666, 3031, 3034, 1666, 1671, 1671, 1671, 1657,
3684      1665, 3035, 3036, 1644, 3037, 1667, 1667, 1667, 1647, 1667,
3685      3038, 3039, 1667, 1671, 1672, 1672, 1672, 3044, 1672, 3041,
3686      3047, 1672, 1674, 1674, 1674, 1675, 1675, 1675, 3044, 1675,
3687      3048, 1660, 1675, 3049, 1678, 1678, 1678, 3051, 1678, 3052,
3688      1674, 1678, 1682, 1682, 1682, 1684, 1684, 1684, 1688, 1688,
3689      1688, 1690, 1690, 1690, 1691, 1691, 1691, 1692, 1692, 1692,
3690      1682, 1692, 3047, 1684, 1692, 3041, 1688, 3054, 1690, 3056,
3691      3043, 1691, 1674, 1693, 1693, 1693, 1695, 1695, 1695, 1696,
3692
3693      1696, 1696, 3059, 1696, 3043, 3060, 1696, 1699, 1699, 1699,
3694      3050, 1693, 3062, 1695, 3066, 3063, 1701, 1701, 1701, 1702,
3695      1702, 1702, 3068, 1702, 3062, 1699, 1702, 3063, 1682, 3070,
3696      3081, 1684, 1688, 1701, 1703, 1703, 1703, 1704, 1704, 1704,
3697      1707, 1707, 1707, 1745, 1745, 1745, 1746, 1746, 1746, 3050,
3698      3083, 1703, 1747, 1747, 1747, 1704, 1699, 1693, 1707, 1749,
3699      1749, 1749, 1750, 1750, 1750, 1751, 1751, 1751, 1752, 1752,
3700      1752, 1753, 1753, 1753, 3085, 1754, 1754, 1754, 1755, 1755,
3701      1755, 1757, 1757, 1757, 3086, 1752, 1704, 3075, 1753, 3089,
3702      3090, 1707, 1754, 1758, 1758, 1758, 1755, 1758, 1757, 3075,
3703
3704      1758, 1759, 1759, 1759, 3093, 1749, 3076, 3095, 1707, 1762,
3705      1762, 1762, 3097, 1763, 1763, 1763, 1747, 3099, 3076, 1759,
3706      1764, 1764, 1764, 1765, 1765, 1765, 1750, 1762, 3100, 1751,
3707      1763, 1766, 1766, 1766, 1767, 1767, 1767, 1764, 3102, 1754,
3708      3103, 1765, 1768, 1768, 1768, 1755, 1769, 1769, 1769, 1766,
3709      3109, 1767, 3106, 3111, 1770, 1770, 1770, 1762, 1770, 1768,
3710      1759, 1770, 3107, 1769, 1771, 1771, 1771, 1772, 1772, 1772,
3711      1774, 1774, 1774, 1775, 1775, 1775, 3107, 1775, 3108, 3108,
3712      1775, 1771, 1776, 1776, 1776, 1772, 3126, 1774, 1765, 3128,
3713      1778, 1778, 1778, 3106, 1778, 3115, 1766, 1778, 3114, 1776,
3714
3715      1768, 1783, 1783, 1783, 1787, 1787, 1787, 1788, 1788, 1788,
3716      3119, 1788, 3114, 3115, 1788, 1790, 1790, 1790, 1783, 3118,
3717      3110, 1787, 1793, 1793, 1793, 3119, 3125, 1772, 1794, 1794,
3718      1794, 3110, 1790, 3118, 1795, 1795, 1795, 3132, 1795, 3127,
3719      1793, 1795, 1798, 1798, 1798, 3125, 1794, 1802, 1802, 1802,
3720      3133, 1802, 3136, 3138, 1802, 1805, 1805, 1805, 3127, 3140,
3721      1798, 1806, 1806, 1806, 1807, 1807, 1807, 3135, 1807, 3141,
3722      3137, 1807, 1805, 1808, 1808, 1808, 3142, 3143, 1806, 3144,
3723      1809, 1809, 1809, 1794, 1809, 3145, 3135, 1809, 1793, 3137,
3724      1808, 1811, 1811, 1811, 1812, 1812, 1812, 1814, 1814, 1814,
3725
3726      3153, 1814, 3154, 3155, 1814, 1817, 1817, 1817, 3157, 1811,
3727      1818, 1818, 1818, 3158, 1818, 3160, 3161, 1818, 1821, 1821,
3728      1821, 3162, 3164, 1817, 1825, 1825, 1825, 1826, 1826, 1826,
3729      3169, 1826, 3170, 3171, 1826, 3172, 1821, 1828, 1828, 1828,
3730      3173, 1825, 1830, 1830, 1830, 1831, 1831, 1831, 1833, 1833,
3731      1833, 1817, 1832, 1832, 1832, 1828, 1832, 3174, 3175, 1832,
3732      1830, 3176, 1831, 1834, 1834, 1834, 1833, 1834, 3179, 3180,
3733      1834, 1838, 1838, 1838, 1839, 1839, 1839, 3181, 1839, 3182,
3734      3183, 1839, 1842, 1842, 1842, 1821, 3184, 3187, 1830, 1838,
3735      1843, 1843, 1843, 1845, 1845, 1845, 1846, 1846, 1846, 1842,
3736
3737      1846, 3188, 3189, 1846, 3190, 3191, 1833, 3192, 1843, 3194,
3738      1845, 1847, 1847, 1847, 1849, 1849, 1849, 1850, 1850, 1850,
3739      3195, 1850, 3196, 3197, 1850, 1852, 1852, 1852, 1847, 3198,
3740      3199, 1849, 1855, 1855, 1855, 3200, 3207, 1838, 1860, 1860,
3741      1860, 3208, 1860, 1852, 3209, 1860, 1866, 1866, 1866, 3205,
3742      1855, 1868, 1868, 1868, 1843, 1869, 1869, 1869, 3210, 1869,
3743      3206, 3205, 1869, 3211, 1866, 1870, 1870, 1870, 1868, 1872,
3744      1872, 1872, 3206, 1872, 3212, 3218, 1872, 3219, 1876, 1876,
3745      1876, 3220, 1876, 1870, 1855, 1876, 1880, 1880, 1880, 1882,
3746      1882, 1882, 1884, 1884, 1884, 3221, 3222, 1866, 1885, 1885,
3747
3748      1885, 1886, 1886, 1886, 1880, 3223, 3227, 1882, 3228, 3230,
3749      1884, 1887, 1887, 1887, 3232, 1885, 3235, 3233, 1886, 1888,
3750      1888, 1888, 1890, 1890, 1890, 1891, 1891, 1891, 1887, 1891,
3751      3236, 3237, 1891, 3238, 1892, 1892, 1892, 1888, 1892, 1890,
3752      1882, 1892, 3233, 1884, 1895, 1895, 1895, 1880, 1897, 1897,
3753      1897, 3239, 1897, 3240, 3241, 1897, 1902, 1902, 1902, 1907,
3754      1907, 1907, 1895, 1914, 1914, 1914, 1888, 1886, 1904, 1904,
3755      1904, 3242, 1904, 3243, 1902, 1904, 1907, 1908, 1908, 1908,
3756      1914, 1908, 3244, 3245, 1908, 1909, 1909, 1909, 1921, 1921,
3757      1921, 1895, 1926, 1926, 1926, 1930, 1930, 1930, 1931, 1931,
3758
3759      1931, 3246, 3247, 1909, 1932, 1932, 1932, 1902, 1934, 1934,
3760      1934, 1943, 1943, 1943, 1944, 1944, 1944, 1946, 1946, 1946,
3761      1948, 1948, 1948, 1949, 1949, 1949, 3248, 1949, 3249, 3250,
3762      1949, 1950, 1950, 1950, 3251, 3252, 1909, 1948, 1951, 1951,
3763      1951, 3253, 1951, 3254, 3255, 1951, 3256, 3259, 1950, 1953,
3764      1953, 1953, 1955, 1955, 1955, 3260, 1955, 3262, 3263, 1955,
3765      1958, 1958, 1958, 1960, 1960, 1960, 3264, 1953, 1961, 1961,
3766      1961, 1962, 1962, 1962, 3265, 1963, 1963, 1963, 1958, 1963,
3767      1960, 3266, 1963, 1964, 1964, 1964, 1961, 3267, 1962, 1965,
3768      1965, 1965, 3268, 1965, 3261, 3269, 1965, 1968, 1968, 1968,
3769
3770      1964, 1966, 1966, 1966, 1967, 1967, 1967, 1970, 1970, 1970,
3771      3270, 1958, 3271, 3261, 1968, 1953, 1969, 1969, 1969, 1966,
3772      1969, 3272, 1967, 1969, 1970, 3273, 1971, 1971, 1971, 1961,
3773      1971, 3274, 3275, 1971, 1974, 1974, 1974, 1975, 1975, 1975,
3774      3276, 1975, 3277, 3278, 1975, 1976, 1976, 1976, 1978, 1978,
3775      1978, 1974, 1978, 3279, 3280, 1978, 1981, 1981, 1981, 3281,
3776      1982, 1982, 1982, 1976, 1982, 3282, 1966, 1982, 3283, 1967,
3777      1986, 1986, 1986, 1981, 1987, 1987, 1987, 3286, 1987, 3287,
3778      3288, 1987, 1988, 1988, 1988, 3289, 3290, 1986, 1991, 1991,
3779      1991, 3291, 1991, 3292, 3293, 1991, 1976, 3286, 3294, 1988,
3780
3781      1995, 1995, 1995, 1996, 1996, 1996, 3295, 1996, 3296, 3297,
3782      1996, 1999, 1999, 1999, 2000, 2000, 2000, 1995, 2003, 2003,
3783      2003, 2004, 2004, 2004, 3298, 2004, 3299, 3300, 2004, 1999,
3784      3301, 3302, 2000, 3303, 3304, 2003, 2005, 2005, 2005, 3305,
3785      2005, 3306, 3307, 2005, 2008, 2008, 2008, 3308, 2008, 3310,
3786      3313, 2008, 2012, 2012, 2012, 2014, 2014, 2014, 2016, 2016,
3787      2016, 3316, 1999, 2017, 2017, 2017, 3317, 2000, 3309, 3318,
3788      2012, 2019, 2019, 2019, 3309, 3319, 2016, 3320, 2021, 2021,
3789      2021, 2017, 2021, 3321, 3323, 2021, 3324, 3326, 2019, 2025,
3790      2025, 2025, 2028, 2028, 2028, 2029, 2029, 2029, 3327, 2029,
3791
3792      3329, 3330, 2029, 2032, 2032, 2032, 3333, 2025, 3334, 3335,
3793      2028, 3336, 3337, 2017, 3332, 3338, 2016, 2019, 2034, 2034,
3794      2034, 2032, 2035, 2035, 2035, 2036, 2036, 2036, 3332, 2036,
3795      3340, 3342, 2036, 2037, 2037, 2037, 2034, 3344, 3346, 2035,
3796      3348, 2028, 3349, 2039, 2039, 2039, 3350, 2039, 3351, 2032,
3797      2039, 2037, 2042, 2042, 2042, 2043, 2043, 2043, 3352, 2043,
3798      3353, 3354, 2043, 2045, 2045, 2045, 3355, 2045, 3356, 2042,
3799      2045, 2049, 2049, 2049, 2052, 2052, 2052, 2053, 2053, 2053,
3800      2037, 2054, 2054, 2054, 2056, 2056, 2056, 3357, 3361, 2049,
3801      3363, 2052, 2061, 2061, 2061, 2053, 2063, 2063, 2063, 3365,
3802
3803      2063, 3366, 3367, 2063, 2066, 2066, 2066, 2069, 2069, 2069,
3804      2061, 2071, 2071, 2071, 2073, 2073, 2073, 2075, 2075, 2075,
3805      3368, 3377, 2066, 3369, 2069, 2076, 2076, 2076, 3395, 2071,
3806      3370, 1508, 2073, 3381, 1505, 2075, 3378, 3385, 2053, 2077,
3807      2077, 2077, 2076, 2077, 3379, 3385, 2077, 2078, 2078, 2078,
3808      2079, 2079, 2079, 3389, 2080, 2080, 2080, 2061, 2080, 3369,
3809      3386, 2080, 3382, 3395, 2078, 3380, 3370, 2079, 3386, 3377,
3810      2071, 2081, 2081, 2081, 2082, 2082, 2082, 3381, 2083, 2083,
3811      2083, 2075, 2083, 1504, 3378, 2083, 2086, 2086, 2086, 2081,
3812      3427, 2082, 3379, 2078, 2090, 2090, 2090, 2091, 2091, 2091,
3813
3814      3389, 2100, 2100, 2100, 2086, 2100, 3382, 1503, 2100, 2103,
3815      2103, 2103, 2090, 3380, 2091, 2107, 2107, 2107, 3387, 3427,
3816      2082, 2108, 2108, 2108, 2081, 2108, 3387, 2103, 2108, 2109,
3817      2109, 2109, 2107, 2114, 2114, 2114, 2115, 2115, 2115, 2086,
3818      2116, 2116, 2116, 2118, 2118, 2118, 2123, 2123, 2123, 2124,
3819      2124, 2124, 2125, 2125, 2125, 2103, 2126, 2126, 2126, 2128,
3820      2128, 2128, 2132, 2132, 2132, 2133, 2133, 2133, 2135, 2135,
3821      2135, 2136, 2136, 2136, 2137, 2137, 2137, 2139, 2139, 2139,
3822      3388, 2139, 3403, 3393, 2139, 2142, 2142, 2142, 3388, 2142,
3823      3391, 3403, 2142, 2146, 2146, 2146, 2148, 2148, 2148, 2150,
3824
3825      2150, 2150, 2126, 2151, 2151, 2151, 3390, 2151, 3383, 3384,
3826      2151, 2146, 3383, 3384, 2148, 3396, 2150, 2152, 2152, 2152,
3827      2137, 2153, 2153, 2153, 3393, 2153, 3394, 3391, 2153, 2156,
3828      2156, 2156, 3392, 2156, 3404, 2152, 2156, 2159, 2159, 2159,
3829      2160, 2160, 2160, 3404, 2146, 2161, 2161, 2161, 1502, 2161,
3830      3396, 3415, 2161, 3390, 3397, 2159, 2148, 2159, 2160, 3407,
3831      3401, 2164, 2164, 2164, 2165, 2165, 2165, 3394, 2165, 3392,
3832      3437, 2165, 2169, 2169, 2169, 3399, 2160, 2152, 2164, 2166,
3833      2166, 2166, 3400, 2166, 3415, 3398, 2166, 2171, 2171, 2171,
3834      2169, 2171, 3401, 3407, 2171, 2177, 2177, 2177, 1501, 2177,
3835
3836      3397, 3405, 2177, 2180, 2180, 2180, 2181, 2181, 2181, 3402,
3837      2181, 3408, 3399, 2181, 2185, 2185, 2185, 3437, 2185, 3400,
3838      2180, 2185, 2189, 2189, 2189, 2190, 2190, 2190, 2191, 2191,
3839      2191, 3398, 3406, 2194, 2194, 2194, 3405, 2194, 2169, 2189,
3840      2194, 3402, 3421, 2190, 3409, 3408, 2191, 2201, 2201, 2201,
3841      2202, 2202, 2202, 2204, 2204, 2204, 2205, 2205, 2205, 3413,
3842      2205, 3431, 3411, 2205, 1500, 2201, 3410, 3406, 2202, 1499,
3843      2204, 3414, 2212, 2212, 2212, 2213, 2213, 2213, 2215, 2215,
3844      2215, 2217, 2217, 2217, 3421, 2217, 3416, 3409, 2217, 2190,
3845      2212, 3417, 1496, 2213, 3413, 3431, 2215, 2220, 2220, 2220,
3846
3847      3417, 2202, 2201, 2222, 2222, 2222, 3414, 2222, 3411, 3410,
3848      2222, 2228, 2228, 2228, 3435, 2220, 2229, 2229, 2229, 3416,
3849      2229, 3412, 3435, 2229, 2230, 2230, 2230, 3418, 2228, 2231,
3850      2231, 2231, 2232, 2232, 2232, 3422, 3418, 2213, 2212, 2233,
3851      2233, 2233, 2230, 2234, 2234, 2234, 2235, 2235, 2235, 3423,
3852      2220, 2236, 2236, 2236, 2237, 2237, 2237, 2238, 2238, 2238,
3853      2234, 3419, 3424, 2235, 2241, 2241, 2241, 3412, 2236, 3429,
3854      3433, 2237, 2242, 2242, 2242, 2238, 2242, 3422, 3429, 2242,
3855      3428, 2241, 2244, 2244, 2244, 2246, 2246, 2246, 2230, 2249,
3856      2249, 2249, 2250, 2250, 2250, 3423, 2250, 2235, 3419, 2250,
3857
3858      2244, 3441, 1495, 2246, 2253, 2253, 2253, 2249, 3424, 3428,
3859      2254, 2254, 2254, 2237, 2254, 2236, 3433, 2254, 2259, 2259,
3860      2259, 2253, 2238, 2256, 2256, 2256, 3430, 2256, 3420, 3425,
3861      2256, 2260, 2260, 2260, 3432, 3430, 2259, 2261, 2261, 2261,
3862      3434, 2261, 3441, 3426, 2261, 2263, 2263, 2263, 2260, 2267,
3863      2267, 2267, 3436, 2269, 2269, 2269, 3442, 2270, 2270, 2270,
3864      3436, 2270, 3439, 2263, 2270, 3420, 3425, 2267, 3432, 2259,
3865      2269, 2281, 2281, 2281, 2282, 2282, 2282, 2285, 2285, 2285,
3866      3426, 2285, 2286, 2286, 2285, 2286, 3434, 2287, 2287, 2281,
3867      2287, 1494, 2282, 2286, 1485, 3467, 2263, 3442, 2287, 3439,
3868
3869      2286, 2288, 2288, 2288, 3467, 2287, 2289, 2289, 2289, 2290,
3870      2290, 2290, 2293, 2293, 2293, 2294, 2294, 2294, 1483, 1478,
3871      2281, 2296, 2296, 2296, 2297, 2297, 2297, 2299, 2299, 2299,
3872      2300, 2300, 2300, 2301, 2301, 2301, 2302, 2302, 2302, 2305,
3873      2305, 2305, 2306, 2306, 2306, 2309, 2309, 2309, 2310, 2310,
3874      2310, 2312, 2312, 2312, 2313, 2313, 2313, 2317, 2317, 2317,
3875      2318, 2318, 2318, 2319, 2319, 2319, 2320, 2320, 2320, 2321,
3876      2321, 2321, 3440, 2321, 3445, 2317, 2321, 2324, 2324, 2324,
3877      1472, 2319, 3449, 2320, 2325, 2325, 2325, 2326, 2326, 2326,
3878      2327, 2327, 2327, 3447, 2327, 2324, 3451, 2327, 2330, 2330,
3879
3880      2330, 3443, 2325, 3452, 3451, 2326, 2335, 2335, 2335, 3440,
3881      2335, 3452, 3444, 2335, 3449, 3438, 2330, 2338, 2338, 2338,
3882      3445, 2325, 2342, 2342, 2342, 2344, 2344, 2344, 2324, 2319,
3883      3447, 2343, 2343, 2343, 2338, 2343, 3443, 3450, 2343, 2342,
3884      2345, 2345, 2345, 2344, 2354, 2354, 2354, 3444, 2326, 2355,
3885      2355, 2355, 2356, 2356, 2356, 2357, 2357, 2357, 2345, 2358,
3886      2358, 2358, 3438, 2358, 1466, 3448, 2358, 2355, 3465, 3450,
3887      2356, 3455, 2357, 2361, 2361, 2361, 2362, 2362, 2362, 2367,
3888      2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 3456, 3446,
3889      2361, 1462, 3466, 2362, 3459, 3457, 2367, 3453, 1457, 2368,
3890
3891      3465, 2357, 3448, 2369, 2370, 2370, 2370, 3461, 3455, 2355,
3892      2371, 2371, 2371, 2372, 2372, 2372, 2376, 2376, 2376, 2377,
3893      2377, 2377, 2370, 2377, 3466, 3456, 2377, 2371, 2361, 3459,
3894      2367, 2372, 2380, 2380, 2380, 3446, 3457, 2362, 2381, 2381,
3895      2381, 2382, 2382, 2382, 3453, 2369, 3454, 2383, 2383, 2383,
3896      2380, 2383, 1453, 3461, 2383, 2384, 2384, 2384, 2382, 2385,
3897      2385, 2385, 1452, 3462, 2372, 2386, 2386, 2386, 2370, 2387,
3898      2387, 2387, 2384, 2388, 2388, 2388, 2385, 2389, 2389, 2389,
3899      3460, 3463, 2386, 2393, 2393, 2393, 1444, 2387, 2390, 2390,
3900      2390, 2380, 2390, 3454, 2389, 2390, 2394, 2394, 2394, 3458,
3901
3902      2393, 2398, 2398, 2398, 2400, 2400, 2400, 1439, 2400, 3462,
3903      2385, 2400, 1430, 1428, 2394, 3460, 2386, 3475, 3463, 2398,
3904      2404, 2404, 2404, 2405, 2405, 2405, 3464, 2405, 3469, 3471,
3905      2405, 3475, 2409, 2409, 2409, 2413, 2413, 2413, 2404, 2413,
3906      3458, 1419, 2413, 2426, 2426, 2426, 2427, 2427, 2427, 2393,
3907      2409, 2440, 2440, 2440, 2441, 2441, 2441, 2444, 2444, 2444,
3908      3469, 2426, 1414, 3464, 2427, 2445, 2445, 2445, 2447, 2447,
3909      2447, 2448, 2448, 2448, 2451, 2451, 2451, 3471, 2409, 2454,
3910      2454, 2454, 2458, 2458, 2458, 2460, 2460, 2460, 2461, 2461,
3911      2461, 1410, 2462, 2462, 2462, 2463, 2463, 2463, 3468, 2463,
3912
3913      2458, 3470, 2463, 3473, 2426, 1405, 2461, 3468, 2427, 2462,
3914      2464, 2464, 2464, 2465, 2465, 2465, 2466, 2466, 2466, 2467,
3915      2467, 2467, 2474, 2474, 2474, 2475, 2475, 2475, 2464, 2475,
3916      3472, 2465, 2475, 3470, 2466, 3473, 3474, 2467, 3476, 2474,
3917      2477, 2477, 2477, 2479, 2479, 2479, 1404, 2479, 1403, 3476,
3918      2479, 2482, 2482, 2482, 2490, 2490, 2490, 2477, 2491, 2491,
3919      2491, 2492, 2492, 2492, 2493, 2493, 2493, 1401, 3474, 2482,
3920      1400, 2490, 2495, 2495, 2495, 1398, 1393, 2465, 3472, 2492,
3921      1392, 1387, 2493, 2466, 2496, 2496, 2496, 1386, 2496, 2495,
3922      1380, 2496, 2504, 2504, 2504, 2505, 2505, 2505, 2506, 2506,
3923
3924      2506, 1379, 2506, 1378, 1377, 2506, 2507, 2507, 2507, 2504,
3925      1360, 1349, 2505, 2508, 2508, 2508, 1344, 1343, 2492, 2509,
3926      2509, 2509, 1342, 1338, 2507, 2510, 2510, 2510, 1321, 2510,
3927      1320, 2508, 2510, 2511, 2511, 2511, 2509, 2514, 2514, 2514,
3928      2515, 2515, 2515, 2516, 2516, 2516, 2517, 2517, 2517, 1315,
3929      2517, 2511, 1314, 2517, 2514, 2520, 2520, 2520, 2521, 2521,
3930      2521, 2516, 2521, 1313, 1308, 2521, 2522, 2522, 2522, 2523,
3931      2523, 2523, 2520, 1307, 2508, 2524, 2524, 2524, 2526, 2526,
3932      2526, 1289, 1288, 2522, 1287, 1286, 2523, 2527, 2527, 2527,
3933      2528, 2528, 2528, 2524, 2528, 1285, 1284, 2528, 2529, 2529,
3934
3935      2529, 2533, 2533, 2533, 2527, 2536, 2536, 2536, 2549, 2549,
3936      2549, 2567, 2567, 2567, 1283, 2529, 2568, 2568, 2568, 2533,
3937      2573, 2573, 2573, 2536, 1282, 1281, 2549, 2576, 2576, 2576,
3938      2577, 2577, 2577, 2579, 2579, 2579, 1271, 2579, 1270, 1269,
3939      2579, 2582, 2582, 2582, 2576, 2584, 2584, 2584, 2577, 2585,
3940      2585, 2585, 1268, 2529, 1263, 2589, 2589, 2589, 1262, 2582,
3941      2608, 2608, 2608, 2584, 2595, 2595, 2595, 2585, 2549, 1261,
3942      1260, 2536, 2589, 2591, 2591, 2591, 1237, 2591, 2608, 1236,
3943      2591, 2595, 2596, 2596, 2596, 1229, 2596, 1225, 1220, 2596,
3944      2603, 2603, 2603, 2606, 2606, 2606, 2607, 2607, 2607, 1219,
3945
3946      2607, 1214, 1211, 2607, 1210, 1207, 2584, 2603, 1206, 1205,
3947      2606, 1204, 2609, 2609, 2609, 2585, 2609, 1203, 1202, 2609,
3948      2617, 2617, 2617, 2618, 2618, 2618, 1201, 2618, 1200, 1199,
3949      2618, 2619, 2619, 2619, 1197, 2619, 1196, 2617, 2619, 2622,
3950      2622, 2622, 2624, 2624, 2624, 2625, 2625, 2625, 1195, 2625,
3951      1194, 1193, 2625, 2628, 2628, 2628, 1190, 2622, 1189, 1188,
3952      2624, 2631, 2631, 2631, 2632, 2632, 2632, 1187, 2633, 2633,
3953      2633, 2628, 2633, 1185, 1184, 2633, 1183, 1182, 2631, 1181,
3954      1180, 2632, 2634, 2634, 2634, 2636, 2636, 2636, 1179, 2636,
3955      1178, 1176, 2636, 2639, 2639, 2639, 2641, 2641, 2641, 1175,
3956
3957      2634, 2640, 2640, 2640, 2624, 2640, 1174, 1173, 2640, 1172,
3958      2639, 1171, 1170, 2641, 2642, 2642, 2642, 1164, 2642, 1160,
3959      1157, 2642, 2643, 2643, 2643, 1156, 2643, 1155, 1153, 2643,
3960      2646, 2646, 2646, 2647, 2647, 2647, 2648, 2648, 2648, 2651,
3961      2651, 2651, 2652, 2652, 2652, 1149, 1146, 2646, 1145, 1144,
3962      2647, 1140, 1139, 2648, 2653, 2653, 2653, 2651, 2664, 2664,
3963      2664, 2681, 2681, 2681, 2682, 2682, 2682, 2686, 2686, 2686,
3964      1136, 2653, 2689, 2689, 2689, 1132, 2664, 2690, 2690, 2690,
3965      1131, 2690, 1128, 1125, 2690, 2691, 2691, 2691, 1122, 2689,
3966      1121, 2646, 1116, 2692, 2692, 2692, 2695, 2695, 2695, 2696,
3967
3968      2696, 2696, 1108, 2691, 1107, 2697, 2697, 2697, 1106, 2697,
3969      2651, 2692, 2697, 2695, 1104, 1100, 2696, 1097, 2664, 2698,
3970      2698, 2698, 2700, 2700, 2700, 1094, 2700, 1091, 1090, 2700,
3971      2710, 2710, 2710, 2711, 2711, 2711, 2698, 1089, 2712, 2712,
3972      2712, 1088, 2712, 1087, 2692, 2712, 1086, 2710, 1085, 1084,
3973      2711, 1081, 2691, 2713, 2713, 2713, 1080, 2713, 1077, 1076,
3974      2713, 2716, 2716, 2716, 2719, 2719, 2719, 2721, 2721, 2721,
3975      1072, 2721, 1070, 1067, 2721, 1066, 2710, 1063, 1062, 2716,
3976      1059, 2719, 2730, 2730, 2730, 2732, 2732, 2732, 2733, 2733,
3977      2733, 1052, 2733, 1049, 1048, 2733, 1047, 2734, 2734, 2734,
3978
3979      2730, 2734, 2732, 1044, 2734, 2737, 2737, 2737, 1040, 2737,
3980      1033, 1032, 2737, 2740, 2740, 2740, 1028, 2740, 1027, 1026,
3981      2740, 2749, 2749, 2749, 2750, 2750, 2750, 2751, 2751, 2751,
3982      1023, 2751, 1022, 1021, 2751, 2752, 2752, 2752, 2749, 1018,
3983      1011, 2750, 2753, 2753, 2753, 1010, 2753, 1009, 1008, 2753,
3984      1007, 1006, 2752, 2754, 2754, 2754, 2755, 2755, 2755, 2756,
3985      2756, 2756, 2757, 2757, 2757, 2758, 2758, 2758, 1005, 1004,
3986      2754, 1003, 1002, 2755, 2770, 2770, 2770, 2756, 2773, 2773,
3987      2773, 2749, 2758, 2759, 2759, 2759,  998, 2759,  994,  971,
3988      2759,  968, 2770,  965,  964, 2773, 2773, 2787, 2787, 2787,
3989
3990      2788, 2788, 2788, 2791, 2791, 2791, 2792, 2792, 2792, 2794,
3991      2794, 2794,  957, 2794,  956,  954, 2794, 2797, 2797, 2797,
3992       953, 2756, 2798, 2798, 2798, 2770, 2801, 2801, 2801, 2802,
3993      2802, 2802,  952, 2802,  951, 2797, 2802, 2803, 2803, 2803,
3994      2798, 2803,  950, 2801, 2803, 2806, 2806, 2806, 2807, 2807,
3995      2807,  949, 2807,  948,  947, 2807, 2816, 2816, 2816, 2817,
3996      2817, 2817, 2806, 2817,  946,  945, 2817, 2819, 2819, 2819,
3997       944, 2819,  943, 2816, 2819, 2823, 2823, 2823, 2824, 2824,
3998      2824,  941, 2824, 2797,  940, 2824, 2832, 2832, 2832, 2835,
3999      2835, 2835, 2823, 2835,  939,  938, 2835, 2850, 2850, 2850,
4000
4001       937, 2851, 2851, 2851, 2832, 2851,  936,  935, 2851, 2854,
4002      2854, 2854,  934, 2854, 2850,  933, 2854, 2857, 2857, 2857,
4003      2858, 2858, 2858,  931, 2858,  930,  929, 2858, 2859, 2859,
4004      2859, 2860, 2860, 2860, 2857, 2860,  928,  927, 2860, 2861,
4005      2861, 2861, 2862, 2862, 2862, 2859, 2862,  926,  925, 2862,
4006      2873, 2873, 2873, 2875, 2875, 2875,  924, 2861, 2876, 2876,
4007      2876,  923, 2877, 2877, 2877,  922, 2877,  918, 2873, 2877,
4008      2875, 2875, 2890, 2890, 2890, 2876, 2876, 2891, 2891, 2891,
4009      2877, 2892, 2892, 2892, 2893, 2893, 2893, 2894, 2894, 2894,
4010      2861, 2895, 2895, 2895, 2900, 2900, 2900,  914,  913, 2873,
4011
4012      2901, 2901, 2901, 2905, 2905, 2905,  912, 2905,  911,  910,
4013      2905,  906, 2900, 2908, 2908, 2908,  904, 2908, 2901,  903,
4014      2908, 2911, 2911, 2911, 2919, 2919, 2919,  902, 2919,  901,
4015       900, 2919, 2923, 2923, 2923, 2924, 2924, 2924, 2911, 2924,
4016       899,  896, 2924,  895,  893, 2900, 2927, 2927, 2927, 2923,
4017      2947, 2947, 2947, 2948, 2948, 2948,  891, 2948,  887,  886,
4018      2948,  885,  883, 2927, 2953, 2953, 2953, 2947, 2953,  880,
4019       879, 2953, 2956, 2956, 2956,  877, 2956,  876,  873, 2956,
4020      2959, 2959, 2959, 2968, 2968, 2968, 2970, 2970, 2970, 2971,
4021      2971, 2971,  871, 2971,  868,  867, 2971,  866, 2959,  865,
4022
4023       862, 2968,  861, 2970, 2970,  860,  859, 2971, 2972, 2972,
4024      2972,  858, 2972,  857,  856, 2972, 2983, 2983, 2983, 2984,
4025      2984, 2984, 2985, 2985, 2985,  854, 2972, 2986, 2986, 2986,
4026      2991, 2991, 2991, 2995, 2995, 2995,  851, 2995,  850,  846,
4027      2995,  845, 2994, 2994, 2994, 2996, 2996, 2996, 2991, 2968,
4028      2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2994,
4029       844, 2973, 2996, 3004, 3004, 3004, 2973, 2973, 2973, 2973,
4030      2973, 3005, 3005, 3005,  843, 3005,  842,  841, 3005,  840,
4031      3004, 3007, 3007, 3007,  832, 3007,  831,  828, 3007, 3006,
4032      3006, 3006, 3032, 3032, 3032, 2973, 2973, 2974, 2974, 2974,
4033
4034      2974, 2974, 2974, 2974, 2974, 2974, 3006,  827, 2974,  826,
4035      3032,  825,  824, 2974, 2974, 2974, 2974, 2974, 3025, 3025,
4036      3025,  822, 3025,  821,  820, 3025, 3040, 3040, 3040, 3042,
4037      3042, 3042,  817, 3042,  816,  815, 3042,  812,  811, 3057,
4038      3057, 3057, 2974, 2974, 3040,  810,  807, 3042, 3045, 3045,
4039      3045, 3045, 3045, 3045, 3045, 3045, 3045, 3057,  806, 3045,
4040      3064, 3064, 3064,  802, 3045, 3045, 3045, 3045, 3045, 3061,
4041      3061, 3061,  800, 3061,  797,  796, 3061, 3064, 3065, 3065,
4042      3065,  795, 3065,  794,  792, 3065, 3104, 3104, 3104, 3112,
4043      3112, 3112,  789, 3045, 3045, 3046, 3046, 3046, 3046, 3046,
4044
4045      3046, 3046, 3046, 3046, 3104,  788, 3046, 3112, 3112,  787,
4046       784, 3046, 3046, 3046, 3046, 3046, 3071, 3071, 3071,  781,
4047      3071,  777,  776, 3071, 3074, 3074, 3074,  775, 3074,  774,
4048       771, 3074, 3123, 3123, 3123, 3124, 3124, 3124,  768,  767,
4049      3046, 3046,  764, 3129, 3129, 3129,  760, 3129,  759, 3123,
4050      3129,  758, 3124, 3134, 3134, 3134, 3139, 3139, 3139, 3152,
4051      3152, 3152, 3156, 3156, 3156, 3165, 3165, 3165,  757,  756,
4052      3134,  755,  754, 3139, 3166, 3166, 3166, 3152, 3166,  753,
4053      3156, 3166, 3165, 3167, 3167, 3167, 3168, 3168, 3168,  752,
4054      3168,  751,  750, 3168, 3177, 3177, 3177, 3178, 3178, 3178,
4055
4056      3167, 3178,  749,  747, 3178, 3185, 3185, 3185, 3186, 3186,
4057      3186, 3177, 3186, 3156,  745, 3186, 3193, 3193, 3193, 3201,
4058      3201, 3201, 3185, 3201,  744,  741, 3201,  740, 3204, 3204,
4059      3204,  739, 3204,  738, 3193, 3204, 3215, 3215, 3215,  737,
4060      3215,  736,  731, 3215, 3224, 3224, 3224,  730, 3224,  729,
4061       726, 3224,  725, 3193, 3347, 3347, 3347, 3358, 3358, 3358,
4062       724, 3358,  723,  720, 3358, 3477, 3477, 3477, 3478, 3478,
4063      3478,  719, 3347,  717,  714, 3358,  713,  710,  709,  708,
4064       707,  706,  705, 3477,  697,  696, 3478, 3481, 3481, 3481,
4065      3481, 3481, 3481, 3481, 3481, 3481, 3482, 3482, 3482, 3482,
4066
4067      3482, 3482, 3482, 3482, 3482, 3483, 3483, 3483, 3483, 3483,
4068      3483, 3483, 3483, 3483, 3484, 3484, 3484, 3484, 3484, 3484,
4069      3484, 3484, 3484, 3485, 3485, 3485, 3485, 3485, 3485, 3485,
4070      3485, 3485, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486,
4071      3486, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487,
4072      3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3489,
4073      3489, 3489, 3489, 3489, 3489, 3489, 3489, 3489, 3490, 3490,
4074      3490, 3490, 3490, 3490, 3490, 3490, 3490, 3491, 3491, 3491,
4075      3491, 3491, 3491, 3491, 3491, 3491, 3492, 3492, 3492, 3492,
4076      3492, 3492, 3492, 3492, 3492, 3493, 3493, 3493, 3493, 3493,
4077
4078      3493, 3493, 3493, 3493, 3494, 3494, 3494, 3494, 3494, 3494,
4079      3494, 3494, 3494, 3495, 3495, 3495, 3495, 3495, 3495, 3495,
4080      3495, 3495, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
4081      3496, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
4082      3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3499,
4083      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3500, 3500,
4084      3500, 3500, 3500, 3500, 3500, 3500, 3500, 3501, 3501, 3501,
4085      3501, 3501, 3501, 3501, 3501, 3501, 3502, 3502, 3502, 3502,
4086      3502, 3502, 3502, 3502, 3502, 3503, 3503, 3503, 3503, 3503,
4087      3503, 3503, 3503, 3503, 3504, 3504, 3504, 3504, 3504, 3504,
4088
4089      3504, 3504, 3504, 3505, 3505, 3505, 3505, 3505, 3505, 3505,
4090      3505, 3505, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506,
4091      3506, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
4092      3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3509,
4093      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510,
4094      3510, 3510, 3510, 3510, 3510, 3510, 3510, 3511, 3511, 3511,
4095      3511, 3511, 3511, 3511, 3511, 3511, 3512, 3512, 3512, 3512,
4096      3512, 3512, 3512, 3512, 3512, 3513, 3513, 3513, 3513, 3513,
4097      3513, 3513, 3513, 3513, 3514, 3514, 3514, 3514, 3514, 3514,
4098      3514, 3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
4099
4100      3515, 3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4101      3516, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517,
4102      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3519,
4103      3519, 3519, 3519, 3519, 3519, 3519, 3519, 3519, 3520, 3520,
4104      3520, 3520, 3520, 3520, 3520, 3520, 3520, 3521, 3521, 3521,
4105      3521, 3521, 3521, 3521, 3521, 3521, 3522, 3522, 3522, 3522,
4106      3522, 3522, 3522, 3522, 3522, 3523, 3523, 3523, 3523, 3523,
4107      3523, 3523, 3523, 3523, 3524, 3524, 3524, 3524, 3524, 3524,
4108      3524, 3524, 3524, 3525, 3525, 3525, 3525, 3525, 3525, 3525,
4109      3525, 3525, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526,
4110
4111      3526, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527,
4112      3528, 3528, 3528, 3528, 3528, 3528, 3528, 3528, 3528, 3529,
4113      3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3530, 3530,
4114      3530, 3530, 3530, 3530, 3530, 3530, 3530, 3531, 3531, 3531,
4115      3531, 3531, 3531, 3531, 3531, 3531, 3532, 3532, 3532, 3532,
4116      3532, 3532, 3532, 3532, 3532, 3533, 3533, 3533, 3533, 3533,
4117      3533, 3533, 3533, 3533, 3534, 3534, 3534, 3534, 3534, 3534,
4118      3534, 3534, 3534, 3535, 3535, 3535, 3535, 3535, 3535, 3535,
4119      3535, 3535, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536,
4120      3536, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537,
4121
4122      3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3539,
4123      3539, 3539, 3539, 3539, 3539, 3539, 3539, 3539, 3540, 3540,
4124      3540, 3540, 3540, 3540, 3540, 3540, 3540, 3541, 3541, 3541,
4125      3541, 3541, 3541, 3541, 3541, 3541, 3542, 3542, 3542, 3542,
4126      3542, 3542, 3542, 3542, 3542, 3543, 3543, 3543, 3543, 3543,
4127      3543, 3543, 3543, 3543, 3544, 3544, 3544, 3544, 3544, 3544,
4128      3544, 3544, 3544, 3545, 3545, 3545,  695,  692,  691, 3545,
4129      3546, 3546, 3546,  690,  689,  686, 3546, 3547, 3547, 3547,
4130       684,  683,  679, 3547, 3548, 3548, 3548,  678,  677,  676,
4131      3548, 3549, 3549, 3549,  673,  672,  671, 3549, 3550, 3550,
4132
4133      3550,  670,  666,  665, 3550, 3551, 3551, 3551,  664,  663,
4134       657, 3551, 3552, 3552, 3552,  656,  654,  648, 3552, 3553,
4135      3553, 3553,  647,  646,  642, 3553, 3554, 3554, 3554,  639,
4136       637,  636, 3554, 3555, 3555, 3555,  635,  631,  627, 3555,
4137      3556, 3556, 3556,  623,  622,  621, 3556, 3557, 3557, 3557,
4138       620,  616,  612, 3557, 3558, 3558, 3558,  609,  608,  607,
4139      3558, 3559, 3559, 3559,  606,  602,  596, 3559, 3560, 3560,
4140      3560,  595,  591,  583, 3560, 3561, 3561, 3561,  579,  572,
4141       570, 3561, 3562, 3562, 3562,  569,  565,  559, 3562, 3563,
4142      3563, 3563,  558,  554,  550, 3563, 3564, 3564, 3564,  546,
4143
4144       545,  544, 3564, 3565, 3565, 3565,  543,  542,  538, 3565,
4145      3566, 3566, 3566,  534,  527,  523, 3566, 3567, 3567, 3567,
4146       515,  514,  513, 3567, 3568, 3568, 3568,  512,  511,  507,
4147      3568, 3569, 3569, 3569,  501,  500,  496, 3569, 3570, 3570,
4148      3570,  490,  489,  485, 3570, 3571, 3571, 3571,  479,  478,
4149       474, 3571, 3572, 3572, 3572,  468,  467,  463, 3572, 3573,
4150      3573, 3573,  459,  455,  454, 3573, 3574, 3574, 3574, 3574,
4151      3574, 3574, 3574,  453, 3574, 3575, 3575, 3575,  449,  445,
4152       441, 3575, 3576,  437,  431,  430, 3576, 3577, 3577, 3577,
4153       429,  425,  421, 3577, 3578,  416,  415,  414, 3578, 3579,
4154
4155      3579, 3579,  413,  409,  403, 3579, 3580,  399,  395,  392,
4156      3580, 3581, 3581, 3581,  388,  384,  381, 3581, 3582,  378,
4157       376,  375, 3582, 3583, 3583, 3583,  373,  369,  362, 3583,
4158      3584,  361,  360,  359, 3584, 3585, 3585, 3585,  358,  354,
4159       347, 3585, 3586,  346,  342,  335, 3586, 3587, 3587, 3587,
4160       334,  333,  329, 3587, 3588,  323,  322,  321, 3588, 3589,
4161      3589, 3589,  317,  311,  307, 3589, 3590,  298,  297,  293,
4162      3590, 3591, 3591, 3591,  289,  285,  281, 3591, 3592,  280,
4163       276,  273, 3592, 3593, 3593, 3593,  272,  271,  265, 3593,
4164      3594,  264,  262,  259, 3594, 3595, 3595, 3595,  247,    0,
4165
4166         0, 3595, 3596,    0,    0,    0, 3596, 3597, 3597, 3597,
4167         0,    0,    0, 3597, 3598,    0,    0,    0, 3598, 3599,
4168      3599, 3599,    0,    0,    0, 3599, 3600,    0,    0,    0,
4169      3600, 3601, 3601, 3601,    0,    0,    0, 3601, 3602,    0,
4170         0,    0, 3602, 3603, 3603, 3603,    0,    0,    0, 3603,
4171      3604,    0,    0,    0, 3604, 3605, 3605, 3605,    0,    0,
4172         0, 3605, 3606,    0,    0,    0, 3606, 3607, 3607, 3607,
4173         0,    0,    0, 3607, 3608,    0,    0,    0, 3608, 3609,
4174      3609, 3609,    0,    0,    0, 3609, 3610,    0,    0,    0,
4175      3610, 3611, 3611, 3611,    0,    0,    0, 3611, 3612,    0,
4176
4177         0,    0, 3612, 3613, 3613, 3613,    0,    0,    0, 3613,
4178      3614,    0,    0,    0, 3614, 3615, 3615, 3615,    0,    0,
4179         0, 3615, 3616,    0,    0,    0, 3616, 3617, 3617, 3617,
4180         0,    0,    0, 3617, 3618,    0,    0,    0, 3618, 3619,
4181      3619, 3619,    0,    0,    0, 3619, 3620,    0,    0,    0,
4182      3620, 3621, 3621, 3621,    0,    0,    0, 3621, 3622,    0,
4183         0,    0, 3622, 3623, 3623, 3623,    0,    0,    0, 3623,
4184      3624,    0,    0,    0, 3624, 3625, 3625, 3625,    0,    0,
4185         0, 3625, 3626,    0,    0,    0, 3626, 3627, 3627, 3627,
4186         0,    0,    0, 3627, 3628,    0,    0,    0, 3628, 3629,
4187
4188      3629, 3629,    0,    0,    0, 3629, 3630,    0,    0,    0,
4189      3630, 3631, 3631, 3631,    0,    0,    0, 3631, 3632,    0,
4190         0,    0, 3632, 3633, 3633, 3633, 3633, 3633, 3633, 3633,
4191      3633, 3633, 3634,    0,    0,    0,    0, 3634, 3635, 3635,
4192      3635,    0,    0,    0, 3635, 3636, 3636, 3636, 3636,    0,
4193         0, 3636, 3636, 3637, 3637, 3637, 3637,    0, 3637,    0,
4194      3637, 3638, 3638, 3638, 3638,    0,    0, 3638, 3638, 3639,
4195      3639, 3639,    0,    0,    0, 3639, 3640, 3640, 3640, 3640,
4196         0,    0, 3640, 3640, 3641, 3641, 3641,    0,    0,    0,
4197      3641, 3642, 3642, 3642, 3642,    0,    0, 3642, 3642, 3643,
4198
4199      3643, 3643, 3643,    0, 3643,    0, 3643, 3644, 3644, 3644,
4200      3644,    0,    0, 3644, 3644, 3645, 3645, 3645, 3645,    0,
4201      3645,    0, 3645, 3646, 3646, 3646, 3646,    0,    0, 3646,
4202      3646, 3647, 3647, 3647, 3647,    0, 3647,    0, 3647, 3648,
4203      3648, 3648, 3648,    0,    0, 3648, 3648, 3649, 3649, 3649,
4204         0,    0,    0, 3649, 3650, 3650, 3650, 3650,    0,    0,
4205      3650, 3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651,
4206      3652, 3652, 3652,    0,    0,    0, 3652, 3653, 3653, 3653,
4207      3653,    0,    0, 3653, 3653, 3654, 3654, 3654,    0,    0,
4208         0, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655,
4209
4210      3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657, 3657,
4211      3657,    0,    0, 3657, 3657, 3658, 3658, 3658,    0,    0,
4212         0, 3658, 3659, 3659, 3659, 3659,    0,    0, 3659, 3659,
4213      3660, 3660, 3660,    0,    0,    0, 3660, 3661, 3661, 3661,
4214      3661,    0,    0, 3661, 3661, 3662, 3662, 3662,    0,    0,
4215         0, 3662, 3663, 3663, 3663, 3663,    0,    0, 3663, 3663,
4216      3664, 3664, 3664,    0,    0,    0, 3664, 3665, 3665, 3665,
4217      3665,    0,    0, 3665, 3665, 3666, 3666, 3666,    0,    0,
4218         0, 3666, 3667, 3667, 3667, 3667,    0,    0, 3667, 3667,
4219      3668, 3668, 3668,    0,    0,    0, 3668, 3669, 3669, 3669,
4220
4221      3669,    0,    0, 3669, 3669, 3670, 3670, 3670,    0,    0,
4222         0, 3670, 3671, 3671, 3671, 3671,    0,    0, 3671, 3671,
4223      3672, 3672, 3672,    0,    0,    0, 3672, 3673, 3673, 3673,
4224      3673,    0,    0, 3673, 3673, 3674, 3674, 3674,    0,    0,
4225         0, 3674, 3675, 3675, 3675, 3675,    0,    0, 3675, 3675,
4226      3676, 3676, 3676,    0,    0,    0, 3676, 3677, 3677, 3677,
4227      3677,    0,    0, 3677, 3677, 3678, 3678, 3678,    0,    0,
4228         0, 3678, 3679, 3679, 3679, 3679,    0,    0, 3679, 3679,
4229      3680, 3680, 3680, 3680,    0, 3680,    0, 3680, 3681, 3681,
4230      3681, 3681,    0,    0, 3681, 3681, 3682, 3682, 3682,    0,
4231
4232         0,    0, 3682, 3683, 3683, 3683, 3683,    0,    0, 3683,
4233      3683, 3684, 3684, 3684,    0,    0,    0, 3684, 3685, 3685,
4234      3685, 3685,    0,    0, 3685, 3685, 3686, 3686, 3686,    0,
4235         0,    0, 3686, 3687, 3687, 3687, 3687,    0,    0, 3687,
4236      3687, 3688, 3688, 3688,    0,    0,    0, 3688, 3689, 3689,
4237      3689, 3689,    0,    0, 3689, 3689, 3690, 3690, 3690,    0,
4238         0,    0, 3690, 3691, 3691, 3691, 3691,    0,    0, 3691,
4239      3691, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692,
4240      3693,    0, 3693,    0,    0, 3693, 3694, 3694, 3694,    0,
4241         0,    0, 3694, 3695, 3695, 3695, 3695,    0,    0, 3695,
4242
4243      3695, 3696, 3696, 3696,    0,    0,    0, 3696, 3697, 3697,
4244      3697, 3697,    0,    0, 3697, 3697, 3698, 3698, 3698,    0,
4245         0,    0, 3698, 3699, 3699, 3699, 3699,    0,    0, 3699,
4246      3699, 3700, 3700, 3700,    0,    0,    0, 3700, 3701, 3701,
4247      3701, 3701,    0,    0, 3701, 3701, 3702, 3702, 3702,    0,
4248         0,    0, 3702, 3703, 3703, 3703, 3703,    0,    0, 3703,
4249      3703, 3704, 3704, 3704, 3704,    0,    0, 3704, 3704, 3705,
4250      3705, 3705,    0,    0,    0, 3705, 3706, 3706, 3706, 3706,
4251         0,    0, 3706, 3706, 3707, 3707, 3707,    0,    0,    0,
4252      3707, 3708, 3708, 3708, 3708,    0,    0, 3708, 3708, 3709,
4253
4254      3709, 3709, 3709,    0,    0, 3709, 3709, 3710, 3710, 3710,
4255      3710,    0, 3710,    0, 3710, 3711, 3711, 3711, 3711,    0,
4256         0, 3711, 3711, 3712, 3712, 3712,    0,    0,    0, 3712,
4257      3713, 3713, 3713, 3713,    0,    0, 3713, 3713, 3714, 3714,
4258      3714, 3714,    0, 3714,    0, 3714, 3715, 3715, 3715, 3715,
4259         0,    0, 3715, 3715, 3716, 3716, 3716, 3716,    0, 3716,
4260         0, 3716, 3717, 3717, 3717, 3717,    0,    0, 3717, 3717,
4261      3718, 3718, 3718,    0,    0,    0, 3718, 3719, 3719, 3719,
4262      3719,    0,    0, 3719, 3719, 3720, 3720, 3720,    0,    0,
4263         0, 3720, 3721, 3721, 3721, 3721,    0,    0, 3721, 3721,
4264
4265      3722, 3722, 3722,    0,    0,    0, 3722, 3723, 3723, 3723,
4266      3723,    0,    0, 3723, 3723, 3724, 3724, 3724, 3724,    0,
4267      3724,    0, 3724, 3725, 3725, 3725, 3725,    0,    0, 3725,
4268      3725, 3726, 3726, 3726, 3726,    0, 3726,    0, 3726, 3727,
4269      3727, 3727, 3727,    0,    0, 3727, 3727, 3728, 3728, 3728,
4270         0,    0,    0, 3728, 3729, 3729, 3729, 3729,    0,    0,
4271      3729, 3729, 3730, 3730, 3730,    0,    0,    0, 3730, 3731,
4272      3731, 3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,
4273         0,    0,    0, 3732, 3733, 3733, 3733, 3733,    0,    0,
4274      3733, 3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735,
4275
4276      3735, 3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736,
4277         0,    0,    0, 3736, 3737, 3737, 3737, 3737,    0,    0,
4278      3737, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
4279      3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
4280         0,    0,    0, 3740, 3741, 3741, 3741, 3741,    0,    0,
4281      3741, 3741, 3742, 3742, 3742,    0,    0,    0, 3742, 3743,
4282      3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744,
4283         0,    0,    0, 3744, 3745, 3745, 3745, 3745,    0,    0,
4284      3745, 3745, 3746, 3746, 3746, 3746,    0, 3746,    0, 3746,
4285      3747, 3747, 3747, 3747,    0,    0, 3747, 3747, 3748, 3748,
4286
4287      3748,    0,    0,    0, 3748, 3749, 3749, 3749, 3749,    0,
4288         0, 3749, 3749, 3750, 3750, 3750, 3750, 3750, 3750, 3750,
4289      3750, 3750, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751,
4290      3751, 3752, 3752, 3752,    0,    0,    0, 3752, 3753, 3753,
4291      3753,    0,    0,    0, 3753, 3754, 3754, 3754, 3754,    0,
4292         0, 3754, 3754, 3755, 3755, 3755, 3755,    0, 3755,    0,
4293      3755, 3756, 3756, 3756, 3756,    0,    0, 3756, 3756, 3757,
4294      3757, 3757,    0,    0,    0, 3757, 3758, 3758, 3758, 3758,
4295         0,    0, 3758, 3758, 3759, 3759, 3759,    0,    0,    0,
4296      3759, 3760, 3760, 3760, 3760,    0,    0, 3760, 3760, 3761,
4297
4298      3761, 3761, 3761,    0,    0, 3761, 3761, 3762, 3762, 3762,
4299         0,    0,    0, 3762, 3763, 3763, 3763, 3763,    0,    0,
4300      3763, 3763, 3764, 3764, 3764,    0,    0,    0, 3764, 3765,
4301      3765, 3765, 3765,    0,    0, 3765, 3765, 3766, 3766, 3766,
4302      3766,    0,    0, 3766, 3766, 3767, 3767, 3767, 3767,    0,
4303         0, 3767, 3767, 3768, 3768, 3768,    0,    0,    0, 3768,
4304      3769, 3769, 3769, 3769,    0,    0, 3769, 3769, 3770, 3770,
4305      3770, 3770,    0,    0, 3770, 3770, 3771, 3771, 3771, 3771,
4306         0,    0, 3771, 3771, 3772, 3772, 3772,    0,    0,    0,
4307      3772, 3773, 3773, 3773, 3773,    0,    0, 3773, 3773, 3774,
4308
4309      3774, 3774,    0,    0,    0, 3774, 3775, 3775, 3775, 3775,
4310         0,    0, 3775, 3775, 3776, 3776, 3776, 3776,    0, 3776,
4311         0, 3776, 3777, 3777, 3777, 3777,    0,    0, 3777, 3777,
4312      3778, 3778, 3778,    0,    0,    0, 3778, 3779, 3779, 3779,
4313      3779,    0,    0, 3779, 3779, 3780, 3780, 3780,    0,    0,
4314         0, 3780, 3781, 3781, 3781, 3781,    0,    0, 3781, 3781,
4315      3782, 3782, 3782,    0,    0,    0, 3782, 3783, 3783, 3783,
4316      3783,    0,    0, 3783, 3783, 3784, 3784, 3784,    0,    0,
4317         0, 3784, 3785, 3785, 3785, 3785,    0,    0, 3785, 3785,
4318      3786, 3786, 3786,    0,    0,    0, 3786, 3787, 3787, 3787,
4319
4320      3787,    0,    0, 3787, 3787, 3788, 3788, 3788, 3788,    0,
4321      3788,    0, 3788, 3789, 3789, 3789, 3789,    0,    0, 3789,
4322      3789, 3790, 3790, 3790,    0,    0,    0, 3790, 3791, 3791,
4323      3791, 3791,    0,    0, 3791, 3791, 3792, 3792, 3792,    0,
4324         0,    0, 3792, 3793, 3793, 3793, 3793,    0,    0, 3793,
4325      3793, 3794, 3794, 3794,    0,    0,    0, 3794, 3795, 3795,
4326      3795, 3795,    0,    0, 3795, 3795, 3796, 3796, 3796,    0,
4327         0,    0, 3796, 3797, 3797, 3797, 3797,    0,    0, 3797,
4328      3797, 3798, 3798, 3798,    0,    0,    0, 3798, 3799, 3799,
4329      3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800,    0,
4330
4331         0,    0, 3800, 3801, 3801, 3801, 3801,    0,    0, 3801,
4332      3801, 3802, 3802, 3802,    0,    0,    0, 3802, 3803, 3803,
4333      3803, 3803,    0,    0, 3803, 3803, 3804, 3804, 3804, 3804,
4334      3804, 3804, 3804, 3804, 3804, 3805, 3805, 3805, 3805, 3805,
4335      3805, 3805, 3805, 3805, 3806, 3806, 3806,    0,    0,    0,
4336      3806, 3807, 3807, 3807, 3807,    0, 3807,    0, 3807, 3808,
4337      3808, 3808, 3808,    0,    0, 3808, 3808, 3809, 3809, 3809,
4338      3809,    0,    0, 3809, 3809, 3810, 3810, 3810,    0,    0,
4339         0, 3810, 3811, 3811, 3811, 3811,    0,    0, 3811, 3811,
4340      3812, 3812, 3812, 3812,    0, 3812,    0, 3812, 3813, 3813,
4341
4342      3813, 3813,    0,    0, 3813, 3813, 3814, 3814, 3814, 3814,
4343         0,    0, 3814, 3814, 3815, 3815, 3815, 3815,    0, 3815,
4344         0, 3815, 3816, 3816, 3816, 3816,    0,    0, 3816, 3816,
4345      3817, 3817, 3817,    0,    0,    0, 3817, 3818, 3818, 3818,
4346      3818,    0,    0, 3818, 3818, 3819, 3819, 3819, 3819,    0,
4347         0, 3819, 3819, 3820, 3820, 3820,    0,    0,    0, 3820,
4348      3821, 3821, 3821, 3821,    0,    0, 3821, 3821, 3822, 3822,
4349      3822, 3822,    0,    0, 3822, 3822, 3823, 3823, 3823, 3823,
4350         0,    0, 3823, 3823, 3824, 3824, 3824,    0,    0,    0,
4351      3824, 3825, 3825, 3825, 3825,    0,    0, 3825, 3825, 3826,
4352
4353      3826, 3826,    0,    0,    0, 3826, 3827, 3827, 3827, 3827,
4354         0,    0, 3827, 3827, 3828, 3828, 3828, 3828,    0,    0,
4355      3828, 3828, 3829, 3829, 3829,    0,    0,    0, 3829, 3830,
4356      3830, 3830, 3830,    0,    0, 3830, 3830, 3831, 3831, 3831,
4357      3831,    0, 3831,    0, 3831, 3832, 3832, 3832, 3832,    0,
4358         0, 3832, 3832, 3833, 3833, 3833,    0,    0,    0, 3833,
4359      3834, 3834, 3834, 3834,    0,    0, 3834, 3834, 3835, 3835,
4360      3835,    0,    0,    0, 3835, 3836, 3836, 3836, 3836,    0,
4361         0, 3836, 3836, 3837, 3837, 3837,    0,    0,    0, 3837,
4362      3838, 3838, 3838, 3838,    0,    0, 3838, 3838, 3839, 3839,
4363
4364      3839, 3839,    0,    0, 3839, 3839, 3840, 3840, 3840,    0,
4365         0,    0, 3840, 3841, 3841, 3841, 3841,    0,    0, 3841,
4366      3841, 3842, 3842, 3842,    0,    0,    0, 3842, 3843, 3843,
4367      3843, 3843,    0,    0, 3843, 3843, 3844, 3844, 3844,    0,
4368         0,    0, 3844, 3845, 3845, 3845, 3845,    0,    0, 3845,
4369      3845, 3846, 3846, 3846, 3846,    0, 3846,    0, 3846, 3847,
4370      3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848, 3848,
4371         0,    0,    0, 3848, 3849, 3849, 3849, 3849,    0,    0,
4372      3849, 3849, 3850, 3850, 3850,    0,    0,    0, 3850, 3851,
4373      3851, 3851, 3851,    0,    0, 3851, 3851, 3852, 3852, 3852,
4374
4375         0,    0,    0, 3852, 3853, 3853, 3853, 3853,    0,    0,
4376      3853, 3853, 3854, 3854, 3854, 3854, 3854, 3854, 3854, 3854,
4377      3854, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855,
4378      3856, 3856, 3856, 3856,    0, 3856,    0, 3856, 3857, 3857,
4379      3857,    0,    0,    0, 3857, 3858, 3858, 3858, 3858,    0,
4380         0, 3858, 3858, 3859, 3859, 3859, 3859,    0,    0, 3859,
4381      3859, 3860, 3860, 3860,    0,    0,    0, 3860, 3861, 3861,
4382      3861, 3861,    0,    0, 3861, 3861, 3862, 3862, 3862, 3862,
4383         0,    0, 3862, 3862, 3863, 3863, 3863, 3863,    0,    0,
4384      3863, 3863, 3864, 3864, 3864, 3864,    0, 3864,    0, 3864,
4385
4386      3865, 3865, 3865, 3865,    0,    0, 3865, 3865, 3866, 3866,
4387      3866,    0,    0,    0, 3866, 3867, 3867, 3867, 3867,    0,
4388         0, 3867, 3867, 3868, 3868, 3868, 3868,    0,    0, 3868,
4389      3868, 3869, 3869, 3869,    0,    0,    0, 3869, 3870, 3870,
4390      3870, 3870,    0,    0, 3870, 3870, 3871, 3871, 3871, 3871,
4391         0,    0, 3871, 3871, 3872, 3872, 3872,    0,    0,    0,
4392      3872, 3873, 3873, 3873,    0,    0,    0, 3873, 3874, 3874,
4393      3874, 3874,    0,    0, 3874, 3874, 3875, 3875, 3875, 3875,
4394         0,    0, 3875, 3875, 3876, 3876, 3876,    0,    0,    0,
4395      3876, 3877, 3877, 3877, 3877,    0,    0, 3877, 3877, 3878,
4396
4397      3878, 3878, 3878,    0,    0, 3878, 3878, 3879, 3879, 3879,
4398         0,    0,    0, 3879, 3880, 3880, 3880, 3880,    0, 3880,
4399         0, 3880, 3881, 3881, 3881, 3881,    0,    0, 3881, 3881,
4400      3882, 3882, 3882,    0,    0,    0, 3882, 3883, 3883, 3883,
4401      3883,    0,    0, 3883, 3883, 3884, 3884, 3884,    0,    0,
4402         0, 3884, 3885, 3885, 3885, 3885,    0,    0, 3885, 3885,
4403      3886, 3886, 3886,    0,    0,    0, 3886, 3887, 3887, 3887,
4404      3887,    0,    0, 3887, 3887, 3888, 3888, 3888,    0,    0,
4405         0, 3888, 3889, 3889, 3889, 3889,    0,    0, 3889, 3889,
4406      3890, 3890, 3890, 3890,    0, 3890,    0, 3890, 3891, 3891,
4407
4408      3891, 3891,    0,    0, 3891, 3891, 3892, 3892, 3892, 3892,
4409         0, 3892,    0, 3892, 3893, 3893, 3893, 3893,    0,    0,
4410      3893, 3893, 3894, 3894, 3894,    0,    0,    0, 3894, 3895,
4411      3895, 3895, 3895,    0,    0, 3895, 3895, 3896, 3896, 3896,
4412      3896,    0, 3896,    0, 3896, 3897, 3897, 3897, 3897,    0,
4413         0, 3897, 3897, 3898, 3898, 3898, 3898, 3898, 3898, 3898,
4414      3898, 3898, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899,
4415      3899, 3900, 3900, 3900,    0,    0,    0, 3900, 3901, 3901,
4416      3901, 3901,    0,    0, 3901, 3901, 3902, 3902, 3902, 3902,
4417         0,    0, 3902, 3902, 3903, 3903, 3903,    0,    0,    0,
4418
4419      3903, 3904, 3904, 3904, 3904,    0,    0, 3904, 3904, 3905,
4420      3905, 3905, 3905,    0,    0, 3905, 3905, 3906, 3906, 3906,
4421      3906,    0,    0, 3906, 3906, 3907, 3907, 3907, 3907,    0,
4422         0, 3907, 3907, 3908, 3908, 3908,    0,    0,    0, 3908,
4423      3909, 3909, 3909, 3909,    0,    0, 3909, 3909, 3910, 3910,
4424      3910, 3910,    0,    0, 3910, 3910, 3911, 3911, 3911,    0,
4425         0,    0, 3911, 3912, 3912, 3912, 3912,    0,    0, 3912,
4426      3912, 3913, 3913, 3913, 3913,    0,    0, 3913, 3913, 3914,
4427      3914, 3914,    0,    0,    0, 3914, 3915, 3915, 3915,    0,
4428         0,    0, 3915, 3916, 3916, 3916, 3916,    0,    0, 3916,
4429
4430      3916, 3917, 3917, 3917, 3917,    0,    0, 3917, 3917, 3918,
4431      3918, 3918,    0,    0,    0, 3918, 3919, 3919, 3919, 3919,
4432         0,    0, 3919, 3919, 3920, 3920, 3920,    0,    0,    0,
4433      3920, 3921, 3921, 3921, 3921,    0,    0, 3921, 3921, 3922,
4434      3922, 3922, 3922,    0, 3922,    0, 3922, 3923, 3923, 3923,
4435      3923,    0,    0, 3923, 3923, 3924, 3924, 3924,    0,    0,
4436         0, 3924, 3925, 3925, 3925, 3925,    0,    0, 3925, 3925,
4437      3926, 3926, 3926,    0,    0,    0, 3926, 3927, 3927, 3927,
4438         0,    0,    0, 3927, 3928, 3928, 3928, 3928,    0,    0,
4439      3928, 3928, 3929, 3929, 3929,    0,    0,    0, 3929, 3930,
4440
4441      3930, 3930, 3930,    0,    0, 3930, 3930, 3931, 3931, 3931,
4442         0,    0,    0, 3931, 3932, 3932, 3932, 3932,    0,    0,
4443      3932, 3932, 3933, 3933, 3933,    0,    0,    0, 3933, 3934,
4444      3934, 3934, 3934,    0,    0, 3934, 3934, 3935, 3935, 3935,
4445      3935, 3935, 3935, 3935, 3935, 3935, 3936, 3936, 3936, 3936,
4446      3936, 3936, 3936, 3936, 3936, 3937, 3937, 3937,    0,    0,
4447         0, 3937, 3938, 3938, 3938, 3938,    0,    0, 3938, 3938,
4448      3939, 3939, 3939, 3939,    0,    0, 3939, 3939, 3940, 3940,
4449      3940, 3940,    0, 3940,    0, 3940, 3941, 3941, 3941, 3941,
4450         0,    0, 3941, 3941, 3942, 3942, 3942, 3942,    0,    0,
4451
4452      3942, 3942, 3943, 3943, 3943, 3943,    0,    0, 3943, 3943,
4453      3944, 3944, 3944, 3944,    0,    0, 3944, 3944, 3945, 3945,
4454      3945,    0,    0,    0, 3945, 3946, 3946, 3946, 3946,    0,
4455         0, 3946, 3946, 3947, 3947, 3947,    0,    0,    0, 3947,
4456      3948, 3948, 3948, 3948,    0,    0, 3948, 3948, 3949, 3949,
4457      3949, 3949,    0,    0, 3949, 3949, 3950, 3950, 3950, 3950,
4458         0, 3950,    0, 3950, 3951, 3951, 3951, 3951,    0, 3951,
4459         0, 3951, 3952, 3952, 3952, 3952,    0,    0, 3952, 3952,
4460      3953, 3953, 3953, 3953,    0,    0, 3953, 3953, 3954, 3954,
4461      3954, 3954,    0, 3954,    0, 3954, 3955, 3955, 3955, 3955,
4462
4463         0,    0, 3955, 3955, 3956, 3956, 3956,    0,    0,    0,
4464      3956, 3957, 3957, 3957, 3957,    0,    0, 3957, 3957, 3958,
4465      3958, 3958, 3958,    0, 3958,    0, 3958, 3959, 3959, 3959,
4466      3959,    0,    0, 3959, 3959, 3960, 3960, 3960, 3960,    0,
4467      3960,    0, 3960, 3961, 3961, 3961,    0,    0,    0, 3961,
4468      3962, 3962, 3962,    0,    0,    0, 3962, 3963, 3963, 3963,
4469         0,    0,    0, 3963, 3964, 3964, 3964, 3964,    0,    0,
4470      3964, 3964, 3965, 3965, 3965,    0,    0,    0, 3965, 3966,
4471      3966, 3966, 3966,    0,    0, 3966, 3966, 3967, 3967, 3967,
4472         0,    0,    0, 3967, 3968, 3968, 3968, 3968,    0,    0,
4473
4474      3968, 3968, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
4475      3969, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970,
4476      3971, 3971, 3971,    0,    0,    0, 3971, 3972, 3972, 3972,
4477      3972,    0,    0, 3972, 3972, 3973, 3973, 3973, 3973,    0,
4478         0, 3973, 3973, 3974, 3974, 3974, 3974,    0,    0, 3974,
4479      3974, 3975, 3975, 3975, 3975,    0,    0, 3975, 3975, 3976,
4480      3976, 3976,    0,    0,    0, 3976, 3977, 3977, 3977,    0,
4481         0,    0, 3977, 3978, 3978, 3978, 3978,    0,    0, 3978,
4482      3978, 3979, 3979, 3979,    0,    0,    0, 3979, 3980, 3980,
4483      3980, 3980,    0,    0, 3980, 3980, 3981, 3981, 3981, 3981,
4484
4485         0,    0, 3981, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
4486      3982, 3982, 3982, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
4487      3983, 3983, 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
4488      3984, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985,
4489      3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3987,
4490      3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3480, 3480,
4491      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4492      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4493      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4494      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4495
4496      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4497      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4498      3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4499      3480, 3480, 3480
4500     } ;
4501
4502 /* Table of booleans, true if rule could match eol. */
4503 static yyconst flex_int32_t yy_rule_can_match_eol[596] =
4504     {   0,
4505 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4506     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4507     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4508     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4509     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4510     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4511     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4512     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4513     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4514     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4515     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
4516     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4517     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4518     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4519     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4520     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4521     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4522     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4523     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4524     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4525     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4526     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4527     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4528     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4529     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4530     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4531     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4532     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4533     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
4534     0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4535
4536 static yy_state_type yy_last_accepting_state;
4537 static char *yy_last_accepting_cpos;
4538
4539 extern int surf_parse__flex_debug;
4540 int surf_parse__flex_debug = 0;
4541
4542 /* The intent behind this definition is that it'll catch
4543  * any uses of REJECT which flex missed.
4544  */
4545 #define REJECT reject_used_but_not_detected
4546 #define yymore() yymore_used_but_not_detected
4547 #define YY_MORE_ADJ 0
4548 #define YY_RESTORE_YY_MORE_OFFSET
4549 char *surf_parse_text;
4550 /* Validating XML processor for src/surf/simgrid.dtd.
4551  *
4552  * This program was generated with the FleXML XML processor generator.
4553  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4554  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4555  * (1.9.6).
4556  * 
4557  * There are two, intertwined parts to this program, part A and part B.
4558  *
4559  * Part A
4560  * ------
4561  * 
4562  * Some parts, here collectively called "Part A", are found in the 
4563  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4564  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4565  *
4566  * You can redistribute, use, perform, display and/or modify "Part A"
4567  * provided the following two conditions hold:
4568  *
4569  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4570  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4571  *    FITNESS FOR A PARTICULAR PURPOSE.
4572  *
4573  * 2. The program distribution conditions do not in any way affect the
4574  *    distribution conditions of the FleXML system used to generate this
4575  *    file or any version of FleXML derived from that system.
4576  *
4577  * Notice that these are explicit rights granted to you for files
4578  * generated by the FleXML system.  For your rights in connection with
4579  * the FleXML system itself please consult the GNU General Public License.
4580  * 
4581  * Part B
4582  * ------
4583  * 
4584  * The other parts, here collectively called "Part B", and which came 
4585  * from the DTD used by FleXML to generate this program, can be 
4586  * distributed (or not, as the case may be) under the terms of whoever
4587  * wrote them, provided these terms respect and obey the two conditions 
4588  * above under the heading "Part A".
4589  *
4590  * The author of and contributors to FleXML specifically disclaim
4591  * any copyright interest in "Part B", unless "Part B" was written 
4592  * by the author of or contributors to FleXML.
4593  * 
4594  */
4595
4596 /* Version strings. */
4597 const char surfxml_flexml_version[] = "1.9.6";
4598
4599 /* ANSI headers. */
4600 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4601 #include <stdio.h>
4602 #include <string.h>
4603 #include <assert.h>
4604 #include <stdarg.h>
4605 #include <ctype.h>
4606      
4607 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4608 # ifndef __STRICT_ANSI__
4609 #  include <io.h>
4610 #  include <process.h>
4611 # endif
4612 #else
4613 # include <unistd.h>
4614 #endif
4615      
4616 #ifndef FLEXML_INDEXSTACKSIZE
4617 #define FLEXML_INDEXSTACKSIZE 1000
4618 #endif
4619
4620 /* Generated definitions. */
4621 #define FLEXML_yylineno
4622 #ifndef FLEXML_BUFFERSTACKSIZE
4623 #define FLEXML_BUFFERSTACKSIZE 1000000
4624 #endif
4625 #define FLEXML_NEED_BUFFERLIT
4626
4627 /* XML processor api. */
4628 /* FleXML-provided data. */
4629 int surfxml_pcdata_ix;
4630 extern char *surfxml_bufferstack;
4631 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4632 AT_surfxml_AS_id AX_surfxml_AS_id;
4633 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4634 short int surfxml_AS_id_isset;
4635 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4636 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4637 short int surfxml_AS_routing_isset;
4638 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4639 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4640 short int surfxml_ASroute_dst_isset;
4641 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4642 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4643 short int surfxml_ASroute_gw___dst_isset;
4644 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4645 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4646 short int surfxml_ASroute_gw___src_isset;
4647 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4648 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4649 short int surfxml_ASroute_src_isset;
4650 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4651 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4652 short int surfxml_ASroute_symmetrical_isset;
4653 AT_surfxml_argument_value AX_surfxml_argument_value;
4654 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4655 short int surfxml_argument_value_isset;
4656 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4657 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4658 short int surfxml_backbone_bandwidth_isset;
4659 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4660 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4661 short int surfxml_backbone_id_isset;
4662 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4663 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4664 short int surfxml_backbone_latency_isset;
4665 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4666 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4667 short int surfxml_bypassASroute_dst_isset;
4668 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4669 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4670 short int surfxml_bypassASroute_gw___dst_isset;
4671 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4672 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4673 short int surfxml_bypassASroute_gw___src_isset;
4674 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4675 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4676 short int surfxml_bypassASroute_src_isset;
4677 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4678 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4679 short int surfxml_bypassRoute_dst_isset;
4680 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4681 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4682 short int surfxml_bypassRoute_src_isset;
4683 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4684 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4685 short int surfxml_cabinet_bw_isset;
4686 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4687 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4688 short int surfxml_cabinet_id_isset;
4689 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4690 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4691 short int surfxml_cabinet_lat_isset;
4692 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4693 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4694 short int surfxml_cabinet_prefix_isset;
4695 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4696 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4697 short int surfxml_cabinet_radical_isset;
4698 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
4699 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
4700 short int surfxml_cabinet_speed_isset;
4701 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4702 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4703 short int surfxml_cabinet_suffix_isset;
4704 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4705 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4706 short int surfxml_cluster_availability___file_isset;
4707 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4708 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4709 short int surfxml_cluster_bb___bw_isset;
4710 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4711 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4712 short int surfxml_cluster_bb___lat_isset;
4713 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4714 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4715 short int surfxml_cluster_bb___sharing___policy_isset;
4716 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4717 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4718 short int surfxml_cluster_bw_isset;
4719 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4720 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4721 short int surfxml_cluster_core_isset;
4722 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4723 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4724 short int surfxml_cluster_id_isset;
4725 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4726 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4727 short int surfxml_cluster_lat_isset;
4728 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4729 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4730 short int surfxml_cluster_limiter___link_isset;
4731 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4732 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4733 short int surfxml_cluster_loopback___bw_isset;
4734 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4735 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4736 short int surfxml_cluster_loopback___lat_isset;
4737 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4738 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4739 short int surfxml_cluster_prefix_isset;
4740 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4741 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4742 short int surfxml_cluster_radical_isset;
4743 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4744 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4745 short int surfxml_cluster_router___id_isset;
4746 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4747 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4748 short int surfxml_cluster_sharing___policy_isset;
4749 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
4750 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
4751 short int surfxml_cluster_speed_isset;
4752 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4753 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4754 short int surfxml_cluster_state___file_isset;
4755 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4756 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4757 short int surfxml_cluster_suffix_isset;
4758 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4759 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4760 short int surfxml_cluster_topo___parameters_isset;
4761 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4762 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4763 short int surfxml_cluster_topology_isset;
4764 AT_surfxml_config_id AX_surfxml_config_id;
4765 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4766 short int surfxml_config_id_isset;
4767 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4768 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4769 short int surfxml_gpu_name_isset;
4770 AT_surfxml_host_availability AX_surfxml_host_availability;
4771 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4772 short int surfxml_host_availability_isset;
4773 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4774 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4775 short int surfxml_host_availability___file_isset;
4776 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4777 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4778 short int surfxml_host_coordinates_isset;
4779 AT_surfxml_host_core AX_surfxml_host_core;
4780 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4781 short int surfxml_host_core_isset;
4782 AT_surfxml_host_id AX_surfxml_host_id;
4783 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4784 short int surfxml_host_id_isset;
4785 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4786 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4787 short int surfxml_host_pstate_isset;
4788 AT_surfxml_host_speed AX_surfxml_host_speed;
4789 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
4790 short int surfxml_host_speed_isset;
4791 AT_surfxml_host_state AX_surfxml_host_state;
4792 #define A_surfxml_host_state AX_surfxml_host_state
4793 short int surfxml_host_state_isset;
4794 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4795 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4796 short int surfxml_host_state___file_isset;
4797 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4798 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4799 short int surfxml_host___link_down_isset;
4800 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4801 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4802 short int surfxml_host___link_id_isset;
4803 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4804 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4805 short int surfxml_host___link_up_isset;
4806 AT_surfxml_include_file AX_surfxml_include_file;
4807 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4808 short int surfxml_include_file_isset;
4809 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4810 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4811 short int surfxml_link_bandwidth_isset;
4812 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4813 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4814 short int surfxml_link_bandwidth___file_isset;
4815 AT_surfxml_link_id AX_surfxml_link_id;
4816 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4817 short int surfxml_link_id_isset;
4818 AT_surfxml_link_latency AX_surfxml_link_latency;
4819 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4820 short int surfxml_link_latency_isset;
4821 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4822 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4823 short int surfxml_link_latency___file_isset;
4824 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4825 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4826 short int surfxml_link_sharing___policy_isset;
4827 AT_surfxml_link_state AX_surfxml_link_state;
4828 #define A_surfxml_link_state AX_surfxml_link_state
4829 short int surfxml_link_state_isset;
4830 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4831 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4832 short int surfxml_link_state___file_isset;
4833 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4834 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4835 short int surfxml_link___ctn_direction_isset;
4836 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4837 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4838 short int surfxml_link___ctn_id_isset;
4839 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4840 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4841 short int surfxml_model___prop_id_isset;
4842 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4843 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4844 short int surfxml_model___prop_value_isset;
4845 AT_surfxml_mount_name AX_surfxml_mount_name;
4846 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4847 short int surfxml_mount_name_isset;
4848 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4849 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4850 short int surfxml_mount_storageId_isset;
4851 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4852 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4853 short int surfxml_mstorage_name_isset;
4854 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4855 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4856 short int surfxml_mstorage_typeId_isset;
4857 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4858 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4859 short int surfxml_peer_availability___file_isset;
4860 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4861 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4862 short int surfxml_peer_bw___in_isset;
4863 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4864 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4865 short int surfxml_peer_bw___out_isset;
4866 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4867 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4868 short int surfxml_peer_coordinates_isset;
4869 AT_surfxml_peer_id AX_surfxml_peer_id;
4870 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4871 short int surfxml_peer_id_isset;
4872 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4873 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4874 short int surfxml_peer_lat_isset;
4875 AT_surfxml_peer_speed AX_surfxml_peer_speed;
4876 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
4877 short int surfxml_peer_speed_isset;
4878 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4879 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4880 short int surfxml_peer_state___file_isset;
4881 AT_surfxml_platform_version AX_surfxml_platform_version;
4882 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4883 short int surfxml_platform_version_isset;
4884 AT_surfxml_process_function AX_surfxml_process_function;
4885 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4886 short int surfxml_process_function_isset;
4887 AT_surfxml_process_host AX_surfxml_process_host;
4888 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4889 short int surfxml_process_host_isset;
4890 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4891 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4892 short int surfxml_process_kill___time_isset;
4893 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4894 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4895 short int surfxml_process_on___failure_isset;
4896 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4897 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4898 short int surfxml_process_start___time_isset;
4899 AT_surfxml_prop_id AX_surfxml_prop_id;
4900 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4901 short int surfxml_prop_id_isset;
4902 AT_surfxml_prop_value AX_surfxml_prop_value;
4903 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4904 short int surfxml_prop_value_isset;
4905 AT_surfxml_random_generator AX_surfxml_random_generator;
4906 #define A_surfxml_random_generator AX_surfxml_random_generator
4907 short int surfxml_random_generator_isset;
4908 AT_surfxml_random_id AX_surfxml_random_id;
4909 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4910 short int surfxml_random_id_isset;
4911 AT_surfxml_random_max AX_surfxml_random_max;
4912 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4913 short int surfxml_random_max_isset;
4914 AT_surfxml_random_mean AX_surfxml_random_mean;
4915 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4916 short int surfxml_random_mean_isset;
4917 AT_surfxml_random_min AX_surfxml_random_min;
4918 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4919 short int surfxml_random_min_isset;
4920 AT_surfxml_random_radical AX_surfxml_random_radical;
4921 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4922 short int surfxml_random_radical_isset;
4923 AT_surfxml_random_seed AX_surfxml_random_seed;
4924 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4925 short int surfxml_random_seed_isset;
4926 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4927 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4928 short int surfxml_random_std___deviation_isset;
4929 AT_surfxml_route_dst AX_surfxml_route_dst;
4930 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4931 short int surfxml_route_dst_isset;
4932 AT_surfxml_route_src AX_surfxml_route_src;
4933 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4934 short int surfxml_route_src_isset;
4935 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4936 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4937 short int surfxml_route_symmetrical_isset;
4938 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4939 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4940 short int surfxml_router_coordinates_isset;
4941 AT_surfxml_router_id AX_surfxml_router_id;
4942 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4943 short int surfxml_router_id_isset;
4944 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4945 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4946 short int surfxml_storage_attach_isset;
4947 AT_surfxml_storage_content AX_surfxml_storage_content;
4948 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4949 short int surfxml_storage_content_isset;
4950 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4951 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4952 short int surfxml_storage_content___type_isset;
4953 AT_surfxml_storage_id AX_surfxml_storage_id;
4954 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4955 short int surfxml_storage_id_isset;
4956 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4957 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4958 short int surfxml_storage_typeId_isset;
4959 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4960 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4961 short int surfxml_storage___type_content_isset;
4962 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4963 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4964 short int surfxml_storage___type_content___type_isset;
4965 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4966 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4967 short int surfxml_storage___type_id_isset;
4968 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4969 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4970 short int surfxml_storage___type_model_isset;
4971 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4972 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4973 short int surfxml_storage___type_size_isset;
4974 AT_surfxml_trace_file AX_surfxml_trace_file;
4975 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4976 short int surfxml_trace_file_isset;
4977 AT_surfxml_trace_id AX_surfxml_trace_id;
4978 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4979 short int surfxml_trace_id_isset;
4980 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4981 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4982 short int surfxml_trace_periodicity_isset;
4983 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4984 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4985 short int surfxml_trace___connect_element_isset;
4986 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4987 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4988 short int surfxml_trace___connect_kind_isset;
4989 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4990 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4991 short int surfxml_trace___connect_trace_isset;
4992
4993 /* XML state. */
4994 #ifdef FLEX_DEBUG
4995 # define ENTER(state)   debug_enter(state,#state)
4996 # define LEAVE          debug_leave()
4997 # define SET(state)     debug_set(state,#state)
4998   static void debug_enter(int, const char*);
4999   static void debug_leave(void);
5000   static void debug_set(int, const char*);
5001 #else
5002 # define ENTER(state)   (yy_push_state(state))
5003 # define LEAVE          (yy_pop_state())
5004 # define SET(state)     BEGIN(state)
5005 #endif
5006
5007 /* Generic actions. */
5008 #define SKIP    /*skip*/
5009 #define SUCCEED        CLEANUP; return 0
5010
5011 #define FAIL    return fail
5012 static int fail(const char*, ...);
5013
5014 enum {flexml_max_err_msg_size = 512};
5015 static char flexml_err_msg[flexml_max_err_msg_size];
5016 const char * surfxml_parse_err_msg()
5017 {
5018     return flexml_err_msg;
5019 }
5020 static void reset_surfxml_parse_err_msg()
5021 {
5022     flexml_err_msg[0] = '\0';
5023 }
5024
5025 /* Cleanup */
5026 static void cleanup(void);
5027 #define CLEANUP  cleanup()
5028
5029 /* Text buffer stack handling. */
5030 char *surfxml_bufferstack = NULL;
5031 static int blimit = FLEXML_BUFFERSTACKSIZE;
5032 static int bnext = 1;
5033
5034 static int *indexstack = NULL;
5035 static int ilimit = FLEXML_INDEXSTACKSIZE;
5036 static int inext = 1;
5037
5038 #define BUFFERSET(P)  (P = bnext)
5039 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5040 #define BUFFERDONE    (BUFFERPUTC('\0'))
5041
5042 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5043
5044 /* after this is called, there are at least 2 slots left in the stack */
5045 static int ck_blimit()
5046 {
5047      if (bnext >= blimit) {
5048          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5049          {
5050              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5051              assert(temp);
5052              surfxml_bufferstack = temp;
5053          }
5054      }
5055      return 0;
5056 }
5057
5058 /* after this is called, there are at least 2 slots left in the stack */
5059 static int ck_ilimit()
5060 {
5061      if (inext >= ilimit) {
5062          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5063          {
5064              int *temp = (int *) realloc(indexstack, ilimit);
5065              assert(temp);
5066              indexstack = temp;
5067          }
5068      }
5069      return 0;
5070 }
5071
5072 #ifdef FLEXML_NEED_BUFFERLIT
5073 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5074 {
5075    BUFFERSET(*pp);
5076    if (c) {
5077       const char *s = strchr(text, c), *e = strrchr(text, c);
5078       assert(s && e && s <= e);
5079       ++s;
5080       while (s < e) {
5081          if (isspace(*s)) {
5082             BUFFERPUTC(' ');
5083             do ++s; while (s < e && isspace(*s));
5084          } else
5085            BUFFERPUTC(*s++);
5086       }
5087    } else {
5088       const char *s = text;
5089       while (*s)
5090         BUFFERPUTC(*s++);
5091    }
5092    BUFFERDONE;
5093 }
5094 #endif
5095
5096 static void pushbuffer(int p)
5097 {
5098     ck_ilimit();
5099     indexstack[inext++] = p;
5100     indexstack[inext++] = bnext;    
5101 }
5102
5103 static int popbuffer(void)
5104 {
5105     assert(inext >= 2);
5106     bnext = indexstack[--inext];
5107     return indexstack[--inext];
5108 }
5109
5110 /* General internal entities are `unput' back onto the input stream... */
5111 #define ENTITYTEXT(T) \
5112   { char *s = (T), *e = s+strlen(s);\
5113     while (--e >= s) { unput(*e); }}
5114
5115 /* Flex standard options. */
5116 #define YY_NO_INPUT 1
5117 /* Flex user-requested options. */
5118 /* XML character classes (currently restricted to ASCII). */
5119 /* "Common syntactic structures." */
5120 /* "Names and Tokens." */
5121 /* Miscellaneous. */
5122 /* Parser states (flex `exclusive start conditions'):
5123  *
5124  * PROLOG       the XML prolog of the document before <?xml...>
5125  * DOCTYPE      the XML prolog of the document after <?xml...>
5126  * EPILOG       after the root element
5127  * INCOMMENT    inside an XML comment <!--....-->
5128  * INPI         inside an XML PI <?...?>
5129  * VALUE1       inside a '...'-delimited literal
5130  * VALUE2       inside a "..."-delimited literal
5131  * CDATA        inside a <![CDATA[...] ]> section.
5132  * ROOT_<tag>   expect root element <tag>
5133  * AL_<tag>     inside the attribute list for <tag>
5134  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5135  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5136  */
5137
5138 /* State names. */
5139 const char* *surfxml_statenames=NULL;
5140
5141 #define INITIAL 0
5142 #define PROLOG 1
5143 #define DOCTYPE 2
5144 #define EPILOG 3
5145 #define INCOMMENT 4
5146 #define INPI 5
5147 #define VALUE1 6
5148 #define VALUE2 7
5149 #define CDATA 8
5150 #define AL_surfxml_AS 9
5151 #define S_surfxml_AS 10
5152 #define S_surfxml_AS_1 11
5153 #define S_surfxml_AS_2 12
5154 #define S_surfxml_AS_3 13
5155 #define S_surfxml_AS_4 14
5156 #define S_surfxml_AS_5 15
5157 #define S_surfxml_AS_6 16
5158 #define S_surfxml_AS_7 17
5159 #define S_surfxml_AS_8 18
5160 #define E_surfxml_AS 19
5161 #define AL_surfxml_ASroute 20
5162 #define S_surfxml_ASroute 21
5163 #define S_surfxml_ASroute_1 22
5164 #define S_surfxml_ASroute_2 23
5165 #define E_surfxml_ASroute 24
5166 #define AL_surfxml_argument 25
5167 #define E_surfxml_argument 26
5168 #define AL_surfxml_backbone 27
5169 #define E_surfxml_backbone 28
5170 #define AL_surfxml_bypassASroute 29
5171 #define S_surfxml_bypassASroute 30
5172 #define S_surfxml_bypassASroute_1 31
5173 #define S_surfxml_bypassASroute_2 32
5174 #define E_surfxml_bypassASroute 33
5175 #define AL_surfxml_bypassRoute 34
5176 #define S_surfxml_bypassRoute 35
5177 #define S_surfxml_bypassRoute_1 36
5178 #define S_surfxml_bypassRoute_2 37
5179 #define E_surfxml_bypassRoute 38
5180 #define AL_surfxml_cabinet 39
5181 #define E_surfxml_cabinet 40
5182 #define AL_surfxml_cluster 41
5183 #define S_surfxml_cluster 42
5184 #define S_surfxml_cluster_1 43
5185 #define S_surfxml_cluster_2 44
5186 #define E_surfxml_cluster 45
5187 #define AL_surfxml_config 46
5188 #define S_surfxml_config 47
5189 #define S_surfxml_config_1 48
5190 #define S_surfxml_config_2 49
5191 #define E_surfxml_config 50
5192 #define AL_surfxml_gpu 51
5193 #define E_surfxml_gpu 52
5194 #define AL_surfxml_host 53
5195 #define S_surfxml_host 54
5196 #define S_surfxml_host_1 55
5197 #define S_surfxml_host_2 56
5198 #define E_surfxml_host 57
5199 #define AL_surfxml_host___link 58
5200 #define E_surfxml_host___link 59
5201 #define AL_surfxml_include 60
5202 #define S_surfxml_include 61
5203 #define S_surfxml_include_1 62
5204 #define S_surfxml_include_2 63
5205 #define E_surfxml_include 64
5206 #define AL_surfxml_link 65
5207 #define S_surfxml_link 66
5208 #define S_surfxml_link_1 67
5209 #define S_surfxml_link_2 68
5210 #define E_surfxml_link 69
5211 #define AL_surfxml_link___ctn 70
5212 #define E_surfxml_link___ctn 71
5213 #define AL_surfxml_model___prop 72
5214 #define E_surfxml_model___prop 73
5215 #define AL_surfxml_mount 74
5216 #define E_surfxml_mount 75
5217 #define AL_surfxml_mstorage 76
5218 #define E_surfxml_mstorage 77
5219 #define AL_surfxml_peer 78
5220 #define E_surfxml_peer 79
5221 #define ROOT_surfxml_platform 80
5222 #define AL_surfxml_platform 81
5223 #define S_surfxml_platform 82
5224 #define S_surfxml_platform_1 83
5225 #define S_surfxml_platform_2 84
5226 #define S_surfxml_platform_3 85
5227 #define S_surfxml_platform_4 86
5228 #define S_surfxml_platform_5 87
5229 #define S_surfxml_platform_6 88
5230 #define S_surfxml_platform_7 89
5231 #define S_surfxml_platform_8 90
5232 #define E_surfxml_platform 91
5233 #define AL_surfxml_process 92
5234 #define S_surfxml_process 93
5235 #define S_surfxml_process_1 94
5236 #define S_surfxml_process_2 95
5237 #define E_surfxml_process 96
5238 #define AL_surfxml_prop 97
5239 #define E_surfxml_prop 98
5240 #define AL_surfxml_random 99
5241 #define E_surfxml_random 100
5242 #define AL_surfxml_route 101
5243 #define S_surfxml_route 102
5244 #define S_surfxml_route_1 103
5245 #define S_surfxml_route_2 104
5246 #define E_surfxml_route 105
5247 #define AL_surfxml_router 106
5248 #define E_surfxml_router 107
5249 #define AL_surfxml_storage 108
5250 #define S_surfxml_storage 109
5251 #define S_surfxml_storage_1 110
5252 #define S_surfxml_storage_2 111
5253 #define E_surfxml_storage 112
5254 #define AL_surfxml_storage___type 113
5255 #define S_surfxml_storage___type 114
5256 #define S_surfxml_storage___type_1 115
5257 #define S_surfxml_storage___type_2 116
5258 #define E_surfxml_storage___type 117
5259 #define AL_surfxml_trace 118
5260 #define IN_trace 119
5261 #define AL_surfxml_trace___connect 120
5262 #define E_surfxml_trace___connect 121
5263 #define IMPOSSIBLE 122
5264
5265 #ifndef YY_NO_UNISTD_H
5266 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5267  * down here because we want the user's section 1 to have been scanned first.
5268  * The user has a chance to override it with an option.
5269  */
5270 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5271 #  ifndef __STRICT_ANSI__
5272 #    include <io.h>
5273 #    include <process.h>
5274 #  endif
5275 #else
5276 #  include <unistd.h>
5277 #endif
5278 #endif
5279
5280 #ifndef YY_EXTRA_TYPE
5281 #define YY_EXTRA_TYPE void *
5282 #endif
5283
5284 static int yy_init_globals (void );
5285
5286 /* Accessor methods to globals.
5287    These are made visible to non-reentrant scanners for convenience. */
5288
5289 int surf_parse_lex_destroy (void );
5290
5291 int surf_parse_get_debug (void );
5292
5293 void surf_parse_set_debug (int debug_flag  );
5294
5295 YY_EXTRA_TYPE surf_parse_get_extra (void );
5296
5297 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5298
5299 FILE *surf_parse_get_in (void );
5300
5301 void surf_parse_set_in  (FILE * in_str  );
5302
5303 FILE *surf_parse_get_out (void );
5304
5305 void surf_parse_set_out  (FILE * out_str  );
5306
5307 yy_size_t surf_parse_get_leng (void );
5308
5309 char *surf_parse_get_text (void );
5310
5311 int surf_parse_get_lineno (void );
5312
5313 void surf_parse_set_lineno (int line_number  );
5314
5315 /* Macros after this point can all be overridden by user definitions in
5316  * section 1.
5317  */
5318
5319 #ifndef YY_SKIP_YYWRAP
5320 #ifdef __cplusplus
5321 extern "C" int surf_parse_wrap (void );
5322 #else
5323 extern int surf_parse_wrap (void );
5324 #endif
5325 #endif
5326
5327 #ifndef yytext_ptr
5328 static void yy_flex_strncpy (char *,yyconst char *,int );
5329 #endif
5330
5331 #ifdef YY_NEED_STRLEN
5332 static int yy_flex_strlen (yyconst char * );
5333 #endif
5334
5335 #ifndef YY_NO_INPUT
5336
5337 #ifdef __cplusplus
5338 static int yyinput (void );
5339 #else
5340 static int input (void );
5341 #endif
5342
5343 #endif
5344
5345         static int yy_start_stack_ptr = 0;
5346         static int yy_start_stack_depth = 0;
5347         static int *yy_start_stack = NULL;
5348     
5349     static void yy_push_state (int new_state );
5350     
5351     static void yy_pop_state (void );
5352     
5353 /* Amount of stuff to slurp up with each read. */
5354 #ifndef YY_READ_BUF_SIZE
5355 #ifdef __ia64__
5356 /* On IA-64, the buffer size is 16k, not 8k */
5357 #define YY_READ_BUF_SIZE 16384
5358 #else
5359 #define YY_READ_BUF_SIZE 8192
5360 #endif /* __ia64__ */
5361 #endif
5362
5363 /* Copy whatever the last rule matched to the standard output. */
5364 #ifndef ECHO
5365 /* This used to be an fputs(), but since the string might contain NUL's,
5366  * we now use fwrite().
5367  */
5368 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5369 #endif
5370
5371 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5372  * is returned in "result".
5373  */
5374 #ifndef YY_INPUT
5375 #define YY_INPUT(buf,result,max_size) \
5376         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5377                 { \
5378                 int c = '*'; \
5379                 size_t n; \
5380                 for ( n = 0; n < max_size && \
5381                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5382                         buf[n] = (char) c; \
5383                 if ( c == '\n' ) \
5384                         buf[n++] = (char) c; \
5385                 if ( c == EOF && ferror( surf_parse_in ) ) \
5386                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5387                 result = n; \
5388                 } \
5389         else \
5390                 { \
5391                 errno=0; \
5392                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5393                         { \
5394                         if( errno != EINTR) \
5395                                 { \
5396                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5397                                 break; \
5398                                 } \
5399                         errno=0; \
5400                         clearerr(surf_parse_in); \
5401                         } \
5402                 }\
5403 \
5404
5405 #endif
5406
5407 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5408  * we don't want an extra ';' after the "return" because that will cause
5409  * some compilers to complain about unreachable statements.
5410  */
5411 #ifndef yyterminate
5412 #define yyterminate() return YY_NULL
5413 #endif
5414
5415 /* Number of entries by which start-condition stack grows. */
5416 #ifndef YY_START_STACK_INCR
5417 #define YY_START_STACK_INCR 25
5418 #endif
5419
5420 /* Report a fatal error. */
5421 #ifndef YY_FATAL_ERROR
5422 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5423 #endif
5424
5425 /* end tables serialization structures and prototypes */
5426
5427 /* Default declaration of generated scanner - a define so the user can
5428  * easily add parameters.
5429  */
5430 #ifndef YY_DECL
5431 #define YY_DECL_IS_OURS 1
5432
5433 extern int surf_parse_lex (void);
5434
5435 #define YY_DECL int surf_parse_lex (void)
5436 #endif /* !YY_DECL */
5437
5438 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5439  * have been set up.
5440  */
5441 #ifndef YY_USER_ACTION
5442 #define YY_USER_ACTION
5443 #endif
5444
5445 /* Code executed at the end of each rule. */
5446 #ifndef YY_BREAK
5447 #define YY_BREAK break;
5448 #endif
5449
5450 #define YY_RULE_SETUP \
5451         YY_USER_ACTION
5452
5453 /** The main scanner function which does all the work.
5454  */
5455 YY_DECL
5456 {
5457         yy_state_type yy_current_state;
5458         char *yy_cp, *yy_bp;
5459         int yy_act;
5460     
5461         if ( !(yy_init) )
5462                 {
5463                 (yy_init) = 1;
5464
5465 #ifdef YY_USER_INIT
5466                 YY_USER_INIT;
5467 #endif
5468
5469                 if ( ! (yy_start) )
5470                         (yy_start) = 1; /* first start state */
5471
5472                 if ( ! surf_parse_in )
5473                         surf_parse_in = stdin;
5474
5475                 if ( ! surf_parse_out )
5476                         surf_parse_out = stdout;
5477
5478                 if ( ! YY_CURRENT_BUFFER ) {
5479                         surf_parse_ensure_buffer_stack ();
5480                         YY_CURRENT_BUFFER_LVALUE =
5481                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5482                 }
5483
5484                 surf_parse__load_buffer_state( );
5485                 }
5486
5487         {
5488
5489  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5490  SET(PROLOG);
5491  reset_surfxml_parse_err_msg();
5492  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5493  assert(surfxml_bufferstack);
5494  #ifdef FLEX_DEBUG
5495  {
5496      int i;
5497      for (i = 0; i < blimit; i++) {
5498          surfxml_bufferstack[i] = '\377';
5499      }
5500  }
5501  #endif
5502  surfxml_bufferstack[0] = '\0';
5503  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5504  assert(indexstack);
5505  indexstack[0] = 0;
5506
5507   /* FleXML_init */
5508   bnext = inext = 1;
5509   surfxml_bufferliteral('\0', &bnext, "0.0");
5510   surfxml_bufferliteral('\0', &bnext, "2147483647");
5511   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5512   surfxml_bufferliteral('\0', &bnext, "1");
5513   surfxml_bufferliteral('\0', &bnext, "1.0");
5514   surfxml_bufferliteral('\0', &bnext, "0.0");
5515   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5516   surfxml_bufferliteral('\0', &bnext, "1");
5517   surfxml_bufferliteral('\0', &bnext, "0s");
5518   surfxml_bufferliteral('\0', &bnext, "-1.0");
5519   surfxml_bufferliteral('\0', &bnext, "-1.0");
5520   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5521   surfxml_statenames[PROLOG] = NULL;
5522   surfxml_statenames[DOCTYPE] = NULL;
5523   surfxml_statenames[EPILOG] = NULL;
5524   surfxml_statenames[INCOMMENT] = NULL;
5525   surfxml_statenames[INPI] = NULL;
5526   surfxml_statenames[VALUE1] = NULL;
5527   surfxml_statenames[VALUE2] = NULL;
5528   surfxml_statenames[CDATA] = NULL;
5529   surfxml_statenames[AL_surfxml_AS] = NULL;
5530   surfxml_statenames[S_surfxml_AS] = "AS";
5531   surfxml_statenames[S_surfxml_AS_1] = "AS";
5532   surfxml_statenames[S_surfxml_AS_2] = "AS";
5533   surfxml_statenames[S_surfxml_AS_3] = "AS";
5534   surfxml_statenames[S_surfxml_AS_4] = "AS";
5535   surfxml_statenames[S_surfxml_AS_5] = "AS";
5536   surfxml_statenames[S_surfxml_AS_6] = "AS";
5537   surfxml_statenames[S_surfxml_AS_7] = "AS";
5538   surfxml_statenames[S_surfxml_AS_8] = "AS";
5539   surfxml_statenames[E_surfxml_AS] = "AS";
5540   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5541   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5542   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5543   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5544   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5545   surfxml_statenames[AL_surfxml_argument] = NULL;
5546   surfxml_statenames[E_surfxml_argument] = "argument";
5547   surfxml_statenames[AL_surfxml_backbone] = NULL;
5548   surfxml_statenames[E_surfxml_backbone] = "backbone";
5549   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5550   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5551   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5552   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5553   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5554   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5555   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5556   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5557   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5558   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5559   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5560   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5561   surfxml_statenames[AL_surfxml_cluster] = NULL;
5562   surfxml_statenames[S_surfxml_cluster] = "cluster";
5563   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5564   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5565   surfxml_statenames[E_surfxml_cluster] = "cluster";
5566   surfxml_statenames[AL_surfxml_config] = NULL;
5567   surfxml_statenames[S_surfxml_config] = "config";
5568   surfxml_statenames[S_surfxml_config_1] = "config";
5569   surfxml_statenames[S_surfxml_config_2] = "config";
5570   surfxml_statenames[E_surfxml_config] = "config";
5571   surfxml_statenames[AL_surfxml_gpu] = NULL;
5572   surfxml_statenames[E_surfxml_gpu] = "gpu";
5573   surfxml_statenames[AL_surfxml_host] = NULL;
5574   surfxml_statenames[S_surfxml_host] = "host";
5575   surfxml_statenames[S_surfxml_host_1] = "host";
5576   surfxml_statenames[S_surfxml_host_2] = "host";
5577   surfxml_statenames[E_surfxml_host] = "host";
5578   surfxml_statenames[AL_surfxml_host___link] = NULL;
5579   surfxml_statenames[E_surfxml_host___link] = "host_link";
5580   surfxml_statenames[AL_surfxml_include] = NULL;
5581   surfxml_statenames[S_surfxml_include] = "include";
5582   surfxml_statenames[S_surfxml_include_1] = "include";
5583   surfxml_statenames[S_surfxml_include_2] = "include";
5584   surfxml_statenames[E_surfxml_include] = "include";
5585   surfxml_statenames[AL_surfxml_link] = NULL;
5586   surfxml_statenames[S_surfxml_link] = "link";
5587   surfxml_statenames[S_surfxml_link_1] = "link";
5588   surfxml_statenames[S_surfxml_link_2] = "link";
5589   surfxml_statenames[E_surfxml_link] = "link";
5590   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5591   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5592   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5593   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5594   surfxml_statenames[AL_surfxml_mount] = NULL;
5595   surfxml_statenames[E_surfxml_mount] = "mount";
5596   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5597   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5598   surfxml_statenames[AL_surfxml_peer] = NULL;
5599   surfxml_statenames[E_surfxml_peer] = "peer";
5600   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5601   surfxml_statenames[AL_surfxml_platform] = NULL;
5602   surfxml_statenames[S_surfxml_platform] = "platform";
5603   surfxml_statenames[S_surfxml_platform_1] = "platform";
5604   surfxml_statenames[S_surfxml_platform_2] = "platform";
5605   surfxml_statenames[S_surfxml_platform_3] = "platform";
5606   surfxml_statenames[S_surfxml_platform_4] = "platform";
5607   surfxml_statenames[S_surfxml_platform_5] = "platform";
5608   surfxml_statenames[S_surfxml_platform_6] = "platform";
5609   surfxml_statenames[S_surfxml_platform_7] = "platform";
5610   surfxml_statenames[S_surfxml_platform_8] = "platform";
5611   surfxml_statenames[E_surfxml_platform] = "platform";
5612   surfxml_statenames[AL_surfxml_process] = NULL;
5613   surfxml_statenames[S_surfxml_process] = "process";
5614   surfxml_statenames[S_surfxml_process_1] = "process";
5615   surfxml_statenames[S_surfxml_process_2] = "process";
5616   surfxml_statenames[E_surfxml_process] = "process";
5617   surfxml_statenames[AL_surfxml_prop] = NULL;
5618   surfxml_statenames[E_surfxml_prop] = "prop";
5619   surfxml_statenames[AL_surfxml_random] = NULL;
5620   surfxml_statenames[E_surfxml_random] = "random";
5621   surfxml_statenames[AL_surfxml_route] = NULL;
5622   surfxml_statenames[S_surfxml_route] = "route";
5623   surfxml_statenames[S_surfxml_route_1] = "route";
5624   surfxml_statenames[S_surfxml_route_2] = "route";
5625   surfxml_statenames[E_surfxml_route] = "route";
5626   surfxml_statenames[AL_surfxml_router] = NULL;
5627   surfxml_statenames[E_surfxml_router] = "router";
5628   surfxml_statenames[AL_surfxml_storage] = NULL;
5629   surfxml_statenames[S_surfxml_storage] = "storage";
5630   surfxml_statenames[S_surfxml_storage_1] = "storage";
5631   surfxml_statenames[S_surfxml_storage_2] = "storage";
5632   surfxml_statenames[E_surfxml_storage] = "storage";
5633   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5634   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5635   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5636   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5637   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5638   surfxml_statenames[AL_surfxml_trace] = NULL;
5639   surfxml_statenames[IN_trace] = "trace";
5640   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5641   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5642   }
5643
5644  /* COMMENTS and PIs: handled uniformly for efficiency. */
5645
5646         while ( 1 )             /* loops until end-of-file is reached */
5647                 {
5648                 yy_cp = (yy_c_buf_p);
5649
5650                 /* Support of surf_parse_text. */
5651                 *yy_cp = (yy_hold_char);
5652
5653                 /* yy_bp points to the position in yy_ch_buf of the start of
5654                  * the current run.
5655                  */
5656                 yy_bp = yy_cp;
5657
5658                 yy_current_state = (yy_start);
5659 yy_match:
5660                 do
5661                         {
5662                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5663                         if ( yy_accept[yy_current_state] )
5664                                 {
5665                                 (yy_last_accepting_state) = yy_current_state;
5666                                 (yy_last_accepting_cpos) = yy_cp;
5667                                 }
5668                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5669                                 {
5670                                 yy_current_state = (int) yy_def[yy_current_state];
5671                                 if ( yy_current_state >= 3481 )
5672                                         yy_c = yy_meta[(unsigned int) yy_c];
5673                                 }
5674                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5675                         ++yy_cp;
5676                         }
5677                 while ( yy_base[yy_current_state] != 12459 );
5678
5679 yy_find_action:
5680                 yy_act = yy_accept[yy_current_state];
5681                 if ( yy_act == 0 )
5682                         { /* have to back up */
5683                         yy_cp = (yy_last_accepting_cpos);
5684                         yy_current_state = (yy_last_accepting_state);
5685                         yy_act = yy_accept[yy_current_state];
5686                         }
5687
5688                 YY_DO_BEFORE_ACTION;
5689
5690                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5691                         {
5692                         yy_size_t yyl;
5693                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5694                                 if ( surf_parse_text[yyl] == '\n' )
5695                                            
5696     surf_parse_lineno++;
5697 ;
5698                         }
5699
5700 do_action:      /* This label is used only to access EOF actions. */
5701
5702                 switch ( yy_act )
5703         { /* beginning of action switch */
5704                         case 0: /* must back up */
5705                         /* undo the effects of YY_DO_BEFORE_ACTION */
5706                         *yy_cp = (yy_hold_char);
5707                         yy_cp = (yy_last_accepting_cpos);
5708                         yy_current_state = (yy_last_accepting_state);
5709                         goto yy_find_action;
5710
5711 case 1:
5712 YY_RULE_SETUP
5713 ENTER(INCOMMENT);
5714         YY_BREAK
5715 case 2:
5716 YY_RULE_SETUP
5717 ENTER(INPI);
5718         YY_BREAK
5719
5720 case 3:
5721 YY_RULE_SETUP
5722 LEAVE;
5723         YY_BREAK
5724 case 4:
5725 case 5:
5726 case 6:
5727 /* rule 6 can match eol */
5728 YY_RULE_SETUP
5729 SKIP;
5730         YY_BREAK
5731 case YY_STATE_EOF(INCOMMENT):
5732 FAIL("EOF in comment.");
5733         YY_BREAK
5734
5735 case 7:
5736 YY_RULE_SETUP
5737 LEAVE;
5738         YY_BREAK
5739 case 8:
5740 case 9:
5741 /* rule 9 can match eol */
5742 YY_RULE_SETUP
5743 SKIP;
5744         YY_BREAK
5745 case YY_STATE_EOF(INPI):
5746 FAIL("EOF in PI (processing instruction).");
5747         YY_BREAK
5748
5749 /* SPACES: skipped uniformly */
5750 case 10:
5751 /* rule 10 can match eol */
5752 YY_RULE_SETUP
5753 SKIP;
5754         YY_BREAK
5755 /* PROLOG: determine root element and process it. */
5756
5757 case 11:
5758 /* rule 11 can match eol */
5759 YY_RULE_SETUP
5760 SET(DOCTYPE); 
5761         YY_BREAK
5762 case 12:
5763 /* rule 12 can match eol */
5764 YY_RULE_SETUP
5765 FAIL("Bad declaration %s.",surf_parse_text);
5766         YY_BREAK
5767
5768 case 13:
5769 /* rule 13 can match eol */
5770 YY_RULE_SETUP
5771 SET(ROOT_surfxml_platform);
5772         YY_BREAK
5773 case 14:
5774 /* rule 14 can match eol */
5775 YY_RULE_SETUP
5776 FAIL("Bad declaration %s.",surf_parse_text);
5777         YY_BREAK
5778 case 15:
5779 YY_RULE_SETUP
5780 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5781         YY_BREAK
5782 case YY_STATE_EOF(PROLOG):
5783 case YY_STATE_EOF(DOCTYPE):
5784 FAIL("EOF in prolog.");
5785         YY_BREAK
5786
5787 /* RULES DERIVED FROM DTD. */
5788 case 16:
5789 /* rule 16 can match eol */
5790 YY_RULE_SETUP
5791 FAIL("Starting tag <AS> is not allowed here.");
5792         YY_BREAK
5793 case 17:
5794 /* rule 17 can match eol */
5795 YY_RULE_SETUP
5796 {
5797   AX_surfxml_AS_id = 0;
5798   surfxml_AS_id_isset = 0;
5799   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
5800   surfxml_AS_routing_isset = 0;
5801   ENTER(AL_surfxml_AS); pushbuffer(0);
5802   }
5803         YY_BREAK
5804
5805 case 18:
5806 /* rule 18 can match eol */
5807 YY_RULE_SETUP
5808 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);
5809         YY_BREAK
5810 case 19:
5811 /* rule 19 can match eol */
5812 YY_RULE_SETUP
5813 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);
5814         YY_BREAK
5815 case 20:
5816 /* rule 20 can match eol */
5817 case 21:
5818 /* rule 21 can match eol */
5819 YY_RULE_SETUP
5820 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5821         YY_BREAK
5822 case 22:
5823 /* rule 22 can match eol */
5824 case 23:
5825 /* rule 23 can match eol */
5826 YY_RULE_SETUP
5827 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5828         YY_BREAK
5829 case 24:
5830 /* rule 24 can match eol */
5831 case 25:
5832 /* rule 25 can match eol */
5833 YY_RULE_SETUP
5834 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5835         YY_BREAK
5836 case 26:
5837 /* rule 26 can match eol */
5838 case 27:
5839 /* rule 27 can match eol */
5840 YY_RULE_SETUP
5841 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5842         YY_BREAK
5843 case 28:
5844 /* rule 28 can match eol */
5845 case 29:
5846 /* rule 29 can match eol */
5847 YY_RULE_SETUP
5848 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5849         YY_BREAK
5850 case 30:
5851 /* rule 30 can match eol */
5852 case 31:
5853 /* rule 31 can match eol */
5854 YY_RULE_SETUP
5855 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5856         YY_BREAK
5857 case 32:
5858 /* rule 32 can match eol */
5859 case 33:
5860 /* rule 33 can match eol */
5861 YY_RULE_SETUP
5862 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5863         YY_BREAK
5864 case 34:
5865 /* rule 34 can match eol */
5866 case 35:
5867 /* rule 35 can match eol */
5868 YY_RULE_SETUP
5869 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
5870         YY_BREAK
5871 case 36:
5872 /* rule 36 can match eol */
5873 case 37:
5874 /* rule 37 can match eol */
5875 YY_RULE_SETUP
5876 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___fat___tree;
5877         YY_BREAK
5878 case 38:
5879 YY_RULE_SETUP
5880 {
5881   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5882   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5883   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5884  }
5885         YY_BREAK
5886 case 39:
5887 YY_RULE_SETUP
5888 {
5889   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5890   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5891   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5892   switch (YY_START) {
5893    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;
5894    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5895    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;
5896   }
5897  }
5898         YY_BREAK
5899 case 40:
5900 YY_RULE_SETUP
5901 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5902         YY_BREAK
5903 case 41:
5904 YY_RULE_SETUP
5905 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5906         YY_BREAK
5907 case YY_STATE_EOF(AL_surfxml_AS):
5908 FAIL("EOF in attribute list of `AS' element.");
5909         YY_BREAK
5910
5911 case 42:
5912 /* rule 42 can match eol */
5913 YY_RULE_SETUP
5914 {
5915   LEAVE;
5916   ETag_surfxml_AS();
5917   popbuffer(); /* attribute */
5918   switch (YY_START) {
5919    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;
5920    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5921    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;
5922   }
5923  }
5924         YY_BREAK
5925 case 43:
5926 /* rule 43 can match eol */
5927 YY_RULE_SETUP
5928 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5929         YY_BREAK
5930 case 44:
5931 YY_RULE_SETUP
5932 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5933         YY_BREAK
5934 case YY_STATE_EOF(E_surfxml_AS):
5935 case YY_STATE_EOF(S_surfxml_AS):
5936 case YY_STATE_EOF(S_surfxml_AS_1):
5937 case YY_STATE_EOF(S_surfxml_AS_3):
5938 case YY_STATE_EOF(S_surfxml_AS_4):
5939 case YY_STATE_EOF(S_surfxml_AS_6):
5940 case YY_STATE_EOF(S_surfxml_AS_8):
5941 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5942         YY_BREAK
5943
5944 case 45:
5945 /* rule 45 can match eol */
5946 YY_RULE_SETUP
5947 FAIL("Starting tag <ASroute> is not allowed here.");
5948         YY_BREAK
5949 case 46:
5950 /* rule 46 can match eol */
5951 YY_RULE_SETUP
5952 {
5953   AX_surfxml_ASroute_dst = 0;
5954   surfxml_ASroute_dst_isset = 0;
5955   AX_surfxml_ASroute_gw___dst = 0;
5956   surfxml_ASroute_gw___dst_isset = 0;
5957   AX_surfxml_ASroute_gw___src = 0;
5958   surfxml_ASroute_gw___src_isset = 0;
5959   AX_surfxml_ASroute_src = 0;
5960   surfxml_ASroute_src_isset = 0;
5961   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5962   surfxml_ASroute_symmetrical_isset = 0;
5963   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5964   }
5965         YY_BREAK
5966
5967 case 47:
5968 /* rule 47 can match eol */
5969 YY_RULE_SETUP
5970 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);
5971         YY_BREAK
5972 case 48:
5973 /* rule 48 can match eol */
5974 YY_RULE_SETUP
5975 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);
5976         YY_BREAK
5977 case 49:
5978 /* rule 49 can match eol */
5979 YY_RULE_SETUP
5980 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);
5981         YY_BREAK
5982 case 50:
5983 /* rule 50 can match eol */
5984 YY_RULE_SETUP
5985 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);
5986         YY_BREAK
5987 case 51:
5988 /* rule 51 can match eol */
5989 YY_RULE_SETUP
5990 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);
5991         YY_BREAK
5992 case 52:
5993 /* rule 52 can match eol */
5994 YY_RULE_SETUP
5995 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);
5996         YY_BREAK
5997 case 53:
5998 /* rule 53 can match eol */
5999 YY_RULE_SETUP
6000 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);
6001         YY_BREAK
6002 case 54:
6003 /* rule 54 can match eol */
6004 YY_RULE_SETUP
6005 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);
6006         YY_BREAK
6007 case 55:
6008 /* rule 55 can match eol */
6009 case 56:
6010 /* rule 56 can match eol */
6011 YY_RULE_SETUP
6012 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6013         YY_BREAK
6014 case 57:
6015 /* rule 57 can match eol */
6016 case 58:
6017 /* rule 58 can match eol */
6018 YY_RULE_SETUP
6019 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6020         YY_BREAK
6021 case 59:
6022 YY_RULE_SETUP
6023 {
6024   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6025   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6026   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6027   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6028   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6029  }
6030         YY_BREAK
6031 case 60:
6032 YY_RULE_SETUP
6033 {
6034   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6035   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6036   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6037   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6038   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6039   switch (YY_START) {
6040    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6041    case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6042   }
6043  }
6044         YY_BREAK
6045 case 61:
6046 YY_RULE_SETUP
6047 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6048         YY_BREAK
6049 case 62:
6050 YY_RULE_SETUP
6051 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6052         YY_BREAK
6053 case YY_STATE_EOF(AL_surfxml_ASroute):
6054 FAIL("EOF in attribute list of `ASroute' element.");
6055         YY_BREAK
6056
6057 case 63:
6058 /* rule 63 can match eol */
6059 YY_RULE_SETUP
6060 {
6061   LEAVE;
6062   ETag_surfxml_ASroute();
6063   popbuffer(); /* attribute */
6064   switch (YY_START) {
6065    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6066    case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6067   }
6068  }
6069         YY_BREAK
6070 case 64:
6071 /* rule 64 can match eol */
6072 YY_RULE_SETUP
6073 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6074         YY_BREAK
6075 case 65:
6076 YY_RULE_SETUP
6077 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6078         YY_BREAK
6079 case YY_STATE_EOF(E_surfxml_ASroute):
6080 case YY_STATE_EOF(S_surfxml_ASroute):
6081 case YY_STATE_EOF(S_surfxml_ASroute_2):
6082 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
6083         YY_BREAK
6084
6085 case 66:
6086 /* rule 66 can match eol */
6087 YY_RULE_SETUP
6088 FAIL("Starting tag <argument> is not allowed here.");
6089         YY_BREAK
6090 case 67:
6091 /* rule 67 can match eol */
6092 YY_RULE_SETUP
6093 {
6094   AX_surfxml_argument_value = 0;
6095   surfxml_argument_value_isset = 0;
6096   ENTER(AL_surfxml_argument); pushbuffer(0);
6097   }
6098         YY_BREAK
6099
6100 case 68:
6101 /* rule 68 can match eol */
6102 YY_RULE_SETUP
6103 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);
6104         YY_BREAK
6105 case 69:
6106 /* rule 69 can match eol */
6107 YY_RULE_SETUP
6108 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);
6109         YY_BREAK
6110 case 70:
6111 YY_RULE_SETUP
6112 {
6113   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6114   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6115  }
6116         YY_BREAK
6117 case 71:
6118 YY_RULE_SETUP
6119 {
6120   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6121   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6122   switch (YY_START) {
6123    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6124   }
6125  }
6126         YY_BREAK
6127 case 72:
6128 YY_RULE_SETUP
6129 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6130         YY_BREAK
6131 case 73:
6132 YY_RULE_SETUP
6133 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6134         YY_BREAK
6135 case YY_STATE_EOF(AL_surfxml_argument):
6136 FAIL("EOF in attribute list of `argument' element.");
6137         YY_BREAK
6138
6139 case 74:
6140 /* rule 74 can match eol */
6141 YY_RULE_SETUP
6142 {
6143   LEAVE;
6144   ETag_surfxml_argument();
6145   popbuffer(); /* attribute */
6146   switch (YY_START) {
6147    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6148   }
6149  }
6150         YY_BREAK
6151 case 75:
6152 /* rule 75 can match eol */
6153 YY_RULE_SETUP
6154 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6155         YY_BREAK
6156 case 76:
6157 YY_RULE_SETUP
6158 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6159         YY_BREAK
6160 case YY_STATE_EOF(E_surfxml_argument):
6161 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
6162         YY_BREAK
6163
6164 case 77:
6165 /* rule 77 can match eol */
6166 YY_RULE_SETUP
6167 FAIL("Starting tag <backbone> is not allowed here.");
6168         YY_BREAK
6169 case 78:
6170 /* rule 78 can match eol */
6171 YY_RULE_SETUP
6172 {
6173   AX_surfxml_backbone_bandwidth = 0;
6174   surfxml_backbone_bandwidth_isset = 0;
6175   AX_surfxml_backbone_id = 0;
6176   surfxml_backbone_id_isset = 0;
6177   AX_surfxml_backbone_latency = 0;
6178   surfxml_backbone_latency_isset = 0;
6179   ENTER(AL_surfxml_backbone); pushbuffer(0);
6180   }
6181         YY_BREAK
6182
6183 case 79:
6184 /* rule 79 can match eol */
6185 YY_RULE_SETUP
6186 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);
6187         YY_BREAK
6188 case 80:
6189 /* rule 80 can match eol */
6190 YY_RULE_SETUP
6191 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);
6192         YY_BREAK
6193 case 81:
6194 /* rule 81 can match eol */
6195 YY_RULE_SETUP
6196 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);
6197         YY_BREAK
6198 case 82:
6199 /* rule 82 can match eol */
6200 YY_RULE_SETUP
6201 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);
6202         YY_BREAK
6203 case 83:
6204 /* rule 83 can match eol */
6205 YY_RULE_SETUP
6206 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);
6207         YY_BREAK
6208 case 84:
6209 /* rule 84 can match eol */
6210 YY_RULE_SETUP
6211 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);
6212         YY_BREAK
6213 case 85:
6214 YY_RULE_SETUP
6215 {
6216   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6217   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6218   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6219   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6220  }
6221         YY_BREAK
6222 case 86:
6223 YY_RULE_SETUP
6224 {
6225   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6226   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6227   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6228   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6229   switch (YY_START) {
6230    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;
6231   }
6232  }
6233         YY_BREAK
6234 case 87:
6235 YY_RULE_SETUP
6236 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6237         YY_BREAK
6238 case 88:
6239 YY_RULE_SETUP
6240 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6241         YY_BREAK
6242 case YY_STATE_EOF(AL_surfxml_backbone):
6243 FAIL("EOF in attribute list of `backbone' element.");
6244         YY_BREAK
6245
6246 case 89:
6247 /* rule 89 can match eol */
6248 YY_RULE_SETUP
6249 {
6250   LEAVE;
6251   ETag_surfxml_backbone();
6252   popbuffer(); /* attribute */
6253   switch (YY_START) {
6254    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;
6255   }
6256  }
6257         YY_BREAK
6258 case 90:
6259 /* rule 90 can match eol */
6260 YY_RULE_SETUP
6261 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6262         YY_BREAK
6263 case 91:
6264 YY_RULE_SETUP
6265 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6266         YY_BREAK
6267 case YY_STATE_EOF(E_surfxml_backbone):
6268 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6269         YY_BREAK
6270
6271 case 92:
6272 /* rule 92 can match eol */
6273 YY_RULE_SETUP
6274 FAIL("Starting tag <bypassASroute> is not allowed here.");
6275         YY_BREAK
6276 case 93:
6277 /* rule 93 can match eol */
6278 YY_RULE_SETUP
6279 {
6280   AX_surfxml_bypassASroute_dst = 0;
6281   surfxml_bypassASroute_dst_isset = 0;
6282   AX_surfxml_bypassASroute_gw___dst = 0;
6283   surfxml_bypassASroute_gw___dst_isset = 0;
6284   AX_surfxml_bypassASroute_gw___src = 0;
6285   surfxml_bypassASroute_gw___src_isset = 0;
6286   AX_surfxml_bypassASroute_src = 0;
6287   surfxml_bypassASroute_src_isset = 0;
6288   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6289   }
6290         YY_BREAK
6291
6292 case 94:
6293 /* rule 94 can match eol */
6294 YY_RULE_SETUP
6295 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);
6296         YY_BREAK
6297 case 95:
6298 /* rule 95 can match eol */
6299 YY_RULE_SETUP
6300 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);
6301         YY_BREAK
6302 case 96:
6303 /* rule 96 can match eol */
6304 YY_RULE_SETUP
6305 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);
6306         YY_BREAK
6307 case 97:
6308 /* rule 97 can match eol */
6309 YY_RULE_SETUP
6310 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);
6311         YY_BREAK
6312 case 98:
6313 /* rule 98 can match eol */
6314 YY_RULE_SETUP
6315 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);
6316         YY_BREAK
6317 case 99:
6318 /* rule 99 can match eol */
6319 YY_RULE_SETUP
6320 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);
6321         YY_BREAK
6322 case 100:
6323 /* rule 100 can match eol */
6324 YY_RULE_SETUP
6325 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);
6326         YY_BREAK
6327 case 101:
6328 /* rule 101 can match eol */
6329 YY_RULE_SETUP
6330 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);
6331         YY_BREAK
6332 case 102:
6333 YY_RULE_SETUP
6334 {
6335   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6336   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6337   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6338   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6339   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
6340  }
6341         YY_BREAK
6342 case 103:
6343 YY_RULE_SETUP
6344 {
6345   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6346   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6347   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6348   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6349   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
6350   switch (YY_START) {
6351    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6352   }
6353  }
6354         YY_BREAK
6355 case 104:
6356 YY_RULE_SETUP
6357 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
6358         YY_BREAK
6359 case 105:
6360 YY_RULE_SETUP
6361 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
6362         YY_BREAK
6363 case YY_STATE_EOF(AL_surfxml_bypassASroute):
6364 FAIL("EOF in attribute list of `bypassASroute' element.");
6365         YY_BREAK
6366
6367 case 106:
6368 /* rule 106 can match eol */
6369 YY_RULE_SETUP
6370 {
6371   LEAVE;
6372   ETag_surfxml_bypassASroute();
6373   popbuffer(); /* attribute */
6374   switch (YY_START) {
6375    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6376   }
6377  }
6378         YY_BREAK
6379 case 107:
6380 /* rule 107 can match eol */
6381 YY_RULE_SETUP
6382 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
6383         YY_BREAK
6384 case 108:
6385 YY_RULE_SETUP
6386 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
6387         YY_BREAK
6388 case YY_STATE_EOF(E_surfxml_bypassASroute):
6389 case YY_STATE_EOF(S_surfxml_bypassASroute):
6390 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
6391 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
6392         YY_BREAK
6393
6394 case 109:
6395 /* rule 109 can match eol */
6396 YY_RULE_SETUP
6397 FAIL("Starting tag <bypassRoute> is not allowed here.");
6398         YY_BREAK
6399 case 110:
6400 /* rule 110 can match eol */
6401 YY_RULE_SETUP
6402 {
6403   AX_surfxml_bypassRoute_dst = 0;
6404   surfxml_bypassRoute_dst_isset = 0;
6405   AX_surfxml_bypassRoute_src = 0;
6406   surfxml_bypassRoute_src_isset = 0;
6407   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6408   }
6409         YY_BREAK
6410
6411 case 111:
6412 /* rule 111 can match eol */
6413 YY_RULE_SETUP
6414 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);
6415         YY_BREAK
6416 case 112:
6417 /* rule 112 can match eol */
6418 YY_RULE_SETUP
6419 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);
6420         YY_BREAK
6421 case 113:
6422 /* rule 113 can match eol */
6423 YY_RULE_SETUP
6424 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);
6425         YY_BREAK
6426 case 114:
6427 /* rule 114 can match eol */
6428 YY_RULE_SETUP
6429 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);
6430         YY_BREAK
6431 case 115:
6432 YY_RULE_SETUP
6433 {
6434   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6435   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6436   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6437  }
6438         YY_BREAK
6439 case 116:
6440 YY_RULE_SETUP
6441 {
6442   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6443   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6444   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6445   switch (YY_START) {
6446    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6447   }
6448  }
6449         YY_BREAK
6450 case 117:
6451 YY_RULE_SETUP
6452 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6453         YY_BREAK
6454 case 118:
6455 YY_RULE_SETUP
6456 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6457         YY_BREAK
6458 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6459 FAIL("EOF in attribute list of `bypassRoute' element.");
6460         YY_BREAK
6461
6462 case 119:
6463 /* rule 119 can match eol */
6464 YY_RULE_SETUP
6465 {
6466   LEAVE;
6467   ETag_surfxml_bypassRoute();
6468   popbuffer(); /* attribute */
6469   switch (YY_START) {
6470    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6471   }
6472  }
6473         YY_BREAK
6474 case 120:
6475 /* rule 120 can match eol */
6476 YY_RULE_SETUP
6477 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6478         YY_BREAK
6479 case 121:
6480 YY_RULE_SETUP
6481 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6482         YY_BREAK
6483 case YY_STATE_EOF(E_surfxml_bypassRoute):
6484 case YY_STATE_EOF(S_surfxml_bypassRoute):
6485 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6486 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
6487         YY_BREAK
6488
6489 case 122:
6490 /* rule 122 can match eol */
6491 YY_RULE_SETUP
6492 FAIL("Starting tag <cabinet> is not allowed here.");
6493         YY_BREAK
6494 case 123:
6495 /* rule 123 can match eol */
6496 YY_RULE_SETUP
6497 {
6498   AX_surfxml_cabinet_bw = 0;
6499   surfxml_cabinet_bw_isset = 0;
6500   AX_surfxml_cabinet_id = 0;
6501   surfxml_cabinet_id_isset = 0;
6502   AX_surfxml_cabinet_lat = 0;
6503   surfxml_cabinet_lat_isset = 0;
6504   AX_surfxml_cabinet_prefix = 0;
6505   surfxml_cabinet_prefix_isset = 0;
6506   AX_surfxml_cabinet_radical = 0;
6507   surfxml_cabinet_radical_isset = 0;
6508   AX_surfxml_cabinet_speed = 0;
6509   surfxml_cabinet_speed_isset = 0;
6510   AX_surfxml_cabinet_suffix = 0;
6511   surfxml_cabinet_suffix_isset = 0;
6512   ENTER(AL_surfxml_cabinet); pushbuffer(0);
6513   }
6514         YY_BREAK
6515
6516 case 124:
6517 /* rule 124 can match eol */
6518 YY_RULE_SETUP
6519 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);
6520         YY_BREAK
6521 case 125:
6522 /* rule 125 can match eol */
6523 YY_RULE_SETUP
6524 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);
6525         YY_BREAK
6526 case 126:
6527 /* rule 126 can match eol */
6528 YY_RULE_SETUP
6529 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);
6530         YY_BREAK
6531 case 127:
6532 /* rule 127 can match eol */
6533 YY_RULE_SETUP
6534 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);
6535         YY_BREAK
6536 case 128:
6537 /* rule 128 can match eol */
6538 YY_RULE_SETUP
6539 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);
6540         YY_BREAK
6541 case 129:
6542 /* rule 129 can match eol */
6543 YY_RULE_SETUP
6544 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);
6545         YY_BREAK
6546 case 130:
6547 /* rule 130 can match eol */
6548 YY_RULE_SETUP
6549 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);
6550         YY_BREAK
6551 case 131:
6552 /* rule 131 can match eol */
6553 YY_RULE_SETUP
6554 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);
6555         YY_BREAK
6556 case 132:
6557 /* rule 132 can match eol */
6558 YY_RULE_SETUP
6559 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);
6560         YY_BREAK
6561 case 133:
6562 /* rule 133 can match eol */
6563 YY_RULE_SETUP
6564 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);
6565         YY_BREAK
6566 case 134:
6567 /* rule 134 can match eol */
6568 YY_RULE_SETUP
6569 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);
6570         YY_BREAK
6571 case 135:
6572 /* rule 135 can match eol */
6573 YY_RULE_SETUP
6574 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);
6575         YY_BREAK
6576 case 136:
6577 /* rule 136 can match eol */
6578 YY_RULE_SETUP
6579 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);
6580         YY_BREAK
6581 case 137:
6582 /* rule 137 can match eol */
6583 YY_RULE_SETUP
6584 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);
6585         YY_BREAK
6586 case 138:
6587 YY_RULE_SETUP
6588 {
6589   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6590   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6591   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6592   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6593   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6594   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6595   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6596   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
6597  }
6598         YY_BREAK
6599 case 139:
6600 YY_RULE_SETUP
6601 {
6602   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6603   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6604   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6605   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6606   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6607   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6608   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6609   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
6610   switch (YY_START) {
6611    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;
6612    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6613    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;
6614   }
6615  }
6616         YY_BREAK
6617 case 140:
6618 YY_RULE_SETUP
6619 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
6620         YY_BREAK
6621 case 141:
6622 YY_RULE_SETUP
6623 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
6624         YY_BREAK
6625 case YY_STATE_EOF(AL_surfxml_cabinet):
6626 FAIL("EOF in attribute list of `cabinet' element.");
6627         YY_BREAK
6628
6629 case 142:
6630 /* rule 142 can match eol */
6631 YY_RULE_SETUP
6632 {
6633   LEAVE;
6634   ETag_surfxml_cabinet();
6635   popbuffer(); /* attribute */
6636   switch (YY_START) {
6637    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;
6638    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6639    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;
6640   }
6641  }
6642         YY_BREAK
6643 case 143:
6644 /* rule 143 can match eol */
6645 YY_RULE_SETUP
6646 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
6647         YY_BREAK
6648 case 144:
6649 YY_RULE_SETUP
6650 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
6651         YY_BREAK
6652 case YY_STATE_EOF(E_surfxml_cabinet):
6653 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
6654         YY_BREAK
6655
6656 case 145:
6657 /* rule 145 can match eol */
6658 YY_RULE_SETUP
6659 FAIL("Starting tag <cluster> is not allowed here.");
6660         YY_BREAK
6661 case 146:
6662 /* rule 146 can match eol */
6663 YY_RULE_SETUP
6664 {
6665   AX_surfxml_cluster_availability___file = 0;
6666   surfxml_cluster_availability___file_isset = 0;
6667   AX_surfxml_cluster_bb___bw = 0;
6668   surfxml_cluster_bb___bw_isset = 0;
6669   AX_surfxml_cluster_bb___lat = 46;
6670   surfxml_cluster_bb___lat_isset = 0;
6671   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6672   surfxml_cluster_bb___sharing___policy_isset = 0;
6673   AX_surfxml_cluster_bw = 0;
6674   surfxml_cluster_bw_isset = 0;
6675   AX_surfxml_cluster_core = 44;
6676   surfxml_cluster_core_isset = 0;
6677   AX_surfxml_cluster_id = 0;
6678   surfxml_cluster_id_isset = 0;
6679   AX_surfxml_cluster_lat = 0;
6680   surfxml_cluster_lat_isset = 0;
6681   AX_surfxml_cluster_limiter___link = 0;
6682   surfxml_cluster_limiter___link_isset = 0;
6683   AX_surfxml_cluster_loopback___bw = 0;
6684   surfxml_cluster_loopback___bw_isset = 0;
6685   AX_surfxml_cluster_loopback___lat = 0;
6686   surfxml_cluster_loopback___lat_isset = 0;
6687   AX_surfxml_cluster_prefix = 0;
6688   surfxml_cluster_prefix_isset = 0;
6689   AX_surfxml_cluster_radical = 0;
6690   surfxml_cluster_radical_isset = 0;
6691   AX_surfxml_cluster_router___id = 0;
6692   surfxml_cluster_router___id_isset = 0;
6693   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6694   surfxml_cluster_sharing___policy_isset = 0;
6695   AX_surfxml_cluster_speed = 0;
6696   surfxml_cluster_speed_isset = 0;
6697   AX_surfxml_cluster_state___file = 0;
6698   surfxml_cluster_state___file_isset = 0;
6699   AX_surfxml_cluster_suffix = 0;
6700   surfxml_cluster_suffix_isset = 0;
6701   AX_surfxml_cluster_topo___parameters = 0;
6702   surfxml_cluster_topo___parameters_isset = 0;
6703   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6704   surfxml_cluster_topology_isset = 0;
6705   ENTER(AL_surfxml_cluster); pushbuffer(0);
6706   }
6707         YY_BREAK
6708
6709 case 147:
6710 /* rule 147 can match eol */
6711 YY_RULE_SETUP
6712 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
6713         YY_BREAK
6714 case 148:
6715 /* rule 148 can match eol */
6716 YY_RULE_SETUP
6717 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
6718         YY_BREAK
6719 case 149:
6720 /* rule 149 can match eol */
6721 YY_RULE_SETUP
6722 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);
6723         YY_BREAK
6724 case 150:
6725 /* rule 150 can match eol */
6726 YY_RULE_SETUP
6727 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);
6728         YY_BREAK
6729 case 151:
6730 /* rule 151 can match eol */
6731 YY_RULE_SETUP
6732 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);
6733         YY_BREAK
6734 case 152:
6735 /* rule 152 can match eol */
6736 YY_RULE_SETUP
6737 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);
6738         YY_BREAK
6739 case 153:
6740 /* rule 153 can match eol */
6741 case 154:
6742 /* rule 154 can match eol */
6743 YY_RULE_SETUP
6744 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6745         YY_BREAK
6746 case 155:
6747 /* rule 155 can match eol */
6748 case 156:
6749 /* rule 156 can match eol */
6750 YY_RULE_SETUP
6751 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
6752         YY_BREAK
6753 case 157:
6754 /* rule 157 can match eol */
6755 YY_RULE_SETUP
6756 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);
6757         YY_BREAK
6758 case 158:
6759 /* rule 158 can match eol */
6760 YY_RULE_SETUP
6761 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);
6762         YY_BREAK
6763 case 159:
6764 /* rule 159 can match eol */
6765 YY_RULE_SETUP
6766 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);
6767         YY_BREAK
6768 case 160:
6769 /* rule 160 can match eol */
6770 YY_RULE_SETUP
6771 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);
6772         YY_BREAK
6773 case 161:
6774 /* rule 161 can match eol */
6775 YY_RULE_SETUP
6776 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);
6777         YY_BREAK
6778 case 162:
6779 /* rule 162 can match eol */
6780 YY_RULE_SETUP
6781 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);
6782         YY_BREAK
6783 case 163:
6784 /* rule 163 can match eol */
6785 YY_RULE_SETUP
6786 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);
6787         YY_BREAK
6788 case 164:
6789 /* rule 164 can match eol */
6790 YY_RULE_SETUP
6791 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);
6792         YY_BREAK
6793 case 165:
6794 /* rule 165 can match eol */
6795 YY_RULE_SETUP
6796 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);
6797         YY_BREAK
6798 case 166:
6799 /* rule 166 can match eol */
6800 YY_RULE_SETUP
6801 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);
6802         YY_BREAK
6803 case 167:
6804 /* rule 167 can match eol */
6805 YY_RULE_SETUP
6806 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);
6807         YY_BREAK
6808 case 168:
6809 /* rule 168 can match eol */
6810 YY_RULE_SETUP
6811 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);
6812         YY_BREAK
6813 case 169:
6814 /* rule 169 can match eol */
6815 YY_RULE_SETUP
6816 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);
6817         YY_BREAK
6818 case 170:
6819 /* rule 170 can match eol */
6820 YY_RULE_SETUP
6821 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);
6822         YY_BREAK
6823 case 171:
6824 /* rule 171 can match eol */
6825 YY_RULE_SETUP
6826 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);
6827         YY_BREAK
6828 case 172:
6829 /* rule 172 can match eol */
6830 YY_RULE_SETUP
6831 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);
6832         YY_BREAK
6833 case 173:
6834 /* rule 173 can match eol */
6835 YY_RULE_SETUP
6836 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);
6837         YY_BREAK
6838 case 174:
6839 /* rule 174 can match eol */
6840 YY_RULE_SETUP
6841 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);
6842         YY_BREAK
6843 case 175:
6844 /* rule 175 can match eol */
6845 YY_RULE_SETUP
6846 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);
6847         YY_BREAK
6848 case 176:
6849 /* rule 176 can match eol */
6850 YY_RULE_SETUP
6851 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);
6852         YY_BREAK
6853 case 177:
6854 /* rule 177 can match eol */
6855 case 178:
6856 /* rule 178 can match eol */
6857 YY_RULE_SETUP
6858 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
6859         YY_BREAK
6860 case 179:
6861 /* rule 179 can match eol */
6862 case 180:
6863 /* rule 180 can match eol */
6864 YY_RULE_SETUP
6865 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6866         YY_BREAK
6867 case 181:
6868 /* rule 181 can match eol */
6869 case 182:
6870 /* rule 182 can match eol */
6871 YY_RULE_SETUP
6872 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
6873         YY_BREAK
6874 case 183:
6875 /* rule 183 can match eol */
6876 YY_RULE_SETUP
6877 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);
6878         YY_BREAK
6879 case 184:
6880 /* rule 184 can match eol */
6881 YY_RULE_SETUP
6882 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);
6883         YY_BREAK
6884 case 185:
6885 /* rule 185 can match eol */
6886 YY_RULE_SETUP
6887 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
6888         YY_BREAK
6889 case 186:
6890 /* rule 186 can match eol */
6891 YY_RULE_SETUP
6892 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
6893         YY_BREAK
6894 case 187:
6895 /* rule 187 can match eol */
6896 YY_RULE_SETUP
6897 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);
6898         YY_BREAK
6899 case 188:
6900 /* rule 188 can match eol */
6901 YY_RULE_SETUP
6902 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);
6903         YY_BREAK
6904 case 189:
6905 /* rule 189 can match eol */
6906 YY_RULE_SETUP
6907 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);
6908         YY_BREAK
6909 case 190:
6910 /* rule 190 can match eol */
6911 YY_RULE_SETUP
6912 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);
6913         YY_BREAK
6914 case 191:
6915 /* rule 191 can match eol */
6916 case 192:
6917 /* rule 192 can match eol */
6918 YY_RULE_SETUP
6919 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6920         YY_BREAK
6921 case 193:
6922 /* rule 193 can match eol */
6923 case 194:
6924 /* rule 194 can match eol */
6925 YY_RULE_SETUP
6926 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
6927         YY_BREAK
6928 case 195:
6929 /* rule 195 can match eol */
6930 case 196:
6931 /* rule 196 can match eol */
6932 YY_RULE_SETUP
6933 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
6934         YY_BREAK
6935 case 197:
6936 YY_RULE_SETUP
6937 {
6938   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6939   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6940   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6941   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6942   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6943   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6944   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6945   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
6946  }
6947         YY_BREAK
6948 case 198:
6949 YY_RULE_SETUP
6950 {
6951   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6952   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6953   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6954   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6955   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6956   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6957   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6958   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6959   switch (YY_START) {
6960    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;
6961    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6962    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;
6963   }
6964  }
6965         YY_BREAK
6966 case 199:
6967 YY_RULE_SETUP
6968 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6969         YY_BREAK
6970 case 200:
6971 YY_RULE_SETUP
6972 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6973         YY_BREAK
6974 case YY_STATE_EOF(AL_surfxml_cluster):
6975 FAIL("EOF in attribute list of `cluster' element.");
6976         YY_BREAK
6977
6978 case 201:
6979 /* rule 201 can match eol */
6980 YY_RULE_SETUP
6981 {
6982   LEAVE;
6983   ETag_surfxml_cluster();
6984   popbuffer(); /* attribute */
6985   switch (YY_START) {
6986    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;
6987    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6988    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;
6989   }
6990  }
6991         YY_BREAK
6992 case 202:
6993 /* rule 202 can match eol */
6994 YY_RULE_SETUP
6995 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6996         YY_BREAK
6997 case 203:
6998 YY_RULE_SETUP
6999 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7000         YY_BREAK
7001 case YY_STATE_EOF(E_surfxml_cluster):
7002 case YY_STATE_EOF(S_surfxml_cluster):
7003 case YY_STATE_EOF(S_surfxml_cluster_2):
7004 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7005         YY_BREAK
7006
7007 case 204:
7008 /* rule 204 can match eol */
7009 YY_RULE_SETUP
7010 FAIL("Starting tag <config> is not allowed here.");
7011         YY_BREAK
7012 case 205:
7013 /* rule 205 can match eol */
7014 YY_RULE_SETUP
7015 {
7016   AX_surfxml_config_id = 0;
7017   surfxml_config_id_isset = 0;
7018   ENTER(AL_surfxml_config); pushbuffer(0);
7019   }
7020         YY_BREAK
7021
7022 case 206:
7023 /* rule 206 can match eol */
7024 YY_RULE_SETUP
7025 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);
7026         YY_BREAK
7027 case 207:
7028 /* rule 207 can match eol */
7029 YY_RULE_SETUP
7030 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);
7031         YY_BREAK
7032 case 208:
7033 YY_RULE_SETUP
7034 {
7035   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7036  }
7037         YY_BREAK
7038 case 209:
7039 YY_RULE_SETUP
7040 {
7041   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7042   switch (YY_START) {
7043    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7044   }
7045  }
7046         YY_BREAK
7047 case 210:
7048 YY_RULE_SETUP
7049 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7050         YY_BREAK
7051 case 211:
7052 YY_RULE_SETUP
7053 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7054         YY_BREAK
7055 case YY_STATE_EOF(AL_surfxml_config):
7056 FAIL("EOF in attribute list of `config' element.");
7057         YY_BREAK
7058
7059 case 212:
7060 /* rule 212 can match eol */
7061 YY_RULE_SETUP
7062 {
7063   LEAVE;
7064   ETag_surfxml_config();
7065   popbuffer(); /* attribute */
7066   switch (YY_START) {
7067    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7068   }
7069  }
7070         YY_BREAK
7071 case 213:
7072 /* rule 213 can match eol */
7073 YY_RULE_SETUP
7074 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7075         YY_BREAK
7076 case 214:
7077 YY_RULE_SETUP
7078 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7079         YY_BREAK
7080 case YY_STATE_EOF(E_surfxml_config):
7081 case YY_STATE_EOF(S_surfxml_config):
7082 case YY_STATE_EOF(S_surfxml_config_2):
7083 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7084         YY_BREAK
7085
7086 case 215:
7087 /* rule 215 can match eol */
7088 YY_RULE_SETUP
7089 FAIL("Starting tag <gpu> is not allowed here.");
7090         YY_BREAK
7091 case 216:
7092 /* rule 216 can match eol */
7093 YY_RULE_SETUP
7094 {
7095   AX_surfxml_gpu_name = 0;
7096   surfxml_gpu_name_isset = 0;
7097   ENTER(AL_surfxml_gpu); pushbuffer(0);
7098   }
7099         YY_BREAK
7100
7101 case 217:
7102 /* rule 217 can match eol */
7103 YY_RULE_SETUP
7104 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7105         YY_BREAK
7106 case 218:
7107 /* rule 218 can match eol */
7108 YY_RULE_SETUP
7109 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7110         YY_BREAK
7111 case 219:
7112 YY_RULE_SETUP
7113 {
7114   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7115   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7116  }
7117         YY_BREAK
7118 case 220:
7119 YY_RULE_SETUP
7120 {
7121   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7122   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7123   switch (YY_START) {
7124    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;
7125   }
7126  }
7127         YY_BREAK
7128 case 221:
7129 YY_RULE_SETUP
7130 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7131         YY_BREAK
7132 case 222:
7133 YY_RULE_SETUP
7134 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7135         YY_BREAK
7136 case YY_STATE_EOF(AL_surfxml_gpu):
7137 FAIL("EOF in attribute list of `gpu' element.");
7138         YY_BREAK
7139
7140 case 223:
7141 /* rule 223 can match eol */
7142 YY_RULE_SETUP
7143 {
7144   LEAVE;
7145   ETag_surfxml_gpu();
7146   popbuffer(); /* attribute */
7147   switch (YY_START) {
7148    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;
7149   }
7150  }
7151         YY_BREAK
7152 case 224:
7153 /* rule 224 can match eol */
7154 YY_RULE_SETUP
7155 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7156         YY_BREAK
7157 case 225:
7158 YY_RULE_SETUP
7159 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7160         YY_BREAK
7161 case YY_STATE_EOF(E_surfxml_gpu):
7162 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7163         YY_BREAK
7164
7165 case 226:
7166 /* rule 226 can match eol */
7167 YY_RULE_SETUP
7168 FAIL("Starting tag <host> is not allowed here.");
7169         YY_BREAK
7170 case 227:
7171 /* rule 227 can match eol */
7172 YY_RULE_SETUP
7173 {
7174   AX_surfxml_host_availability = 27;
7175   surfxml_host_availability_isset = 0;
7176   AX_surfxml_host_availability___file = 0;
7177   surfxml_host_availability___file_isset = 0;
7178   AX_surfxml_host_coordinates = 0;
7179   surfxml_host_coordinates_isset = 0;
7180   AX_surfxml_host_core = 25;
7181   surfxml_host_core_isset = 0;
7182   AX_surfxml_host_id = 0;
7183   surfxml_host_id_isset = 0;
7184   AX_surfxml_host_pstate = 31;
7185   surfxml_host_pstate_isset = 0;
7186   AX_surfxml_host_speed = 0;
7187   surfxml_host_speed_isset = 0;
7188   AX_surfxml_host_state = A_surfxml_host_state_ON;
7189   surfxml_host_state_isset = 0;
7190   AX_surfxml_host_state___file = 0;
7191   surfxml_host_state___file_isset = 0;
7192   ENTER(AL_surfxml_host); pushbuffer(0);
7193   }
7194         YY_BREAK
7195
7196 case 228:
7197 /* rule 228 can match eol */
7198 YY_RULE_SETUP
7199 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
7200         YY_BREAK
7201 case 229:
7202 /* rule 229 can match eol */
7203 YY_RULE_SETUP
7204 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
7205         YY_BREAK
7206 case 230:
7207 /* rule 230 can match eol */
7208 YY_RULE_SETUP
7209 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);
7210         YY_BREAK
7211 case 231:
7212 /* rule 231 can match eol */
7213 YY_RULE_SETUP
7214 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);
7215         YY_BREAK
7216 case 232:
7217 /* rule 232 can match eol */
7218 YY_RULE_SETUP
7219 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);
7220         YY_BREAK
7221 case 233:
7222 /* rule 233 can match eol */
7223 YY_RULE_SETUP
7224 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);
7225         YY_BREAK
7226 case 234:
7227 /* rule 234 can match eol */
7228 YY_RULE_SETUP
7229 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);
7230         YY_BREAK
7231 case 235:
7232 /* rule 235 can match eol */
7233 YY_RULE_SETUP
7234 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);
7235         YY_BREAK
7236 case 236:
7237 /* rule 236 can match eol */
7238 YY_RULE_SETUP
7239 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);
7240         YY_BREAK
7241 case 237:
7242 /* rule 237 can match eol */
7243 YY_RULE_SETUP
7244 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);
7245         YY_BREAK
7246 case 238:
7247 /* rule 238 can match eol */
7248 YY_RULE_SETUP
7249 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);
7250         YY_BREAK
7251 case 239:
7252 /* rule 239 can match eol */
7253 YY_RULE_SETUP
7254 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);
7255         YY_BREAK
7256 case 240:
7257 /* rule 240 can match eol */
7258 YY_RULE_SETUP
7259 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);
7260         YY_BREAK
7261 case 241:
7262 /* rule 241 can match eol */
7263 YY_RULE_SETUP
7264 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);
7265         YY_BREAK
7266 case 242:
7267 /* rule 242 can match eol */
7268 case 243:
7269 /* rule 243 can match eol */
7270 YY_RULE_SETUP
7271 A_surfxml_host_state = A_surfxml_host_state_ON;
7272         YY_BREAK
7273 case 244:
7274 /* rule 244 can match eol */
7275 case 245:
7276 /* rule 245 can match eol */
7277 YY_RULE_SETUP
7278 A_surfxml_host_state = A_surfxml_host_state_OFF;
7279         YY_BREAK
7280 case 246:
7281 /* rule 246 can match eol */
7282 YY_RULE_SETUP
7283 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);
7284         YY_BREAK
7285 case 247:
7286 /* rule 247 can match eol */
7287 YY_RULE_SETUP
7288 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);
7289         YY_BREAK
7290 case 248:
7291 YY_RULE_SETUP
7292 {
7293   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7294   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7295   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7296  }
7297         YY_BREAK
7298 case 249:
7299 YY_RULE_SETUP
7300 {
7301   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7302   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7303   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7304   switch (YY_START) {
7305    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;
7306   }
7307  }
7308         YY_BREAK
7309 case 250:
7310 YY_RULE_SETUP
7311 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7312         YY_BREAK
7313 case 251:
7314 YY_RULE_SETUP
7315 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7316         YY_BREAK
7317 case YY_STATE_EOF(AL_surfxml_host):
7318 FAIL("EOF in attribute list of `host' element.");
7319         YY_BREAK
7320
7321 case 252:
7322 /* rule 252 can match eol */
7323 YY_RULE_SETUP
7324 {
7325   LEAVE;
7326   ETag_surfxml_host();
7327   popbuffer(); /* attribute */
7328   switch (YY_START) {
7329    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;
7330   }
7331  }
7332         YY_BREAK
7333 case 253:
7334 /* rule 253 can match eol */
7335 YY_RULE_SETUP
7336 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7337         YY_BREAK
7338 case 254:
7339 YY_RULE_SETUP
7340 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7341         YY_BREAK
7342 case YY_STATE_EOF(E_surfxml_host):
7343 case YY_STATE_EOF(S_surfxml_host):
7344 case YY_STATE_EOF(S_surfxml_host_2):
7345 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7346         YY_BREAK
7347
7348 case 255:
7349 /* rule 255 can match eol */
7350 YY_RULE_SETUP
7351 FAIL("Starting tag <host_link> is not allowed here.");
7352         YY_BREAK
7353 case 256:
7354 /* rule 256 can match eol */
7355 YY_RULE_SETUP
7356 {
7357   AX_surfxml_host___link_down = 0;
7358   surfxml_host___link_down_isset = 0;
7359   AX_surfxml_host___link_id = 0;
7360   surfxml_host___link_id_isset = 0;
7361   AX_surfxml_host___link_up = 0;
7362   surfxml_host___link_up_isset = 0;
7363   ENTER(AL_surfxml_host___link); pushbuffer(0);
7364   }
7365         YY_BREAK
7366
7367 case 257:
7368 /* rule 257 can match eol */
7369 YY_RULE_SETUP
7370 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);
7371         YY_BREAK
7372 case 258:
7373 /* rule 258 can match eol */
7374 YY_RULE_SETUP
7375 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);
7376         YY_BREAK
7377 case 259:
7378 /* rule 259 can match eol */
7379 YY_RULE_SETUP
7380 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);
7381         YY_BREAK
7382 case 260:
7383 /* rule 260 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 261:
7388 /* rule 261 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 262:
7393 /* rule 262 can match eol */
7394 YY_RULE_SETUP
7395 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);
7396         YY_BREAK
7397 case 263:
7398 YY_RULE_SETUP
7399 {
7400   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7401   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7402   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7403   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7404  }
7405         YY_BREAK
7406 case 264:
7407 YY_RULE_SETUP
7408 {
7409   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7410   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7411   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7412   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7413   switch (YY_START) {
7414    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;
7415   }
7416  }
7417         YY_BREAK
7418 case 265:
7419 YY_RULE_SETUP
7420 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7421         YY_BREAK
7422 case 266:
7423 YY_RULE_SETUP
7424 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7425         YY_BREAK
7426 case YY_STATE_EOF(AL_surfxml_host___link):
7427 FAIL("EOF in attribute list of `host_link' element.");
7428         YY_BREAK
7429
7430 case 267:
7431 /* rule 267 can match eol */
7432 YY_RULE_SETUP
7433 {
7434   LEAVE;
7435   ETag_surfxml_host___link();
7436   popbuffer(); /* attribute */
7437   switch (YY_START) {
7438    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;
7439   }
7440  }
7441         YY_BREAK
7442 case 268:
7443 /* rule 268 can match eol */
7444 YY_RULE_SETUP
7445 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7446         YY_BREAK
7447 case 269:
7448 YY_RULE_SETUP
7449 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7450         YY_BREAK
7451 case YY_STATE_EOF(E_surfxml_host___link):
7452 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7453         YY_BREAK
7454
7455 case 270:
7456 /* rule 270 can match eol */
7457 YY_RULE_SETUP
7458 FAIL("Starting tag <include> is not allowed here.");
7459         YY_BREAK
7460 case 271:
7461 /* rule 271 can match eol */
7462 YY_RULE_SETUP
7463 {
7464   AX_surfxml_include_file = 0;
7465   surfxml_include_file_isset = 0;
7466   ENTER(AL_surfxml_include); pushbuffer(0);
7467   }
7468         YY_BREAK
7469
7470 case 272:
7471 /* rule 272 can match eol */
7472 YY_RULE_SETUP
7473 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);
7474         YY_BREAK
7475 case 273:
7476 /* rule 273 can match eol */
7477 YY_RULE_SETUP
7478 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);
7479         YY_BREAK
7480 case 274:
7481 YY_RULE_SETUP
7482 {
7483   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7484   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
7485  }
7486         YY_BREAK
7487 case 275:
7488 YY_RULE_SETUP
7489 {
7490   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7491   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
7492   switch (YY_START) {
7493    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;
7494    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7495    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;
7496   }
7497  }
7498         YY_BREAK
7499 case 276:
7500 YY_RULE_SETUP
7501 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
7502         YY_BREAK
7503 case 277:
7504 YY_RULE_SETUP
7505 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
7506         YY_BREAK
7507 case YY_STATE_EOF(AL_surfxml_include):
7508 FAIL("EOF in attribute list of `include' element.");
7509         YY_BREAK
7510
7511 case 278:
7512 /* rule 278 can match eol */
7513 YY_RULE_SETUP
7514 {
7515   LEAVE;
7516   ETag_surfxml_include();
7517   popbuffer(); /* attribute */
7518   switch (YY_START) {
7519    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;
7520    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7521    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;
7522   }
7523  }
7524         YY_BREAK
7525 case 279:
7526 /* rule 279 can match eol */
7527 YY_RULE_SETUP
7528 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
7529         YY_BREAK
7530 case 280:
7531 YY_RULE_SETUP
7532 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
7533         YY_BREAK
7534 case YY_STATE_EOF(E_surfxml_include):
7535 case YY_STATE_EOF(S_surfxml_include):
7536 case YY_STATE_EOF(S_surfxml_include_2):
7537 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
7538         YY_BREAK
7539
7540 case 281:
7541 /* rule 281 can match eol */
7542 YY_RULE_SETUP
7543 FAIL("Starting tag <link> is not allowed here.");
7544         YY_BREAK
7545 case 282:
7546 /* rule 282 can match eol */
7547 YY_RULE_SETUP
7548 {
7549   AX_surfxml_link_bandwidth = 0;
7550   surfxml_link_bandwidth_isset = 0;
7551   AX_surfxml_link_bandwidth___file = 0;
7552   surfxml_link_bandwidth___file_isset = 0;
7553   AX_surfxml_link_id = 0;
7554   surfxml_link_id_isset = 0;
7555   AX_surfxml_link_latency = 0;
7556   surfxml_link_latency_isset = 0;
7557   AX_surfxml_link_latency___file = 0;
7558   surfxml_link_latency___file_isset = 0;
7559   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7560   surfxml_link_sharing___policy_isset = 0;
7561   AX_surfxml_link_state = A_surfxml_link_state_ON;
7562   surfxml_link_state_isset = 0;
7563   AX_surfxml_link_state___file = 0;
7564   surfxml_link_state___file_isset = 0;
7565   ENTER(AL_surfxml_link); pushbuffer(0);
7566   }
7567         YY_BREAK
7568
7569 case 283:
7570 /* rule 283 can match eol */
7571 YY_RULE_SETUP
7572 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);
7573         YY_BREAK
7574 case 284:
7575 /* rule 284 can match eol */
7576 YY_RULE_SETUP
7577 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);
7578         YY_BREAK
7579 case 285:
7580 /* rule 285 can match eol */
7581 YY_RULE_SETUP
7582 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);
7583         YY_BREAK
7584 case 286:
7585 /* rule 286 can match eol */
7586 YY_RULE_SETUP
7587 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);
7588         YY_BREAK
7589 case 287:
7590 /* rule 287 can match eol */
7591 YY_RULE_SETUP
7592 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);
7593         YY_BREAK
7594 case 288:
7595 /* rule 288 can match eol */
7596 YY_RULE_SETUP
7597 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);
7598         YY_BREAK
7599 case 289:
7600 /* rule 289 can match eol */
7601 YY_RULE_SETUP
7602 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);
7603         YY_BREAK
7604 case 290:
7605 /* rule 290 can match eol */
7606 YY_RULE_SETUP
7607 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);
7608         YY_BREAK
7609 case 291:
7610 /* rule 291 can match eol */
7611 YY_RULE_SETUP
7612 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);
7613         YY_BREAK
7614 case 292:
7615 /* rule 292 can match eol */
7616 YY_RULE_SETUP
7617 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);
7618         YY_BREAK
7619 case 293:
7620 /* rule 293 can match eol */
7621 case 294:
7622 /* rule 294 can match eol */
7623 YY_RULE_SETUP
7624 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7625         YY_BREAK
7626 case 295:
7627 /* rule 295 can match eol */
7628 case 296:
7629 /* rule 296 can match eol */
7630 YY_RULE_SETUP
7631 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7632         YY_BREAK
7633 case 297:
7634 /* rule 297 can match eol */
7635 case 298:
7636 /* rule 298 can match eol */
7637 YY_RULE_SETUP
7638 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7639         YY_BREAK
7640 case 299:
7641 /* rule 299 can match eol */
7642 case 300:
7643 /* rule 300 can match eol */
7644 YY_RULE_SETUP
7645 A_surfxml_link_state = A_surfxml_link_state_ON;
7646         YY_BREAK
7647 case 301:
7648 /* rule 301 can match eol */
7649 case 302:
7650 /* rule 302 can match eol */
7651 YY_RULE_SETUP
7652 A_surfxml_link_state = A_surfxml_link_state_OFF;
7653         YY_BREAK
7654 case 303:
7655 /* rule 303 can match eol */
7656 YY_RULE_SETUP
7657 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);
7658         YY_BREAK
7659 case 304:
7660 /* rule 304 can match eol */
7661 YY_RULE_SETUP
7662 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);
7663         YY_BREAK
7664 case 305:
7665 YY_RULE_SETUP
7666 {
7667   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7668   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7669   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7670  }
7671         YY_BREAK
7672 case 306:
7673 YY_RULE_SETUP
7674 {
7675   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7676   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7677   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7678   switch (YY_START) {
7679    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;
7680   }
7681  }
7682         YY_BREAK
7683 case 307:
7684 YY_RULE_SETUP
7685 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7686         YY_BREAK
7687 case 308:
7688 YY_RULE_SETUP
7689 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7690         YY_BREAK
7691 case YY_STATE_EOF(AL_surfxml_link):
7692 FAIL("EOF in attribute list of `link' element.");
7693         YY_BREAK
7694
7695 case 309:
7696 /* rule 309 can match eol */
7697 YY_RULE_SETUP
7698 {
7699   LEAVE;
7700   ETag_surfxml_link();
7701   popbuffer(); /* attribute */
7702   switch (YY_START) {
7703    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;
7704   }
7705  }
7706         YY_BREAK
7707 case 310:
7708 /* rule 310 can match eol */
7709 YY_RULE_SETUP
7710 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7711         YY_BREAK
7712 case 311:
7713 YY_RULE_SETUP
7714 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7715         YY_BREAK
7716 case YY_STATE_EOF(E_surfxml_link):
7717 case YY_STATE_EOF(S_surfxml_link):
7718 case YY_STATE_EOF(S_surfxml_link_2):
7719 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7720         YY_BREAK
7721
7722 case 312:
7723 /* rule 312 can match eol */
7724 YY_RULE_SETUP
7725 FAIL("Starting tag <link_ctn> is not allowed here.");
7726         YY_BREAK
7727 case 313:
7728 /* rule 313 can match eol */
7729 YY_RULE_SETUP
7730 {
7731   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7732   surfxml_link___ctn_direction_isset = 0;
7733   AX_surfxml_link___ctn_id = 0;
7734   surfxml_link___ctn_id_isset = 0;
7735   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
7736   }
7737         YY_BREAK
7738
7739 case 314:
7740 /* rule 314 can match eol */
7741 case 315:
7742 /* rule 315 can match eol */
7743 YY_RULE_SETUP
7744 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
7745         YY_BREAK
7746 case 316:
7747 /* rule 316 can match eol */
7748 case 317:
7749 /* rule 317 can match eol */
7750 YY_RULE_SETUP
7751 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
7752         YY_BREAK
7753 case 318:
7754 /* rule 318 can match eol */
7755 case 319:
7756 /* rule 319 can match eol */
7757 YY_RULE_SETUP
7758 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7759         YY_BREAK
7760 case 320:
7761 /* rule 320 can match eol */
7762 YY_RULE_SETUP
7763 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);
7764         YY_BREAK
7765 case 321:
7766 /* rule 321 can match eol */
7767 YY_RULE_SETUP
7768 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);
7769         YY_BREAK
7770 case 322:
7771 YY_RULE_SETUP
7772 {
7773   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7774   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
7775  }
7776         YY_BREAK
7777 case 323:
7778 YY_RULE_SETUP
7779 {
7780   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7781   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
7782   switch (YY_START) {
7783    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7784    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7785    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7786    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7787   }
7788  }
7789         YY_BREAK
7790 case 324:
7791 YY_RULE_SETUP
7792 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7793         YY_BREAK
7794 case 325:
7795 YY_RULE_SETUP
7796 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7797         YY_BREAK
7798 case YY_STATE_EOF(AL_surfxml_link___ctn):
7799 FAIL("EOF in attribute list of `link_ctn' element.");
7800         YY_BREAK
7801
7802 case 326:
7803 /* rule 326 can match eol */
7804 YY_RULE_SETUP
7805 {
7806   LEAVE;
7807   ETag_surfxml_link___ctn();
7808   popbuffer(); /* attribute */
7809   switch (YY_START) {
7810    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7811    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7812    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7813    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7814   }
7815  }
7816         YY_BREAK
7817 case 327:
7818 /* rule 327 can match eol */
7819 YY_RULE_SETUP
7820 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7821         YY_BREAK
7822 case 328:
7823 YY_RULE_SETUP
7824 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7825         YY_BREAK
7826 case YY_STATE_EOF(E_surfxml_link___ctn):
7827 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7828         YY_BREAK
7829
7830 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
7831   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
7832 case 329:
7833 /* rule 329 can match eol */
7834 YY_RULE_SETUP
7835 FAIL("Starting tag <model_prop> is not allowed here.");
7836         YY_BREAK
7837 case 330:
7838 /* rule 330 can match eol */
7839 YY_RULE_SETUP
7840 {
7841   AX_surfxml_model___prop_id = 0;
7842   surfxml_model___prop_id_isset = 0;
7843   AX_surfxml_model___prop_value = 0;
7844   surfxml_model___prop_value_isset = 0;
7845   ENTER(AL_surfxml_model___prop); pushbuffer(0);
7846   }
7847         YY_BREAK
7848
7849 case 331:
7850 /* rule 331 can match eol */
7851 YY_RULE_SETUP
7852 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);
7853         YY_BREAK
7854 case 332:
7855 /* rule 332 can match eol */
7856 YY_RULE_SETUP
7857 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);
7858         YY_BREAK
7859 case 333:
7860 /* rule 333 can match eol */
7861 YY_RULE_SETUP
7862 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);
7863         YY_BREAK
7864 case 334:
7865 /* rule 334 can match eol */
7866 YY_RULE_SETUP
7867 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);
7868         YY_BREAK
7869 case 335:
7870 YY_RULE_SETUP
7871 {
7872   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7873   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7874   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
7875  }
7876         YY_BREAK
7877 case 336:
7878 YY_RULE_SETUP
7879 {
7880   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7881   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7882   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
7883   switch (YY_START) {
7884    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7885   }
7886  }
7887         YY_BREAK
7888 case 337:
7889 YY_RULE_SETUP
7890 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
7891         YY_BREAK
7892 case 338:
7893 YY_RULE_SETUP
7894 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
7895         YY_BREAK
7896 case YY_STATE_EOF(AL_surfxml_model___prop):
7897 FAIL("EOF in attribute list of `model_prop' element.");
7898         YY_BREAK
7899
7900 case 339:
7901 /* rule 339 can match eol */
7902 YY_RULE_SETUP
7903 {
7904   LEAVE;
7905   ETag_surfxml_model___prop();
7906   popbuffer(); /* attribute */
7907   switch (YY_START) {
7908    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7909   }
7910  }
7911         YY_BREAK
7912 case 340:
7913 /* rule 340 can match eol */
7914 YY_RULE_SETUP
7915 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
7916         YY_BREAK
7917 case 341:
7918 YY_RULE_SETUP
7919 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
7920         YY_BREAK
7921 case YY_STATE_EOF(E_surfxml_model___prop):
7922 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
7923         YY_BREAK
7924
7925 case 342:
7926 /* rule 342 can match eol */
7927 YY_RULE_SETUP
7928 FAIL("Starting tag <mount> is not allowed here.");
7929         YY_BREAK
7930 case 343:
7931 /* rule 343 can match eol */
7932 YY_RULE_SETUP
7933 {
7934   AX_surfxml_mount_name = 0;
7935   surfxml_mount_name_isset = 0;
7936   AX_surfxml_mount_storageId = 0;
7937   surfxml_mount_storageId_isset = 0;
7938   ENTER(AL_surfxml_mount); pushbuffer(0);
7939   }
7940         YY_BREAK
7941
7942 case 344:
7943 /* rule 344 can match eol */
7944 YY_RULE_SETUP
7945 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);
7946         YY_BREAK
7947 case 345:
7948 /* rule 345 can match eol */
7949 YY_RULE_SETUP
7950 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);
7951         YY_BREAK
7952 case 346:
7953 /* rule 346 can match eol */
7954 YY_RULE_SETUP
7955 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);
7956         YY_BREAK
7957 case 347:
7958 /* rule 347 can match eol */
7959 YY_RULE_SETUP
7960 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);
7961         YY_BREAK
7962 case 348:
7963 YY_RULE_SETUP
7964 {
7965   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7966   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7967   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
7968  }
7969         YY_BREAK
7970 case 349:
7971 YY_RULE_SETUP
7972 {
7973   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7974   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7975   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
7976   switch (YY_START) {
7977    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7978   }
7979  }
7980         YY_BREAK
7981 case 350:
7982 YY_RULE_SETUP
7983 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
7984         YY_BREAK
7985 case 351:
7986 YY_RULE_SETUP
7987 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
7988         YY_BREAK
7989 case YY_STATE_EOF(AL_surfxml_mount):
7990 FAIL("EOF in attribute list of `mount' element.");
7991         YY_BREAK
7992
7993 case 352:
7994 /* rule 352 can match eol */
7995 YY_RULE_SETUP
7996 {
7997   LEAVE;
7998   ETag_surfxml_mount();
7999   popbuffer(); /* attribute */
8000   switch (YY_START) {
8001    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8002   }
8003  }
8004         YY_BREAK
8005 case 353:
8006 /* rule 353 can match eol */
8007 YY_RULE_SETUP
8008 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
8009         YY_BREAK
8010 case 354:
8011 YY_RULE_SETUP
8012 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
8013         YY_BREAK
8014 case YY_STATE_EOF(E_surfxml_mount):
8015 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
8016         YY_BREAK
8017
8018 case 355:
8019 /* rule 355 can match eol */
8020 YY_RULE_SETUP
8021 FAIL("Starting tag <mstorage> is not allowed here.");
8022         YY_BREAK
8023 case 356:
8024 /* rule 356 can match eol */
8025 YY_RULE_SETUP
8026 {
8027   AX_surfxml_mstorage_name = 0;
8028   surfxml_mstorage_name_isset = 0;
8029   AX_surfxml_mstorage_typeId = 0;
8030   surfxml_mstorage_typeId_isset = 0;
8031   ENTER(AL_surfxml_mstorage); pushbuffer(0);
8032   }
8033         YY_BREAK
8034
8035 case 357:
8036 /* rule 357 can match eol */
8037 YY_RULE_SETUP
8038 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
8039         YY_BREAK
8040 case 358:
8041 /* rule 358 can match eol */
8042 YY_RULE_SETUP
8043 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
8044         YY_BREAK
8045 case 359:
8046 /* rule 359 can match eol */
8047 YY_RULE_SETUP
8048 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
8049         YY_BREAK
8050 case 360:
8051 /* rule 360 can match eol */
8052 YY_RULE_SETUP
8053 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
8054         YY_BREAK
8055 case 361:
8056 YY_RULE_SETUP
8057 {
8058   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
8059   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
8060   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
8061  }
8062         YY_BREAK
8063 case 362:
8064 YY_RULE_SETUP
8065 {
8066   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
8067   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
8068   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
8069   switch (YY_START) {
8070    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8071   }
8072  }
8073         YY_BREAK
8074 case 363:
8075 YY_RULE_SETUP
8076 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
8077         YY_BREAK
8078 case 364:
8079 YY_RULE_SETUP
8080 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
8081         YY_BREAK
8082 case YY_STATE_EOF(AL_surfxml_mstorage):
8083 FAIL("EOF in attribute list of `mstorage' element.");
8084         YY_BREAK
8085
8086 case 365:
8087 /* rule 365 can match eol */
8088 YY_RULE_SETUP
8089 {
8090   LEAVE;
8091   ETag_surfxml_mstorage();
8092   popbuffer(); /* attribute */
8093   switch (YY_START) {
8094    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8095   }
8096  }
8097         YY_BREAK
8098 case 366:
8099 /* rule 366 can match eol */
8100 YY_RULE_SETUP
8101 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
8102         YY_BREAK
8103 case 367:
8104 YY_RULE_SETUP
8105 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
8106         YY_BREAK
8107 case YY_STATE_EOF(E_surfxml_mstorage):
8108 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
8109         YY_BREAK
8110
8111 case 368:
8112 /* rule 368 can match eol */
8113 YY_RULE_SETUP
8114 FAIL("Starting tag <peer> is not allowed here.");
8115         YY_BREAK
8116 case 369:
8117 /* rule 369 can match eol */
8118 YY_RULE_SETUP
8119 {
8120   AX_surfxml_peer_availability___file = 0;
8121   surfxml_peer_availability___file_isset = 0;
8122   AX_surfxml_peer_bw___in = 0;
8123   surfxml_peer_bw___in_isset = 0;
8124   AX_surfxml_peer_bw___out = 0;
8125   surfxml_peer_bw___out_isset = 0;
8126   AX_surfxml_peer_coordinates = 0;
8127   surfxml_peer_coordinates_isset = 0;
8128   AX_surfxml_peer_id = 0;
8129   surfxml_peer_id_isset = 0;
8130   AX_surfxml_peer_lat = 0;
8131   surfxml_peer_lat_isset = 0;
8132   AX_surfxml_peer_speed = 0;
8133   surfxml_peer_speed_isset = 0;
8134   AX_surfxml_peer_state___file = 0;
8135   surfxml_peer_state___file_isset = 0;
8136   ENTER(AL_surfxml_peer); pushbuffer(0);
8137   }
8138         YY_BREAK
8139
8140 case 370:
8141 /* rule 370 can match eol */
8142 YY_RULE_SETUP
8143 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);
8144         YY_BREAK
8145 case 371:
8146 /* rule 371 can match eol */
8147 YY_RULE_SETUP
8148 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);
8149         YY_BREAK
8150 case 372:
8151 /* rule 372 can match eol */
8152 YY_RULE_SETUP
8153 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);
8154         YY_BREAK
8155 case 373:
8156 /* rule 373 can match eol */
8157 YY_RULE_SETUP
8158 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);
8159         YY_BREAK
8160 case 374:
8161 /* rule 374 can match eol */
8162 YY_RULE_SETUP
8163 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);
8164         YY_BREAK
8165 case 375:
8166 /* rule 375 can match eol */
8167 YY_RULE_SETUP
8168 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);
8169         YY_BREAK
8170 case 376:
8171 /* rule 376 can match eol */
8172 YY_RULE_SETUP
8173 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);
8174         YY_BREAK
8175 case 377:
8176 /* rule 377 can match eol */
8177 YY_RULE_SETUP
8178 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);
8179         YY_BREAK
8180 case 378:
8181 /* rule 378 can match eol */
8182 YY_RULE_SETUP
8183 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);
8184         YY_BREAK
8185 case 379:
8186 /* rule 379 can match eol */
8187 YY_RULE_SETUP
8188 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);
8189         YY_BREAK
8190 case 380:
8191 /* rule 380 can match eol */
8192 YY_RULE_SETUP
8193 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);
8194         YY_BREAK
8195 case 381:
8196 /* rule 381 can match eol */
8197 YY_RULE_SETUP
8198 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);
8199         YY_BREAK
8200 case 382:
8201 /* rule 382 can match eol */
8202 YY_RULE_SETUP
8203 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);
8204         YY_BREAK
8205 case 383:
8206 /* rule 383 can match eol */
8207 YY_RULE_SETUP
8208 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);
8209         YY_BREAK
8210 case 384:
8211 /* rule 384 can match eol */
8212 YY_RULE_SETUP
8213 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);
8214         YY_BREAK
8215 case 385:
8216 /* rule 385 can match eol */
8217 YY_RULE_SETUP
8218 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);
8219         YY_BREAK
8220 case 386:
8221 YY_RULE_SETUP
8222 {
8223   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8224   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8225   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8226   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8227   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8228   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8229  }
8230         YY_BREAK
8231 case 387:
8232 YY_RULE_SETUP
8233 {
8234   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8235   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8236   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8237   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8238   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8239   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8240   switch (YY_START) {
8241    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;
8242    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8243    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;
8244   }
8245  }
8246         YY_BREAK
8247 case 388:
8248 YY_RULE_SETUP
8249 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8250         YY_BREAK
8251 case 389:
8252 YY_RULE_SETUP
8253 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8254         YY_BREAK
8255 case YY_STATE_EOF(AL_surfxml_peer):
8256 FAIL("EOF in attribute list of `peer' element.");
8257         YY_BREAK
8258
8259 case 390:
8260 /* rule 390 can match eol */
8261 YY_RULE_SETUP
8262 {
8263   LEAVE;
8264   ETag_surfxml_peer();
8265   popbuffer(); /* attribute */
8266   switch (YY_START) {
8267    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;
8268    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8269    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;
8270   }
8271  }
8272         YY_BREAK
8273 case 391:
8274 /* rule 391 can match eol */
8275 YY_RULE_SETUP
8276 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8277         YY_BREAK
8278 case 392:
8279 YY_RULE_SETUP
8280 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8281         YY_BREAK
8282 case YY_STATE_EOF(E_surfxml_peer):
8283 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8284         YY_BREAK
8285
8286 /* <!-- 
8287   *              DTD of SimGrid platform and deployment files. 
8288   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html 
8289   * To upgrade your files, use the tool simgrid_update_xml
8290   * * New in DTD version 4 (in SimGrid 3.13): 
8291   *    - Rename (power->speed) the attributes describing the amount of flop
8292   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
8293   *      
8294   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
8295   *      
8296   *    - The DOCTYPE points to the right URL (this file):
8297   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
8298   *      
8299   *    - Units are now mandatory in attributes. 
8300   *      - speed. Old default: 'f' or 'flops'. Also defined: 
8301   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf' 
8302   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
8303   *         
8304   *      - bandwidth. Old default: 'Bps' bytes per second (or 'bps' but 1 Bps = 8 bps)
8305   *        Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
8306   *        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps' 
8307   *        
8308   *      - latency. Old default: 's' second. Also defined:
8309   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond   
8310   *    
8311   * * New in DTD version 3 (in SimGrid 3.5):
8312   *    - The AS tag were introduced. Every platform should now
8313   *      contain an englobing AS tag.
8314   *    - Routes are now symmetric by default.
8315   *    - Renamed tags (for sake of XML sanity):
8316   *      - LINK:CTN -> LINK_CTN
8317   *      - TRACE:CONNECT -> TRACE_CONNECT
8318   * * New in DTD version 2 (in SimGrid 3.4):
8319   *    - Renamed tags:
8320   *      - CPU -> HOST
8321   *      - NETWORK_LINK -> LINK
8322   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
8323   *      - PLATFORM_DESCRIPTION -> PLATFORM
8324   * * New in DTD version 1 (in SimGrid 3.3):
8325   *    - DTD is now versionned with the version attribute of platform
8326   *    - Unit change: 
8327   *      - Link bandwidth: from Mb/s to b/s
8328   *      - CPU speed: from MFlop/s to Flop/s
8329   *    
8330   * -->  */
8331 case 393:
8332 /* rule 393 can match eol */
8333 YY_RULE_SETUP
8334 FAIL("Starting tag <platform> is not allowed here.");
8335         YY_BREAK
8336 case 394:
8337 /* rule 394 can match eol */
8338 YY_RULE_SETUP
8339 {
8340   AX_surfxml_platform_version = 1;
8341   surfxml_platform_version_isset = 0;
8342   ENTER(AL_surfxml_platform); pushbuffer(0);
8343   }
8344         YY_BREAK
8345
8346 case 395:
8347 /* rule 395 can match eol */
8348 YY_RULE_SETUP
8349 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);
8350         YY_BREAK
8351 case 396:
8352 /* rule 396 can match eol */
8353 YY_RULE_SETUP
8354 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);
8355         YY_BREAK
8356 case 397:
8357 YY_RULE_SETUP
8358 {
8359   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8360  }
8361         YY_BREAK
8362 case 398:
8363 YY_RULE_SETUP
8364 {
8365   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8366   switch (YY_START) {
8367    case ROOT_surfxml_platform: SET(EPILOG); break;
8368   }
8369  }
8370         YY_BREAK
8371 case 399:
8372 YY_RULE_SETUP
8373 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
8374         YY_BREAK
8375 case 400:
8376 YY_RULE_SETUP
8377 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
8378         YY_BREAK
8379 case YY_STATE_EOF(AL_surfxml_platform):
8380 FAIL("EOF in attribute list of `platform' element.");
8381         YY_BREAK
8382
8383 case 401:
8384 /* rule 401 can match eol */
8385 YY_RULE_SETUP
8386 {
8387   LEAVE;
8388   ETag_surfxml_platform();
8389   popbuffer(); /* attribute */
8390   switch (YY_START) {
8391    case ROOT_surfxml_platform: SET(EPILOG); break;
8392   }
8393  }
8394         YY_BREAK
8395 case 402:
8396 /* rule 402 can match eol */
8397 YY_RULE_SETUP
8398 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
8399         YY_BREAK
8400 case 403:
8401 YY_RULE_SETUP
8402 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
8403         YY_BREAK
8404 case YY_STATE_EOF(E_surfxml_platform):
8405 case YY_STATE_EOF(S_surfxml_platform):
8406 case YY_STATE_EOF(S_surfxml_platform_1):
8407 case YY_STATE_EOF(S_surfxml_platform_3):
8408 case YY_STATE_EOF(S_surfxml_platform_4):
8409 case YY_STATE_EOF(S_surfxml_platform_6):
8410 case YY_STATE_EOF(S_surfxml_platform_8):
8411 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
8412         YY_BREAK
8413
8414 case 404:
8415 /* rule 404 can match eol */
8416 YY_RULE_SETUP
8417 FAIL("Starting tag <process> is not allowed here.");
8418         YY_BREAK
8419 case 405:
8420 /* rule 405 can match eol */
8421 YY_RULE_SETUP
8422 {
8423   AX_surfxml_process_function = 0;
8424   surfxml_process_function_isset = 0;
8425   AX_surfxml_process_host = 0;
8426   surfxml_process_host_isset = 0;
8427   AX_surfxml_process_kill___time = 54;
8428   surfxml_process_kill___time_isset = 0;
8429   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8430   surfxml_process_on___failure_isset = 0;
8431   AX_surfxml_process_start___time = 49;
8432   surfxml_process_start___time_isset = 0;
8433   ENTER(AL_surfxml_process); pushbuffer(0);
8434   }
8435         YY_BREAK
8436
8437 case 406:
8438 /* rule 406 can match eol */
8439 YY_RULE_SETUP
8440 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);
8441         YY_BREAK
8442 case 407:
8443 /* rule 407 can match eol */
8444 YY_RULE_SETUP
8445 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);
8446         YY_BREAK
8447 case 408:
8448 /* rule 408 can match eol */
8449 YY_RULE_SETUP
8450 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);
8451         YY_BREAK
8452 case 409:
8453 /* rule 409 can match eol */
8454 YY_RULE_SETUP
8455 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);
8456         YY_BREAK
8457 case 410:
8458 /* rule 410 can match eol */
8459 YY_RULE_SETUP
8460 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);
8461         YY_BREAK
8462 case 411:
8463 /* rule 411 can match eol */
8464 YY_RULE_SETUP
8465 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);
8466         YY_BREAK
8467 case 412:
8468 /* rule 412 can match eol */
8469 case 413:
8470 /* rule 413 can match eol */
8471 YY_RULE_SETUP
8472 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8473         YY_BREAK
8474 case 414:
8475 /* rule 414 can match eol */
8476 case 415:
8477 /* rule 415 can match eol */
8478 YY_RULE_SETUP
8479 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8480         YY_BREAK
8481 case 416:
8482 /* rule 416 can match eol */
8483 YY_RULE_SETUP
8484 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);
8485         YY_BREAK
8486 case 417:
8487 /* rule 417 can match eol */
8488 YY_RULE_SETUP
8489 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);
8490         YY_BREAK
8491 case 418:
8492 YY_RULE_SETUP
8493 {
8494   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8495   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8496   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8497  }
8498         YY_BREAK
8499 case 419:
8500 YY_RULE_SETUP
8501 {
8502   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8503   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8504   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8505   switch (YY_START) {
8506    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;
8507   }
8508  }
8509         YY_BREAK
8510 case 420:
8511 YY_RULE_SETUP
8512 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8513         YY_BREAK
8514 case 421:
8515 YY_RULE_SETUP
8516 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8517         YY_BREAK
8518 case YY_STATE_EOF(AL_surfxml_process):
8519 FAIL("EOF in attribute list of `process' element.");
8520         YY_BREAK
8521
8522 case 422:
8523 /* rule 422 can match eol */
8524 YY_RULE_SETUP
8525 {
8526   LEAVE;
8527   ETag_surfxml_process();
8528   popbuffer(); /* attribute */
8529   switch (YY_START) {
8530    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;
8531   }
8532  }
8533         YY_BREAK
8534 case 423:
8535 /* rule 423 can match eol */
8536 YY_RULE_SETUP
8537 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8538         YY_BREAK
8539 case 424:
8540 YY_RULE_SETUP
8541 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8542         YY_BREAK
8543 case YY_STATE_EOF(E_surfxml_process):
8544 case YY_STATE_EOF(S_surfxml_process):
8545 case YY_STATE_EOF(S_surfxml_process_2):
8546 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8547         YY_BREAK
8548
8549 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8550   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8551 case 425:
8552 /* rule 425 can match eol */
8553 YY_RULE_SETUP
8554 FAIL("Starting tag <prop> is not allowed here.");
8555         YY_BREAK
8556 case 426:
8557 /* rule 426 can match eol */
8558 YY_RULE_SETUP
8559 {
8560   AX_surfxml_prop_id = 0;
8561   surfxml_prop_id_isset = 0;
8562   AX_surfxml_prop_value = 0;
8563   surfxml_prop_value_isset = 0;
8564   ENTER(AL_surfxml_prop); pushbuffer(0);
8565   }
8566         YY_BREAK
8567
8568 case 427:
8569 /* rule 427 can match eol */
8570 YY_RULE_SETUP
8571 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);
8572         YY_BREAK
8573 case 428:
8574 /* rule 428 can match eol */
8575 YY_RULE_SETUP
8576 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);
8577         YY_BREAK
8578 case 429:
8579 /* rule 429 can match eol */
8580 YY_RULE_SETUP
8581 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);
8582         YY_BREAK
8583 case 430:
8584 /* rule 430 can match eol */
8585 YY_RULE_SETUP
8586 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);
8587         YY_BREAK
8588 case 431:
8589 YY_RULE_SETUP
8590 {
8591   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8592   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8593   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8594  }
8595         YY_BREAK
8596 case 432:
8597 YY_RULE_SETUP
8598 {
8599   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8600   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8601   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8602   switch (YY_START) {
8603    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8604    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8605    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8606    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8607    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8608    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8609    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8610    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8611   }
8612  }
8613         YY_BREAK
8614 case 433:
8615 YY_RULE_SETUP
8616 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8617         YY_BREAK
8618 case 434:
8619 YY_RULE_SETUP
8620 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8621         YY_BREAK
8622 case YY_STATE_EOF(AL_surfxml_prop):
8623 FAIL("EOF in attribute list of `prop' element.");
8624         YY_BREAK
8625
8626 case 435:
8627 /* rule 435 can match eol */
8628 YY_RULE_SETUP
8629 {
8630   LEAVE;
8631   ETag_surfxml_prop();
8632   popbuffer(); /* attribute */
8633   switch (YY_START) {
8634    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8635    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8636    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8637    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8638    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8639    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8640    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8641    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8642   }
8643  }
8644         YY_BREAK
8645 case 436:
8646 /* rule 436 can match eol */
8647 YY_RULE_SETUP
8648 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8649         YY_BREAK
8650 case 437:
8651 YY_RULE_SETUP
8652 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8653         YY_BREAK
8654 case YY_STATE_EOF(E_surfxml_prop):
8655 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8656         YY_BREAK
8657
8658 case 438:
8659 /* rule 438 can match eol */
8660 YY_RULE_SETUP
8661 FAIL("Starting tag <random> is not allowed here.");
8662         YY_BREAK
8663 case 439:
8664 /* rule 439 can match eol */
8665 YY_RULE_SETUP
8666 {
8667   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8668   surfxml_random_generator_isset = 0;
8669   AX_surfxml_random_id = 0;
8670   surfxml_random_id_isset = 0;
8671   AX_surfxml_random_max = 0;
8672   surfxml_random_max_isset = 0;
8673   AX_surfxml_random_mean = 0;
8674   surfxml_random_mean_isset = 0;
8675   AX_surfxml_random_min = 0;
8676   surfxml_random_min_isset = 0;
8677   AX_surfxml_random_radical = 0;
8678   surfxml_random_radical_isset = 0;
8679   AX_surfxml_random_seed = 5;
8680   surfxml_random_seed_isset = 0;
8681   AX_surfxml_random_std___deviation = 0;
8682   surfxml_random_std___deviation_isset = 0;
8683   ENTER(AL_surfxml_random); pushbuffer(0);
8684   }
8685         YY_BREAK
8686
8687 case 440:
8688 /* rule 440 can match eol */
8689 case 441:
8690 /* rule 441 can match eol */
8691 YY_RULE_SETUP
8692 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8693         YY_BREAK
8694 case 442:
8695 /* rule 442 can match eol */
8696 case 443:
8697 /* rule 443 can match eol */
8698 YY_RULE_SETUP
8699 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
8700         YY_BREAK
8701 case 444:
8702 /* rule 444 can match eol */
8703 case 445:
8704 /* rule 445 can match eol */
8705 YY_RULE_SETUP
8706 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
8707         YY_BREAK
8708 case 446:
8709 /* rule 446 can match eol */
8710 case 447:
8711 /* rule 447 can match eol */
8712 YY_RULE_SETUP
8713 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
8714         YY_BREAK
8715 case 448:
8716 /* rule 448 can match eol */
8717 YY_RULE_SETUP
8718 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);
8719         YY_BREAK
8720 case 449:
8721 /* rule 449 can match eol */
8722 YY_RULE_SETUP
8723 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);
8724         YY_BREAK
8725 case 450:
8726 /* rule 450 can match eol */
8727 YY_RULE_SETUP
8728 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);
8729         YY_BREAK
8730 case 451:
8731 /* rule 451 can match eol */
8732 YY_RULE_SETUP
8733 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);
8734         YY_BREAK
8735 case 452:
8736 /* rule 452 can match eol */
8737 YY_RULE_SETUP
8738 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);
8739         YY_BREAK
8740 case 453:
8741 /* rule 453 can match eol */
8742 YY_RULE_SETUP
8743 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);
8744         YY_BREAK
8745 case 454:
8746 /* rule 454 can match eol */
8747 YY_RULE_SETUP
8748 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);
8749         YY_BREAK
8750 case 455:
8751 /* rule 455 can match eol */
8752 YY_RULE_SETUP
8753 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);
8754         YY_BREAK
8755 case 456:
8756 /* rule 456 can match eol */
8757 YY_RULE_SETUP
8758 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);
8759         YY_BREAK
8760 case 457:
8761 /* rule 457 can match eol */
8762 YY_RULE_SETUP
8763 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);
8764         YY_BREAK
8765 case 458:
8766 /* rule 458 can match eol */
8767 YY_RULE_SETUP
8768 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);
8769         YY_BREAK
8770 case 459:
8771 /* rule 459 can match eol */
8772 YY_RULE_SETUP
8773 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);
8774         YY_BREAK
8775 case 460:
8776 /* rule 460 can match eol */
8777 YY_RULE_SETUP
8778 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);
8779         YY_BREAK
8780 case 461:
8781 /* rule 461 can match eol */
8782 YY_RULE_SETUP
8783 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);
8784         YY_BREAK
8785 case 462:
8786 YY_RULE_SETUP
8787 {
8788   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8789   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8790   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8791   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8792   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8793   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
8794  }
8795         YY_BREAK
8796 case 463:
8797 YY_RULE_SETUP
8798 {
8799   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8800   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8801   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8802   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8803   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8804   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
8805   switch (YY_START) {
8806    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8807   }
8808  }
8809         YY_BREAK
8810 case 464:
8811 YY_RULE_SETUP
8812 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
8813         YY_BREAK
8814 case 465:
8815 YY_RULE_SETUP
8816 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
8817         YY_BREAK
8818 case YY_STATE_EOF(AL_surfxml_random):
8819 FAIL("EOF in attribute list of `random' element.");
8820         YY_BREAK
8821
8822 case 466:
8823 /* rule 466 can match eol */
8824 YY_RULE_SETUP
8825 {
8826   LEAVE;
8827   ETag_surfxml_random();
8828   popbuffer(); /* attribute */
8829   switch (YY_START) {
8830    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8831   }
8832  }
8833         YY_BREAK
8834 case 467:
8835 /* rule 467 can match eol */
8836 YY_RULE_SETUP
8837 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
8838         YY_BREAK
8839 case 468:
8840 YY_RULE_SETUP
8841 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
8842         YY_BREAK
8843 case YY_STATE_EOF(E_surfxml_random):
8844 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
8845         YY_BREAK
8846
8847 case 469:
8848 /* rule 469 can match eol */
8849 YY_RULE_SETUP
8850 FAIL("Starting tag <route> is not allowed here.");
8851         YY_BREAK
8852 case 470:
8853 /* rule 470 can match eol */
8854 YY_RULE_SETUP
8855 {
8856   AX_surfxml_route_dst = 0;
8857   surfxml_route_dst_isset = 0;
8858   AX_surfxml_route_src = 0;
8859   surfxml_route_src_isset = 0;
8860   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8861   surfxml_route_symmetrical_isset = 0;
8862   ENTER(AL_surfxml_route); pushbuffer(0);
8863   }
8864         YY_BREAK
8865
8866 case 471:
8867 /* rule 471 can match eol */
8868 YY_RULE_SETUP
8869 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);
8870         YY_BREAK
8871 case 472:
8872 /* rule 472 can match eol */
8873 YY_RULE_SETUP
8874 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);
8875         YY_BREAK
8876 case 473:
8877 /* rule 473 can match eol */
8878 YY_RULE_SETUP
8879 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);
8880         YY_BREAK
8881 case 474:
8882 /* rule 474 can match eol */
8883 YY_RULE_SETUP
8884 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);
8885         YY_BREAK
8886 case 475:
8887 /* rule 475 can match eol */
8888 case 476:
8889 /* rule 476 can match eol */
8890 YY_RULE_SETUP
8891 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8892         YY_BREAK
8893 case 477:
8894 /* rule 477 can match eol */
8895 case 478:
8896 /* rule 478 can match eol */
8897 YY_RULE_SETUP
8898 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8899         YY_BREAK
8900 case 479:
8901 YY_RULE_SETUP
8902 {
8903   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8904   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8905   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8906  }
8907         YY_BREAK
8908 case 480:
8909 YY_RULE_SETUP
8910 {
8911   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8912   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8913   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8914   switch (YY_START) {
8915    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8916   }
8917  }
8918         YY_BREAK
8919 case 481:
8920 YY_RULE_SETUP
8921 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8922         YY_BREAK
8923 case 482:
8924 YY_RULE_SETUP
8925 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8926         YY_BREAK
8927 case YY_STATE_EOF(AL_surfxml_route):
8928 FAIL("EOF in attribute list of `route' element.");
8929         YY_BREAK
8930
8931 case 483:
8932 /* rule 483 can match eol */
8933 YY_RULE_SETUP
8934 {
8935   LEAVE;
8936   ETag_surfxml_route();
8937   popbuffer(); /* attribute */
8938   switch (YY_START) {
8939    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8940   }
8941  }
8942         YY_BREAK
8943 case 484:
8944 /* rule 484 can match eol */
8945 YY_RULE_SETUP
8946 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8947         YY_BREAK
8948 case 485:
8949 YY_RULE_SETUP
8950 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8951         YY_BREAK
8952 case YY_STATE_EOF(E_surfxml_route):
8953 case YY_STATE_EOF(S_surfxml_route):
8954 case YY_STATE_EOF(S_surfxml_route_2):
8955 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8956         YY_BREAK
8957
8958 case 486:
8959 /* rule 486 can match eol */
8960 YY_RULE_SETUP
8961 FAIL("Starting tag <router> is not allowed here.");
8962         YY_BREAK
8963 case 487:
8964 /* rule 487 can match eol */
8965 YY_RULE_SETUP
8966 {
8967   AX_surfxml_router_coordinates = 0;
8968   surfxml_router_coordinates_isset = 0;
8969   AX_surfxml_router_id = 0;
8970   surfxml_router_id_isset = 0;
8971   ENTER(AL_surfxml_router); pushbuffer(0);
8972   }
8973         YY_BREAK
8974
8975 case 488:
8976 /* rule 488 can match eol */
8977 YY_RULE_SETUP
8978 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);
8979         YY_BREAK
8980 case 489:
8981 /* rule 489 can match eol */
8982 YY_RULE_SETUP
8983 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);
8984         YY_BREAK
8985 case 490:
8986 /* rule 490 can match eol */
8987 YY_RULE_SETUP
8988 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);
8989         YY_BREAK
8990 case 491:
8991 /* rule 491 can match eol */
8992 YY_RULE_SETUP
8993 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);
8994         YY_BREAK
8995 case 492:
8996 YY_RULE_SETUP
8997 {
8998   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8999   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
9000  }
9001         YY_BREAK
9002 case 493:
9003 YY_RULE_SETUP
9004 {
9005   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9006   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
9007   switch (YY_START) {
9008    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;
9009   }
9010  }
9011         YY_BREAK
9012 case 494:
9013 YY_RULE_SETUP
9014 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
9015         YY_BREAK
9016 case 495:
9017 YY_RULE_SETUP
9018 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
9019         YY_BREAK
9020 case YY_STATE_EOF(AL_surfxml_router):
9021 FAIL("EOF in attribute list of `router' element.");
9022         YY_BREAK
9023
9024 case 496:
9025 /* rule 496 can match eol */
9026 YY_RULE_SETUP
9027 {
9028   LEAVE;
9029   ETag_surfxml_router();
9030   popbuffer(); /* attribute */
9031   switch (YY_START) {
9032    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;
9033   }
9034  }
9035         YY_BREAK
9036 case 497:
9037 /* rule 497 can match eol */
9038 YY_RULE_SETUP
9039 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
9040         YY_BREAK
9041 case 498:
9042 YY_RULE_SETUP
9043 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
9044         YY_BREAK
9045 case YY_STATE_EOF(E_surfxml_router):
9046 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
9047         YY_BREAK
9048
9049 case 499:
9050 /* rule 499 can match eol */
9051 YY_RULE_SETUP
9052 FAIL("Starting tag <storage> is not allowed here.");
9053         YY_BREAK
9054 case 500:
9055 /* rule 500 can match eol */
9056 YY_RULE_SETUP
9057 {
9058   AX_surfxml_storage_attach = 0;
9059   surfxml_storage_attach_isset = 0;
9060   AX_surfxml_storage_content = 0;
9061   surfxml_storage_content_isset = 0;
9062   AX_surfxml_storage_content___type = 35;
9063   surfxml_storage_content___type_isset = 0;
9064   AX_surfxml_storage_id = 0;
9065   surfxml_storage_id_isset = 0;
9066   AX_surfxml_storage_typeId = 0;
9067   surfxml_storage_typeId_isset = 0;
9068   ENTER(AL_surfxml_storage); pushbuffer(0);
9069   }
9070         YY_BREAK
9071
9072 case 501:
9073 /* rule 501 can match eol */
9074 YY_RULE_SETUP
9075 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);
9076         YY_BREAK
9077 case 502:
9078 /* rule 502 can match eol */
9079 YY_RULE_SETUP
9080 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);
9081         YY_BREAK
9082 case 503:
9083 /* rule 503 can match eol */
9084 YY_RULE_SETUP
9085 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);
9086         YY_BREAK
9087 case 504:
9088 /* rule 504 can match eol */
9089 YY_RULE_SETUP
9090 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);
9091         YY_BREAK
9092 case 505:
9093 /* rule 505 can match eol */
9094 YY_RULE_SETUP
9095 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
9096         YY_BREAK
9097 case 506:
9098 /* rule 506 can match eol */
9099 YY_RULE_SETUP
9100 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
9101         YY_BREAK
9102 case 507:
9103 /* rule 507 can match eol */
9104 YY_RULE_SETUP
9105 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);
9106         YY_BREAK
9107 case 508:
9108 /* rule 508 can match eol */
9109 YY_RULE_SETUP
9110 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);
9111         YY_BREAK
9112 case 509:
9113 /* rule 509 can match eol */
9114 YY_RULE_SETUP
9115 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);
9116         YY_BREAK
9117 case 510:
9118 /* rule 510 can match eol */
9119 YY_RULE_SETUP
9120 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);
9121         YY_BREAK
9122 case 511:
9123 YY_RULE_SETUP
9124 {
9125   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9126   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9127   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9128   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
9129  }
9130         YY_BREAK
9131 case 512:
9132 YY_RULE_SETUP
9133 {
9134   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9135   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9136   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9137   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
9138   switch (YY_START) {
9139    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;
9140   }
9141  }
9142         YY_BREAK
9143 case 513:
9144 YY_RULE_SETUP
9145 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
9146         YY_BREAK
9147 case 514:
9148 YY_RULE_SETUP
9149 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
9150         YY_BREAK
9151 case YY_STATE_EOF(AL_surfxml_storage):
9152 FAIL("EOF in attribute list of `storage' element.");
9153         YY_BREAK
9154
9155 case 515:
9156 /* rule 515 can match eol */
9157 YY_RULE_SETUP
9158 {
9159   LEAVE;
9160   ETag_surfxml_storage();
9161   popbuffer(); /* attribute */
9162   switch (YY_START) {
9163    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;
9164   }
9165  }
9166         YY_BREAK
9167 case 516:
9168 /* rule 516 can match eol */
9169 YY_RULE_SETUP
9170 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
9171         YY_BREAK
9172 case 517:
9173 YY_RULE_SETUP
9174 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
9175         YY_BREAK
9176 case YY_STATE_EOF(E_surfxml_storage):
9177 case YY_STATE_EOF(S_surfxml_storage):
9178 case YY_STATE_EOF(S_surfxml_storage_2):
9179 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
9180         YY_BREAK
9181
9182 case 518:
9183 /* rule 518 can match eol */
9184 YY_RULE_SETUP
9185 FAIL("Starting tag <storage_type> is not allowed here.");
9186         YY_BREAK
9187 case 519:
9188 /* rule 519 can match eol */
9189 YY_RULE_SETUP
9190 {
9191   AX_surfxml_storage___type_content = 0;
9192   surfxml_storage___type_content_isset = 0;
9193   AX_surfxml_storage___type_content___type = 16;
9194   surfxml_storage___type_content___type_isset = 0;
9195   AX_surfxml_storage___type_id = 0;
9196   surfxml_storage___type_id_isset = 0;
9197   AX_surfxml_storage___type_model = 0;
9198   surfxml_storage___type_model_isset = 0;
9199   AX_surfxml_storage___type_size = 0;
9200   surfxml_storage___type_size_isset = 0;
9201   ENTER(AL_surfxml_storage___type); pushbuffer(0);
9202   }
9203         YY_BREAK
9204
9205 case 520:
9206 /* rule 520 can match eol */
9207 YY_RULE_SETUP
9208 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);
9209         YY_BREAK
9210 case 521:
9211 /* rule 521 can match eol */
9212 YY_RULE_SETUP
9213 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);
9214         YY_BREAK
9215 case 522:
9216 /* rule 522 can match eol */
9217 YY_RULE_SETUP
9218 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
9219         YY_BREAK
9220 case 523:
9221 /* rule 523 can match eol */
9222 YY_RULE_SETUP
9223 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
9224         YY_BREAK
9225 case 524:
9226 /* rule 524 can match eol */
9227 YY_RULE_SETUP
9228 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);
9229         YY_BREAK
9230 case 525:
9231 /* rule 525 can match eol */
9232 YY_RULE_SETUP
9233 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);
9234         YY_BREAK
9235 case 526:
9236 /* rule 526 can match eol */
9237 YY_RULE_SETUP
9238 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);
9239         YY_BREAK
9240 case 527:
9241 /* rule 527 can match eol */
9242 YY_RULE_SETUP
9243 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);
9244         YY_BREAK
9245 case 528:
9246 /* rule 528 can match eol */
9247 YY_RULE_SETUP
9248 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);
9249         YY_BREAK
9250 case 529:
9251 /* rule 529 can match eol */
9252 YY_RULE_SETUP
9253 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);
9254         YY_BREAK
9255 case 530:
9256 YY_RULE_SETUP
9257 {
9258   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9259   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9260   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9261   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9262  }
9263         YY_BREAK
9264 case 531:
9265 YY_RULE_SETUP
9266 {
9267   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9268   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9269   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9270   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9271   switch (YY_START) {
9272    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;
9273   }
9274  }
9275         YY_BREAK
9276 case 532:
9277 YY_RULE_SETUP
9278 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9279         YY_BREAK
9280 case 533:
9281 YY_RULE_SETUP
9282 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9283         YY_BREAK
9284 case YY_STATE_EOF(AL_surfxml_storage___type):
9285 FAIL("EOF in attribute list of `storage_type' element.");
9286         YY_BREAK
9287
9288 case 534:
9289 /* rule 534 can match eol */
9290 YY_RULE_SETUP
9291 {
9292   LEAVE;
9293   ETag_surfxml_storage___type();
9294   popbuffer(); /* attribute */
9295   switch (YY_START) {
9296    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;
9297   }
9298  }
9299         YY_BREAK
9300 case 535:
9301 /* rule 535 can match eol */
9302 YY_RULE_SETUP
9303 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9304         YY_BREAK
9305 case 536:
9306 YY_RULE_SETUP
9307 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9308         YY_BREAK
9309 case YY_STATE_EOF(E_surfxml_storage___type):
9310 case YY_STATE_EOF(S_surfxml_storage___type):
9311 case YY_STATE_EOF(S_surfxml_storage___type_2):
9312 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
9313         YY_BREAK
9314
9315 case 537:
9316 /* rule 537 can match eol */
9317 YY_RULE_SETUP
9318 FAIL("Starting tag <trace> is not allowed here.");
9319         YY_BREAK
9320 case 538:
9321 /* rule 538 can match eol */
9322 YY_RULE_SETUP
9323 {
9324   AX_surfxml_trace_file = 0;
9325   surfxml_trace_file_isset = 0;
9326   AX_surfxml_trace_id = 0;
9327   surfxml_trace_id_isset = 0;
9328   AX_surfxml_trace_periodicity = 0;
9329   surfxml_trace_periodicity_isset = 0;
9330   ENTER(AL_surfxml_trace); pushbuffer(0);
9331   }
9332         YY_BREAK
9333
9334 case 539:
9335 /* rule 539 can match eol */
9336 YY_RULE_SETUP
9337 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);
9338         YY_BREAK
9339 case 540:
9340 /* rule 540 can match eol */
9341 YY_RULE_SETUP
9342 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);
9343         YY_BREAK
9344 case 541:
9345 /* rule 541 can match eol */
9346 YY_RULE_SETUP
9347 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);
9348         YY_BREAK
9349 case 542:
9350 /* rule 542 can match eol */
9351 YY_RULE_SETUP
9352 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);
9353         YY_BREAK
9354 case 543:
9355 /* rule 543 can match eol */
9356 YY_RULE_SETUP
9357 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);
9358         YY_BREAK
9359 case 544:
9360 /* rule 544 can match eol */
9361 YY_RULE_SETUP
9362 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);
9363         YY_BREAK
9364 case 545:
9365 YY_RULE_SETUP
9366 {
9367   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9368   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9369   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
9370  }
9371         YY_BREAK
9372 case 546:
9373 YY_RULE_SETUP
9374 {
9375   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9376   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9377   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
9378   switch (YY_START) {
9379    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9380    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9381    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;
9382   }
9383  }
9384         YY_BREAK
9385 case 547:
9386 YY_RULE_SETUP
9387 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
9388         YY_BREAK
9389 case 548:
9390 YY_RULE_SETUP
9391 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
9392         YY_BREAK
9393 case YY_STATE_EOF(AL_surfxml_trace):
9394 FAIL("EOF in attribute list of `trace' element.");
9395         YY_BREAK
9396
9397 case 549:
9398 /* rule 549 can match eol */
9399 YY_RULE_SETUP
9400 {
9401   LEAVE;
9402   BUFFERDONE;
9403   ETag_surfxml_trace();
9404   surfxml_pcdata_ix = popbuffer();
9405   popbuffer(); /* attribute */
9406   switch (YY_START) {
9407    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9408    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9409    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;
9410   }
9411  }
9412         YY_BREAK
9413 case 550:
9414 /* rule 550 can match eol */
9415 YY_RULE_SETUP
9416 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
9417         YY_BREAK
9418 case YY_STATE_EOF(IN_trace):
9419 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
9420         YY_BREAK
9421
9422 case 551:
9423 /* rule 551 can match eol */
9424 YY_RULE_SETUP
9425 FAIL("Starting tag <trace_connect> is not allowed here.");
9426         YY_BREAK
9427 case 552:
9428 /* rule 552 can match eol */
9429 YY_RULE_SETUP
9430 {
9431   AX_surfxml_trace___connect_element = 0;
9432   surfxml_trace___connect_element_isset = 0;
9433   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9434   surfxml_trace___connect_kind_isset = 0;
9435   AX_surfxml_trace___connect_trace = 0;
9436   surfxml_trace___connect_trace_isset = 0;
9437   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
9438   }
9439         YY_BREAK
9440
9441 case 553:
9442 /* rule 553 can match eol */
9443 YY_RULE_SETUP
9444 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);
9445         YY_BREAK
9446 case 554:
9447 /* rule 554 can match eol */
9448 YY_RULE_SETUP
9449 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);
9450         YY_BREAK
9451 case 555:
9452 /* rule 555 can match eol */
9453 case 556:
9454 /* rule 556 can match eol */
9455 YY_RULE_SETUP
9456 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9457         YY_BREAK
9458 case 557:
9459 /* rule 557 can match eol */
9460 case 558:
9461 /* rule 558 can match eol */
9462 YY_RULE_SETUP
9463 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
9464         YY_BREAK
9465 case 559:
9466 /* rule 559 can match eol */
9467 case 560:
9468 /* rule 560 can match eol */
9469 YY_RULE_SETUP
9470 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
9471         YY_BREAK
9472 case 561:
9473 /* rule 561 can match eol */
9474 case 562:
9475 /* rule 562 can match eol */
9476 YY_RULE_SETUP
9477 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
9478         YY_BREAK
9479 case 563:
9480 /* rule 563 can match eol */
9481 case 564:
9482 /* rule 564 can match eol */
9483 YY_RULE_SETUP
9484 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
9485         YY_BREAK
9486 case 565:
9487 /* rule 565 can match eol */
9488 YY_RULE_SETUP
9489 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);
9490         YY_BREAK
9491 case 566:
9492 /* rule 566 can match eol */
9493 YY_RULE_SETUP
9494 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);
9495         YY_BREAK
9496 case 567:
9497 YY_RULE_SETUP
9498 {
9499   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9500   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9501   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
9502  }
9503         YY_BREAK
9504 case 568:
9505 YY_RULE_SETUP
9506 {
9507   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9508   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9509   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
9510   switch (YY_START) {
9511    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9512    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9513    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;
9514   }
9515  }
9516         YY_BREAK
9517 case 569:
9518 YY_RULE_SETUP
9519 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
9520         YY_BREAK
9521 case 570:
9522 YY_RULE_SETUP
9523 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
9524         YY_BREAK
9525 case YY_STATE_EOF(AL_surfxml_trace___connect):
9526 FAIL("EOF in attribute list of `trace_connect' element.");
9527         YY_BREAK
9528
9529 case 571:
9530 /* rule 571 can match eol */
9531 YY_RULE_SETUP
9532 {
9533   LEAVE;
9534   ETag_surfxml_trace___connect();
9535   popbuffer(); /* attribute */
9536   switch (YY_START) {
9537    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9538    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9539    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;
9540   }
9541  }
9542         YY_BREAK
9543 case 572:
9544 /* rule 572 can match eol */
9545 YY_RULE_SETUP
9546 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
9547         YY_BREAK
9548 case 573:
9549 YY_RULE_SETUP
9550 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
9551         YY_BREAK
9552 case YY_STATE_EOF(E_surfxml_trace___connect):
9553 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
9554         YY_BREAK
9555
9556 /* EPILOG: after the root element. */
9557
9558 case 574:
9559 YY_RULE_SETUP
9560 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9561         YY_BREAK
9562 case YY_STATE_EOF(EPILOG):
9563 SUCCEED;
9564         YY_BREAK
9565
9566 /* CHARACTER DATA. */
9567
9568 /* Non-defined standard entities... */
9569 case 575:
9570 YY_RULE_SETUP
9571 BUFFERPUTC('&');
9572         YY_BREAK
9573 case 576:
9574 YY_RULE_SETUP
9575 BUFFERPUTC('<');
9576         YY_BREAK
9577 case 577:
9578 YY_RULE_SETUP
9579 BUFFERPUTC('>');
9580         YY_BREAK
9581 case 578:
9582 YY_RULE_SETUP
9583 BUFFERPUTC('\'');
9584         YY_BREAK
9585 case 579:
9586 YY_RULE_SETUP
9587 BUFFERPUTC('"');
9588         YY_BREAK
9589 /* Character entities. */
9590 case 580:
9591 YY_RULE_SETUP
9592 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9593         YY_BREAK
9594 case 581:
9595 YY_RULE_SETUP
9596 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9597         YY_BREAK
9598
9599 case 582:
9600 /* rule 582 can match eol */
9601 case 583:
9602 /* rule 583 can match eol */
9603 case 584:
9604 /* rule 584 can match eol */
9605 case 585:
9606 /* rule 585 can match eol */
9607 YY_RULE_SETUP
9608 BUFFERPUTC('\n');
9609         YY_BREAK
9610
9611 case 586:
9612 YY_RULE_SETUP
9613 ENTER(CDATA);
9614         YY_BREAK
9615 case 587:
9616 YY_RULE_SETUP
9617 FAIL("Unexpected `]""]>' in character data.");
9618         YY_BREAK
9619
9620 case 588:
9621 YY_RULE_SETUP
9622 BUFFERDONE; LEAVE;
9623         YY_BREAK
9624 case YY_STATE_EOF(VALUE1):
9625 FAIL("EOF in literal (\"'\" expected).");
9626         YY_BREAK
9627
9628 case 589:
9629 YY_RULE_SETUP
9630 BUFFERDONE; LEAVE;
9631         YY_BREAK
9632 case YY_STATE_EOF(VALUE2):
9633 FAIL("EOF in literal (`\"' expected).");
9634         YY_BREAK
9635
9636 case 590:
9637 /* rule 590 can match eol */
9638 YY_RULE_SETUP
9639 BUFFERPUTC(surf_parse_text[0]);
9640         YY_BREAK
9641 case 591:
9642 YY_RULE_SETUP
9643 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9644         YY_BREAK
9645
9646 case 592:
9647 YY_RULE_SETUP
9648 LEAVE;
9649         YY_BREAK
9650 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9651 case 593:
9652 YY_RULE_SETUP
9653 BUFFERPUTC(surf_parse_text[0]);
9654         YY_BREAK
9655 case YY_STATE_EOF(CDATA):
9656 FAIL("EOF in CDATA section.");
9657         YY_BREAK
9658
9659 /* Impossible rules to avoid warnings from flex(1). */
9660 /* Ideally, this should be replaced by code in flexml.pl that
9661     generates just the states not covered by other rules. */
9662
9663 case 594:
9664 /* rule 594 can match eol */
9665 YY_RULE_SETUP
9666 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9667         YY_BREAK
9668
9669 case 595:
9670 YY_RULE_SETUP
9671 ECHO;
9672         YY_BREAK
9673 case YY_STATE_EOF(INITIAL):
9674 case YY_STATE_EOF(S_surfxml_AS_2):
9675 case YY_STATE_EOF(S_surfxml_AS_5):
9676 case YY_STATE_EOF(S_surfxml_AS_7):
9677 case YY_STATE_EOF(S_surfxml_ASroute_1):
9678 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9679 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9680 case YY_STATE_EOF(S_surfxml_cluster_1):
9681 case YY_STATE_EOF(S_surfxml_config_1):
9682 case YY_STATE_EOF(S_surfxml_host_1):
9683 case YY_STATE_EOF(S_surfxml_include_1):
9684 case YY_STATE_EOF(S_surfxml_link_1):
9685 case YY_STATE_EOF(ROOT_surfxml_platform):
9686 case YY_STATE_EOF(S_surfxml_platform_2):
9687 case YY_STATE_EOF(S_surfxml_platform_5):
9688 case YY_STATE_EOF(S_surfxml_platform_7):
9689 case YY_STATE_EOF(S_surfxml_process_1):
9690 case YY_STATE_EOF(S_surfxml_route_1):
9691 case YY_STATE_EOF(S_surfxml_storage_1):
9692 case YY_STATE_EOF(S_surfxml_storage___type_1):
9693 case YY_STATE_EOF(IMPOSSIBLE):
9694         yyterminate();
9695
9696         case YY_END_OF_BUFFER:
9697                 {
9698                 /* Amount of text matched not including the EOB char. */
9699                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9700
9701                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9702                 *yy_cp = (yy_hold_char);
9703                 YY_RESTORE_YY_MORE_OFFSET
9704
9705                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9706                         {
9707                         /* We're scanning a new file or input source.  It's
9708                          * possible that this happened because the user
9709                          * just pointed surf_parse_in at a new source and called
9710                          * surf_parse_lex().  If so, then we have to assure
9711                          * consistency between YY_CURRENT_BUFFER and our
9712                          * globals.  Here is the right place to do so, because
9713                          * this is the first action (other than possibly a
9714                          * back-up) that will match for the new input source.
9715                          */
9716                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9717                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9718                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9719                         }
9720
9721                 /* Note that here we test for yy_c_buf_p "<=" to the position
9722                  * of the first EOB in the buffer, since yy_c_buf_p will
9723                  * already have been incremented past the NUL character
9724                  * (since all states make transitions on EOB to the
9725                  * end-of-buffer state).  Contrast this with the test
9726                  * in input().
9727                  */
9728                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9729                         { /* This was really a NUL. */
9730                         yy_state_type yy_next_state;
9731
9732                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9733
9734                         yy_current_state = yy_get_previous_state(  );
9735
9736                         /* Okay, we're now positioned to make the NUL
9737                          * transition.  We couldn't have
9738                          * yy_get_previous_state() go ahead and do it
9739                          * for us because it doesn't know how to deal
9740                          * with the possibility of jamming (and we don't
9741                          * want to build jamming into it because then it
9742                          * will run more slowly).
9743                          */
9744
9745                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9746
9747                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9748
9749                         if ( yy_next_state )
9750                                 {
9751                                 /* Consume the NUL. */
9752                                 yy_cp = ++(yy_c_buf_p);
9753                                 yy_current_state = yy_next_state;
9754                                 goto yy_match;
9755                                 }
9756
9757                         else
9758                                 {
9759                                 yy_cp = (yy_c_buf_p);
9760                                 goto yy_find_action;
9761                                 }
9762                         }
9763
9764                 else switch ( yy_get_next_buffer(  ) )
9765                         {
9766                         case EOB_ACT_END_OF_FILE:
9767                                 {
9768                                 (yy_did_buffer_switch_on_eof) = 0;
9769
9770                                 if ( surf_parse_wrap( ) )
9771                                         {
9772                                         /* Note: because we've taken care in
9773                                          * yy_get_next_buffer() to have set up
9774                                          * surf_parse_text, we can now set up
9775                                          * yy_c_buf_p so that if some total
9776                                          * hoser (like flex itself) wants to
9777                                          * call the scanner after we return the
9778                                          * YY_NULL, it'll still work - another
9779                                          * YY_NULL will get returned.
9780                                          */
9781                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9782
9783                                         yy_act = YY_STATE_EOF(YY_START);
9784                                         goto do_action;
9785                                         }
9786
9787                                 else
9788                                         {
9789                                         if ( ! (yy_did_buffer_switch_on_eof) )
9790                                                 YY_NEW_FILE;
9791                                         }
9792                                 break;
9793                                 }
9794
9795                         case EOB_ACT_CONTINUE_SCAN:
9796                                 (yy_c_buf_p) =
9797                                         (yytext_ptr) + yy_amount_of_matched_text;
9798
9799                                 yy_current_state = yy_get_previous_state(  );
9800
9801                                 yy_cp = (yy_c_buf_p);
9802                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9803                                 goto yy_match;
9804
9805                         case EOB_ACT_LAST_MATCH:
9806                                 (yy_c_buf_p) =
9807                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9808
9809                                 yy_current_state = yy_get_previous_state(  );
9810
9811                                 yy_cp = (yy_c_buf_p);
9812                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9813                                 goto yy_find_action;
9814                         }
9815                 break;
9816                 }
9817
9818         default:
9819                 YY_FATAL_ERROR(
9820                         "fatal flex scanner internal error--no action found" );
9821         } /* end of action switch */
9822                 } /* end of scanning one token */
9823         } /* end of user's declarations */
9824 } /* end of surf_parse_lex */
9825
9826 /* yy_get_next_buffer - try to read in a new buffer
9827  *
9828  * Returns a code representing an action:
9829  *      EOB_ACT_LAST_MATCH -
9830  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9831  *      EOB_ACT_END_OF_FILE - end of file
9832  */
9833 static int yy_get_next_buffer (void)
9834 {
9835         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9836         char *source = (yytext_ptr);
9837         int number_to_move, i;
9838         int ret_val;
9839
9840         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9841                 YY_FATAL_ERROR(
9842                 "fatal flex scanner internal error--end of buffer missed" );
9843
9844         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9845                 { /* Don't try to fill the buffer, so this is an EOF. */
9846                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9847                         {
9848                         /* We matched a single character, the EOB, so
9849                          * treat this as a final EOF.
9850                          */
9851                         return EOB_ACT_END_OF_FILE;
9852                         }
9853
9854                 else
9855                         {
9856                         /* We matched some text prior to the EOB, first
9857                          * process it.
9858                          */
9859                         return EOB_ACT_LAST_MATCH;
9860                         }
9861                 }
9862
9863         /* Try to read more data. */
9864
9865         /* First move last chars to start of buffer. */
9866         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9867
9868         for ( i = 0; i < number_to_move; ++i )
9869                 *(dest++) = *(source++);
9870
9871         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9872                 /* don't do the read, it's not guaranteed to return an EOF,
9873                  * just force an EOF
9874                  */
9875                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9876
9877         else
9878                 {
9879                         yy_size_t num_to_read =
9880                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9881
9882                 while ( num_to_read <= 0 )
9883                         { /* Not enough room in the buffer - grow it. */
9884
9885                         /* just a shorter name for the current buffer */
9886                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9887
9888                         int yy_c_buf_p_offset =
9889                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9890
9891                         if ( b->yy_is_our_buffer )
9892                                 {
9893                                 yy_size_t new_size = b->yy_buf_size * 2;
9894
9895                                 if ( new_size <= 0 )
9896                                         b->yy_buf_size += b->yy_buf_size / 8;
9897                                 else
9898                                         b->yy_buf_size *= 2;
9899
9900                                 b->yy_ch_buf = (char *)
9901                                         /* Include room in for 2 EOB chars. */
9902                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9903                                 }
9904                         else
9905                                 /* Can't grow it, we don't own it. */
9906                                 b->yy_ch_buf = 0;
9907
9908                         if ( ! b->yy_ch_buf )
9909                                 YY_FATAL_ERROR(
9910                                 "fatal error - scanner input buffer overflow" );
9911
9912                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9913
9914                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9915                                                 number_to_move - 1;
9916
9917                         }
9918
9919                 if ( num_to_read > YY_READ_BUF_SIZE )
9920                         num_to_read = YY_READ_BUF_SIZE;
9921
9922                 /* Read in more data. */
9923                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9924                         (yy_n_chars), num_to_read );
9925
9926                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9927                 }
9928
9929         if ( (yy_n_chars) == 0 )
9930                 {
9931                 if ( number_to_move == YY_MORE_ADJ )
9932                         {
9933                         ret_val = EOB_ACT_END_OF_FILE;
9934                         surf_parse_restart(surf_parse_in  );
9935                         }
9936
9937                 else
9938                         {
9939                         ret_val = EOB_ACT_LAST_MATCH;
9940                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9941                                 YY_BUFFER_EOF_PENDING;
9942                         }
9943                 }
9944
9945         else
9946                 ret_val = EOB_ACT_CONTINUE_SCAN;
9947
9948         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9949                 /* Extend the array by 50%, plus the number we really need. */
9950                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9951                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9952                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9953                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9954         }
9955
9956         (yy_n_chars) += number_to_move;
9957         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9958         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9959
9960         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9961
9962         return ret_val;
9963 }
9964
9965 /* yy_get_previous_state - get the state just before the EOB char was reached */
9966
9967     static yy_state_type yy_get_previous_state (void)
9968 {
9969         yy_state_type yy_current_state;
9970         char *yy_cp;
9971     
9972         yy_current_state = (yy_start);
9973
9974         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9975                 {
9976                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9977                 if ( yy_accept[yy_current_state] )
9978                         {
9979                         (yy_last_accepting_state) = yy_current_state;
9980                         (yy_last_accepting_cpos) = yy_cp;
9981                         }
9982                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9983                         {
9984                         yy_current_state = (int) yy_def[yy_current_state];
9985                         if ( yy_current_state >= 3481 )
9986                                 yy_c = yy_meta[(unsigned int) yy_c];
9987                         }
9988                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9989                 }
9990
9991         return yy_current_state;
9992 }
9993
9994 /* yy_try_NUL_trans - try to make a transition on the NUL character
9995  *
9996  * synopsis
9997  *      next_state = yy_try_NUL_trans( current_state );
9998  */
9999     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10000 {
10001         int yy_is_jam;
10002         char *yy_cp = (yy_c_buf_p);
10003
10004         YY_CHAR yy_c = 1;
10005         if ( yy_accept[yy_current_state] )
10006                 {
10007                 (yy_last_accepting_state) = yy_current_state;
10008                 (yy_last_accepting_cpos) = yy_cp;
10009                 }
10010         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10011                 {
10012                 yy_current_state = (int) yy_def[yy_current_state];
10013                 if ( yy_current_state >= 3481 )
10014                         yy_c = yy_meta[(unsigned int) yy_c];
10015                 }
10016         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10017         yy_is_jam = (yy_current_state == 3480);
10018
10019                 return yy_is_jam ? 0 : yy_current_state;
10020 }
10021
10022 #ifndef YY_NO_INPUT
10023 #ifdef __cplusplus
10024     static int yyinput (void)
10025 #else
10026     static int input  (void)
10027 #endif
10028
10029 {
10030         int c;
10031     
10032         *(yy_c_buf_p) = (yy_hold_char);
10033
10034         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10035                 {
10036                 /* yy_c_buf_p now points to the character we want to return.
10037                  * If this occurs *before* the EOB characters, then it's a
10038                  * valid NUL; if not, then we've hit the end of the buffer.
10039                  */
10040                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10041                         /* This was really a NUL. */
10042                         *(yy_c_buf_p) = '\0';
10043
10044                 else
10045                         { /* need more input */
10046                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10047                         ++(yy_c_buf_p);
10048
10049                         switch ( yy_get_next_buffer(  ) )
10050                                 {
10051                                 case EOB_ACT_LAST_MATCH:
10052                                         /* This happens because yy_g_n_b()
10053                                          * sees that we've accumulated a
10054                                          * token and flags that we need to
10055                                          * try matching the token before
10056                                          * proceeding.  But for input(),
10057                                          * there's no matching to consider.
10058                                          * So convert the EOB_ACT_LAST_MATCH
10059                                          * to EOB_ACT_END_OF_FILE.
10060                                          */
10061
10062                                         /* Reset buffer status. */
10063                                         surf_parse_restart(surf_parse_in );
10064
10065                                         /*FALLTHROUGH*/
10066
10067                                 case EOB_ACT_END_OF_FILE:
10068                                         {
10069                                         if ( surf_parse_wrap( ) )
10070                                                 return EOF;
10071
10072                                         if ( ! (yy_did_buffer_switch_on_eof) )
10073                                                 YY_NEW_FILE;
10074 #ifdef __cplusplus
10075                                         return yyinput();
10076 #else
10077                                         return input();
10078 #endif
10079                                         }
10080
10081                                 case EOB_ACT_CONTINUE_SCAN:
10082                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10083                                         break;
10084                                 }
10085                         }
10086                 }
10087
10088         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10089         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10090         (yy_hold_char) = *++(yy_c_buf_p);
10091
10092         if ( c == '\n' )
10093                    
10094     surf_parse_lineno++;
10095 ;
10096
10097         return c;
10098 }
10099 #endif  /* ifndef YY_NO_INPUT */
10100
10101 /** Immediately switch to a different input stream.
10102  * @param input_file A readable stream.
10103  * 
10104  * @note This function does not reset the start condition to @c INITIAL .
10105  */
10106     void surf_parse_restart  (FILE * input_file )
10107 {
10108     
10109         if ( ! YY_CURRENT_BUFFER ){
10110         surf_parse_ensure_buffer_stack ();
10111                 YY_CURRENT_BUFFER_LVALUE =
10112             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10113         }
10114
10115         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10116         surf_parse__load_buffer_state( );
10117 }
10118
10119 /** Switch to a different input buffer.
10120  * @param new_buffer The new input buffer.
10121  * 
10122  */
10123     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10124 {
10125     
10126         /* TODO. We should be able to replace this entire function body
10127          * with
10128          *              surf_parse_pop_buffer_state();
10129          *              surf_parse_push_buffer_state(new_buffer);
10130      */
10131         surf_parse_ensure_buffer_stack ();
10132         if ( YY_CURRENT_BUFFER == new_buffer )
10133                 return;
10134
10135         if ( YY_CURRENT_BUFFER )
10136                 {
10137                 /* Flush out information for old buffer. */
10138                 *(yy_c_buf_p) = (yy_hold_char);
10139                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10140                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10141                 }
10142
10143         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10144         surf_parse__load_buffer_state( );
10145
10146         /* We don't actually know whether we did this switch during
10147          * EOF (surf_parse_wrap()) processing, but the only time this flag
10148          * is looked at is after surf_parse_wrap() is called, so it's safe
10149          * to go ahead and always set it.
10150          */
10151         (yy_did_buffer_switch_on_eof) = 1;
10152 }
10153
10154 static void surf_parse__load_buffer_state  (void)
10155 {
10156         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10157         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10158         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10159         (yy_hold_char) = *(yy_c_buf_p);
10160 }
10161
10162 /** Allocate and initialize an input buffer state.
10163  * @param file A readable stream.
10164  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10165  * 
10166  * @return the allocated buffer state.
10167  */
10168     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10169 {
10170         YY_BUFFER_STATE b;
10171     
10172         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10173         if ( ! b )
10174                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10175
10176         b->yy_buf_size = size;
10177
10178         /* yy_ch_buf has to be 2 characters longer than the size given because
10179          * we need to put in 2 end-of-buffer characters.
10180          */
10181         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10182         if ( ! b->yy_ch_buf )
10183                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10184
10185         b->yy_is_our_buffer = 1;
10186
10187         surf_parse__init_buffer(b,file );
10188
10189         return b;
10190 }
10191
10192 /** Destroy the buffer.
10193  * @param b a buffer created with surf_parse__create_buffer()
10194  * 
10195  */
10196     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10197 {
10198     
10199         if ( ! b )
10200                 return;
10201
10202         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10203                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10204
10205         if ( b->yy_is_our_buffer )
10206                 surf_parse_free((void *) b->yy_ch_buf  );
10207
10208         surf_parse_free((void *) b  );
10209 }
10210
10211 /* Initializes or reinitializes a buffer.
10212  * This function is sometimes called more than once on the same buffer,
10213  * such as during a surf_parse_restart() or at EOF.
10214  */
10215     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10216
10217 {
10218         int oerrno = errno;
10219     
10220         surf_parse__flush_buffer(b );
10221
10222         b->yy_input_file = file;
10223         b->yy_fill_buffer = 1;
10224
10225     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10226      * called from surf_parse_restart() or through yy_get_next_buffer.
10227      * In that case, we don't want to reset the lineno or column.
10228      */
10229     if (b != YY_CURRENT_BUFFER){
10230         b->yy_bs_lineno = 1;
10231         b->yy_bs_column = 0;
10232     }
10233
10234         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10235     
10236         errno = oerrno;
10237 }
10238
10239 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10240  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10241  * 
10242  */
10243     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10244 {
10245         if ( ! b )
10246                 return;
10247
10248         b->yy_n_chars = 0;
10249
10250         /* We always need two end-of-buffer characters.  The first causes
10251          * a transition to the end-of-buffer state.  The second causes
10252          * a jam in that state.
10253          */
10254         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10255         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10256
10257         b->yy_buf_pos = &b->yy_ch_buf[0];
10258
10259         b->yy_at_bol = 1;
10260         b->yy_buffer_status = YY_BUFFER_NEW;
10261
10262         if ( b == YY_CURRENT_BUFFER )
10263                 surf_parse__load_buffer_state( );
10264 }
10265
10266 /** Pushes the new state onto the stack. The new state becomes
10267  *  the current state. This function will allocate the stack
10268  *  if necessary.
10269  *  @param new_buffer The new state.
10270  *  
10271  */
10272 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10273 {
10274         if (new_buffer == NULL)
10275                 return;
10276
10277         surf_parse_ensure_buffer_stack();
10278
10279         /* This block is copied from surf_parse__switch_to_buffer. */
10280         if ( YY_CURRENT_BUFFER )
10281                 {
10282                 /* Flush out information for old buffer. */
10283                 *(yy_c_buf_p) = (yy_hold_char);
10284                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10285                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10286                 }
10287
10288         /* Only push if top exists. Otherwise, replace top. */
10289         if (YY_CURRENT_BUFFER)
10290                 (yy_buffer_stack_top)++;
10291         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10292
10293         /* copied from surf_parse__switch_to_buffer. */
10294         surf_parse__load_buffer_state( );
10295         (yy_did_buffer_switch_on_eof) = 1;
10296 }
10297
10298 /** Removes and deletes the top of the stack, if present.
10299  *  The next element becomes the new top.
10300  *  
10301  */
10302 void surf_parse_pop_buffer_state (void)
10303 {
10304         if (!YY_CURRENT_BUFFER)
10305                 return;
10306
10307         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10308         YY_CURRENT_BUFFER_LVALUE = NULL;
10309         if ((yy_buffer_stack_top) > 0)
10310                 --(yy_buffer_stack_top);
10311
10312         if (YY_CURRENT_BUFFER) {
10313                 surf_parse__load_buffer_state( );
10314                 (yy_did_buffer_switch_on_eof) = 1;
10315         }
10316 }
10317
10318 /* Allocates the stack if it does not exist.
10319  *  Guarantees space for at least one push.
10320  */
10321 static void surf_parse_ensure_buffer_stack (void)
10322 {
10323         yy_size_t num_to_alloc;
10324     
10325         if (!(yy_buffer_stack)) {
10326
10327                 /* First allocation is just for 2 elements, since we don't know if this
10328                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10329                  * immediate realloc on the next call.
10330          */
10331                 num_to_alloc = 1;
10332                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10333                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10334                                                                 );
10335                 if ( ! (yy_buffer_stack) )
10336                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10337                                                                   
10338                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10339                                 
10340                 (yy_buffer_stack_max) = num_to_alloc;
10341                 (yy_buffer_stack_top) = 0;
10342                 return;
10343         }
10344
10345         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10346
10347                 /* Increase the buffer to prepare for a possible push. */
10348                 int grow_size = 8 /* arbitrary grow size */;
10349
10350                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10351                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10352                                                                 ((yy_buffer_stack),
10353                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10354                                                                 );
10355                 if ( ! (yy_buffer_stack) )
10356                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10357
10358                 /* zero only the new slots.*/
10359                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10360                 (yy_buffer_stack_max) = num_to_alloc;
10361         }
10362 }
10363
10364 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10365  * @param base the character buffer
10366  * @param size the size in bytes of the character buffer
10367  * 
10368  * @return the newly allocated buffer state object. 
10369  */
10370 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10371 {
10372         YY_BUFFER_STATE b;
10373     
10374         if ( size < 2 ||
10375              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10376              base[size-1] != YY_END_OF_BUFFER_CHAR )
10377                 /* They forgot to leave room for the EOB's. */
10378                 return 0;
10379
10380         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10381         if ( ! b )
10382                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10383
10384         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10385         b->yy_buf_pos = b->yy_ch_buf = base;
10386         b->yy_is_our_buffer = 0;
10387         b->yy_input_file = 0;
10388         b->yy_n_chars = b->yy_buf_size;
10389         b->yy_is_interactive = 0;
10390         b->yy_at_bol = 1;
10391         b->yy_fill_buffer = 0;
10392         b->yy_buffer_status = YY_BUFFER_NEW;
10393
10394         surf_parse__switch_to_buffer(b  );
10395
10396         return b;
10397 }
10398
10399 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10400  * scan from a @e copy of @a str.
10401  * @param yystr a NUL-terminated string to scan
10402  * 
10403  * @return the newly allocated buffer state object.
10404  * @note If you want to scan bytes that may contain NUL values, then use
10405  *       surf_parse__scan_bytes() instead.
10406  */
10407 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10408 {
10409     
10410         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10411 }
10412
10413 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10414  * scan from a @e copy of @a bytes.
10415  * @param yybytes the byte buffer to scan
10416  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10417  * 
10418  * @return the newly allocated buffer state object.
10419  */
10420 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10421 {
10422         YY_BUFFER_STATE b;
10423         char *buf;
10424         yy_size_t n;
10425         yy_size_t i;
10426     
10427         /* Get memory for full buffer, including space for trailing EOB's. */
10428         n = _yybytes_len + 2;
10429         buf = (char *) surf_parse_alloc(n  );
10430         if ( ! buf )
10431                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10432
10433         for ( i = 0; i < _yybytes_len; ++i )
10434                 buf[i] = yybytes[i];
10435
10436         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10437
10438         b = surf_parse__scan_buffer(buf,n );
10439         if ( ! b )
10440                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10441
10442         /* It's okay to grow etc. this buffer, and we should throw it
10443          * away when we're done.
10444          */
10445         b->yy_is_our_buffer = 1;
10446
10447         return b;
10448 }
10449
10450     static void yy_push_state (int  new_state )
10451 {
10452         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10453                 {
10454                 yy_size_t new_size;
10455
10456                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10457                 new_size = (yy_start_stack_depth) * sizeof( int );
10458
10459                 if ( ! (yy_start_stack) )
10460                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10461
10462                 else
10463                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10464
10465                 if ( ! (yy_start_stack) )
10466                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10467                 }
10468
10469         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10470
10471         BEGIN(new_state);
10472 }
10473
10474     static void yy_pop_state  (void)
10475 {
10476         if ( --(yy_start_stack_ptr) < 0 )
10477                 YY_FATAL_ERROR( "start-condition stack underflow" );
10478
10479         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10480 }
10481
10482 #ifndef YY_EXIT_FAILURE
10483 #define YY_EXIT_FAILURE 2
10484 #endif
10485
10486 static void yy_fatal_error (yyconst char* msg )
10487 {
10488         (void) fprintf( stderr, "%s\n", msg );
10489         exit( YY_EXIT_FAILURE );
10490 }
10491
10492 /* Redefine yyless() so it works in section 3 code. */
10493
10494 #undef yyless
10495 #define yyless(n) \
10496         do \
10497                 { \
10498                 /* Undo effects of setting up surf_parse_text. */ \
10499         int yyless_macro_arg = (n); \
10500         YY_LESS_LINENO(yyless_macro_arg);\
10501                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10502                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10503                 (yy_hold_char) = *(yy_c_buf_p); \
10504                 *(yy_c_buf_p) = '\0'; \
10505                 surf_parse_leng = yyless_macro_arg; \
10506                 } \
10507         while ( 0 )
10508
10509 /* Accessor  methods (get/set functions) to struct members. */
10510
10511 /** Get the current line number.
10512  * 
10513  */
10514 int surf_parse_get_lineno  (void)
10515 {
10516         
10517     return surf_parse_lineno;
10518 }
10519
10520 /** Get the input stream.
10521  * 
10522  */
10523 FILE *surf_parse_get_in  (void)
10524 {
10525         return surf_parse_in;
10526 }
10527
10528 /** Get the output stream.
10529  * 
10530  */
10531 FILE *surf_parse_get_out  (void)
10532 {
10533         return surf_parse_out;
10534 }
10535
10536 /** Get the length of the current token.
10537  * 
10538  */
10539 yy_size_t surf_parse_get_leng  (void)
10540 {
10541         return surf_parse_leng;
10542 }
10543
10544 /** Get the current token.
10545  * 
10546  */
10547
10548 char *surf_parse_get_text  (void)
10549 {
10550         return surf_parse_text;
10551 }
10552
10553 /** Set the current line number.
10554  * @param line_number
10555  * 
10556  */
10557 void surf_parse_set_lineno (int  line_number )
10558 {
10559     
10560     surf_parse_lineno = line_number;
10561 }
10562
10563 /** Set the input stream. This does not discard the current
10564  * input buffer.
10565  * @param in_str A readable stream.
10566  * 
10567  * @see surf_parse__switch_to_buffer
10568  */
10569 void surf_parse_set_in (FILE *  in_str )
10570 {
10571         surf_parse_in = in_str ;
10572 }
10573
10574 void surf_parse_set_out (FILE *  out_str )
10575 {
10576         surf_parse_out = out_str ;
10577 }
10578
10579 int surf_parse_get_debug  (void)
10580 {
10581         return surf_parse__flex_debug;
10582 }
10583
10584 void surf_parse_set_debug (int  bdebug )
10585 {
10586         surf_parse__flex_debug = bdebug ;
10587 }
10588
10589 static int yy_init_globals (void)
10590 {
10591         /* Initialization is the same as for the non-reentrant scanner.
10592      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10593      */
10594
10595     /* We do not touch surf_parse_lineno unless the option is enabled. */
10596     surf_parse_lineno =  1;
10597     
10598     (yy_buffer_stack) = 0;
10599     (yy_buffer_stack_top) = 0;
10600     (yy_buffer_stack_max) = 0;
10601     (yy_c_buf_p) = (char *) 0;
10602     (yy_init) = 0;
10603     (yy_start) = 0;
10604
10605     (yy_start_stack_ptr) = 0;
10606     (yy_start_stack_depth) = 0;
10607     (yy_start_stack) =  NULL;
10608
10609 /* Defined in main.c */
10610 #ifdef YY_STDINIT
10611     surf_parse_in = stdin;
10612     surf_parse_out = stdout;
10613 #else
10614     surf_parse_in = (FILE *) 0;
10615     surf_parse_out = (FILE *) 0;
10616 #endif
10617
10618     /* For future reference: Set errno on error, since we are called by
10619      * surf_parse_lex_init()
10620      */
10621     return 0;
10622 }
10623
10624 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10625 int surf_parse_lex_destroy  (void)
10626 {
10627     
10628     /* Pop the buffer stack, destroying each element. */
10629         while(YY_CURRENT_BUFFER){
10630                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10631                 YY_CURRENT_BUFFER_LVALUE = NULL;
10632                 surf_parse_pop_buffer_state();
10633         }
10634
10635         /* Destroy the stack itself. */
10636         surf_parse_free((yy_buffer_stack) );
10637         (yy_buffer_stack) = NULL;
10638
10639     /* Destroy the start condition stack. */
10640         surf_parse_free((yy_start_stack)  );
10641         (yy_start_stack) = NULL;
10642
10643     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10644      * surf_parse_lex() is called, initialization will occur. */
10645     yy_init_globals( );
10646
10647     return 0;
10648 }
10649
10650 /*
10651  * Internal utility routines.
10652  */
10653
10654 #ifndef yytext_ptr
10655 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10656 {
10657         int i;
10658         for ( i = 0; i < n; ++i )
10659                 s1[i] = s2[i];
10660 }
10661 #endif
10662
10663 #ifdef YY_NEED_STRLEN
10664 static int yy_flex_strlen (yyconst char * s )
10665 {
10666         int n;
10667         for ( n = 0; s[n]; ++n )
10668                 ;
10669
10670         return n;
10671 }
10672 #endif
10673
10674 void *surf_parse_alloc (yy_size_t  size )
10675 {
10676         return (void *) malloc( size );
10677 }
10678
10679 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10680 {
10681         /* The cast to (char *) in the following accommodates both
10682          * implementations that use char* generic pointers, and those
10683          * that use void* generic pointers.  It works with the latter
10684          * because both ANSI C and C++ allow castless assignment from
10685          * any pointer type to void*, and deal with argument conversions
10686          * as though doing an assignment.
10687          */
10688         return (void *) realloc( (char *) ptr, size );
10689 }
10690
10691 void surf_parse_free (void * ptr )
10692 {
10693         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10694 }
10695
10696 #define YYTABLES_NAME "yytables"
10697
10698 /* Element context stack lookup. */
10699 int surfxml_element_context(int i)
10700 {
10701   return (0<i && i<yy_start_stack_depth
10702           ? yy_start_stack[yy_start_stack_ptr - i]
10703           : 0);
10704 }
10705
10706 #ifdef FLEX_DEBUG
10707 void print_yy_stack(char* fmt, ...)
10708 {
10709   int i = 0; va_list ap; va_start(ap, fmt);
10710   vfprintf(stderr, fmt, ap);
10711   if (surfxml_statenames) {
10712       for (i=1; i<yy_start_stack_ptr; i++) {
10713           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10714       }
10715       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10716   }
10717   va_end(ap);
10718 }
10719
10720 void print_surfxml_bufferstack()
10721 {
10722     int i;
10723     fputs("Buffer: ", stderr);
10724     for (i = 0; i < blimit; i++) {
10725        if ( surfxml_bufferstack[i] == '\377' ) break;
10726          putc(surfxml_bufferstack[i], stderr);
10727     }
10728     putc('\n', stderr);
10729 }
10730
10731 static void debug_enter(int state, const char* statename) {
10732   yy_push_state(state);
10733   if (surf_parse__flex_debug) {
10734        print_yy_stack("--ENTER(%s) : ",statename);
10735        print_surfxml_bufferstack();
10736   }
10737 }
10738
10739 static void debug_leave(void) {
10740     if (surf_parse__flex_debug) {
10741         print_yy_stack("--LEAVE : ");
10742         print_surfxml_bufferstack();
10743     }
10744   yy_pop_state();
10745 }
10746
10747 static void debug_set(int state, const char* statename) {
10748   BEGIN(state);
10749   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10750 }
10751 #endif
10752
10753 static void cleanup(void)
10754 {
10755     if (surfxml_statenames) {
10756         free(surfxml_statenames);
10757         surfxml_statenames = NULL;
10758     }
10759     free(surfxml_bufferstack);
10760     surfxml_bufferstack = NULL;
10761
10762     free(indexstack);
10763     indexstack = NULL;
10764 }
10765
10766 static int fail(const char* fmt, ...)
10767 {
10768     int chars_left, used;
10769     va_list ap; va_start(ap, fmt);
10770 #ifdef FLEXML_yylineno
10771     used = sprintf(flexml_err_msg,
10772                    "Invalid XML (XML input line %d, state %d): ",
10773                    surf_parse_lineno, YY_START);
10774 #else
10775     used = sprintf(flexml_err_msg,
10776                    "Invalid XML (state %d): ",
10777                    YY_START);
10778 #endif
10779     chars_left = flexml_max_err_msg_size - used - 1;
10780     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10781     va_end(ap);
10782
10783 #ifndef FLEXML_quiet_parser
10784     /* print directly to sdterr */
10785     fprintf(stderr, "%s\n", flexml_err_msg);
10786     flexml_err_msg[0] = '\0';
10787 #endif
10788
10789     cleanup();
10790
10791     return 1;
10792 }
10793