Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove this output.
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 547
407 #define YY_END_OF_BUFFER 548
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3217] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
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,  548,  546,
444        15,   10,   10,   15,   15,  526,   10,  526,    5,    6,
445         5,    8,    9,    8,  542,  534,  535,  543,  540,  543,
446       541,  545,  534,  535,  545,  546,   22,   10,   22,   22,
447        22,   20,   22,   26,   10,   26,   26,  546,   26,  546,
448       546,   26,   33,   10,   33,   33,   33,   31,   33,   37,
449
450        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
451        48,   48,  543,  542,   78,   10,   78,   78,   78,   76,
452        78,   78,   78,   78,   78,   82,   10,   82,  546,   82,
453       101,   10,  101,  101,  101,   99,  101,  101,  101,  105,
454        10,  105,  128,   10,  128,  128,  128,  126,  128,  128,
455       132,   10,  132,  132,  546,  132,  132,  546,  546,  132,
456       546,  132,  546,  132,  145,   10,  145,  145,  145,  143,
457       145,  145,  145,  145,  149,   10,  149,  149,  160,   10,
458       160,  160,  160,  158,  160,  160,  160,  164,   10,  164,
459       164,  173,   10,  173,  173,  173,  171,  173,  173,  177,
460
461        10,  177,  186,   10,  186,  186,  186,  184,  186,  186,
462       190,   10,  190,  213,   10,  213,  213,  213,  211,  213,
463       213,  213,  213,  213,  217,   10,  217,  546,  217,  228,
464        10,  228,  228,  228,  226,  228,  228,  228,  232,   10,
465       232,  273,   10,  273,  273,  273,  271,  273,  273,  273,
466       273,  273,  273,  273,  273,  277,   10,  277,  296,   10,
467       296,  296,  296,  294,  296,  296,  296,  296,  296,  296,
468       300,   10,  300,  321,   10,  321,  321,  321,  319,  321,
469       321,  321,  321,  321,  321,  321,  325,   10,  325,  334,
470        10,  334,  334,  334,  332,  334,  334,  338,   10,  338,
471
472       349,   10,  349,  349,  349,  347,  349,  349,  349,  353,
473        10,  353,  380,   10,  380,  380,  380,  378,  380,  380,
474       380,  380,  384,   10,  384,  384,  397,   10,  397,  397,
475       397,  395,  397,  397,  401,   10,  401,  546,  401,  418,
476        10,  418,  418,  418,  416,  418,  418,  418,  422,   10,
477       422,  422,  435,   10,  435,  435,  435,  433,  435,  435,
478       439,   10,  439,  448,   10,  448,  448,  448,  446,  448,
479       448,  452,   10,  452,  452,  465,   10,  465,  465,  465,
480       463,  465,  465,  465,  469,   10,  469,  469,  486,   10,
481       486,  486,  486,  484,  486,  486,  486,  486,  486,  490,
482
483        10,  490,  546,  490,  497,   10,  497,  497,  497,  495,
484       497,  501,   10,  501,  508,   10,  508,  508,  508,  506,
485       508,  512,   10,  512,  512,  521,   10,  521,  521,  521,
486       519,  521,  521,  525,   10,  525,   10,    0,    2,    2,
487         0,    4,    7,  537,  536,    0,    0,    0,    0,    0,
488         0,    0,   21,   23,   23,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
491        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
492        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
493
494         0,    0,  100,  102,  102,  102,  102,    0,  127,  129,
495       129,  129,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,  144,  146,
497       146,  146,  146,  146,    0,  159,  161,  161,  161,  161,
498         0,  172,  174,  174,  174,    0,  185,  187,  187,  187,
499         0,  212,  214,  214,  214,  214,  214,  214,    0,    0,
500       227,  229,  229,  229,  229,    0,  272,  274,  274,  274,
501       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
502       274,    0,  295,  297,  297,  297,  297,  297,  297,  297,
503       297,    0,  320,  322,  322,  322,  322,  322,  322,  322,
504
505       322,    0,  333,  335,  335,  335,    0,  348,  350,  350,
506       350,  350,    0,  379,  381,  381,  381,  381,  381,  381,
507         0,  396,  398,  398,  398,  398,    0,    0,  417,  419,
508       419,  419,  419,  419,    0,  434,  436,  436,  436,    0,
509       447,  449,  449,  449,    0,  464,  466,  466,  466,  466,
510         0,  485,  487,  487,  487,  487,  487,  487,    0,    0,
511       496,  498,  498,    0,  507,  509,  509,    0,  520,  522,
512       522,  522,    0,    0,    0,    0,    0,    3,    0,    0,
513         0,    0,    0,    0,    0,  544,    0,   23,    0,    0,
514       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
515
516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517         0,  106,    0,    0,    0,    0,    0,    0,   34,    0,
518         0,   49,    0,    0,   49,    0,    0,    0,  539,   79,
519         0,    0,   79,   79,   79,   79,   79,   79,    0,    0,
520         0,  102,  102,  102,    0,    0,    0,    0,  129,    0,
521         0,  107,    0,    0,    0,    0,    0,    0,  106,    0,
522         0,    0,    0,  146,    0,    0,  146,  146,    0,    0,
523       161,    0,    0,  161,    0,    0,    0,    0,  174,    0,
524         0,  187,  187,    0,    0,  214,  214,  214,    0,    0,
525       214,  214,    0,    0,    0,    0,  229,    0,    0,    0,
526
527         0,    0,    0,  274,  274,    0,    0,  274,    0,    0,
528       274,  274,  274,  274,  274,  274,  274,  274,    0,    0,
529         0,    0,    0,    0,  297,  297,  297,  297,  297,    0,
530         0,  322,  322,  322,    0,    0,  322,  322,  322,    0,
531         0,  335,    0,    0,    0,    0,  350,    0,    0,  350,
532         0,    0,  381,    0,    0,  381,  381,  381,    0,    0,
533       398,  398,  398,    0,    0,    0,  419,  419,  419,  419,
534         0,    0,  436,    0,    0,    0,    0,  449,  449,    0,
535         0,  466,  466,  466,    0,    0,  487,  487,  487,  487,
536       487,    0,    0,    0,  498,    0,    0,    0,    0,    0,
537
538         0,    0,    0,  522,    0,    0,    0,   14,    1,    0,
539         0,  532,    0,    0,    0,  529,  528,    0,    0,   23,
540         0,    0,   25,    0,  107,    0,    0,    0,    0,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
543         0,    0,    0,   34,    0,    0,   36,    0,   49,    0,
544        41,   40,   49,    0,    0,    0,   51,    0,   79,    0,
545        55,   54,    0,    0,   79,    0,    0,   79,   79,   79,
546         0,    0,   81,    0,    0,  102,  102,  102,    0,    0,
547       104,    0,    0,  109,  108,  129,    0,    0,  131,    0,
548
549         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
550         0,  146,    0,  136,  135,  146,  146,    0,    0,  148,
551         0,  161,    0,  153,  152,  161,    0,    0,  163,    0,
552         0,  168,  167,  174,    0,    0,  176,    0,  187,  187,
553         0,    0,  189,    0,  214,  214,  214,    0,  194,  193,
554       214,  214,    0,    0,  216,    0,    0,    0,  229,    0,
555       221,  220,    0,  223,  222,    0,    0,  231,    0,  274,
556       274,  274,  274,    0,  248,  247,  274,    0,  236,  235,
557         0,    0,  274,  274,  274,  274,  274,  274,  274,    0,
558         0,  276,    0,    0,  291,  290,    0,  281,  280,    0,
559
560         0,  297,  297,  297,  297,    0,    0,  299,    0,  322,
561       322,  322,  322,    0,  304,  303,    0,    0,  322,  322,
562         0,    0,  324,    0,  335,    0,  329,  328,    0,    0,
563       337,    0,  350,    0,  342,  341,  350,    0,    0,  352,
564         0,  381,    0,  357,  356,  381,  381,  381,    0,    0,
565       383,    0,    0,    0,    0,    0,  398,    0,    0,  400,
566         0,    0,    0,    0,  419,  419,    0,    0,  419,    0,
567         0,  421,    0,  436,    0,  426,  425,    0,    0,  438,
568         0,    0,    0,    0,    0,    0,    0,  451,    0,    0,
569         0,  466,  466,    0,    0,    0,    0,  468,    0,  487,
570
571       487,  487,  487,  487,    0,    0,  489,    0,    0,  498,
572         0,    0,  500,    0,    0,  505,  504,    0,    0,  511,
573         0,    0,  516,  515,  522,    0,    0,  524,    0,    0,
574         0,  533,  527,    0,    0,    0,   23,    0,    0,    0,
575         0,    0,    0,    0,    0,  191,    0,  354,    0,    0,
576       302,    0,    0,  513,    0,    0,    0,    0,    0,    0,
577         0,    0,    0,  301,    0,    0,    0,    0,    0,    0,
578         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
579         0,   57,   56,   79,    0,    0,   79,    0,  514,  102,
580         0,    0,  102,    0,  129,    0,  130,    0,    0,    0,
581
582       192,  355,    0,    0,    0,    0,    0,    0,  146,  146,
583         0,    0,    0,  161,  161,    0,    0,    0,    0,    0,
584         0,  187,    0,  214,  214,    0,    0,  214,  214,    0,
585         0,    0,    0,    0,    0,  274,  274,  274,  274,    0,
586         0,    0,  250,  249,  274,  274,  274,  274,  274,  274,
587       274,    0,    0,  293,  292,  297,  297,  297,  297,    0,
588       322,  322,  322,  322,    0,  312,  311,  322,  322,    0,
589       335,    0,  350,  350,    0,  381,  381,  381,  381,    0,
590         0,  390,  389,    0,  388,  387,  398,    0,  354,    0,
591       407,  406,  419,  419,    0,  405,  404,  419,    0,  436,
592
593         0,    0,  445,  444,    0,  443,  442,    0,    0,  458,
594       457,  466,  466,    0,  456,  455,    0,  487,    0,    0,
595       487,  487,  487,    0,    0,  498,    0,    0,  522,    0,
596         0,    0,    0,   12,    0,  530,  531,    0,   23,    0,
597         0,    0,    0,    0,    0,    0,    0,  191,    0,    0,
598       354,    0,  165,    0,  302,    0,    0,  513,    0,  385,
599         0,   39,    0,    0,    0,    0,    0,  301,    0,   38,
600         0,   30,   29,    0,    0,   43,   42,   49,    0,    0,
601        79,    0,   61,   60,   79,    0,   65,   64,   79,    0,
602       514,  102,    0,    0,    0,    0,    0,    0,  129,    0,
603
604         0,    0,  192,    0,  355,  386,    0,    0,    0,  386,
605       385,  146,    0,    0,    0,  140,  139,    0,  161,  161,
606         0,    0,  170,  169,    0,    0,  183,  182,  187,    0,
607       214,  214,    0,  198,  197,    0,    0,    0,    0,  214,
608         0,  166,    0,    0,  225,  224,    0,  274,    0,    0,
609       274,  274,    0,  246,  245,    0,    0,  274,  274,  274,
610       274,  274,  274,    0,    0,    0,  297,  297,  297,    0,
611       322,    0,    0,  322,  322,    0,    0,  322,    0,  335,
612         0,  350,  350,    0,  381,  381,  381,    0,    0,  381,
613         0,  398,    0,    0,  419,  419,  419,    0,  436,    0,
614
615         0,  466,  466,    0,  487,    0,  473,  472,  487,  487,
616       487,    0,    0,    0,    0,    0,    0,    0,    0,    0,
617         0,    0,    0,   11,    0,   23,    0,    0,    0,    0,
618         0,    0,    0,  503,    0,    0,    0,  165,    0,    0,
619         0,   53,  385,  326,    0,   39,    0,  502,   52,    0,
620         0,    0,    0,   38,    0,    0,   49,    0,    0,   79,
621        79,   79,    0,  102,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,   96,   95,    0,  129,    0,    0,    0,
623         0,  386,  327,    0,    0,    0,  146,    0,  138,  137,
624         0,  161,    0,    0,    0,    0,    0,    0,    0,  214,
625
626       214,    0,  196,  195,    0,    0,    0,  214,    0,  215,
627       166,    0,    0,  274,    0,  258,  257,    0,    0,  274,
628         0,  244,  243,    0,    0,  274,  274,  274,  274,    0,
629         0,    0,    0,  289,  288,    0,    0,  297,    0,    0,
630         0,  322,    0,  308,  307,    0,    0,  322,    0,  306,
631       305,  322,    0,  323,  335,    0,  350,  350,    0,  381,
632       381,  381,    0,    0,    0,  381,    0,  382,  398,    0,
633         0,    0,    0,    0,    0,  419,    0,  436,    0,    0,
634         0,    0,    0,    0,    0,  487,  487,  487,  487,    0,
635         0,    0,  494,  493,    0,    0,    0,  518,  517,    0,
636
637       523,    0,    0,    0,    0,    0,    0,    0,  402,    0,
638         0,    0,    0,  279,  234,  503,    0,   28,    0,    0,
639         0,  471,   53,  326,  150,    0,  502,   52,  278,  233,
640        27,  470,    0,    0,   49,    0,    0,   50,   79,    0,
641         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
642         0,    0,    0,    0,    0,    0,    0,    0,  403,    0,
643         0,    0,    0,  327,  151,    0,    0,    0,    0,    0,
644         0,  155,  154,    0,    0,  175,    0,  181,  180,    0,
645       214,  214,    0,    0,  214,    0,    0,  274,    0,  260,
646       259,  274,    0,  238,  237,    0,    0,  274,  274,  274,
647
648         0,  240,  239,    0,    0,  283,  282,    0,    0,    0,
649       285,  284,    0,  322,    0,  310,  309,  322,  322,  335,
650         0,  350,    0,    0,    0,  381,    0,    0,  381,  381,
651         0,    0,  381,  398,    0,  399,    0,    0,  411,  410,
652         0,  409,  408,  419,    0,  436,    0,    0,    0,  462,
653       461,    0,  460,  459,    0,  487,  487,  487,  487,    0,
654         0,    0,    0,    0,    0,    0,   17,    0,   19,   18,
655         0,  402,  491,  339,    0,    0,  279,  234,    0,   28,
656       423,  178,   16,  471,  150,    0,    0,  278,  233,   27,
657       470,    0,    0,   49,  538,   79,    0,   67,   66,   79,
658
659         0,   80,    0,   98,   97,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,  403,
661       340,    0,    0,    0,  151,    0,    0,  142,  141,    0,
662         0,  157,  156,    0,    0,  214,  214,    0,    0,    0,
663         0,  214,  179,    0,  274,  274,    0,  242,  241,  274,
664       274,  274,    0,    0,  287,  286,    0,  322,  322,  322,
665       335,    0,  336,  350,    0,  346,  345,    0,  381,    0,
666       363,  362,  381,  381,    0,    0,    0,    0,  381,  398,
667       424,  419,    0,  436,    0,    0,    0,    0,    0,  487,
668       487,  487,    0,  492,    0,    0,  510,    0,    0,    0,
669
670        17,    0,  491,  339,    0,    0,  218,  423,  178,   16,
671         0,    0,    0,    0,   35,   49,    0,    0,   79,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,  340,    0,    0,  219,    0,    0,    0,  162,
675         0,  214,  214,    0,  204,    0,  203,  214,  179,    0,
676       274,  274,    0,    0,  274,  274,    0,  275,    0,  298,
677       322,  322,  322,  335,    0,    0,    0,    0,    0,  381,
678       381,  381,    0,  367,    0,  366,  381,  398,  424,  419,
679         0,  420,    0,    0,    0,    0,    0,    0,  475,  474,
680
681         0,    0,  487,  487,    0,  488,  492,    0,    0,    0,
682         0,    0,   24,    0,    0,  218,    0,    0,    0,   49,
683         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,  219,    0,    0,    0,  188,  214,  214,  206,  205,
687         0,    0,    0,  274,  274,    0,  270,  269,  274,    0,
688         0,  322,  322,    0,    0,  335,    0,  344,  343,    0,
689       351,    0,  359,  358,  381,  381,  381,  369,  368,    0,
690         0,  398,  419,    0,    0,    0,    0,  437,    0,    0,
691
692         0,  479,  478,    0,    0,    0,    0,    0,  499,    0,
693         0,    0,    0,  440,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,   79,    0,    0,    0,    0,
695        88,    0,    0,    0,    0,   87,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,  441,    0,    0,  214,    0,    0,    0,  208,
698       207,    0,  230,  274,  274,  274,    0,  268,  267,  322,
699         0,    0,    0,  318,  317,    0,    0,  381,  381,  381,
700         0,  371,  370,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,  477,
702
703       476,    0,    0,    0,    0,  440,  133,    0,    0,    0,
704        45,   44,    0,    0,    0,    0,    0,    0,    0,    0,
705        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,  441,  134,    0,    0,    0,
708       214,    0,  210,  209,  274,  274,  274,  322,    0,  314,
709       313,    0,  331,  330,  381,    0,    0,  381,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712       453,  133,   84,   83,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
715        93,    0,    0,    0,    0,    0,  111,  119,    0,    0,
716         0,    0,    0,  110,  118,    0,    0,  454,  134,    0,
717         0,  200,  199,  214,  274,  274,  274,  322,  381,    0,
718       365,  364,  381,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,  428,    0,    0,  427,    0,  450,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721       453,   84,   83,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,   63,   62,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,  113,    0,    0,    0,    0,  112,    0,
724
725         0,  454,    0,  147,  214,  274,  274,    0,    0,  322,
726         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,   75,   71,
729         0,    0,   74,   70,    0,   92,    0,    0,   91,    0,
730         0,    0,  103,    0,    0,    0,    0,    0,    0,    0,
731         0,  214,  274,  274,    0,    0,    0,  322,    0,  361,
732       360,    0,    0,    0,  394,    0,  393,    0,  415,    0,
733       414,    0,  430,  432,  429,  431,    0,  467,  481,    0,
734       480,    0,    0,    0,    0,   12,    0,   12,    0,    0,
735
736         0,    0,    0,   86,   90,   85,   89,  125,    0,    0,
737       123,  124,    0,    0,  122,  214,  274,  274,    0,    0,
738         0,    0,  322,    0,    0,    0,    0,  392,  391,  413,
739       412,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,  115,    0,    0,  114,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
743         0,    0,   69,    0,   68,    0,    0,  121,    0,  120,
744         0,  202,  201,    0,  266,  265,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,  316,  315,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,  483,  482,
750         0,   73,   72,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,  117,  116,    0,    0,    0,    0,    0,    0,  252,
755         0,    0,  251,    0,    0,  373,    0,    0,  372,    0,
756         0,    0,    0,    0,  256,    0,  255,    0,  375,    0,
757
758       374,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,  262,    0,  261,    0,    0,    0,    0,
760         0,    0,  264,  263,  254,  253,  377,  376,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,   13,    0
771     } ;
772
773 static yyconst flex_int32_t yy_ec[256] =
774     {   0,
775         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
776         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
777         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
778         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
779         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
780        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
781        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
782        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
783        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
784        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
785
786        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
787        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
788        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
791         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
792         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1
803     } ;
804
805 static yyconst flex_int32_t yy_meta[75] =
806     {   0,
807         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
808         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
809         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
810         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
811         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
812         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
813         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
814         5,    5,    5,    5
815     } ;
816
817 static yyconst flex_int16_t yy_base[3687] =
818     {   0,
819         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
820        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
821       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
822       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
823       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
824       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
825       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
826       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
827       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
828       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
829
830       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
831      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
832      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
833      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
834      1585, 1654, 1341, 1345, 1723,    0, 1348, 1403, 1797, 1864,
835      1406, 1409, 1931, 1998, 1413, 1416, 2065, 2122, 1471, 1474,
836      2179, 2239, 1477, 1481, 2299, 2366, 1538, 1541, 1544, 1548,
837      1605, 1608, 1611, 1615, 2433, 2500, 1618, 1674, 1677, 1680,
838      1684, 1687, 1817, 1820, 2567, 2634, 1823, 1827, 1830, 1884,
839      1887, 1890, 1894, 1897, 2701, 2758, 1951, 1954, 2815, 2882,
840
841      1957, 1961, 2018, 2021, 2024, 2028, 2085, 2088, 2949, 3016,
842      2091, 2095, 2142, 2145, 2148, 2152, 2199, 2202, 3083, 3150,
843      2205, 2209, 2212, 2259, 2262, 2265, 2269, 2272, 3217, 3287,
844      2319, 2322, 3357, 3414, 2325, 2329, 2332, 2386, 2389, 2392,
845      2396, 2399, 3471, 3541, 2453, 2456,    0,    0, 8755,11735,
846     11735,   95,  100,   29,   41,11735,  103,   51,11735,11735,
847      8740,11735,11735, 8729,11735, 8744, 8740,  202,11735,11735,
848     11735,11735, 8738, 8738, 8689,  153,11735,  161, 8715,    0,
849       145,11735, 8681,11735,  165, 3607,   73, 2465,  315,  357,
850      8717, 8664,11735,  168, 8707,    0,  152,11735, 8665,11735,
851
852       261, 8709,   31,11735,  266, 8700,    0,  245,11735, 8658,
853      8662, 8660,  421, 8661,11735,  269, 8687,    0,  340,11735,
854      8653, 8649,  271, 8651,  238,11735,  441,  163,  313,  368,
855     11735,  503, 8679,    0,  401,11735, 8634, 8636, 8626,11735,
856       506,  548,11735,  561, 8667,    0,  481,11735, 8634, 8622,
857     11735,  571, 2474, 2399,  567,  206,   38, 8668,  477, 2473,
858       572,  907, 8667,   79,11735,  628, 8658,    0,  482,11735,
859      8079, 8089, 8076, 8081,11735,  638,  426,  597,11735,  697,
860      8117,    0,  546,11735, 8073, 8083, 8061,11735,  703,  631,
861       691,11735,  706, 8113,    0,  549,11735, 8079, 8081,11735,
862
863       765,  753,11735,  773, 8108,    0,  616,11735, 8071, 8046,
864     11735,  776,  818,11735,  831, 8097,    0,  815,11735, 8039,
865      8045, 8054, 8037, 8030,11735,  838,  825, 8081,   87,11735,
866       841, 8072,    0,  882,11735, 8027, 8033, 8020,11735,  906,
867       958,11735,  914, 8057,    0,  891,11735, 8005,  203, 8011,
868      8020, 8010,  157,  311,  908,11735,  981, 1019,11735, 1039,
869      8038,    0,  953,11735, 7985, 7996, 7998,  251, 7996, 7975,
870     11735, 1044, 1032,11735, 1048, 8022,    0,  966,11735, 7967,
871      7965, 7967, 7977, 7978, 7952, 7946,11735, 1088, 1092,11735,
872      1105, 7990,    0, 1033,11735, 7946, 7955,11735, 1112, 1154,
873
874     11735, 1115, 7986,    0, 1089,11735, 7933, 7925, 7927,11735,
875      1118, 1160,11735, 1174, 7943,    0, 1090,11735, 7913, 7908,
876      7906,   15,11735, 1180,  559,  699,11735, 1183, 7934,    0,
877      1158,11735, 7885,  181,11735, 1186,  963, 7935, 7886,11735,
878      1241, 7924,    0, 1225,11735, 7868, 7863,  299,11735, 1247,
879      7921,  761,11735, 1303, 7910,    0, 1226,11735, 7872, 7866,
880     11735, 1309, 1352,11735, 1365, 7897,    0, 1231,11735, 7845,
881      7845,11735, 1368, 7897,  851,11735, 1372, 7887,    0, 1287,
882     11735, 7839, 7833, 7832,11735, 1376, 7878,  944,11735, 1433,
883      7869,    0, 1288,11735, 7818, 7818, 7823, 7816, 7801,11735,
884
885      1436, 1437, 7852,  512,11735, 1439, 7830,    0, 1293,11735,
886      7795,11735, 1444, 1482,11735, 1502, 7823,    0, 1360,11735,
887      7789,11735, 1507,  350,  814,11735, 1510, 7802,    0, 1423,
888     11735, 7765, 7767,11735, 1551, 1556, 1568,  677, 7733,11735,
889      7794, 7782,11735,11735,11735, 1566,  254, 7733, 7731, 7725,
890      7762, 7720,11735,    0, 7708, 7707, 7725, 7697,  104,  970,
891      7698, 7688, 7692,  372, 1574,  378, 7675, 7676, 1433,  429,
892      7701, 1500, 7667, 1575, 7661, 1590, 1643, 1644,11735,    0,
893      7666, 7667,11735,    0, 7659, 1964, 7652,  372, 7648, 7695,
894     11735,    0, 7638, 2031, 7627, 7631, 7617, 7624, 7615, 7606,
895
896      7591, 1654,11735,    0, 7593, 7583, 7590, 7569,11735,    0,
897      2098, 7567, 7612, 7590,  172, 7561, 7565,  493, 7553, 7580,
898       639,  680,  841,  888,  627, 1659,  707, 1282,11735,    0,
899      7549, 2155, 7554, 7531, 7536,11735,    0, 7536, 2462, 7532,
900      7528,11735,    0, 2480, 7532, 7527,11735,    0, 7526, 7521,
901      7519,11735,    0, 7529,  434, 2523, 7505, 7526, 7517, 1091,
902     11735,    0, 7496, 2534, 2541, 7503,11735,    0, 7499, 7493,
903      2546, 7474, 2587, 7470, 7456, 7473, 7472, 7450, 7469, 7466,
904      7459, 7457,11735,    0, 2590, 2593, 7438, 7434, 7443, 7443,
905      7439, 7437,11735,    0, 7438, 7434, 7418, 2596, 7411, 7399,
906
907      7418, 7401,11735,    0, 7398, 2599, 7383,11735,    0, 7386,
908      2654, 7378, 7388,11735,    0, 7375, 2657, 7367, 7381, 7379,
909      7366,11735,    0, 7357, 7372, 7349, 7343, 7350,11735,    0,
910      7331, 7348, 7340, 7329, 7366,11735,    0, 7320, 2660, 7324,
911     11735,    0, 7315, 7330, 7314,11735,    0, 7295, 7312, 7307,
912      7301,11735,    0, 7288, 7272, 7278, 7286, 7283, 7267, 7255,
913     11735,    0, 7260, 7269,11735,    0, 2663, 7259,11735,    0,
914      2666, 7249, 7243, 7286, 7290, 1471, 7237,11735, 1630,    0,
915      7232, 7227, 7272, 7267, 7220,11735, 7228, 7209, 2721, 2724,
916      1847, 7219, 7212, 7198, 7210, 7190, 7194, 7183, 7184, 7172,
917
918      7163, 7155, 7169, 7171, 7152, 7146, 7138, 7142, 7147, 7129,
919      7128, 1856, 7134, 7110, 7127, 7123, 7105, 7118, 7112, 2729,
920      2732, 7109, 2735, 1914, 7102, 7110, 2778, 2783,11735, 7079,
921      2787, 1983, 2793, 7063, 2835, 7067, 7070, 7073, 2838, 2849,
922      7049, 7033, 7037, 7037, 2843, 2853, 2862, 2050, 7018, 2902,
923      2905, 2229, 7030, 7012, 7006, 7000, 6988, 6992, 2289, 6986,
924      6985, 6978, 6967, 6967, 2908, 2416, 6980, 6979, 2911, 2970,
925      6962, 2914, 2466, 6976, 2973, 2977, 2980, 2488, 6974, 2983,
926      3044, 6973, 6956, 3037, 3047, 6951, 6935, 6947, 3040, 2552,
927      6939, 6919, 3050, 3113, 6916, 6911, 6912, 3106, 2621, 3109,
928
929      2688, 3116, 3120, 6905, 1786, 3170, 2805, 6908, 3175, 2868,
930      3182, 6903, 6899, 6889, 6876, 6876, 6873, 6881, 3178, 3188,
931      3237, 2933, 3240, 3003, 3243, 3250, 3263, 3316, 3325, 3310,
932      3334, 6877,   37, 6844, 3307, 3070, 3320, 6853, 6833, 3378,
933      3385, 6834, 3382, 3268, 3388, 3391, 6846, 3437, 3277, 6821,
934      3442, 3445, 6821, 3448, 3339, 6818, 6800, 6797, 3493, 3500,
935      3496, 3503, 3506, 3561, 3569, 6790, 3566, 3572, 3575, 3580,
936      3593, 3598, 6786, 3601, 3347, 3605, 3613, 3619, 3632, 3640,
937      3645, 3650, 3674, 3677, 3680, 3683, 6786, 6767, 6770, 6765,
938      6752, 3686, 3695, 6752, 6734, 3705, 3708, 3717, 3527, 3720,
939
940      3727, 3730, 3742, 6733, 3735, 3750, 6771,11735,11735, 1334,
941      6729,11735, 6771, 6767, 6716,11735,11735, 6710, 6709, 6718,
942      3755, 3760,11735, 3763, 1713, 6694, 6683, 6691, 6700, 6690,
943      6672, 6678, 6661, 6664, 6660, 6649, 6645, 6634, 6631,  633,
944      6645, 6628, 6624, 6638, 6629, 6620, 1923, 6610, 6599, 6604,
945      6597, 1109, 6610, 3769, 3774, 3782,11735, 3789, 3794, 3797,
946     11735,11735, 3815, 6628, 3818, 3821,11735, 3824, 6585, 3827,
947     11735,11735, 3843, 3846, 3855, 3861, 3866, 6599, 3879, 6596,
948      3882, 3885,11735, 3888, 1648, 6579, 3891, 6577, 3897, 3909,
949     11735, 3912, 3916,11735,11735, 6571, 3924, 3931,11735, 3934,
950
951      6564, 6565, 6573, 6551, 6545, 6534, 6532, 6544, 6542, 6518,
952      6517, 6530, 3937,11735,11735, 6506, 3945, 3953, 3956,11735,
953      3963, 6512, 3966,11735,11735, 6514, 3975, 3978,11735, 3982,
954      3985,11735,11735, 3997, 4001, 4004,11735, 4007, 4010, 4016,
955      4028, 4034,11735, 4037, 6473, 6480, 4040, 4047,11735,11735,
956      6464, 6472, 4058, 4061,11735, 4064, 6462, 6450, 4067, 4071,
957     11735,11735, 4085,11735,11735, 4093, 4096,11735, 4099, 6452,
958      6434, 6430, 6422, 4105,11735,11735, 4118, 4121,11735,11735,
959      4130, 4136, 6406, 6413, 6410, 6407, 6399, 6398, 6393, 4144,
960      4148,11735, 4151, 4154,11735,11735, 4170,11735,11735, 4178,
961
962      4181, 6378, 6384, 6388, 6381, 4189, 4192,11735, 4196, 6376,
963      6366, 6355, 6370, 4199,11735,11735, 4211, 4215, 6355, 6366,
964      4223, 4229,11735, 4232, 6357, 4235,11735,11735, 4251, 4254,
965     11735, 4257, 6335, 4260,11735,11735, 6339, 4276, 4279,11735,
966      4284, 6325, 4288,11735,11735, 6332, 6336, 6338, 4298, 4303,
967     11735, 4307, 4310, 4313, 4328, 4334, 6327, 4342, 4346,11735,
968      4350, 6319, 4353, 4371, 6306, 6306, 4357, 4379, 6317, 4387,
969      4390,11735, 4393, 6314, 4396,11735,11735, 4412, 4418,11735,
970      4421, 4424, 4427, 4442, 4445, 4453, 4460,11735, 4464, 4467,
971      4472, 6290, 6290, 4485, 4488, 4496, 4499,11735, 4503, 6286,
972
973      4506, 6297, 6277, 6247, 4509, 4518,11735, 4528, 6245, 6255,
974      4531, 4537,11735, 4540, 4543,11735,11735, 4551, 4559,11735,
975      4562, 4566,11735,11735, 6250, 4574, 4581,11735, 4584,  940,
976      4594,11735,11735, 6276, 6264, 6226, 6201, 4603, 6190, 6191,
977      6195, 6169, 6173, 6146, 6139, 2116, 6088, 2173, 6086, 6012,
978      2349, 6002, 6002, 2358, 5990, 5920, 5921, 5896, 5838, 5793,
979      5788, 5716, 5684, 2361, 5693, 5649, 4606, 4624, 4609, 4615,
980      4633, 5635, 5641, 4641, 5557, 4646,11735,11735, 4654, 4661,
981      4672,11735,11735, 5555, 4680, 4684, 5550, 4692, 2425, 5520,
982      4698, 4701, 4711, 4716, 5517, 4618,11735, 5485, 5418, 5394,
983
984      2428, 2560,   13,   40,  127,  304,  352,  383,  384, 4719,
985      4722, 4725, 4743,  434,  498, 4746, 4749, 4752, 4767, 4770,
986      4773,  566, 4781,  636,  637, 4788, 4791, 4800, 4811, 4814,
987       676,  686, 4818, 4822, 4836,  713, 4839,  703,  748, 4843,
988      4846, 4861,11735,11735, 4869,  740,  775,  765,  784,  844,
989       825, 4872, 4875,11735,11735, 4883, 4887, 4891, 4894, 4897,
990       853, 4905,  852,  895, 4912,11735,11735, 4923,  918, 4926,
991       924, 4929,  929,  974, 4932,  971, 1020, 1024, 4941, 4953,
992      4959,11735,11735, 4968,11735,11735, 1030, 4976, 2629, 4979,
993     11735,11735, 1032, 1054, 4996,11735,11735, 1071, 4991, 1094,
994
995      5004, 5011,11735,11735, 5019,11735,11735, 5027, 5030,11735,
996     11735, 1100, 1156, 5039,11735,11735, 5047, 1165, 5053, 5056,
997      1165, 1177, 1192, 5066, 1180, 5071, 5075, 5078, 5081, 5085,
998      1405, 1249, 5089,11735, 1264,11735,11735, 1232, 1234, 5099,
999      1234, 1250, 1283, 1293, 1329, 1346, 1359, 2696, 1362, 1371,
1000      2753, 1375, 2797, 1383, 2876, 1370, 1400, 2943, 1427, 3011,
1001      1435, 3078, 1461, 1456, 1481, 1504, 1506, 3141, 1506, 3145,
1002      5104,11735,11735, 5118, 5121,11735,11735, 1517, 1536, 5131,
1003      1510, 5137,11735,11735, 1523, 5152,11735,11735, 1514, 5160,
1004      3208, 1533, 5163, 2965, 3032, 5112, 5172, 5186, 1561, 1556,
1005
1006      1562, 1563, 3212, 1586, 3247, 3455, 1593, 1582, 1584, 3466,
1007      5189, 1584, 5192, 5195, 5206,11735,11735, 5214, 1602, 5217,
1008      5222, 5226,11735,11735, 5241, 5244,11735,11735, 5254, 5262,
1009      1635, 1631, 5266,11735,11735, 5274, 5277, 5285, 5288, 1640,
1010      5296, 3535, 1664, 5299,11735,11735, 5309, 1668, 5315, 5318,
1011      5328, 1655, 5333,11735,11735, 5341, 5346, 5359, 1753, 1780,
1012      1782, 1785, 5362, 5365, 5368, 5371, 5380, 5386, 5389, 5392,
1013      1790, 5398, 5407, 5416, 1780, 5419, 5422, 1798, 5437, 1793,
1014      5440, 1804, 1789, 5445, 1828, 1822, 1848, 5448, 5460, 1850,
1015      5468, 1840, 5471, 1856, 5475, 5478, 5481, 5499, 1852, 5502,
1016
1017      5505, 5508, 5511, 5514, 1856, 5529,11735,11735, 1872, 1887,
1018      1894, 5537, 1917, 5540, 5549, 5558, 5563, 5567, 5571, 5585,
1019      1953, 1976, 2043,11735, 1905, 5589, 5592, 1921, 1914, 1922,
1020      2019, 1925, 1928, 4361, 1940, 1961, 1961, 5595, 1982, 1974,
1021      1976, 5598, 5607, 5611, 1998, 5614, 2009, 5619, 5622, 1993,
1022      1998, 2028, 2037, 5625, 2054, 5628, 2056, 2086, 5631, 2047,
1023      5634, 2057, 5637, 5640, 2093, 2085, 2131, 2102, 2140, 2129,
1024      2188, 2131, 5643,11735,11735, 5658, 5662, 2118, 2110, 2197,
1025      2121, 5665, 5668, 2142, 2200, 2256, 5671, 5680,11735,11735,
1026      5689, 5692, 5697, 5701, 5710, 5715, 5718, 5722, 5730, 2167,
1027
1028      2179, 5736,11735,11735, 5745, 2198, 2201, 2198, 5753,11735,
1029      5756, 2215, 5760, 2222, 5765,11735,11735, 5773, 5779, 2224,
1030      5787,11735,11735, 5795, 5798, 5806, 2225, 2236, 2231, 5809,
1031      5813, 5827, 5830,11735,11735, 5838, 5842, 5850, 5856, 5859,
1032      5868, 2240, 5875,11735,11735, 5883, 5887, 2249, 5895,11735,
1033     11735, 2258, 5903,11735, 2281, 5906, 2270, 5909, 5912, 2271,
1034      5915, 2293, 5927, 2306, 2308, 2291, 5935,11735, 2297, 5938,
1035      2289, 5941, 5944, 5962, 5965, 2301, 5974, 2319, 5980, 5983,
1036      5986, 5989, 6004, 6007, 6015, 2335, 2344, 2337, 2351, 6018,
1037      2347, 6023,11735,11735, 6037, 6041, 6045,11735,11735, 6056,
1038
1039     11735, 2531, 2442, 2395, 2363, 6060, 6063, 6071, 6084, 2405,
1040      2425, 2449, 2426, 6090, 6095, 6098, 2436, 6101, 2466, 2478,
1041      2471, 6104, 6107, 6110, 6113, 2472, 6116, 6119, 6122, 6125,
1042      6128, 6131, 2496, 6136, 2509, 2537, 6139,11735, 2538, 6143,
1043      6146, 2556, 6161, 6164, 6167, 2572, 2571, 2571, 2581, 2574,
1044      2585, 2582, 2586, 2593, 2586, 6175, 6182, 6188, 6196, 2597,
1045      2632, 2609, 2612, 6200, 6203, 6206, 6209, 6217, 6220, 6225,
1046      6238,11735,11735, 6246, 6251,11735, 6254,11735,11735, 6265,
1047      2615, 2610, 2660, 2661, 2623, 2631, 6270, 2633, 6273,11735,
1048     11735, 2655, 6285,11735,11735, 6293, 6298, 2677, 2666, 2680,
1049
1050      6307,11735,11735, 6315, 6319,11735,11735, 6327, 6330, 6338,
1051     11735,11735, 6346, 2682, 6349,11735,11735, 2675, 2685, 2678,
1052      6357, 2694, 6360, 6365, 6380, 2695, 6383, 6386, 2720, 2719,
1053      2833, 2897, 2728, 2741, 6395,11735, 2731, 6401,11735,11735,
1054      6414,11735,11735, 2751, 6409, 2751, 6423, 6428, 6431,11735,
1055     11735, 6443,11735,11735, 6451, 6455, 6461, 6465, 6473, 6479,
1056      2763, 6483, 6486, 6491, 2928, 2856, 6494, 6498,11735,11735,
1057      6506, 6513, 6516, 6519, 2777, 2775, 6525, 6533, 2789, 6536,
1058      6539, 6545, 6548, 6551, 6554, 2782, 2797, 6557, 6560, 6566,
1059      6569, 2813, 6572, 2852,11735, 6575, 6578,11735,11735, 6586,
1060
1061      6593,11735, 6597,11735,11735, 2896, 2886, 2904, 2906, 2914,
1062      2916, 2903, 2939, 2939, 2952, 6605, 6608, 6591, 6596, 6633,
1063      6637, 2923, 2923, 2941, 6640, 2940, 6643,11735,11735, 6653,
1064      6656,11735,11735, 6667, 6672, 2953, 2958, 3005, 3050, 3031,
1065      3051, 3013, 6675, 6678, 3018, 3023, 6682,11735,11735, 6691,
1066      3036, 3052, 6700, 6703,11735,11735, 6711, 3049, 3068, 3074,
1067      3078, 6714,11735, 6719, 6724,11735,11735, 6733, 6739, 6742,
1068     11735,11735, 6752, 6757, 3105, 3128, 3108, 3129, 6760, 3092,
1069      6763, 3117, 6770, 6766, 6778, 6790, 6797, 6793, 6802, 6812,
1070      6819, 6822, 6825, 6830, 6840, 6844,11735, 6847, 3155, 3258,
1071
1072      6852, 6859, 6855, 6866, 3124, 3120, 6874, 6878, 6881, 6884,
1073      3122, 3137, 3138, 6887,11735, 3129, 6890, 6893, 3146, 3162,
1074      3185, 3220, 3209, 3220, 3217, 3213, 3233, 3225, 3237, 6901,
1075      3216, 3227, 3256, 3222, 3252, 3274, 3272, 3283, 3286, 3284,
1076      3283, 3339, 6910, 3334, 3331, 6913, 3327, 6916, 6920,11735,
1077      6923, 3334, 3339, 3401,11735, 3400,11735, 6926, 6929, 6935,
1078      3342, 3364, 6945, 6948, 3353, 6956, 6963,11735, 6966,11735,
1079      3362, 3369, 6969, 3370, 6974, 6993, 6978, 6987, 7001, 7009,
1080      7012, 7015, 3436,11735, 3434,11735, 7018, 3393, 7021, 3395,
1081      7036,11735, 7039, 7042, 7050, 7057, 7062, 7065,11735,11735,
1082
1083      7076, 7081, 7089, 7094, 7097,11735, 7100, 7103, 3467, 3444,
1084      3503, 7107,11735, 3394, 3413, 7112, 3429, 3458, 3459, 7116,
1085      7127, 3555, 3666, 3451, 3486, 3497, 3500, 3504, 3528, 3505,
1086      3518, 3562, 3570, 3597, 7135, 3541, 3556, 3563, 3567, 3568,
1087      3571, 3570, 3576, 3588, 3587, 3595, 3597, 3601, 3592, 3597,
1088      3619, 7138, 3628, 7141, 7144,11735, 3621, 7147,11735,11735,
1089      7150, 7154, 7168, 3622, 3638, 7171,11735,11735, 3648, 7179,
1090      7183, 3640, 7191, 7197, 7200, 7209, 7215,11735,11735, 7223,
1091     11735, 7227,11735,11735, 7235, 7238, 7242,11735,11735, 7245,
1092      7249, 7263, 7266, 7269, 3754, 3826, 7277,11735, 7284, 7291,
1093
1094      7299,11735,11735, 7310, 7313, 7321, 7324, 7333,11735, 3694,
1095      3707, 3748, 3648, 7339, 3664, 3684, 3691, 7342, 7353, 3712,
1096      3724, 3821, 3743, 3746, 3831, 3725, 3779, 3763, 3762, 3766,
1097     11735, 3786, 3772, 3770, 3790,11735, 7345, 3768, 3778, 3766,
1098      3782, 3801, 3807, 3822, 3809, 3818, 3806, 3836, 3844, 3850,
1099      3855, 3838, 7364, 3854, 7367, 7370, 7373, 7376, 7391,11735,
1100     11735, 7399,11735, 3861, 3858, 3872, 7402,11735,11735, 3876,
1101      7410, 7418, 7430,11735,11735, 7438, 7441, 7449, 7452, 7456,
1102      7460,11735,11735, 7470, 7474, 7482, 7488, 3894, 3895, 3905,
1103      3909, 3916, 3916, 7496, 7500, 7508, 3990, 4009, 7519,11735,
1104
1105     11735, 3954, 3942, 7527, 3910, 7413, 7530, 3903, 3922, 7533,
1106     11735,11735, 3970, 3958, 3961, 3989, 4001, 3990, 3998, 4024,
1107      7541, 4015, 4036, 4066, 4057, 4042, 4061, 4076, 4068, 7548,
1108      4024, 4026, 4052, 4100, 4104, 4089, 4055, 4049, 4051, 4074,
1109      4119, 4120, 4112, 4076, 4088, 7551, 7554, 7559, 7562, 7568,
1110      4089, 7580,11735,11735, 4090, 4099, 4088, 4108, 7588,11735,
1111     11735, 7598,11735,11735, 7606, 7611, 7614, 7624, 7629, 4130,
1112      4132, 7638, 4143, 4205, 4126, 4135, 4180, 4146, 4169, 4197,
1113      7646, 7649, 4177, 4184, 4181, 4196, 4222, 7652, 7658, 7661,
1114      7671, 7680, 7683, 7686, 4188, 4202, 4204, 4206, 4212, 4222,
1115
1116      4226, 4226, 7689, 7692, 4238, 4238,11735, 4240, 4243, 4243,
1117     11735, 4245, 7700, 4231, 4221, 4287,11735,11735, 4246, 4246,
1118      4250, 4240, 4311,11735,11735, 4272, 4272, 7703, 7707, 7710,
1119      7719,11735,11735, 4268, 4271, 4276, 7729, 4277, 7732, 7735,
1120     11735,11735, 7743, 4303, 4315, 4306, 4325, 4322, 4341, 4332,
1121      4345, 4343, 4353,11735, 4349, 4360,11735, 7750,11735, 7753,
1122      4361, 4362, 4377, 4365, 4389, 7756, 7763, 7775, 7806, 7853,
1123      7783, 7786, 7789, 4381, 4402, 4405, 4372, 4392, 4409, 4425,
1124      4395, 7794,11735,11735, 4431, 4406, 4407, 4433, 4417, 4420,
1125      7817, 4392, 4394,11735, 4398, 4415, 4411, 4413,11735, 4415,
1126
1127      4428, 7826, 7829,11735, 4433, 4435, 4445, 7832, 7836, 4454,
1128      7844, 7873, 7864, 7882, 4509, 4478, 4509, 4485, 4520, 4488,
1129      4527, 4498, 4544, 4550, 4549, 4550, 7890, 4567, 4534, 4571,
1130      4541, 4580, 7899, 4583, 4631, 7919, 7966, 4576,11735,11735,
1131      4554, 4579,11735,11735, 4561,11735, 4596, 4610,11735, 4622,
1132      4623, 7893,11735, 4635, 4604, 4601, 4653, 4651, 4613, 4613,
1133      4659, 4619, 4624, 4606, 7939, 4658, 4759, 4627, 7947,11735,
1134     11735, 7955, 4769, 4772,11735, 4683,11735, 4682,11735, 4692,
1135     11735, 4697,11735,11735,11735,11735, 7912,11735,11735, 4686,
1136     11735, 4687, 4696, 4758, 4712, 4705, 4848, 4726, 7977, 4722,
1137
1138      4713, 4725, 4716,11735,11735,11735,11735,11735, 4756, 4691,
1139     11735,11735, 4827, 4707,11735, 7986, 7989, 7992, 4813, 4731,
1140      4839, 4736, 7997, 4881, 4752, 4897, 4759,11735,11735,11735,
1141     11735, 4767, 4768, 8000, 4804, 4802, 4818, 8015, 4826, 4811,
1142      4844, 4838,11735, 4817, 4863,11735, 4834, 4896, 8019, 8022,
1143      8030, 8037, 8048, 8051, 4871, 4879, 4898, 4883, 4904, 4919,
1144      8059, 8067, 4907, 4915, 4928, 4911, 4920, 4936, 4924, 4927,
1145      8062, 4949,11735, 4941,11735, 4942, 4933,11735, 4935,11735,
1146      8077,11735,11735, 8085,11735,11735, 8093, 4977, 4999, 4950,
1147      4957, 4963, 4966, 4976, 4972, 8101,11735,11735, 4981, 4986,
1148
1149      4989, 4998, 5004, 5002, 5040, 5043, 5084,11735, 5047, 5052,
1150      5008, 5010, 5049, 5065, 5075, 5070, 5081, 5087, 5092, 5096,
1151      5103, 5110, 5107, 5120, 5121, 5118, 5125, 5126,11735,11735,
1152      5140,11735,11735, 5104, 5115, 5130, 5149, 5133, 5155, 5145,
1153      5142, 5160, 5149, 5159, 5177, 5166, 5164, 5182, 5176, 5173,
1154      5197, 5211, 5221, 5224, 5200, 5200, 5203, 5203, 5223, 5215,
1155      5248, 5233, 5223, 5253, 5241, 5237, 5278, 5259, 5258, 5287,
1156      5320,11735,11735, 5276, 5281, 5280, 5288, 5309, 5290,11735,
1157      5316, 5293,11735, 5327, 5305,11735, 5332, 5318,11735, 5395,
1158      5316, 5329, 5319, 5333,11735, 5333,11735, 5350,11735, 5353,
1159
1160     11735, 5360, 8109, 5371, 5392, 5377, 5395, 5362, 5363, 5370,
1161      5383, 8112, 5424,11735, 5423,11735, 5428, 5427, 5431, 5436,
1162      5433, 5436,11735,11735,11735,11735,11735,11735, 5478, 5508,
1163      5516, 5517, 5435, 5456, 5470, 5529, 5509, 5536, 5638, 5665,
1164      5587, 5656, 5439, 5506, 5503, 5636, 5688, 5732, 5695, 5752,
1165      5709, 5721, 5774, 5775, 5668, 5716, 5750, 5766, 5783, 5829,
1166      5803, 5804, 5854, 5856, 5818, 5872, 5904, 5959, 5844, 5883,
1167      5786, 5905, 5934, 5939, 5931, 5936, 5979, 5995, 5438, 5984,
1168      5941, 6017, 5960, 6014, 6004, 6116, 6069, 6160, 5815, 6010,
1169      6026, 6131, 6155, 6223, 5880, 6138, 6167, 6212, 6226, 6241,
1170
1171      6210, 6272, 6060, 6133, 6285, 6286, 6197, 6218, 6323, 6356,
1172      6154, 6075, 8120, 8123,11735,11735, 8143, 8152, 8161, 8170,
1173      8179, 8188, 8197, 8206, 8215, 8224, 8233, 8242, 8251, 8260,
1174      8269, 8278, 8287, 8296, 8305, 8314, 8323, 8332, 8341, 8350,
1175      8359, 8368, 8377, 8386, 8395, 8404, 8413, 8422, 8431, 8440,
1176      8449, 8458, 8467, 8476, 8485, 8494, 8503, 8512, 8521, 8530,
1177      8539, 8548, 8557, 8566, 8575, 8584, 8593, 8602, 8611, 8620,
1178      8629, 8638, 8647, 8656, 8665, 8672, 8679, 8686, 8693, 8700,
1179      8707, 8714, 8721, 8728, 8735, 8742, 8749, 8756, 8763, 8770,
1180      8777, 8784, 8791, 8798, 8805, 8812, 8819, 8826, 8833, 8840,
1181
1182      8847, 8854, 8863, 8870, 8875, 8882, 8887, 8894, 8899, 8906,
1183      8911, 8918, 8923, 8930, 8935, 8942, 8947, 8954, 8959, 8966,
1184      8971, 8978, 8983, 8990, 8995, 9002, 9007, 9014, 9019, 9026,
1185      9031, 9038, 9043, 9050, 9055, 9062, 9067, 9074, 9079, 9086,
1186      9091, 9098, 9103, 9110, 9115, 9122, 9127, 9134, 9139, 9146,
1187      9151, 9158, 9163, 9170, 9175, 9182, 9187, 9196, 9202, 9209,
1188      9217, 9224, 9232, 9239, 9247, 9254, 9262, 9269, 9277, 9284,
1189      9292, 9299, 9307, 9314, 9322, 9329, 9337, 9344, 9352, 9359,
1190      9367, 9374, 9382, 9389, 9397, 9405, 9413, 9420, 9428, 9435,
1191      9443, 9450, 9458, 9465, 9473, 9481, 9489, 9497, 9505, 9512,
1192
1193      9520, 9528, 9536, 9544, 9552, 9559, 9567, 9574, 9582, 9590,
1194      9597, 9605, 9614, 9620, 9627, 9635, 9643, 9651, 9659, 9667,
1195      9674, 9682, 9689, 9697, 9704, 9712, 9719, 9727, 9734, 9742,
1196      9750, 9758, 9766, 9774, 9781, 9789, 9797, 9805, 9812, 9820,
1197      9827, 9835, 9842, 9850, 9857, 9865, 9872, 9880, 9887, 9895,
1198      9902, 9910, 9917, 9925, 9932, 9940, 9948, 9955, 9963, 9970,
1199      9978, 9985, 9993,10001,10008,10016,10025,10034,10041,10049,
1200     10057,10064,10072,10079,10087,10094,10102,10109,10116,10124,
1201     10131,10139,10147,10154,10162,10169,10177,10185,10192,10200,
1202     10208,10216,10223,10231,10238,10246,10253,10261,10268,10276,
1203
1204     10283,10291,10298,10306,10313,10321,10329,10336,10344,10351,
1205     10359,10367,10375,10383,10391,10399,10408,10417,10424,10432,
1206     10440,10447,10455,10462,10470,10477,10485,10492,10499,10507,
1207     10514,10522,10530,10538,10546,10553,10561,10569,10576,10584,
1208     10592,10600,10607,10615,10622,10630,10637,10645,10652,10660,
1209     10667,10675,10683,10691,10698,10706,10714,10722,10730,10737,
1210     10745,10753,10761,10769,10778,10787,10795,10803,10811,10818,
1211     10826,10833,10841,10849,10857,10865,10873,10881,10889,10897,
1212     10905,10913,10920,10928,10935,10943,10951,10959,10966,10973,
1213     10981,10988,10996,11003,11010,11018,11025,11033,11040,11048,
1214
1215     11056,11064,11071,11079,11087,11095,11104,11113,11121,11129,
1216     11136,11143,11151,11159,11167,11175,11183,11190,11198,11205,
1217     11213,11221,11228,11235,11243,11250,11258,11265,11272,11279,
1218     11287,11294,11302,11310,11318,11326,11334,11342,11350,11359,
1219     11368,11376,11384,11391,11399,11407,11415,11423,11431,11438,
1220     11446,11453,11461,11469,11476,11483,11491,11499,11507,11514,
1221     11521,11529,11537,11545,11553,11561,11569,11577,11585,11594,
1222     11603,11611,11618,11625,11633,11641,11649,11656,11664,11671,
1223     11680,11689,11698,11707,11716,11725
1224     } ;
1225
1226 static yyconst flex_int16_t yy_def[3687] =
1227     {   0,
1228      3217, 3217, 3218, 3218, 3218, 3218, 3219, 3219, 3220, 3220,
1229      3221, 3221, 3222, 3222, 3222, 3222, 3223, 3223, 3217, 3217,
1230      3224, 3224, 3225, 3225, 3225, 3225, 3217, 3217, 3225, 3225,
1231      3225, 3225, 3217, 3217, 3225, 3225, 3217, 3217, 3225, 3225,
1232      3225, 3225, 3226, 3226, 3227, 3227, 3217, 3217, 3227, 3227,
1233      3227, 3227, 3228, 3228, 3222, 3222, 3229, 3229, 3230, 3230,
1234      3217, 3217, 3230, 3230, 3230, 3230, 3231, 3231, 3232, 3232,
1235      3233, 3233, 3234, 3234, 3234, 3234, 3217, 3217, 3234, 3234,
1236      3234, 3234, 3217, 3217, 3234, 3234, 3217, 3217, 3234, 3234,
1237      3234, 3234, 3217, 3217, 3234, 3234, 3217, 3217, 3234, 3234,
1238
1239      3234, 3234, 3235, 3235, 3236, 3236, 3217, 3217, 3236, 3236,
1240      3236, 3236, 3237, 3237, 3238, 3238, 3217, 3217, 3238, 3238,
1241      3238, 3238, 3239, 3239, 3240, 3240, 3241, 3241, 3242, 3242,
1242      3243, 3243, 3244, 3244, 3217, 3217, 3244, 3244, 3244, 3244,
1243      3245, 3245, 3246, 3246, 3216,  145, 3247, 3247, 3248, 3248,
1244      3249, 3249, 3250, 3250, 3251, 3251, 3252, 3252, 3253, 3253,
1245      3254, 3254, 3255, 3255, 3256, 3256, 3257, 3257, 3217, 3217,
1246      3257, 3257, 3257, 3257, 3258, 3258, 3259, 3259, 3217, 3217,
1247      3259, 3259, 3259, 3259, 3260, 3260, 3261, 3261, 3217, 3217,
1248      3261, 3261, 3261, 3261, 3262, 3262, 3263, 3263, 3264, 3264,
1249
1250      3265, 3265, 3217, 3217, 3265, 3265, 3265, 3265, 3266, 3266,
1251      3267, 3267, 3217, 3217, 3267, 3267, 3267, 3267, 3268, 3268,
1252      3269, 3269, 3217, 3217, 3269, 3269, 3269, 3269, 3270, 3270,
1253      3271, 3271, 3272, 3272, 3273, 3273, 3217, 3217, 3273, 3273,
1254      3273, 3273, 3274, 3274, 3275, 3275, 3217, 3217, 3216, 3216,
1255      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1256      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1257      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3276,
1258      3216, 3216, 3276, 3216, 3216, 3216,  286,  286,  288,  286,
1259       289,  289, 3216, 3216, 3216, 3277, 3216, 3216, 3277, 3216,
1260
1261      3216,  290,  289, 3216, 3216, 3216, 3278, 3216, 3216, 3278,
1262      3278, 3278, 3216, 3216, 3216, 3216, 3216, 3279, 3216, 3216,
1263      3279, 3279, 3279, 3279, 3279, 3216, 3216,  289,  289,  289,
1264      3216, 3216, 3216, 3280, 3216, 3216, 3280, 3280, 3280, 3216,
1265      3216, 3216, 3216, 3216, 3216, 3281, 3216, 3216, 3281, 3281,
1266      3216, 3216,  290,  289,  290,  355,  354,  354,  354,  354,
1267       355,  361,  360,  359, 3216, 3216, 3216, 3282, 3216, 3216,
1268      3282, 3282, 3282, 3282, 3216, 3216,  289,  289, 3216, 3216,
1269      3216, 3283, 3216, 3216, 3283, 3283, 3283, 3216, 3216,  289,
1270       289, 3216, 3216, 3216, 3284, 3216, 3216, 3284, 3284, 3216,
1271
1272      3216, 3216, 3216, 3216, 3216, 3285, 3216, 3216, 3285, 3285,
1273      3216, 3216, 3216, 3216, 3216, 3216, 3286, 3216, 3216, 3286,
1274      3286, 3286, 3286, 3286, 3216, 3216,  289,  427,  427, 3216,
1275      3216, 3216, 3287, 3216, 3216, 3287, 3287, 3287, 3216, 3216,
1276      3216, 3216, 3216, 3216, 3288, 3216, 3216, 3288, 3288, 3288,
1277      3288, 3288, 3288, 3288, 3288, 3216, 3216, 3216, 3216, 3216,
1278      3216, 3289, 3216, 3216, 3289, 3289, 3289, 3289, 3289, 3289,
1279      3216, 3216, 3216, 3216, 3216, 3216, 3290, 3216, 3216, 3290,
1280      3290, 3290, 3290, 3290, 3290, 3290, 3216, 3216, 3216, 3216,
1281      3216, 3216, 3291, 3216, 3216, 3291, 3291, 3216, 3216, 3216,
1282
1283      3216, 3216, 3216, 3292, 3216, 3216, 3292, 3292, 3292, 3216,
1284      3216, 3216, 3216, 3216, 3216, 3293, 3216, 3216, 3293, 3293,
1285      3293, 3293, 3216, 3216,  427,  289, 3216, 3216, 3216, 3294,
1286      3216, 3216, 3294, 3294, 3216, 3216,  289,  537,  537, 3216,
1287      3216, 3216, 3295, 3216, 3216, 3295, 3295, 3295, 3216, 3216,
1288       537,  537, 3216, 3216, 3216, 3296, 3216, 3216, 3296, 3296,
1289      3216, 3216, 3216, 3216, 3216, 3216, 3297, 3216, 3216, 3297,
1290      3297, 3216, 3216,  537,  537, 3216, 3216, 3216, 3298, 3216,
1291      3216, 3298, 3298, 3298, 3216, 3216,  537,  537, 3216, 3216,
1292      3216, 3299, 3216, 3216, 3299, 3299, 3299, 3299, 3299, 3216,
1293
1294      3216,  289,  602,  602, 3216, 3216, 3216, 3300, 3216, 3216,
1295      3300, 3216, 3216, 3216, 3216, 3216, 3216, 3301, 3216, 3216,
1296      3301, 3216, 3216,  602,  289, 3216, 3216, 3216, 3302, 3216,
1297      3216, 3302, 3302, 3216, 3216, 3216, 3216, 3303, 3216, 3216,
1298      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1299      3216, 3216, 3216, 3304, 3304, 3305, 3216, 3216, 3216, 3216,
1300      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1301      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3306,
1302      3306, 3307, 3216, 3308, 3308, 3308, 3308, 3216, 3309, 3216,
1303      3216, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310,
1304
1305      3311, 3216, 3216, 3312, 3312, 3312, 3312, 3313, 3216, 3314,
1306      3314, 3314, 3315, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1307      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3316,
1308      3316, 3316, 3316, 3316, 3317, 3216, 3318, 3318, 3318, 3318,
1309      3319, 3216, 3320, 3320, 3320, 3321, 3216, 3322, 3322, 3322,
1310      3323, 3216, 3324, 3324, 3324, 3324, 3324, 3324, 3325, 3216,
1311      3216, 3326, 3326, 3326, 3326, 3327, 3216, 3328, 3328, 3328,
1312      3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328,
1313      3328, 3329, 3216, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
1314      3330, 3331, 3216, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
1315
1316      3332, 3333, 3216, 3334, 3334, 3334, 3335, 3216, 3336, 3336,
1317      3336, 3336, 3337, 3216, 3338, 3338, 3338, 3338, 3338, 3338,
1318      3339, 3216, 3340, 3340, 3340, 3340, 3341, 3216, 3216, 3342,
1319      3342, 3342, 3342, 3342, 3343, 3216, 3344, 3344, 3344, 3345,
1320      3216, 3346, 3346, 3346, 3347, 3216, 3348, 3348, 3348, 3348,
1321      3349, 3216, 3350, 3350, 3350, 3350, 3350, 3350, 3351, 3216,
1322      3216, 3352, 3352, 3353, 3216, 3354, 3354, 3355, 3216, 3356,
1323      3356, 3356, 3357, 3358, 3216, 3358, 3216, 3216, 3216, 3359,
1324      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3360, 3361, 3361,
1325      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1326
1327      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1328      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3362, 3363,
1329      3363, 3364, 3216, 3216, 3364, 3216, 3365, 3365, 3216, 3366,
1330      3216, 3216, 3366, 3366, 3366, 3366, 3366, 3366, 3367, 3367,
1331      3216, 3368, 3368, 3368, 3369, 3369, 3216, 3216, 3370, 3371,
1332      3371, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1333      3216, 3216, 3216, 3372, 3216, 3216, 3372, 3372, 3373, 3373,
1334      3374, 3216, 3216, 3374, 3375, 3375, 3216, 3216, 3376, 3377,
1335      3377, 3378, 3378, 3379, 3379, 3380, 3380, 3380, 3216, 3216,
1336      3380, 3380, 3381, 3381, 3216, 3216, 3382, 3216, 3216, 3216,
1337
1338      3216, 3383, 3383, 3384, 3384, 3216, 3216, 3384, 3216, 3216,
1339      3384, 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3385, 3385,
1340      3216, 3216, 3216, 3216, 3386, 3386, 3386, 3386, 3386, 3387,
1341      3387, 3388, 3388, 3388, 3216, 3216, 3388, 3388, 3388, 3389,
1342      3389, 3390, 3216, 3216, 3391, 3391, 3392, 3216, 3216, 3392,
1343      3393, 3393, 3394, 3216, 3216, 3394, 3394, 3394, 3395, 3395,
1344      3396, 3396, 3396, 3397, 3397, 3216, 3398, 3398, 3398, 3398,
1345      3399, 3399, 3400, 3216, 3216, 3401, 3401, 3402, 3402, 3403,
1346      3403, 3404, 3404, 3404, 3405, 3405, 3406, 3406, 3406, 3406,
1347      3406, 3407, 3407, 3216, 3408, 3409, 3409, 3216, 3216, 3410,
1348
1349      3410, 3216, 3216, 3411, 3412, 3412, 3413, 3216, 3216, 3413,
1350      3216, 3216, 3414, 3216, 3216, 3216, 3216, 3216, 3216, 3415,
1351      3216, 3416, 3216, 3416, 3216, 3216, 3216, 3216, 3216, 3216,
1352      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1353      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1354      3216, 3216, 3216, 3417, 3216, 3418, 3216, 3418, 3419, 3216,
1355      3216, 3216, 3419, 3216, 3216, 3420, 3216, 3420, 3421, 3216,
1356      3216, 3216, 3216, 3216, 3421, 3216, 3216, 3421, 3421, 3421,
1357      3216, 3422, 3216, 3422, 3216, 3423, 3423, 3423, 3216, 3424,
1358      3216, 3424, 3216, 3216, 3216, 3425, 3216, 3426, 3216, 3426,
1359
1360      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1361      3216, 3427, 3216, 3216, 3216, 3427, 3427, 3216, 3428, 3216,
1362      3428, 3429, 3216, 3216, 3216, 3429, 3216, 3430, 3216, 3430,
1363      3216, 3216, 3216, 3431, 3216, 3432, 3216, 3432, 3433, 3433,
1364      3216, 3434, 3216, 3434, 3435, 3435, 3435, 3216, 3216, 3216,
1365      3435, 3435, 3216, 3436, 3216, 3436, 3216, 3216, 3437, 3216,
1366      3216, 3216, 3216, 3216, 3216, 3216, 3438, 3216, 3438, 3439,
1367      3439, 3439, 3439, 3216, 3216, 3216, 3439, 3216, 3216, 3216,
1368      3216, 3216, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3216,
1369      3440, 3216, 3440, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1370
1371      3216, 3441, 3441, 3441, 3441, 3216, 3442, 3216, 3442, 3443,
1372      3443, 3443, 3443, 3216, 3216, 3216, 3216, 3216, 3443, 3443,
1373      3216, 3444, 3216, 3444, 3445, 3216, 3216, 3216, 3216, 3446,
1374      3216, 3446, 3447, 3216, 3216, 3216, 3447, 3216, 3448, 3216,
1375      3448, 3449, 3216, 3216, 3216, 3449, 3449, 3449, 3216, 3450,
1376      3216, 3450, 3216, 3216, 3216, 3216, 3451, 3216, 3452, 3216,
1377      3452, 3216, 3216, 3216, 3453, 3453, 3216, 3216, 3453, 3216,
1378      3454, 3216, 3454, 3455, 3216, 3216, 3216, 3216, 3456, 3216,
1379      3456, 3216, 3216, 3216, 3216, 3216, 3457, 3216, 3457, 3216,
1380      3216, 3458, 3458, 3216, 3216, 3216, 3459, 3216, 3459, 3460,
1381
1382      3460, 3460, 3460, 3460, 3216, 3461, 3216, 3461, 3216, 3462,
1383      3216, 3463, 3216, 3463, 3216, 3216, 3216, 3216, 3464, 3216,
1384      3464, 3216, 3216, 3216, 3465, 3216, 3466, 3216, 3466, 3467,
1385      3468, 3216, 3216, 3216, 3216, 3216, 3469, 3470, 3216, 3216,
1386      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1387      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1388      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3471, 3216,
1389      3216, 3472, 3216, 3473, 3474, 3216, 3216, 3216, 3216, 3216,
1390      3216, 3216, 3216, 3474, 3216, 3216, 3474, 3475, 3216, 3476,
1391      3216, 3216, 3476, 3477, 3478, 3216, 3216, 3216, 3216, 3216,
1392
1393      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3479, 3479,
1394      3216, 3216, 3480, 3481, 3481, 3482, 3216, 3216, 3483, 3216,
1395      3216, 3484, 3485, 3486, 3486, 3216, 3216, 3486, 3486, 3487,
1396      3216, 3216, 3216, 3216, 3488, 3489, 3489, 3489, 3489, 3216,
1397      3216, 3216, 3216, 3216, 3489, 3489, 3489, 3489, 3489, 3489,
1398      3489, 3490, 3216, 3216, 3216, 3491, 3491, 3491, 3491, 3492,
1399      3493, 3493, 3493, 3493, 3216, 3216, 3216, 3493, 3493, 3494,
1400      3495, 3496, 3497, 3497, 3498, 3499, 3499, 3499, 3499, 3500,
1401      3216, 3216, 3216, 3216, 3216, 3216, 3501, 3502, 3216, 3216,
1402      3216, 3216, 3503, 3503, 3216, 3216, 3216, 3503, 3504, 3505,
1403
1404      3506, 3216, 3216, 3216, 3216, 3216, 3216, 3507, 3216, 3216,
1405      3216, 3508, 3508, 3216, 3216, 3216, 3509, 3510, 3216, 3216,
1406      3510, 3510, 3510, 3511, 3216, 3512, 3513, 3514, 3515, 3516,
1407      3517, 3518, 3518, 3216, 3518, 3216, 3216, 3216, 3519, 3520,
1408      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1409      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1410      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1411      3216, 3216, 3216, 3521, 3216, 3216, 3216, 3522, 3216, 3523,
1412      3524, 3216, 3216, 3216, 3524, 3216, 3216, 3216, 3524, 3525,
1413      3216, 3526, 3216, 3216, 3216, 3216, 3216, 3527, 3528, 3216,
1414
1415      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1416      3216, 3529, 3216, 3216, 3216, 3216, 3216, 3530, 3531, 3531,
1417      3532, 3216, 3216, 3216, 3533, 3216, 3216, 3216, 3534, 3535,
1418      3536, 3536, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3536,
1419      3537, 3216, 3216, 3216, 3216, 3216, 3538, 3539, 3216, 3216,
1420      3539, 3539, 3216, 3216, 3216, 3216, 3216, 3539, 3539, 3539,
1421      3539, 3539, 3539, 3540, 3216, 3216, 3541, 3541, 3541, 3542,
1422      3543, 3216, 3216, 3543, 3543, 3216, 3216, 3543, 3544, 3545,
1423      3546, 3547, 3547, 3548, 3549, 3549, 3549, 3216, 3216, 3549,
1424      3550, 3551, 3552, 3216, 3553, 3553, 3553, 3554, 3555, 3556,
1425
1426      3557, 3558, 3558, 3559, 3560, 3216, 3216, 3216, 3560, 3560,
1427      3560, 3561, 3216, 3216, 3216, 3562, 3563, 3216, 3216, 3564,
1428      3565, 3566, 3566, 3216, 3216, 3567, 3568, 3216, 3216, 3216,
1429      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1430      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1431      3216, 3216, 3216, 3216, 3216, 3569, 3570, 3216, 3571, 3572,
1432      3572, 3572, 3573, 3574, 3216, 3216, 3216, 3216, 3216, 3216,
1433      3216, 3216, 3216, 3216, 3216, 3575, 3576, 3216, 3216, 3216,
1434      3216, 3216, 3216, 3216, 3216, 3216, 3577, 3216, 3216, 3216,
1435      3578, 3579, 3216, 3216, 3580, 3581, 3216, 3216, 3582, 3583,
1436
1437      3583, 3216, 3216, 3216, 3216, 3216, 3216, 3583, 3216, 3216,
1438      3216, 3216, 3584, 3585, 3216, 3216, 3216, 3216, 3216, 3585,
1439      3216, 3216, 3216, 3216, 3216, 3585, 3585, 3585, 3585, 3216,
1440      3216, 3586, 3216, 3216, 3216, 3216, 3216, 3587, 3216, 3216,
1441      3588, 3589, 3216, 3216, 3216, 3216, 3216, 3589, 3216, 3216,
1442      3216, 3589, 3216, 3216, 3590, 3591, 3592, 3592, 3593, 3594,
1443      3594, 3594, 3216, 3216, 3216, 3594, 3216, 3216, 3595, 3596,
1444      3216, 3216, 3216, 3216, 3216, 3597, 3598, 3599, 3600, 3601,
1445      3216, 3216, 3216, 3216, 3602, 3603, 3603, 3603, 3603, 3604,
1446      3216, 3216, 3216, 3216, 3605, 3606, 3216, 3216, 3216, 3216,
1447
1448      3216, 3607, 3608, 3608, 3216, 3216, 3216, 3609, 3216, 3216,
1449      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1450      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1451      3216, 3216, 3216, 3610, 3611, 3216, 3216, 3216, 3612, 3216,
1452      3216, 3612, 3613, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1453      3216, 3216, 3216, 3216, 3216, 3614, 3216, 3216, 3216, 3216,
1454      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3615, 3216, 3216,
1455      3216, 3216, 3216, 3616, 3216, 3216, 3216, 3216, 3216, 3617,
1456      3618, 3618, 3216, 3216, 3618, 3216, 3619, 3620, 3216, 3216,
1457      3216, 3620, 3216, 3216, 3216, 3216, 3216, 3620, 3620, 3620,
1458
1459      3216, 3216, 3216, 3621, 3216, 3216, 3216, 3216, 3216, 3216,
1460      3216, 3216, 3622, 3623, 3216, 3216, 3216, 3623, 3623, 3624,
1461      3625, 3626, 3216, 3216, 3627, 3628, 3216, 3216, 3628, 3628,
1462      3216, 3216, 3628, 3629, 3216, 3216, 3216, 3216, 3216, 3216,
1463      3216, 3216, 3216, 3630, 3631, 3632, 3633, 3634, 3216, 3216,
1464      3216, 3216, 3216, 3216, 3635, 3636, 3636, 3636, 3636, 3637,
1465      3216, 3638, 3639, 3640, 3641, 3641, 3216, 3216, 3216, 3216,
1466      3642, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1467      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1468      3216, 3216, 3643, 3644, 3216, 3645, 3216, 3216, 3216, 3645,
1469
1470      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1471      3216, 3216, 3216, 3216, 3216, 3646, 3216, 3216, 3216, 3216,
1472      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3647,
1473      3216, 3216, 3216, 3648, 3649, 3650, 3650, 3216, 3216, 3216,
1474      3216, 3650, 3216, 3651, 3652, 3652, 3216, 3216, 3216, 3652,
1475      3652, 3652, 3653, 3216, 3216, 3216, 3654, 3655, 3655, 3655,
1476      3656, 3216, 3216, 3657, 3216, 3216, 3216, 3658, 3659, 3216,
1477      3216, 3216, 3659, 3659, 3216, 3216, 3216, 3216, 3659, 3660,
1478      3216, 3661, 3662, 3663, 3664, 3665, 3666, 3216, 3216, 3667,
1479      3667, 3667, 3668, 3216, 3669, 3216, 3216, 3670, 3671, 3671,
1480
1481      3216, 3672, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1482      3216, 3216, 3216, 3216, 3216, 3673, 3216, 3216, 3674, 3216,
1483      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3675,
1484      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1485      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3676, 3216, 3216,
1486      3677, 3678, 3678, 3216, 3216, 3216, 3216, 3678, 3216, 3679,
1487      3680, 3680, 3216, 3216, 3680, 3680, 3216, 3216, 3216, 3216,
1488      3655, 3655, 3655, 3656, 3216, 3216, 3658, 3216, 3216, 3659,
1489      3659, 3659, 3216, 3216, 3216, 3216, 3659, 3660, 3216, 3661,
1490      3216, 3216, 3216, 3216, 3664, 3665, 3666, 3216, 3216, 3216,
1491
1492      3216, 3216, 3667, 3667, 3216, 3216, 3216, 3669, 3670, 3671,
1493      3671, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3673,
1494      3216, 3216, 3216, 3674, 3216, 3216, 3216, 3216, 3216, 3216,
1495      3216, 3216, 3216, 3216, 3675, 3216, 3216, 3216, 3216, 3216,
1496      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1497      3216, 3216, 3216, 3676, 3216, 3216, 3678, 3678, 3216, 3216,
1498      3216, 3216, 3679, 3680, 3680, 3216, 3216, 3216, 3680, 3216,
1499      3216, 3655, 3655, 3216, 3216, 3656, 3216, 3216, 3216, 3216,
1500      3216, 3216, 3216, 3216, 3659, 3659, 3659, 3216, 3216, 3216,
1501      3216, 3660, 3661, 3216, 3216, 3216, 3216, 3216, 3665, 3666,
1502
1503      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3670,
1504      3671, 3671, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1505      3216, 3216, 3216, 3216, 3216, 3674, 3216, 3216, 3216, 3216,
1506      3216, 3216, 3216, 3216, 3216, 3216, 3675, 3216, 3216, 3216,
1507      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1508      3216, 3216, 3216, 3216, 3676, 3678, 3216, 3216, 3216, 3216,
1509      3216, 3216, 3216, 3680, 3680, 3680, 3216, 3216, 3216, 3655,
1510      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3659, 3659, 3659,
1511      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1512      3216, 3216, 3216, 3665, 3666, 3216, 3216, 3216, 3216, 3216,
1513
1514      3216, 3670, 3671, 3671, 3216, 3216, 3216, 3216, 3216, 3216,
1515      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1516      3674, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3675,
1517      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1518      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3676, 3216, 3216,
1519      3678, 3216, 3216, 3216, 3680, 3680, 3680, 3655, 3216, 3216,
1520      3216, 3216, 3216, 3216, 3659, 3216, 3216, 3659, 3216, 3216,
1521      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1522      3665, 3666, 3216, 3216, 3216, 3216, 3670, 3671, 3671, 3671,
1523      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1524
1525      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1526      3216, 3216, 3675, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1527      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3676,
1528      3216, 3216, 3216, 3678, 3680, 3680, 3680, 3655, 3659, 3216,
1529      3216, 3216, 3659, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1530      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3666,
1531      3216, 3216, 3216, 3216, 3670, 3671, 3671, 3671, 3681, 3682,
1532      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1533      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1534      3675, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1535
1536      3216, 3216, 3216, 3216, 3678, 3680, 3680, 3216, 3216, 3655,
1537      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1538      3216, 3216, 3216, 3216, 3216, 3216, 3666, 3216, 3216, 3216,
1539      3216, 3670, 3671, 3683, 3684, 3681, 3682, 3216, 3216, 3216,
1540      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1541      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1542      3216, 3678, 3680, 3680, 3216, 3216, 3216, 3655, 3216, 3216,
1543      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1544      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1545      3216, 3216, 3670, 3683, 3671, 3685, 3684, 3686, 3671, 3216,
1546
1547      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1548      3216, 3216, 3216, 3216, 3216, 3678, 3680, 3680, 3216, 3216,
1549      3216, 3216, 3655, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1550      3216, 3216, 3216, 3670, 3685, 3216, 3686, 3671, 3216, 3216,
1551      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1552      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1553      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1554      3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1555      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1556      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1557
1558      3216, 3216, 3216, 3216, 3216, 3216, 3670, 3216, 3216, 3216,
1559      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1560      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1561      3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1562      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1563      3216, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1564      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1565      3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1566      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3670,
1567      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1568
1569      3216, 3216, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1570      3216, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1571      3670, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3670, 3670,
1572      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1573      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1574      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1575      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1576      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1577      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1578      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1579
1580      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1581      3670, 3670, 3670, 3670, 3216,    0, 3216, 3216, 3216, 3216,
1582      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1583      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1584      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1585      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1586      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1587      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1588      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1589      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1590
1591      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1592      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1593      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1594      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1595      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1596      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1597      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1598      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1599      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1600      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1601
1602      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1603      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1604      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1605      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1606      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1607      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1608      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1609      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1610      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1611      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1612
1613      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1614      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1615      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1616      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1617      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1618      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1619      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1620      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1621      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1622      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1623
1624      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1625      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1626      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1627      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1628      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1629      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1630      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1631      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1632      3216, 3216, 3216, 3216, 3216, 3216
1633     } ;
1634
1635 static yyconst flex_int16_t yy_nxt[11810] =
1636     {   0,
1637      3216,  252,  253,  252,  252,  253,  252,  252,  253,  252,
1638       252,  253,  252,  257,  253,  257,  263,  254,  260,  263,
1639       254,  260, 3216,  255, 3216,  261,  255, 3216,  261,  258,
1640       257,  253,  257,  638,  264,  266,  267,  264,  266,  267,
1641       268,  269,  682,  268,  269,  638,  258,  273,  274,  639,
1642       270,  266,  267,  270,  271,  641,  268,  266,  267,  671,
1643       271,  640,  268,  273,  274, 1706,  270,  253,  253,  253,
1644       819,  640,  270,  253,  253,  253,  285,  253,  285,  285,
1645       253,  285,  820,  276,  285,  253,  285,  659, 1707,  276,
1646       713,  275,  286, 1311,  674,  286,  637,  637,  637, 1312,
1647
1648       287,  637,  637,  637,  637,  637,  637,  275,  277,  278,
1649       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1650       277,  277,  277,  669,  277,  281,  277,  282,  277,  285,
1651       253,  285,  253,  253,  253,  253,  253,  253,  670,  285,
1652       253,  285,  285,  253,  285,  287,  675,  664,  288,  641,
1653       674,  288,  893,  277,  277,  286,  641,  641,  286,  285,
1654       253,  285,  637,  637,  637,  640,  637,  637,  637,  637,
1655       637,  637,  640,  640,  701,  289,  894,  283,  277,  278,
1656       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1657       277,  277,  277, 1708,  277,  281,  277,  282,  277,  285,
1658
1659       253,  285,  253,  253,  253,  253,  253,  253,  646,  285,
1660       253,  285,  285,  253,  285,  289,  652,  713,  290,  775,
1661       953,  290,  776,  277,  277,  287,  702,  714,  287,  253,
1662       253,  253,  253,  253,  253,  285,  253,  285,  285,  253,
1663       285,  285,  253,  285,  954,  291,  825,  283,  291,  641,
1664       647,  289,  770,  826,  289,  723,  648,  292,  285,  253,
1665       285,  649,  637,  637,  637,  640,  650,  637,  637,  637,
1666       637,  637,  637,  771,  292,  293,  294,  253,  294,  293,
1667       293,  293,  293,  293,  293,  293,  295,  293,  293,  293,
1668       699,  293,  297,  293,  298,  293,  301,  253,  301,  301,
1669
1670       253,  301,  253,  253,  253,  700,  253,  253,  253,  301,
1671       253,  301,  302,  788,  881,  302,  789,  882,  290,  695,
1672       293,  293,  290,  696, 3216,  302,  656,  697,  299,  293,
1673       294,  253,  294,  293,  293,  293,  293,  293,  293,  293,
1674       295,  293,  293,  293,  641,  293,  297,  293,  298,  293,
1675       301,  253,  301,  301,  253,  301,  301,  253,  301,  777,
1676       640,  868,  266,  267,  833,  676,  302,  268, 3216,  303,
1677      1709,  834,  303,  778,  293,  293,  702,  313,  677,  701,
1678       670,  875,  299,  304,  305,  253,  305,  304,  304,  304,
1679       304,  304,  304,  304,  306,  304,  304,  304,  658,  304,
1680
1681       308,  304,  309,  304, 1710,  641,  314,  669,  327,  253,
1682       327,  327,  253,  327,  253,  253,  253,  926,  266,  267,
1683       678,  640,  670,  268,  328,  688,  906,  328,  304,  304,
1684       329,  674,  689,  313,  901, 1711,  310,  735,  902,  311,
1685       907,  640,  637,  637,  637, 1712,  312,  304,  305,  253,
1686       305,  304,  304,  304,  304,  304,  304,  304,  306,  304,
1687       304,  304,  314,  304,  308,  304,  309,  304,  253,  253,
1688       253,  327,  253,  327,  327,  253,  327,  911,  327,  253,
1689       327,  327,  253,  327,  329,  641,  641,  328, 3216,  702,
1690       328,  907,  304,  304,  330, 1719,  987,  330,  671,  988,
1691
1692       310,  640,  640,  311,  637,  637,  637,  637,  637,  637,
1693       312,  315,  316,  253,  316,  315,  315,  315,  315,  315,
1694       315,  315,  317,  315,  315,  315,  659,  315,  319,  315,
1695       320,  315,  341,  253,  341,  341,  253,  341,  352,  253,
1696       352,  911,  352,  253,  352,  352,  253,  352,  342, 1720,
1697       641,  342,  641,  641,  353,  957,  315,  315,  353,  708,
1698       658,  354,  637,  637,  637,  321,  640,  322,  640,  640,
1699       821,  323,  637,  637,  637,  674,  324,  325,  315,  316,
1700       253,  316,  315,  315,  315,  315,  315,  315,  315,  317,
1701       315,  315,  315,  671,  315,  319,  315,  320,  315,  352,
1702
1703       253,  352,  253,  253,  253,  253,  253,  253,  735,  352,
1704       253,  352,  352,  253,  352,  354,  722, 1729,  355,  664,
1705       641,  355,  726,  315,  315,  356,  717,  716,  356,  637,
1706       637,  637,  321,  719,  322,  674,  640,  727,  323,  637,
1707       637,  637,  741,  324,  325,  331,  332,  253,  332,  331,
1708       331,  331,  331,  331,  331,  331,  333,  331,  331,  331,
1709       674,  331,  335,  331,  336,  331,  352,  253,  352,  352,
1710       253,  352,  253,  253,  253,  911,  253,  253,  253,  352,
1711       253,  352,  357, 1453, 1731,  357,  875,  893,  358,  962,
1712       331,  331,  358, 1732,  702,  354, 1454,  337,  637,  637,
1713
1714       637,  876,  741,  338,  637,  637,  637,  637,  637,  637,
1715       821,  960,  339,  331,  332,  253,  332,  331,  331,  331,
1716       331,  331,  331,  331,  333,  331,  331,  331,  953,  331,
1717       335,  331,  336,  331,  352,  253,  352,  253,  253,  253,
1718       253,  253,  253, 1742,  352,  253,  352,  352,  253,  352,
1719       354, 1743,  894,  359,  674,  911,  359,  641,  331,  331,
1720       357, 1748,  674,  357,  746,  337,  637,  637,  637,  963,
1721      1751,  338,  835,  640,  637,  637,  637,  637,  637,  637,
1722       339,  343,  344,  253,  344,  343,  343,  343,  343,  343,
1723       343,  343,  345,  343,  343,  343, 1752,  343,  347,  343,
1724
1725       348,  343,  352,  253,  352,  352,  253,  352,  253,  253,
1726       253, 1758,  253,  253,  253,  352,  253,  352,  360,  641,
1727       663,  360,  641, 1759,  361,  868,  343,  343,  361,  751,
1728      1760,  362,  637,  637,  637,  640,  759,  349,  640,  637,
1729       637,  637,  637,  637,  637, 1761,  350,  343,  344,  253,
1730       344,  343,  343,  343,  343,  343,  343,  343,  345,  343,
1731       343,  343,  845,  343,  347,  343,  348,  343,  352,  253,
1732       352,  253,  253,  253,  253,  253,  253,  674,  352,  253,
1733       352,  352,  253,  352,  362,  760,  641,  363,  702,  953,
1734       363, 1762,  343,  343,  360,  641, 1763,  360,  352,  253,
1735
1736       352, 1771,  640,  349,  352,  253,  352,  637,  637,  637,
1737       663,  640,  350,  960,  364,  637,  637,  637,  713, 1774,
1738       364,  365,  366,  253,  366,  365,  365,  365,  365,  365,
1739       365,  365,  367,  365,  365,  365,  893,  365,  369,  365,
1740       370,  365,  376,  253,  376,  376,  253,  376,  253,  253,
1741       253, 1775,  253,  253,  253,  851,  728,  641,  377, 1108,
1742       961,  377,  641,  779,  329, 1778,  365,  365,  329,  766,
1743       641,  371,  718,  640,  827,  780,  781,  372,  640, 1631,
1744      1780,  373,  637,  637,  637, 1782,  640,  374,  365,  366,
1745       253,  366,  365,  365,  365,  365,  365,  365,  365,  367,
1746
1747       365,  365,  365,  663,  365,  369,  365,  370,  365,  376,
1748       253,  376,  376,  253,  376,  376,  253,  376,  895,  376,
1749       253,  376,  828,  641, 1783,  377,  674, 1785,  377,  896,
1750       782,  378,  897,  365,  365,  378,  641,  641,  371,  640,
1751       637,  637,  637,  792,  372,  637,  637,  637,  373,  637,
1752       637,  637,  640,  640,  374,  379,  380,  253,  380,  379,
1753       379,  379,  379,  379,  379,  379,  381,  379,  379,  379,
1754      1786,  379,  383,  379,  384,  379,  389,  253,  389,  389,
1755       253,  389,  253,  253,  253, 1787,  253,  253,  253,  637,
1756       637,  637,  390,  641,  641,  390,  641, 1792,  329, 1795,
1757
1758       379,  379,  329,  802, 1796,  385,  637,  637,  637,  640,
1759       640,  386,  640,  637,  637,  637,  637,  637,  637,  637,
1760       637,  637,  387,  379,  380,  253,  380,  379,  379,  379,
1761       379,  379,  379,  379,  381,  379,  379,  379, 1797,  379,
1762       383,  379,  384,  379,  389,  253,  389,  389,  253,  389,
1763       389,  253,  389,  995,  389,  253,  389,  996,  641, 1465,
1764       390, 1799,  641,  390,  641,  807,  391, 1802,  379,  379,
1765       391,  813, 1454,  385,  640,  637,  637,  637,  640,  386,
1766       640,  637,  637,  637,  637,  637,  637,  637,  637,  637,
1767       387,  392,  393,  253,  393,  392,  392,  392,  392,  392,
1768
1769       392,  392,  394,  392,  392,  392, 1803,  392,  396,  392,
1770       397,  392,  401,  253,  401,  401,  253,  401,  412,  253,
1771       412, 1805,  412,  253,  412,  426,  253,  426,  402,  641,
1772       641,  402, 1809, 1810,  413,  641,  392,  392,  413, 1811,
1773      1813,  427,  637,  637,  637,  640,  640,  398,  637,  637,
1774       637,  640,  399,  392,  393,  253,  393,  392,  392,  392,
1775       392,  392,  392,  392,  394,  392,  392,  392, 1634,  392,
1776       396,  392,  397,  392,  426,  253,  426,  253,  253,  253,
1777       253,  253,  253, 1824,  426,  253,  426,  426,  253,  426,
1778       427,  641,  641,  428, 1825, 1826,  428,  641,  392,  392,
1779
1780       427, 1828, 1829,  427,  637,  637,  637,  640,  640,  398,
1781       637,  637,  637,  640,  399,  403,  404,  253,  404,  403,
1782       403,  403,  403,  403,  403,  403,  405,  403,  403,  403,
1783       953,  403,  407,  403,  408,  403,  426,  253,  426,  426,
1784       253,  426,  440,  253,  440, 1830,  440,  253,  440,  457,
1785       253,  457,  429, 1108,  961,  429,  641, 1430,  441, 1831,
1786       403,  403,  441,  840,  641,  458,  637,  637,  637,  637,
1787       637,  637,  640,  637,  637,  637,  409,  637,  637,  637,
1788       640, 1832,  410,  403,  404,  253,  404,  403,  403,  403,
1789       403,  403,  403,  403,  405,  403,  403,  403, 1833,  403,
1790
1791       407,  403,  408,  403,  457,  253,  457,  472,  253,  472,
1792       472,  253,  472, 1834,  488,  253,  488,  488,  253,  488,
1793       458, 1835, 1836,  473, 1108, 1837,  473,  641,  403,  403,
1794       489, 1839, 1840,  489,  637,  637,  637,  637,  637,  637,
1795       637,  637,  637,  640,  409,  637,  637,  637,  859, 1821,
1796       410,  414,  415,  253,  415,  414,  414,  414,  414,  414,
1797       414,  414,  416,  414,  414,  414, 1841,  414,  418,  414,
1798       419,  414,  499,  253,  499,  499,  253,  499,  511,  253,
1799       511,  895,  511,  253,  511,  860,  641, 1842,  500, 1845,
1800      1108,  500,  896,  864,  512,  910,  414,  414,  512,  420,
1801
1802       702,  421,  640,  637,  637,  637, 1110,  422,  637,  637,
1803       637,  637,  637,  637,  423, 1848, 1849,  424,  414,  415,
1804       253,  415,  414,  414,  414,  414,  414,  414,  414,  416,
1805       414,  414,  414, 1850,  414,  418,  414,  419,  414,  524,
1806       253,  524,  524,  253,  524,  253,  253,  253,  913,  253,
1807       253,  253,  637,  637,  637,  525, 1851, 1852,  525,  914,
1808       641,  329,  897,  414,  414,  329,  420,  873,  421,  637,
1809       637,  637, 1853, 1857,  422, 1858,  640, 1860,  879,  879,
1810       879,  423, 1861, 1862,  424,  430,  431,  253,  431,  430,
1811       430,  430,  430,  430,  430,  430,  432,  430,  430,  430,
1812
1813      1864,  430,  434,  430,  435,  430,  524,  253,  524,  524,
1814       253,  524,  524,  253,  524, 1877,  524,  253,  524,  536,
1815       253,  536,  525, 1878, 1879,  525,  903,  916,  526, 1880,
1816       430,  430,  526,  904,  904,  537,  436,  880,  913,  905,
1817       917,  437,  879,  879,  879, 1881, 1112, 1884, 1885,  914,
1818      1886, 1887,  910,  438,  430,  431,  253,  431,  430,  430,
1819       430,  430,  430,  430,  430,  432,  430,  430,  430, 1892,
1820       430,  434,  430,  435,  430,  536,  253,  536,  253,  253,
1821       253,  253,  253,  253, 1900,  536,  253,  536,  536,  253,
1822       536,  537, 1901, 1908,  538,  916,  903,  538, 1465,  430,
1823
1824       430,  537,  904,  904,  537,  436,  916,  895,  905,  917,
1825       437, 1489, 1912,  904, 1125, 1125, 1125, 1914,  914,  941,
1826      1920,  910,  438,  442,  443,  253,  443,  442,  442,  442,
1827       442,  442,  442,  442,  444,  442,  442,  442,  445,  442,
1828       446,  442,  447,  442,  445,  445,  445,  445,  445,  445,
1829       445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1830       445,  445,  445,  445,  445,  445,  445,  445,  442,  442,
1831       445,  448,  449,  450,  445,  445,  445,  445,  445,  451,
1832       445,  445,  452,  445,  445,  445,  453,  445,  454,  455,
1833       445,  445,  445,  445,  445,  445,  445,  459,  460,  253,
1834
1835       460,  459,  459,  459,  459,  459,  459,  459,  461,  459,
1836       459,  459, 1926,  459,  463,  459,  464,  459,  536,  253,
1837       536,  536,  253,  536,  550,  253,  550, 1927,  550,  253,
1838       550,  253,  253,  253,  539, 1271, 1928,  539, 1929, 1942,
1839       551, 1948,  459,  459,  551, 1272,  465,  538, 1125, 1125,
1840      1125, 1952, 1273,  466, 1955, 1957,  467, 1147, 1147, 1147,
1841       468, 1958,  469,  470,  459,  460,  253,  460,  459,  459,
1842       459,  459,  459,  459,  459,  461,  459,  459,  459, 1960,
1843       459,  463,  459,  464,  459,  253,  253,  253,  550,  253,
1844       550,  550,  253,  550, 1961,  550,  253,  550,  550,  253,
1845
1846       550,  538, 1962, 1966,  551, 1969, 1971,  551, 1978,  459,
1847       459,  552, 1126,  465,  552, 1160, 1160, 1160, 1986, 1161,
1848       466, 1126, 1162,  467, 1147, 1147, 1147,  468, 1987,  469,
1849       470,  474,  475,  253,  475,  474,  474,  474,  474,  474,
1850       474,  474,  476,  474,  474,  474, 1988,  474,  478,  474,
1851       479,  474,  562,  253,  562,  562,  253,  562,  573,  253,
1852       573, 1989,  573,  253,  573,  923,  923,  923,  563, 1991,
1853      2005,  563, 1108, 2009,  574, 2010,  474,  474,  574,  480,
1854       481,  482,  924, 2011, 1170, 1170, 1170,  483, 1171, 2002,
1855       484, 1172, 2014, 2015,  485, 1634, 2017,  486,  474,  475,
1856
1857       253,  475,  474,  474,  474,  474,  474,  474,  474,  476,
1858       474,  474,  474, 2018,  474,  478,  474,  479,  474,  253,
1859       253,  253,  253,  253,  253,  573,  253,  573, 2019,  573,
1860       253,  573,  931,  931,  931,  538, 2020, 2003,  538, 2021,
1861      2012,  574, 2022,  474,  474,  574,  480,  481,  482,  932,
1862      2025, 1193, 1193, 1193,  483, 1194, 2013,  484, 1195, 2026,
1863      2029,  485, 1634, 2030,  486,  490,  491,  253,  491,  490,
1864       490,  490,  490,  490,  490,  490,  492,  490,  490,  490,
1865      2031,  490,  494,  490,  495,  490,  573,  253,  573,  573,
1866       253,  573,  586,  253,  586, 2004,  586,  253,  586,  947,
1867
1868       947,  947,  575, 2032, 2033,  575, 2035, 2036,  587, 2039,
1869       490,  490,  587, 2042, 2046,  496,  948, 1648, 1648, 1648,
1870      2047,  497,  490,  491,  253,  491,  490,  490,  490,  490,
1871       490,  490,  490,  492,  490,  490,  490, 2050,  490,  494,
1872       490,  495,  490,  253,  253,  253,  253,  253,  253,  586,
1873       253,  586, 2048,  586,  253,  586,  965,  965,  965,  538,
1874      2049, 2051,  538, 1649, 2052,  587, 2055,  490,  490,  587,
1875      2059, 2060,  496,  966, 1651, 1651, 1651, 2063,  497,  501,
1876       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1877       503,  501,  501,  501, 2065,  501,  505,  501,  506,  501,
1878
1879       586,  253,  586,  586,  253,  586,  601,  253,  601, 2053,
1880       601,  253,  601,  253,  253,  253,  588, 2054, 2061,  588,
1881      1652, 2061,  602, 2081,  501,  501,  602, 2082,  507,  603,
1882      1125, 1125, 1125, 2083, 2062,  508, 2084, 2013,  509,  501,
1883       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1884       503,  501,  501,  501, 2085,  501,  505,  501,  506,  501,
1885       253,  253,  253,  601,  253,  601,  601,  253,  601, 2086,
1886       601,  253,  601,  601,  253,  601,  603, 2012, 2088,  602,
1887      2092, 2098,  602, 2099,  501,  501,  604, 2100,  507,  604,
1888      1147, 1147, 1147, 2062, 1201,  508, 2114, 2118,  509,  513,
1889
1890       514,  253,  514,  513,  513,  513,  513,  513,  513,  513,
1891       515,  513,  513,  513, 2119,  513,  517,  513,  518,  513,
1892       613,  253,  613,  613,  253,  613,  623,  253,  623, 2120,
1893       623,  253,  623,  253,  253,  253,  614, 2122, 2126,  614,
1894      2130, 2131,  624, 2132,  513,  513,  624, 2133,  519,  329,
1895      1655, 1655, 1655, 2134, 1201,  520, 2137, 2144,  521, 1658,
1896      1658, 1658, 1668, 1668, 1668,  522,  513,  514,  253,  514,
1897       513,  513,  513,  513,  513,  513,  513,  515,  513,  513,
1898       513, 2146,  513,  517,  513,  518,  513,  253,  253,  253,
1899       623,  253,  623,  623,  253,  623, 2156,  623,  253,  623,
1900
1901       623,  253,  623,  329, 2157, 2158,  624, 2159, 2161,  624,
1902       713,  513,  513,  625, 1634,  519,  625, 1213, 1213, 1213,
1903       720, 1214,  520, 2167, 1215,  521, 1691, 1691, 1691, 1703,
1904      1703, 1703,  522,  527,  528,  253,  528,  527,  527,  527,
1905       527,  527,  527,  527,  529,  527,  527,  527,  721,  527,
1906       531,  527,  532,  527,  635,  253,  635,  635,  253,  635,
1907      2166, 1634,  674,  972,  972,  972,  668, 1223, 1223, 1223,
1908       636, 1224, 2173,  636, 1225, 1704, 3216, 2174,  527,  527,
1909       973,  977,  977,  977,  533,  713,  671, 2175, 2176, 1231,
1910      1231, 1231, 2165, 1232,  671,  714, 1233, 2179,  978,  534,
1911
1912       527,  528,  253,  528,  527,  527,  527,  527,  527,  527,
1913       527,  529,  527,  527,  527,  672,  527,  531,  527,  532,
1914       527,  673,  724,  715,  989,  989,  989, 2181,  674,  716,
1915      2182, 2183,  675,  717, 2187,  998,  998,  998,  725,  718,
1916       719,  990, 1000, 1000, 1000,  527,  527, 1006, 1006, 1006,
1917      1108,  533,  999, 1248, 1248, 1248, 2164, 1249, 2192, 1001,
1918      1250, 1705, 1705, 1705, 1007, 2194,  534,  540,  541,  253,
1919       541,  540,  540,  540,  540,  540,  540,  540,  542,  540,
1920       540,  540, 2195,  540,  544,  540,  545,  540, 1009, 1009,
1921      1009, 1021, 1021, 1021, 1023, 1023, 1023, 1035, 1035, 1035,
1922
1923      1043, 1043, 1043, 2196, 2200, 1010, 2206, 1652, 1022, 2207,
1924      2208, 1024,  540,  540, 1036, 2209, 2210, 1044,  546, 2211,
1925      2212,  547, 1260, 1260, 1260, 2213, 1261, 2214, 2215, 1262,
1926      1651, 1651, 1651,  548,  540,  541,  253,  541,  540,  540,
1927       540,  540,  540,  540,  540,  542,  540,  540,  540, 2221,
1928       540,  544,  540,  545,  540, 1048, 1048, 1048, 1054, 1054,
1929      1054, 1074, 1074, 1074, 1098, 1098, 1098, 1102, 1102, 1102,
1930      2222, 2223, 1049, 2224, 2236, 1055, 1794, 2237, 1075,  540,
1931       540, 1099, 2242, 2243, 1103,  546, 2238, 2240,  547, 1263,
1932      1263, 1263, 2245, 1264, 2239, 2241, 1265, 1648, 1648, 1648,
1933
1934       548,  553,  554,  253,  554,  553,  553,  553,  553,  553,
1935       553,  553,  555,  553,  553,  553, 2246,  553,  557,  553,
1936       558,  553, 1121, 1121, 1121, 1121, 1121, 1121, 2250, 2251,
1937      1155, 1155, 1155, 1155, 1155, 1155,  923,  923,  923, 2252,
1938      1123, 2258, 2259, 1123, 2260, 2261,  553,  553, 1157, 2264,
1939      2269, 1157,  559,  924, 1651, 1651, 1651,  560,  553,  554,
1940       253,  554,  553,  553,  553,  553,  553,  553,  553,  555,
1941       553,  553,  553, 2273,  553,  557,  553,  558,  553, 1165,
1942      1165, 1165, 2274, 1124, 1165, 1165, 1165, 2279,  931,  931,
1943       931, 2280, 2281, 1158, 1173, 1173, 1173, 1167, 1838, 1838,
1944
1945      1838, 2282, 1167,  553,  553,  932, 1274, 1274, 1274,  559,
1946      1275, 1174, 2284, 1276,  560,  564,  565,  253,  565,  564,
1947       564,  564,  564,  564,  564,  564,  566,  564,  564,  564,
1948      2294,  564,  568,  564,  569,  564, 1176, 1176, 1176, 1181,
1949      1181, 1181, 2305, 2306, 1189, 1189, 1189, 2307, 1168, 2311,
1950      1181, 1181, 1181, 1177, 1189, 1189, 1189, 1183, 2312, 2275,
1951       564,  564, 1191,  947,  947,  947,  570, 2276, 1183, 1278,
1952      1278, 1278, 1191, 1279, 2313, 1634, 1280, 1655, 1655, 1655,
1953       948,  571,  564,  565,  253,  565,  564,  564,  564,  564,
1954       564,  564,  564,  566,  564,  564,  564, 1184,  564,  568,
1955
1956       564,  569,  564, 1197, 1197, 1197, 1197, 1197, 1197,  965,
1957       965,  965, 1218, 1218, 1218,  972,  972,  972, 1192, 2316,
1958      2320, 1199, 2300, 2277, 1199, 2321,  966,  564,  564, 2322,
1959      1220, 2278,  973,  570, 1294, 1294, 1294, 2323, 1295, 2324,
1960      2325, 1296, 2326, 1200, 1658, 1658, 1658, 1634,  571,  576,
1961       577,  253,  577,  576,  576,  576,  576,  576,  576,  576,
1962       578,  576,  576,  576, 2327,  576,  580,  576,  581,  576,
1963      2328, 1218, 1218, 1218, 1227, 1227, 1227, 2329, 1227, 1227,
1964      1227,  977,  977,  977, 1235, 1235, 1235, 1865, 2344, 1220,
1965      2299, 2345, 1229, 1866,  576,  576, 1229, 1867,  978, 2346,
1966
1967       582, 1868, 1237,  583, 1297, 1297, 1297, 2347, 1298, 2352,
1968      2353, 1299, 1843, 1843, 1843,  584,  576,  577,  253,  577,
1969       576,  576,  576,  576,  576,  576,  576,  578,  576,  576,
1970       576, 2354,  576,  580,  576,  581,  576, 1221, 1241, 1241,
1971      1241,  989,  989,  989, 1230, 1235, 1235, 1235, 1241, 1241,
1972      1241, 1253, 1253, 1253, 1869, 2355, 1243, 2356,  990, 2357,
1973      1870,  576,  576, 1237, 1871, 2358, 1243,  582, 1872, 1255,
1974       583, 1314, 1314, 1314, 2361, 1315, 1844, 2362, 1316, 1846,
1975      1846, 1846,  584,  589,  590,  253,  590,  589,  589,  589,
1976       589,  589,  589,  589,  591,  589,  589,  589, 2365,  589,
1977
1978       593,  589,  594,  589, 2366, 2371, 1238,  998,  998,  998,
1979      1000, 1000, 1000, 1244, 1253, 1253, 1253, 1266, 1266, 1266,
1980      2372, 1266, 1266, 1266,  999, 1847, 2373, 1001,  589,  589,
1981      2374, 2383, 1255, 2384, 2385, 1268,  595, 2386,  596, 1268,
1982      2388,  597, 1668, 1668, 1668,  598, 1854, 1854, 1854,  599,
1983       589,  590,  253,  590,  589,  589,  589,  589,  589,  589,
1984       589,  591,  589,  589,  589, 2390,  589,  593,  589,  594,
1985       589, 1006, 1006, 1006, 1634, 1256, 1009, 1009, 1009, 1290,
1986      1290, 1290, 1269, 1281, 1281, 1281, 2414, 2415, 1007, 1290,
1987      1290, 1290, 1855, 1010, 2417,  589,  589, 1292, 2418, 2419,
1988
1989      1282, 2420, 2424,  595, 2425,  596, 2410, 1292,  597, 1691,
1990      1691, 1691,  598, 1703, 1703, 1703,  599,  605,  606,  253,
1991       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1992       605,  605, 2426,  605,  609,  605,  610,  605, 1021, 1021,
1993      1021, 1023, 1023, 1023, 1300, 1300, 1300, 1293, 1705, 1705,
1994      1705, 3216, 3216, 3216, 2427, 1022, 2428, 2429, 1024, 2430,
1995      2431, 1301,  605,  605, 3216, 3216, 3216, 2432, 3216, 1326,
1996      1326, 1326, 2433, 1327, 2434, 2436, 1328, 1634, 1334, 1334,
1997      1334, 3216, 1335, 2437, 2440, 1336,  611,  605,  606,  253,
1998       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1999
2000       605,  605, 1302,  605,  609,  605,  610,  605, 1035, 1035,
2001      1035, 1306, 1306, 1306, 2411, 2438, 1303, 3216, 3216, 3216,
2002      2441, 1317, 1317, 1317, 2439, 1036, 3216, 3216, 3216, 1308,
2003      2442, 2443,  605,  605, 3216, 1306, 1306, 1306, 1318, 2444,
2004      1343, 1343, 1343, 3216, 1344, 2445, 2447, 1345, 1375, 1375,
2005      1375, 2448, 1376, 1308, 2446, 1377,  611,  615,  616,  253,
2006       616,  615,  615,  615,  615,  615,  615,  615,  617,  615,
2007       615,  615, 1304,  615,  619,  615,  620,  615, 1305, 1321,
2008      1321, 1321, 1309, 1043, 1043, 1043, 1321, 1321, 1321, 1329,
2009      1329, 1329, 1329, 1329, 1329, 2449, 2450, 1323, 2451, 2453,
2010
2011      1044, 2457,  615,  615, 1323, 2458, 2459, 1331, 2460, 2464,
2012      1331, 2465, 2469,  621,  615,  616,  253,  616,  615,  615,
2013       615,  615,  615,  615,  615,  617,  615,  615,  615, 2472,
2014       615,  619,  615,  620,  615, 2473, 2476, 1324, 1048, 1048,
2015      1048, 2488, 2489, 1338, 1338, 1338, 1338, 1338, 1338, 1054,
2016      1054, 1054, 2492, 1332, 2493, 1049, 1882, 1882, 1882,  615,
2017       615, 1340, 2513, 1634, 1340, 2514, 1055, 1882, 1882, 1882,
2018       621,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2019       626,  626,  628,  626,  626,  626, 1108,  626,  630,  626,
2020       631,  626, 2515, 1341, 1349, 1349, 1349, 1353, 1353, 1353,
2021
2022      2511, 1349, 1349, 1349, 1355, 1355, 1355, 3216, 3216, 3216,
2023      2516, 2517, 1351, 2526, 1354, 2527,  626,  626, 2528, 1351,
2024      1883, 1356, 1634, 2529, 3216, 2530, 2510,  632, 1415, 1415,
2025      1415, 1844, 1416, 2531, 2532, 1417, 1911, 1911, 1911, 2533,
2026       633,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2027       626,  626,  628,  626,  626,  626, 1352,  626,  630,  626,
2028       631,  626, 1358, 1358, 1358, 2512, 1357, 1363, 1363, 1363,
2029      1358, 1358, 1358, 3216, 3216, 3216, 1367, 1367, 1367, 2520,
2030      1360, 3216, 3216, 3216, 1364, 2534,  626,  626, 1360, 2521,
2031      3216, 2535, 2522, 1368, 1370, 1370, 1370,  632, 3216, 1370,
2032
2033      1370, 1370, 1074, 1074, 1074, 2536, 1378, 1378, 1378, 2538,
2034       633,  641, 1372, 2539, 1378, 1378, 1378, 1372,  656, 1075,
2035      1382, 1382, 1382, 1365, 1380, 2540, 2541,  640,  657, 2542,
2036      2543, 1361, 1380, 1384, 1384, 1384, 1373, 1383, 1366, 2544,
2037      1369, 1386, 1386, 1386, 2545, 2546, 1386, 1386, 1386, 2547,
2038      1385, 1390, 1390, 1390, 2548,  658,  659,  660, 2549, 1388,
2039      2550, 2551,  661,  662, 1388, 2552,  663,  664, 1391, 1381,
2040       665, 2553,  666,  667,  668, 3216, 3216, 3216, 1394, 1394,
2041      1394, 1396, 1396, 1396, 1396, 1396, 1396, 1405, 1405, 1405,
2042      2523, 2554, 3216, 2556, 2564, 1395, 1405, 1405, 1405, 1398,
2043
2044      2524, 2565, 1398, 2525, 2566, 1407, 1411, 1411, 1411, 1411,
2045      1411, 1411, 2570, 1108, 1407, 2605, 2607, 1389, 1098, 1098,
2046      1098, 1418, 1418, 1418, 1413, 1392, 1634, 1413, 1418, 1418,
2047      1418, 1102, 1102, 1102, 2608, 1099, 1426, 1426, 1426, 1420,
2048      1393, 2609, 2602, 1422, 1422, 1422, 1420, 1423, 1103, 2613,
2049      1424, 1426, 1426, 1426, 1428, 1399, 1121, 1121, 1121, 2614,
2050      1408, 1121, 1121, 1121, 1121, 1121, 1121, 1634, 2603, 1428,
2051      1467, 1467, 1467, 1414, 1123, 1155, 1155, 1155, 2588, 1123,
2052      2617, 2618, 1123, 1155, 1155, 1155, 2621, 1468, 2589, 1421,
2053      1155, 1155, 1155, 1157, 2590, 1470, 1470, 1470, 1160, 1160,
2054
2055      1160, 1157, 1161, 2622, 2623, 1162, 2624, 2625, 1157, 2604,
2056      2626, 1438, 1471, 2627, 2628, 1429, 3216, 3216, 3216, 1165,
2057      1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1170, 1170,
2058      1170, 2629, 1171, 3216, 2631, 1172, 2632, 1167, 2633, 1469,
2059      1167, 2634, 2615, 1167, 1173, 1173, 1173, 1476, 1476, 1476,
2060      2591, 1477, 2619, 2635, 1478, 2616, 1479, 1479, 1479, 2636,
2061      2592, 1174, 1176, 1176, 1176, 2620, 2593, 1481, 1481, 1481,
2062      2637, 1482, 1474, 1480, 1483, 2638, 2639, 1472, 2640, 1177,
2063      1485, 1485, 1485, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
2064      1181, 1181, 1491, 1491, 1491, 2641, 2642, 1486, 1189, 1189,
2065
2066      1189, 1183, 2643, 2644, 1183, 2645, 2647, 1183, 2655, 1492,
2067      1189, 1189, 1189, 1189, 1189, 1189, 1191, 1193, 1193, 1193,
2068      2656, 1194, 2657, 2658, 1195, 1197, 1197, 1197, 1191, 2675,
2069      2676, 1191, 1197, 1197, 1197, 1496, 1496, 1496, 1213, 1213,
2070      1213, 2677, 1214, 1199, 2678, 1215, 1511, 1511, 1511, 1488,
2071      1199, 2679, 2680, 1497, 1218, 1218, 1218, 1218, 1218, 1218,
2072      1494, 1634, 2691, 1512, 1218, 1218, 1218, 1223, 1223, 1223,
2073      2693, 1224, 1220, 1108, 1225, 1220, 1227, 1227, 1227, 1227,
2074      1227, 1227, 1220, 1227, 1227, 1227, 1231, 1231, 1231, 2694,
2075      1232, 2695, 2696, 1233, 1229, 2697, 2688, 1229, 1517, 1517,
2076
2077      1517, 1229, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
2078      1235, 1520, 1520, 1520, 2683, 1518, 2698, 3216, 3216, 3216,
2079      1237, 2687, 2699, 1237, 2700, 1513, 1237, 2684, 1521, 1241,
2080      1241, 1241, 2701, 2685, 3216, 1241, 1241, 1241, 1241, 1241,
2081      1241, 1526, 1526, 1526, 1516, 1522, 2686, 1243, 1248, 1248,
2082      1248, 2702, 1249, 1243, 2705, 1250, 1243, 2706, 1527, 1253,
2083      1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1533, 1533,
2084      1533, 2707, 1260, 1260, 1260, 1519, 1261, 1255, 2708, 1262,
2085      1255, 2709, 2710, 1255, 2711, 1534, 1263, 1263, 1263, 2712,
2086      1264, 2714, 2715, 1265, 1266, 1266, 1266, 1266, 1266, 1266,
2087
2088      1266, 1266, 1266, 2716, 1523, 2717, 1274, 1274, 1274, 2718,
2089      1275, 2719, 1268, 1276, 2720, 1268, 2721, 2722, 1268, 1540,
2090      1540, 1540, 1278, 1278, 1278, 2723, 1279, 2724, 2725, 1280,
2091      1530, 1281, 1281, 1281, 2726, 2727, 1541, 1542, 1542, 1542,
2092      2728, 1543, 2734, 2735, 1544, 1290, 1290, 1290, 1282, 1290,
2093      1290, 1290, 1290, 1290, 1290, 1294, 1294, 1294, 2736, 1295,
2094      2737, 2738, 1296, 1292, 2744, 1535, 2746, 1292, 2752, 2753,
2095      1292, 1297, 1297, 1297, 2745, 1298, 2747, 2748, 1299, 1300,
2096      1300, 1300, 1553, 1553, 1553, 2754, 1554, 2749, 2755, 1555,
2097      1306, 1306, 1306, 1306, 1306, 1306, 1301, 1306, 1306, 1306,
2098
2099      1314, 1314, 1314, 2756, 1315, 2757, 2761, 1316, 1308, 2762,
2100      2763, 1308, 1317, 1317, 1317, 1308, 1565, 1565, 1565, 1552,
2101      1566, 2764, 2774, 1567, 1321, 1321, 1321, 2775, 2776, 1318,
2102      1321, 1321, 1321, 1321, 1321, 1321, 1326, 1326, 1326, 2750,
2103      1327, 1108, 1323, 1328, 2777, 1560, 2778, 2779, 1323, 2751,
2104      2780, 1323, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
2105      1329, 1334, 1334, 1334, 2781, 1335, 2785, 2786, 1336, 2787,
2106      1331, 2788, 2789, 1331, 2790, 2765, 1331, 1338, 1338, 1338,
2107      1338, 1338, 1338, 2792, 1570, 1338, 1338, 1338, 2793, 1343,
2108      1343, 1343, 2794, 1344, 2795, 1340, 1345, 2796, 1340, 1349,
2109
2110      1349, 1349, 2797, 1340, 1349, 1349, 1349, 2798, 1349, 1349,
2111      1349, 1353, 1353, 1353, 1581, 1581, 1581, 1351, 1582, 2799,
2112      2800, 1583, 1351, 2801, 2805, 1572, 1351, 2806, 1354, 1355,
2113      1355, 1355, 2807, 2810, 1575, 1584, 1584, 1584, 2815, 1585,
2114      2816, 2817, 1586, 1358, 1358, 1358, 1356, 1358, 1358, 1358,
2115      2818, 1358, 1358, 1358, 1363, 1363, 1363, 2819, 1367, 1367,
2116      1367, 1360, 2016, 2016, 2016, 1360, 2820, 2821, 1580, 1360,
2117      2822, 1364, 1590, 1590, 1590, 1368, 1591, 2823, 2824, 1592,
2118      1595, 1595, 1595, 2825, 1596, 2826, 2828, 1597, 1370, 1370,
2119      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1375, 1375, 1375,
2120
2121      2829, 1376, 2830, 2831, 1377, 2838, 1372, 2839, 1108, 1372,
2122      2840, 2841, 1372, 1378, 1378, 1378, 2842, 2843, 1588, 1378,
2123      1378, 1378, 1378, 1378, 1378, 1382, 1382, 1382, 1602, 1602,
2124      1602, 1380, 1603, 2844, 2845, 1604, 2846, 1380, 2847, 2848,
2125      1380, 2849, 1383, 1384, 1384, 1384, 1605, 1605, 1605, 2850,
2126      1606, 2832, 2851, 1607, 1386, 1386, 1386, 2854, 1599, 2855,
2127      1385, 1386, 1386, 1386, 2856, 1386, 1386, 1386, 1390, 1390,
2128      1390, 2857, 1388, 1609, 1609, 1609, 2858, 1610, 2859, 1388,
2129      1611, 2860, 1601, 1388, 2861, 1391, 1394, 1394, 1394, 1614,
2130      1614, 1614, 2862, 1615, 2863, 2864, 1616, 1396, 1396, 1396,
2131
2132      1396, 1396, 1396, 1395, 1396, 1396, 1396, 1619, 1619, 1619,
2133      1405, 1405, 1405, 2868, 2875, 1398, 2876, 2877, 1398, 1405,
2134      1405, 1405, 1398, 2878, 1620, 2879, 2880, 1608, 1407, 1405,
2135      1405, 1405, 1411, 1411, 1411, 2881, 2882, 1407, 1411, 1411,
2136      1411, 1411, 1411, 1411, 1415, 1415, 1415, 1407, 1416, 2883,
2137      1413, 1417, 1418, 1418, 1418, 2884, 1413, 2885, 2886, 1413,
2138      1418, 1418, 1418, 1418, 1418, 1418, 1617, 1422, 1422, 1422,
2139      1420, 1423, 2889, 2890, 1424, 1426, 1426, 1426, 1420, 2891,
2140      2892, 1420, 1426, 1426, 1426, 1426, 1426, 1426, 2895, 2900,
2141      1624, 2901, 2902, 1428, 1627, 1633, 1633, 1633, 2903, 1108,
2142
2143      1428, 2904, 2896, 1428, 1121, 1121, 1121, 1467, 1467, 1467,
2144      1155, 1155, 1155, 1634, 1635, 2905, 1470, 1470, 1470, 1496,
2145      1496, 1496, 1123, 1628, 1468, 1671, 1671, 1671, 1157, 1672,
2146      2906, 2907, 1673, 1471, 1675, 1675, 1675, 1497, 1676, 2895,
2147      2908, 1677, 1165, 1165, 1165, 2893, 1630, 1476, 1476, 1476,
2148      2898, 1477, 2909, 2910, 1478, 1479, 1479, 1479, 2911, 2912,
2149      1167, 2913, 1682, 1682, 1682, 2914, 1683, 2915, 1674, 1684,
2150      1640, 2916, 1480, 1481, 1481, 1481, 2917, 1482, 2918, 2923,
2151      1483, 1485, 1485, 1485, 2919, 1686, 1686, 1686, 2928, 1687,
2152      2929, 1680, 1688, 1181, 1181, 1181, 2920, 2930, 1486, 1491,
2153
2154      1491, 1491, 1693, 1693, 1693, 2931, 1694, 2932, 2933, 1695,
2155      2936, 1183, 1696, 1696, 1696, 1108, 1492, 1189, 1189, 1189,
2156      1713, 1713, 1713, 1511, 1511, 1511, 1715, 1715, 1715, 1697,
2157      1716, 1634, 1635, 1717, 2936, 1191, 2939, 1714, 2940, 2941,
2158      1512, 2942, 2945, 1690, 1218, 1218, 1218, 1227, 1227, 1227,
2159      1517, 1517, 1517, 1722, 1722, 1722, 2934, 1723, 2948, 2957,
2160      1724, 2943, 1220, 2895, 2960, 1229, 1698, 1518, 1235, 1235,
2161      1235, 1520, 1520, 1520, 1726, 1726, 1726, 2896, 1727, 2944,
2162      2965, 1728, 1241, 1241, 1241, 2921, 1237, 2968, 1521, 1526,
2163      1526, 1526, 1733, 1733, 1733, 2924, 1734, 2922, 2926, 1735,
2164
2165      1243, 1736, 1736, 1736, 2969, 2970, 1527, 2925, 1718, 2936,
2166      2927, 1721, 1738, 1738, 1738, 1253, 1253, 1253, 1737, 1533,
2167      1533, 1533, 2972, 1744, 1744, 1744, 2936, 1745, 1725, 1739,
2168      1746, 2973, 2974, 1255, 2955, 2946, 1534, 1266, 1266, 1266,
2169      1749, 1749, 1749, 1730, 1540, 1540, 1540, 1753, 1753, 1753,
2170      2947, 1754, 2975, 2956, 1755, 1268, 2895, 1750, 1740, 2976,
2171      2958, 1541, 1542, 1542, 1542, 2977, 1543, 2898, 2978, 1544,
2172      1756, 1756, 1756, 1290, 1290, 1290, 1553, 1553, 1553, 2959,
2173      1554, 1741, 2979, 1555, 1765, 1765, 1765, 1757, 3216, 3216,
2174      3216, 1292, 3216, 3216, 3216, 3216, 3216, 3216, 1306, 1306,
2175
2176      1306, 1766, 2963, 1747, 2980, 3216, 1772, 1772, 1772, 3216,
2177      2990, 2991, 3216, 1565, 1565, 1565, 1308, 1566, 2966, 2992,
2178      1567, 2964, 2993, 1773, 1776, 1776, 1776, 1321, 1321, 1321,
2179      1329, 1329, 1329, 1338, 1338, 1338, 2994, 2967, 1764, 1768,
2180      2995, 1777, 1788, 1788, 1788, 1323, 2999, 3000, 1331, 3001,
2181      3002, 1340, 3003, 1770, 1349, 1349, 1349, 3004, 1767, 1789,
2182      1581, 1581, 1581, 3005, 1582, 1769, 3006, 1583, 3008, 1584,
2183      1584, 1584, 1351, 1585, 3009, 3010, 1586, 1358, 1358, 1358,
2184      1590, 1590, 1590, 3011, 1591, 3012, 3017, 1592, 1790, 3018,
2185      1784, 1779, 1370, 1370, 1370, 1360, 1781, 1595, 1595, 1595,
2186
2187      3019, 1596, 3020, 3013, 1597, 1378, 1378, 1378, 3021, 3022,
2188      1372, 1791, 1602, 1602, 1602, 3014, 1603, 3023, 3024, 1604,
2189      1605, 1605, 1605, 1380, 1606, 3015, 3025, 1607, 1386, 1386,
2190      1386, 1609, 1609, 1609, 3026, 1610, 3027, 3016, 1611, 3028,
2191      1614, 1614, 1614, 1793, 1615, 3029, 1388, 1616, 1396, 1396,
2192      1396, 3030, 3032, 1798, 1619, 1619, 1619, 1806, 1806, 1806,
2193      3033, 1807, 1800, 3034, 1808, 3035, 1398, 1405, 1405, 1405,
2194      3036, 1620, 1814, 1814, 1814, 1801, 1411, 1411, 1411, 1418,
2195      1418, 1418, 1818, 1818, 1818, 1407, 1426, 1426, 1426, 1815,
2196      1633, 1633, 1633, 3037, 1413, 1804, 3038, 1420, 3039, 1819,
2197
2198      1121, 1121, 1121, 1108, 1428, 1671, 1671, 1671, 1634, 1672,
2199      3040, 3041, 1673, 1696, 1696, 1696, 1812, 3042, 1123, 1155,
2200      1155, 1155, 1675, 1675, 1675, 3043, 1676, 3044, 3031, 1677,
2201      1697, 1817, 1165, 1165, 1165, 3045, 3046, 1157, 1682, 1682,
2202      1682, 1822, 1683, 1816, 3047, 1684, 3048, 3049, 1820, 3050,
2203      1167, 3051, 1827, 1686, 1686, 1686, 3053, 1687, 1823, 1108,
2204      1688, 1181, 1181, 1181, 1693, 1693, 1693, 3054, 1694, 3055,
2205      3056, 1695, 3057, 1873, 1873, 1873, 3058, 1874, 3052, 1183,
2206      1875, 3059, 3060, 1859, 3061, 3062, 1856, 1189, 1189, 1189,
2207      1843, 1843, 1843, 1713, 1713, 1713, 1888, 1888, 1888, 3063,
2208
2209      1889, 3064, 3065, 1890, 3066, 1191, 3067, 1715, 1715, 1715,
2210      1714, 1716, 3068, 3069, 1717, 1218, 1218, 1218, 1893, 1893,
2211      1893, 3070, 1863, 1227, 1227, 1227, 3072, 1722, 1722, 1722,
2212      1108, 1723, 3073, 1220, 1724, 1894, 3074, 3075, 1876, 3076,
2213      3077, 1229, 1235, 1235, 1235, 1726, 1726, 1726, 3078, 1727,
2214      3071, 3079, 1728, 3080, 1883, 1897, 1897, 1897, 3081, 3082,
2215      1237, 3083, 1891, 1241, 1241, 1241, 3084, 1733, 1733, 1733,
2216      1895, 1734, 1898, 3085, 1735, 1736, 1736, 1736, 1902, 1902,
2217      1902, 1243, 1903, 3086, 3087, 1904, 1738, 1738, 1738, 1905,
2218      1905, 1905, 1737, 1906, 3088, 3089, 1907, 1909, 1909, 1909,
2219
2220      1744, 1744, 1744, 1739, 1745, 3091, 3092, 1746, 1896, 3093,
2221      1266, 1266, 1266, 3094, 3095, 1910, 1749, 1749, 1749, 1915,
2222      1915, 1915, 3096, 1916, 3097, 3098, 1917, 1899, 1268, 1918,
2223      1918, 1918, 3099, 1750, 1753, 1753, 1753, 3100, 1754, 1108,
2224      3101, 1755, 1756, 1756, 1756, 3090, 1919, 1921, 1921, 1921,
2225      3102, 1922, 3104, 3105, 1923, 3106, 1913, 3107, 3108, 1757,
2226      1924, 1924, 1924, 1930, 1930, 1930, 1290, 1290, 1290, 1765,
2227      1765, 1765, 1933, 1933, 1933, 3109, 1934, 1925, 3110, 1935,
2228      1931, 1936, 1936, 1936, 1292, 3111, 1766, 3216, 3216, 3216,
2229      1939, 1939, 1939, 1306, 1306, 1306, 3113, 3114, 1937, 1772,
2230
2231      1772, 1772, 3115, 3116, 3216, 3117, 3118, 1940, 1943, 1943,
2232      1943, 1308, 1944, 3119, 1108, 1945, 1773, 1946, 1946, 1946,
2233      1776, 1776, 1776, 1949, 1949, 1949, 3120, 1950, 3103, 3123,
2234      1951, 3124, 1932, 3125, 1947, 3126, 3127, 1777, 1953, 1953,
2235      1953, 1329, 1329, 1329, 3128, 1938, 1338, 1338, 1338, 1788,
2236      1788, 1788, 1108, 1941, 1108, 1108, 1954, 1108, 1108, 1331,
2237      1702, 1963, 1963, 1963, 1340, 1964, 1789, 1701, 1965, 1967,
2238      1967, 1967, 1358, 1358, 1358, 1108, 1972, 1972, 1972, 1974,
2239      1974, 1974, 3216, 3216, 3216, 3137, 3181, 1968, 3129, 1108,
2240      1360, 3130, 1956, 1973, 1959, 3145, 1975, 1108, 3135, 3216,
2241
2242      1370, 1370, 1370, 1378, 1378, 1378, 1386, 1386, 1386, 1981,
2243      1981, 1981, 1983, 1983, 1983, 1396, 1396, 1396, 1372, 3136,
2244      3139, 1380, 1108, 1970, 1388, 1108, 1982, 1108, 1108, 1984,
2245      1806, 1806, 1806, 1398, 1807, 1108, 1108, 1808, 1405, 1405,
2246      1405, 1814, 1814, 1814, 3138, 3131, 1976, 3140, 1108, 1979,
2247      1992, 1992, 1992, 1700, 1993, 1108, 1407, 1994, 1815, 1411,
2248      1411, 1411, 3146, 3147, 1418, 1418, 1418, 1977, 1818, 1818,
2249      1818, 1980, 1997, 1997, 1997, 3132, 1998, 1413, 1699, 1999,
2250      1985, 1692, 1420, 3133, 3134, 1819, 2000, 2000, 2000, 1990,
2251      2006, 2006, 2006, 1121, 1121, 1121, 1838, 1838, 1838, 2023,
2252
2253      2023, 2023, 1689, 1685, 2001, 1681, 1108, 2007, 1843, 1843,
2254      1843, 1123, 2024, 2024, 2024, 1846, 1846, 1846, 1995, 1996,
2255      2027, 2027, 2027, 2028, 2028, 2028, 1854, 1854, 1854, 1155,
2256      1155, 1155, 2037, 2037, 2037, 2040, 2040, 2040, 1181, 1181,
2257      1181, 2044, 2044, 2044, 1873, 1873, 1873, 1157, 1874, 3141,
2258      2038, 1875, 2041, 3143, 2008, 1108, 1183, 1108, 2045, 1189,
2259      1189, 1189, 1679, 2057, 2057, 2057, 1882, 1882, 1882, 2064,
2260      2064, 2064, 2066, 2066, 2066, 1108, 3142, 1191, 3157, 2034,
2261      2058, 1888, 1888, 1888, 1108, 1889, 1678, 1108, 1890, 2067,
2262      1218, 1218, 1218, 2069, 2069, 2069, 3148, 2043, 1893, 1893,
2263
2264      1893, 1670, 2071, 2071, 2071, 2056, 2072, 1108, 1220, 2073,
2265      2070, 1227, 1227, 1227, 1108, 1894, 2075, 2075, 2075, 1897,
2266      1897, 1897, 3144, 2077, 2077, 2077, 3158, 2078, 1108, 1229,
2267      2079, 1241, 1241, 1241, 2076, 1108, 1898, 1902, 1902, 1902,
2268      1108, 1903, 3149, 2068, 1904, 1669, 1905, 1905, 1905, 1243,
2269      1906, 1108, 1667, 1907, 1909, 1909, 1909, 1911, 1911, 1911,
2270      3151, 1266, 1266, 1266, 2074, 3153, 1915, 1915, 1915, 1108,
2271      1916, 1108, 1910, 1917, 1918, 1918, 1918, 3154, 2080, 1268,
2272      2089, 2089, 2089, 1666, 2090, 1108, 3150, 2091, 1921, 1921,
2273      1921, 1919, 1922, 1108, 1108, 1923, 1924, 1924, 1924, 2093,
2274
2275      2093, 2093, 1108, 2094, 3159, 1108, 2095, 2096, 2096, 2096,
2276      1930, 1930, 1930, 1925, 2101, 2101, 2101, 3152, 2102, 2087,
2277      3160, 2103, 1108, 1108, 2097, 3155, 3156, 1931, 1290, 1290,
2278      1290, 1933, 1933, 1933, 1108, 1934, 3161, 1108, 1935, 1936,
2279      1936, 1936, 3173, 2105, 2105, 2105, 1292, 2106, 1108, 1665,
2280      2107, 2108, 2108, 2108, 3171, 1664, 1937, 1939, 1939, 1939,
2281      2110, 2110, 2110, 1108, 2111, 3163, 3164, 2112, 2109, 1306,
2282      1306, 1306, 3167, 1108, 1940, 1108, 1943, 1943, 1943, 2104,
2283      1944, 3191, 3162, 1945, 1946, 1946, 1946, 1308, 2115, 2115,
2284      2115, 1108, 2116, 3172, 1663, 2117, 1949, 1949, 1949, 1108,
2285
2286      1950, 1947, 1108, 1951, 1953, 1953, 1953, 1329, 1329, 1329,
2287      2123, 2123, 2123, 1338, 1338, 1338, 2127, 2127, 2127, 3165,
2288      2113, 3166, 1954, 1108, 1108, 1331, 3168, 2124, 1963, 1963,
2289      1963, 1340, 1964, 2128, 3197, 1965, 1967, 1967, 1967, 2135,
2290      2135, 2135, 1972, 1972, 1972, 2138, 2138, 2138, 1662, 2139,
2291      1108, 3183, 2140, 1108, 1968, 1108, 3169, 2136, 1108, 1973,
2292      1108, 3174, 2129, 1974, 1974, 1974, 2141, 2141, 2141, 1661,
2293      2142, 2121, 1660, 2143, 2125, 1370, 1370, 1370, 1108, 1108,
2294      1975, 1378, 1378, 1378, 1386, 1386, 1386, 1981, 1981, 1981,
2295      2149, 2149, 2149, 1372, 2150, 3175, 3177, 2151, 1108, 1380,
2296
2297      3176, 3178, 1388, 1108, 1982, 1983, 1983, 1983, 2152, 2152,
2298      2152, 3170, 2153, 3185, 1108, 2154, 1396, 1396, 1396, 1405,
2299      1405, 1405, 1984, 1108, 1992, 1992, 1992, 3184, 1993, 1108,
2300      2147, 1994, 3182, 1108, 1398, 3179, 1108, 1407, 1411, 1411,
2301      1411, 2145, 1418, 1418, 1418, 1108, 1997, 1997, 1997, 2148,
2302      1998, 3180, 1659, 1999, 1657, 1656, 1413, 2000, 2000, 2000,
2303      1420, 2006, 2006, 2006, 2168, 2168, 2168, 3186, 2169, 3187,
2304      3205, 2170, 1121, 1121, 1121, 2001, 3192, 1654, 2007, 1108,
2305      3189, 2155, 3193, 3213, 2160, 2172, 2172, 2172, 1108, 2162,
2306      1123, 2177, 2177, 2177, 1108, 2163, 2178, 2178, 2178, 2016,
2307
2308      2016, 2016, 2180, 2180, 2180, 2184, 2184, 2184, 2023, 2023,
2309      2023, 2024, 2024, 2024, 2185, 2185, 2185, 2027, 2027, 2027,
2310      2028, 2028, 2028, 2188, 2188, 2188, 2189, 2189, 2189, 2190,
2311      2190, 2190, 2191, 2191, 2191, 1108, 2171, 1155, 1155, 1155,
2312      2037, 2037, 2037, 3206, 2040, 2040, 2040, 2197, 2197, 2197,
2313      1108, 2198, 1108, 1653, 2199, 1157, 1650, 1108, 2038, 3213,
2314      2186, 2041, 2201, 2201, 2201, 2044, 2044, 2044, 2203, 2203,
2315      2203, 3190, 2204, 1108, 1108, 2205, 1189, 1189, 1189, 1108,
2316      2202, 3188, 2045, 2057, 2057, 2057, 1108, 3194, 2193, 2217,
2317      2217, 2217, 3198, 2218, 1191, 1647, 2219, 2220, 2220, 2220,
2318
2319      2058, 2064, 2064, 2064, 2225, 2225, 2225, 2066, 2066, 2066,
2320      2227, 2227, 2227, 1646, 2228, 3195, 1108, 2229, 1218, 1218,
2321      1218, 2069, 2069, 2069, 2067, 2216, 2231, 2231, 2231, 1108,
2322      2232, 1108, 3199, 2233, 1645, 1644, 1220, 1108, 2070, 2071,
2323      2071, 2071, 1108, 2072, 1643, 1108, 2073, 1227, 1227, 1227,
2324      2226, 1642, 2075, 2075, 2075, 2077, 2077, 2077, 1641, 2078,
2325      1108, 3203, 2079, 1639, 3209, 1229, 1241, 1241, 1241, 2230,
2326      2076, 1266, 1266, 1266, 2089, 2089, 2089, 3200, 2090, 1638,
2327      1637, 2091, 3201, 3196, 1243, 3210, 2093, 2093, 2093, 1268,
2328      2094, 1108, 1636, 2095, 2096, 2096, 2096, 3202, 2234, 2247,
2329
2330      2247, 2247, 1629, 2248, 1108, 1108, 2249, 1626, 2101, 2101,
2331      2101, 2097, 2102, 1625, 1623, 2103, 1290, 1290, 1290, 2235,
2332      2105, 2105, 2105, 3204, 2106, 1622, 2244, 2107, 2108, 2108,
2333      2108, 2254, 2254, 2254, 1292, 2255, 3207, 3208, 2256, 2110,
2334      2110, 2110, 1108, 2111, 1621, 2109, 2112, 1306, 1306, 1306,
2335      2115, 2115, 2115, 1618, 2116, 1613, 1612, 2117, 2262, 2262,
2336      2262, 2123, 2123, 2123, 1600, 1308, 2265, 2265, 2265, 1598,
2337      2266, 1594, 1593, 2267, 3211, 1108, 2263, 1589, 2124, 1587,
2338      2253, 1338, 1338, 1338, 2127, 2127, 2127, 2270, 2270, 2270,
2339      1579, 2271, 1578, 1577, 2272, 1576, 2135, 2135, 2135, 1340,
2340
2341      1574, 2128, 2138, 2138, 2138, 1573, 2139, 3212, 1571, 2140,
2342      1370, 1370, 1370, 2257, 2136, 2141, 2141, 2141, 1569, 2142,
2343      1568, 1564, 2143, 1563, 1378, 1378, 1378, 1562, 1372, 1386,
2344      1386, 1386, 2149, 2149, 2149, 1561, 2150, 1559, 1558, 2151,
2345      1557, 2268, 1380, 1556, 2152, 2152, 2152, 1388, 2153, 1551,
2346      1550, 2154, 1396, 1396, 1396, 1549, 2288, 2288, 2288, 1548,
2347      1547, 2283, 3216, 3216, 3216, 2286, 3216, 3216, 3216, 1546,
2348      1398, 1545, 2287, 2289, 3216, 3216, 3216, 1539, 1538, 3216,
2349      1405, 1405, 1405, 3216, 1411, 1411, 1411, 2296, 2296, 2296,
2350      2285, 3216, 2298, 2298, 2298, 2301, 2301, 2301, 1407, 2168,
2351
2352      2168, 2168, 1413, 2169, 1537, 2297, 2170, 1121, 1121, 1121,
2353      1108, 1536, 1532, 2290, 2172, 2172, 2172, 2303, 2303, 2303,
2354      2304, 2304, 2304, 1531, 1529, 1123, 2177, 2177, 2177, 1528,
2355      2291, 1525, 1524, 2292, 2178, 2178, 2178, 2180, 2180, 2180,
2356      2308, 2308, 2308, 1515, 2295, 2293, 2309, 2309, 2309, 2310,
2357      2310, 2310, 2184, 2184, 2184, 2185, 2185, 2185, 2188, 2188,
2358      2188, 2189, 2189, 2189, 1514, 1510, 2302, 2190, 2190, 2190,
2359      2191, 2191, 2191, 2314, 2314, 2314, 2317, 2317, 2317, 2197,
2360      2197, 2197, 1509, 2198, 1508, 1507, 2199, 3216, 3216, 3216,
2361      1506, 2315, 1505, 2318, 2201, 2201, 2201, 1504, 2203, 2203,
2362
2363      2203, 1503, 2204, 1502, 3216, 2205, 1189, 1189, 1189, 2217,
2364      2217, 2217, 2202, 2218, 2331, 2332, 2219, 2333, 1501, 2337,
2365      2338, 1500, 2339, 1499, 1191, 2334, 1498, 1495, 2335, 1493,
2366      2340, 1490, 2336, 2341, 2220, 2220, 2220, 2342, 2343, 2343,
2367      2343, 2225, 2225, 2225, 2227, 2227, 2227, 1487, 2228, 1484,
2368      1475, 2229, 1473, 2319, 1218, 1218, 1218, 2231, 2231, 2231,
2369      1466, 2232, 1464, 1463, 2233, 1462, 1461, 2330, 2349, 2349,
2370      2349, 1460, 1220, 1241, 1241, 1241, 2359, 2359, 2359, 1266,
2371      1266, 1266, 1459, 2247, 2247, 2247, 2350, 2248, 1458, 1457,
2372      2249, 1243, 2363, 2363, 2363, 1456, 1455, 1268, 1452, 1451,
2373
2374      2348, 2367, 2367, 2367, 2254, 2254, 2254, 1450, 2255, 2364,
2375      1449, 2256, 2369, 2369, 2369, 2262, 2262, 2262, 1448, 2368,
2376      2375, 2375, 2375, 1447, 2351, 2265, 2265, 2265, 1446, 2266,
2377      2370, 1445, 2267, 2263, 1338, 1338, 1338, 2376, 1444, 2360,
2378      2378, 2378, 2378, 2270, 2270, 2270, 1443, 2271, 1442, 1441,
2379      2272, 1440, 1340, 3216, 3216, 3216, 1439, 2379, 3216, 3216,
2380      3216, 3216, 3216, 3216, 2389, 2389, 2389, 2393, 2393, 2393,
2381      3216, 2391, 2391, 2391, 1437, 3216, 1436, 1435, 3216, 1378,
2382      1378, 1378, 1434, 1433, 2394, 2377, 2380, 1432, 1431, 2392,
2383      1108, 1386, 1386, 1386, 2288, 2288, 2288, 1380, 1396, 1396,
2384
2385      1396, 1425, 1410, 2398, 2398, 2398, 1409, 2399, 2381, 1388,
2386      2400, 2289, 2387, 2401, 2401, 2401, 1398, 1404, 1403, 2382,
2387      3216, 3216, 3216, 3216, 3216, 3216, 2405, 2405, 2405, 1402,
2388      2402, 2407, 2407, 2407, 1401, 2397, 1400, 3216, 1374, 2395,
2389      3216, 1411, 1411, 1411, 2406, 2296, 2296, 2296, 2298, 2298,
2390      2298, 1362, 2396, 2301, 2301, 2301, 2303, 2303, 2303, 1413,
2391      2412, 2412, 2412, 2297, 1348, 1347, 1108, 2304, 2304, 2304,
2392      1346, 2403, 1342, 1337, 2404, 2416, 2416, 2416, 2413, 2308,
2393      2308, 2308, 2309, 2309, 2309, 2310, 2310, 2310, 2314, 2314,
2394      2314, 2317, 2317, 2317, 2421, 2421, 2421, 1333, 2422, 1325,
2395
2396      1320, 2423, 1189, 1189, 1189, 1319, 2315, 2408, 2318, 1313,
2397      2409, 2343, 2343, 2343, 2452, 2452, 2452, 1218, 1218, 1218,
2398      1191, 2349, 2349, 2349, 2455, 2455, 2455, 2461, 2461, 2461,
2399      2359, 2359, 2359, 1310, 1289, 1220, 1266, 1266, 1266, 2350,
2400      1288, 1287, 2456, 1286, 2462, 1285, 2363, 2363, 2363, 2466,
2401      2466, 2466, 1284, 2467, 1268, 1283, 2468, 2470, 2470, 2470,
2402      1277, 1270, 2435, 2364, 2367, 2367, 2367, 2369, 2369, 2369,
2403      2474, 2474, 2474, 1259, 2471, 2375, 2375, 2375, 1258, 2480,
2404      2480, 2480, 2368, 2454, 1257, 2370, 1252, 2475, 2378, 2378,
2405      2378, 1251, 2376, 2463, 2477, 2477, 2477, 2481, 2478, 1247,
2406
2407      1246, 2479, 2482, 2482, 2482, 2379, 2483, 1245, 1240, 2484,
2408      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 2490,
2409      2490, 2490, 2389, 2389, 2389, 1239, 1234, 3216, 1226, 1222,
2410      3216, 1217, 1216, 3216, 1212, 1211, 2491, 2391, 2391, 2391,
2411      2393, 2393, 2393, 2494, 2494, 2494, 1210, 2495, 1209, 1208,
2412      2496, 2497, 2497, 2497, 1207, 2392, 1206, 2394, 1386, 1386,
2413      1386, 1205, 2485, 1396, 1396, 1396, 2398, 2398, 2398, 2498,
2414      2399, 2486, 1204, 2400, 2487, 1203, 1388, 2401, 2401, 2401,
2415      1202, 1398, 2501, 2501, 2501, 1196, 2502, 1188, 1187, 2503,
2416      2504, 2504, 2504, 1186, 2402, 2506, 2506, 2506, 2405, 2405,
2417
2418      2405, 2407, 2407, 2407, 2508, 2508, 2508, 2505, 2412, 2412,
2419      2412, 1185, 2507, 2416, 2416, 2416, 2406, 2518, 2518, 2518,
2420      1180, 1179, 2509, 1178, 1175, 2499, 2413, 2500, 2421, 2421,
2421      2421, 1169, 2422, 1164, 2519, 2423, 1189, 1189, 1189, 2452,
2422      2452, 2452, 1218, 1218, 1218, 2455, 2455, 2455, 2557, 2557,
2423      2557, 2461, 2461, 2461, 1191, 2559, 2559, 2559, 1163, 2560,
2424      1220, 1159, 2561, 2456, 1154, 2558, 1153, 1152, 2462, 2562,
2425      2562, 2562, 2466, 2466, 2466, 1151, 2467, 1150, 1149, 2468,
2426      2470, 2470, 2470, 1148, 2567, 2567, 2567, 2563, 2568, 1146,
2427      1145, 2569, 2571, 2571, 2571, 1144, 2537, 2471, 2474, 2474,
2428
2429      2474, 2573, 2573, 2573, 1143, 2574, 1142, 1141, 2575, 2572,
2430      2576, 2576, 2576, 2555, 1140, 2475, 2477, 2477, 2477, 1139,
2431      2478, 1138, 1137, 2479, 2480, 2480, 2480, 2577, 2482, 2482,
2432      2482, 1136, 2483, 1135, 1134, 2484, 3216, 3216, 3216, 3216,
2433      3216, 3216, 2481, 3216, 3216, 3216, 2490, 2490, 2490, 1133,
2434      2581, 2581, 2581, 3216, 2582, 1132, 3216, 2583, 1131, 1130,
2435      3216, 1129, 1128, 2491, 2584, 2584, 2584, 2586, 2586, 2586,
2436      2494, 2494, 2494, 1127, 2495, 1120, 1119, 2496, 2497, 2497,
2437      2497, 2585, 1118, 1117, 2587, 1386, 1386, 1386, 1116, 1115,
2438      2579, 2578, 1396, 1396, 1396, 1114, 2498, 1111, 2580, 1109,
2439
2440      2501, 2501, 2501, 1388, 2502, 1108, 1106, 2503, 1104, 1101,
2441      1398, 2504, 2504, 2504, 2596, 2596, 2596, 1097, 2597, 1095,
2442      1094, 2598, 2506, 2506, 2506, 2599, 2599, 2599, 2505, 2600,
2443      1093, 1091, 2601, 1090, 2508, 2508, 2508, 1089, 1088, 2507,
2444      2606, 2606, 2606, 2518, 2518, 2518, 1189, 1189, 1189, 1087,
2445      1086, 2594, 2509, 2595, 2610, 2610, 2610, 1084, 2611, 1083,
2446      2519, 2612, 1082, 1081, 1191, 2646, 2646, 2646, 1218, 1218,
2447      1218, 2649, 2649, 2649, 2557, 2557, 2557, 2652, 2652, 2652,
2448      1079, 2653, 1078, 1077, 2654, 1073, 1220, 1072, 2650, 1070,
2449      1069, 2558, 2559, 2559, 2559, 1068, 2560, 2630, 1067, 2561,
2450
2451      2562, 2562, 2562, 2567, 2567, 2567, 1066, 2568, 1065, 1063,
2452      2569, 2571, 2571, 2571, 2606, 2606, 2606, 2651, 2563, 2659,
2453      2659, 2659, 1062, 2660, 1061, 1060, 2661, 1058, 2572, 1057,
2454      2648, 2573, 2573, 2573, 1056, 2574, 1053, 1052, 2575, 2576,
2455      2576, 2576, 2662, 2662, 2662, 1050, 2663, 1047, 1046, 2664,
2456      3216, 3216, 3216, 2666, 2666, 2666, 2577, 3216, 3216, 3216,
2457      1042, 2581, 2581, 2581, 1041, 2582, 1039, 3216, 2583, 1038,
2458      2667, 2584, 2584, 2584, 3216, 2669, 2669, 2669, 1037, 2670,
2459      1034, 1033, 2671, 2586, 2586, 2586, 1032, 1031, 2585, 2672,
2460      2672, 2672, 1029, 2673, 1028, 1027, 2674, 1386, 1386, 1386,
2461
2462      2587, 1396, 1396, 1396, 1026, 1025, 2668, 1020, 2665, 2596,
2463      2596, 2596, 1018, 2597, 1017, 1388, 2598, 1016, 1015, 1398,
2464      2599, 2599, 2599, 1014, 2600, 1013, 1012, 2601, 2689, 2689,
2465      2689, 2692, 2692, 2692, 2610, 2610, 2610, 1011, 2611, 1008,
2466      1005, 2612, 2703, 2703, 2703, 2690, 1634, 1004, 2681, 1189,
2467      1189, 1189, 2646, 2646, 2646, 2729, 2729, 2729, 1003, 2704,
2468      1218, 1218, 1218, 2649, 2649, 2649,  997, 1191, 2682, 2731,
2469      2731, 2731,  994, 2732,  992,  991, 2733,  986, 1220,  985,
2470      2650, 2652, 2652, 2652,  983, 2653,  982,  981, 2654, 2659,
2471      2659, 2659,  979, 2660,  976,  974, 2661,  971, 2713, 2662,
2472
2473      2662, 2662,  970, 2663,  968,  967, 2664, 3216, 3216, 3216,
2474       964, 2730, 2666, 2666, 2666, 2740, 2740, 2740,  959, 2741,
2475       958,  956, 2742,  955, 3216, 3216, 3216, 3216,  952, 2667,
2476      2669, 2669, 2669,  951, 2670,  949,  946, 2671,  944, 2672,
2477      2672, 2672, 3216, 2673,  943,  942, 2674, 2758, 2758, 2758,
2478      1396, 1396, 1396, 2766, 2766, 2766,  940,  938, 2739, 2689,
2479      2689, 2689, 2768, 2768, 2768, 2759, 2769,  937, 1398, 2770,
2480      2767, 1634, 2771, 2771, 2771,  936, 2690, 1634,  935,  934,
2481      1634, 2692, 2692, 2692, 2772, 2772, 2772, 2773, 2773, 2773,
2482      2703, 2703, 2703, 2782, 2782, 2782, 2743, 2783,  933,  930,
2483
2484      2784, 1189, 1189, 1189, 2802, 2802, 2802, 2704, 2729, 2729,
2485      2729, 2803, 2803, 2803,  929,  928, 2760,  925,  922, 1191,
2486      2731, 2731, 2731,  921, 2732,  919,  918, 2733,  915, 2804,
2487      2808, 2808, 2808, 2811, 2811, 2811, 2740, 2740, 2740,  912,
2488      2741,  909,  908, 2742, 2813, 2813, 2813, 2809,  900,  899,
2489      2812, 2758, 2758, 2758, 1396, 1396, 1396, 2766, 2766, 2766,
2490       898, 2814,  892,  891, 2833, 2833, 2833, 2791, 2834, 2759,
2491       890, 2835, 1398,  888, 2767, 1634, 2768, 2768, 2768,  887,
2492      2769,  886, 1634, 2770, 2771, 2771, 2771, 2772, 2772, 2772,
2493      2773, 2773, 2773,  885, 1634, 2782, 2782, 2782,  884, 2783,
2494
2495       883,  878, 2784,  875,  877, 2827, 1632, 1632, 1632, 1632,
2496      1632, 1632, 1632, 1632, 1632,  872,  871, 1632, 2852, 2852,
2497      2852,  869, 1632, 1632, 1632, 1634, 1632, 2802, 2802, 2802,
2498      2803, 2803, 2803, 2808, 2808, 2808, 2853, 2865, 2865, 2865,
2499       867, 2866,  865,  863, 2867, 2811, 2811, 2811, 2804,  861,
2500      2809, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
2501      1632, 1632, 2812, 3216, 1632, 2813, 2813, 2813,  858, 1632,
2502      1632, 1632, 1634, 1632, 2869, 2869, 2869,  857, 2870,  856,
2503       855, 2871, 2814, 2872, 2872, 2872,  854, 2873,  852,  851,
2504      2874, 2887, 2887, 2887, 2852, 2852, 2852,  850, 1632, 1632,
2505
2506      2833, 2833, 2833,  849, 2834,  848,  846, 2835,  845, 2888,
2507       844,  843, 2853, 2887, 2887, 2887,  841,  839, 1634, 1632,
2508      1632, 1632, 1632, 1632, 2899, 1632, 1632, 1632,  838,  836,
2509      1632, 2888,  835,  832,  831, 1632, 1632, 1632, 1634, 1632,
2510      2865, 2865, 2865,  829, 2866,  663, 3216, 2867, 2869, 2869,
2511      2869,  824, 2870,  822,  818, 2871, 2872, 2872, 2872,  817,
2512      2873,  816,  814, 2874, 1632, 1632, 1632, 1632, 1632, 1632,
2513      1632, 1632, 1632, 1632, 2899,  812,  811, 1632, 2938, 2938,
2514      2938,  810, 1632, 1632, 1632, 1634, 1632, 2949, 2949, 2949,
2515      2951, 2951, 2951, 2953, 2953, 2953, 1634, 1635, 2961, 2961,
2516
2517      2961, 2971, 2971, 2971, 2950,  808,  806, 2952,  805,  803,
2518      2954, 1632, 1632,  801,  800, 2962, 2938, 2938, 2938, 1108,
2519      2949, 2949, 2949, 2981, 2981, 2981,  799, 2982,  798,  797,
2520      2983, 2951, 2951, 2951, 1634,  796,  795, 2950, 2984, 2984,
2521      2984,  793, 2985,  791,  790, 2986,  787,  786, 2952, 2953,
2522      2953, 2953, 2987, 2987, 2987,  785, 2988,  783,  774, 2989,
2523      2961, 2961, 2961, 2971, 2971, 2971, 2954, 1822, 2996, 2996,
2524      2996,  773, 2997,  772,  769, 2998,  767, 2962, 2981, 2981,
2525      2981, 1108, 2982,  765,  764, 2983, 2984, 2984, 2984,  763,
2526      2985,  761, 3216, 2986, 2987, 2987, 2987,  758, 2988,  757,
2527
2528      3007, 2989, 2996, 2996, 2996,  756, 2997,  755,  754, 2998,
2529      3112, 3112, 3112, 3112, 3112, 3112,  752, 3121,  750,  749,
2530      3122, 3214, 3214, 3214, 3214, 3214, 3214,  747, 1108,  745,
2531       744, 1108,  742,  740,  739,  738,  736,  734,  733, 3215,
2532       732,  731, 3215,  250,  250,  250,  250,  250,  250,  250,
2533       250,  250,  251,  251,  251,  251,  251,  251,  251,  251,
2534       251,  256,  256,  256,  256,  256,  256,  256,  256,  256,
2535       259,  259,  259,  259,  259,  259,  259,  259,  259,  262,
2536       262,  262,  262,  262,  262,  262,  262,  262,  265,  265,
2537       265,  265,  265,  265,  265,  265,  265,  272,  272,  272,
2538
2539       272,  272,  272,  272,  272,  272,  280,  280,  280,  280,
2540       280,  280,  280,  280,  280,  284,  284,  284,  284,  284,
2541       284,  284,  284,  284,  296,  296,  296,  296,  296,  296,
2542       296,  296,  296,  300,  300,  300,  300,  300,  300,  300,
2543       300,  300,  307,  307,  307,  307,  307,  307,  307,  307,
2544       307,  318,  318,  318,  318,  318,  318,  318,  318,  318,
2545       326,  326,  326,  326,  326,  326,  326,  326,  326,  334,
2546       334,  334,  334,  334,  334,  334,  334,  334,  340,  340,
2547       340,  340,  340,  340,  340,  340,  340,  346,  346,  346,
2548       346,  346,  346,  346,  346,  346,  351,  351,  351,  351,
2549
2550       351,  351,  351,  351,  351,  368,  368,  368,  368,  368,
2551       368,  368,  368,  368,  375,  375,  375,  375,  375,  375,
2552       375,  375,  375,  382,  382,  382,  382,  382,  382,  382,
2553       382,  382,  388,  388,  388,  388,  388,  388,  388,  388,
2554       388,  395,  395,  395,  395,  395,  395,  395,  395,  395,
2555       400,  400,  400,  400,  400,  400,  400,  400,  400,  406,
2556       406,  406,  406,  406,  406,  406,  406,  406,  411,  411,
2557       411,  411,  411,  411,  411,  411,  411,  417,  417,  417,
2558       417,  417,  417,  417,  417,  417,  425,  425,  425,  425,
2559       425,  425,  425,  425,  425,  433,  433,  433,  433,  433,
2560
2561       433,  433,  433,  433,  439,  439,  439,  439,  439,  439,
2562       439,  439,  439,  456,  456,  456,  456,  456,  456,  456,
2563       456,  456,  462,  462,  462,  462,  462,  462,  462,  462,
2564       462,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2565       477,  477,  477,  477,  477,  477,  477,  477,  477,  487,
2566       487,  487,  487,  487,  487,  487,  487,  487,  493,  493,
2567       493,  493,  493,  493,  493,  493,  493,  498,  498,  498,
2568       498,  498,  498,  498,  498,  498,  504,  504,  504,  504,
2569       504,  504,  504,  504,  504,  510,  510,  510,  510,  510,
2570       510,  510,  510,  510,  516,  516,  516,  516,  516,  516,
2571
2572       516,  516,  516,  523,  523,  523,  523,  523,  523,  523,
2573       523,  523,  530,  530,  530,  530,  530,  530,  530,  530,
2574       530,  535,  535,  535,  535,  535,  535,  535,  535,  535,
2575       543,  543,  543,  543,  543,  543,  543,  543,  543,  549,
2576       549,  549,  549,  549,  549,  549,  549,  549,  556,  556,
2577       556,  556,  556,  556,  556,  556,  556,  561,  561,  561,
2578       561,  561,  561,  561,  561,  561,  567,  567,  567,  567,
2579       567,  567,  567,  567,  567,  572,  572,  572,  572,  572,
2580       572,  572,  572,  572,  579,  579,  579,  579,  579,  579,
2581       579,  579,  579,  585,  585,  585,  585,  585,  585,  585,
2582
2583       585,  585,  592,  592,  592,  592,  592,  592,  592,  592,
2584       592,  600,  600,  600,  600,  600,  600,  600,  600,  600,
2585       608,  608,  608,  608,  608,  608,  608,  608,  608,  612,
2586       612,  612,  612,  612,  612,  612,  612,  612,  618,  618,
2587       618,  618,  618,  618,  618,  618,  618,  622,  622,  622,
2588       622,  622,  622,  622,  622,  622,  629,  629,  629,  629,
2589       629,  629,  629,  629,  629,  634,  634,  634,  634,  634,
2590       634,  634,  634,  634,  654,  654,  654,  729, 3216, 3216,
2591       654,  680,  680,  680,  712,  711,  709,  680,  684,  684,
2592       684,  707,  706,  705,  684,  692,  692,  692,  703,  698,
2593
2594       694,  692,  704,  704,  704,  693,  691,  690,  704,  710,
2595       710,  710,  687,  686,  685,  710,  730,  730,  730,  683,
2596       682,  681,  730,  737,  737,  737,  679,  674, 3216,  737,
2597       743,  743,  743,  655,  653,  651,  743,  748,  748,  748,
2598       645,  644,  645,  748,  753,  753,  753,  644,  643,  642,
2599       753,  762,  762,  762, 3216, 3216, 3216,  762,  768,  768,
2600       768, 3216, 3216, 3216,  768,  784,  784,  784, 3216, 3216,
2601      3216,  784,  794,  794,  794, 3216, 3216, 3216,  794,  804,
2602       804,  804, 3216, 3216, 3216,  804,  809,  809,  809, 3216,
2603      3216, 3216,  809,  815,  815,  815, 3216, 3216, 3216,  815,
2604
2605       823,  823,  823, 3216, 3216, 3216,  823,  830,  830,  830,
2606      3216, 3216, 3216,  830,  837,  837,  837, 3216, 3216, 3216,
2607       837,  842,  842,  842, 3216, 3216, 3216,  842,  847,  847,
2608       847, 3216, 3216, 3216,  847,  853,  853,  853, 3216, 3216,
2609      3216,  853,  862,  862,  862, 3216, 3216, 3216,  862,  866,
2610       866,  866, 3216, 3216, 3216,  866,  870,  870,  870, 3216,
2611      3216, 3216,  870,  874,  874,  874,  874,  874,  874,  874,
2612      3216,  874,  654,  654,  654, 3216, 3216, 3216,  654,  889,
2613      3216, 3216, 3216,  889,  680,  680,  680, 3216, 3216, 3216,
2614       680,  920, 3216, 3216, 3216,  920,  684,  684,  684, 3216,
2615
2616      3216, 3216,  684,  927, 3216, 3216, 3216,  927,  692,  692,
2617       692, 3216, 3216, 3216,  692,  939, 3216, 3216, 3216,  939,
2618       704,  704,  704, 3216, 3216, 3216,  704,  945, 3216, 3216,
2619      3216,  945,  710,  710,  710, 3216, 3216, 3216,  710,  950,
2620      3216, 3216, 3216,  950,  730,  730,  730, 3216, 3216, 3216,
2621       730,  969, 3216, 3216, 3216,  969,  737,  737,  737, 3216,
2622      3216, 3216,  737,  975, 3216, 3216, 3216,  975,  743,  743,
2623       743, 3216, 3216, 3216,  743,  980, 3216, 3216, 3216,  980,
2624       748,  748,  748, 3216, 3216, 3216,  748,  984, 3216, 3216,
2625      3216,  984,  753,  753,  753, 3216, 3216, 3216,  753,  993,
2626
2627      3216, 3216, 3216,  993,  762,  762,  762, 3216, 3216, 3216,
2628       762, 1002, 3216, 3216, 3216, 1002,  768,  768,  768, 3216,
2629      3216, 3216,  768, 1019, 3216, 3216, 3216, 1019,  784,  784,
2630       784, 3216, 3216, 3216,  784, 1030, 3216, 3216, 3216, 1030,
2631       794,  794,  794, 3216, 3216, 3216,  794, 1040, 3216, 3216,
2632      3216, 1040,  804,  804,  804, 3216, 3216, 3216,  804, 1045,
2633      3216, 3216, 3216, 1045,  809,  809,  809, 3216, 3216, 3216,
2634       809, 1051, 3216, 3216, 3216, 1051,  815,  815,  815, 3216,
2635      3216, 3216,  815, 1059, 3216, 3216, 3216, 1059,  823,  823,
2636       823, 3216, 3216, 3216,  823, 1064, 3216, 3216, 3216, 1064,
2637
2638       830,  830,  830, 3216, 3216, 3216,  830, 1071, 3216, 3216,
2639      3216, 1071,  837,  837,  837, 3216, 3216, 3216,  837, 1076,
2640      3216, 3216, 3216, 1076,  842,  842,  842, 3216, 3216, 3216,
2641       842, 1080, 3216, 3216, 3216, 1080,  847,  847,  847, 3216,
2642      3216, 3216,  847, 1085, 3216, 3216, 3216, 1085,  853,  853,
2643       853, 3216, 3216, 3216,  853, 1092, 3216, 3216, 3216, 1092,
2644       862,  862,  862, 3216, 3216, 3216,  862, 1096, 3216, 3216,
2645      3216, 1096,  866,  866,  866, 3216, 3216, 3216,  866, 1100,
2646      3216, 3216, 3216, 1100,  870,  870,  870, 3216, 3216, 3216,
2647       870, 1105, 3216, 3216, 3216, 1105, 1107, 1107, 1107, 1107,
2648
2649      1107, 1107, 1107, 1107, 1107, 1113, 3216, 3216, 3216, 3216,
2650      1113,  654,  654,  654, 3216, 3216, 3216,  654, 1122, 1122,
2651      1122, 1122, 3216, 3216, 1122, 1122,  680,  680,  680, 3216,
2652      3216, 3216,  680, 1156, 1156, 1156, 1156, 3216, 3216, 1156,
2653      1156,  684,  684,  684, 3216, 3216, 3216,  684, 1166, 1166,
2654      1166, 1166, 3216, 3216, 1166, 1166,  692,  692,  692, 3216,
2655      3216, 3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182,
2656      1182,  704,  704,  704, 3216, 3216, 3216,  704, 1190, 1190,
2657      1190, 1190, 3216, 3216, 1190, 1190,  710,  710,  710, 3216,
2658      3216, 3216,  710, 1198, 1198, 1198, 1198, 3216, 3216, 1198,
2659
2660      1198,  730,  730,  730, 3216, 3216, 3216,  730, 1219, 1219,
2661      1219, 1219, 3216, 3216, 1219, 1219,  737,  737,  737, 3216,
2662      3216, 3216,  737, 1228, 1228, 1228, 1228, 3216, 3216, 1228,
2663      1228,  743,  743,  743, 3216, 3216, 3216,  743, 1236, 1236,
2664      1236, 1236, 3216, 3216, 1236, 1236,  748,  748,  748, 3216,
2665      3216, 3216,  748, 1242, 1242, 1242, 1242, 3216, 3216, 1242,
2666      1242,  753,  753,  753, 3216, 3216, 3216,  753, 1254, 1254,
2667      1254, 1254, 3216, 3216, 1254, 1254,  762,  762,  762, 3216,
2668      3216, 3216,  762, 1267, 1267, 1267, 1267, 3216, 3216, 1267,
2669      1267,  768,  768,  768, 3216, 3216, 3216,  768, 1291, 1291,
2670
2671      1291, 1291, 3216, 3216, 1291, 1291,  784,  784,  784,  784,
2672      3216,  784, 3216,  784, 1307, 1307, 1307, 1307, 3216, 3216,
2673      1307, 1307,  794,  794,  794, 3216, 3216, 3216,  794, 1322,
2674      1322, 1322, 1322, 3216, 3216, 1322, 1322,  804,  804,  804,
2675      3216, 3216, 3216,  804, 1330, 1330, 1330, 1330, 3216, 3216,
2676      1330, 1330,  809,  809,  809, 3216, 3216, 3216,  809, 1339,
2677      1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,  815,  815,
2678      3216, 3216, 3216,  815, 1350, 1350, 1350, 1350, 3216, 3216,
2679      1350, 1350,  823,  823,  823,  823, 3216,  823, 3216,  823,
2680      1359, 1359, 1359, 1359, 3216, 3216, 1359, 1359,  830,  830,
2681
2682       830,  830, 3216,  830, 3216,  830, 1371, 1371, 1371, 1371,
2683      3216, 3216, 1371, 1371,  837,  837,  837, 3216, 3216, 3216,
2684       837, 1379, 1379, 1379, 1379, 3216, 3216, 1379, 1379,  842,
2685       842,  842,  842, 3216,  842, 3216,  842, 1387, 1387, 1387,
2686      1387, 3216, 3216, 1387, 1387,  847,  847,  847,  847, 3216,
2687       847, 3216,  847, 1397, 1397, 1397, 1397, 3216, 3216, 1397,
2688      1397,  853,  853,  853, 3216, 3216, 3216,  853, 1406, 1406,
2689      1406, 1406, 3216, 3216, 1406, 1406,  862,  862,  862, 3216,
2690      3216, 3216,  862, 1412, 1412, 1412, 1412, 3216, 3216, 1412,
2691      1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419,  870,
2692
2693       870,  870, 3216, 3216, 3216,  870, 1427, 1427, 1427, 1427,
2694      3216, 3216, 1427, 1427, 1107, 1107, 1107, 1107, 1107, 1107,
2695      1107, 1107, 1107, 1113, 3216, 1113, 3216, 3216, 1113,  654,
2696       654,  654, 3216, 3216, 3216,  654, 1122, 1122, 1122, 1122,
2697      3216, 3216, 1122, 1122,  680,  680,  680,  680, 3216,  680,
2698      3216,  680, 1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,
2699       684,  684,  684,  684, 3216,  684, 3216,  684, 1166, 1166,
2700      1166, 1166, 3216, 3216, 1166, 1166,  692,  692,  692, 3216,
2701      3216, 3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182,
2702      1182,  704,  704,  704, 3216, 3216, 3216,  704, 1190, 1190,
2703
2704      1190, 1190, 3216, 3216, 1190, 1190,  710,  710,  710, 3216,
2705      3216, 3216,  710, 1198, 1198, 1198, 1198, 3216, 3216, 1198,
2706      1198,  730,  730,  730, 3216, 3216, 3216,  730, 1219, 1219,
2707      1219, 1219, 3216, 3216, 1219, 1219,  737,  737,  737, 3216,
2708      3216, 3216,  737, 1228, 1228, 1228, 1228, 3216, 3216, 1228,
2709      1228,  743,  743,  743,  743, 3216,  743, 3216,  743, 1236,
2710      1236, 1236, 1236, 3216, 3216, 1236, 1236,  748,  748,  748,
2711       748, 3216,  748, 3216,  748, 1242, 1242, 1242, 1242, 3216,
2712      3216, 1242, 1242,  753,  753,  753, 3216, 3216, 3216,  753,
2713      1254, 1254, 1254, 1254, 3216, 3216, 1254, 1254,  762,  762,
2714
2715       762,  762, 3216,  762, 3216,  762, 1267, 1267, 1267, 1267,
2716      3216, 3216, 1267, 1267,  768,  768,  768, 3216, 3216, 3216,
2717       768, 1291, 1291, 1291, 1291, 3216, 3216, 1291, 1291,  784,
2718       784,  784, 3216, 3216, 3216,  784, 1307, 1307, 1307, 1307,
2719      3216, 3216, 1307, 1307,  794,  794,  794, 3216, 3216, 3216,
2720       794, 1322, 1322, 1322, 1322, 3216, 3216, 1322, 1322,  804,
2721       804,  804, 3216, 3216, 3216,  804, 1330, 1330, 1330, 1330,
2722      3216, 3216, 1330, 1330,  809,  809,  809, 3216, 3216, 3216,
2723       809, 1339, 1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,
2724       815,  815, 3216, 3216, 3216,  815, 1350, 1350, 1350, 1350,
2725
2726      3216, 3216, 1350, 1350,  823,  823,  823, 3216, 3216, 3216,
2727       823, 1359, 1359, 1359, 1359, 3216, 3216, 1359, 1359,  830,
2728       830,  830, 3216, 3216, 3216,  830, 1371, 1371, 1371, 1371,
2729      3216, 3216, 1371, 1371,  837,  837,  837, 3216, 3216, 3216,
2730       837, 1379, 1379, 1379, 1379, 3216, 3216, 1379, 1379, 1387,
2731      1387, 1387, 1387, 3216, 3216, 1387, 1387,  847,  847,  847,
2732      3216, 3216, 3216,  847, 1397, 1397, 1397, 1397, 3216, 3216,
2733      1397, 1397,  853,  853,  853, 3216, 3216, 3216,  853, 1406,
2734      1406, 1406, 1406, 3216, 3216, 1406, 1406,  862,  862,  862,
2735      3216, 3216, 3216,  862, 1412, 1412, 1412, 1412, 3216, 3216,
2736
2737      1412, 1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419,
2738       870,  870,  870, 3216, 3216, 3216,  870, 1427, 1427, 1427,
2739      1427, 3216, 3216, 1427, 1427, 1107, 1107, 1107, 1107, 1107,
2740      1107, 1107, 1107, 1107, 1632, 1632, 1632, 1632, 1632, 1632,
2741      1632, 1632, 1632,  654,  654,  654, 3216, 3216, 3216,  654,
2742      1122, 1122, 1122, 1122, 3216, 3216, 1122, 1122, 1156, 1156,
2743      1156, 1156, 3216, 3216, 1156, 1156,  684,  684,  684, 3216,
2744      3216, 3216,  684, 1166, 1166, 1166, 1166, 3216, 3216, 1166,
2745      1166,  692,  692,  692, 3216, 3216, 3216,  692, 1182, 1182,
2746      1182, 1182, 3216, 3216, 1182, 1182,  704,  704,  704, 3216,
2747
2748      3216, 3216,  704, 1190, 1190, 1190, 1190, 3216, 3216, 1190,
2749      1190,  710,  710,  710, 3216, 3216, 3216,  710,  730,  730,
2750       730, 3216, 3216, 3216,  730, 1219, 1219, 1219, 1219, 3216,
2751      3216, 1219, 1219,  737,  737,  737, 3216, 3216, 3216,  737,
2752      1228, 1228, 1228, 1228, 3216, 3216, 1228, 1228, 1236, 1236,
2753      1236, 1236, 3216, 3216, 1236, 1236,  748,  748,  748, 3216,
2754      3216, 3216,  748, 1242, 1242, 1242, 1242, 3216, 3216, 1242,
2755      1242,  753,  753,  753, 3216, 3216, 3216,  753, 1254, 1254,
2756      1254, 1254, 3216, 3216, 1254, 1254, 1267, 1267, 1267, 1267,
2757      3216, 3216, 1267, 1267,  768,  768,  768, 3216, 3216, 3216,
2758
2759       768, 1291, 1291, 1291, 1291, 3216, 3216, 1291, 1291,  784,
2760       784,  784,  784, 3216,  784, 3216,  784, 1307, 1307, 1307,
2761      1307, 3216, 3216, 1307, 1307,  794,  794,  794, 3216, 3216,
2762      3216,  794, 1322, 1322, 1322, 1322, 3216, 3216, 1322, 1322,
2763       804,  804,  804, 3216, 3216, 3216,  804, 1330, 1330, 1330,
2764      1330, 3216, 3216, 1330, 1330,  809,  809,  809, 3216, 3216,
2765      3216,  809, 1339, 1339, 1339, 1339, 3216, 3216, 1339, 1339,
2766       815,  815,  815, 3216, 3216, 3216,  815, 1350, 1350, 1350,
2767      1350, 3216, 3216, 1350, 1350,  823,  823,  823, 3216, 3216,
2768      3216,  823, 1359, 1359, 1359, 1359, 3216, 3216, 1359, 1359,
2769
2770       830,  830,  830, 3216, 3216, 3216,  830, 1371, 1371, 1371,
2771      1371, 3216, 3216, 1371, 1371,  837,  837,  837, 3216, 3216,
2772      3216,  837, 1379, 1379, 1379, 1379, 3216, 3216, 1379, 1379,
2773      1387, 1387, 1387, 1387, 3216, 3216, 1387, 1387,  847,  847,
2774       847, 3216, 3216, 3216,  847, 1397, 1397, 1397, 1397, 3216,
2775      3216, 1397, 1397,  853,  853,  853, 3216, 3216, 3216,  853,
2776      1406, 1406, 1406, 1406, 3216, 3216, 1406, 1406,  862,  862,
2777       862,  862, 3216,  862, 3216,  862, 1412, 1412, 1412, 1412,
2778      3216, 3216, 1412, 1412, 1419, 1419, 1419, 1419, 3216, 3216,
2779      1419, 1419,  870,  870,  870,  870, 3216,  870, 3216,  870,
2780
2781      1427, 1427, 1427, 1427, 3216, 3216, 1427, 1427, 1107, 1107,
2782      1107, 1107, 1107, 1107, 1107, 1107, 1107, 1632, 1632, 1632,
2783      1632, 1632, 1632, 1632, 1632, 1632,  654,  654,  654, 3216,
2784      3216, 3216,  654, 1122, 1122, 1122, 1122, 3216, 3216, 1122,
2785      1122, 1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,  684,
2786       684,  684, 3216, 3216, 3216,  684, 1166, 1166, 1166, 1166,
2787      3216, 3216, 1166, 1166,  692,  692,  692, 3216, 3216, 3216,
2788       692, 1182, 1182, 1182, 1182, 3216, 3216, 1182, 1182,  704,
2789       704,  704, 3216, 3216, 3216,  704, 1190, 1190, 1190, 1190,
2790      3216, 3216, 1190, 1190,  710,  710,  710, 3216, 3216, 3216,
2791
2792       710,  730,  730,  730, 3216, 3216, 3216,  730, 1219, 1219,
2793      1219, 1219, 3216, 3216, 1219, 1219,  737,  737,  737, 3216,
2794      3216, 3216,  737, 1228, 1228, 1228, 1228, 3216, 3216, 1228,
2795      1228, 1236, 1236, 1236, 1236, 3216, 3216, 1236, 1236,  748,
2796       748,  748,  748, 3216,  748, 3216,  748, 1242, 1242, 1242,
2797      1242, 3216, 3216, 1242, 1242,  753,  753,  753, 3216, 3216,
2798      3216,  753, 1254, 1254, 1254, 1254, 3216, 3216, 1254, 1254,
2799      1267, 1267, 1267, 1267, 3216, 3216, 1267, 1267,  768,  768,
2800       768, 3216, 3216, 3216,  768, 1291, 1291, 1291, 1291, 3216,
2801      3216, 1291, 1291,  784,  784,  784,  784, 3216,  784, 3216,
2802
2803       784, 1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,  794,
2804       794,  794, 3216, 3216, 3216,  794, 1322, 1322, 1322, 1322,
2805      3216, 3216, 1322, 1322,  804,  804,  804, 3216, 3216, 3216,
2806       804, 1330, 1330, 1330, 1330, 3216, 3216, 1330, 1330,  809,
2807       809,  809, 3216, 3216, 3216,  809, 1339, 1339, 1339, 1339,
2808      3216, 3216, 1339, 1339,  815,  815,  815, 3216, 3216, 3216,
2809       815, 1350, 1350, 1350, 1350, 3216, 3216, 1350, 1350,  823,
2810       823,  823, 3216, 3216, 3216,  823, 1359, 1359, 1359, 1359,
2811      3216, 3216, 1359, 1359,  830,  830,  830,  830, 3216,  830,
2812      3216,  830, 1371, 1371, 1371, 1371, 3216, 3216, 1371, 1371,
2813
2814       837,  837,  837, 3216, 3216, 3216,  837, 1379, 1379, 1379,
2815      1379, 3216, 3216, 1379, 1379, 1387, 1387, 1387, 1387, 3216,
2816      3216, 1387, 1387,  847,  847,  847,  847, 3216,  847, 3216,
2817       847, 1397, 1397, 1397, 1397, 3216, 3216, 1397, 1397,  853,
2818       853,  853, 3216, 3216, 3216,  853, 1406, 1406, 1406, 1406,
2819      3216, 3216, 1406, 1406, 1412, 1412, 1412, 1412, 3216, 3216,
2820      1412, 1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419,
2821      1427, 1427, 1427, 1427, 3216, 3216, 1427, 1427, 1107, 1107,
2822      1107, 1107, 1107, 1107, 1107, 1107, 1107, 1632, 1632, 1632,
2823      1632, 1632, 1632, 1632, 1632, 1632,  654,  654,  654,  654,
2824
2825      3216,  654, 3216,  654, 1122, 1122, 1122, 1122, 3216, 3216,
2826      1122, 1122, 1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,
2827       684,  684,  684, 3216, 3216, 3216,  684, 1166, 1166, 1166,
2828      1166, 3216, 3216, 1166, 1166,  692,  692,  692, 3216, 3216,
2829      3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182, 1182,
2830       704,  704,  704,  704, 3216,  704, 3216,  704, 1190, 1190,
2831      1190, 1190, 3216, 3216, 1190, 1190,  710,  710,  710,  710,
2832      3216,  710, 3216,  710,  730,  730,  730,  730, 3216,  730,
2833      3216,  730, 1219, 1219, 1219, 1219, 3216, 3216, 1219, 1219,
2834       737,  737,  737,  737, 3216,  737, 3216,  737, 1228, 1228,
2835
2836      1228, 1228, 3216, 3216, 1228, 1228, 1236, 1236, 1236, 1236,
2837      3216, 3216, 1236, 1236, 1242, 1242, 1242, 1242, 3216, 3216,
2838      1242, 1242,  753,  753,  753, 3216, 3216, 3216,  753, 1267,
2839      1267, 1267, 1267, 3216, 3216, 1267, 1267,  768,  768,  768,
2840      3216, 3216, 3216,  768, 1291, 1291, 1291, 1291, 3216, 3216,
2841      1291, 1291,  784,  784,  784,  784, 3216,  784, 3216,  784,
2842      1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,  794,  794,
2843       794, 3216, 3216, 3216,  794,  804,  804,  804, 3216, 3216,
2844      3216,  804, 1330, 1330, 1330, 1330, 3216, 3216, 1330, 1330,
2845       809,  809,  809, 3216, 3216, 3216,  809, 1339, 1339, 1339,
2846
2847      1339, 3216, 3216, 1339, 1339,  815,  815,  815, 3216, 3216,
2848      3216,  815,  823,  823,  823, 3216, 3216, 3216,  823, 1359,
2849      1359, 1359, 1359, 3216, 3216, 1359, 1359,  830,  830,  830,
2850      3216, 3216, 3216,  830, 1371, 1371, 1371, 1371, 3216, 3216,
2851      1371, 1371,  837,  837,  837, 3216, 3216, 3216,  837, 1379,
2852      1379, 1379, 1379, 3216, 3216, 1379, 1379, 1387, 1387, 1387,
2853      1387, 3216, 3216, 1387, 1387, 1397, 1397, 1397, 1397, 3216,
2854      3216, 1397, 1397,  853,  853,  853, 3216, 3216, 3216,  853,
2855      1406, 1406, 1406, 1406, 3216, 3216, 1406, 1406, 1412, 1412,
2856      1412, 1412, 3216, 3216, 1412, 1412, 1419, 1419, 1419, 1419,
2857
2858      3216, 3216, 1419, 1419, 1107, 1107, 1107, 1107, 1107, 1107,
2859      1107, 1107, 1107, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
2860      1632, 1632, 1122, 1122, 1122, 1122, 3216, 3216, 1122, 1122,
2861      1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,  684,  684,
2862       684, 3216, 3216, 3216,  684,  692,  692,  692, 3216, 3216,
2863      3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182, 1182,
2864      1190, 1190, 1190, 1190, 3216, 3216, 1190, 1190, 1219, 1219,
2865      1219, 1219, 3216, 3216, 1219, 1219, 1228, 1228, 1228, 1228,
2866      3216, 3216, 1228, 1228, 1242, 1242, 1242, 1242, 3216, 3216,
2867      1242, 1242,  753,  753,  753, 3216, 3216, 3216,  753, 1267,
2868
2869      1267, 1267, 1267, 3216, 3216, 1267, 1267,  768,  768,  768,
2870      3216, 3216, 3216,  768, 1291, 1291, 1291, 1291, 3216, 3216,
2871      1291, 1291, 1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,
2872       794,  794,  794, 3216, 3216, 3216,  794,  804,  804,  804,
2873      3216, 3216, 3216,  804, 1330, 1330, 1330, 1330, 3216, 3216,
2874      1330, 1330,  809,  809,  809, 3216, 3216, 3216,  809, 1339,
2875      1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,  815,  815,
2876      3216, 3216, 3216,  815,  823,  823,  823, 3216, 3216, 3216,
2877       823,  830,  830,  830, 3216, 3216, 3216,  830, 1371, 1371,
2878      1371, 1371, 3216, 3216, 1371, 1371,  837,  837,  837, 3216,
2879
2880      3216, 3216,  837, 1379, 1379, 1379, 1379, 3216, 3216, 1379,
2881      1379, 1387, 1387, 1387, 1387, 3216, 3216, 1387, 1387, 1397,
2882      1397, 1397, 1397, 3216, 3216, 1397, 1397,  853,  853,  853,
2883       853, 3216,  853, 3216,  853, 1406, 1406, 1406, 1406, 3216,
2884      3216, 1406, 1406, 1412, 1412, 1412, 1412, 3216, 3216, 1412,
2885      1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419, 1107,
2886      1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1632, 1632,
2887      1632, 1632, 1632, 1632, 1632, 1632, 1632, 1122, 1122, 1122,
2888      1122, 3216, 3216, 1122, 1122, 1156, 1156, 1156, 1156, 3216,
2889      3216, 1156, 1156,  684,  684,  684, 3216, 3216, 3216,  684,
2890
2891       692,  692,  692,  692, 3216,  692, 3216,  692, 1190, 1190,
2892      1190, 1190, 3216, 3216, 1190, 1190, 1219, 1219, 1219, 1219,
2893      3216, 3216, 1219, 1219, 1228, 1228, 1228, 1228, 3216, 3216,
2894      1228, 1228, 1242, 1242, 1242, 1242, 3216, 3216, 1242, 1242,
2895       753,  753,  753, 3216, 3216, 3216,  753, 1267, 1267, 1267,
2896      1267, 3216, 3216, 1267, 1267,  768,  768,  768, 3216, 3216,
2897      3216,  768, 1291, 1291, 1291, 1291, 3216, 3216, 1291, 1291,
2898      1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,  794,  794,
2899       794, 3216, 3216, 3216,  794,  804,  804,  804, 3216, 3216,
2900      3216,  804,  809,  809,  809,  809, 3216,  809, 3216,  809,
2901
2902      1339, 1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,  815,
2903       815,  815, 3216,  815, 3216,  815,  823,  823,  823, 3216,
2904      3216, 3216,  823,  830,  830,  830, 3216, 3216, 3216,  830,
2905      1371, 1371, 1371, 1371, 3216, 3216, 1371, 1371,  837,  837,
2906       837,  837, 3216,  837, 3216,  837, 1379, 1379, 1379, 1379,
2907      3216, 3216, 1379, 1379, 1387, 1387, 1387, 1387, 3216, 3216,
2908      1387, 1387, 1397, 1397, 1397, 1397, 3216, 3216, 1397, 1397,
2909       853,  853,  853,  853, 3216,  853, 3216,  853, 1406, 1406,
2910      1406, 1406, 3216, 3216, 1406, 1406, 1412, 1412, 1412, 1412,
2911      3216, 3216, 1412, 1412, 1107, 1107, 1107, 1107, 1107, 1107,
2912
2913      1107, 1107, 1107, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
2914      1632, 1632, 1122, 1122, 1122, 1122, 3216, 3216, 1122, 1122,
2915       684,  684,  684, 3216, 3216, 3216,  684,  692,  692,  692,
2916      3216, 3216, 3216,  692, 1190, 1190, 1190, 1190, 3216, 3216,
2917      1190, 1190, 1219, 1219, 1219, 1219, 3216, 3216, 1219, 1219,
2918      1242, 1242, 1242, 1242, 3216, 3216, 1242, 1242,  753,  753,
2919       753, 3216, 3216, 3216,  753, 1267, 1267, 1267, 1267, 3216,
2920      3216, 1267, 1267,  768,  768,  768, 3216, 3216, 3216,  768,
2921      2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2837,
2922      2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2894, 2894,
2923
2924      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2897, 2897, 2897,
2925      2897, 2897, 2897, 2897, 2897, 2897, 2935, 2935, 2935, 2935,
2926      2935, 2935, 2935, 2935, 2935, 2937, 2937, 2937, 2937, 2937,
2927      2937, 2937, 2937, 2937,  249, 3216, 3216, 3216, 3216, 3216,
2928      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2929      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2930      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2931      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2932      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2933      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2934
2935      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216
2936     } ;
2937
2938 static yyconst flex_int16_t yy_chk[11810] =
2939     {   0,
2940         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2941         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2942         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2943         8,    8,    8,  254,   11,   13,   13,   12,   14,   14,
2944        13,   13,  303,   14,   14,  255,    8,   17,   17,  254,
2945        13,   15,   15,   14,   15,  258,   15,   16,   16,  357,
2946        16,  255,   16,   18,   18, 1503,   15,   19,   19,   19,
2947       522,  258,   16,   20,   20,   20,   23,   23,   23,   24,
2948        24,   24,  522,   19,   25,   25,   25,  357, 1504,   20,
2949       364,   17,   23, 1033,  303,   24,  252,  252,  252, 1033,
2950
2951        25,  253,  253,  253,  257,  257,  257,   18,   21,   21,
2952        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2953        21,   21,   21,  287,   21,   21,   21,   21,   21,   26,
2954        26,   26,   27,   27,   27,   28,   28,   28,  287,   29,
2955        29,   29,   30,   30,   30,   26,  364,  429,   27,  281,
2956       429,   28,  659,   21,   21,   29,  297,  276,   30,   31,
2957        31,   31,  278,  278,  278,  281,  285,  285,  285,  294,
2958       294,  294,  297,  276,  328,   31,  659,   21,   22,   22,
2959        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2960        22,   22,   22, 1505,   22,   22,   22,   22,   22,   32,
2961
2962        32,   32,   33,   33,   33,   34,   34,   34,  268,   35,
2963        35,   35,   36,   36,   36,   32,  276,  356,   33,  453,
2964       715,   34,  453,   22,   22,   35,  328,  356,   36,   37,
2965        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2966        40,   41,   41,   41,  715,   37,  534,   22,   38,  308,
2967       268,   39,  449,  534,   40,  356,  268,   41,   42,   42,
2968        42,  268,  301,  301,  301,  308,  268,  305,  305,  305,
2969       316,  316,  316,  449,   42,   43,   43,   43,   43,   43,
2970        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2971       325,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2972
2973        46,   46,   47,   47,   47,  325,   48,   48,   48,   49,
2974        49,   49,   45,  468,  647,   46,  468,  647,   47,  323,
2975        43,   43,   48,  323,  329,   49,  289,  323,   43,   44,
2976        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2977        44,   44,   44,   44,  319,   44,   44,   44,   44,   44,
2978        50,   50,   50,   51,   51,   51,   52,   52,   52,  454,
2979       319,  624,   55,   55,  548,  289,   50,   55,  290,   51,
2980      1506,  548,   52,  454,   44,   44,  329,   55,  289,  330,
2981       289,  688,   44,   53,   53,   53,   53,   53,   53,   53,
2982        53,   53,   53,   53,   53,   53,   53,   53,  624,   53,
2983
2984        53,   53,   53,   53, 1507,  335,   55,  290,   59,   59,
2985        59,   60,   60,   60,   61,   61,   61,  688,   56,   56,
2986       290,  335,  290,   56,   59,  313,  666,   60,   53,   53,
2987        61,  330,  313,   56,  664, 1508,   53,  377,  664,   53,
2988       666,  313,  327,  327,  327, 1509,   53,   54,   54,   54,
2989        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2990        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2991        62,   63,   63,   63,   64,   64,   64,  670,   65,   65,
2992        65,   66,   66,   66,   62,  347,  369,   63,  359,  377,
2993        64,  670,   54,   54,   65, 1514,  755,   66,  359,  755,
2994
2995        54,  347,  369,   54,  332,  332,  332,  341,  341,  341,
2996        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2997        57,   57,   57,   57,   57,   57,  359,   57,   57,   57,
2998        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2999        73,  718,   74,   74,   74,   75,   75,   75,   69, 1515,
3000       383,   70,  342,  396,   73,  718,   57,   57,   74,  342,
3001       604,   75,  344,  344,  344,   57,  383,   57,  342,  396,
3002       525,   57,  352,  352,  352,  604,   57,   57,   58,   58,
3003        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3004        58,   58,   58,  361,   58,   58,   58,   58,   58,   76,
3005
3006        76,   76,   77,   77,   77,   78,   78,   78,  378,   79,
3007        79,   79,   80,   80,   80,   76,  355, 1522,   77,  525,
3008       407,   78,  361,   58,   58,   79,  355,  361,   80,  366,
3009       366,  366,   58,  355,   58,  361,  407,  361,   58,  376,
3010       376,  376,  390,   58,   58,   67,   67,   67,   67,   67,
3011        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3012       378,   67,   67,   67,   67,   67,   81,   81,   81,   82,
3013        82,   82,   83,   83,   83,  725,   84,   84,   84,   85,
3014        85,   85,   81, 1140, 1524,   82,  638,  721,   83,  725,
3015        67,   67,   84, 1525,  390,   85, 1140,   67,  380,  380,
3016
3017       380,  638,  391,   67,  389,  389,  389,  393,  393,  393,
3018       526,  721,   67,   68,   68,   68,   68,   68,   68,   68,
3019        68,   68,   68,   68,   68,   68,   68,   68,  722,   68,
3020        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
3021        88,   88,   88, 1531,   89,   89,   89,   90,   90,   90,
3022        86, 1532,  722,   87,  391,  727,   88,  402,   68,   68,
3023        89, 1536,  526,   90,  402,   68,  401,  401,  401,  727,
3024      1538,   68,  552,  402,  404,  404,  404,  412,  412,  412,
3025        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
3026        71,   71,   71,   71,   71,   71, 1539,   71,   71,   71,
3027
3028        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
3029        93, 1546,   94,   94,   94,   95,   95,   95,   91,  418,
3030       552,   92,  413, 1547,   93,  625,   71,   71,   94,  413,
3031      1548,   95,  415,  415,  415,  418,  427,   71,  413,  426,
3032       426,  426,  431,  431,  431, 1549,   71,   72,   72,   72,
3033        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
3034        72,   72,  575,   72,   72,   72,   72,   72,   96,   96,
3035        96,   97,   97,   97,   98,   98,   98,  625,   99,   99,
3036        99,  100,  100,  100,   96,  427,  434,   97,  427,  723,
3037        98, 1550,   72,   72,   99,  446, 1551,  100,  101,  101,
3038
3039       101, 1561,  434,   72,  102,  102,  102,  440,  440,  440,
3040       575,  446,   72,  723,  101,  443,  443,  443,  362, 1563,
3041       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3042       103,  103,  103,  103,  103,  103,  724,  103,  103,  103,
3043       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3044       107, 1564,  108,  108,  108,  588,  362,  463,  105, 1430,
3045       724,  106,  441,  455,  107, 1569,  103,  103,  108,  441,
3046       478,  103,  362,  463,  537,  455,  455,  103,  441, 1430,
3047      1571,  103,  457,  457,  457, 1573,  478,  103,  104,  104,
3048       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3049
3050       104,  104,  104,  588,  104,  104,  104,  104,  104,  109,
3051       109,  109,  110,  110,  110,  111,  111,  111,  660,  112,
3052       112,  112,  537,  458, 1574,  109,  537, 1576,  110,  660,
3053       458,  111,  660,  104,  104,  112,  473,  494,  104,  458,
3054       460,  460,  460,  473,  104,  472,  472,  472,  104,  475,
3055       475,  475,  473,  494,  104,  113,  113,  113,  113,  113,
3056       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3057      1577,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3058       116,  116,  117,  117,  117, 1578,  118,  118,  118,  488,
3059       488,  488,  115,  505,  517,  116,  489, 1587,  117, 1593,
3060
3061       113,  113,  118,  489, 1594,  113,  491,  491,  491,  505,
3062       517,  113,  489,  499,  499,  499,  502,  502,  502,  511,
3063       511,  511,  113,  114,  114,  114,  114,  114,  114,  114,
3064       114,  114,  114,  114,  114,  114,  114,  114, 1598,  114,
3065       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3066       121,  121,  121,  760,  122,  122,  122,  760,  500, 1152,
3067       119, 1600,  531,  120,  512,  500,  121, 1612,  114,  114,
3068       122,  512, 1152,  114,  500,  514,  514,  514,  531,  114,
3069       512,  524,  524,  524,  528,  528,  528,  536,  536,  536,
3070       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3071
3072       123,  123,  123,  123,  123,  123, 1613,  123,  123,  123,
3073       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3074       129, 1618,  130,  130,  130,  133,  133,  133,  125,  544,
3075       557,  126, 1621, 1622,  129,  568,  123,  123,  130, 1623,
3076      1625,  133,  541,  541,  541,  544,  557,  123,  550,  550,
3077       550,  568,  123,  124,  124,  124,  124,  124,  124,  124,
3078       124,  124,  124,  124,  124,  124,  124,  124, 1632,  124,
3079       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3080       136,  136,  136, 1635,  137,  137,  137,  138,  138,  138,
3081       134,  580,  593,  135, 1638, 1639,  136,  609,  124,  124,
3082
3083       137, 1641, 1642,  138,  554,  554,  554,  580,  593,  124,
3084       562,  562,  562,  609,  124,  127,  127,  127,  127,  127,
3085       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3086       728,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3087       140,  140,  143,  143,  143, 1643,  144,  144,  144,  147,
3088       147,  147,  139, 1110,  728,  140,  563, 1110,  143, 1644,
3089       127,  127,  144,  563,  619,  147,  565,  565,  565,  573,
3090       573,  573,  563,  577,  577,  577,  127,  586,  586,  586,
3091       619, 1645,  127,  128,  128,  128,  128,  128,  128,  128,
3092       128,  128,  128,  128,  128,  128,  128,  128, 1646,  128,
3093
3094       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3095       152,  152,  152, 1647,  155,  155,  155,  156,  156,  156,
3096       148, 1649, 1650,  151, 1631, 1652,  152,  630,  128,  128,
3097       155, 1654, 1656,  156,  590,  590,  590,  601,  601,  601,
3098       606,  606,  606,  630,  128,  613,  613,  613,  602, 1631,
3099       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3100       131,  131,  131,  131,  131,  131, 1657,  131,  131,  131,
3101       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3102       163,  669,  164,  164,  164,  602,  614, 1659,  159, 1661,
3103       876,  160,  669,  614,  163,  669,  131,  131,  164,  131,
3104
3105       602,  131,  614,  616,  616,  616,  876,  131,  623,  623,
3106       623,  627,  627,  627,  131, 1663, 1664,  131,  132,  132,
3107       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3108       132,  132,  132, 1665,  132,  132,  132,  132,  132,  167,
3109       167,  167,  168,  168,  168,  169,  169,  169,  672,  170,
3110       170,  170,  635,  635,  635,  167, 1666, 1667,  168,  672,
3111       636,  169,  672,  132,  132,  170,  132,  636,  132,  637,
3112       637,  637, 1669, 1678,  132, 1679,  636, 1681,  646,  646,
3113       646,  132, 1685, 1689,  132,  141,  141,  141,  141,  141,
3114       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3115
3116      1692,  141,  141,  141,  141,  141,  171,  171,  171,  172,
3117       172,  172,  173,  173,  173, 1699,  174,  174,  174,  177,
3118       177,  177,  171, 1700, 1701,  172,  665,  674,  173, 1702,
3119       141,  141,  174,  665,  674,  177,  141,  646,  676,  665,
3120       674,  141,  879,  879,  879, 1704,  879, 1707, 1708,  676,
3121      1709, 1712,  676,  141,  142,  142,  142,  142,  142,  142,
3122       142,  142,  142,  142,  142,  142,  142,  142,  142, 1719,
3123       142,  142,  142,  142,  142,  178,  178,  178,  179,  179,
3124       179,  180,  180,  180, 1731,  181,  181,  181,  182,  182,
3125       182,  178, 1732, 1740,  179,  677,  678,  180, 1185,  142,
3126
3127       142,  181,  677,  678,  182,  142,  702,  726,  677,  678,
3128       142, 1185, 1743,  702, 1125, 1125, 1125, 1748,  726,  702,
3129      1752,  726,  142,  145,  145,  145,  145,  145,  145,  145,
3130       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3131       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3132       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3133       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3134       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3135       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3136       145,  145,  145,  145,  145,  145,  145,  149,  149,  149,
3137
3138       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3139       149,  149, 1759,  149,  149,  149,  149,  149,  183,  183,
3140       183,  184,  184,  184,  187,  187,  187, 1760,  188,  188,
3141       188,  189,  189,  189,  183, 1005, 1761,  184, 1762, 1771,
3142       187, 1775,  149,  149,  188, 1005,  149,  189,  891,  891,
3143       891, 1778, 1005,  149, 1780, 1782,  149,  912,  912,  912,
3144       149, 1783,  149,  149,  150,  150,  150,  150,  150,  150,
3145       150,  150,  150,  150,  150,  150,  150,  150,  150, 1785,
3146       150,  150,  150,  150,  150,  190,  190,  190,  191,  191,
3147       191,  192,  192,  192, 1786,  193,  193,  193,  194,  194,
3148
3149       194,  190, 1787, 1790,  191, 1792, 1794,  192, 1799,  150,
3150       150,  193,  891,  150,  194,  924,  924,  924, 1805,  924,
3151       150,  912,  924,  150, 1147, 1147, 1147,  150, 1809,  150,
3152       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3153       153,  153,  153,  153,  153,  153, 1810,  153,  153,  153,
3154       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3155       201, 1811,  202,  202,  202,  686,  686,  686,  197, 1813,
3156      1825,  198, 1821, 1828,  201, 1829,  153,  153,  202,  153,
3157       153,  153,  686, 1830,  932,  932,  932,  153,  932, 1821,
3158       153,  932, 1832, 1833,  153, 1822, 1835,  153,  154,  154,
3159
3160       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3161       154,  154,  154, 1836,  154,  154,  154,  154,  154,  203,
3162       203,  203,  204,  204,  204,  205,  205,  205, 1837,  206,
3163       206,  206,  694,  694,  694,  203, 1839, 1822,  204, 1840,
3164      1831,  205, 1841,  154,  154,  206,  154,  154,  154,  694,
3165      1845,  948,  948,  948,  154,  948, 1831,  154,  948, 1847,
3166      1850,  154, 1823, 1851,  154,  157,  157,  157,  157,  157,
3167       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3168      1852,  157,  157,  157,  157,  157,  207,  207,  207,  208,
3169       208,  208,  211,  211,  211, 1823,  212,  212,  212,  711,
3170
3171       711,  711,  207, 1853, 1855,  208, 1857, 1858,  211, 1860,
3172       157,  157,  212, 1862, 1865,  157,  711, 1446, 1446, 1446,
3173      1866,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3174       158,  158,  158,  158,  158,  158,  158, 1868,  158,  158,
3175       158,  158,  158,  213,  213,  213,  214,  214,  214,  215,
3176       215,  215, 1867,  216,  216,  216,  732,  732,  732,  213,
3177      1867, 1869,  214, 1446, 1870,  215, 1872,  158,  158,  216,
3178      1878, 1879,  158,  732, 1448, 1448, 1448, 1881,  158,  161,
3179       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3180       161,  161,  161,  161, 1884,  161,  161,  161,  161,  161,
3181
3182       217,  217,  217,  218,  218,  218,  221,  221,  221, 1871,
3183       222,  222,  222,  223,  223,  223,  217, 1871, 1880,  218,
3184      1448, 1885,  221, 1900,  161,  161,  222, 1901,  161,  223,
3185       952,  952,  952, 1906, 1880,  161, 1907, 1885,  161,  162,
3186       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3187       162,  162,  162,  162, 1908,  162,  162,  162,  162,  162,
3188       224,  224,  224,  225,  225,  225,  226,  226,  226, 1912,
3189       227,  227,  227,  228,  228,  228,  224, 1886, 1914,  225,
3190      1920, 1927,  226, 1928,  162,  162,  227, 1929,  162,  228,
3191       959,  959,  959, 1886,  952,  162, 1942, 1948,  162,  165,
3192
3193       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3194       165,  165,  165,  165, 1952,  165,  165,  165,  165,  165,
3195       231,  231,  231,  232,  232,  232,  235,  235,  235, 1955,
3196       236,  236,  236,  237,  237,  237,  231, 1957, 1960,  232,
3197      1962, 1964,  235, 1965,  165,  165,  236, 1966,  165,  237,
3198      1451, 1451, 1451, 1969,  959,  165, 1971, 1976,  165, 1454,
3199      1454, 1454, 1464, 1464, 1464,  165,  166,  166,  166,  166,
3200       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
3201       166, 1978,  166,  166,  166,  166,  166,  238,  238,  238,
3202       239,  239,  239,  240,  240,  240, 1986,  241,  241,  241,
3203
3204       242,  242,  242,  238, 1987, 1988,  239, 1989, 1991,  240,
3205       354,  166,  166,  241, 2004,  166,  242,  966,  966,  966,
3206       354,  966,  166, 2005,  966,  166, 1489, 1489, 1489, 1501,
3207      1501, 1501,  166,  175,  175,  175,  175,  175,  175,  175,
3208       175,  175,  175,  175,  175,  175,  175,  175,  354,  175,
3209       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3210      2004, 2003,  354,  739,  739,  739,  354,  973,  973,  973,
3211       245,  973, 2010,  246,  973, 1501,  288, 2011,  175,  175,
3212       739,  744,  744,  744,  175,  353,  288, 2012, 2013,  978,
3213       978,  978, 2003,  978,  360,  353,  978, 2017,  744,  175,
3214
3215       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3216       176,  176,  176,  176,  176,  288,  176,  176,  176,  176,
3217       176,  288,  360,  353,  756,  756,  756, 2019,  288,  353,
3218      2020, 2021,  288,  353, 2026,  764,  764,  764,  360,  353,
3219       353,  756,  765,  765,  765,  176,  176,  771,  771,  771,
3220      2002,  176,  764,  990,  990,  990, 2002,  990, 2033,  765,
3221       990, 1502, 1502, 1502,  771, 2035,  176,  185,  185,  185,
3222       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3223       185,  185, 2036,  185,  185,  185,  185,  185,  773,  773,
3224       773,  785,  785,  785,  786,  786,  786,  798,  798,  798,
3225
3226       806,  806,  806, 2039, 2042,  773, 2046, 1502,  785, 2047,
3227      2048,  786,  185,  185,  798, 2049, 2050,  806,  185, 2051,
3228      2052,  185,  999,  999,  999, 2053,  999, 2054, 2055,  999,
3229      1589, 1589, 1589,  185,  186,  186,  186,  186,  186,  186,
3230       186,  186,  186,  186,  186,  186,  186,  186,  186, 2060,
3231       186,  186,  186,  186,  186,  811,  811,  811,  817,  817,
3232       817,  839,  839,  839,  867,  867,  867,  871,  871,  871,
3233      2061, 2062,  811, 2063, 2081,  817, 1589, 2082,  839,  186,
3234       186,  867, 2085, 2086,  871,  186, 2083, 2084,  186, 1001,
3235      1001, 1001, 2088, 1001, 2083, 2084, 1001, 1648, 1648, 1648,
3236
3237       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3238       195,  195,  195,  195,  195,  195, 2092,  195,  195,  195,
3239       195,  195,  889,  889,  889,  890,  890,  890, 2098, 2099,
3240       920,  920,  920,  921,  921,  921,  923,  923,  923, 2100,
3241       889, 2114, 2118,  890, 2119, 2120,  195,  195,  920, 2122,
3242      2126,  921,  195,  923, 1651, 1651, 1651,  195,  196,  196,
3243       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3244       196,  196,  196, 2129,  196,  196,  196,  196,  196,  927,
3245       927,  927, 2130,  890,  928,  928,  928, 2133,  931,  931,
3246       931, 2134, 2137,  921,  933,  933,  933,  927, 1653, 1653,
3247
3248      1653, 2144,  928,  196,  196,  931, 1007, 1007, 1007,  196,
3249      1007,  933, 2146, 1007,  196,  199,  199,  199,  199,  199,
3250       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3251      2161,  199,  199,  199,  199,  199,  935,  935,  935,  939,
3252       939,  939, 2175, 2176,  945,  945,  945, 2179,  928, 2186,
3253       940,  940,  940,  935,  946,  946,  946,  939, 2187, 2131,
3254       199,  199,  945,  947,  947,  947,  199, 2131,  940, 1010,
3255      1010, 1010,  946, 1010, 2192, 2166, 1010, 1655, 1655, 1655,
3256       947,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3257       200,  200,  200,  200,  200,  200,  200,  940,  200,  200,
3258
3259       200,  200,  200,  950,  950,  950,  951,  951,  951,  965,
3260       965,  965,  969,  969,  969,  972,  972,  972,  946, 2194,
3261      2206,  950, 2166, 2132,  951, 2207,  965,  200,  200, 2208,
3262       969, 2132,  972,  200, 1022, 1022, 1022, 2209, 1022, 2210,
3263      2211, 1022, 2212,  951, 1658, 1658, 1658, 2165,  200,  209,
3264       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3265       209,  209,  209,  209, 2213,  209,  209,  209,  209,  209,
3266      2214,  970,  970,  970,  975,  975,  975, 2215,  976,  976,
3267       976,  977,  977,  977,  980,  980,  980, 1694, 2222,  970,
3268      2165, 2223,  975, 1694,  209,  209,  976, 1694,  977, 2224,
3269
3270       209, 1694,  980,  209, 1024, 1024, 1024, 2226, 1024, 2236,
3271      2237, 1024, 1660, 1660, 1660,  209,  210,  210,  210,  210,
3272       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3273       210, 2238,  210,  210,  210,  210,  210,  970,  984,  984,
3274       984,  989,  989,  989,  976,  981,  981,  981,  985,  985,
3275       985,  993,  993,  993, 1695, 2239,  984, 2240,  989, 2241,
3276      1695,  210,  210,  981, 1695, 2242,  985,  210, 1695,  993,
3277       210, 1036, 1036, 1036, 2245, 1036, 1660, 2246, 1036, 1662,
3278      1662, 1662,  210,  219,  219,  219,  219,  219,  219,  219,
3279       219,  219,  219,  219,  219,  219,  219,  219, 2251,  219,
3280
3281       219,  219,  219,  219, 2252, 2258,  981,  998,  998,  998,
3282      1000, 1000, 1000,  985,  994,  994,  994, 1002, 1002, 1002,
3283      2259, 1003, 1003, 1003,  998, 1662, 2260, 1000,  219,  219,
3284      2261, 2275,  994, 2276, 2277, 1002,  219, 2278,  219, 1003,
3285      2280,  219, 1668, 1668, 1668,  219, 1670, 1670, 1670,  219,
3286       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3287       220,  220,  220,  220,  220, 2282,  220,  220,  220,  220,
3288       220, 1006, 1006, 1006, 2299,  994, 1009, 1009, 1009, 1019,
3289      1019, 1019, 1003, 1011, 1011, 1011, 2305, 2306, 1006, 1020,
3290      1020, 1020, 1670, 1009, 2311,  220,  220, 1019, 2312, 2313,
3291
3292      1011, 2316, 2319,  220, 2320,  220, 2299, 1020,  220, 1691,
3293      1691, 1691,  220, 1703, 1703, 1703,  220,  229,  229,  229,
3294       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3295       229,  229, 2321,  229,  229,  229,  229,  229, 1021, 1021,
3296      1021, 1023, 1023, 1023, 1025, 1025, 1025, 1020, 1705, 1705,
3297      1705, 1026, 1026, 1026, 2322, 1021, 2323, 2324, 1023, 2325,
3298      2326, 1025,  229,  229, 1027, 1027, 1027, 2327, 1026, 1044,
3299      1044, 1044, 2328, 1044, 2329, 2331, 1044, 2300, 1049, 1049,
3300      1049, 1027, 1049, 2332, 2334, 1049,  229,  230,  230,  230,
3301       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3302
3303       230,  230, 1026,  230,  230,  230,  230,  230, 1035, 1035,
3304      1035, 1030, 1030, 1030, 2300, 2333, 1027, 1028, 1028, 1028,
3305      2335, 1037, 1037, 1037, 2333, 1035, 1029, 1029, 1029, 1030,
3306      2336, 2337,  230,  230, 1028, 1031, 1031, 1031, 1037, 2338,
3307      1055, 1055, 1055, 1029, 1055, 2339, 2340, 1055, 1075, 1075,
3308      1075, 2341, 1075, 1031, 2339, 1075,  230,  233,  233,  233,
3309       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3310       233,  233, 1028,  233,  233,  233,  233,  233, 1029, 1040,
3311      1040, 1040, 1031, 1043, 1043, 1043, 1041, 1041, 1041, 1045,
3312      1045, 1045, 1046, 1046, 1046, 2342, 2344, 1040, 2345, 2347,
3313
3314      1043, 2352,  233,  233, 1041, 2353, 2354, 1045, 2356, 2361,
3315      1046, 2362, 2365,  233,  234,  234,  234,  234,  234,  234,
3316       234,  234,  234,  234,  234,  234,  234,  234,  234, 2371,
3317       234,  234,  234,  234,  234, 2372, 2374, 1041, 1048, 1048,
3318      1048, 2383, 2385, 1051, 1051, 1051, 1052, 1052, 1052, 1054,
3319      1054, 1054, 2388, 1046, 2390, 1048, 1706, 1706, 1706,  234,
3320       234, 1051, 2414, 2410, 1052, 2415, 1054, 1710, 1710, 1710,
3321       234,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3322       243,  243,  243,  243,  243,  243, 2409,  243,  243,  243,
3323       243,  243, 2417, 1052, 1059, 1059, 1059, 1061, 1061, 1061,
3324
3325      2410, 1060, 1060, 1060, 1062, 1062, 1062, 1063, 1063, 1063,
3326      2418, 2419, 1059, 2424, 1061, 2425,  243,  243, 2426, 1060,
3327      1706, 1062, 2411, 2427, 1063, 2428, 2409,  243, 1099, 1099,
3328      1099, 1710, 1099, 2429, 2430, 1099, 1742, 1742, 1742, 2431,
3329       243,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3330       244,  244,  244,  244,  244,  244, 1060,  244,  244,  244,
3331       244,  244, 1064, 1064, 1064, 2411, 1063, 1067, 1067, 1067,
3332      1065, 1065, 1065, 1068, 1068, 1068, 1069, 1069, 1069, 2422,
3333      1064, 1070, 1070, 1070, 1067, 2432,  244,  244, 1065, 2422,
3334      1068, 2433, 2422, 1069, 1071, 1071, 1071,  244, 1070, 1072,
3335
3336      1072, 1072, 1074, 1074, 1074, 2434, 1076, 1076, 1076, 2436,
3337       244,  286, 1071, 2437, 1077, 1077, 1077, 1072,  286, 1074,
3338      1078, 1078, 1078, 1068, 1076, 2438, 2439,  286,  286, 2440,
3339      2441, 1065, 1077, 1079, 1079, 1079, 1072, 1078, 1068, 2442,
3340      1070, 1080, 1080, 1080, 2443, 2444, 1081, 1081, 1081, 2445,
3341      1079, 1082, 1082, 1082, 2446,  286,  286,  286, 2447, 1080,
3342      2448, 2449,  286,  286, 1081, 2450,  286,  286, 1082, 1077,
3343       286, 2451,  286,  286,  286, 1083, 1083, 1083, 1084, 1084,
3344      1084, 1085, 1085, 1085, 1086, 1086, 1086, 1092, 1092, 1092,
3345      2423, 2453, 1083, 2457, 2464, 1084, 1093, 1093, 1093, 1085,
3346
3347      2423, 2465, 1086, 2423, 2469, 1092, 1096, 1096, 1096, 1097,
3348      1097, 1097, 2472, 2510, 1093, 2513, 2515, 1081, 1098, 1098,
3349      1098, 1100, 1100, 1100, 1096, 1083, 2511, 1097, 1101, 1101,
3350      1101, 1102, 1102, 1102, 2516, 1098, 1105, 1105, 1105, 1100,
3351      1083, 2517, 2510, 1103, 1103, 1103, 1101, 1103, 1102, 2520,
3352      1103, 1106, 1106, 1106, 1105, 1086, 1121, 1121, 1121, 2521,
3353      1093, 1122, 1122, 1122, 1124, 1124, 1124, 2512, 2511, 1106,
3354      1154, 1154, 1154, 1097, 1121, 1155, 1155, 1155, 2495, 1122,
3355      2523, 2524, 1124, 1156, 1156, 1156, 2526, 1154, 2495, 1101,
3356      1158, 1158, 1158, 1155, 2495, 1159, 1159, 1159, 1160, 1160,
3357
3358      1160, 1156, 1160, 2527, 2528, 1160, 2529, 2530, 1158, 2512,
3359      2532, 1124, 1159, 2533, 2534, 1106, 1163, 1163, 1163, 1165,
3360      1165, 1165, 1166, 1166, 1166, 1168, 1168, 1168, 1170, 1170,
3361      1170, 2535, 1170, 1163, 2538, 1170, 2539, 1165, 2540, 1158,
3362      1166, 2541, 2522, 1168, 1173, 1173, 1173, 1174, 1174, 1174,
3363      2496, 1174, 2525, 2542, 1174, 2522, 1175, 1175, 1175, 2543,
3364      2496, 1173, 1176, 1176, 1176, 2525, 2496, 1177, 1177, 1177,
3365      2544, 1177, 1168, 1175, 1177, 2545, 2546, 1163, 2547, 1176,
3366      1179, 1179, 1179, 1181, 1181, 1181, 1182, 1182, 1182, 1184,
3367      1184, 1184, 1187, 1187, 1187, 2548, 2549, 1179, 1189, 1189,
3368
3369      1189, 1181, 2550, 2551, 1182, 2552, 2554, 1184, 2564, 1187,
3370      1190, 1190, 1190, 1192, 1192, 1192, 1189, 1193, 1193, 1193,
3371      2565, 1193, 2566, 2570, 1193, 1197, 1197, 1197, 1190, 2588,
3372      2589, 1192, 1198, 1198, 1198, 1200, 1200, 1200, 1213, 1213,
3373      1213, 2590, 1213, 1197, 2591, 1213, 1217, 1217, 1217, 1184,
3374      1198, 2592, 2593, 1200, 1218, 1218, 1218, 1219, 1219, 1219,
3375      1192, 2603, 2605, 1217, 1221, 1221, 1221, 1223, 1223, 1223,
3376      2608, 1223, 1218, 2602, 1223, 1219, 1227, 1227, 1227, 1228,
3377      1228, 1228, 1221, 1230, 1230, 1230, 1231, 1231, 1231, 2609,
3378      1231, 2613, 2614, 1231, 1227, 2615, 2603, 1228, 1234, 1234,
3379
3380      1234, 1230, 1235, 1235, 1235, 1236, 1236, 1236, 1238, 1238,
3381      1238, 1239, 1239, 1239, 2597, 1234, 2616, 1240, 1240, 1240,
3382      1235, 2602, 2617, 1236, 2618, 1221, 1238, 2597, 1239, 1241,
3383      1241, 1241, 2619, 2598, 1240, 1242, 1242, 1242, 1244, 1244,
3384      1244, 1247, 1247, 1247, 1230, 1240, 2598, 1241, 1248, 1248,
3385      1248, 2620, 1248, 1242, 2622, 1248, 1244, 2623, 1247, 1253,
3386      1253, 1253, 1254, 1254, 1254, 1256, 1256, 1256, 1259, 1259,
3387      1259, 2624, 1260, 1260, 1260, 1238, 1260, 1253, 2625, 1260,
3388      1254, 2626, 2627, 1256, 2628, 1259, 1263, 1263, 1263, 2629,
3389      1263, 2631, 2632, 1263, 1266, 1266, 1266, 1267, 1267, 1267,
3390
3391      1269, 1269, 1269, 2633, 1244, 2634, 1274, 1274, 1274, 2635,
3392      1274, 2636, 1266, 1274, 2637, 1267, 2638, 2639, 1269, 1277,
3393      1277, 1277, 1278, 1278, 1278, 2640, 1278, 2641, 2642, 1278,
3394      1256, 1281, 1281, 1281, 2643, 2644, 1277, 1282, 1282, 1282,
3395      2645, 1282, 2651, 2655, 1282, 1290, 1290, 1290, 1281, 1291,
3396      1291, 1291, 1293, 1293, 1293, 1294, 1294, 1294, 2656, 1294,
3397      2657, 2658, 1294, 1290, 2670, 1269, 2671, 1291, 2675, 2676,
3398      1293, 1297, 1297, 1297, 2670, 1297, 2671, 2673, 1297, 1300,
3399      1300, 1300, 1301, 1301, 1301, 2677, 1301, 2673, 2678, 1301,
3400      1306, 1306, 1306, 1307, 1307, 1307, 1300, 1309, 1309, 1309,
3401
3402      1314, 1314, 1314, 2679, 1314, 2680, 2683, 1314, 1306, 2684,
3403      2685, 1307, 1317, 1317, 1317, 1309, 1318, 1318, 1318, 1293,
3404      1318, 2686, 2695, 1318, 1321, 1321, 1321, 2696, 2697, 1317,
3405      1322, 1322, 1322, 1324, 1324, 1324, 1326, 1326, 1326, 2674,
3406      1326, 2687, 1321, 1326, 2698, 1309, 2699, 2700, 1322, 2674,
3407      2701, 1324, 1329, 1329, 1329, 1330, 1330, 1330, 1332, 1332,
3408      1332, 1334, 1334, 1334, 2702, 1334, 2705, 2706, 1334, 2708,
3409      1329, 2709, 2710, 1330, 2712, 2687, 1332, 1338, 1338, 1338,
3410      1339, 1339, 1339, 2714, 1324, 1341, 1341, 1341, 2715, 1343,
3411      1343, 1343, 2716, 1343, 2719, 1338, 1343, 2720, 1339, 1349,
3412
3413      1349, 1349, 2721, 1341, 1350, 1350, 1350, 2722, 1352, 1352,
3414      1352, 1353, 1353, 1353, 1354, 1354, 1354, 1349, 1354, 2723,
3415      2726, 1354, 1350, 2727, 2734, 1332, 1352, 2735, 1353, 1355,
3416      1355, 1355, 2736, 2738, 1341, 1356, 1356, 1356, 2744, 1356,
3417      2745, 2746, 1356, 1358, 1358, 1358, 1355, 1359, 1359, 1359,
3418      2747, 1361, 1361, 1361, 1363, 1363, 1363, 2748, 1367, 1367,
3419      1367, 1358, 1834, 1834, 1834, 1359, 2749, 2750, 1352, 1361,
3420      2751, 1363, 1364, 1364, 1364, 1367, 1364, 2752, 2753, 1364,
3421      1368, 1368, 1368, 2755, 1368, 2756, 2761, 1368, 1370, 1370,
3422      1370, 1371, 1371, 1371, 1373, 1373, 1373, 1375, 1375, 1375,
3423
3424      2762, 1375, 2763, 2764, 1375, 2774, 1370, 2775, 2765, 1371,
3425      2776, 2777, 1373, 1378, 1378, 1378, 2778, 2779, 1361, 1379,
3426      1379, 1379, 1381, 1381, 1381, 1382, 1382, 1382, 1383, 1383,
3427      1383, 1378, 1383, 2780, 2781, 1383, 2785, 1379, 2786, 2787,
3428      1381, 2788, 1382, 1384, 1384, 1384, 1385, 1385, 1385, 2789,
3429      1385, 2765, 2790, 1385, 1386, 1386, 1386, 2792, 1373, 2793,
3430      1384, 1387, 1387, 1387, 2795, 1389, 1389, 1389, 1390, 1390,
3431      1390, 2796, 1386, 1391, 1391, 1391, 2797, 1391, 2798, 1387,
3432      1391, 2800, 1381, 1389, 2801, 1390, 1394, 1394, 1394, 1395,
3433      1395, 1395, 2805, 1395, 2806, 2807, 1395, 1396, 1396, 1396,
3434
3435      1397, 1397, 1397, 1394, 1399, 1399, 1399, 1401, 1401, 1401,
3436      1405, 1405, 1405, 2810, 2815, 1396, 2816, 2817, 1397, 1406,
3437      1406, 1406, 1399, 2818, 1401, 2819, 2820, 1389, 1405, 1408,
3438      1408, 1408, 1411, 1411, 1411, 2821, 2822, 1406, 1412, 1412,
3439      1412, 1414, 1414, 1414, 1415, 1415, 1415, 1408, 1415, 2823,
3440      1411, 1415, 1418, 1418, 1418, 2824, 1412, 2825, 2826, 1414,
3441      1419, 1419, 1419, 1421, 1421, 1421, 1399, 1422, 1422, 1422,
3442      1418, 1422, 2828, 2829, 1422, 1426, 1426, 1426, 1419, 2830,
3443      2831, 1421, 1427, 1427, 1427, 1429, 1429, 1429, 2834, 2838,
3444      1408, 2841, 2842, 1426, 1414, 1431, 1431, 1431, 2845, 2832,
3445
3446      1427, 2847, 2834, 1429, 1438, 1438, 1438, 1467, 1467, 1467,
3447      1469, 1469, 1469, 1431, 1431, 2848, 1470, 1470, 1470, 1496,
3448      1496, 1496, 1438, 1421, 1467, 1468, 1468, 1468, 1469, 1468,
3449      2850, 2851, 1468, 1470, 1471, 1471, 1471, 1496, 1471, 2835,
3450      2854, 1471, 1474, 1474, 1474, 2832, 1429, 1476, 1476, 1476,
3451      2835, 1476, 2855, 2856, 1476, 1479, 1479, 1479, 2857, 2858,
3452      1474, 2859, 1480, 1480, 1480, 2860, 1480, 2861, 1469, 1480,
3453      1438, 2862, 1479, 1481, 1481, 1481, 2863, 1481, 2864, 2868,
3454      1481, 1485, 1485, 1485, 2866, 1486, 1486, 1486, 2876, 1486,
3455      2878, 1474, 1486, 1488, 1488, 1488, 2866, 2880, 1485, 1491,
3456
3457      1491, 1491, 1492, 1492, 1492, 2882, 1492, 2890, 2892, 1492,
3458      2896, 1488, 1493, 1493, 1493, 2893, 1491, 1494, 1494, 1494,
3459      1510, 1510, 1510, 1511, 1511, 1511, 1512, 1512, 1512, 1493,
3460      1512, 2895, 2895, 1512, 2898, 1494, 2900, 1510, 2901, 2902,
3461      1511, 2903, 2910, 1488, 1513, 1513, 1513, 1516, 1516, 1516,
3462      1517, 1517, 1517, 1518, 1518, 1518, 2893, 1518, 2914, 2920,
3463      1518, 2909, 1513, 2894, 2922, 1516, 1494, 1517, 1519, 1519,
3464      1519, 1520, 1520, 1520, 1521, 1521, 1521, 2894, 1521, 2909,
3465      2925, 1521, 1523, 1523, 1523, 2867, 1519, 2927, 1520, 1526,
3466      1526, 1526, 1527, 1527, 1527, 2873, 1527, 2867, 2874, 1527,
3467
3468      1523, 1528, 1528, 1528, 2932, 2933, 1526, 2873, 1513, 2935,
3469      2874, 1516, 1529, 1529, 1529, 1530, 1530, 1530, 1528, 1533,
3470      1533, 1533, 2936, 1534, 1534, 1534, 2937, 1534, 1519, 1529,
3471      1534, 2939, 2940, 1530, 2919, 2913, 1533, 1535, 1535, 1535,
3472      1537, 1537, 1537, 1523, 1540, 1540, 1540, 1541, 1541, 1541,
3473      2913, 1541, 2941, 2919, 1541, 1535, 2897, 1537, 1529, 2942,
3474      2921, 1540, 1542, 1542, 1542, 2944, 1542, 2897, 2945, 1542,
3475      1545, 1545, 1545, 1552, 1552, 1552, 1553, 1553, 1553, 2921,
3476      1553, 1530, 2947, 1553, 1556, 1556, 1556, 1545, 1557, 1557,
3477      1557, 1552, 1558, 1558, 1558, 1559, 1559, 1559, 1560, 1560,
3478
3479      1560, 1556, 2924, 1535, 2948, 1557, 1562, 1562, 1562, 1558,
3480      2955, 2956, 1559, 1565, 1565, 1565, 1560, 1565, 2926, 2957,
3481      1565, 2924, 2958, 1562, 1568, 1568, 1568, 1570, 1570, 1570,
3482      1572, 1572, 1572, 1575, 1575, 1575, 2959, 2926, 1552, 1558,
3483      2960, 1568, 1579, 1579, 1579, 1570, 2963, 2964, 1572, 2965,
3484      2966, 1575, 2967, 1560, 1580, 1580, 1580, 2968, 1557, 1579,
3485      1581, 1581, 1581, 2969, 1581, 1559, 2970, 1581, 2972, 1584,
3486      1584, 1584, 1580, 1584, 2974, 2976, 1584, 1588, 1588, 1588,
3487      1590, 1590, 1590, 2977, 1590, 2979, 2990, 1590, 1579, 2991,
3488      1575, 1570, 1599, 1599, 1599, 1588, 1572, 1595, 1595, 1595,
3489
3490      2992, 1595, 2993, 2988, 1595, 1601, 1601, 1601, 2994, 2995,
3491      1599, 1580, 1602, 1602, 1602, 2988, 1602, 2999, 3000, 1602,
3492      1605, 1605, 1605, 1601, 1605, 2989, 3001, 1605, 1608, 1608,
3493      1608, 1609, 1609, 1609, 3002, 1609, 3003, 2989, 1609, 3004,
3494      1614, 1614, 1614, 1588, 1614, 3005, 1608, 1614, 1617, 1617,
3495      1617, 3006, 3009, 1599, 1619, 1619, 1619, 1620, 1620, 1620,
3496      3010, 1620, 1601, 3011, 1620, 3012, 1617, 1624, 1624, 1624,
3497      3013, 1619, 1626, 1626, 1626, 1608, 1627, 1627, 1627, 1628,
3498      1628, 1628, 1629, 1629, 1629, 1624, 1630, 1630, 1630, 1626,
3499      1633, 1633, 1633, 3014, 1627, 1617, 3015, 1628, 3016, 1629,
3500
3501      1640, 1640, 1640, 3007, 1630, 1671, 1671, 1671, 1633, 1671,
3502      3017, 3018, 1671, 1696, 1696, 1696, 1624, 3019, 1640, 1674,
3503      1674, 1674, 1675, 1675, 1675, 3020, 1675, 3021, 3007, 1675,
3504      1696, 1628, 1680, 1680, 1680, 3022, 3023, 1674, 1682, 1682,
3505      1682, 1633, 1682, 1627, 3024, 1682, 3025, 3026, 1630, 3027,
3506      1680, 3028, 1640, 1686, 1686, 1686, 3034, 1686, 1633, 3031,
3507      1686, 1690, 1690, 1690, 1693, 1693, 1693, 3035, 1693, 3036,
3508      3037, 1693, 3038, 1697, 1697, 1697, 3039, 1697, 3031, 1690,
3509      1697, 3040, 3041, 1680, 3042, 3043, 1674, 1698, 1698, 1698,
3510      1711, 1711, 1711, 1713, 1713, 1713, 1714, 1714, 1714, 3044,
3511
3512      1714, 3045, 3046, 1714, 3047, 1698, 3048, 1715, 1715, 1715,
3513      1713, 1715, 3049, 3050, 1715, 1718, 1718, 1718, 1720, 1720,
3514      1720, 3051, 1690, 1721, 1721, 1721, 3053, 1722, 1722, 1722,
3515      3052, 1722, 3054, 1718, 1722, 1720, 3055, 3056, 1698, 3057,
3516      3058, 1721, 1725, 1725, 1725, 1726, 1726, 1726, 3059, 1726,
3517      3052, 3060, 1726, 3061, 1711, 1729, 1729, 1729, 3062, 3063,
3518      1725, 3064, 1718, 1730, 1730, 1730, 3065, 1733, 1733, 1733,
3519      1721, 1733, 1729, 3066, 1733, 1736, 1736, 1736, 1737, 1737,
3520      1737, 1730, 1737, 3067, 3068, 1737, 1738, 1738, 1738, 1739,
3521      1739, 1739, 1736, 1739, 3069, 3070, 1739, 1741, 1741, 1741,
3522
3523      1744, 1744, 1744, 1738, 1744, 3074, 3075, 1744, 1725, 3076,
3524      1747, 1747, 1747, 3077, 3078, 1741, 1749, 1749, 1749, 1750,
3525      1750, 1750, 3079, 1750, 3081, 3082, 1750, 1730, 1747, 1751,
3526      1751, 1751, 3084, 1749, 1753, 1753, 1753, 3085, 1753, 3071,
3527      3087, 1753, 1756, 1756, 1756, 3071, 1751, 1757, 1757, 1757,
3528      3088, 1757, 3091, 3092, 1757, 3093, 1747, 3094, 3096, 1756,
3529      1758, 1758, 1758, 1763, 1763, 1763, 1764, 1764, 1764, 1765,
3530      1765, 1765, 1766, 1766, 1766, 3098, 1766, 1758, 3100, 1766,
3531      1763, 1767, 1767, 1767, 1764, 3102, 1765, 1768, 1768, 1768,
3532      1769, 1769, 1769, 1770, 1770, 1770, 3104, 3105, 1767, 1772,
3533
3534      1772, 1772, 3106, 3107, 1768, 3108, 3109, 1769, 1773, 1773,
3535      1773, 1770, 1773, 3110, 3090, 1773, 1772, 1774, 1774, 1774,
3536      1776, 1776, 1776, 1777, 1777, 1777, 3111, 1777, 3090, 3113,
3537      1777, 3115, 1764, 3117, 1774, 3118, 3119, 1776, 1779, 1779,
3538      1779, 1781, 1781, 1781, 3120, 1768, 1784, 1784, 1784, 1788,
3539      1788, 1788, 3121, 1770, 3133, 3122, 1779, 3179, 3143, 1781,
3540      1500, 1789, 1789, 1789, 1784, 1789, 1788, 1499, 1789, 1791,
3541      1791, 1791, 1793, 1793, 1793, 3134, 1795, 1795, 1795, 1796,
3542      1796, 1796, 1797, 1797, 1797, 3135, 3179, 1791, 3121, 3135,
3543      1793, 3122, 1781, 1795, 1784, 3143, 1796, 3129, 3133, 1797,
3544
3545      1798, 1798, 1798, 1800, 1800, 1800, 1801, 1801, 1801, 1802,
3546      1802, 1802, 1803, 1803, 1803, 1804, 1804, 1804, 1798, 3134,
3547      3137, 1800, 3145, 1793, 1801, 3144, 1802, 3130, 3137, 1803,
3548      1806, 1806, 1806, 1804, 1806, 3131, 3132, 1806, 1812, 1812,
3549      1812, 1814, 1814, 1814, 3136, 3129, 1797, 3138, 3136, 1800,
3550      1815, 1815, 1815, 1498, 1815, 3138, 1812, 1815, 1814, 1816,
3551      1816, 1816, 3144, 3145, 1817, 1817, 1817, 1798, 1818, 1818,
3552      1818, 1801, 1819, 1819, 1819, 3130, 1819, 1816, 1495, 1819,
3553      1804, 1490, 1817, 3131, 3132, 1818, 1820, 1820, 1820, 1812,
3554      1826, 1826, 1826, 1827, 1827, 1827, 1838, 1838, 1838, 1842,
3555
3556      1842, 1842, 1487, 1484, 1820, 1475, 3141, 1826, 1843, 1843,
3557      1843, 1827, 1844, 1844, 1844, 1846, 1846, 1846, 1816, 1817,
3558      1848, 1848, 1848, 1849, 1849, 1849, 1854, 1854, 1854, 1856,
3559      1856, 1856, 1859, 1859, 1859, 1861, 1861, 1861, 1863, 1863,
3560      1863, 1864, 1864, 1864, 1873, 1873, 1873, 1856, 1873, 3139,
3561      1859, 1873, 1861, 3141, 1827, 3146, 1863, 3139, 1864, 1876,
3562      1876, 1876, 1473, 1877, 1877, 1877, 1882, 1882, 1882, 1883,
3563      1883, 1883, 1887, 1887, 1887, 3142, 3140, 1876, 3155, 1856,
3564      1877, 1888, 1888, 1888, 3140, 1888, 1472, 3155, 1888, 1887,
3565      1891, 1891, 1891, 1892, 1892, 1892, 3146, 1863, 1893, 1893,
3566
3567      1893, 1466, 1894, 1894, 1894, 1876, 1894, 3147, 1891, 1894,
3568      1892, 1895, 1895, 1895, 3149, 1893, 1896, 1896, 1896, 1897,
3569      1897, 1897, 3142, 1898, 1898, 1898, 3156, 1898, 3151, 1895,
3570      1898, 1899, 1899, 1899, 1896, 3156, 1897, 1902, 1902, 1902,
3571      3152, 1902, 3147, 1891, 1902, 1465, 1905, 1905, 1905, 1899,
3572      1905, 3148, 1463, 1905, 1909, 1909, 1909, 1911, 1911, 1911,
3573      3149, 1913, 1913, 1913, 1895, 3151, 1915, 1915, 1915, 3157,
3574      1915, 3150, 1909, 1915, 1918, 1918, 1918, 3152, 1899, 1913,
3575      1919, 1919, 1919, 1462, 1919, 3158, 3148, 1919, 1921, 1921,
3576      1921, 1918, 1921, 3153, 3154, 1921, 1924, 1924, 1924, 1925,
3577
3578      1925, 1925, 3159, 1925, 3157, 3171, 1925, 1926, 1926, 1926,
3579      1930, 1930, 1930, 1924, 1931, 1931, 1931, 3150, 1931, 1913,
3580      3158, 1931, 3161, 3162, 1926, 3153, 3154, 1930, 1932, 1932,
3581      1932, 1933, 1933, 1933, 3189, 1933, 3159, 3165, 1933, 1936,
3582      1936, 1936, 3171, 1937, 1937, 1937, 1932, 1937, 3160, 1461,
3583      1937, 1938, 1938, 1938, 3169, 1460, 1936, 1939, 1939, 1939,
3584      1940, 1940, 1940, 3169, 1940, 3161, 3162, 1940, 1938, 1941,
3585      1941, 1941, 3165, 3163, 1939, 3164, 1943, 1943, 1943, 1932,
3586      1943, 3189, 3160, 1943, 1946, 1946, 1946, 1941, 1947, 1947,
3587      1947, 3166, 1947, 3170, 1459, 1947, 1949, 1949, 1949, 3195,
3588
3589      1949, 1946, 3170, 1949, 1953, 1953, 1953, 1956, 1956, 1956,
3590      1958, 1958, 1958, 1959, 1959, 1959, 1961, 1961, 1961, 3163,
3591      1941, 3164, 1953, 3167, 3172, 1956, 3166, 1958, 1963, 1963,
3592      1963, 1959, 1963, 1961, 3195, 1963, 1967, 1967, 1967, 1970,
3593      1970, 1970, 1972, 1972, 1972, 1973, 1973, 1973, 1458, 1973,
3594      3175, 3181, 1973, 3173, 1967, 3176, 3167, 1970, 3174, 1972,
3595      3181, 3172, 1961, 1974, 1974, 1974, 1975, 1975, 1975, 1457,
3596      1975, 1956, 1456, 1975, 1959, 1977, 1977, 1977, 3168, 3183,
3597      1974, 1979, 1979, 1979, 1980, 1980, 1980, 1981, 1981, 1981,
3598      1982, 1982, 1982, 1977, 1982, 3173, 3175, 1982, 3177, 1979,
3599
3600      3174, 3176, 1980, 3180, 1981, 1983, 1983, 1983, 1984, 1984,
3601      1984, 3168, 1984, 3183, 3178, 1984, 1985, 1985, 1985, 1990,
3602      1990, 1990, 1983, 3185, 1992, 1992, 1992, 3182, 1992, 3190,
3603      1979, 1992, 3180, 3184, 1985, 3177, 3182, 1990, 1995, 1995,
3604      1995, 1977, 1996, 1996, 1996, 3191, 1997, 1997, 1997, 1980,
3605      1997, 3178, 1455, 1997, 1453, 1452, 1995, 2000, 2000, 2000,
3606      1996, 2006, 2006, 2006, 2007, 2007, 2007, 3184, 2007, 3185,
3607      3203, 2007, 2008, 2008, 2008, 2000, 3190, 1450, 2006, 3203,
3608      3187, 1985, 3191, 3212, 1990, 2009, 2009, 2009, 3187, 1995,
3609      2008, 2014, 2014, 2014, 3212, 1996, 2015, 2015, 2015, 2016,
3610
3611      2016, 2016, 2018, 2018, 2018, 2022, 2022, 2022, 2023, 2023,
3612      2023, 2024, 2024, 2024, 2025, 2025, 2025, 2027, 2027, 2027,
3613      2028, 2028, 2028, 2029, 2029, 2029, 2030, 2030, 2030, 2031,
3614      2031, 2031, 2032, 2032, 2032, 3186, 2008, 2034, 2034, 2034,
3615      2037, 2037, 2037, 3204, 2040, 2040, 2040, 2041, 2041, 2041,
3616      3192, 2041, 3204, 1449, 2041, 2034, 1447, 3196, 2037, 3211,
3617      2025, 2040, 2043, 2043, 2043, 2044, 2044, 2044, 2045, 2045,
3618      2045, 3188, 2045, 3211, 3193, 2045, 2056, 2056, 2056, 3188,
3619      2043, 3186, 2044, 2057, 2057, 2057, 3197, 3192, 2034, 2058,
3620      2058, 2058, 3196, 2058, 2056, 1445, 2058, 2059, 2059, 2059,
3621
3622      2057, 2064, 2064, 2064, 2065, 2065, 2065, 2066, 2066, 2066,
3623      2067, 2067, 2067, 1444, 2067, 3193, 3207, 2067, 2068, 2068,
3624      2068, 2069, 2069, 2069, 2066, 2056, 2070, 2070, 2070, 3201,
3625      2070, 3198, 3197, 2070, 1443, 1442, 2068, 3208, 2069, 2071,
3626      2071, 2071, 3194, 2071, 1441, 3199, 2071, 2074, 2074, 2074,
3627      2065, 1440, 2075, 2075, 2075, 2077, 2077, 2077, 1439, 2077,
3628      3200, 3201, 2077, 1437, 3207, 2074, 2080, 2080, 2080, 2068,
3629      2075, 2087, 2087, 2087, 2089, 2089, 2089, 3198, 2089, 1436,
3630      1435, 2089, 3199, 3194, 2080, 3208, 2093, 2093, 2093, 2087,
3631      2093, 3202, 1434, 2093, 2096, 2096, 2096, 3200, 2074, 2097,
3632
3633      2097, 2097, 1425, 2097, 3205, 3206, 2097, 1410, 2101, 2101,
3634      2101, 2096, 2101, 1409, 1404, 2101, 2104, 2104, 2104, 2080,
3635      2105, 2105, 2105, 3202, 2105, 1403, 2087, 2105, 2108, 2108,
3636      2108, 2109, 2109, 2109, 2104, 2109, 3205, 3206, 2109, 2110,
3637      2110, 2110, 3209, 2110, 1402, 2108, 2110, 2113, 2113, 2113,
3638      2115, 2115, 2115, 1400, 2115, 1393, 1392, 2115, 2121, 2121,
3639      2121, 2123, 2123, 2123, 1374, 2113, 2124, 2124, 2124, 1369,
3640      2124, 1366, 1365, 2124, 3209, 3210, 2121, 1362, 2123, 1357,
3641      2104, 2125, 2125, 2125, 2127, 2127, 2127, 2128, 2128, 2128,
3642      1348, 2128, 1347, 1346, 2128, 1342, 2135, 2135, 2135, 2125,
3643
3644      1337, 2127, 2138, 2138, 2138, 1333, 2138, 3210, 1325, 2138,
3645      2145, 2145, 2145, 2113, 2135, 2141, 2141, 2141, 1320, 2141,
3646      1319, 1313, 2141, 1312, 2147, 2147, 2147, 1311, 2145, 2148,
3647      2148, 2148, 2149, 2149, 2149, 1310, 2149, 1305, 1304, 2149,
3648      1303, 2125, 2147, 1302, 2152, 2152, 2152, 2148, 2152, 1289,
3649      1288, 2152, 2155, 2155, 2155, 1287, 2156, 2156, 2156, 1286,
3650      1285, 2145, 2157, 2157, 2157, 2148, 2158, 2158, 2158, 1284,
3651      2155, 1283, 2155, 2156, 2159, 2159, 2159, 1273, 1272, 2157,
3652      2160, 2160, 2160, 2158, 2162, 2162, 2162, 2163, 2163, 2163,
3653      2147, 2159, 2164, 2164, 2164, 2167, 2167, 2167, 2160, 2168,
3654
3655      2168, 2168, 2162, 2168, 1271, 2163, 2168, 2171, 2171, 2171,
3656      2164, 1270, 1258, 2157, 2172, 2172, 2172, 2173, 2173, 2173,
3657      2174, 2174, 2174, 1257, 1252, 2171, 2177, 2177, 2177, 1251,
3658      2158, 1246, 1245, 2159, 2178, 2178, 2178, 2180, 2180, 2180,
3659      2181, 2181, 2181, 1226, 2162, 2160, 2182, 2182, 2182, 2183,
3660      2183, 2183, 2184, 2184, 2184, 2185, 2185, 2185, 2188, 2188,
3661      2188, 2189, 2189, 2189, 1222, 1216, 2171, 2190, 2190, 2190,
3662      2191, 2191, 2191, 2193, 2193, 2193, 2196, 2196, 2196, 2197,
3663      2197, 2197, 1212, 2197, 1211, 1210, 2197, 2200, 2200, 2200,
3664      1209, 2193, 1208, 2196, 2201, 2201, 2201, 1207, 2203, 2203,
3665
3666      2203, 1206, 2203, 1205, 2200, 2203, 2216, 2216, 2216, 2217,
3667      2217, 2217, 2201, 2217, 2218, 2218, 2217, 2218, 1204, 2219,
3668      2219, 1203, 2219, 1202, 2216, 2218, 1201, 1196, 2218, 1188,
3669      2219, 1186, 2218, 2219, 2220, 2220, 2220, 2219, 2221, 2221,
3670      2221, 2225, 2225, 2225, 2227, 2227, 2227, 1180, 2227, 1178,
3671      1169, 2227, 1164, 2200, 2230, 2230, 2230, 2231, 2231, 2231,
3672      1153, 2231, 1151, 1150, 2231, 1149, 1148, 2216, 2234, 2234,
3673      2234, 1146, 2230, 2235, 2235, 2235, 2243, 2243, 2243, 2244,
3674      2244, 2244, 1145, 2247, 2247, 2247, 2234, 2247, 1144, 1143,
3675      2247, 2235, 2250, 2250, 2250, 1142, 1141, 2244, 1139, 1138,
3676
3677      2230, 2253, 2253, 2253, 2254, 2254, 2254, 1137, 2254, 2250,
3678      1136, 2254, 2257, 2257, 2257, 2262, 2262, 2262, 1135, 2253,
3679      2264, 2264, 2264, 1134, 2235, 2265, 2265, 2265, 1133, 2265,
3680      2257, 1132, 2265, 2262, 2268, 2268, 2268, 2264, 1131, 2244,
3681      2269, 2269, 2269, 2270, 2270, 2270, 1130, 2270, 1129, 1128,
3682      2270, 1127, 2268, 2273, 2273, 2273, 1126, 2269, 2274, 2274,
3683      2274, 2279, 2279, 2279, 2281, 2281, 2281, 2284, 2284, 2284,
3684      2273, 2283, 2283, 2283, 1120, 2274, 1119, 1118, 2279, 2285,
3685      2285, 2285, 1115, 1114, 2284, 2268, 2269, 1113, 1111, 2283,
3686      1107, 2286, 2286, 2286, 2288, 2288, 2288, 2285, 2287, 2287,
3687
3688      2287, 1104, 1095, 2289, 2289, 2289, 1094, 2289, 2273, 2286,
3689      2289, 2288, 2279, 2290, 2290, 2290, 2287, 1091, 1090, 2274,
3690      2291, 2291, 2291, 2292, 2292, 2292, 2293, 2293, 2293, 1089,
3691      2290, 2294, 2294, 2294, 1088, 2287, 1087, 2291, 1073, 2285,
3692      2292, 2295, 2295, 2295, 2293, 2296, 2296, 2296, 2298, 2298,
3693      2298, 1066, 2286, 2301, 2301, 2301, 2303, 2303, 2303, 2295,
3694      2302, 2302, 2302, 2296, 1058, 1057, 2298, 2304, 2304, 2304,
3695      1056, 2291, 1053, 1050, 2292, 2307, 2307, 2307, 2302, 2308,
3696      2308, 2308, 2309, 2309, 2309, 2310, 2310, 2310, 2314, 2314,
3697      2314, 2317, 2317, 2317, 2318, 2318, 2318, 1047, 2318, 1042,
3698
3699      1039, 2318, 2330, 2330, 2330, 1038, 2314, 2295, 2317, 1034,
3700      2298, 2343, 2343, 2343, 2346, 2346, 2346, 2348, 2348, 2348,
3701      2330, 2349, 2349, 2349, 2351, 2351, 2351, 2358, 2358, 2358,
3702      2359, 2359, 2359, 1032, 1018, 2348, 2360, 2360, 2360, 2349,
3703      1017, 1016, 2351, 1015, 2358, 1014, 2363, 2363, 2363, 2364,
3704      2364, 2364, 1013, 2364, 2360, 1012, 2364, 2366, 2366, 2366,
3705      1008, 1004, 2330, 2363, 2367, 2367, 2367, 2369, 2369, 2369,
3706      2373, 2373, 2373,  997, 2366, 2375, 2375, 2375,  996, 2377,
3707      2377, 2377, 2367, 2348,  995, 2369,  992, 2373, 2378, 2378,
3708      2378,  991, 2375, 2360, 2376, 2376, 2376, 2377, 2376,  988,
3709
3710       987, 2376, 2379, 2379, 2379, 2378, 2379,  986,  983, 2379,
3711      2380, 2380, 2380, 2381, 2381, 2381, 2382, 2382, 2382, 2387,
3712      2387, 2387, 2389, 2389, 2389,  982,  979, 2380,  974,  971,
3713      2381,  968,  967, 2382,  964,  963, 2387, 2391, 2391, 2391,
3714      2393, 2393, 2393, 2394, 2394, 2394,  962, 2394,  961,  960,
3715      2394, 2395, 2395, 2395,  958, 2391,  957, 2393, 2396, 2396,
3716      2396,  956, 2380, 2397, 2397, 2397, 2398, 2398, 2398, 2395,
3717      2398, 2381,  955, 2398, 2382,  954, 2396, 2401, 2401, 2401,
3718       953, 2397, 2402, 2402, 2402,  949, 2402,  944,  943, 2402,
3719      2403, 2403, 2403,  942, 2401, 2404, 2404, 2404, 2405, 2405,
3720
3721      2405, 2407, 2407, 2407, 2408, 2408, 2408, 2403, 2412, 2412,
3722      2412,  941, 2404, 2416, 2416, 2416, 2405, 2420, 2420, 2420,
3723       938,  937, 2408,  936,  934, 2396, 2412, 2397, 2421, 2421,
3724      2421,  930, 2421,  926, 2420, 2421, 2435, 2435, 2435, 2452,
3725      2452, 2452, 2454, 2454, 2454, 2455, 2455, 2455, 2458, 2458,
3726      2458, 2461, 2461, 2461, 2435, 2462, 2462, 2462,  925, 2462,
3727      2454,  922, 2462, 2455,  919, 2458,  918,  917, 2461, 2463,
3728      2463, 2463, 2466, 2466, 2466,  916, 2466,  915,  914, 2466,
3729      2470, 2470, 2470,  913, 2471, 2471, 2471, 2463, 2471,  911,
3730       910, 2471, 2473, 2473, 2473,  909, 2435, 2470, 2474, 2474,
3731
3732      2474, 2475, 2475, 2475,  908, 2475,  907,  906, 2475, 2473,
3733      2476, 2476, 2476, 2454,  905, 2474, 2477, 2477, 2477,  904,
3734      2477,  903,  902, 2477, 2480, 2480, 2480, 2476, 2482, 2482,
3735      2482,  901, 2482,  900,  899, 2482, 2485, 2485, 2485, 2486,
3736      2486, 2486, 2480, 2487, 2487, 2487, 2490, 2490, 2490,  898,
3737      2491, 2491, 2491, 2485, 2491,  897, 2486, 2491,  896,  895,
3738      2487,  894,  893, 2490, 2492, 2492, 2492, 2493, 2493, 2493,
3739      2494, 2494, 2494,  892, 2494,  888,  887, 2494, 2497, 2497,
3740      2497, 2492,  885,  884, 2493, 2499, 2499, 2499,  883,  882,
3741      2486, 2485, 2500, 2500, 2500,  881, 2497,  877, 2487,  875,
3742
3743      2501, 2501, 2501, 2499, 2501,  874,  873, 2501,  872,  868,
3744      2500, 2504, 2504, 2504, 2505, 2505, 2505,  864, 2505,  863,
3745       860, 2505, 2506, 2506, 2506, 2507, 2507, 2507, 2504, 2507,
3746       859,  858, 2507,  857, 2508, 2508, 2508,  856,  855, 2506,
3747      2514, 2514, 2514, 2518, 2518, 2518, 2537, 2537, 2537,  854,
3748       851, 2499, 2508, 2500, 2519, 2519, 2519,  850, 2519,  849,
3749      2518, 2519,  848,  845, 2537, 2553, 2553, 2553, 2555, 2555,
3750      2555, 2556, 2556, 2556, 2557, 2557, 2557, 2558, 2558, 2558,
3751       844, 2558,  843,  840, 2558,  838, 2555,  835, 2556,  834,
3752       833, 2557, 2559, 2559, 2559,  832, 2559, 2537,  831, 2559,
3753
3754      2562, 2562, 2562, 2567, 2567, 2567,  828, 2567,  827,  826,
3755      2567, 2571, 2571, 2571, 2606, 2606, 2606, 2556, 2562, 2572,
3756      2572, 2572,  825, 2572,  824,  821, 2572,  820, 2571,  819,
3757      2555, 2573, 2573, 2573,  818, 2573,  816,  813, 2573, 2576,
3758      2576, 2576, 2577, 2577, 2577,  812, 2577,  810,  807, 2577,
3759      2578, 2578, 2578, 2579, 2579, 2579, 2576, 2580, 2580, 2580,
3760       805, 2581, 2581, 2581,  802, 2581,  801, 2578, 2581,  800,
3761      2579, 2584, 2584, 2584, 2580, 2585, 2585, 2585,  799, 2585,
3762       797,  796, 2585, 2586, 2586, 2586,  795,  792, 2584, 2587,
3763      2587, 2587,  791, 2587,  790,  789, 2587, 2594, 2594, 2594,
3764
3765      2586, 2595, 2595, 2595,  788,  787, 2580,  782, 2578, 2596,
3766      2596, 2596,  781, 2596,  780, 2594, 2596,  779,  778, 2595,
3767      2599, 2599, 2599,  777, 2599,  776,  775, 2599, 2604, 2604,
3768      2604, 2607, 2607, 2607, 2610, 2610, 2610,  774, 2610,  772,
3769       770, 2610, 2621, 2621, 2621, 2604, 2604,  769, 2594, 2630,
3770      2630, 2630, 2646, 2646, 2646, 2647, 2647, 2647,  766, 2621,
3771      2648, 2648, 2648, 2649, 2649, 2649,  763, 2630, 2595, 2650,
3772      2650, 2650,  759, 2650,  758,  757, 2650,  754, 2648,  751,
3773      2649, 2652, 2652, 2652,  750, 2652,  749,  746, 2652, 2659,
3774      2659, 2659,  745, 2659,  741,  740, 2659,  738, 2630, 2662,
3775
3776      2662, 2662,  735, 2662,  734,  733, 2662, 2665, 2665, 2665,
3777       731, 2648, 2666, 2666, 2666, 2667, 2667, 2667,  720, 2667,
3778       719,  717, 2667,  716, 2665, 2668, 2668, 2668,  714, 2666,
3779      2669, 2669, 2669,  713, 2669,  712,  708, 2669,  707, 2672,
3780      2672, 2672, 2668, 2672,  706,  705, 2672, 2681, 2681, 2681,
3781      2682, 2682, 2682, 2688, 2688, 2688,  701,  700, 2665, 2689,
3782      2689, 2689, 2690, 2690, 2690, 2681, 2690,  699, 2682, 2690,
3783      2688, 2688, 2691, 2691, 2691,  698, 2689, 2689,  697,  696,
3784      2690, 2692, 2692, 2692, 2693, 2693, 2693, 2694, 2694, 2694,
3785      2703, 2703, 2703, 2704, 2704, 2704, 2668, 2704,  695,  693,
3786
3787      2704, 2713, 2713, 2713, 2728, 2728, 2728, 2703, 2729, 2729,
3788      2729, 2730, 2730, 2730,  690,  689, 2682,  687,  685, 2713,
3789      2731, 2731, 2731,  682, 2731,  681,  675, 2731,  673, 2730,
3790      2737, 2737, 2737, 2739, 2739, 2739, 2740, 2740, 2740,  671,
3791      2740,  668,  667, 2740, 2743, 2743, 2743, 2737,  663,  662,
3792      2739, 2758, 2758, 2758, 2760, 2760, 2760, 2766, 2766, 2766,
3793       661, 2743,  658,  657, 2767, 2767, 2767, 2713, 2767, 2758,
3794       656, 2767, 2760,  655, 2766, 2766, 2768, 2768, 2768,  652,
3795      2768,  651, 2767, 2768, 2771, 2771, 2771, 2772, 2772, 2772,
3796      2773, 2773, 2773,  650, 2768, 2782, 2782, 2782,  649, 2782,
3797
3798       648,  642, 2782,  641,  639, 2760, 2769, 2769, 2769, 2769,
3799      2769, 2769, 2769, 2769, 2769,  633,  632, 2769, 2791, 2791,
3800      2791,  628, 2769, 2769, 2769, 2769, 2769, 2802, 2802, 2802,
3801      2803, 2803, 2803, 2808, 2808, 2808, 2791, 2809, 2809, 2809,
3802       621, 2809,  617,  611, 2809, 2811, 2811, 2811, 2803,  607,
3803      2808, 2769, 2769, 2770, 2770, 2770, 2770, 2770, 2770, 2770,
3804      2770, 2770, 2811,  603, 2770, 2813, 2813, 2813,  599, 2770,
3805      2770, 2770, 2770, 2770, 2812, 2812, 2812,  598, 2812,  597,
3806       596, 2812, 2813, 2814, 2814, 2814,  595, 2814,  591,  587,
3807      2814, 2827, 2827, 2827, 2852, 2852, 2852,  584, 2770, 2770,
3808
3809      2833, 2833, 2833,  583, 2833,  582,  578, 2833,  574, 2827,
3810       571,  570, 2852, 2887, 2887, 2887,  566,  560, 2833, 2836,
3811      2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,  559,  555,
3812      2836, 2887,  551,  547,  546, 2836, 2836, 2836, 2836, 2836,
3813      2865, 2865, 2865,  542, 2865,  539,  538, 2865, 2869, 2869,
3814      2869,  533, 2869,  529,  521, 2869, 2872, 2872, 2872,  520,
3815      2872,  519,  515, 2872, 2836, 2836, 2837, 2837, 2837, 2837,
3816      2837, 2837, 2837, 2837, 2837,  509,  508, 2837, 2899, 2899,
3817      2899,  507, 2837, 2837, 2837, 2837, 2837, 2916, 2916, 2916,
3818      2917, 2917, 2917, 2918, 2918, 2918, 2899, 2899, 2923, 2923,
3819
3820      2923, 2934, 2934, 2934, 2916,  503,  497, 2917,  496,  492,
3821      2918, 2837, 2837,  486,  485, 2923, 2938, 2938, 2938, 2934,
3822      2949, 2949, 2949, 2950, 2950, 2950,  484, 2950,  483,  482,
3823      2950, 2951, 2951, 2951, 2938,  481,  480, 2949, 2952, 2952,
3824      2952,  476, 2952,  470,  469, 2952,  467,  466, 2951, 2953,
3825      2953, 2953, 2954, 2954, 2954,  465, 2954,  461,  452, 2954,
3826      2961, 2961, 2961, 2971, 2971, 2971, 2953, 2938, 2962, 2962,
3827      2962,  451, 2962,  450,  448, 2962,  444, 2961, 2981, 2981,
3828      2981, 2971, 2981,  438,  437, 2981, 2984, 2984, 2984,  436,
3829      2984,  432,  428, 2984, 2987, 2987, 2987,  424, 2987,  423,
3830
3831      2971, 2987, 2996, 2996, 2996,  422, 2996,  421,  420, 2996,
3832      3103, 3103, 3103, 3112, 3112, 3112,  416, 3112,  410,  409,
3833      3112, 3213, 3213, 3213, 3214, 3214, 3214,  405, 3103,  399,
3834       398, 3112,  394,  387,  386,  385,  381,  374,  373, 3213,
3835       372,  371, 3214, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
3836      3217, 3217, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
3837      3218, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
3838      3220, 3220, 3220, 3220, 3220, 3220, 3220, 3220, 3220, 3221,
3839      3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3222, 3222,
3840      3222, 3222, 3222, 3222, 3222, 3222, 3222, 3223, 3223, 3223,
3841
3842      3223, 3223, 3223, 3223, 3223, 3223, 3224, 3224, 3224, 3224,
3843      3224, 3224, 3224, 3224, 3224, 3225, 3225, 3225, 3225, 3225,
3844      3225, 3225, 3225, 3225, 3226, 3226, 3226, 3226, 3226, 3226,
3845      3226, 3226, 3226, 3227, 3227, 3227, 3227, 3227, 3227, 3227,
3846      3227, 3227, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228,
3847      3228, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229,
3848      3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3231,
3849      3231, 3231, 3231, 3231, 3231, 3231, 3231, 3231, 3232, 3232,
3850      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233,
3851      3233, 3233, 3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234,
3852
3853      3234, 3234, 3234, 3234, 3234, 3235, 3235, 3235, 3235, 3235,
3854      3235, 3235, 3235, 3235, 3236, 3236, 3236, 3236, 3236, 3236,
3855      3236, 3236, 3236, 3237, 3237, 3237, 3237, 3237, 3237, 3237,
3856      3237, 3237, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238,
3857      3238, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239,
3858      3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3241,
3859      3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3242, 3242,
3860      3242, 3242, 3242, 3242, 3242, 3242, 3242, 3243, 3243, 3243,
3861      3243, 3243, 3243, 3243, 3243, 3243, 3244, 3244, 3244, 3244,
3862      3244, 3244, 3244, 3244, 3244, 3245, 3245, 3245, 3245, 3245,
3863
3864      3245, 3245, 3245, 3245, 3246, 3246, 3246, 3246, 3246, 3246,
3865      3246, 3246, 3246, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
3866      3247, 3247, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248,
3867      3248, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249,
3868      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251,
3869      3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3252, 3252,
3870      3252, 3252, 3252, 3252, 3252, 3252, 3252, 3253, 3253, 3253,
3871      3253, 3253, 3253, 3253, 3253, 3253, 3254, 3254, 3254, 3254,
3872      3254, 3254, 3254, 3254, 3254, 3255, 3255, 3255, 3255, 3255,
3873      3255, 3255, 3255, 3255, 3256, 3256, 3256, 3256, 3256, 3256,
3874
3875      3256, 3256, 3256, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
3876      3257, 3257, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
3877      3258, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
3878      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3261,
3879      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3262, 3262,
3880      3262, 3262, 3262, 3262, 3262, 3262, 3262, 3263, 3263, 3263,
3881      3263, 3263, 3263, 3263, 3263, 3263, 3264, 3264, 3264, 3264,
3882      3264, 3264, 3264, 3264, 3264, 3265, 3265, 3265, 3265, 3265,
3883      3265, 3265, 3265, 3265, 3266, 3266, 3266, 3266, 3266, 3266,
3884      3266, 3266, 3266, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
3885
3886      3267, 3267, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268,
3887      3268, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
3888      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3271,
3889      3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3272, 3272,
3890      3272, 3272, 3272, 3272, 3272, 3272, 3272, 3273, 3273, 3273,
3891      3273, 3273, 3273, 3273, 3273, 3273, 3274, 3274, 3274, 3274,
3892      3274, 3274, 3274, 3274, 3274, 3275, 3275, 3275, 3275, 3275,
3893      3275, 3275, 3275, 3275, 3276, 3276, 3276,  367,  363,  358,
3894      3276, 3277, 3277, 3277,  350,  349,  345, 3277, 3278, 3278,
3895      3278,  339,  338,  337, 3278, 3279, 3279, 3279,  333,  324,
3896
3897       322, 3279, 3280, 3280, 3280,  321,  317,  314, 3280, 3281,
3898      3281, 3281,  312,  311,  310, 3281, 3282, 3282, 3282,  306,
3899       302,  299, 3282, 3283, 3283, 3283,  295,  292,  291, 3283,
3900      3284, 3284, 3284,  283,  279,  275, 3284, 3285, 3285, 3285,
3901       274,  273,  267, 3285, 3286, 3286, 3286,  266,  264,  261,
3902      3286, 3287, 3287, 3287,  249,    0,    0, 3287, 3288, 3288,
3903      3288,    0,    0,    0, 3288, 3289, 3289, 3289,    0,    0,
3904         0, 3289, 3290, 3290, 3290,    0,    0,    0, 3290, 3291,
3905      3291, 3291,    0,    0,    0, 3291, 3292, 3292, 3292,    0,
3906         0,    0, 3292, 3293, 3293, 3293,    0,    0,    0, 3293,
3907
3908      3294, 3294, 3294,    0,    0,    0, 3294, 3295, 3295, 3295,
3909         0,    0,    0, 3295, 3296, 3296, 3296,    0,    0,    0,
3910      3296, 3297, 3297, 3297,    0,    0,    0, 3297, 3298, 3298,
3911      3298,    0,    0,    0, 3298, 3299, 3299, 3299,    0,    0,
3912         0, 3299, 3300, 3300, 3300,    0,    0,    0, 3300, 3301,
3913      3301, 3301,    0,    0,    0, 3301, 3302, 3302, 3302,    0,
3914         0,    0, 3302, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
3915         0, 3303, 3304, 3304, 3304,    0,    0,    0, 3304, 3305,
3916         0,    0,    0, 3305, 3306, 3306, 3306,    0,    0,    0,
3917      3306, 3307,    0,    0,    0, 3307, 3308, 3308, 3308,    0,
3918
3919         0,    0, 3308, 3309,    0,    0,    0, 3309, 3310, 3310,
3920      3310,    0,    0,    0, 3310, 3311,    0,    0,    0, 3311,
3921      3312, 3312, 3312,    0,    0,    0, 3312, 3313,    0,    0,
3922         0, 3313, 3314, 3314, 3314,    0,    0,    0, 3314, 3315,
3923         0,    0,    0, 3315, 3316, 3316, 3316,    0,    0,    0,
3924      3316, 3317,    0,    0,    0, 3317, 3318, 3318, 3318,    0,
3925         0,    0, 3318, 3319,    0,    0,    0, 3319, 3320, 3320,
3926      3320,    0,    0,    0, 3320, 3321,    0,    0,    0, 3321,
3927      3322, 3322, 3322,    0,    0,    0, 3322, 3323,    0,    0,
3928         0, 3323, 3324, 3324, 3324,    0,    0,    0, 3324, 3325,
3929
3930         0,    0,    0, 3325, 3326, 3326, 3326,    0,    0,    0,
3931      3326, 3327,    0,    0,    0, 3327, 3328, 3328, 3328,    0,
3932         0,    0, 3328, 3329,    0,    0,    0, 3329, 3330, 3330,
3933      3330,    0,    0,    0, 3330, 3331,    0,    0,    0, 3331,
3934      3332, 3332, 3332,    0,    0,    0, 3332, 3333,    0,    0,
3935         0, 3333, 3334, 3334, 3334,    0,    0,    0, 3334, 3335,
3936         0,    0,    0, 3335, 3336, 3336, 3336,    0,    0,    0,
3937      3336, 3337,    0,    0,    0, 3337, 3338, 3338, 3338,    0,
3938         0,    0, 3338, 3339,    0,    0,    0, 3339, 3340, 3340,
3939      3340,    0,    0,    0, 3340, 3341,    0,    0,    0, 3341,
3940
3941      3342, 3342, 3342,    0,    0,    0, 3342, 3343,    0,    0,
3942         0, 3343, 3344, 3344, 3344,    0,    0,    0, 3344, 3345,
3943         0,    0,    0, 3345, 3346, 3346, 3346,    0,    0,    0,
3944      3346, 3347,    0,    0,    0, 3347, 3348, 3348, 3348,    0,
3945         0,    0, 3348, 3349,    0,    0,    0, 3349, 3350, 3350,
3946      3350,    0,    0,    0, 3350, 3351,    0,    0,    0, 3351,
3947      3352, 3352, 3352,    0,    0,    0, 3352, 3353,    0,    0,
3948         0, 3353, 3354, 3354, 3354,    0,    0,    0, 3354, 3355,
3949         0,    0,    0, 3355, 3356, 3356, 3356,    0,    0,    0,
3950      3356, 3357,    0,    0,    0, 3357, 3358, 3358, 3358, 3358,
3951
3952      3358, 3358, 3358, 3358, 3358, 3359,    0,    0,    0,    0,
3953      3359, 3360, 3360, 3360,    0,    0,    0, 3360, 3361, 3361,
3954      3361, 3361,    0,    0, 3361, 3361, 3362, 3362, 3362,    0,
3955         0,    0, 3362, 3363, 3363, 3363, 3363,    0,    0, 3363,
3956      3363, 3364, 3364, 3364,    0,    0,    0, 3364, 3365, 3365,
3957      3365, 3365,    0,    0, 3365, 3365, 3366, 3366, 3366,    0,
3958         0,    0, 3366, 3367, 3367, 3367, 3367,    0,    0, 3367,
3959      3367, 3368, 3368, 3368,    0,    0,    0, 3368, 3369, 3369,
3960      3369, 3369,    0,    0, 3369, 3369, 3370, 3370, 3370,    0,
3961         0,    0, 3370, 3371, 3371, 3371, 3371,    0,    0, 3371,
3962
3963      3371, 3372, 3372, 3372,    0,    0,    0, 3372, 3373, 3373,
3964      3373, 3373,    0,    0, 3373, 3373, 3374, 3374, 3374,    0,
3965         0,    0, 3374, 3375, 3375, 3375, 3375,    0,    0, 3375,
3966      3375, 3376, 3376, 3376,    0,    0,    0, 3376, 3377, 3377,
3967      3377, 3377,    0,    0, 3377, 3377, 3378, 3378, 3378,    0,
3968         0,    0, 3378, 3379, 3379, 3379, 3379,    0,    0, 3379,
3969      3379, 3380, 3380, 3380,    0,    0,    0, 3380, 3381, 3381,
3970      3381, 3381,    0,    0, 3381, 3381, 3382, 3382, 3382,    0,
3971         0,    0, 3382, 3383, 3383, 3383, 3383,    0,    0, 3383,
3972      3383, 3384, 3384, 3384,    0,    0,    0, 3384, 3385, 3385,
3973
3974      3385, 3385,    0,    0, 3385, 3385, 3386, 3386, 3386, 3386,
3975         0, 3386,    0, 3386, 3387, 3387, 3387, 3387,    0,    0,
3976      3387, 3387, 3388, 3388, 3388,    0,    0,    0, 3388, 3389,
3977      3389, 3389, 3389,    0,    0, 3389, 3389, 3390, 3390, 3390,
3978         0,    0,    0, 3390, 3391, 3391, 3391, 3391,    0,    0,
3979      3391, 3391, 3392, 3392, 3392,    0,    0,    0, 3392, 3393,
3980      3393, 3393, 3393,    0,    0, 3393, 3393, 3394, 3394, 3394,
3981         0,    0,    0, 3394, 3395, 3395, 3395, 3395,    0,    0,
3982      3395, 3395, 3396, 3396, 3396, 3396,    0, 3396,    0, 3396,
3983      3397, 3397, 3397, 3397,    0,    0, 3397, 3397, 3398, 3398,
3984
3985      3398, 3398,    0, 3398,    0, 3398, 3399, 3399, 3399, 3399,
3986         0,    0, 3399, 3399, 3400, 3400, 3400,    0,    0,    0,
3987      3400, 3401, 3401, 3401, 3401,    0,    0, 3401, 3401, 3402,
3988      3402, 3402, 3402,    0, 3402,    0, 3402, 3403, 3403, 3403,
3989      3403,    0,    0, 3403, 3403, 3404, 3404, 3404, 3404,    0,
3990      3404,    0, 3404, 3405, 3405, 3405, 3405,    0,    0, 3405,
3991      3405, 3406, 3406, 3406,    0,    0,    0, 3406, 3407, 3407,
3992      3407, 3407,    0,    0, 3407, 3407, 3408, 3408, 3408,    0,
3993         0,    0, 3408, 3409, 3409, 3409, 3409,    0,    0, 3409,
3994      3409, 3410, 3410, 3410, 3410,    0,    0, 3410, 3410, 3411,
3995
3996      3411, 3411,    0,    0,    0, 3411, 3412, 3412, 3412, 3412,
3997         0,    0, 3412, 3412, 3413, 3413, 3413, 3413, 3413, 3413,
3998      3413, 3413, 3413, 3414,    0, 3414,    0,    0, 3414, 3415,
3999      3415, 3415,    0,    0,    0, 3415, 3416, 3416, 3416, 3416,
4000         0,    0, 3416, 3416, 3417, 3417, 3417, 3417,    0, 3417,
4001         0, 3417, 3418, 3418, 3418, 3418,    0,    0, 3418, 3418,
4002      3419, 3419, 3419, 3419,    0, 3419,    0, 3419, 3420, 3420,
4003      3420, 3420,    0,    0, 3420, 3420, 3421, 3421, 3421,    0,
4004         0,    0, 3421, 3422, 3422, 3422, 3422,    0,    0, 3422,
4005      3422, 3423, 3423, 3423,    0,    0,    0, 3423, 3424, 3424,
4006
4007      3424, 3424,    0,    0, 3424, 3424, 3425, 3425, 3425,    0,
4008         0,    0, 3425, 3426, 3426, 3426, 3426,    0,    0, 3426,
4009      3426, 3427, 3427, 3427,    0,    0,    0, 3427, 3428, 3428,
4010      3428, 3428,    0,    0, 3428, 3428, 3429, 3429, 3429,    0,
4011         0,    0, 3429, 3430, 3430, 3430, 3430,    0,    0, 3430,
4012      3430, 3431, 3431, 3431, 3431,    0, 3431,    0, 3431, 3432,
4013      3432, 3432, 3432,    0,    0, 3432, 3432, 3433, 3433, 3433,
4014      3433,    0, 3433,    0, 3433, 3434, 3434, 3434, 3434,    0,
4015         0, 3434, 3434, 3435, 3435, 3435,    0,    0,    0, 3435,
4016      3436, 3436, 3436, 3436,    0,    0, 3436, 3436, 3437, 3437,
4017
4018      3437, 3437,    0, 3437,    0, 3437, 3438, 3438, 3438, 3438,
4019         0,    0, 3438, 3438, 3439, 3439, 3439,    0,    0,    0,
4020      3439, 3440, 3440, 3440, 3440,    0,    0, 3440, 3440, 3441,
4021      3441, 3441,    0,    0,    0, 3441, 3442, 3442, 3442, 3442,
4022         0,    0, 3442, 3442, 3443, 3443, 3443,    0,    0,    0,
4023      3443, 3444, 3444, 3444, 3444,    0,    0, 3444, 3444, 3445,
4024      3445, 3445,    0,    0,    0, 3445, 3446, 3446, 3446, 3446,
4025         0,    0, 3446, 3446, 3447, 3447, 3447,    0,    0,    0,
4026      3447, 3448, 3448, 3448, 3448,    0,    0, 3448, 3448, 3449,
4027      3449, 3449,    0,    0,    0, 3449, 3450, 3450, 3450, 3450,
4028
4029         0,    0, 3450, 3450, 3451, 3451, 3451,    0,    0,    0,
4030      3451, 3452, 3452, 3452, 3452,    0,    0, 3452, 3452, 3453,
4031      3453, 3453,    0,    0,    0, 3453, 3454, 3454, 3454, 3454,
4032         0,    0, 3454, 3454, 3455, 3455, 3455,    0,    0,    0,
4033      3455, 3456, 3456, 3456, 3456,    0,    0, 3456, 3456, 3457,
4034      3457, 3457, 3457,    0,    0, 3457, 3457, 3458, 3458, 3458,
4035         0,    0,    0, 3458, 3459, 3459, 3459, 3459,    0,    0,
4036      3459, 3459, 3460, 3460, 3460,    0,    0,    0, 3460, 3461,
4037      3461, 3461, 3461,    0,    0, 3461, 3461, 3462, 3462, 3462,
4038         0,    0,    0, 3462, 3463, 3463, 3463, 3463,    0,    0,
4039
4040      3463, 3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464,
4041      3465, 3465, 3465,    0,    0,    0, 3465, 3466, 3466, 3466,
4042      3466,    0,    0, 3466, 3466, 3467, 3467, 3467, 3467, 3467,
4043      3467, 3467, 3467, 3467, 3468, 3468, 3468, 3468, 3468, 3468,
4044      3468, 3468, 3468, 3469, 3469, 3469,    0,    0,    0, 3469,
4045      3470, 3470, 3470, 3470,    0,    0, 3470, 3470, 3471, 3471,
4046      3471, 3471,    0,    0, 3471, 3471, 3472, 3472, 3472,    0,
4047         0,    0, 3472, 3473, 3473, 3473, 3473,    0,    0, 3473,
4048      3473, 3474, 3474, 3474,    0,    0,    0, 3474, 3475, 3475,
4049      3475, 3475,    0,    0, 3475, 3475, 3476, 3476, 3476,    0,
4050
4051         0,    0, 3476, 3477, 3477, 3477, 3477,    0,    0, 3477,
4052      3477, 3478, 3478, 3478,    0,    0,    0, 3478, 3479, 3479,
4053      3479,    0,    0,    0, 3479, 3480, 3480, 3480, 3480,    0,
4054         0, 3480, 3480, 3481, 3481, 3481,    0,    0,    0, 3481,
4055      3482, 3482, 3482, 3482,    0,    0, 3482, 3482, 3483, 3483,
4056      3483, 3483,    0,    0, 3483, 3483, 3484, 3484, 3484,    0,
4057         0,    0, 3484, 3485, 3485, 3485, 3485,    0,    0, 3485,
4058      3485, 3486, 3486, 3486,    0,    0,    0, 3486, 3487, 3487,
4059      3487, 3487,    0,    0, 3487, 3487, 3488, 3488, 3488, 3488,
4060         0,    0, 3488, 3488, 3489, 3489, 3489,    0,    0,    0,
4061
4062      3489, 3490, 3490, 3490, 3490,    0,    0, 3490, 3490, 3491,
4063      3491, 3491, 3491,    0, 3491,    0, 3491, 3492, 3492, 3492,
4064      3492,    0,    0, 3492, 3492, 3493, 3493, 3493,    0,    0,
4065         0, 3493, 3494, 3494, 3494, 3494,    0,    0, 3494, 3494,
4066      3495, 3495, 3495,    0,    0,    0, 3495, 3496, 3496, 3496,
4067      3496,    0,    0, 3496, 3496, 3497, 3497, 3497,    0,    0,
4068         0, 3497, 3498, 3498, 3498, 3498,    0,    0, 3498, 3498,
4069      3499, 3499, 3499,    0,    0,    0, 3499, 3500, 3500, 3500,
4070      3500,    0,    0, 3500, 3500, 3501, 3501, 3501,    0,    0,
4071         0, 3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502,
4072
4073      3503, 3503, 3503,    0,    0,    0, 3503, 3504, 3504, 3504,
4074      3504,    0,    0, 3504, 3504, 3505, 3505, 3505,    0,    0,
4075         0, 3505, 3506, 3506, 3506, 3506,    0,    0, 3506, 3506,
4076      3507, 3507, 3507, 3507,    0,    0, 3507, 3507, 3508, 3508,
4077      3508,    0,    0,    0, 3508, 3509, 3509, 3509, 3509,    0,
4078         0, 3509, 3509, 3510, 3510, 3510,    0,    0,    0, 3510,
4079      3511, 3511, 3511, 3511,    0,    0, 3511, 3511, 3512, 3512,
4080      3512, 3512,    0, 3512,    0, 3512, 3513, 3513, 3513, 3513,
4081         0,    0, 3513, 3513, 3514, 3514, 3514, 3514,    0,    0,
4082      3514, 3514, 3515, 3515, 3515, 3515,    0, 3515,    0, 3515,
4083
4084      3516, 3516, 3516, 3516,    0,    0, 3516, 3516, 3517, 3517,
4085      3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518,
4086      3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519, 3519,    0,
4087         0,    0, 3519, 3520, 3520, 3520, 3520,    0,    0, 3520,
4088      3520, 3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522,
4089      3522, 3522,    0,    0,    0, 3522, 3523, 3523, 3523, 3523,
4090         0,    0, 3523, 3523, 3524, 3524, 3524,    0,    0,    0,
4091      3524, 3525, 3525, 3525, 3525,    0,    0, 3525, 3525, 3526,
4092      3526, 3526,    0,    0,    0, 3526, 3527, 3527, 3527, 3527,
4093         0,    0, 3527, 3527, 3528, 3528, 3528,    0,    0,    0,
4094
4095      3528, 3529, 3529, 3529,    0,    0,    0, 3529, 3530, 3530,
4096      3530, 3530,    0,    0, 3530, 3530, 3531, 3531, 3531,    0,
4097         0,    0, 3531, 3532, 3532, 3532, 3532,    0,    0, 3532,
4098      3532, 3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534,
4099      3534, 3534, 3534,    0, 3534,    0, 3534, 3535, 3535, 3535,
4100      3535,    0,    0, 3535, 3535, 3536, 3536, 3536,    0,    0,
4101         0, 3536, 3537, 3537, 3537, 3537,    0,    0, 3537, 3537,
4102      3538, 3538, 3538, 3538,    0,    0, 3538, 3538, 3539, 3539,
4103      3539,    0,    0,    0, 3539, 3540, 3540, 3540, 3540,    0,
4104         0, 3540, 3540, 3541, 3541, 3541, 3541,    0, 3541,    0,
4105
4106      3541, 3542, 3542, 3542, 3542,    0,    0, 3542, 3542, 3543,
4107      3543, 3543,    0,    0,    0, 3543, 3544, 3544, 3544, 3544,
4108         0,    0, 3544, 3544, 3545, 3545, 3545,    0,    0,    0,
4109      3545, 3546, 3546, 3546, 3546,    0,    0, 3546, 3546, 3547,
4110      3547, 3547,    0,    0,    0, 3547, 3548, 3548, 3548, 3548,
4111         0,    0, 3548, 3548, 3549, 3549, 3549,    0,    0,    0,
4112      3549, 3550, 3550, 3550, 3550,    0,    0, 3550, 3550, 3551,
4113      3551, 3551,    0,    0,    0, 3551, 3552, 3552, 3552, 3552,
4114         0,    0, 3552, 3552, 3553, 3553, 3553, 3553,    0, 3553,
4115         0, 3553, 3554, 3554, 3554, 3554,    0,    0, 3554, 3554,
4116
4117      3555, 3555, 3555,    0,    0,    0, 3555, 3556, 3556, 3556,
4118      3556,    0,    0, 3556, 3556, 3557, 3557, 3557, 3557,    0,
4119         0, 3557, 3557, 3558, 3558, 3558, 3558,    0, 3558,    0,
4120      3558, 3559, 3559, 3559, 3559,    0,    0, 3559, 3559, 3560,
4121      3560, 3560,    0,    0,    0, 3560, 3561, 3561, 3561, 3561,
4122         0,    0, 3561, 3561, 3562, 3562, 3562, 3562,    0,    0,
4123      3562, 3562, 3563, 3563, 3563, 3563,    0,    0, 3563, 3563,
4124      3564, 3564, 3564, 3564,    0,    0, 3564, 3564, 3565, 3565,
4125      3565, 3565, 3565, 3565, 3565, 3565, 3565, 3566, 3566, 3566,
4126      3566, 3566, 3566, 3566, 3566, 3566, 3567, 3567, 3567, 3567,
4127
4128         0, 3567,    0, 3567, 3568, 3568, 3568, 3568,    0,    0,
4129      3568, 3568, 3569, 3569, 3569, 3569,    0,    0, 3569, 3569,
4130      3570, 3570, 3570,    0,    0,    0, 3570, 3571, 3571, 3571,
4131      3571,    0,    0, 3571, 3571, 3572, 3572, 3572,    0,    0,
4132         0, 3572, 3573, 3573, 3573, 3573,    0,    0, 3573, 3573,
4133      3574, 3574, 3574, 3574,    0, 3574,    0, 3574, 3575, 3575,
4134      3575, 3575,    0,    0, 3575, 3575, 3576, 3576, 3576, 3576,
4135         0, 3576,    0, 3576, 3577, 3577, 3577, 3577,    0, 3577,
4136         0, 3577, 3578, 3578, 3578, 3578,    0,    0, 3578, 3578,
4137      3579, 3579, 3579, 3579,    0, 3579,    0, 3579, 3580, 3580,
4138
4139      3580, 3580,    0,    0, 3580, 3580, 3581, 3581, 3581, 3581,
4140         0,    0, 3581, 3581, 3582, 3582, 3582, 3582,    0,    0,
4141      3582, 3582, 3583, 3583, 3583,    0,    0,    0, 3583, 3584,
4142      3584, 3584, 3584,    0,    0, 3584, 3584, 3585, 3585, 3585,
4143         0,    0,    0, 3585, 3586, 3586, 3586, 3586,    0,    0,
4144      3586, 3586, 3587, 3587, 3587, 3587,    0, 3587,    0, 3587,
4145      3588, 3588, 3588, 3588,    0,    0, 3588, 3588, 3589, 3589,
4146      3589,    0,    0,    0, 3589, 3590, 3590, 3590,    0,    0,
4147         0, 3590, 3591, 3591, 3591, 3591,    0,    0, 3591, 3591,
4148      3592, 3592, 3592,    0,    0,    0, 3592, 3593, 3593, 3593,
4149
4150      3593,    0,    0, 3593, 3593, 3594, 3594, 3594,    0,    0,
4151         0, 3594, 3595, 3595, 3595,    0,    0,    0, 3595, 3596,
4152      3596, 3596, 3596,    0,    0, 3596, 3596, 3597, 3597, 3597,
4153         0,    0,    0, 3597, 3598, 3598, 3598, 3598,    0,    0,
4154      3598, 3598, 3599, 3599, 3599,    0,    0,    0, 3599, 3600,
4155      3600, 3600, 3600,    0,    0, 3600, 3600, 3601, 3601, 3601,
4156      3601,    0,    0, 3601, 3601, 3602, 3602, 3602, 3602,    0,
4157         0, 3602, 3602, 3603, 3603, 3603,    0,    0,    0, 3603,
4158      3604, 3604, 3604, 3604,    0,    0, 3604, 3604, 3605, 3605,
4159      3605, 3605,    0,    0, 3605, 3605, 3606, 3606, 3606, 3606,
4160
4161         0,    0, 3606, 3606, 3607, 3607, 3607, 3607, 3607, 3607,
4162      3607, 3607, 3607, 3608, 3608, 3608, 3608, 3608, 3608, 3608,
4163      3608, 3608, 3609, 3609, 3609, 3609,    0,    0, 3609, 3609,
4164      3610, 3610, 3610, 3610,    0,    0, 3610, 3610, 3611, 3611,
4165      3611,    0,    0,    0, 3611, 3612, 3612, 3612,    0,    0,
4166         0, 3612, 3613, 3613, 3613, 3613,    0,    0, 3613, 3613,
4167      3614, 3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615,
4168      3615, 3615,    0,    0, 3615, 3615, 3616, 3616, 3616, 3616,
4169         0,    0, 3616, 3616, 3617, 3617, 3617, 3617,    0,    0,
4170      3617, 3617, 3618, 3618, 3618,    0,    0,    0, 3618, 3619,
4171
4172      3619, 3619, 3619,    0,    0, 3619, 3619, 3620, 3620, 3620,
4173         0,    0,    0, 3620, 3621, 3621, 3621, 3621,    0,    0,
4174      3621, 3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622,
4175      3623, 3623, 3623,    0,    0,    0, 3623, 3624, 3624, 3624,
4176         0,    0,    0, 3624, 3625, 3625, 3625, 3625,    0,    0,
4177      3625, 3625, 3626, 3626, 3626,    0,    0,    0, 3626, 3627,
4178      3627, 3627, 3627,    0,    0, 3627, 3627, 3628, 3628, 3628,
4179         0,    0,    0, 3628, 3629, 3629, 3629,    0,    0,    0,
4180      3629, 3630, 3630, 3630,    0,    0,    0, 3630, 3631, 3631,
4181      3631, 3631,    0,    0, 3631, 3631, 3632, 3632, 3632,    0,
4182
4183         0,    0, 3632, 3633, 3633, 3633, 3633,    0,    0, 3633,
4184      3633, 3634, 3634, 3634, 3634,    0,    0, 3634, 3634, 3635,
4185      3635, 3635, 3635,    0,    0, 3635, 3635, 3636, 3636, 3636,
4186      3636,    0, 3636,    0, 3636, 3637, 3637, 3637, 3637,    0,
4187         0, 3637, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638,
4188      3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640,
4189      3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3641, 3641,
4190      3641, 3641, 3641, 3641, 3641, 3641, 3641, 3642, 3642, 3642,
4191      3642,    0,    0, 3642, 3642, 3643, 3643, 3643, 3643,    0,
4192         0, 3643, 3643, 3644, 3644, 3644,    0,    0,    0, 3644,
4193
4194      3645, 3645, 3645, 3645,    0, 3645,    0, 3645, 3646, 3646,
4195      3646, 3646,    0,    0, 3646, 3646, 3647, 3647, 3647, 3647,
4196         0,    0, 3647, 3647, 3648, 3648, 3648, 3648,    0,    0,
4197      3648, 3648, 3649, 3649, 3649, 3649,    0,    0, 3649, 3649,
4198      3650, 3650, 3650,    0,    0,    0, 3650, 3651, 3651, 3651,
4199      3651,    0,    0, 3651, 3651, 3652, 3652, 3652,    0,    0,
4200         0, 3652, 3653, 3653, 3653, 3653,    0,    0, 3653, 3653,
4201      3654, 3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655,
4202      3655,    0,    0,    0, 3655, 3656, 3656, 3656,    0,    0,
4203         0, 3656, 3657, 3657, 3657, 3657,    0, 3657,    0, 3657,
4204
4205      3658, 3658, 3658, 3658,    0,    0, 3658, 3658, 3659, 3659,
4206      3659, 3659,    0, 3659,    0, 3659, 3660, 3660, 3660,    0,
4207         0,    0, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4208      3662, 3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663,
4209      3663, 3663,    0, 3663,    0, 3663, 3664, 3664, 3664, 3664,
4210         0,    0, 3664, 3664, 3665, 3665, 3665, 3665,    0,    0,
4211      3665, 3665, 3666, 3666, 3666, 3666,    0,    0, 3666, 3666,
4212      3667, 3667, 3667, 3667,    0, 3667,    0, 3667, 3668, 3668,
4213      3668, 3668,    0,    0, 3668, 3668, 3669, 3669, 3669, 3669,
4214         0,    0, 3669, 3669, 3670, 3670, 3670, 3670, 3670, 3670,
4215
4216      3670, 3670, 3670, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
4217      3671, 3671, 3672, 3672, 3672, 3672,    0,    0, 3672, 3672,
4218      3673, 3673, 3673,    0,    0,    0, 3673, 3674, 3674, 3674,
4219         0,    0,    0, 3674, 3675, 3675, 3675, 3675,    0,    0,
4220      3675, 3675, 3676, 3676, 3676, 3676,    0,    0, 3676, 3676,
4221      3677, 3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678,
4222      3678,    0,    0,    0, 3678, 3679, 3679, 3679, 3679,    0,
4223         0, 3679, 3679, 3680, 3680, 3680,    0,    0,    0, 3680,
4224      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3682,
4225      3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3683, 3683,
4226
4227      3683, 3683, 3683, 3683, 3683, 3683, 3683, 3684, 3684, 3684,
4228      3684, 3684, 3684, 3684, 3684, 3684, 3685, 3685, 3685, 3685,
4229      3685, 3685, 3685, 3685, 3685, 3686, 3686, 3686, 3686, 3686,
4230      3686, 3686, 3686, 3686, 3216, 3216, 3216, 3216, 3216, 3216,
4231      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4232      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4233      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4234      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4235      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4236      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4237
4238      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216
4239     } ;
4240
4241 /* Table of booleans, true if rule could match eol. */
4242 static yyconst flex_int32_t yy_rule_can_match_eol[548] =
4243     {   0,
4244 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4245     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4246     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4247     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4248     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4249     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4250     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4251     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4252     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4253     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4254     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4255     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4256     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4257     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4258     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4259     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4260     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4261     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4262     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4263     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4264     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4265     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4266     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4267     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4268     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4269     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4270     0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 
4271     0, 0, 1, 0, 0, 0, 1, 0,     };
4272
4273 static yy_state_type yy_last_accepting_state;
4274 static char *yy_last_accepting_cpos;
4275
4276 extern int surf_parse__flex_debug;
4277 int surf_parse__flex_debug = 0;
4278
4279 /* The intent behind this definition is that it'll catch
4280  * any uses of REJECT which flex missed.
4281  */
4282 #define REJECT reject_used_but_not_detected
4283 #define yymore() yymore_used_but_not_detected
4284 #define YY_MORE_ADJ 0
4285 #define YY_RESTORE_YY_MORE_OFFSET
4286 char *surf_parse_text;
4287 /* Validating XML processor for src/surf/simgrid.dtd.
4288  *
4289  * This program was generated with the FleXML XML processor generator.
4290  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4291  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4292  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4293  * 
4294  * There are two, intertwined parts to this program, part A and part B.
4295  *
4296  * Part A
4297  * ------
4298  * 
4299  * Some parts, here collectively called "Part A", are found in the 
4300  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4301  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4302  *
4303  * You can redistribute, use, perform, display and/or modify "Part A"
4304  * provided the following two conditions hold:
4305  *
4306  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4307  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4308  *    FITNESS FOR A PARTICULAR PURPOSE.
4309  *
4310  * 2. The program distribution conditions do not in any way affect the
4311  *    distribution conditions of the FleXML system used to generate this
4312  *    file or any version of FleXML derived from that system.
4313  *
4314  * Notice that these are explicit rights granted to you for files
4315  * generated by the FleXML system.  For your rights in connection with
4316  * the FleXML system itself please consult the GNU General Public License.
4317  * 
4318  * Part B
4319  * ------
4320  * 
4321  * The other parts, here collectively called "Part B", and which came 
4322  * from the DTD used by FleXML to generate this program, can be 
4323  * distributed (or not, as the case may be) under the terms of whoever
4324  * wrote them, provided these terms respect and obey the two conditions 
4325  * above under the heading "Part A".
4326  *
4327  * The author of and contributors to FleXML specifically disclaim
4328  * any copyright interest in "Part B", unless "Part B" was written 
4329  * by the author of or contributors to FleXML.
4330  * 
4331  */
4332
4333 /* Version strings. */
4334 const char rcs_surfxml_flexml_skeleton[] =
4335  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4336 const char rcs_surfxml_flexml[] =
4337  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4338
4339 /* ANSI headers. */
4340 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4341 #include <stdio.h>
4342 #include <string.h>
4343 #include <assert.h>
4344 #include <stdarg.h>
4345 #include <ctype.h>
4346      
4347 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4348 # ifndef __STRICT_ANSI__
4349 #  include <io.h>
4350 #  include <process.h>
4351 # endif
4352 #else
4353 # include <unistd.h>
4354 #endif
4355      
4356 #ifndef FLEXML_INDEXSTACKSIZE
4357 #define FLEXML_INDEXSTACKSIZE 1000
4358 #endif
4359
4360 /* Generated definitions. */
4361 #define FLEXML_yylineno
4362 #ifndef FLEXML_BUFFERSTACKSIZE
4363 #define FLEXML_BUFFERSTACKSIZE 1000000
4364 #endif
4365 #define FLEXML_NEED_BUFFERLIT
4366
4367 /* XML processor api. */
4368 /* FleXML-provided data. */
4369 int surfxml_pcdata_ix;
4370 extern char *surfxml_bufferstack;
4371 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4372 AT_surfxml_mount_name AX_surfxml_mount_name;
4373 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4374 short int surfxml_mount_name_isset;
4375 AT_surfxml_random_generator AX_surfxml_random_generator;
4376 #define A_surfxml_random_generator AX_surfxml_random_generator
4377 short int surfxml_random_generator_isset;
4378 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4379 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4380 short int surfxml_ASroute_gw_dst_isset;
4381 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4382 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4383 short int surfxml_trace_connect_element_isset;
4384 AT_surfxml_prop_id AX_surfxml_prop_id;
4385 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4386 short int surfxml_prop_id_isset;
4387 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4388 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4389 short int surfxml_host_link_up_isset;
4390 AT_surfxml_host_id AX_surfxml_host_id;
4391 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4392 short int surfxml_host_id_isset;
4393 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4394 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4395 short int surfxml_ASroute_symmetrical_isset;
4396 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4397 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4398 short int surfxml_peer_lat_isset;
4399 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4400 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4401 short int surfxml_process_on_failure_isset;
4402 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4403 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4404 short int surfxml_link_latency_file_isset;
4405 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4406 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4407 short int surfxml_peer_availability_file_isset;
4408 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4409 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4410 short int surfxml_link_ctn_direction_isset;
4411 AT_surfxml_host_state AX_surfxml_host_state;
4412 #define A_surfxml_host_state AX_surfxml_host_state
4413 short int surfxml_host_state_isset;
4414 AT_surfxml_AS_id AX_surfxml_AS_id;
4415 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4416 short int surfxml_AS_id_isset;
4417 AT_surfxml_host_power AX_surfxml_host_power;
4418 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4419 short int surfxml_host_power_isset;
4420 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4421 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4422 short int surfxml_cabinet_suffix_isset;
4423 AT_surfxml_router_id AX_surfxml_router_id;
4424 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4425 short int surfxml_router_id_isset;
4426 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4427 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4428 short int surfxml_storage_type_id_isset;
4429 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4430 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4431 short int surfxml_process_start_time_isset;
4432 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4433 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4434 short int surfxml_cabinet_bw_isset;
4435 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4436 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4437 short int surfxml_cluster_suffix_isset;
4438 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4439 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4440 short int surfxml_bypassASroute_dst_isset;
4441 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4442 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4443 short int surfxml_host_link_id_isset;
4444 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4445 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4446 short int surfxml_ASroute_src_isset;
4447 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4448 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4449 short int surfxml_cluster_prefix_isset;
4450 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4451 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4452 short int surfxml_cabinet_prefix_isset;
4453 AT_surfxml_trace_file AX_surfxml_trace_file;
4454 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4455 short int surfxml_trace_file_isset;
4456 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4457 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4458 short int surfxml_link_sharing_policy_isset;
4459 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4460 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4461 short int surfxml_storage_typeId_isset;
4462 AT_surfxml_random_min AX_surfxml_random_min;
4463 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4464 short int surfxml_random_min_isset;
4465 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4466 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4467 short int surfxml_link_ctn_id_isset;
4468 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4469 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4470 short int surfxml_peer_bw_out_isset;
4471 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4472 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4473 short int surfxml_cluster_availability_file_isset;
4474 AT_surfxml_storage_content AX_surfxml_storage_content;
4475 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4476 short int surfxml_storage_content_isset;
4477 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4478 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4479 short int surfxml_process_kill_time_isset;
4480 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4481 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4482 short int surfxml_cluster_bb_bw_isset;
4483 AT_surfxml_argument_value AX_surfxml_argument_value;
4484 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4485 short int surfxml_argument_value_isset;
4486 AT_surfxml_link_state AX_surfxml_link_state;
4487 #define A_surfxml_link_state AX_surfxml_link_state
4488 short int surfxml_link_state_isset;
4489 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4490 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4491 short int surfxml_ASroute_gw_src_isset;
4492 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4493 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4494 short int surfxml_AS_routing_isset;
4495 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4496 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4497 short int surfxml_link_bandwidth_isset;
4498 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4499 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4500 short int surfxml_cluster_id_isset;
4501 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4502 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4503 short int surfxml_peer_bw_in_isset;
4504 AT_surfxml_random_mean AX_surfxml_random_mean;
4505 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4506 short int surfxml_random_mean_isset;
4507 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4508 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4509 short int surfxml_storage_type_size_isset;
4510 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4511 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4512 short int surfxml_cluster_bb_lat_isset;
4513 AT_surfxml_link_latency AX_surfxml_link_latency;
4514 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4515 short int surfxml_link_latency_isset;
4516 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4517 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4518 short int surfxml_backbone_bandwidth_isset;
4519 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4520 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4521 short int surfxml_backbone_id_isset;
4522 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4523 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4524 short int surfxml_trace_connect_kind_isset;
4525 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4526 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4527 short int surfxml_cabinet_lat_isset;
4528 AT_surfxml_random_seed AX_surfxml_random_seed;
4529 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4530 short int surfxml_random_seed_isset;
4531 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4532 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4533 short int surfxml_cluster_state_file_isset;
4534 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4535 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4536 short int surfxml_link_bandwidth_file_isset;
4537 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4538 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4539 short int surfxml_storage_type_content_isset;
4540 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4541 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4542 short int surfxml_route_symmetrical_isset;
4543 AT_surfxml_random_id AX_surfxml_random_id;
4544 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4545 short int surfxml_random_id_isset;
4546 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4547 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4548 short int surfxml_mstorage_name_isset;
4549 AT_surfxml_random_max AX_surfxml_random_max;
4550 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4551 short int surfxml_random_max_isset;
4552 AT_surfxml_link_id AX_surfxml_link_id;
4553 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4554 short int surfxml_link_id_isset;
4555 AT_surfxml_process_host AX_surfxml_process_host;
4556 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4557 short int surfxml_process_host_isset;
4558 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4559 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4560 short int surfxml_cabinet_id_isset;
4561 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4562 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4563 short int surfxml_host_availability_file_isset;
4564 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4565 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4566 short int surfxml_cluster_lat_isset;
4567 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4568 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4569 short int surfxml_router_coordinates_isset;
4570 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4571 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4572 short int surfxml_trace_periodicity_isset;
4573 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4574 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4575 short int surfxml_cluster_bb_sharing_policy_isset;
4576 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4577 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4578 short int surfxml_peer_state_file_isset;
4579 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4580 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4581 short int surfxml_peer_coordinates_isset;
4582 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4583 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4584 short int surfxml_bypassASroute_src_isset;
4585 AT_surfxml_prop_value AX_surfxml_prop_value;
4586 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4587 short int surfxml_prop_value_isset;
4588 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4589 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4590 short int surfxml_mstorage_typeId_isset;
4591 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4592 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4593 short int surfxml_ASroute_dst_isset;
4594 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4595 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4596 short int surfxml_link_state_file_isset;
4597 AT_surfxml_random_radical AX_surfxml_random_radical;
4598 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4599 short int surfxml_random_radical_isset;
4600 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4601 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4602 short int surfxml_bypassASroute_gw_src_isset;
4603 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4604 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4605 short int surfxml_trace_connect_trace_isset;
4606 AT_surfxml_mount_id AX_surfxml_mount_id;
4607 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4608 short int surfxml_mount_id_isset;
4609 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4610 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4611 short int surfxml_cluster_power_isset;
4612 AT_surfxml_process_function AX_surfxml_process_function;
4613 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4614 short int surfxml_process_function_isset;
4615 AT_surfxml_peer_id AX_surfxml_peer_id;
4616 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4617 short int surfxml_peer_id_isset;
4618 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4619 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4620 short int surfxml_cluster_router_id_isset;
4621 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4622 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4623 short int surfxml_cabinet_radical_isset;
4624 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4625 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4626 short int surfxml_cluster_sharing_policy_isset;
4627 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4628 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4629 short int surfxml_bypassRoute_dst_isset;
4630 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4631 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4632 short int surfxml_cabinet_power_isset;
4633 AT_surfxml_host_core AX_surfxml_host_core;
4634 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4635 short int surfxml_host_core_isset;
4636 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4637 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4638 short int surfxml_storage_type_model_isset;
4639 AT_surfxml_host_availability AX_surfxml_host_availability;
4640 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4641 short int surfxml_host_availability_isset;
4642 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4643 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4644 short int surfxml_bypassRoute_src_isset;
4645 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4646 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4647 short int surfxml_backbone_latency_isset;
4648 AT_surfxml_route_src AX_surfxml_route_src;
4649 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4650 short int surfxml_route_src_isset;
4651 AT_surfxml_storage_id AX_surfxml_storage_id;
4652 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4653 short int surfxml_storage_id_isset;
4654 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4655 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4656 short int surfxml_host_coordinates_isset;
4657 AT_surfxml_trace_id AX_surfxml_trace_id;
4658 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4659 short int surfxml_trace_id_isset;
4660 AT_surfxml_peer_power AX_surfxml_peer_power;
4661 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4662 short int surfxml_peer_power_isset;
4663 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4664 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4665 short int surfxml_cluster_radical_isset;
4666 AT_surfxml_config_id AX_surfxml_config_id;
4667 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4668 short int surfxml_config_id_isset;
4669 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4670 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4671 short int surfxml_bypassASroute_gw_dst_isset;
4672 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4673 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4674 short int surfxml_host_link_down_isset;
4675 AT_surfxml_include_file AX_surfxml_include_file;
4676 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4677 short int surfxml_include_file_isset;
4678 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4679 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4680 short int surfxml_random_std_deviation_isset;
4681 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4682 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4683 short int surfxml_cluster_core_isset;
4684 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4685 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4686 short int surfxml_host_state_file_isset;
4687 AT_surfxml_route_dst AX_surfxml_route_dst;
4688 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4689 short int surfxml_route_dst_isset;
4690 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4691 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4692 short int surfxml_cluster_bw_isset;
4693 AT_surfxml_platform_version AX_surfxml_platform_version;
4694 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4695 short int surfxml_platform_version_isset;
4696
4697 /* XML state. */
4698 #ifdef FLEX_DEBUG
4699 # define ENTER(state)   debug_enter(state,#state)
4700 # define LEAVE          debug_leave()
4701 # define SET(state)     debug_set(state,#state)
4702   static void debug_enter(int, const char*);
4703   static void debug_leave(void);
4704   static void debug_set(int, const char*);
4705 #else
4706 # define ENTER(state)   (yy_push_state(state))
4707 # define LEAVE          (yy_pop_state())
4708 # define SET(state)     BEGIN(state)
4709 #endif
4710
4711 /* Generic actions. */
4712 #define SKIP    /*skip*/
4713 #define SUCCEED        CLEANUP; return 0
4714
4715 #define FAIL    return fail
4716 static int fail(const char*, ...);
4717
4718 enum {flexml_max_err_msg_size = 512};
4719 static char flexml_err_msg[flexml_max_err_msg_size];
4720 const char * surfxml_parse_err_msg()
4721 {
4722     return flexml_err_msg;
4723 }
4724 static void reset_surfxml_parse_err_msg()
4725 {
4726     flexml_err_msg[0] = '\0';
4727 }
4728
4729 /* Cleanup */
4730 static void cleanup(void);
4731 #define CLEANUP  cleanup()
4732
4733 /* Text buffer stack handling. */
4734 char *surfxml_bufferstack = NULL;
4735 static int blimit = FLEXML_BUFFERSTACKSIZE;
4736 static int bnext = 1;
4737
4738 static int *indexstack = NULL;
4739 static int ilimit = FLEXML_INDEXSTACKSIZE;
4740 static int inext = 1;
4741
4742 #define BUFFERSET(P)  (P = bnext)
4743 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4744 #define BUFFERDONE    (BUFFERPUTC('\0'))
4745
4746 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4747
4748 /* after this is called, there are at least 2 slots left in the stack */
4749 static int ck_blimit()
4750 {
4751      if (bnext >= blimit) {
4752          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4753          {
4754              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4755              assert(temp);
4756              surfxml_bufferstack = temp;
4757          }
4758      }
4759      return 0;
4760 }
4761
4762 /* after this is called, there are at least 2 slots left in the stack */
4763 static int ck_ilimit()
4764 {
4765      if (inext >= ilimit) {
4766          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4767          {
4768              int *temp = (int *) realloc(indexstack, ilimit);
4769              assert(temp);
4770              indexstack = temp;
4771          }
4772      }
4773      return 0;
4774 }
4775
4776 #ifdef FLEXML_NEED_BUFFERLIT
4777 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4778 {
4779   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4780   assert(s <= e); BUFFERSET(*pp);
4781   while (++s<e) {
4782     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4783     else BUFFERPUTC(*s);
4784   }
4785   BUFFERDONE;
4786 }
4787 #endif
4788
4789 static void pushbuffer(int p)
4790 {
4791     ck_ilimit();
4792     indexstack[inext++] = p;
4793     indexstack[inext++] = bnext;    
4794 }
4795
4796 static int popbuffer(void)
4797 {
4798     assert(inext >= 2);
4799     bnext = indexstack[--inext];
4800     return indexstack[--inext];
4801 }
4802
4803 /* General internal entities are `unput' back onto the input stream... */
4804 #define ENTITYTEXT(T) \
4805   { char *s = (T), *e = s+strlen(s);\
4806     while (--e >= s) { unput(*e); }}
4807
4808 /* Flex standard options. */
4809 #define YY_NO_INPUT 1
4810 /* Flex user-requested options. */
4811 /* XML character classes (currently restricted to ASCII). */
4812 /* "Common syntactic structures." */
4813 /* "Names and Tokens." */
4814 /* Miscellaneous. */
4815 /* Parser states (flex `exclusive start conditions'):
4816  *
4817  * PROLOG       the XML prolog of the document before <?xml...>
4818  * DOCTYPE      the XML prolog of the document after <?xml...>
4819  * EPILOG       after the root element
4820  * INCOMMENT    inside an XML comment <!--....-->
4821  * INPI         inside an XML PI <?...?>
4822  * VALUE1       inside a '...'-delimited literal
4823  * VALUE2       inside a "..."-delimited literal
4824  * CDATA        inside a <![CDATA[...] ]> section.
4825  * ROOT_<tag>   expect root element <tag>
4826  * AL_<tag>     inside the attribute list for <tag>
4827  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4828  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4829  */
4830
4831 /* State names. */
4832 const char* *surfxml_statenames=NULL;
4833
4834 #define INITIAL 0
4835 #define PROLOG 1
4836 #define DOCTYPE 2
4837 #define EPILOG 3
4838 #define INCOMMENT 4
4839 #define INPI 5
4840 #define VALUE1 6
4841 #define VALUE2 7
4842 #define CDATA 8
4843 #define ROOT_surfxml_platform 9
4844 #define AL_surfxml_platform 10
4845 #define S_surfxml_platform 11
4846 #define S_surfxml_platform_1 12
4847 #define S_surfxml_platform_2 13
4848 #define S_surfxml_platform_3 14
4849 #define S_surfxml_platform_4 15
4850 #define S_surfxml_platform_5 16
4851 #define S_surfxml_platform_6 17
4852 #define S_surfxml_platform_7 18
4853 #define S_surfxml_platform_8 19
4854 #define E_surfxml_platform 20
4855 #define AL_surfxml_include 21
4856 #define S_surfxml_include 22
4857 #define S_surfxml_include_1 23
4858 #define S_surfxml_include_2 24
4859 #define E_surfxml_include 25
4860 #define AL_surfxml_trace 26
4861 #define IN_trace 27
4862 #define AL_surfxml_random 28
4863 #define S_surfxml_random 29
4864 #define S_surfxml_random_1 30
4865 #define S_surfxml_random_2 31
4866 #define E_surfxml_random 32
4867 #define AL_surfxml_trace_connect 33
4868 #define E_surfxml_trace_connect 34
4869 #define AL_surfxml_AS 35
4870 #define S_surfxml_AS 36
4871 #define S_surfxml_AS_1 37
4872 #define S_surfxml_AS_2 38
4873 #define S_surfxml_AS_3 39
4874 #define S_surfxml_AS_4 40
4875 #define S_surfxml_AS_5 41
4876 #define S_surfxml_AS_6 42
4877 #define S_surfxml_AS_7 43
4878 #define S_surfxml_AS_8 44
4879 #define S_surfxml_AS_9 45
4880 #define S_surfxml_AS_10 46
4881 #define S_surfxml_AS_11 47
4882 #define S_surfxml_AS_12 48
4883 #define S_surfxml_AS_13 49
4884 #define E_surfxml_AS 50
4885 #define AL_surfxml_storage_type 51
4886 #define S_surfxml_storage_type 52
4887 #define S_surfxml_storage_type_1 53
4888 #define S_surfxml_storage_type_2 54
4889 #define E_surfxml_storage_type 55
4890 #define AL_surfxml_storage 56
4891 #define S_surfxml_storage 57
4892 #define S_surfxml_storage_1 58
4893 #define S_surfxml_storage_2 59
4894 #define E_surfxml_storage 60
4895 #define AL_surfxml_mount 61
4896 #define E_surfxml_mount 62
4897 #define AL_surfxml_mstorage 63
4898 #define E_surfxml_mstorage 64
4899 #define AL_surfxml_host 65
4900 #define S_surfxml_host 66
4901 #define S_surfxml_host_1 67
4902 #define S_surfxml_host_2 68
4903 #define E_surfxml_host 69
4904 #define AL_surfxml_host_link 70
4905 #define E_surfxml_host_link 71
4906 #define AL_surfxml_cluster 72
4907 #define E_surfxml_cluster 73
4908 #define AL_surfxml_cabinet 74
4909 #define E_surfxml_cabinet 75
4910 #define AL_surfxml_peer 76
4911 #define E_surfxml_peer 77
4912 #define AL_surfxml_router 78
4913 #define E_surfxml_router 79
4914 #define AL_surfxml_backbone 80
4915 #define E_surfxml_backbone 81
4916 #define AL_surfxml_link 82
4917 #define S_surfxml_link 83
4918 #define S_surfxml_link_1 84
4919 #define S_surfxml_link_2 85
4920 #define E_surfxml_link 86
4921 #define AL_surfxml_route 87
4922 #define S_surfxml_route 88
4923 #define S_surfxml_route_1 89
4924 #define S_surfxml_route_2 90
4925 #define E_surfxml_route 91
4926 #define AL_surfxml_ASroute 92
4927 #define S_surfxml_ASroute 93
4928 #define S_surfxml_ASroute_1 94
4929 #define S_surfxml_ASroute_2 95
4930 #define E_surfxml_ASroute 96
4931 #define AL_surfxml_link_ctn 97
4932 #define E_surfxml_link_ctn 98
4933 #define AL_surfxml_bypassRoute 99
4934 #define S_surfxml_bypassRoute 100
4935 #define S_surfxml_bypassRoute_1 101
4936 #define S_surfxml_bypassRoute_2 102
4937 #define E_surfxml_bypassRoute 103
4938 #define AL_surfxml_bypassASroute 104
4939 #define S_surfxml_bypassASroute 105
4940 #define S_surfxml_bypassASroute_1 106
4941 #define S_surfxml_bypassASroute_2 107
4942 #define E_surfxml_bypassASroute 108
4943 #define AL_surfxml_process 109
4944 #define S_surfxml_process 110
4945 #define S_surfxml_process_1 111
4946 #define S_surfxml_process_2 112
4947 #define E_surfxml_process 113
4948 #define AL_surfxml_argument 114
4949 #define E_surfxml_argument 115
4950 #define AL_surfxml_config 116
4951 #define S_surfxml_config 117
4952 #define S_surfxml_config_1 118
4953 #define S_surfxml_config_2 119
4954 #define E_surfxml_config 120
4955 #define AL_surfxml_prop 121
4956 #define E_surfxml_prop 122
4957 #define IMPOSSIBLE 123
4958
4959 #ifndef YY_NO_UNISTD_H
4960 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4961  * down here because we want the user's section 1 to have been scanned first.
4962  * The user has a chance to override it with an option.
4963  */
4964 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4965 #  ifndef __STRICT_ANSI__
4966 #    include <io.h>
4967 #    include <process.h>
4968 #  endif
4969 #else
4970 #  include <unistd.h>
4971 #endif
4972 #endif
4973
4974 #ifndef YY_EXTRA_TYPE
4975 #define YY_EXTRA_TYPE void *
4976 #endif
4977
4978 static int yy_init_globals (void );
4979
4980 /* Accessor methods to globals.
4981    These are made visible to non-reentrant scanners for convenience. */
4982
4983 int surf_parse_lex_destroy (void );
4984
4985 int surf_parse_get_debug (void );
4986
4987 void surf_parse_set_debug (int debug_flag  );
4988
4989 YY_EXTRA_TYPE surf_parse_get_extra (void );
4990
4991 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4992
4993 FILE *surf_parse_get_in (void );
4994
4995 void surf_parse_set_in  (FILE * in_str  );
4996
4997 FILE *surf_parse_get_out (void );
4998
4999 void surf_parse_set_out  (FILE * out_str  );
5000
5001 int surf_parse_get_leng (void );
5002
5003 char *surf_parse_get_text (void );
5004
5005 int surf_parse_get_lineno (void );
5006
5007 void surf_parse_set_lineno (int line_number  );
5008
5009 /* Macros after this point can all be overridden by user definitions in
5010  * section 1.
5011  */
5012
5013 #ifndef YY_SKIP_YYWRAP
5014 #ifdef __cplusplus
5015 extern "C" int surf_parse_wrap (void );
5016 #else
5017 extern int surf_parse_wrap (void );
5018 #endif
5019 #endif
5020
5021 #ifndef yytext_ptr
5022 static void yy_flex_strncpy (char *,yyconst char *,int );
5023 #endif
5024
5025 #ifdef YY_NEED_STRLEN
5026 static int yy_flex_strlen (yyconst char * );
5027 #endif
5028
5029 #ifndef YY_NO_INPUT
5030
5031 #ifdef __cplusplus
5032 static int yyinput (void );
5033 #else
5034 static int input (void );
5035 #endif
5036
5037 #endif
5038
5039         static int yy_start_stack_ptr = 0;
5040         static int yy_start_stack_depth = 0;
5041         static int *yy_start_stack = NULL;
5042     
5043     static void yy_push_state (int new_state );
5044     
5045     static void yy_pop_state (void );
5046     
5047 /* Amount of stuff to slurp up with each read. */
5048 #ifndef YY_READ_BUF_SIZE
5049 #ifdef __ia64__
5050 /* On IA-64, the buffer size is 16k, not 8k */
5051 #define YY_READ_BUF_SIZE 16384
5052 #else
5053 #define YY_READ_BUF_SIZE 8192
5054 #endif /* __ia64__ */
5055 #endif
5056
5057 /* Copy whatever the last rule matched to the standard output. */
5058 #ifndef ECHO
5059 /* This used to be an fputs(), but since the string might contain NUL's,
5060  * we now use fwrite().
5061  */
5062 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5063 #endif
5064
5065 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5066  * is returned in "result".
5067  */
5068 #ifndef YY_INPUT
5069 #define YY_INPUT(buf,result,max_size) \
5070         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5071                 { \
5072                 int c = '*'; \
5073                 size_t n; \
5074                 for ( n = 0; n < max_size && \
5075                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5076                         buf[n] = (char) c; \
5077                 if ( c == '\n' ) \
5078                         buf[n++] = (char) c; \
5079                 if ( c == EOF && ferror( surf_parse_in ) ) \
5080                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5081                 result = n; \
5082                 } \
5083         else \
5084                 { \
5085                 errno=0; \
5086                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5087                         { \
5088                         if( errno != EINTR) \
5089                                 { \
5090                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5091                                 break; \
5092                                 } \
5093                         errno=0; \
5094                         clearerr(surf_parse_in); \
5095                         } \
5096                 }\
5097 \
5098
5099 #endif
5100
5101 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5102  * we don't want an extra ';' after the "return" because that will cause
5103  * some compilers to complain about unreachable statements.
5104  */
5105 #ifndef yyterminate
5106 #define yyterminate() return YY_NULL
5107 #endif
5108
5109 /* Number of entries by which start-condition stack grows. */
5110 #ifndef YY_START_STACK_INCR
5111 #define YY_START_STACK_INCR 25
5112 #endif
5113
5114 /* Report a fatal error. */
5115 #ifndef YY_FATAL_ERROR
5116 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5117 #endif
5118
5119 /* end tables serialization structures and prototypes */
5120
5121 /* Default declaration of generated scanner - a define so the user can
5122  * easily add parameters.
5123  */
5124 #ifndef YY_DECL
5125 #define YY_DECL_IS_OURS 1
5126
5127 extern int surf_parse_lex (void);
5128
5129 #define YY_DECL int surf_parse_lex (void)
5130 #endif /* !YY_DECL */
5131
5132 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5133  * have been set up.
5134  */
5135 #ifndef YY_USER_ACTION
5136 #define YY_USER_ACTION
5137 #endif
5138
5139 /* Code executed at the end of each rule. */
5140 #ifndef YY_BREAK
5141 #define YY_BREAK break;
5142 #endif
5143
5144 #define YY_RULE_SETUP \
5145         YY_USER_ACTION
5146
5147 /** The main scanner function which does all the work.
5148  */
5149 YY_DECL
5150 {
5151         register yy_state_type yy_current_state;
5152         register char *yy_cp, *yy_bp;
5153         register int yy_act;
5154     
5155  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5156  SET(PROLOG);
5157  reset_surfxml_parse_err_msg();
5158  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5159  assert(surfxml_bufferstack);
5160  #ifdef FLEX_DEBUG
5161  {
5162      int i;
5163      for (i = 0; i < blimit; i++) {
5164          surfxml_bufferstack[i] = '\377';
5165      }
5166  }
5167  #endif
5168  surfxml_bufferstack[0] = '\0';
5169  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5170  assert(indexstack);
5171  indexstack[0] = 0;
5172
5173   /* FleXML_init */
5174   bnext = inext = 1;
5175   surfxml_bufferliteral('\0', &bnext, "0.0");
5176   surfxml_bufferliteral('\0', &bnext, "2147483647");
5177   surfxml_bufferliteral('\0', &bnext, "1");
5178   surfxml_bufferliteral('\0', &bnext, "1.0");
5179   surfxml_bufferliteral('\0', &bnext, "1");
5180   surfxml_bufferliteral('\0', &bnext, "0.0");
5181   surfxml_bufferliteral('\0', &bnext, "-1.0");
5182   surfxml_bufferliteral('\0', &bnext, "-1.0");
5183   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5184   surfxml_statenames[PROLOG] = NULL;
5185   surfxml_statenames[DOCTYPE] = NULL;
5186   surfxml_statenames[EPILOG] = NULL;
5187   surfxml_statenames[INCOMMENT] = NULL;
5188   surfxml_statenames[INPI] = NULL;
5189   surfxml_statenames[VALUE1] = NULL;
5190   surfxml_statenames[VALUE2] = NULL;
5191   surfxml_statenames[CDATA] = NULL;
5192   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5193   surfxml_statenames[AL_surfxml_platform] = NULL;
5194   surfxml_statenames[S_surfxml_platform] = "platform";
5195   surfxml_statenames[S_surfxml_platform_1] = "platform";
5196   surfxml_statenames[S_surfxml_platform_2] = "platform";
5197   surfxml_statenames[S_surfxml_platform_3] = "platform";
5198   surfxml_statenames[S_surfxml_platform_4] = "platform";
5199   surfxml_statenames[S_surfxml_platform_5] = "platform";
5200   surfxml_statenames[S_surfxml_platform_6] = "platform";
5201   surfxml_statenames[S_surfxml_platform_7] = "platform";
5202   surfxml_statenames[S_surfxml_platform_8] = "platform";
5203   surfxml_statenames[E_surfxml_platform] = "platform";
5204   surfxml_statenames[AL_surfxml_include] = NULL;
5205   surfxml_statenames[S_surfxml_include] = "include";
5206   surfxml_statenames[S_surfxml_include_1] = "include";
5207   surfxml_statenames[S_surfxml_include_2] = "include";
5208   surfxml_statenames[E_surfxml_include] = "include";
5209   surfxml_statenames[AL_surfxml_trace] = NULL;
5210   surfxml_statenames[IN_trace] = "trace";
5211   surfxml_statenames[AL_surfxml_random] = NULL;
5212   surfxml_statenames[S_surfxml_random] = "random";
5213   surfxml_statenames[S_surfxml_random_1] = "random";
5214   surfxml_statenames[S_surfxml_random_2] = "random";
5215   surfxml_statenames[E_surfxml_random] = "random";
5216   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5217   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5218   surfxml_statenames[AL_surfxml_AS] = NULL;
5219   surfxml_statenames[S_surfxml_AS] = "AS";
5220   surfxml_statenames[S_surfxml_AS_1] = "AS";
5221   surfxml_statenames[S_surfxml_AS_2] = "AS";
5222   surfxml_statenames[S_surfxml_AS_3] = "AS";
5223   surfxml_statenames[S_surfxml_AS_4] = "AS";
5224   surfxml_statenames[S_surfxml_AS_5] = "AS";
5225   surfxml_statenames[S_surfxml_AS_6] = "AS";
5226   surfxml_statenames[S_surfxml_AS_7] = "AS";
5227   surfxml_statenames[S_surfxml_AS_8] = "AS";
5228   surfxml_statenames[S_surfxml_AS_9] = "AS";
5229   surfxml_statenames[S_surfxml_AS_10] = "AS";
5230   surfxml_statenames[S_surfxml_AS_11] = "AS";
5231   surfxml_statenames[S_surfxml_AS_12] = "AS";
5232   surfxml_statenames[S_surfxml_AS_13] = "AS";
5233   surfxml_statenames[E_surfxml_AS] = "AS";
5234   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5235   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5236   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5237   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5238   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5239   surfxml_statenames[AL_surfxml_storage] = NULL;
5240   surfxml_statenames[S_surfxml_storage] = "storage";
5241   surfxml_statenames[S_surfxml_storage_1] = "storage";
5242   surfxml_statenames[S_surfxml_storage_2] = "storage";
5243   surfxml_statenames[E_surfxml_storage] = "storage";
5244   surfxml_statenames[AL_surfxml_mount] = NULL;
5245   surfxml_statenames[E_surfxml_mount] = "mount";
5246   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5247   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5248   surfxml_statenames[AL_surfxml_host] = NULL;
5249   surfxml_statenames[S_surfxml_host] = "host";
5250   surfxml_statenames[S_surfxml_host_1] = "host";
5251   surfxml_statenames[S_surfxml_host_2] = "host";
5252   surfxml_statenames[E_surfxml_host] = "host";
5253   surfxml_statenames[AL_surfxml_host_link] = NULL;
5254   surfxml_statenames[E_surfxml_host_link] = "host_link";
5255   surfxml_statenames[AL_surfxml_cluster] = NULL;
5256   surfxml_statenames[E_surfxml_cluster] = "cluster";
5257   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5258   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5259   surfxml_statenames[AL_surfxml_peer] = NULL;
5260   surfxml_statenames[E_surfxml_peer] = "peer";
5261   surfxml_statenames[AL_surfxml_router] = NULL;
5262   surfxml_statenames[E_surfxml_router] = "router";
5263   surfxml_statenames[AL_surfxml_backbone] = NULL;
5264   surfxml_statenames[E_surfxml_backbone] = "backbone";
5265   surfxml_statenames[AL_surfxml_link] = NULL;
5266   surfxml_statenames[S_surfxml_link] = "link";
5267   surfxml_statenames[S_surfxml_link_1] = "link";
5268   surfxml_statenames[S_surfxml_link_2] = "link";
5269   surfxml_statenames[E_surfxml_link] = "link";
5270   surfxml_statenames[AL_surfxml_route] = NULL;
5271   surfxml_statenames[S_surfxml_route] = "route";
5272   surfxml_statenames[S_surfxml_route_1] = "route";
5273   surfxml_statenames[S_surfxml_route_2] = "route";
5274   surfxml_statenames[E_surfxml_route] = "route";
5275   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5276   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5277   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5278   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5279   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5280   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5281   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5282   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5283   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5284   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5285   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5286   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5287   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5288   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5289   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5290   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5291   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5292   surfxml_statenames[AL_surfxml_process] = NULL;
5293   surfxml_statenames[S_surfxml_process] = "process";
5294   surfxml_statenames[S_surfxml_process_1] = "process";
5295   surfxml_statenames[S_surfxml_process_2] = "process";
5296   surfxml_statenames[E_surfxml_process] = "process";
5297   surfxml_statenames[AL_surfxml_argument] = NULL;
5298   surfxml_statenames[E_surfxml_argument] = "argument";
5299   surfxml_statenames[AL_surfxml_config] = NULL;
5300   surfxml_statenames[S_surfxml_config] = "config";
5301   surfxml_statenames[S_surfxml_config_1] = "config";
5302   surfxml_statenames[S_surfxml_config_2] = "config";
5303   surfxml_statenames[E_surfxml_config] = "config";
5304   surfxml_statenames[AL_surfxml_prop] = NULL;
5305   surfxml_statenames[E_surfxml_prop] = "prop";
5306   }
5307
5308  /* COMMENTS and PIs: handled uniformly for efficiency. */
5309
5310         if ( !(yy_init) )
5311                 {
5312                 (yy_init) = 1;
5313
5314 #ifdef YY_USER_INIT
5315                 YY_USER_INIT;
5316 #endif
5317
5318                 if ( ! (yy_start) )
5319                         (yy_start) = 1; /* first start state */
5320
5321                 if ( ! surf_parse_in )
5322                         surf_parse_in = stdin;
5323
5324                 if ( ! surf_parse_out )
5325                         surf_parse_out = stdout;
5326
5327                 if ( ! YY_CURRENT_BUFFER ) {
5328                         surf_parse_ensure_buffer_stack ();
5329                         YY_CURRENT_BUFFER_LVALUE =
5330                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5331                 }
5332
5333                 surf_parse__load_buffer_state( );
5334                 }
5335
5336         while ( 1 )             /* loops until end-of-file is reached */
5337                 {
5338                 yy_cp = (yy_c_buf_p);
5339
5340                 /* Support of surf_parse_text. */
5341                 *yy_cp = (yy_hold_char);
5342
5343                 /* yy_bp points to the position in yy_ch_buf of the start of
5344                  * the current run.
5345                  */
5346                 yy_bp = yy_cp;
5347
5348                 yy_current_state = (yy_start);
5349 yy_match:
5350                 do
5351                         {
5352                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5353                         if ( yy_accept[yy_current_state] )
5354                                 {
5355                                 (yy_last_accepting_state) = yy_current_state;
5356                                 (yy_last_accepting_cpos) = yy_cp;
5357                                 }
5358                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5359                                 {
5360                                 yy_current_state = (int) yy_def[yy_current_state];
5361                                 if ( yy_current_state >= 3217 )
5362                                         yy_c = yy_meta[(unsigned int) yy_c];
5363                                 }
5364                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5365                         ++yy_cp;
5366                         }
5367                 while ( yy_base[yy_current_state] != 11735 );
5368
5369 yy_find_action:
5370                 yy_act = yy_accept[yy_current_state];
5371                 if ( yy_act == 0 )
5372                         { /* have to back up */
5373                         yy_cp = (yy_last_accepting_cpos);
5374                         yy_current_state = (yy_last_accepting_state);
5375                         yy_act = yy_accept[yy_current_state];
5376                         }
5377
5378                 YY_DO_BEFORE_ACTION;
5379
5380                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5381                         {
5382                         int yyl;
5383                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5384                                 if ( surf_parse_text[yyl] == '\n' )
5385                                            
5386     surf_parse_lineno++;
5387 ;
5388                         }
5389
5390 do_action:      /* This label is used only to access EOF actions. */
5391
5392                 switch ( yy_act )
5393         { /* beginning of action switch */
5394                         case 0: /* must back up */
5395                         /* undo the effects of YY_DO_BEFORE_ACTION */
5396                         *yy_cp = (yy_hold_char);
5397                         yy_cp = (yy_last_accepting_cpos);
5398                         yy_current_state = (yy_last_accepting_state);
5399                         goto yy_find_action;
5400
5401 case 1:
5402 YY_RULE_SETUP
5403 ENTER(INCOMMENT);
5404         YY_BREAK
5405 case 2:
5406 YY_RULE_SETUP
5407 ENTER(INPI);
5408         YY_BREAK
5409
5410 case 3:
5411 YY_RULE_SETUP
5412 LEAVE;
5413         YY_BREAK
5414 case 4:
5415 case 5:
5416 case 6:
5417 /* rule 6 can match eol */
5418 YY_RULE_SETUP
5419 SKIP;
5420         YY_BREAK
5421 case YY_STATE_EOF(INCOMMENT):
5422 FAIL("EOF in comment.");
5423         YY_BREAK
5424
5425 case 7:
5426 YY_RULE_SETUP
5427 LEAVE;
5428         YY_BREAK
5429 case 8:
5430 case 9:
5431 /* rule 9 can match eol */
5432 YY_RULE_SETUP
5433 SKIP;
5434         YY_BREAK
5435 case YY_STATE_EOF(INPI):
5436 FAIL("EOF in PI (processing instruction).");
5437         YY_BREAK
5438
5439 /* SPACES: skipped uniformly */
5440 case 10:
5441 /* rule 10 can match eol */
5442 YY_RULE_SETUP
5443 SKIP;
5444         YY_BREAK
5445 /* PROLOG: determine root element and process it. */
5446
5447 case 11:
5448 /* rule 11 can match eol */
5449 YY_RULE_SETUP
5450 SET(DOCTYPE); 
5451         YY_BREAK
5452 case 12:
5453 /* rule 12 can match eol */
5454 YY_RULE_SETUP
5455 FAIL("Bad declaration %s.",surf_parse_text);
5456         YY_BREAK
5457
5458 case 13:
5459 /* rule 13 can match eol */
5460 YY_RULE_SETUP
5461 SET(ROOT_surfxml_platform);
5462         YY_BREAK
5463 case 14:
5464 /* rule 14 can match eol */
5465 YY_RULE_SETUP
5466 FAIL("Bad declaration %s.",surf_parse_text);
5467         YY_BREAK
5468 case 15:
5469 YY_RULE_SETUP
5470 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5471         YY_BREAK
5472 case YY_STATE_EOF(PROLOG):
5473 case YY_STATE_EOF(DOCTYPE):
5474 FAIL("EOF in prolog.");
5475         YY_BREAK
5476
5477 /* RULES DERIVED FROM DTD. */
5478 /* <!-- Small DTD for SURF based tools. -->  */
5479 case 16:
5480 /* rule 16 can match eol */
5481 YY_RULE_SETUP
5482 FAIL("Starting tag <platform> is not allowed here.");
5483         YY_BREAK
5484 case 17:
5485 /* rule 17 can match eol */
5486 YY_RULE_SETUP
5487 {
5488   AX_surfxml_platform_version = 1;
5489   surfxml_platform_version_isset = 0;
5490   ENTER(AL_surfxml_platform); pushbuffer(0);
5491   }
5492         YY_BREAK
5493
5494 case 18:
5495 /* rule 18 can match eol */
5496 YY_RULE_SETUP
5497 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);
5498         YY_BREAK
5499 case 19:
5500 /* rule 19 can match eol */
5501 YY_RULE_SETUP
5502 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);
5503         YY_BREAK
5504 case 20:
5505 YY_RULE_SETUP
5506 {
5507   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5508  }
5509         YY_BREAK
5510 case 21:
5511 YY_RULE_SETUP
5512 {
5513   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5514   switch (YY_START) {
5515    case ROOT_surfxml_platform: SET(EPILOG); break;
5516   }
5517  }
5518         YY_BREAK
5519 case 22:
5520 YY_RULE_SETUP
5521 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5522         YY_BREAK
5523 case 23:
5524 YY_RULE_SETUP
5525 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5526         YY_BREAK
5527 case YY_STATE_EOF(AL_surfxml_platform):
5528 FAIL("EOF in attribute list of `platform' element.");
5529         YY_BREAK
5530
5531 case 24:
5532 /* rule 24 can match eol */
5533 YY_RULE_SETUP
5534 {
5535   LEAVE;
5536   ETag_surfxml_platform();
5537   popbuffer(); /* attribute */
5538   switch (YY_START) {
5539    case ROOT_surfxml_platform: SET(EPILOG); break;
5540   }
5541  }
5542         YY_BREAK
5543 case 25:
5544 /* rule 25 can match eol */
5545 YY_RULE_SETUP
5546 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5547         YY_BREAK
5548 case 26:
5549 YY_RULE_SETUP
5550 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5551         YY_BREAK
5552 case YY_STATE_EOF(S_surfxml_platform_8):
5553 case YY_STATE_EOF(S_surfxml_platform_1):
5554 case YY_STATE_EOF(S_surfxml_platform_3):
5555 case YY_STATE_EOF(S_surfxml_platform):
5556 case YY_STATE_EOF(S_surfxml_platform_4):
5557 case YY_STATE_EOF(S_surfxml_platform_6):
5558 case YY_STATE_EOF(E_surfxml_platform):
5559 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5560         YY_BREAK
5561
5562 case 27:
5563 /* rule 27 can match eol */
5564 YY_RULE_SETUP
5565 FAIL("Starting tag <include> is not allowed here.");
5566         YY_BREAK
5567 case 28:
5568 /* rule 28 can match eol */
5569 YY_RULE_SETUP
5570 {
5571   AX_surfxml_include_file = 0;
5572   surfxml_include_file_isset = 0;
5573   ENTER(AL_surfxml_include); pushbuffer(0);
5574   }
5575         YY_BREAK
5576
5577 case 29:
5578 /* rule 29 can match eol */
5579 YY_RULE_SETUP
5580 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);
5581         YY_BREAK
5582 case 30:
5583 /* rule 30 can match eol */
5584 YY_RULE_SETUP
5585 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);
5586         YY_BREAK
5587 case 31:
5588 YY_RULE_SETUP
5589 {
5590   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5591   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5592  }
5593         YY_BREAK
5594 case 32:
5595 YY_RULE_SETUP
5596 {
5597   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5598   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5599   switch (YY_START) {
5600    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5601    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5602    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5603    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5604   }
5605  }
5606         YY_BREAK
5607 case 33:
5608 YY_RULE_SETUP
5609 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5610         YY_BREAK
5611 case 34:
5612 YY_RULE_SETUP
5613 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5614         YY_BREAK
5615 case YY_STATE_EOF(AL_surfxml_include):
5616 FAIL("EOF in attribute list of `include' element.");
5617         YY_BREAK
5618
5619 case 35:
5620 /* rule 35 can match eol */
5621 YY_RULE_SETUP
5622 {
5623   LEAVE;
5624   ETag_surfxml_include();
5625   popbuffer(); /* attribute */
5626   switch (YY_START) {
5627    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5628    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5629    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5630    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5631   }
5632  }
5633         YY_BREAK
5634 case 36:
5635 /* rule 36 can match eol */
5636 YY_RULE_SETUP
5637 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5638         YY_BREAK
5639 case 37:
5640 YY_RULE_SETUP
5641 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5642         YY_BREAK
5643 case YY_STATE_EOF(E_surfxml_include):
5644 case YY_STATE_EOF(S_surfxml_include):
5645 case YY_STATE_EOF(S_surfxml_include_2):
5646 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5647         YY_BREAK
5648
5649 case 38:
5650 /* rule 38 can match eol */
5651 YY_RULE_SETUP
5652 FAIL("Starting tag <trace> is not allowed here.");
5653         YY_BREAK
5654 case 39:
5655 /* rule 39 can match eol */
5656 YY_RULE_SETUP
5657 {
5658   AX_surfxml_trace_id = 0;
5659   surfxml_trace_id_isset = 0;
5660   AX_surfxml_trace_file = 0;
5661   surfxml_trace_file_isset = 0;
5662   AX_surfxml_trace_periodicity = 0;
5663   surfxml_trace_periodicity_isset = 0;
5664   ENTER(AL_surfxml_trace); pushbuffer(0);
5665   }
5666         YY_BREAK
5667
5668 case 40:
5669 /* rule 40 can match eol */
5670 YY_RULE_SETUP
5671 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);
5672         YY_BREAK
5673 case 41:
5674 /* rule 41 can match eol */
5675 YY_RULE_SETUP
5676 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);
5677         YY_BREAK
5678 case 42:
5679 /* rule 42 can match eol */
5680 YY_RULE_SETUP
5681 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);
5682         YY_BREAK
5683 case 43:
5684 /* rule 43 can match eol */
5685 YY_RULE_SETUP
5686 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);
5687         YY_BREAK
5688 case 44:
5689 /* rule 44 can match eol */
5690 YY_RULE_SETUP
5691 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);
5692         YY_BREAK
5693 case 45:
5694 /* rule 45 can match eol */
5695 YY_RULE_SETUP
5696 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);
5697         YY_BREAK
5698 case 46:
5699 YY_RULE_SETUP
5700 {
5701   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5702   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5703   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5704  }
5705         YY_BREAK
5706 case 47:
5707 YY_RULE_SETUP
5708 {
5709   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5710   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5711   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5712   switch (YY_START) {
5713    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5714    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5715    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5716    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5717    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5718    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5719    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5720   }
5721  }
5722         YY_BREAK
5723 case 48:
5724 YY_RULE_SETUP
5725 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5726         YY_BREAK
5727 case 49:
5728 YY_RULE_SETUP
5729 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5730         YY_BREAK
5731 case YY_STATE_EOF(AL_surfxml_trace):
5732 FAIL("EOF in attribute list of `trace' element.");
5733         YY_BREAK
5734
5735 case 50:
5736 /* rule 50 can match eol */
5737 YY_RULE_SETUP
5738 {
5739   LEAVE;
5740   BUFFERDONE;
5741   ETag_surfxml_trace();
5742   surfxml_pcdata_ix = popbuffer();
5743   popbuffer(); /* attribute */
5744   switch (YY_START) {
5745    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5746    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5747    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5748    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5749    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5750    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5751    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5752   }
5753  }
5754         YY_BREAK
5755 case 51:
5756 /* rule 51 can match eol */
5757 YY_RULE_SETUP
5758 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5759         YY_BREAK
5760 case YY_STATE_EOF(IN_trace):
5761 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5762         YY_BREAK
5763
5764 case 52:
5765 /* rule 52 can match eol */
5766 YY_RULE_SETUP
5767 FAIL("Starting tag <random> is not allowed here.");
5768         YY_BREAK
5769 case 53:
5770 /* rule 53 can match eol */
5771 YY_RULE_SETUP
5772 {
5773   AX_surfxml_random_id = 0;
5774   surfxml_random_id_isset = 0;
5775   AX_surfxml_random_min = 0;
5776   surfxml_random_min_isset = 0;
5777   AX_surfxml_random_max = 0;
5778   surfxml_random_max_isset = 0;
5779   AX_surfxml_random_mean = 0;
5780   surfxml_random_mean_isset = 0;
5781   AX_surfxml_random_std_deviation = 0;
5782   surfxml_random_std_deviation_isset = 0;
5783   AX_surfxml_random_seed = 5;
5784   surfxml_random_seed_isset = 0;
5785   AX_surfxml_random_radical = 0;
5786   surfxml_random_radical_isset = 0;
5787   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5788   surfxml_random_generator_isset = 0;
5789   ENTER(AL_surfxml_random); pushbuffer(0);
5790   }
5791         YY_BREAK
5792
5793 case 54:
5794 /* rule 54 can match eol */
5795 YY_RULE_SETUP
5796 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);
5797         YY_BREAK
5798 case 55:
5799 /* rule 55 can match eol */
5800 YY_RULE_SETUP
5801 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);
5802         YY_BREAK
5803 case 56:
5804 /* rule 56 can match eol */
5805 YY_RULE_SETUP
5806 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);
5807         YY_BREAK
5808 case 57:
5809 /* rule 57 can match eol */
5810 YY_RULE_SETUP
5811 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);
5812         YY_BREAK
5813 case 58:
5814 /* rule 58 can match eol */
5815 YY_RULE_SETUP
5816 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);
5817         YY_BREAK
5818 case 59:
5819 /* rule 59 can match eol */
5820 YY_RULE_SETUP
5821 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);
5822         YY_BREAK
5823 case 60:
5824 /* rule 60 can match eol */
5825 YY_RULE_SETUP
5826 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);
5827         YY_BREAK
5828 case 61:
5829 /* rule 61 can match eol */
5830 YY_RULE_SETUP
5831 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);
5832         YY_BREAK
5833 case 62:
5834 /* rule 62 can match eol */
5835 YY_RULE_SETUP
5836 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);
5837         YY_BREAK
5838 case 63:
5839 /* rule 63 can match eol */
5840 YY_RULE_SETUP
5841 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);
5842         YY_BREAK
5843 case 64:
5844 /* rule 64 can match eol */
5845 YY_RULE_SETUP
5846 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);
5847         YY_BREAK
5848 case 65:
5849 /* rule 65 can match eol */
5850 YY_RULE_SETUP
5851 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);
5852         YY_BREAK
5853 case 66:
5854 /* rule 66 can match eol */
5855 YY_RULE_SETUP
5856 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);
5857         YY_BREAK
5858 case 67:
5859 /* rule 67 can match eol */
5860 YY_RULE_SETUP
5861 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);
5862         YY_BREAK
5863 case 68:
5864 /* rule 68 can match eol */
5865 case 69:
5866 /* rule 69 can match eol */
5867 YY_RULE_SETUP
5868 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5869         YY_BREAK
5870 case 70:
5871 /* rule 70 can match eol */
5872 case 71:
5873 /* rule 71 can match eol */
5874 YY_RULE_SETUP
5875 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5876         YY_BREAK
5877 case 72:
5878 /* rule 72 can match eol */
5879 case 73:
5880 /* rule 73 can match eol */
5881 YY_RULE_SETUP
5882 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5883         YY_BREAK
5884 case 74:
5885 /* rule 74 can match eol */
5886 case 75:
5887 /* rule 75 can match eol */
5888 YY_RULE_SETUP
5889 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5890         YY_BREAK
5891 case 76:
5892 YY_RULE_SETUP
5893 {
5894   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5895   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5896   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5897   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5898   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5899   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5900  }
5901         YY_BREAK
5902 case 77:
5903 YY_RULE_SETUP
5904 {
5905   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5906   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5907   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5908   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5909   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5910   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5911   switch (YY_START) {
5912    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5913   }
5914  }
5915         YY_BREAK
5916 case 78:
5917 YY_RULE_SETUP
5918 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5919         YY_BREAK
5920 case 79:
5921 YY_RULE_SETUP
5922 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5923         YY_BREAK
5924 case YY_STATE_EOF(AL_surfxml_random):
5925 FAIL("EOF in attribute list of `random' element.");
5926         YY_BREAK
5927
5928 case 80:
5929 /* rule 80 can match eol */
5930 YY_RULE_SETUP
5931 {
5932   LEAVE;
5933   ETag_surfxml_random();
5934   popbuffer(); /* attribute */
5935   switch (YY_START) {
5936    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5937   }
5938  }
5939         YY_BREAK
5940 case 81:
5941 /* rule 81 can match eol */
5942 YY_RULE_SETUP
5943 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5944         YY_BREAK
5945 case 82:
5946 YY_RULE_SETUP
5947 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5948         YY_BREAK
5949 case YY_STATE_EOF(S_surfxml_random):
5950 case YY_STATE_EOF(S_surfxml_random_2):
5951 case YY_STATE_EOF(E_surfxml_random):
5952 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5953         YY_BREAK
5954
5955 case 83:
5956 /* rule 83 can match eol */
5957 YY_RULE_SETUP
5958 FAIL("Starting tag <trace_connect> is not allowed here.");
5959         YY_BREAK
5960 case 84:
5961 /* rule 84 can match eol */
5962 YY_RULE_SETUP
5963 {
5964   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5965   surfxml_trace_connect_kind_isset = 0;
5966   AX_surfxml_trace_connect_trace = 0;
5967   surfxml_trace_connect_trace_isset = 0;
5968   AX_surfxml_trace_connect_element = 0;
5969   surfxml_trace_connect_element_isset = 0;
5970   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5971   }
5972         YY_BREAK
5973
5974 case 85:
5975 /* rule 85 can match eol */
5976 case 86:
5977 /* rule 86 can match eol */
5978 YY_RULE_SETUP
5979 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5980         YY_BREAK
5981 case 87:
5982 /* rule 87 can match eol */
5983 case 88:
5984 /* rule 88 can match eol */
5985 YY_RULE_SETUP
5986 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5987         YY_BREAK
5988 case 89:
5989 /* rule 89 can match eol */
5990 case 90:
5991 /* rule 90 can match eol */
5992 YY_RULE_SETUP
5993 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5994         YY_BREAK
5995 case 91:
5996 /* rule 91 can match eol */
5997 case 92:
5998 /* rule 92 can match eol */
5999 YY_RULE_SETUP
6000 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
6001         YY_BREAK
6002 case 93:
6003 /* rule 93 can match eol */
6004 case 94:
6005 /* rule 94 can match eol */
6006 YY_RULE_SETUP
6007 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
6008         YY_BREAK
6009 case 95:
6010 /* rule 95 can match eol */
6011 YY_RULE_SETUP
6012 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);
6013         YY_BREAK
6014 case 96:
6015 /* rule 96 can match eol */
6016 YY_RULE_SETUP
6017 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);
6018         YY_BREAK
6019 case 97:
6020 /* rule 97 can match eol */
6021 YY_RULE_SETUP
6022 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);
6023         YY_BREAK
6024 case 98:
6025 /* rule 98 can match eol */
6026 YY_RULE_SETUP
6027 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);
6028         YY_BREAK
6029 case 99:
6030 YY_RULE_SETUP
6031 {
6032   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6033   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6034   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
6035  }
6036         YY_BREAK
6037 case 100:
6038 YY_RULE_SETUP
6039 {
6040   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6041   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6042   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
6043   switch (YY_START) {
6044    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
6045    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6046    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
6047    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6048    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6049    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
6050    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6051   }
6052  }
6053         YY_BREAK
6054 case 101:
6055 YY_RULE_SETUP
6056 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6057         YY_BREAK
6058 case 102:
6059 YY_RULE_SETUP
6060 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6061         YY_BREAK
6062 case YY_STATE_EOF(AL_surfxml_trace_connect):
6063 FAIL("EOF in attribute list of `trace_connect' element.");
6064         YY_BREAK
6065
6066 case 103:
6067 /* rule 103 can match eol */
6068 YY_RULE_SETUP
6069 {
6070   LEAVE;
6071   ETag_surfxml_trace_connect();
6072   popbuffer(); /* attribute */
6073   switch (YY_START) {
6074    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
6075    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6076    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
6077    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6078    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6079    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
6080    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6081   }
6082  }
6083         YY_BREAK
6084 case 104:
6085 /* rule 104 can match eol */
6086 YY_RULE_SETUP
6087 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6088         YY_BREAK
6089 case 105:
6090 YY_RULE_SETUP
6091 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6092         YY_BREAK
6093 case YY_STATE_EOF(E_surfxml_trace_connect):
6094 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6095         YY_BREAK
6096
6097 case 106:
6098 /* rule 106 can match eol */
6099 YY_RULE_SETUP
6100 FAIL("Starting tag <AS> is not allowed here.");
6101         YY_BREAK
6102 case 107:
6103 /* rule 107 can match eol */
6104 YY_RULE_SETUP
6105 {
6106   AX_surfxml_AS_id = 0;
6107   surfxml_AS_id_isset = 0;
6108   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6109   surfxml_AS_routing_isset = 0;
6110   ENTER(AL_surfxml_AS); pushbuffer(0);
6111   }
6112         YY_BREAK
6113
6114 case 108:
6115 /* rule 108 can match eol */
6116 YY_RULE_SETUP
6117 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);
6118         YY_BREAK
6119 case 109:
6120 /* rule 109 can match eol */
6121 YY_RULE_SETUP
6122 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);
6123         YY_BREAK
6124 case 110:
6125 /* rule 110 can match eol */
6126 case 111:
6127 /* rule 111 can match eol */
6128 YY_RULE_SETUP
6129 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6130         YY_BREAK
6131 case 112:
6132 /* rule 112 can match eol */
6133 case 113:
6134 /* rule 113 can match eol */
6135 YY_RULE_SETUP
6136 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6137         YY_BREAK
6138 case 114:
6139 /* rule 114 can match eol */
6140 case 115:
6141 /* rule 115 can match eol */
6142 YY_RULE_SETUP
6143 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6144         YY_BREAK
6145 case 116:
6146 /* rule 116 can match eol */
6147 case 117:
6148 /* rule 117 can match eol */
6149 YY_RULE_SETUP
6150 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6151         YY_BREAK
6152 case 118:
6153 /* rule 118 can match eol */
6154 case 119:
6155 /* rule 119 can match eol */
6156 YY_RULE_SETUP
6157 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6158         YY_BREAK
6159 case 120:
6160 /* rule 120 can match eol */
6161 case 121:
6162 /* rule 121 can match eol */
6163 YY_RULE_SETUP
6164 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6165         YY_BREAK
6166 case 122:
6167 /* rule 122 can match eol */
6168 case 123:
6169 /* rule 123 can match eol */
6170 YY_RULE_SETUP
6171 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6172         YY_BREAK
6173 case 124:
6174 /* rule 124 can match eol */
6175 case 125:
6176 /* rule 125 can match eol */
6177 YY_RULE_SETUP
6178 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6179         YY_BREAK
6180 case 126:
6181 YY_RULE_SETUP
6182 {
6183   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6184   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6185  }
6186         YY_BREAK
6187 case 127:
6188 YY_RULE_SETUP
6189 {
6190   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6191   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6192   switch (YY_START) {
6193    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6194    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6195    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6196   }
6197  }
6198         YY_BREAK
6199 case 128:
6200 YY_RULE_SETUP
6201 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6202         YY_BREAK
6203 case 129:
6204 YY_RULE_SETUP
6205 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6206         YY_BREAK
6207 case YY_STATE_EOF(AL_surfxml_AS):
6208 FAIL("EOF in attribute list of `AS' element.");
6209         YY_BREAK
6210
6211 case 130:
6212 /* rule 130 can match eol */
6213 YY_RULE_SETUP
6214 {
6215   LEAVE;
6216   ETag_surfxml_AS();
6217   popbuffer(); /* attribute */
6218   switch (YY_START) {
6219    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6220    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6221    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6222   }
6223  }
6224         YY_BREAK
6225 case 131:
6226 /* rule 131 can match eol */
6227 YY_RULE_SETUP
6228 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6229         YY_BREAK
6230 case 132:
6231 YY_RULE_SETUP
6232 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6233         YY_BREAK
6234 case YY_STATE_EOF(S_surfxml_AS_9):
6235 case YY_STATE_EOF(S_surfxml_AS_1):
6236 case YY_STATE_EOF(S_surfxml_AS_11):
6237 case YY_STATE_EOF(S_surfxml_AS_6):
6238 case YY_STATE_EOF(E_surfxml_AS):
6239 case YY_STATE_EOF(S_surfxml_AS_3):
6240 case YY_STATE_EOF(S_surfxml_AS_13):
6241 case YY_STATE_EOF(S_surfxml_AS_8):
6242 case YY_STATE_EOF(S_surfxml_AS):
6243 case YY_STATE_EOF(S_surfxml_AS_4):
6244 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6245         YY_BREAK
6246
6247 case 133:
6248 /* rule 133 can match eol */
6249 YY_RULE_SETUP
6250 FAIL("Starting tag <storage_type> is not allowed here.");
6251         YY_BREAK
6252 case 134:
6253 /* rule 134 can match eol */
6254 YY_RULE_SETUP
6255 {
6256   AX_surfxml_storage_type_id = 0;
6257   surfxml_storage_type_id_isset = 0;
6258   AX_surfxml_storage_type_model = 0;
6259   surfxml_storage_type_model_isset = 0;
6260   AX_surfxml_storage_type_size = 0;
6261   surfxml_storage_type_size_isset = 0;
6262   AX_surfxml_storage_type_content = 0;
6263   surfxml_storage_type_content_isset = 0;
6264   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6265   }
6266         YY_BREAK
6267
6268 case 135:
6269 /* rule 135 can match eol */
6270 YY_RULE_SETUP
6271 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);
6272         YY_BREAK
6273 case 136:
6274 /* rule 136 can match eol */
6275 YY_RULE_SETUP
6276 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);
6277         YY_BREAK
6278 case 137:
6279 /* rule 137 can match eol */
6280 YY_RULE_SETUP
6281 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);
6282         YY_BREAK
6283 case 138:
6284 /* rule 138 can match eol */
6285 YY_RULE_SETUP
6286 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);
6287         YY_BREAK
6288 case 139:
6289 /* rule 139 can match eol */
6290 YY_RULE_SETUP
6291 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);
6292         YY_BREAK
6293 case 140:
6294 /* rule 140 can match eol */
6295 YY_RULE_SETUP
6296 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);
6297         YY_BREAK
6298 case 141:
6299 /* rule 141 can match eol */
6300 YY_RULE_SETUP
6301 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);
6302         YY_BREAK
6303 case 142:
6304 /* rule 142 can match eol */
6305 YY_RULE_SETUP
6306 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);
6307         YY_BREAK
6308 case 143:
6309 YY_RULE_SETUP
6310 {
6311   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6312   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6313   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6314   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6315  }
6316         YY_BREAK
6317 case 144:
6318 YY_RULE_SETUP
6319 {
6320   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6321   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6322   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6323   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6324   switch (YY_START) {
6325    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6326    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6327   }
6328  }
6329         YY_BREAK
6330 case 145:
6331 YY_RULE_SETUP
6332 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6333         YY_BREAK
6334 case 146:
6335 YY_RULE_SETUP
6336 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6337         YY_BREAK
6338 case YY_STATE_EOF(AL_surfxml_storage_type):
6339 FAIL("EOF in attribute list of `storage_type' element.");
6340         YY_BREAK
6341
6342 case 147:
6343 /* rule 147 can match eol */
6344 YY_RULE_SETUP
6345 {
6346   LEAVE;
6347   ETag_surfxml_storage_type();
6348   popbuffer(); /* attribute */
6349   switch (YY_START) {
6350    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6351    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6352   }
6353  }
6354         YY_BREAK
6355 case 148:
6356 /* rule 148 can match eol */
6357 YY_RULE_SETUP
6358 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6359         YY_BREAK
6360 case 149:
6361 YY_RULE_SETUP
6362 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6363         YY_BREAK
6364 case YY_STATE_EOF(E_surfxml_storage_type):
6365 case YY_STATE_EOF(S_surfxml_storage_type_2):
6366 case YY_STATE_EOF(S_surfxml_storage_type):
6367 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6368         YY_BREAK
6369
6370 case 150:
6371 /* rule 150 can match eol */
6372 YY_RULE_SETUP
6373 FAIL("Starting tag <storage> is not allowed here.");
6374         YY_BREAK
6375 case 151:
6376 /* rule 151 can match eol */
6377 YY_RULE_SETUP
6378 {
6379   AX_surfxml_storage_id = 0;
6380   surfxml_storage_id_isset = 0;
6381   AX_surfxml_storage_typeId = 0;
6382   surfxml_storage_typeId_isset = 0;
6383   AX_surfxml_storage_content = 0;
6384   surfxml_storage_content_isset = 0;
6385   ENTER(AL_surfxml_storage); pushbuffer(0);
6386   }
6387         YY_BREAK
6388
6389 case 152:
6390 /* rule 152 can match eol */
6391 YY_RULE_SETUP
6392 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);
6393         YY_BREAK
6394 case 153:
6395 /* rule 153 can match eol */
6396 YY_RULE_SETUP
6397 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);
6398         YY_BREAK
6399 case 154:
6400 /* rule 154 can match eol */
6401 YY_RULE_SETUP
6402 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);
6403         YY_BREAK
6404 case 155:
6405 /* rule 155 can match eol */
6406 YY_RULE_SETUP
6407 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);
6408         YY_BREAK
6409 case 156:
6410 /* rule 156 can match eol */
6411 YY_RULE_SETUP
6412 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);
6413         YY_BREAK
6414 case 157:
6415 /* rule 157 can match eol */
6416 YY_RULE_SETUP
6417 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);
6418         YY_BREAK
6419 case 158:
6420 YY_RULE_SETUP
6421 {
6422   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6423   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6424   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6425  }
6426         YY_BREAK
6427 case 159:
6428 YY_RULE_SETUP
6429 {
6430   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6431   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6432   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6433   switch (YY_START) {
6434    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6435    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6436   }
6437  }
6438         YY_BREAK
6439 case 160:
6440 YY_RULE_SETUP
6441 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6442         YY_BREAK
6443 case 161:
6444 YY_RULE_SETUP
6445 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6446         YY_BREAK
6447 case YY_STATE_EOF(AL_surfxml_storage):
6448 FAIL("EOF in attribute list of `storage' element.");
6449         YY_BREAK
6450
6451 case 162:
6452 /* rule 162 can match eol */
6453 YY_RULE_SETUP
6454 {
6455   LEAVE;
6456   ETag_surfxml_storage();
6457   popbuffer(); /* attribute */
6458   switch (YY_START) {
6459    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6460    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6461   }
6462  }
6463         YY_BREAK
6464 case 163:
6465 /* rule 163 can match eol */
6466 YY_RULE_SETUP
6467 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6468         YY_BREAK
6469 case 164:
6470 YY_RULE_SETUP
6471 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6472         YY_BREAK
6473 case YY_STATE_EOF(E_surfxml_storage):
6474 case YY_STATE_EOF(S_surfxml_storage):
6475 case YY_STATE_EOF(S_surfxml_storage_2):
6476 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6477         YY_BREAK
6478
6479 case 165:
6480 /* rule 165 can match eol */
6481 YY_RULE_SETUP
6482 FAIL("Starting tag <mount> is not allowed here.");
6483         YY_BREAK
6484 case 166:
6485 /* rule 166 can match eol */
6486 YY_RULE_SETUP
6487 {
6488   AX_surfxml_mount_id = 0;
6489   surfxml_mount_id_isset = 0;
6490   AX_surfxml_mount_name = 0;
6491   surfxml_mount_name_isset = 0;
6492   ENTER(AL_surfxml_mount); pushbuffer(0);
6493   }
6494         YY_BREAK
6495
6496 case 167:
6497 /* rule 167 can match eol */
6498 YY_RULE_SETUP
6499 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6500         YY_BREAK
6501 case 168:
6502 /* rule 168 can match eol */
6503 YY_RULE_SETUP
6504 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6505         YY_BREAK
6506 case 169:
6507 /* rule 169 can match eol */
6508 YY_RULE_SETUP
6509 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);
6510         YY_BREAK
6511 case 170:
6512 /* rule 170 can match eol */
6513 YY_RULE_SETUP
6514 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);
6515         YY_BREAK
6516 case 171:
6517 YY_RULE_SETUP
6518 {
6519   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6520   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6521   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6522  }
6523         YY_BREAK
6524 case 172:
6525 YY_RULE_SETUP
6526 {
6527   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6528   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6529   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6530   switch (YY_START) {
6531    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6532   }
6533  }
6534         YY_BREAK
6535 case 173:
6536 YY_RULE_SETUP
6537 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6538         YY_BREAK
6539 case 174:
6540 YY_RULE_SETUP
6541 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6542         YY_BREAK
6543 case YY_STATE_EOF(AL_surfxml_mount):
6544 FAIL("EOF in attribute list of `mount' element.");
6545         YY_BREAK
6546
6547 case 175:
6548 /* rule 175 can match eol */
6549 YY_RULE_SETUP
6550 {
6551   LEAVE;
6552   ETag_surfxml_mount();
6553   popbuffer(); /* attribute */
6554   switch (YY_START) {
6555    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6556   }
6557  }
6558         YY_BREAK
6559 case 176:
6560 /* rule 176 can match eol */
6561 YY_RULE_SETUP
6562 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6563         YY_BREAK
6564 case 177:
6565 YY_RULE_SETUP
6566 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6567         YY_BREAK
6568 case YY_STATE_EOF(E_surfxml_mount):
6569 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6570         YY_BREAK
6571
6572 case 178:
6573 /* rule 178 can match eol */
6574 YY_RULE_SETUP
6575 FAIL("Starting tag <mstorage> is not allowed here.");
6576         YY_BREAK
6577 case 179:
6578 /* rule 179 can match eol */
6579 YY_RULE_SETUP
6580 {
6581   AX_surfxml_mstorage_typeId = 0;
6582   surfxml_mstorage_typeId_isset = 0;
6583   AX_surfxml_mstorage_name = 0;
6584   surfxml_mstorage_name_isset = 0;
6585   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6586   }
6587         YY_BREAK
6588
6589 case 180:
6590 /* rule 180 can match eol */
6591 YY_RULE_SETUP
6592 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);
6593         YY_BREAK
6594 case 181:
6595 /* rule 181 can match eol */
6596 YY_RULE_SETUP
6597 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);
6598         YY_BREAK
6599 case 182:
6600 /* rule 182 can match eol */
6601 YY_RULE_SETUP
6602 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);
6603         YY_BREAK
6604 case 183:
6605 /* rule 183 can match eol */
6606 YY_RULE_SETUP
6607 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);
6608         YY_BREAK
6609 case 184:
6610 YY_RULE_SETUP
6611 {
6612   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6613   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6614   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6615  }
6616         YY_BREAK
6617 case 185:
6618 YY_RULE_SETUP
6619 {
6620   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6621   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6622   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6623   switch (YY_START) {
6624    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6625   }
6626  }
6627         YY_BREAK
6628 case 186:
6629 YY_RULE_SETUP
6630 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6631         YY_BREAK
6632 case 187:
6633 YY_RULE_SETUP
6634 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6635         YY_BREAK
6636 case YY_STATE_EOF(AL_surfxml_mstorage):
6637 FAIL("EOF in attribute list of `mstorage' element.");
6638         YY_BREAK
6639
6640 case 188:
6641 /* rule 188 can match eol */
6642 YY_RULE_SETUP
6643 {
6644   LEAVE;
6645   ETag_surfxml_mstorage();
6646   popbuffer(); /* attribute */
6647   switch (YY_START) {
6648    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6649   }
6650  }
6651         YY_BREAK
6652 case 189:
6653 /* rule 189 can match eol */
6654 YY_RULE_SETUP
6655 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6656         YY_BREAK
6657 case 190:
6658 YY_RULE_SETUP
6659 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6660         YY_BREAK
6661 case YY_STATE_EOF(E_surfxml_mstorage):
6662 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6663         YY_BREAK
6664
6665 case 191:
6666 /* rule 191 can match eol */
6667 YY_RULE_SETUP
6668 FAIL("Starting tag <host> is not allowed here.");
6669         YY_BREAK
6670 case 192:
6671 /* rule 192 can match eol */
6672 YY_RULE_SETUP
6673 {
6674   AX_surfxml_host_id = 0;
6675   surfxml_host_id_isset = 0;
6676   AX_surfxml_host_power = 0;
6677   surfxml_host_power_isset = 0;
6678   AX_surfxml_host_core = 16;
6679   surfxml_host_core_isset = 0;
6680   AX_surfxml_host_availability = 18;
6681   surfxml_host_availability_isset = 0;
6682   AX_surfxml_host_availability_file = 0;
6683   surfxml_host_availability_file_isset = 0;
6684   AX_surfxml_host_state = A_surfxml_host_state_ON;
6685   surfxml_host_state_isset = 0;
6686   AX_surfxml_host_state_file = 0;
6687   surfxml_host_state_file_isset = 0;
6688   AX_surfxml_host_coordinates = 0;
6689   surfxml_host_coordinates_isset = 0;
6690   ENTER(AL_surfxml_host); pushbuffer(0);
6691   }
6692         YY_BREAK
6693
6694 case 193:
6695 /* rule 193 can match eol */
6696 YY_RULE_SETUP
6697 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);
6698         YY_BREAK
6699 case 194:
6700 /* rule 194 can match eol */
6701 YY_RULE_SETUP
6702 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);
6703         YY_BREAK
6704 case 195:
6705 /* rule 195 can match eol */
6706 YY_RULE_SETUP
6707 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6708         YY_BREAK
6709 case 196:
6710 /* rule 196 can match eol */
6711 YY_RULE_SETUP
6712 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6713         YY_BREAK
6714 case 197:
6715 /* rule 197 can match eol */
6716 YY_RULE_SETUP
6717 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);
6718         YY_BREAK
6719 case 198:
6720 /* rule 198 can match eol */
6721 YY_RULE_SETUP
6722 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);
6723         YY_BREAK
6724 case 199:
6725 /* rule 199 can match eol */
6726 YY_RULE_SETUP
6727 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);
6728         YY_BREAK
6729 case 200:
6730 /* rule 200 can match eol */
6731 YY_RULE_SETUP
6732 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);
6733         YY_BREAK
6734 case 201:
6735 /* rule 201 can match eol */
6736 YY_RULE_SETUP
6737 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);
6738         YY_BREAK
6739 case 202:
6740 /* rule 202 can match eol */
6741 YY_RULE_SETUP
6742 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);
6743         YY_BREAK
6744 case 203:
6745 /* rule 203 can match eol */
6746 case 204:
6747 /* rule 204 can match eol */
6748 YY_RULE_SETUP
6749 A_surfxml_host_state = A_surfxml_host_state_ON;
6750         YY_BREAK
6751 case 205:
6752 /* rule 205 can match eol */
6753 case 206:
6754 /* rule 206 can match eol */
6755 YY_RULE_SETUP
6756 A_surfxml_host_state = A_surfxml_host_state_OFF;
6757         YY_BREAK
6758 case 207:
6759 /* rule 207 can match eol */
6760 YY_RULE_SETUP
6761 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);
6762         YY_BREAK
6763 case 208:
6764 /* rule 208 can match eol */
6765 YY_RULE_SETUP
6766 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);
6767         YY_BREAK
6768 case 209:
6769 /* rule 209 can match eol */
6770 YY_RULE_SETUP
6771 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);
6772         YY_BREAK
6773 case 210:
6774 /* rule 210 can match eol */
6775 YY_RULE_SETUP
6776 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);
6777         YY_BREAK
6778 case 211:
6779 YY_RULE_SETUP
6780 {
6781   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6782   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6783   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6784  }
6785         YY_BREAK
6786 case 212:
6787 YY_RULE_SETUP
6788 {
6789   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6790   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6791   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6792   switch (YY_START) {
6793    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6794   }
6795  }
6796         YY_BREAK
6797 case 213:
6798 YY_RULE_SETUP
6799 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6800         YY_BREAK
6801 case 214:
6802 YY_RULE_SETUP
6803 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6804         YY_BREAK
6805 case YY_STATE_EOF(AL_surfxml_host):
6806 FAIL("EOF in attribute list of `host' element.");
6807         YY_BREAK
6808
6809 case 215:
6810 /* rule 215 can match eol */
6811 YY_RULE_SETUP
6812 {
6813   LEAVE;
6814   ETag_surfxml_host();
6815   popbuffer(); /* attribute */
6816   switch (YY_START) {
6817    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6818   }
6819  }
6820         YY_BREAK
6821 case 216:
6822 /* rule 216 can match eol */
6823 YY_RULE_SETUP
6824 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6825         YY_BREAK
6826 case 217:
6827 YY_RULE_SETUP
6828 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6829         YY_BREAK
6830 case YY_STATE_EOF(S_surfxml_host):
6831 case YY_STATE_EOF(E_surfxml_host):
6832 case YY_STATE_EOF(S_surfxml_host_2):
6833 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6834         YY_BREAK
6835
6836 case 218:
6837 /* rule 218 can match eol */
6838 YY_RULE_SETUP
6839 FAIL("Starting tag <host_link> is not allowed here.");
6840         YY_BREAK
6841 case 219:
6842 /* rule 219 can match eol */
6843 YY_RULE_SETUP
6844 {
6845   AX_surfxml_host_link_id = 0;
6846   surfxml_host_link_id_isset = 0;
6847   AX_surfxml_host_link_up = 0;
6848   surfxml_host_link_up_isset = 0;
6849   AX_surfxml_host_link_down = 0;
6850   surfxml_host_link_down_isset = 0;
6851   ENTER(AL_surfxml_host_link); pushbuffer(0);
6852   }
6853         YY_BREAK
6854
6855 case 220:
6856 /* rule 220 can match eol */
6857 YY_RULE_SETUP
6858 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);
6859         YY_BREAK
6860 case 221:
6861 /* rule 221 can match eol */
6862 YY_RULE_SETUP
6863 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);
6864         YY_BREAK
6865 case 222:
6866 /* rule 222 can match eol */
6867 YY_RULE_SETUP
6868 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);
6869         YY_BREAK
6870 case 223:
6871 /* rule 223 can match eol */
6872 YY_RULE_SETUP
6873 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);
6874         YY_BREAK
6875 case 224:
6876 /* rule 224 can match eol */
6877 YY_RULE_SETUP
6878 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);
6879         YY_BREAK
6880 case 225:
6881 /* rule 225 can match eol */
6882 YY_RULE_SETUP
6883 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);
6884         YY_BREAK
6885 case 226:
6886 YY_RULE_SETUP
6887 {
6888   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6889   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6890   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6891   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6892  }
6893         YY_BREAK
6894 case 227:
6895 YY_RULE_SETUP
6896 {
6897   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6898   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6899   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6900   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6901   switch (YY_START) {
6902    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6903   }
6904  }
6905         YY_BREAK
6906 case 228:
6907 YY_RULE_SETUP
6908 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6909         YY_BREAK
6910 case 229:
6911 YY_RULE_SETUP
6912 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6913         YY_BREAK
6914 case YY_STATE_EOF(AL_surfxml_host_link):
6915 FAIL("EOF in attribute list of `host_link' element.");
6916         YY_BREAK
6917
6918 case 230:
6919 /* rule 230 can match eol */
6920 YY_RULE_SETUP
6921 {
6922   LEAVE;
6923   ETag_surfxml_host_link();
6924   popbuffer(); /* attribute */
6925   switch (YY_START) {
6926    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6927   }
6928  }
6929         YY_BREAK
6930 case 231:
6931 /* rule 231 can match eol */
6932 YY_RULE_SETUP
6933 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6934         YY_BREAK
6935 case 232:
6936 YY_RULE_SETUP
6937 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6938         YY_BREAK
6939 case YY_STATE_EOF(E_surfxml_host_link):
6940 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6941         YY_BREAK
6942
6943 case 233:
6944 /* rule 233 can match eol */
6945 YY_RULE_SETUP
6946 FAIL("Starting tag <cluster> is not allowed here.");
6947         YY_BREAK
6948 case 234:
6949 /* rule 234 can match eol */
6950 YY_RULE_SETUP
6951 {
6952   AX_surfxml_cluster_id = 0;
6953   surfxml_cluster_id_isset = 0;
6954   AX_surfxml_cluster_prefix = 0;
6955   surfxml_cluster_prefix_isset = 0;
6956   AX_surfxml_cluster_suffix = 0;
6957   surfxml_cluster_suffix_isset = 0;
6958   AX_surfxml_cluster_radical = 0;
6959   surfxml_cluster_radical_isset = 0;
6960   AX_surfxml_cluster_power = 0;
6961   surfxml_cluster_power_isset = 0;
6962   AX_surfxml_cluster_core = 22;
6963   surfxml_cluster_core_isset = 0;
6964   AX_surfxml_cluster_bw = 0;
6965   surfxml_cluster_bw_isset = 0;
6966   AX_surfxml_cluster_lat = 0;
6967   surfxml_cluster_lat_isset = 0;
6968   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6969   surfxml_cluster_sharing_policy_isset = 0;
6970   AX_surfxml_cluster_bb_bw = 0;
6971   surfxml_cluster_bb_bw_isset = 0;
6972   AX_surfxml_cluster_bb_lat = 0;
6973   surfxml_cluster_bb_lat_isset = 0;
6974   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6975   surfxml_cluster_bb_sharing_policy_isset = 0;
6976   AX_surfxml_cluster_availability_file = 0;
6977   surfxml_cluster_availability_file_isset = 0;
6978   AX_surfxml_cluster_state_file = 0;
6979   surfxml_cluster_state_file_isset = 0;
6980   AX_surfxml_cluster_router_id = 0;
6981   surfxml_cluster_router_id_isset = 0;
6982   ENTER(AL_surfxml_cluster); pushbuffer(0);
6983   }
6984         YY_BREAK
6985
6986 case 235:
6987 /* rule 235 can match eol */
6988 YY_RULE_SETUP
6989 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);
6990         YY_BREAK
6991 case 236:
6992 /* rule 236 can match eol */
6993 YY_RULE_SETUP
6994 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);
6995         YY_BREAK
6996 case 237:
6997 /* rule 237 can match eol */
6998 YY_RULE_SETUP
6999 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);
7000         YY_BREAK
7001 case 238:
7002 /* rule 238 can match eol */
7003 YY_RULE_SETUP
7004 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);
7005         YY_BREAK
7006 case 239:
7007 /* rule 239 can match eol */
7008 YY_RULE_SETUP
7009 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);
7010         YY_BREAK
7011 case 240:
7012 /* rule 240 can match eol */
7013 YY_RULE_SETUP
7014 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);
7015         YY_BREAK
7016 case 241:
7017 /* rule 241 can match eol */
7018 YY_RULE_SETUP
7019 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);
7020         YY_BREAK
7021 case 242:
7022 /* rule 242 can match eol */
7023 YY_RULE_SETUP
7024 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);
7025         YY_BREAK
7026 case 243:
7027 /* rule 243 can match eol */
7028 YY_RULE_SETUP
7029 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7030         YY_BREAK
7031 case 244:
7032 /* rule 244 can match eol */
7033 YY_RULE_SETUP
7034 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7035         YY_BREAK
7036 case 245:
7037 /* rule 245 can match eol */
7038 YY_RULE_SETUP
7039 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);
7040         YY_BREAK
7041 case 246:
7042 /* rule 246 can match eol */
7043 YY_RULE_SETUP
7044 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);
7045         YY_BREAK
7046 case 247:
7047 /* rule 247 can match eol */
7048 YY_RULE_SETUP
7049 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);
7050         YY_BREAK
7051 case 248:
7052 /* rule 248 can match eol */
7053 YY_RULE_SETUP
7054 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);
7055         YY_BREAK
7056 case 249:
7057 /* rule 249 can match eol */
7058 YY_RULE_SETUP
7059 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);
7060         YY_BREAK
7061 case 250:
7062 /* rule 250 can match eol */
7063 YY_RULE_SETUP
7064 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);
7065         YY_BREAK
7066 case 251:
7067 /* rule 251 can match eol */
7068 case 252:
7069 /* rule 252 can match eol */
7070 YY_RULE_SETUP
7071 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
7072         YY_BREAK
7073 case 253:
7074 /* rule 253 can match eol */
7075 case 254:
7076 /* rule 254 can match eol */
7077 YY_RULE_SETUP
7078 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
7079         YY_BREAK
7080 case 255:
7081 /* rule 255 can match eol */
7082 case 256:
7083 /* rule 256 can match eol */
7084 YY_RULE_SETUP
7085 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
7086         YY_BREAK
7087 case 257:
7088 /* rule 257 can match eol */
7089 YY_RULE_SETUP
7090 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);
7091         YY_BREAK
7092 case 258:
7093 /* rule 258 can match eol */
7094 YY_RULE_SETUP
7095 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);
7096         YY_BREAK
7097 case 259:
7098 /* rule 259 can match eol */
7099 YY_RULE_SETUP
7100 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);
7101         YY_BREAK
7102 case 260:
7103 /* rule 260 can match eol */
7104 YY_RULE_SETUP
7105 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);
7106         YY_BREAK
7107 case 261:
7108 /* rule 261 can match eol */
7109 case 262:
7110 /* rule 262 can match eol */
7111 YY_RULE_SETUP
7112 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
7113         YY_BREAK
7114 case 263:
7115 /* rule 263 can match eol */
7116 case 264:
7117 /* rule 264 can match eol */
7118 YY_RULE_SETUP
7119 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
7120         YY_BREAK
7121 case 265:
7122 /* rule 265 can match eol */
7123 YY_RULE_SETUP
7124 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);
7125         YY_BREAK
7126 case 266:
7127 /* rule 266 can match eol */
7128 YY_RULE_SETUP
7129 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);
7130         YY_BREAK
7131 case 267:
7132 /* rule 267 can match eol */
7133 YY_RULE_SETUP
7134 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);
7135         YY_BREAK
7136 case 268:
7137 /* rule 268 can match eol */
7138 YY_RULE_SETUP
7139 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);
7140         YY_BREAK
7141 case 269:
7142 /* rule 269 can match eol */
7143 YY_RULE_SETUP
7144 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);
7145         YY_BREAK
7146 case 270:
7147 /* rule 270 can match eol */
7148 YY_RULE_SETUP
7149 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);
7150         YY_BREAK
7151 case 271:
7152 YY_RULE_SETUP
7153 {
7154   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7155   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7156   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7157   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7158   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7159   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7160   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7161   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7162  }
7163         YY_BREAK
7164 case 272:
7165 YY_RULE_SETUP
7166 {
7167   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7168   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7169   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7170   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7171   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7172   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7173   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7174   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7175   switch (YY_START) {
7176    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7177    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7178    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7179   }
7180  }
7181         YY_BREAK
7182 case 273:
7183 YY_RULE_SETUP
7184 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7185         YY_BREAK
7186 case 274:
7187 YY_RULE_SETUP
7188 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7189         YY_BREAK
7190 case YY_STATE_EOF(AL_surfxml_cluster):
7191 FAIL("EOF in attribute list of `cluster' element.");
7192         YY_BREAK
7193
7194 case 275:
7195 /* rule 275 can match eol */
7196 YY_RULE_SETUP
7197 {
7198   LEAVE;
7199   ETag_surfxml_cluster();
7200   popbuffer(); /* attribute */
7201   switch (YY_START) {
7202    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7203    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7204    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7205   }
7206  }
7207         YY_BREAK
7208 case 276:
7209 /* rule 276 can match eol */
7210 YY_RULE_SETUP
7211 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7212         YY_BREAK
7213 case 277:
7214 YY_RULE_SETUP
7215 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7216         YY_BREAK
7217 case YY_STATE_EOF(E_surfxml_cluster):
7218 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7219         YY_BREAK
7220
7221 case 278:
7222 /* rule 278 can match eol */
7223 YY_RULE_SETUP
7224 FAIL("Starting tag <cabinet> is not allowed here.");
7225         YY_BREAK
7226 case 279:
7227 /* rule 279 can match eol */
7228 YY_RULE_SETUP
7229 {
7230   AX_surfxml_cabinet_id = 0;
7231   surfxml_cabinet_id_isset = 0;
7232   AX_surfxml_cabinet_prefix = 0;
7233   surfxml_cabinet_prefix_isset = 0;
7234   AX_surfxml_cabinet_suffix = 0;
7235   surfxml_cabinet_suffix_isset = 0;
7236   AX_surfxml_cabinet_radical = 0;
7237   surfxml_cabinet_radical_isset = 0;
7238   AX_surfxml_cabinet_power = 0;
7239   surfxml_cabinet_power_isset = 0;
7240   AX_surfxml_cabinet_bw = 0;
7241   surfxml_cabinet_bw_isset = 0;
7242   AX_surfxml_cabinet_lat = 0;
7243   surfxml_cabinet_lat_isset = 0;
7244   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7245   }
7246         YY_BREAK
7247
7248 case 280:
7249 /* rule 280 can match eol */
7250 YY_RULE_SETUP
7251 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);
7252         YY_BREAK
7253 case 281:
7254 /* rule 281 can match eol */
7255 YY_RULE_SETUP
7256 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);
7257         YY_BREAK
7258 case 282:
7259 /* rule 282 can match eol */
7260 YY_RULE_SETUP
7261 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);
7262         YY_BREAK
7263 case 283:
7264 /* rule 283 can match eol */
7265 YY_RULE_SETUP
7266 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);
7267         YY_BREAK
7268 case 284:
7269 /* rule 284 can match eol */
7270 YY_RULE_SETUP
7271 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);
7272         YY_BREAK
7273 case 285:
7274 /* rule 285 can match eol */
7275 YY_RULE_SETUP
7276 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);
7277         YY_BREAK
7278 case 286:
7279 /* rule 286 can match eol */
7280 YY_RULE_SETUP
7281 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);
7282         YY_BREAK
7283 case 287:
7284 /* rule 287 can match eol */
7285 YY_RULE_SETUP
7286 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);
7287         YY_BREAK
7288 case 288:
7289 /* rule 288 can match eol */
7290 YY_RULE_SETUP
7291 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7292         YY_BREAK
7293 case 289:
7294 /* rule 289 can match eol */
7295 YY_RULE_SETUP
7296 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7297         YY_BREAK
7298 case 290:
7299 /* rule 290 can match eol */
7300 YY_RULE_SETUP
7301 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);
7302         YY_BREAK
7303 case 291:
7304 /* rule 291 can match eol */
7305 YY_RULE_SETUP
7306 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);
7307         YY_BREAK
7308 case 292:
7309 /* rule 292 can match eol */
7310 YY_RULE_SETUP
7311 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);
7312         YY_BREAK
7313 case 293:
7314 /* rule 293 can match eol */
7315 YY_RULE_SETUP
7316 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);
7317         YY_BREAK
7318 case 294:
7319 YY_RULE_SETUP
7320 {
7321   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7322   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7323   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7324   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7325   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7326   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7327   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7328   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7329  }
7330         YY_BREAK
7331 case 295:
7332 YY_RULE_SETUP
7333 {
7334   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7335   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7336   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7337   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7338   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7339   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7340   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7341   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7342   switch (YY_START) {
7343    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7344    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7345    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7346    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7347   }
7348  }
7349         YY_BREAK
7350 case 296:
7351 YY_RULE_SETUP
7352 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7353         YY_BREAK
7354 case 297:
7355 YY_RULE_SETUP
7356 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7357         YY_BREAK
7358 case YY_STATE_EOF(AL_surfxml_cabinet):
7359 FAIL("EOF in attribute list of `cabinet' element.");
7360         YY_BREAK
7361
7362 case 298:
7363 /* rule 298 can match eol */
7364 YY_RULE_SETUP
7365 {
7366   LEAVE;
7367   ETag_surfxml_cabinet();
7368   popbuffer(); /* attribute */
7369   switch (YY_START) {
7370    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7371    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7372    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7373    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7374   }
7375  }
7376         YY_BREAK
7377 case 299:
7378 /* rule 299 can match eol */
7379 YY_RULE_SETUP
7380 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7381         YY_BREAK
7382 case 300:
7383 YY_RULE_SETUP
7384 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7385         YY_BREAK
7386 case YY_STATE_EOF(E_surfxml_cabinet):
7387 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7388         YY_BREAK
7389
7390 case 301:
7391 /* rule 301 can match eol */
7392 YY_RULE_SETUP
7393 FAIL("Starting tag <peer> is not allowed here.");
7394         YY_BREAK
7395 case 302:
7396 /* rule 302 can match eol */
7397 YY_RULE_SETUP
7398 {
7399   AX_surfxml_peer_id = 0;
7400   surfxml_peer_id_isset = 0;
7401   AX_surfxml_peer_power = 0;
7402   surfxml_peer_power_isset = 0;
7403   AX_surfxml_peer_bw_in = 0;
7404   surfxml_peer_bw_in_isset = 0;
7405   AX_surfxml_peer_bw_out = 0;
7406   surfxml_peer_bw_out_isset = 0;
7407   AX_surfxml_peer_lat = 0;
7408   surfxml_peer_lat_isset = 0;
7409   AX_surfxml_peer_coordinates = 0;
7410   surfxml_peer_coordinates_isset = 0;
7411   AX_surfxml_peer_availability_file = 0;
7412   surfxml_peer_availability_file_isset = 0;
7413   AX_surfxml_peer_state_file = 0;
7414   surfxml_peer_state_file_isset = 0;
7415   ENTER(AL_surfxml_peer); pushbuffer(0);
7416   }
7417         YY_BREAK
7418
7419 case 303:
7420 /* rule 303 can match eol */
7421 YY_RULE_SETUP
7422 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);
7423         YY_BREAK
7424 case 304:
7425 /* rule 304 can match eol */
7426 YY_RULE_SETUP
7427 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);
7428         YY_BREAK
7429 case 305:
7430 /* rule 305 can match eol */
7431 YY_RULE_SETUP
7432 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7433         YY_BREAK
7434 case 306:
7435 /* rule 306 can match eol */
7436 YY_RULE_SETUP
7437 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7438         YY_BREAK
7439 case 307:
7440 /* rule 307 can match eol */
7441 YY_RULE_SETUP
7442 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);
7443         YY_BREAK
7444 case 308:
7445 /* rule 308 can match eol */
7446 YY_RULE_SETUP
7447 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);
7448         YY_BREAK
7449 case 309:
7450 /* rule 309 can match eol */
7451 YY_RULE_SETUP
7452 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);
7453         YY_BREAK
7454 case 310:
7455 /* rule 310 can match eol */
7456 YY_RULE_SETUP
7457 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);
7458         YY_BREAK
7459 case 311:
7460 /* rule 311 can match eol */
7461 YY_RULE_SETUP
7462 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);
7463         YY_BREAK
7464 case 312:
7465 /* rule 312 can match eol */
7466 YY_RULE_SETUP
7467 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);
7468         YY_BREAK
7469 case 313:
7470 /* rule 313 can match eol */
7471 YY_RULE_SETUP
7472 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);
7473         YY_BREAK
7474 case 314:
7475 /* rule 314 can match eol */
7476 YY_RULE_SETUP
7477 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);
7478         YY_BREAK
7479 case 315:
7480 /* rule 315 can match eol */
7481 YY_RULE_SETUP
7482 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);
7483         YY_BREAK
7484 case 316:
7485 /* rule 316 can match eol */
7486 YY_RULE_SETUP
7487 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);
7488         YY_BREAK
7489 case 317:
7490 /* rule 317 can match eol */
7491 YY_RULE_SETUP
7492 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);
7493         YY_BREAK
7494 case 318:
7495 /* rule 318 can match eol */
7496 YY_RULE_SETUP
7497 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);
7498         YY_BREAK
7499 case 319:
7500 YY_RULE_SETUP
7501 {
7502   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7503   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7504   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7505   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7506   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7507   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7508  }
7509         YY_BREAK
7510 case 320:
7511 YY_RULE_SETUP
7512 {
7513   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7514   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7515   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7516   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7517   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7518   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7519   switch (YY_START) {
7520    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7521    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7522    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7523   }
7524  }
7525         YY_BREAK
7526 case 321:
7527 YY_RULE_SETUP
7528 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7529         YY_BREAK
7530 case 322:
7531 YY_RULE_SETUP
7532 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7533         YY_BREAK
7534 case YY_STATE_EOF(AL_surfxml_peer):
7535 FAIL("EOF in attribute list of `peer' element.");
7536         YY_BREAK
7537
7538 case 323:
7539 /* rule 323 can match eol */
7540 YY_RULE_SETUP
7541 {
7542   LEAVE;
7543   ETag_surfxml_peer();
7544   popbuffer(); /* attribute */
7545   switch (YY_START) {
7546    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7547    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7548    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7549   }
7550  }
7551         YY_BREAK
7552 case 324:
7553 /* rule 324 can match eol */
7554 YY_RULE_SETUP
7555 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7556         YY_BREAK
7557 case 325:
7558 YY_RULE_SETUP
7559 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7560         YY_BREAK
7561 case YY_STATE_EOF(E_surfxml_peer):
7562 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7563         YY_BREAK
7564
7565 case 326:
7566 /* rule 326 can match eol */
7567 YY_RULE_SETUP
7568 FAIL("Starting tag <router> is not allowed here.");
7569         YY_BREAK
7570 case 327:
7571 /* rule 327 can match eol */
7572 YY_RULE_SETUP
7573 {
7574   AX_surfxml_router_id = 0;
7575   surfxml_router_id_isset = 0;
7576   AX_surfxml_router_coordinates = 0;
7577   surfxml_router_coordinates_isset = 0;
7578   ENTER(AL_surfxml_router); pushbuffer(0);
7579   }
7580         YY_BREAK
7581
7582 case 328:
7583 /* rule 328 can match eol */
7584 YY_RULE_SETUP
7585 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);
7586         YY_BREAK
7587 case 329:
7588 /* rule 329 can match eol */
7589 YY_RULE_SETUP
7590 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);
7591         YY_BREAK
7592 case 330:
7593 /* rule 330 can match eol */
7594 YY_RULE_SETUP
7595 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);
7596         YY_BREAK
7597 case 331:
7598 /* rule 331 can match eol */
7599 YY_RULE_SETUP
7600 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);
7601         YY_BREAK
7602 case 332:
7603 YY_RULE_SETUP
7604 {
7605   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7606   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7607  }
7608         YY_BREAK
7609 case 333:
7610 YY_RULE_SETUP
7611 {
7612   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7613   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7614   switch (YY_START) {
7615    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7616   }
7617  }
7618         YY_BREAK
7619 case 334:
7620 YY_RULE_SETUP
7621 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7622         YY_BREAK
7623 case 335:
7624 YY_RULE_SETUP
7625 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7626         YY_BREAK
7627 case YY_STATE_EOF(AL_surfxml_router):
7628 FAIL("EOF in attribute list of `router' element.");
7629         YY_BREAK
7630
7631 case 336:
7632 /* rule 336 can match eol */
7633 YY_RULE_SETUP
7634 {
7635   LEAVE;
7636   ETag_surfxml_router();
7637   popbuffer(); /* attribute */
7638   switch (YY_START) {
7639    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7640   }
7641  }
7642         YY_BREAK
7643 case 337:
7644 /* rule 337 can match eol */
7645 YY_RULE_SETUP
7646 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7647         YY_BREAK
7648 case 338:
7649 YY_RULE_SETUP
7650 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7651         YY_BREAK
7652 case YY_STATE_EOF(E_surfxml_router):
7653 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7654         YY_BREAK
7655
7656 case 339:
7657 /* rule 339 can match eol */
7658 YY_RULE_SETUP
7659 FAIL("Starting tag <backbone> is not allowed here.");
7660         YY_BREAK
7661 case 340:
7662 /* rule 340 can match eol */
7663 YY_RULE_SETUP
7664 {
7665   AX_surfxml_backbone_id = 0;
7666   surfxml_backbone_id_isset = 0;
7667   AX_surfxml_backbone_bandwidth = 0;
7668   surfxml_backbone_bandwidth_isset = 0;
7669   AX_surfxml_backbone_latency = 0;
7670   surfxml_backbone_latency_isset = 0;
7671   ENTER(AL_surfxml_backbone); pushbuffer(0);
7672   }
7673         YY_BREAK
7674
7675 case 341:
7676 /* rule 341 can match eol */
7677 YY_RULE_SETUP
7678 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);
7679         YY_BREAK
7680 case 342:
7681 /* rule 342 can match eol */
7682 YY_RULE_SETUP
7683 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);
7684         YY_BREAK
7685 case 343:
7686 /* rule 343 can match eol */
7687 YY_RULE_SETUP
7688 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);
7689         YY_BREAK
7690 case 344:
7691 /* rule 344 can match eol */
7692 YY_RULE_SETUP
7693 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);
7694         YY_BREAK
7695 case 345:
7696 /* rule 345 can match eol */
7697 YY_RULE_SETUP
7698 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);
7699         YY_BREAK
7700 case 346:
7701 /* rule 346 can match eol */
7702 YY_RULE_SETUP
7703 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);
7704         YY_BREAK
7705 case 347:
7706 YY_RULE_SETUP
7707 {
7708   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7709   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7710   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7711   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7712  }
7713         YY_BREAK
7714 case 348:
7715 YY_RULE_SETUP
7716 {
7717   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7718   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7719   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7720   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7721   switch (YY_START) {
7722    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7723    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7724   }
7725  }
7726         YY_BREAK
7727 case 349:
7728 YY_RULE_SETUP
7729 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7730         YY_BREAK
7731 case 350:
7732 YY_RULE_SETUP
7733 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7734         YY_BREAK
7735 case YY_STATE_EOF(AL_surfxml_backbone):
7736 FAIL("EOF in attribute list of `backbone' element.");
7737         YY_BREAK
7738
7739 case 351:
7740 /* rule 351 can match eol */
7741 YY_RULE_SETUP
7742 {
7743   LEAVE;
7744   ETag_surfxml_backbone();
7745   popbuffer(); /* attribute */
7746   switch (YY_START) {
7747    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7748    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7749   }
7750  }
7751         YY_BREAK
7752 case 352:
7753 /* rule 352 can match eol */
7754 YY_RULE_SETUP
7755 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7756         YY_BREAK
7757 case 353:
7758 YY_RULE_SETUP
7759 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7760         YY_BREAK
7761 case YY_STATE_EOF(E_surfxml_backbone):
7762 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7763         YY_BREAK
7764
7765 case 354:
7766 /* rule 354 can match eol */
7767 YY_RULE_SETUP
7768 FAIL("Starting tag <link> is not allowed here.");
7769         YY_BREAK
7770 case 355:
7771 /* rule 355 can match eol */
7772 YY_RULE_SETUP
7773 {
7774   AX_surfxml_link_id = 0;
7775   surfxml_link_id_isset = 0;
7776   AX_surfxml_link_bandwidth = 0;
7777   surfxml_link_bandwidth_isset = 0;
7778   AX_surfxml_link_bandwidth_file = 0;
7779   surfxml_link_bandwidth_file_isset = 0;
7780   AX_surfxml_link_latency = 24;
7781   surfxml_link_latency_isset = 0;
7782   AX_surfxml_link_latency_file = 0;
7783   surfxml_link_latency_file_isset = 0;
7784   AX_surfxml_link_state = A_surfxml_link_state_ON;
7785   surfxml_link_state_isset = 0;
7786   AX_surfxml_link_state_file = 0;
7787   surfxml_link_state_file_isset = 0;
7788   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7789   surfxml_link_sharing_policy_isset = 0;
7790   ENTER(AL_surfxml_link); pushbuffer(0);
7791   }
7792         YY_BREAK
7793
7794 case 356:
7795 /* rule 356 can match eol */
7796 YY_RULE_SETUP
7797 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);
7798         YY_BREAK
7799 case 357:
7800 /* rule 357 can match eol */
7801 YY_RULE_SETUP
7802 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);
7803         YY_BREAK
7804 case 358:
7805 /* rule 358 can match eol */
7806 YY_RULE_SETUP
7807 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);
7808         YY_BREAK
7809 case 359:
7810 /* rule 359 can match eol */
7811 YY_RULE_SETUP
7812 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);
7813         YY_BREAK
7814 case 360:
7815 /* rule 360 can match eol */
7816 YY_RULE_SETUP
7817 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);
7818         YY_BREAK
7819 case 361:
7820 /* rule 361 can match eol */
7821 YY_RULE_SETUP
7822 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);
7823         YY_BREAK
7824 case 362:
7825 /* rule 362 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 363:
7830 /* rule 363 can match eol */
7831 YY_RULE_SETUP
7832 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);
7833         YY_BREAK
7834 case 364:
7835 /* rule 364 can match eol */
7836 YY_RULE_SETUP
7837 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);
7838         YY_BREAK
7839 case 365:
7840 /* rule 365 can match eol */
7841 YY_RULE_SETUP
7842 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);
7843         YY_BREAK
7844 case 366:
7845 /* rule 366 can match eol */
7846 case 367:
7847 /* rule 367 can match eol */
7848 YY_RULE_SETUP
7849 A_surfxml_link_state = A_surfxml_link_state_ON;
7850         YY_BREAK
7851 case 368:
7852 /* rule 368 can match eol */
7853 case 369:
7854 /* rule 369 can match eol */
7855 YY_RULE_SETUP
7856 A_surfxml_link_state = A_surfxml_link_state_OFF;
7857         YY_BREAK
7858 case 370:
7859 /* rule 370 can match eol */
7860 YY_RULE_SETUP
7861 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);
7862         YY_BREAK
7863 case 371:
7864 /* rule 371 can match eol */
7865 YY_RULE_SETUP
7866 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);
7867         YY_BREAK
7868 case 372:
7869 /* rule 372 can match eol */
7870 case 373:
7871 /* rule 373 can match eol */
7872 YY_RULE_SETUP
7873 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7874         YY_BREAK
7875 case 374:
7876 /* rule 374 can match eol */
7877 case 375:
7878 /* rule 375 can match eol */
7879 YY_RULE_SETUP
7880 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7881         YY_BREAK
7882 case 376:
7883 /* rule 376 can match eol */
7884 case 377:
7885 /* rule 377 can match eol */
7886 YY_RULE_SETUP
7887 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7888         YY_BREAK
7889 case 378:
7890 YY_RULE_SETUP
7891 {
7892   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7893   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7894   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7895  }
7896         YY_BREAK
7897 case 379:
7898 YY_RULE_SETUP
7899 {
7900   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7901   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7902   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7903   switch (YY_START) {
7904    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7905    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7906   }
7907  }
7908         YY_BREAK
7909 case 380:
7910 YY_RULE_SETUP
7911 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7912         YY_BREAK
7913 case 381:
7914 YY_RULE_SETUP
7915 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7916         YY_BREAK
7917 case YY_STATE_EOF(AL_surfxml_link):
7918 FAIL("EOF in attribute list of `link' element.");
7919         YY_BREAK
7920
7921 case 382:
7922 /* rule 382 can match eol */
7923 YY_RULE_SETUP
7924 {
7925   LEAVE;
7926   ETag_surfxml_link();
7927   popbuffer(); /* attribute */
7928   switch (YY_START) {
7929    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7930    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7931   }
7932  }
7933         YY_BREAK
7934 case 383:
7935 /* rule 383 can match eol */
7936 YY_RULE_SETUP
7937 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7938         YY_BREAK
7939 case 384:
7940 YY_RULE_SETUP
7941 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7942         YY_BREAK
7943 case YY_STATE_EOF(E_surfxml_link):
7944 case YY_STATE_EOF(S_surfxml_link_2):
7945 case YY_STATE_EOF(S_surfxml_link):
7946 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7947         YY_BREAK
7948
7949 case 385:
7950 /* rule 385 can match eol */
7951 YY_RULE_SETUP
7952 FAIL("Starting tag <route> is not allowed here.");
7953         YY_BREAK
7954 case 386:
7955 /* rule 386 can match eol */
7956 YY_RULE_SETUP
7957 {
7958   AX_surfxml_route_src = 0;
7959   surfxml_route_src_isset = 0;
7960   AX_surfxml_route_dst = 0;
7961   surfxml_route_dst_isset = 0;
7962   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7963   surfxml_route_symmetrical_isset = 0;
7964   ENTER(AL_surfxml_route); pushbuffer(0);
7965   }
7966         YY_BREAK
7967
7968 case 387:
7969 /* rule 387 can match eol */
7970 YY_RULE_SETUP
7971 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);
7972         YY_BREAK
7973 case 388:
7974 /* rule 388 can match eol */
7975 YY_RULE_SETUP
7976 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);
7977         YY_BREAK
7978 case 389:
7979 /* rule 389 can match eol */
7980 YY_RULE_SETUP
7981 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);
7982         YY_BREAK
7983 case 390:
7984 /* rule 390 can match eol */
7985 YY_RULE_SETUP
7986 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);
7987         YY_BREAK
7988 case 391:
7989 /* rule 391 can match eol */
7990 case 392:
7991 /* rule 392 can match eol */
7992 YY_RULE_SETUP
7993 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7994         YY_BREAK
7995 case 393:
7996 /* rule 393 can match eol */
7997 case 394:
7998 /* rule 394 can match eol */
7999 YY_RULE_SETUP
8000 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8001         YY_BREAK
8002 case 395:
8003 YY_RULE_SETUP
8004 {
8005   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8006   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8007   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8008  }
8009         YY_BREAK
8010 case 396:
8011 YY_RULE_SETUP
8012 {
8013   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8014   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8015   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8016   switch (YY_START) {
8017    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8018   }
8019  }
8020         YY_BREAK
8021 case 397:
8022 YY_RULE_SETUP
8023 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8024         YY_BREAK
8025 case 398:
8026 YY_RULE_SETUP
8027 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8028         YY_BREAK
8029 case YY_STATE_EOF(AL_surfxml_route):
8030 FAIL("EOF in attribute list of `route' element.");
8031         YY_BREAK
8032
8033 case 399:
8034 /* rule 399 can match eol */
8035 YY_RULE_SETUP
8036 {
8037   LEAVE;
8038   ETag_surfxml_route();
8039   popbuffer(); /* attribute */
8040   switch (YY_START) {
8041    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8042   }
8043  }
8044         YY_BREAK
8045 case 400:
8046 /* rule 400 can match eol */
8047 YY_RULE_SETUP
8048 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8049         YY_BREAK
8050 case 401:
8051 YY_RULE_SETUP
8052 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8053         YY_BREAK
8054 case YY_STATE_EOF(S_surfxml_route):
8055 case YY_STATE_EOF(S_surfxml_route_2):
8056 case YY_STATE_EOF(E_surfxml_route):
8057 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8058         YY_BREAK
8059
8060 case 402:
8061 /* rule 402 can match eol */
8062 YY_RULE_SETUP
8063 FAIL("Starting tag <ASroute> is not allowed here.");
8064         YY_BREAK
8065 case 403:
8066 /* rule 403 can match eol */
8067 YY_RULE_SETUP
8068 {
8069   AX_surfxml_ASroute_src = 0;
8070   surfxml_ASroute_src_isset = 0;
8071   AX_surfxml_ASroute_dst = 0;
8072   surfxml_ASroute_dst_isset = 0;
8073   AX_surfxml_ASroute_gw_src = 0;
8074   surfxml_ASroute_gw_src_isset = 0;
8075   AX_surfxml_ASroute_gw_dst = 0;
8076   surfxml_ASroute_gw_dst_isset = 0;
8077   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8078   surfxml_ASroute_symmetrical_isset = 0;
8079   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8080   }
8081         YY_BREAK
8082
8083 case 404:
8084 /* rule 404 can match eol */
8085 YY_RULE_SETUP
8086 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);
8087         YY_BREAK
8088 case 405:
8089 /* rule 405 can match eol */
8090 YY_RULE_SETUP
8091 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);
8092         YY_BREAK
8093 case 406:
8094 /* rule 406 can match eol */
8095 YY_RULE_SETUP
8096 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);
8097         YY_BREAK
8098 case 407:
8099 /* rule 407 can match eol */
8100 YY_RULE_SETUP
8101 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);
8102         YY_BREAK
8103 case 408:
8104 /* rule 408 can match eol */
8105 YY_RULE_SETUP
8106 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);
8107         YY_BREAK
8108 case 409:
8109 /* rule 409 can match eol */
8110 YY_RULE_SETUP
8111 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);
8112         YY_BREAK
8113 case 410:
8114 /* rule 410 can match eol */
8115 YY_RULE_SETUP
8116 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);
8117         YY_BREAK
8118 case 411:
8119 /* rule 411 can match eol */
8120 YY_RULE_SETUP
8121 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);
8122         YY_BREAK
8123 case 412:
8124 /* rule 412 can match eol */
8125 case 413:
8126 /* rule 413 can match eol */
8127 YY_RULE_SETUP
8128 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8129         YY_BREAK
8130 case 414:
8131 /* rule 414 can match eol */
8132 case 415:
8133 /* rule 415 can match eol */
8134 YY_RULE_SETUP
8135 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8136         YY_BREAK
8137 case 416:
8138 YY_RULE_SETUP
8139 {
8140   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8141   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8142   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8143   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8144   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8145  }
8146         YY_BREAK
8147 case 417:
8148 YY_RULE_SETUP
8149 {
8150   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8151   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8152   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8153   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8154   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8155   switch (YY_START) {
8156    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8157   }
8158  }
8159         YY_BREAK
8160 case 418:
8161 YY_RULE_SETUP
8162 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8163         YY_BREAK
8164 case 419:
8165 YY_RULE_SETUP
8166 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8167         YY_BREAK
8168 case YY_STATE_EOF(AL_surfxml_ASroute):
8169 FAIL("EOF in attribute list of `ASroute' element.");
8170         YY_BREAK
8171
8172 case 420:
8173 /* rule 420 can match eol */
8174 YY_RULE_SETUP
8175 {
8176   LEAVE;
8177   ETag_surfxml_ASroute();
8178   popbuffer(); /* attribute */
8179   switch (YY_START) {
8180    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8181   }
8182  }
8183         YY_BREAK
8184 case 421:
8185 /* rule 421 can match eol */
8186 YY_RULE_SETUP
8187 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8188         YY_BREAK
8189 case 422:
8190 YY_RULE_SETUP
8191 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8192         YY_BREAK
8193 case YY_STATE_EOF(E_surfxml_ASroute):
8194 case YY_STATE_EOF(S_surfxml_ASroute):
8195 case YY_STATE_EOF(S_surfxml_ASroute_2):
8196 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8197         YY_BREAK
8198
8199 case 423:
8200 /* rule 423 can match eol */
8201 YY_RULE_SETUP
8202 FAIL("Starting tag <link_ctn> is not allowed here.");
8203         YY_BREAK
8204 case 424:
8205 /* rule 424 can match eol */
8206 YY_RULE_SETUP
8207 {
8208   AX_surfxml_link_ctn_id = 0;
8209   surfxml_link_ctn_id_isset = 0;
8210   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8211   surfxml_link_ctn_direction_isset = 0;
8212   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8213   }
8214         YY_BREAK
8215
8216 case 425:
8217 /* rule 425 can match eol */
8218 YY_RULE_SETUP
8219 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);
8220         YY_BREAK
8221 case 426:
8222 /* rule 426 can match eol */
8223 YY_RULE_SETUP
8224 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);
8225         YY_BREAK
8226 case 427:
8227 /* rule 427 can match eol */
8228 case 428:
8229 /* rule 428 can match eol */
8230 YY_RULE_SETUP
8231 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
8232         YY_BREAK
8233 case 429:
8234 /* rule 429 can match eol */
8235 case 430:
8236 /* rule 430 can match eol */
8237 YY_RULE_SETUP
8238 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
8239         YY_BREAK
8240 case 431:
8241 /* rule 431 can match eol */
8242 case 432:
8243 /* rule 432 can match eol */
8244 YY_RULE_SETUP
8245 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8246         YY_BREAK
8247 case 433:
8248 YY_RULE_SETUP
8249 {
8250   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8251   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
8252  }
8253         YY_BREAK
8254 case 434:
8255 YY_RULE_SETUP
8256 {
8257   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8258   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
8259   switch (YY_START) {
8260    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8261    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8262    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8263    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8264   }
8265  }
8266         YY_BREAK
8267 case 435:
8268 YY_RULE_SETUP
8269 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8270         YY_BREAK
8271 case 436:
8272 YY_RULE_SETUP
8273 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8274         YY_BREAK
8275 case YY_STATE_EOF(AL_surfxml_link_ctn):
8276 FAIL("EOF in attribute list of `link_ctn' element.");
8277         YY_BREAK
8278
8279 case 437:
8280 /* rule 437 can match eol */
8281 YY_RULE_SETUP
8282 {
8283   LEAVE;
8284   ETag_surfxml_link_ctn();
8285   popbuffer(); /* attribute */
8286   switch (YY_START) {
8287    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8288    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8289    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8290    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8291   }
8292  }
8293         YY_BREAK
8294 case 438:
8295 /* rule 438 can match eol */
8296 YY_RULE_SETUP
8297 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8298         YY_BREAK
8299 case 439:
8300 YY_RULE_SETUP
8301 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8302         YY_BREAK
8303 case YY_STATE_EOF(E_surfxml_link_ctn):
8304 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8305         YY_BREAK
8306
8307 case 440:
8308 /* rule 440 can match eol */
8309 YY_RULE_SETUP
8310 FAIL("Starting tag <bypassRoute> is not allowed here.");
8311         YY_BREAK
8312 case 441:
8313 /* rule 441 can match eol */
8314 YY_RULE_SETUP
8315 {
8316   AX_surfxml_bypassRoute_src = 0;
8317   surfxml_bypassRoute_src_isset = 0;
8318   AX_surfxml_bypassRoute_dst = 0;
8319   surfxml_bypassRoute_dst_isset = 0;
8320   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8321   }
8322         YY_BREAK
8323
8324 case 442:
8325 /* rule 442 can match eol */
8326 YY_RULE_SETUP
8327 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);
8328         YY_BREAK
8329 case 443:
8330 /* rule 443 can match eol */
8331 YY_RULE_SETUP
8332 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);
8333         YY_BREAK
8334 case 444:
8335 /* rule 444 can match eol */
8336 YY_RULE_SETUP
8337 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);
8338         YY_BREAK
8339 case 445:
8340 /* rule 445 can match eol */
8341 YY_RULE_SETUP
8342 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);
8343         YY_BREAK
8344 case 446:
8345 YY_RULE_SETUP
8346 {
8347   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8348   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8349   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8350  }
8351         YY_BREAK
8352 case 447:
8353 YY_RULE_SETUP
8354 {
8355   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8356   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8357   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8358   switch (YY_START) {
8359    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8360   }
8361  }
8362         YY_BREAK
8363 case 448:
8364 YY_RULE_SETUP
8365 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8366         YY_BREAK
8367 case 449:
8368 YY_RULE_SETUP
8369 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8370         YY_BREAK
8371 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8372 FAIL("EOF in attribute list of `bypassRoute' element.");
8373         YY_BREAK
8374
8375 case 450:
8376 /* rule 450 can match eol */
8377 YY_RULE_SETUP
8378 {
8379   LEAVE;
8380   ETag_surfxml_bypassRoute();
8381   popbuffer(); /* attribute */
8382   switch (YY_START) {
8383    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8384   }
8385  }
8386         YY_BREAK
8387 case 451:
8388 /* rule 451 can match eol */
8389 YY_RULE_SETUP
8390 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8391         YY_BREAK
8392 case 452:
8393 YY_RULE_SETUP
8394 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8395         YY_BREAK
8396 case YY_STATE_EOF(S_surfxml_bypassRoute):
8397 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8398 case YY_STATE_EOF(E_surfxml_bypassRoute):
8399 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8400         YY_BREAK
8401
8402 case 453:
8403 /* rule 453 can match eol */
8404 YY_RULE_SETUP
8405 FAIL("Starting tag <bypassASroute> is not allowed here.");
8406         YY_BREAK
8407 case 454:
8408 /* rule 454 can match eol */
8409 YY_RULE_SETUP
8410 {
8411   AX_surfxml_bypassASroute_src = 0;
8412   surfxml_bypassASroute_src_isset = 0;
8413   AX_surfxml_bypassASroute_dst = 0;
8414   surfxml_bypassASroute_dst_isset = 0;
8415   AX_surfxml_bypassASroute_gw_src = 0;
8416   surfxml_bypassASroute_gw_src_isset = 0;
8417   AX_surfxml_bypassASroute_gw_dst = 0;
8418   surfxml_bypassASroute_gw_dst_isset = 0;
8419   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8420   }
8421         YY_BREAK
8422
8423 case 455:
8424 /* rule 455 can match eol */
8425 YY_RULE_SETUP
8426 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);
8427         YY_BREAK
8428 case 456:
8429 /* rule 456 can match eol */
8430 YY_RULE_SETUP
8431 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);
8432         YY_BREAK
8433 case 457:
8434 /* rule 457 can match eol */
8435 YY_RULE_SETUP
8436 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);
8437         YY_BREAK
8438 case 458:
8439 /* rule 458 can match eol */
8440 YY_RULE_SETUP
8441 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);
8442         YY_BREAK
8443 case 459:
8444 /* rule 459 can match eol */
8445 YY_RULE_SETUP
8446 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);
8447         YY_BREAK
8448 case 460:
8449 /* rule 460 can match eol */
8450 YY_RULE_SETUP
8451 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);
8452         YY_BREAK
8453 case 461:
8454 /* rule 461 can match eol */
8455 YY_RULE_SETUP
8456 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);
8457         YY_BREAK
8458 case 462:
8459 /* rule 462 can match eol */
8460 YY_RULE_SETUP
8461 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);
8462         YY_BREAK
8463 case 463:
8464 YY_RULE_SETUP
8465 {
8466   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8467   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8468   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8469   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8470   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8471  }
8472         YY_BREAK
8473 case 464:
8474 YY_RULE_SETUP
8475 {
8476   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8477   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8478   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8479   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8480   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8481   switch (YY_START) {
8482    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8483   }
8484  }
8485         YY_BREAK
8486 case 465:
8487 YY_RULE_SETUP
8488 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8489         YY_BREAK
8490 case 466:
8491 YY_RULE_SETUP
8492 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8493         YY_BREAK
8494 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8495 FAIL("EOF in attribute list of `bypassASroute' element.");
8496         YY_BREAK
8497
8498 case 467:
8499 /* rule 467 can match eol */
8500 YY_RULE_SETUP
8501 {
8502   LEAVE;
8503   ETag_surfxml_bypassASroute();
8504   popbuffer(); /* attribute */
8505   switch (YY_START) {
8506    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8507   }
8508  }
8509         YY_BREAK
8510 case 468:
8511 /* rule 468 can match eol */
8512 YY_RULE_SETUP
8513 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8514         YY_BREAK
8515 case 469:
8516 YY_RULE_SETUP
8517 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8518         YY_BREAK
8519 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8520 case YY_STATE_EOF(E_surfxml_bypassASroute):
8521 case YY_STATE_EOF(S_surfxml_bypassASroute):
8522 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8523         YY_BREAK
8524
8525 case 470:
8526 /* rule 470 can match eol */
8527 YY_RULE_SETUP
8528 FAIL("Starting tag <process> is not allowed here.");
8529         YY_BREAK
8530 case 471:
8531 /* rule 471 can match eol */
8532 YY_RULE_SETUP
8533 {
8534   AX_surfxml_process_host = 0;
8535   surfxml_process_host_isset = 0;
8536   AX_surfxml_process_function = 0;
8537   surfxml_process_function_isset = 0;
8538   AX_surfxml_process_start_time = 28;
8539   surfxml_process_start_time_isset = 0;
8540   AX_surfxml_process_kill_time = 33;
8541   surfxml_process_kill_time_isset = 0;
8542   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8543   surfxml_process_on_failure_isset = 0;
8544   ENTER(AL_surfxml_process); pushbuffer(0);
8545   }
8546         YY_BREAK
8547
8548 case 472:
8549 /* rule 472 can match eol */
8550 YY_RULE_SETUP
8551 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);
8552         YY_BREAK
8553 case 473:
8554 /* rule 473 can match eol */
8555 YY_RULE_SETUP
8556 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);
8557         YY_BREAK
8558 case 474:
8559 /* rule 474 can match eol */
8560 YY_RULE_SETUP
8561 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);
8562         YY_BREAK
8563 case 475:
8564 /* rule 475 can match eol */
8565 YY_RULE_SETUP
8566 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);
8567         YY_BREAK
8568 case 476:
8569 /* rule 476 can match eol */
8570 YY_RULE_SETUP
8571 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);
8572         YY_BREAK
8573 case 477:
8574 /* rule 477 can match eol */
8575 YY_RULE_SETUP
8576 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);
8577         YY_BREAK
8578 case 478:
8579 /* rule 478 can match eol */
8580 YY_RULE_SETUP
8581 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);
8582         YY_BREAK
8583 case 479:
8584 /* rule 479 can match eol */
8585 YY_RULE_SETUP
8586 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);
8587         YY_BREAK
8588 case 480:
8589 /* rule 480 can match eol */
8590 case 481:
8591 /* rule 481 can match eol */
8592 YY_RULE_SETUP
8593 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8594         YY_BREAK
8595 case 482:
8596 /* rule 482 can match eol */
8597 case 483:
8598 /* rule 483 can match eol */
8599 YY_RULE_SETUP
8600 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8601         YY_BREAK
8602 case 484:
8603 YY_RULE_SETUP
8604 {
8605   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8606   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8607   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8608  }
8609         YY_BREAK
8610 case 485:
8611 YY_RULE_SETUP
8612 {
8613   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8614   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8615   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8616   switch (YY_START) {
8617    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8618   }
8619  }
8620         YY_BREAK
8621 case 486:
8622 YY_RULE_SETUP
8623 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8624         YY_BREAK
8625 case 487:
8626 YY_RULE_SETUP
8627 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8628         YY_BREAK
8629 case YY_STATE_EOF(AL_surfxml_process):
8630 FAIL("EOF in attribute list of `process' element.");
8631         YY_BREAK
8632
8633 case 488:
8634 /* rule 488 can match eol */
8635 YY_RULE_SETUP
8636 {
8637   LEAVE;
8638   ETag_surfxml_process();
8639   popbuffer(); /* attribute */
8640   switch (YY_START) {
8641    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8642   }
8643  }
8644         YY_BREAK
8645 case 489:
8646 /* rule 489 can match eol */
8647 YY_RULE_SETUP
8648 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8649         YY_BREAK
8650 case 490:
8651 YY_RULE_SETUP
8652 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8653         YY_BREAK
8654 case YY_STATE_EOF(E_surfxml_process):
8655 case YY_STATE_EOF(S_surfxml_process):
8656 case YY_STATE_EOF(S_surfxml_process_2):
8657 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8658         YY_BREAK
8659
8660 case 491:
8661 /* rule 491 can match eol */
8662 YY_RULE_SETUP
8663 FAIL("Starting tag <argument> is not allowed here.");
8664         YY_BREAK
8665 case 492:
8666 /* rule 492 can match eol */
8667 YY_RULE_SETUP
8668 {
8669   AX_surfxml_argument_value = 0;
8670   surfxml_argument_value_isset = 0;
8671   ENTER(AL_surfxml_argument); pushbuffer(0);
8672   }
8673         YY_BREAK
8674
8675 case 493:
8676 /* rule 493 can match eol */
8677 YY_RULE_SETUP
8678 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);
8679         YY_BREAK
8680 case 494:
8681 /* rule 494 can match eol */
8682 YY_RULE_SETUP
8683 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);
8684         YY_BREAK
8685 case 495:
8686 YY_RULE_SETUP
8687 {
8688   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8689   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8690  }
8691         YY_BREAK
8692 case 496:
8693 YY_RULE_SETUP
8694 {
8695   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8696   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8697   switch (YY_START) {
8698    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8699   }
8700  }
8701         YY_BREAK
8702 case 497:
8703 YY_RULE_SETUP
8704 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8705         YY_BREAK
8706 case 498:
8707 YY_RULE_SETUP
8708 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8709         YY_BREAK
8710 case YY_STATE_EOF(AL_surfxml_argument):
8711 FAIL("EOF in attribute list of `argument' element.");
8712         YY_BREAK
8713
8714 case 499:
8715 /* rule 499 can match eol */
8716 YY_RULE_SETUP
8717 {
8718   LEAVE;
8719   ETag_surfxml_argument();
8720   popbuffer(); /* attribute */
8721   switch (YY_START) {
8722    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8723   }
8724  }
8725         YY_BREAK
8726 case 500:
8727 /* rule 500 can match eol */
8728 YY_RULE_SETUP
8729 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8730         YY_BREAK
8731 case 501:
8732 YY_RULE_SETUP
8733 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8734         YY_BREAK
8735 case YY_STATE_EOF(E_surfxml_argument):
8736 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8737         YY_BREAK
8738
8739 case 502:
8740 /* rule 502 can match eol */
8741 YY_RULE_SETUP
8742 FAIL("Starting tag <config> is not allowed here.");
8743         YY_BREAK
8744 case 503:
8745 /* rule 503 can match eol */
8746 YY_RULE_SETUP
8747 {
8748   AX_surfxml_config_id = 0;
8749   surfxml_config_id_isset = 0;
8750   ENTER(AL_surfxml_config); pushbuffer(0);
8751   }
8752         YY_BREAK
8753
8754 case 504:
8755 /* rule 504 can match eol */
8756 YY_RULE_SETUP
8757 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);
8758         YY_BREAK
8759 case 505:
8760 /* rule 505 can match eol */
8761 YY_RULE_SETUP
8762 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);
8763         YY_BREAK
8764 case 506:
8765 YY_RULE_SETUP
8766 {
8767   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8768  }
8769         YY_BREAK
8770 case 507:
8771 YY_RULE_SETUP
8772 {
8773   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8774   switch (YY_START) {
8775    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8776   }
8777  }
8778         YY_BREAK
8779 case 508:
8780 YY_RULE_SETUP
8781 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8782         YY_BREAK
8783 case 509:
8784 YY_RULE_SETUP
8785 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8786         YY_BREAK
8787 case YY_STATE_EOF(AL_surfxml_config):
8788 FAIL("EOF in attribute list of `config' element.");
8789         YY_BREAK
8790
8791 case 510:
8792 /* rule 510 can match eol */
8793 YY_RULE_SETUP
8794 {
8795   LEAVE;
8796   ETag_surfxml_config();
8797   popbuffer(); /* attribute */
8798   switch (YY_START) {
8799    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8800   }
8801  }
8802         YY_BREAK
8803 case 511:
8804 /* rule 511 can match eol */
8805 YY_RULE_SETUP
8806 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8807         YY_BREAK
8808 case 512:
8809 YY_RULE_SETUP
8810 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8811         YY_BREAK
8812 case YY_STATE_EOF(S_surfxml_config):
8813 case YY_STATE_EOF(S_surfxml_config_2):
8814 case YY_STATE_EOF(E_surfxml_config):
8815 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8816         YY_BREAK
8817
8818 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8819   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8820 case 513:
8821 /* rule 513 can match eol */
8822 YY_RULE_SETUP
8823 FAIL("Starting tag <prop> is not allowed here.");
8824         YY_BREAK
8825 case 514:
8826 /* rule 514 can match eol */
8827 YY_RULE_SETUP
8828 {
8829   AX_surfxml_prop_id = 0;
8830   surfxml_prop_id_isset = 0;
8831   AX_surfxml_prop_value = 0;
8832   surfxml_prop_value_isset = 0;
8833   ENTER(AL_surfxml_prop); pushbuffer(0);
8834   }
8835         YY_BREAK
8836
8837 case 515:
8838 /* rule 515 can match eol */
8839 YY_RULE_SETUP
8840 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);
8841         YY_BREAK
8842 case 516:
8843 /* rule 516 can match eol */
8844 YY_RULE_SETUP
8845 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);
8846         YY_BREAK
8847 case 517:
8848 /* rule 517 can match eol */
8849 YY_RULE_SETUP
8850 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);
8851         YY_BREAK
8852 case 518:
8853 /* rule 518 can match eol */
8854 YY_RULE_SETUP
8855 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);
8856         YY_BREAK
8857 case 519:
8858 YY_RULE_SETUP
8859 {
8860   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8861   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8862   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8863  }
8864         YY_BREAK
8865 case 520:
8866 YY_RULE_SETUP
8867 {
8868   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8869   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8870   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8871   switch (YY_START) {
8872    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8873    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8874    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8875    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8876    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8877    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8878    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8879   }
8880  }
8881         YY_BREAK
8882 case 521:
8883 YY_RULE_SETUP
8884 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8885         YY_BREAK
8886 case 522:
8887 YY_RULE_SETUP
8888 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8889         YY_BREAK
8890 case YY_STATE_EOF(AL_surfxml_prop):
8891 FAIL("EOF in attribute list of `prop' element.");
8892         YY_BREAK
8893
8894 case 523:
8895 /* rule 523 can match eol */
8896 YY_RULE_SETUP
8897 {
8898   LEAVE;
8899   ETag_surfxml_prop();
8900   popbuffer(); /* attribute */
8901   switch (YY_START) {
8902    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8903    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8904    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8905    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8906    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8907    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8908    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8909   }
8910  }
8911         YY_BREAK
8912 case 524:
8913 /* rule 524 can match eol */
8914 YY_RULE_SETUP
8915 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8916         YY_BREAK
8917 case 525:
8918 YY_RULE_SETUP
8919 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8920         YY_BREAK
8921 case YY_STATE_EOF(E_surfxml_prop):
8922 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8923         YY_BREAK
8924
8925 /* EPILOG: after the root element. */
8926
8927 case 526:
8928 YY_RULE_SETUP
8929 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8930         YY_BREAK
8931 case YY_STATE_EOF(EPILOG):
8932 SUCCEED;
8933         YY_BREAK
8934
8935 /* CHARACTER DATA. */
8936
8937 /* Non-defined standard entities... */
8938 case 527:
8939 YY_RULE_SETUP
8940 BUFFERPUTC('&');
8941         YY_BREAK
8942 case 528:
8943 YY_RULE_SETUP
8944 BUFFERPUTC('<');
8945         YY_BREAK
8946 case 529:
8947 YY_RULE_SETUP
8948 BUFFERPUTC('>');
8949         YY_BREAK
8950 case 530:
8951 YY_RULE_SETUP
8952 BUFFERPUTC('\'');
8953         YY_BREAK
8954 case 531:
8955 YY_RULE_SETUP
8956 BUFFERPUTC('"');
8957         YY_BREAK
8958 /* Character entities. */
8959 case 532:
8960 YY_RULE_SETUP
8961 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8962         YY_BREAK
8963 case 533:
8964 YY_RULE_SETUP
8965 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8966         YY_BREAK
8967
8968 case 534:
8969 /* rule 534 can match eol */
8970 case 535:
8971 /* rule 535 can match eol */
8972 case 536:
8973 /* rule 536 can match eol */
8974 case 537:
8975 /* rule 537 can match eol */
8976 YY_RULE_SETUP
8977 BUFFERPUTC('\n');
8978         YY_BREAK
8979
8980 case 538:
8981 YY_RULE_SETUP
8982 ENTER(CDATA);
8983         YY_BREAK
8984 case 539:
8985 YY_RULE_SETUP
8986 FAIL("Unexpected `]""]>' in character data.");
8987         YY_BREAK
8988
8989 case 540:
8990 YY_RULE_SETUP
8991 BUFFERDONE; LEAVE;
8992         YY_BREAK
8993 case YY_STATE_EOF(VALUE1):
8994 FAIL("EOF in literal (\"'\" expected).");
8995         YY_BREAK
8996
8997 case 541:
8998 YY_RULE_SETUP
8999 BUFFERDONE; LEAVE;
9000         YY_BREAK
9001 case YY_STATE_EOF(VALUE2):
9002 FAIL("EOF in literal (`\"' expected).");
9003         YY_BREAK
9004
9005 case 542:
9006 /* rule 542 can match eol */
9007 YY_RULE_SETUP
9008 BUFFERPUTC(surf_parse_text[0]);
9009         YY_BREAK
9010 case 543:
9011 YY_RULE_SETUP
9012 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9013         YY_BREAK
9014
9015 case 544:
9016 YY_RULE_SETUP
9017 LEAVE;
9018         YY_BREAK
9019 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9020 case 545:
9021 YY_RULE_SETUP
9022 BUFFERPUTC(surf_parse_text[0]);
9023         YY_BREAK
9024 case YY_STATE_EOF(CDATA):
9025 FAIL("EOF in CDATA section.");
9026         YY_BREAK
9027
9028 /* Impossible rules to avoid warnings from flex(1). */
9029 /* Ideally, this should be replaced by code in flexml.pl that
9030     generates just the states not covered by other rules. */
9031
9032 case 546:
9033 /* rule 546 can match eol */
9034 YY_RULE_SETUP
9035 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9036         YY_BREAK
9037
9038 case 547:
9039 YY_RULE_SETUP
9040 ECHO;
9041         YY_BREAK
9042 case YY_STATE_EOF(INITIAL):
9043 case YY_STATE_EOF(ROOT_surfxml_platform):
9044 case YY_STATE_EOF(S_surfxml_platform_2):
9045 case YY_STATE_EOF(S_surfxml_platform_5):
9046 case YY_STATE_EOF(S_surfxml_platform_7):
9047 case YY_STATE_EOF(S_surfxml_include_1):
9048 case YY_STATE_EOF(S_surfxml_random_1):
9049 case YY_STATE_EOF(S_surfxml_AS_2):
9050 case YY_STATE_EOF(S_surfxml_AS_5):
9051 case YY_STATE_EOF(S_surfxml_AS_7):
9052 case YY_STATE_EOF(S_surfxml_AS_10):
9053 case YY_STATE_EOF(S_surfxml_AS_12):
9054 case YY_STATE_EOF(S_surfxml_storage_type_1):
9055 case YY_STATE_EOF(S_surfxml_storage_1):
9056 case YY_STATE_EOF(S_surfxml_host_1):
9057 case YY_STATE_EOF(S_surfxml_link_1):
9058 case YY_STATE_EOF(S_surfxml_route_1):
9059 case YY_STATE_EOF(S_surfxml_ASroute_1):
9060 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9061 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9062 case YY_STATE_EOF(S_surfxml_process_1):
9063 case YY_STATE_EOF(S_surfxml_config_1):
9064 case YY_STATE_EOF(IMPOSSIBLE):
9065         yyterminate();
9066
9067         case YY_END_OF_BUFFER:
9068                 {
9069                 /* Amount of text matched not including the EOB char. */
9070                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9071
9072                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9073                 *yy_cp = (yy_hold_char);
9074                 YY_RESTORE_YY_MORE_OFFSET
9075
9076                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9077                         {
9078                         /* We're scanning a new file or input source.  It's
9079                          * possible that this happened because the user
9080                          * just pointed surf_parse_in at a new source and called
9081                          * surf_parse_lex().  If so, then we have to assure
9082                          * consistency between YY_CURRENT_BUFFER and our
9083                          * globals.  Here is the right place to do so, because
9084                          * this is the first action (other than possibly a
9085                          * back-up) that will match for the new input source.
9086                          */
9087                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9088                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9089                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9090                         }
9091
9092                 /* Note that here we test for yy_c_buf_p "<=" to the position
9093                  * of the first EOB in the buffer, since yy_c_buf_p will
9094                  * already have been incremented past the NUL character
9095                  * (since all states make transitions on EOB to the
9096                  * end-of-buffer state).  Contrast this with the test
9097                  * in input().
9098                  */
9099                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9100                         { /* This was really a NUL. */
9101                         yy_state_type yy_next_state;
9102
9103                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9104
9105                         yy_current_state = yy_get_previous_state(  );
9106
9107                         /* Okay, we're now positioned to make the NUL
9108                          * transition.  We couldn't have
9109                          * yy_get_previous_state() go ahead and do it
9110                          * for us because it doesn't know how to deal
9111                          * with the possibility of jamming (and we don't
9112                          * want to build jamming into it because then it
9113                          * will run more slowly).
9114                          */
9115
9116                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9117
9118                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9119
9120                         if ( yy_next_state )
9121                                 {
9122                                 /* Consume the NUL. */
9123                                 yy_cp = ++(yy_c_buf_p);
9124                                 yy_current_state = yy_next_state;
9125                                 goto yy_match;
9126                                 }
9127
9128                         else
9129                                 {
9130                                 yy_cp = (yy_c_buf_p);
9131                                 goto yy_find_action;
9132                                 }
9133                         }
9134
9135                 else switch ( yy_get_next_buffer(  ) )
9136                         {
9137                         case EOB_ACT_END_OF_FILE:
9138                                 {
9139                                 (yy_did_buffer_switch_on_eof) = 0;
9140
9141                                 if ( surf_parse_wrap( ) )
9142                                         {
9143                                         /* Note: because we've taken care in
9144                                          * yy_get_next_buffer() to have set up
9145                                          * surf_parse_text, we can now set up
9146                                          * yy_c_buf_p so that if some total
9147                                          * hoser (like flex itself) wants to
9148                                          * call the scanner after we return the
9149                                          * YY_NULL, it'll still work - another
9150                                          * YY_NULL will get returned.
9151                                          */
9152                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9153
9154                                         yy_act = YY_STATE_EOF(YY_START);
9155                                         goto do_action;
9156                                         }
9157
9158                                 else
9159                                         {
9160                                         if ( ! (yy_did_buffer_switch_on_eof) )
9161                                                 YY_NEW_FILE;
9162                                         }
9163                                 break;
9164                                 }
9165
9166                         case EOB_ACT_CONTINUE_SCAN:
9167                                 (yy_c_buf_p) =
9168                                         (yytext_ptr) + yy_amount_of_matched_text;
9169
9170                                 yy_current_state = yy_get_previous_state(  );
9171
9172                                 yy_cp = (yy_c_buf_p);
9173                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9174                                 goto yy_match;
9175
9176                         case EOB_ACT_LAST_MATCH:
9177                                 (yy_c_buf_p) =
9178                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9179
9180                                 yy_current_state = yy_get_previous_state(  );
9181
9182                                 yy_cp = (yy_c_buf_p);
9183                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9184                                 goto yy_find_action;
9185                         }
9186                 break;
9187                 }
9188
9189         default:
9190                 YY_FATAL_ERROR(
9191                         "fatal flex scanner internal error--no action found" );
9192         } /* end of action switch */
9193                 } /* end of scanning one token */
9194 } /* end of surf_parse_lex */
9195
9196 /* yy_get_next_buffer - try to read in a new buffer
9197  *
9198  * Returns a code representing an action:
9199  *      EOB_ACT_LAST_MATCH -
9200  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9201  *      EOB_ACT_END_OF_FILE - end of file
9202  */
9203 static int yy_get_next_buffer (void)
9204 {
9205         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9206         register char *source = (yytext_ptr);
9207         register int number_to_move, i;
9208         int ret_val;
9209
9210         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9211                 YY_FATAL_ERROR(
9212                 "fatal flex scanner internal error--end of buffer missed" );
9213
9214         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9215                 { /* Don't try to fill the buffer, so this is an EOF. */
9216                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9217                         {
9218                         /* We matched a single character, the EOB, so
9219                          * treat this as a final EOF.
9220                          */
9221                         return EOB_ACT_END_OF_FILE;
9222                         }
9223
9224                 else
9225                         {
9226                         /* We matched some text prior to the EOB, first
9227                          * process it.
9228                          */
9229                         return EOB_ACT_LAST_MATCH;
9230                         }
9231                 }
9232
9233         /* Try to read more data. */
9234
9235         /* First move last chars to start of buffer. */
9236         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9237
9238         for ( i = 0; i < number_to_move; ++i )
9239                 *(dest++) = *(source++);
9240
9241         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9242                 /* don't do the read, it's not guaranteed to return an EOF,
9243                  * just force an EOF
9244                  */
9245                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9246
9247         else
9248                 {
9249                         int num_to_read =
9250                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9251
9252                 while ( num_to_read <= 0 )
9253                         { /* Not enough room in the buffer - grow it. */
9254
9255                         /* just a shorter name for the current buffer */
9256                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9257
9258                         int yy_c_buf_p_offset =
9259                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9260
9261                         if ( b->yy_is_our_buffer )
9262                                 {
9263                                 int new_size = b->yy_buf_size * 2;
9264
9265                                 if ( new_size <= 0 )
9266                                         b->yy_buf_size += b->yy_buf_size / 8;
9267                                 else
9268                                         b->yy_buf_size *= 2;
9269
9270                                 b->yy_ch_buf = (char *)
9271                                         /* Include room in for 2 EOB chars. */
9272                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9273                                 }
9274                         else
9275                                 /* Can't grow it, we don't own it. */
9276                                 b->yy_ch_buf = 0;
9277
9278                         if ( ! b->yy_ch_buf )
9279                                 YY_FATAL_ERROR(
9280                                 "fatal error - scanner input buffer overflow" );
9281
9282                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9283
9284                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9285                                                 number_to_move - 1;
9286
9287                         }
9288
9289                 if ( num_to_read > YY_READ_BUF_SIZE )
9290                         num_to_read = YY_READ_BUF_SIZE;
9291
9292                 /* Read in more data. */
9293                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9294                         (yy_n_chars), (size_t) num_to_read );
9295
9296                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9297                 }
9298
9299         if ( (yy_n_chars) == 0 )
9300                 {
9301                 if ( number_to_move == YY_MORE_ADJ )
9302                         {
9303                         ret_val = EOB_ACT_END_OF_FILE;
9304                         surf_parse_restart(surf_parse_in  );
9305                         }
9306
9307                 else
9308                         {
9309                         ret_val = EOB_ACT_LAST_MATCH;
9310                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9311                                 YY_BUFFER_EOF_PENDING;
9312                         }
9313                 }
9314
9315         else
9316                 ret_val = EOB_ACT_CONTINUE_SCAN;
9317
9318         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9319                 /* Extend the array by 50%, plus the number we really need. */
9320                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9321                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9322                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9323                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9324         }
9325
9326         (yy_n_chars) += number_to_move;
9327         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9328         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9329
9330         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9331
9332         return ret_val;
9333 }
9334
9335 /* yy_get_previous_state - get the state just before the EOB char was reached */
9336
9337     static yy_state_type yy_get_previous_state (void)
9338 {
9339         register yy_state_type yy_current_state;
9340         register char *yy_cp;
9341     
9342         yy_current_state = (yy_start);
9343
9344         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9345                 {
9346                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9347                 if ( yy_accept[yy_current_state] )
9348                         {
9349                         (yy_last_accepting_state) = yy_current_state;
9350                         (yy_last_accepting_cpos) = yy_cp;
9351                         }
9352                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9353                         {
9354                         yy_current_state = (int) yy_def[yy_current_state];
9355                         if ( yy_current_state >= 3217 )
9356                                 yy_c = yy_meta[(unsigned int) yy_c];
9357                         }
9358                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9359                 }
9360
9361         return yy_current_state;
9362 }
9363
9364 /* yy_try_NUL_trans - try to make a transition on the NUL character
9365  *
9366  * synopsis
9367  *      next_state = yy_try_NUL_trans( current_state );
9368  */
9369     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9370 {
9371         register int yy_is_jam;
9372         register char *yy_cp = (yy_c_buf_p);
9373
9374         register YY_CHAR yy_c = 1;
9375         if ( yy_accept[yy_current_state] )
9376                 {
9377                 (yy_last_accepting_state) = yy_current_state;
9378                 (yy_last_accepting_cpos) = yy_cp;
9379                 }
9380         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9381                 {
9382                 yy_current_state = (int) yy_def[yy_current_state];
9383                 if ( yy_current_state >= 3217 )
9384                         yy_c = yy_meta[(unsigned int) yy_c];
9385                 }
9386         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9387         yy_is_jam = (yy_current_state == 3216);
9388
9389         return yy_is_jam ? 0 : yy_current_state;
9390 }
9391
9392 #ifndef YY_NO_INPUT
9393 #ifdef __cplusplus
9394     static int yyinput (void)
9395 #else
9396     static int input  (void)
9397 #endif
9398
9399 {
9400         int c;
9401     
9402         *(yy_c_buf_p) = (yy_hold_char);
9403
9404         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9405                 {
9406                 /* yy_c_buf_p now points to the character we want to return.
9407                  * If this occurs *before* the EOB characters, then it's a
9408                  * valid NUL; if not, then we've hit the end of the buffer.
9409                  */
9410                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9411                         /* This was really a NUL. */
9412                         *(yy_c_buf_p) = '\0';
9413
9414                 else
9415                         { /* need more input */
9416                         int offset = (yy_c_buf_p) - (yytext_ptr);
9417                         ++(yy_c_buf_p);
9418
9419                         switch ( yy_get_next_buffer(  ) )
9420                                 {
9421                                 case EOB_ACT_LAST_MATCH:
9422                                         /* This happens because yy_g_n_b()
9423                                          * sees that we've accumulated a
9424                                          * token and flags that we need to
9425                                          * try matching the token before
9426                                          * proceeding.  But for input(),
9427                                          * there's no matching to consider.
9428                                          * So convert the EOB_ACT_LAST_MATCH
9429                                          * to EOB_ACT_END_OF_FILE.
9430                                          */
9431
9432                                         /* Reset buffer status. */
9433                                         surf_parse_restart(surf_parse_in );
9434
9435                                         /*FALLTHROUGH*/
9436
9437                                 case EOB_ACT_END_OF_FILE:
9438                                         {
9439                                         if ( surf_parse_wrap( ) )
9440                                                 return EOF;
9441
9442                                         if ( ! (yy_did_buffer_switch_on_eof) )
9443                                                 YY_NEW_FILE;
9444 #ifdef __cplusplus
9445                                         return yyinput();
9446 #else
9447                                         return input();
9448 #endif
9449                                         }
9450
9451                                 case EOB_ACT_CONTINUE_SCAN:
9452                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9453                                         break;
9454                                 }
9455                         }
9456                 }
9457
9458         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9459         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9460         (yy_hold_char) = *++(yy_c_buf_p);
9461
9462         if ( c == '\n' )
9463                    
9464     surf_parse_lineno++;
9465 ;
9466
9467         return c;
9468 }
9469 #endif  /* ifndef YY_NO_INPUT */
9470
9471 /** Immediately switch to a different input stream.
9472  * @param input_file A readable stream.
9473  * 
9474  * @note This function does not reset the start condition to @c INITIAL .
9475  */
9476     void surf_parse_restart  (FILE * input_file )
9477 {
9478     
9479         if ( ! YY_CURRENT_BUFFER ){
9480         surf_parse_ensure_buffer_stack ();
9481                 YY_CURRENT_BUFFER_LVALUE =
9482             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9483         }
9484
9485         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9486         surf_parse__load_buffer_state( );
9487 }
9488
9489 /** Switch to a different input buffer.
9490  * @param new_buffer The new input buffer.
9491  * 
9492  */
9493     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9494 {
9495     
9496         /* TODO. We should be able to replace this entire function body
9497          * with
9498          *              surf_parse_pop_buffer_state();
9499          *              surf_parse_push_buffer_state(new_buffer);
9500      */
9501         surf_parse_ensure_buffer_stack ();
9502         if ( YY_CURRENT_BUFFER == new_buffer )
9503                 return;
9504
9505         if ( YY_CURRENT_BUFFER )
9506                 {
9507                 /* Flush out information for old buffer. */
9508                 *(yy_c_buf_p) = (yy_hold_char);
9509                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9510                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9511                 }
9512
9513         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9514         surf_parse__load_buffer_state( );
9515
9516         /* We don't actually know whether we did this switch during
9517          * EOF (surf_parse_wrap()) processing, but the only time this flag
9518          * is looked at is after surf_parse_wrap() is called, so it's safe
9519          * to go ahead and always set it.
9520          */
9521         (yy_did_buffer_switch_on_eof) = 1;
9522 }
9523
9524 static void surf_parse__load_buffer_state  (void)
9525 {
9526         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9527         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9528         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9529         (yy_hold_char) = *(yy_c_buf_p);
9530 }
9531
9532 /** Allocate and initialize an input buffer state.
9533  * @param file A readable stream.
9534  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9535  * 
9536  * @return the allocated buffer state.
9537  */
9538     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9539 {
9540         YY_BUFFER_STATE b;
9541     
9542         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9543         if ( ! b )
9544                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9545
9546         b->yy_buf_size = size;
9547
9548         /* yy_ch_buf has to be 2 characters longer than the size given because
9549          * we need to put in 2 end-of-buffer characters.
9550          */
9551         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9552         if ( ! b->yy_ch_buf )
9553                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9554
9555         b->yy_is_our_buffer = 1;
9556
9557         surf_parse__init_buffer(b,file );
9558
9559         return b;
9560 }
9561
9562 /** Destroy the buffer.
9563  * @param b a buffer created with surf_parse__create_buffer()
9564  * 
9565  */
9566     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9567 {
9568     
9569         if ( ! b )
9570                 return;
9571
9572         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9573                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9574
9575         if ( b->yy_is_our_buffer )
9576                 surf_parse_free((void *) b->yy_ch_buf  );
9577
9578         surf_parse_free((void *) b  );
9579 }
9580
9581 #ifndef __cplusplus
9582 extern int isatty (int );
9583 #endif /* __cplusplus */
9584     
9585 /* Initializes or reinitializes a buffer.
9586  * This function is sometimes called more than once on the same buffer,
9587  * such as during a surf_parse_restart() or at EOF.
9588  */
9589     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9590
9591 {
9592         int oerrno = errno;
9593     
9594         surf_parse__flush_buffer(b );
9595
9596         b->yy_input_file = file;
9597         b->yy_fill_buffer = 1;
9598
9599     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9600      * called from surf_parse_restart() or through yy_get_next_buffer.
9601      * In that case, we don't want to reset the lineno or column.
9602      */
9603     if (b != YY_CURRENT_BUFFER){
9604         b->yy_bs_lineno = 1;
9605         b->yy_bs_column = 0;
9606     }
9607
9608         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9609     
9610         errno = oerrno;
9611 }
9612
9613 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9614  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9615  * 
9616  */
9617     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9618 {
9619         if ( ! b )
9620                 return;
9621
9622         b->yy_n_chars = 0;
9623
9624         /* We always need two end-of-buffer characters.  The first causes
9625          * a transition to the end-of-buffer state.  The second causes
9626          * a jam in that state.
9627          */
9628         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9629         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9630
9631         b->yy_buf_pos = &b->yy_ch_buf[0];
9632
9633         b->yy_at_bol = 1;
9634         b->yy_buffer_status = YY_BUFFER_NEW;
9635
9636         if ( b == YY_CURRENT_BUFFER )
9637                 surf_parse__load_buffer_state( );
9638 }
9639
9640 /** Pushes the new state onto the stack. The new state becomes
9641  *  the current state. This function will allocate the stack
9642  *  if necessary.
9643  *  @param new_buffer The new state.
9644  *  
9645  */
9646 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9647 {
9648         if (new_buffer == NULL)
9649                 return;
9650
9651         surf_parse_ensure_buffer_stack();
9652
9653         /* This block is copied from surf_parse__switch_to_buffer. */
9654         if ( YY_CURRENT_BUFFER )
9655                 {
9656                 /* Flush out information for old buffer. */
9657                 *(yy_c_buf_p) = (yy_hold_char);
9658                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9659                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9660                 }
9661
9662         /* Only push if top exists. Otherwise, replace top. */
9663         if (YY_CURRENT_BUFFER)
9664                 (yy_buffer_stack_top)++;
9665         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9666
9667         /* copied from surf_parse__switch_to_buffer. */
9668         surf_parse__load_buffer_state( );
9669         (yy_did_buffer_switch_on_eof) = 1;
9670 }
9671
9672 /** Removes and deletes the top of the stack, if present.
9673  *  The next element becomes the new top.
9674  *  
9675  */
9676 void surf_parse_pop_buffer_state (void)
9677 {
9678         if (!YY_CURRENT_BUFFER)
9679                 return;
9680
9681         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9682         YY_CURRENT_BUFFER_LVALUE = NULL;
9683         if ((yy_buffer_stack_top) > 0)
9684                 --(yy_buffer_stack_top);
9685
9686         if (YY_CURRENT_BUFFER) {
9687                 surf_parse__load_buffer_state( );
9688                 (yy_did_buffer_switch_on_eof) = 1;
9689         }
9690 }
9691
9692 /* Allocates the stack if it does not exist.
9693  *  Guarantees space for at least one push.
9694  */
9695 static void surf_parse_ensure_buffer_stack (void)
9696 {
9697         int num_to_alloc;
9698     
9699         if (!(yy_buffer_stack)) {
9700
9701                 /* First allocation is just for 2 elements, since we don't know if this
9702                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9703                  * immediate realloc on the next call.
9704          */
9705                 num_to_alloc = 1;
9706                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9707                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9708                                                                 );
9709                 if ( ! (yy_buffer_stack) )
9710                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9711                                                                   
9712                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9713                                 
9714                 (yy_buffer_stack_max) = num_to_alloc;
9715                 (yy_buffer_stack_top) = 0;
9716                 return;
9717         }
9718
9719         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9720
9721                 /* Increase the buffer to prepare for a possible push. */
9722                 int grow_size = 8 /* arbitrary grow size */;
9723
9724                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9725                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9726                                                                 ((yy_buffer_stack),
9727                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9728                                                                 );
9729                 if ( ! (yy_buffer_stack) )
9730                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9731
9732                 /* zero only the new slots.*/
9733                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9734                 (yy_buffer_stack_max) = num_to_alloc;
9735         }
9736 }
9737
9738 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9739  * @param base the character buffer
9740  * @param size the size in bytes of the character buffer
9741  * 
9742  * @return the newly allocated buffer state object. 
9743  */
9744 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9745 {
9746         YY_BUFFER_STATE b;
9747     
9748         if ( size < 2 ||
9749              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9750              base[size-1] != YY_END_OF_BUFFER_CHAR )
9751                 /* They forgot to leave room for the EOB's. */
9752                 return 0;
9753
9754         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9755         if ( ! b )
9756                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9757
9758         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9759         b->yy_buf_pos = b->yy_ch_buf = base;
9760         b->yy_is_our_buffer = 0;
9761         b->yy_input_file = 0;
9762         b->yy_n_chars = b->yy_buf_size;
9763         b->yy_is_interactive = 0;
9764         b->yy_at_bol = 1;
9765         b->yy_fill_buffer = 0;
9766         b->yy_buffer_status = YY_BUFFER_NEW;
9767
9768         surf_parse__switch_to_buffer(b  );
9769
9770         return b;
9771 }
9772
9773 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9774  * scan from a @e copy of @a str.
9775  * @param yystr a NUL-terminated string to scan
9776  * 
9777  * @return the newly allocated buffer state object.
9778  * @note If you want to scan bytes that may contain NUL values, then use
9779  *       surf_parse__scan_bytes() instead.
9780  */
9781 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9782 {
9783     
9784         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9785 }
9786
9787 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9788  * scan from a @e copy of @a bytes.
9789  * @param yybytes the byte buffer to scan
9790  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9791  * 
9792  * @return the newly allocated buffer state object.
9793  */
9794 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9795 {
9796         YY_BUFFER_STATE b;
9797         char *buf;
9798         yy_size_t n;
9799         int i;
9800     
9801         /* Get memory for full buffer, including space for trailing EOB's. */
9802         n = _yybytes_len + 2;
9803         buf = (char *) surf_parse_alloc(n  );
9804         if ( ! buf )
9805                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9806
9807         for ( i = 0; i < _yybytes_len; ++i )
9808                 buf[i] = yybytes[i];
9809
9810         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9811
9812         b = surf_parse__scan_buffer(buf,n );
9813         if ( ! b )
9814                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9815
9816         /* It's okay to grow etc. this buffer, and we should throw it
9817          * away when we're done.
9818          */
9819         b->yy_is_our_buffer = 1;
9820
9821         return b;
9822 }
9823
9824     static void yy_push_state (int  new_state )
9825 {
9826         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9827                 {
9828                 yy_size_t new_size;
9829
9830                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9831                 new_size = (yy_start_stack_depth) * sizeof( int );
9832
9833                 if ( ! (yy_start_stack) )
9834                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9835
9836                 else
9837                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9838
9839                 if ( ! (yy_start_stack) )
9840                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9841                 }
9842
9843         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9844
9845         BEGIN(new_state);
9846 }
9847
9848     static void yy_pop_state  (void)
9849 {
9850         if ( --(yy_start_stack_ptr) < 0 )
9851                 YY_FATAL_ERROR( "start-condition stack underflow" );
9852
9853         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9854 }
9855
9856 #ifndef YY_EXIT_FAILURE
9857 #define YY_EXIT_FAILURE 2
9858 #endif
9859
9860 static void yy_fatal_error (yyconst char* msg )
9861 {
9862         (void) fprintf( stderr, "%s\n", msg );
9863         exit( YY_EXIT_FAILURE );
9864 }
9865
9866 /* Redefine yyless() so it works in section 3 code. */
9867
9868 #undef yyless
9869 #define yyless(n) \
9870         do \
9871                 { \
9872                 /* Undo effects of setting up surf_parse_text. */ \
9873         int yyless_macro_arg = (n); \
9874         YY_LESS_LINENO(yyless_macro_arg);\
9875                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9876                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9877                 (yy_hold_char) = *(yy_c_buf_p); \
9878                 *(yy_c_buf_p) = '\0'; \
9879                 surf_parse_leng = yyless_macro_arg; \
9880                 } \
9881         while ( 0 )
9882
9883 /* Accessor  methods (get/set functions) to struct members. */
9884
9885 /** Get the current line number.
9886  * 
9887  */
9888 int surf_parse_get_lineno  (void)
9889 {
9890         
9891     return surf_parse_lineno;
9892 }
9893
9894 /** Get the input stream.
9895  * 
9896  */
9897 FILE *surf_parse_get_in  (void)
9898 {
9899         return surf_parse_in;
9900 }
9901
9902 /** Get the output stream.
9903  * 
9904  */
9905 FILE *surf_parse_get_out  (void)
9906 {
9907         return surf_parse_out;
9908 }
9909
9910 /** Get the length of the current token.
9911  * 
9912  */
9913 int surf_parse_get_leng  (void)
9914 {
9915         return surf_parse_leng;
9916 }
9917
9918 /** Get the current token.
9919  * 
9920  */
9921
9922 char *surf_parse_get_text  (void)
9923 {
9924         return surf_parse_text;
9925 }
9926
9927 /** Set the current line number.
9928  * @param line_number
9929  * 
9930  */
9931 void surf_parse_set_lineno (int  line_number )
9932 {
9933     
9934     surf_parse_lineno = line_number;
9935 }
9936
9937 /** Set the input stream. This does not discard the current
9938  * input buffer.
9939  * @param in_str A readable stream.
9940  * 
9941  * @see surf_parse__switch_to_buffer
9942  */
9943 void surf_parse_set_in (FILE *  in_str )
9944 {
9945         surf_parse_in = in_str ;
9946 }
9947
9948 void surf_parse_set_out (FILE *  out_str )
9949 {
9950         surf_parse_out = out_str ;
9951 }
9952
9953 int surf_parse_get_debug  (void)
9954 {
9955         return surf_parse__flex_debug;
9956 }
9957
9958 void surf_parse_set_debug (int  bdebug )
9959 {
9960         surf_parse__flex_debug = bdebug ;
9961 }
9962
9963 static int yy_init_globals (void)
9964 {
9965         /* Initialization is the same as for the non-reentrant scanner.
9966      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9967      */
9968
9969     /* We do not touch surf_parse_lineno unless the option is enabled. */
9970     surf_parse_lineno =  1;
9971     
9972     (yy_buffer_stack) = 0;
9973     (yy_buffer_stack_top) = 0;
9974     (yy_buffer_stack_max) = 0;
9975     (yy_c_buf_p) = (char *) 0;
9976     (yy_init) = 0;
9977     (yy_start) = 0;
9978
9979     (yy_start_stack_ptr) = 0;
9980     (yy_start_stack_depth) = 0;
9981     (yy_start_stack) =  NULL;
9982
9983 /* Defined in main.c */
9984 #ifdef YY_STDINIT
9985     surf_parse_in = stdin;
9986     surf_parse_out = stdout;
9987 #else
9988     surf_parse_in = (FILE *) 0;
9989     surf_parse_out = (FILE *) 0;
9990 #endif
9991
9992     /* For future reference: Set errno on error, since we are called by
9993      * surf_parse_lex_init()
9994      */
9995     return 0;
9996 }
9997
9998 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9999 int surf_parse_lex_destroy  (void)
10000 {
10001     
10002     /* Pop the buffer stack, destroying each element. */
10003         while(YY_CURRENT_BUFFER){
10004                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10005                 YY_CURRENT_BUFFER_LVALUE = NULL;
10006                 surf_parse_pop_buffer_state();
10007         }
10008
10009         /* Destroy the stack itself. */
10010         surf_parse_free((yy_buffer_stack) );
10011         (yy_buffer_stack) = NULL;
10012
10013     /* Destroy the start condition stack. */
10014         surf_parse_free((yy_start_stack)  );
10015         (yy_start_stack) = NULL;
10016
10017     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10018      * surf_parse_lex() is called, initialization will occur. */
10019     yy_init_globals( );
10020
10021     return 0;
10022 }
10023
10024 /*
10025  * Internal utility routines.
10026  */
10027
10028 #ifndef yytext_ptr
10029 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10030 {
10031         register int i;
10032         for ( i = 0; i < n; ++i )
10033                 s1[i] = s2[i];
10034 }
10035 #endif
10036
10037 #ifdef YY_NEED_STRLEN
10038 static int yy_flex_strlen (yyconst char * s )
10039 {
10040         register int n;
10041         for ( n = 0; s[n]; ++n )
10042                 ;
10043
10044         return n;
10045 }
10046 #endif
10047
10048 void *surf_parse_alloc (yy_size_t  size )
10049 {
10050         return (void *) malloc( size );
10051 }
10052
10053 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10054 {
10055         /* The cast to (char *) in the following accommodates both
10056          * implementations that use char* generic pointers, and those
10057          * that use void* generic pointers.  It works with the latter
10058          * because both ANSI C and C++ allow castless assignment from
10059          * any pointer type to void*, and deal with argument conversions
10060          * as though doing an assignment.
10061          */
10062         return (void *) realloc( (char *) ptr, size );
10063 }
10064
10065 void surf_parse_free (void * ptr )
10066 {
10067         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10068 }
10069
10070 #define YYTABLES_NAME "yytables"
10071
10072 /* Element context stack lookup. */
10073 int surfxml_element_context(int i)
10074 {
10075   return (0<i && i<yy_start_stack_depth
10076           ? yy_start_stack[yy_start_stack_ptr - i]
10077           : 0);
10078 }
10079
10080 #ifdef FLEX_DEBUG
10081 void print_yy_stack(char* fmt, ...)
10082 {
10083   int i = 0; va_list ap; va_start(ap, fmt);
10084   vfprintf(stderr, fmt, ap);
10085   if (surfxml_statenames) {
10086       for (i=1; i<yy_start_stack_ptr; i++) {
10087           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10088       }
10089       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10090   }
10091   va_end(ap);
10092 }
10093
10094 void print_surfxml_bufferstack()
10095 {
10096     int i;
10097     fputs("Buffer: ", stderr);
10098     for (i = 0; i < blimit; i++) {
10099        if ( surfxml_bufferstack[i] == '\377' ) break;
10100          putc(surfxml_bufferstack[i], stderr);
10101     }
10102     putc('\n', stderr);
10103 }
10104
10105 static void debug_enter(int state, const char* statename) {
10106   yy_push_state(state);
10107   if (surf_parse__flex_debug) {
10108        print_yy_stack("--ENTER(%s) : ",statename);
10109        print_surfxml_bufferstack();
10110   }
10111 }
10112
10113 static void debug_leave(void) {
10114     if (surf_parse__flex_debug) {
10115         print_yy_stack("--LEAVE : ");
10116         print_surfxml_bufferstack();
10117     }
10118   yy_pop_state();
10119 }
10120
10121 static void debug_set(int state, const char* statename) {
10122   BEGIN(state);
10123   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10124 }
10125 #endif
10126
10127 static void cleanup(void)
10128 {
10129     if (surfxml_statenames) {
10130         free(surfxml_statenames);
10131         surfxml_statenames = NULL;
10132     }
10133     free(surfxml_bufferstack);
10134     surfxml_bufferstack = NULL;
10135
10136     free(indexstack);
10137     indexstack = NULL;
10138 }
10139
10140 static int fail(const char* fmt, ...)
10141 {
10142     int chars_left, used;
10143     va_list ap; va_start(ap, fmt);
10144 #ifdef FLEXML_yylineno
10145     used = sprintf(flexml_err_msg,
10146                    "Invalid XML (XML input line %d, state %d): ",
10147                    surf_parse_lineno, YY_START);
10148 #else
10149     used = sprintf(flexml_err_msg,
10150                    "Invalid XML (state %d): ",
10151                    YY_START);
10152 #endif
10153     chars_left = flexml_max_err_msg_size - used - 1;
10154     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10155     va_end(ap);
10156
10157 #ifndef FLEXML_quiet_parser
10158     /* print directly to sdterr */
10159     fprintf(stderr, "%s\n", flexml_err_msg);
10160     flexml_err_msg[0] = '\0';
10161 #endif
10162
10163     cleanup();
10164
10165     return 1;
10166 }
10167