Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add on_failure for processes to the SimGrid DTD.
[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 490
407 #define YY_END_OF_BUFFER 491
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[2921] =
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,  491,  489,   15,   10,
443        10,   15,   15,  469,   10,  469,    5,    6,    5,    8,
444         9,    8,  485,  477,  478,  486,  483,  486,  484,  488,
445       477,  478,  488,  489,   22,   10,   22,   22,   22,   20,
446        22,   26,   10,   26,   26,  489,   26,  489,  489,   26,
447        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
448        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
449
450       486,  485,   78,   10,   78,   78,   78,   76,   78,   78,
451        78,   78,   78,   82,   10,   82,  489,   82,  101,   10,
452       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
453       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
454       132,  132,  489,  132,  132,  489,  489,  132,  489,  132,
455       489,  132,  145,   10,  145,  145,  145,  143,  145,  145,
456       145,  145,  149,   10,  149,  149,  160,   10,  160,  160,
457       160,  158,  160,  160,  160,  164,   10,  164,  164,  173,
458        10,  173,  173,  173,  171,  173,  173,  177,   10,  177,
459       186,   10,  186,  186,  186,  184,  186,  186,  190,   10,
460
461       190,  213,   10,  213,  213,  213,  211,  213,  213,  213,
462       213,  213,  217,   10,  217,  489,  217,  258,   10,  258,
463       258,  258,  256,  258,  258,  258,  258,  258,  258,  258,
464       258,  262,   10,  262,  283,   10,  283,  283,  283,  281,
465       283,  283,  283,  283,  283,  283,  283,  287,   10,  287,
466       296,   10,  296,  296,  296,  294,  296,  296,  300,   10,
467       300,  327,   10,  327,  327,  327,  325,  327,  327,  327,
468       327,  331,   10,  331,  331,  344,   10,  344,  344,  344,
469       342,  344,  344,  348,   10,  348,  489,  348,  365,   10,
470       365,  365,  365,  363,  365,  365,  365,  369,   10,  369,
471
472       369,  382,   10,  382,  382,  382,  380,  382,  382,  386,
473        10,  386,  395,   10,  395,  395,  395,  393,  395,  395,
474       399,   10,  399,  399,  412,   10,  412,  412,  412,  410,
475       412,  412,  412,  416,   10,  416,  416,  429,   10,  429,
476       429,  429,  427,  429,  429,  429,  429,  433,   10,  433,
477       489,  433,  440,   10,  440,  440,  440,  438,  440,  444,
478        10,  444,  451,   10,  451,  451,  451,  449,  451,  455,
479        10,  455,  455,  464,   10,  464,  464,  464,  462,  464,
480       464,  468,   10,  468,   10,    0,    2,    2,    0,    4,
481         7,  480,  479,    0,    0,    0,    0,    0,    0,    0,
482
483        21,   23,   23,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485         0,    0,    0,    0,    0,    0,   32,   34,   34,    0,
486        47,   49,   49,   49,   49,    0,    0,    0,   77,   79,
487        79,   79,   79,   79,   79,   79,   79,   79,    0,    0,
488       100,  102,  102,  102,  102,    0,  127,  129,  129,  129,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,  144,  146,  146,  146,  146,  146,    0,  159,
491       161,  161,  161,  161,    0,  172,  174,  174,  174,    0,
492       185,  187,  187,  187,    0,  212,  214,  214,  214,  214,
493
494       214,  214,    0,    0,  257,  259,  259,  259,  259,  259,
495       259,  259,  259,  259,  259,  259,  259,  259,  259,    0,
496       282,  284,  284,  284,  284,  284,  284,  284,  284,    0,
497       295,  297,  297,  297,    0,  326,  328,  328,  328,  328,
498       328,  328,    0,  343,  345,  345,  345,  345,    0,    0,
499       364,  366,  366,  366,  366,  366,    0,  381,  383,  383,
500       383,    0,  394,  396,  396,  396,    0,  411,  413,  413,
501       413,  413,    0,  428,  430,  430,  430,  430,  430,    0,
502         0,  439,  441,  441,    0,  450,  452,  452,    0,  463,
503       465,  465,  465,    0,    0,    0,    0,    0,    3,    0,
504
505         0,    0,    0,    0,    0,    0,  487,    0,   23,    0,
506         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508       106,    0,    0,    0,    0,    0,   34,    0,    0,   49,
509         0,    0,   49,    0,    0,    0,  482,   79,    0,    0,
510        79,   79,   79,   79,   79,   79,    0,    0,    0,  102,
511       102,  102,    0,    0,    0,    0,  129,    0,    0,  107,
512         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
513       146,    0,    0,  146,  146,    0,    0,  161,    0,    0,
514       161,    0,    0,    0,    0,  174,    0,    0,  187,  187,
515
516         0,    0,  214,  214,  214,    0,    0,  214,  214,    0,
517         0,    0,    0,  259,  259,    0,    0,  259,    0,    0,
518       259,  259,  259,  259,  259,  259,  259,  259,    0,    0,
519       284,  284,  284,    0,    0,  284,  284,  284,    0,    0,
520       297,    0,    0,    0,    0,  328,    0,    0,  328,  328,
521       328,    0,    0,  345,  345,  345,    0,    0,    0,  366,
522       366,  366,  366,    0,    0,  383,    0,    0,    0,    0,
523       396,  396,    0,    0,  413,  413,  413,    0,    0,  430,
524       430,  430,  430,    0,    0,    0,  441,    0,    0,    0,
525         0,    0,    0,    0,    0,  465,    0,    0,    0,   14,
526
527         1,    0,    0,  475,    0,    0,    0,  472,  471,    0,
528         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
530         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
531         0,    0,   34,    0,    0,   36,    0,   49,    0,   41,
532        40,   49,    0,    0,    0,   51,    0,   79,    0,   55,
533        54,    0,    0,   79,    0,    0,   79,   79,   79,    0,
534         0,   81,    0,    0,  102,  102,  102,    0,    0,  104,
535         0,    0,  109,  108,  129,    0,    0,  131,    0,    0,
536         0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
537
538         0,  136,  135,  146,  146,    0,    0,  148,    0,  161,
539         0,  153,  152,  161,    0,    0,  163,    0,    0,  168,
540       167,  174,    0,    0,  176,    0,  187,  187,    0,    0,
541       189,    0,  214,  214,  214,    0,  194,  193,  214,  214,
542         0,    0,  216,    0,    0,    0,  259,  259,  259,  259,
543         0,  233,  232,  259,    0,  221,  220,    0,    0,  259,
544       259,  259,  259,  259,  259,  259,    0,    0,  261,    0,
545       284,  284,  284,  284,    0,  266,  265,    0,    0,  284,
546       284,    0,    0,  286,    0,  297,    0,  291,  290,    0,
547         0,  299,    0,  328,    0,  304,  303,  328,  328,  328,
548
549         0,    0,  330,    0,    0,    0,    0,    0,  345,    0,
550         0,  347,    0,    0,    0,    0,  366,  366,    0,    0,
551       366,    0,    0,  368,    0,  383,    0,  373,  372,    0,
552         0,  385,    0,    0,    0,    0,    0,    0,    0,  398,
553         0,    0,    0,  413,  413,    0,    0,    0,    0,  415,
554         0,  430,  430,  430,  430,    0,    0,  432,    0,    0,
555       441,    0,    0,  443,    0,    0,  448,  447,    0,    0,
556       454,    0,    0,  459,  458,  465,    0,    0,  467,    0,
557         0,    0,  476,  470,    0,    0,    0,   23,    0,    0,
558         0,    0,    0,    0,  191,    0,  301,    0,    0,  264,
559
560         0,    0,  456,    0,    0,    0,    0,    0,    0,    0,
561         0,  263,    0,    0,    0,    0,    0,    0,    0,   49,
562         0,    0,   79,    0,   59,   58,    0,    0,    0,   57,
563        56,   79,    0,    0,   79,    0,  457,  102,    0,    0,
564       102,    0,  129,    0,  130,    0,    0,  192,  302,    0,
565         0,    0,    0,    0,    0,  146,  146,    0,    0,    0,
566       161,  161,    0,    0,    0,    0,    0,    0,  187,    0,
567       214,  214,    0,    0,  214,  214,    0,    0,    0,  259,
568       259,  259,  259,    0,    0,    0,  235,  234,  259,  259,
569       259,  259,  259,  259,  259,    0,  284,  284,  284,  284,
570
571         0,  274,  273,  284,  284,    0,  297,    0,  328,  328,
572       328,  328,    0,    0,  337,  336,    0,  335,  334,  345,
573         0,  301,    0,  354,  353,  366,  366,    0,  352,  351,
574       366,    0,  383,    0,    0,  392,  391,    0,  390,  389,
575         0,    0,  405,  404,  413,  413,    0,  403,  402,    0,
576       430,    0,    0,  430,  430,    0,    0,  441,    0,    0,
577       465,    0,    0,    0,    0,   12,    0,  473,  474,    0,
578        23,    0,    0,    0,    0,    0,    0,  191,    0,  301,
579         0,  165,    0,  264,    0,    0,  456,    0,  332,    0,
580        39,    0,    0,    0,    0,  263,    0,   38,    0,   30,
581
582        29,    0,    0,   43,   42,   49,    0,    0,   79,    0,
583        61,   60,   79,    0,   65,   64,   79,    0,  457,  102,
584         0,    0,    0,    0,    0,    0,  129,    0,    0,  192,
585       302,  333,    0,    0,    0,  333,  332,  146,    0,    0,
586         0,  140,  139,    0,  161,  161,    0,    0,  170,  169,
587         0,    0,  183,  182,  187,    0,  214,  214,    0,  198,
588       197,    0,    0,    0,    0,  214,    0,  166,    0,  259,
589         0,    0,  259,  259,    0,  231,  230,    0,    0,  259,
590       259,  259,  259,  259,  259,    0,  284,    0,    0,  284,
591       284,    0,    0,  284,    0,  297,    0,  328,  328,  328,
592
593         0,    0,  328,    0,  345,    0,    0,  366,  366,  366,
594         0,  383,    0,    0,  413,  413,    0,  430,    0,  420,
595       419,  430,  430,    0,    0,    0,    0,    0,    0,    0,
596         0,    0,    0,    0,    0,   11,    0,   23,    0,    0,
597         0,    0,    0,  446,    0,    0,  165,    0,    0,    0,
598        53,  332,  288,    0,   39,    0,  445,   52,    0,    0,
599         0,   38,    0,    0,   49,    0,    0,   79,   79,   79,
600         0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
601         0,   96,   95,    0,  129,    0,    0,  333,  289,    0,
602         0,    0,  146,    0,  138,  137,    0,  161,    0,    0,
603
604         0,    0,    0,    0,    0,  214,  214,    0,  196,  195,
605         0,    0,    0,  214,    0,  215,  166,    0,  259,    0,
606       243,  242,    0,    0,  259,    0,  229,  228,    0,    0,
607       259,  259,  259,  259,    0,    0,    0,  284,    0,  270,
608       269,    0,    0,  284,    0,  268,  267,  284,    0,  285,
609       297,    0,  328,  328,  328,    0,    0,    0,  328,    0,
610       329,  345,    0,    0,    0,    0,    0,    0,  366,    0,
611       383,    0,    0,    0,    0,    0,    0,    0,  430,  430,
612       430,    0,    0,    0,  437,  436,    0,    0,    0,  461,
613       460,    0,  466,    0,    0,    0,    0,    0,    0,    0,
614
615       349,    0,    0,    0,  219,  446,   28,    0,    0,    0,
616       418,   53,  288,  150,    0,  445,   52,  218,   27,  417,
617         0,    0,   49,    0,    0,   50,   79,    0,    0,   79,
618         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
619         0,    0,    0,    0,    0,    0,  350,    0,    0,  289,
620       151,    0,    0,    0,    0,    0,    0,  155,  154,    0,
621         0,  175,    0,  181,  180,    0,  214,  214,    0,    0,
622       214,    0,  259,    0,  245,  244,  259,    0,  223,  222,
623         0,    0,  259,  259,  259,    0,  225,  224,    0,  284,
624         0,  272,  271,  284,  284,  297,    0,  328,    0,    0,
625
626       328,  328,    0,    0,  328,  345,    0,  346,    0,    0,
627       358,  357,    0,  356,  355,  366,    0,  383,    0,    0,
628         0,  409,  408,    0,  407,  406,    0,  430,  430,  430,
629         0,    0,    0,    0,    0,    0,    0,   17,    0,   19,
630        18,    0,  349,  434,    0,    0,  219,   28,  370,  178,
631        16,  418,  150,    0,    0,  218,   27,  417,    0,    0,
632        49,  481,   79,    0,   67,   66,   79,    0,   80,    0,
633        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
634         0,    0,    0,    0,    0,    0,  350,    0,    0,  151,
635         0,    0,  142,  141,    0,    0,  157,  156,    0,    0,
636
637       214,  214,    0,    0,    0,    0,  214,  179,  259,  259,
638         0,  227,  226,  259,  259,  259,    0,  284,  284,  284,
639       297,    0,  298,  328,    0,  310,  309,  328,  328,    0,
640         0,    0,    0,  328,  345,  371,  366,    0,  383,    0,
641         0,    0,    0,    0,  430,  430,    0,  435,    0,    0,
642       453,    0,    0,    0,   17,    0,  434,    0,    0,  370,
643       178,   16,    0,    0,    0,    0,   35,   49,    0,    0,
644        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,  162,
647
648         0,  214,  214,    0,  204,    0,  203,  214,  179,  259,
649       259,    0,    0,  259,  259,    0,  260,  284,  284,  284,
650       297,    0,    0,  328,  328,  328,    0,  314,    0,  313,
651       328,  345,  371,  366,    0,  367,    0,    0,    0,    0,
652         0,    0,  422,  421,    0,    0,  430,    0,  431,  435,
653         0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
654         0,   49,    0,    0,    0,   79,    0,    0,    0,    0,
655         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,  188,  214,  214,  206,
658
659       205,    0,    0,  259,  259,    0,  255,  254,  259,    0,
660         0,  284,  284,    0,    0,  297,    0,  306,  305,  328,
661       328,  328,  316,  315,    0,    0,  345,  366,    0,    0,
662         0,    0,  384,    0,    0,    0,  426,  425,    0,    0,
663         0,  442,    0,    0,    0,    0,  387,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
665         0,    0,    0,   88,    0,    0,    0,    0,   87,    0,
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,  388,    0,    0,  214,    0,
668         0,    0,  208,  207,  259,  259,  259,    0,  253,  252,
669
670       284,    0,    0,    0,  280,  279,    0,    0,  328,  328,
671       328,    0,  318,  317,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,  424,  423,    0,
673         0,    0,    0,  387,  133,    0,    0,    0,   45,   44,
674         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,  388,  134,    0,    0,    0,  214,    0,
678       210,  209,  259,  259,  259,  284,    0,  276,  275,    0,
679       293,  292,  328,    0,    0,  328,    0,    0,    0,    0,
680
681         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,  400,  133,   84,   83,    0,    0,
683         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684        94,    0,    0,    0,   93,    0,    0,    0,    0,    0,
685       111,  119,    0,    0,    0,    0,    0,  110,  118,    0,
686         0,  401,  134,    0,    0,  200,  199,  214,  259,  259,
687       259,  284,  328,    0,  312,  311,  328,    0,    0,    0,
688         0,    0,    0,    0,    0,    0,    0,  375,    0,    0,
689       374,    0,  397,    0,    0,    0,    0,    0,    0,    0,
690       400,   84,   83,    0,    0,    0,    0,    0,    0,    0,
691
692         0,    0,   63,   62,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,  113,    0,    0,    0,    0,  112,    0,
694         0,  401,    0,  147,  214,  259,  259,    0,    0,  284,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,   75,   71,    0,    0,   74,   70,
698         0,   92,    0,    0,   91,    0,    0,    0,  103,    0,
699         0,    0,    0,    0,    0,    0,    0,  214,  259,  259,
700         0,    0,    0,  284,    0,  308,  307,    0,    0,    0,
701       341,    0,  340,    0,  362,    0,  361,    0,  377,  379,
702
703       376,  378,    0,  414,    0,    0,    0,   12,    0,   12,
704         0,    0,    0,    0,    0,   86,   90,   85,   89,  125,
705         0,    0,  123,  124,    0,    0,  122,  214,  259,  259,
706         0,    0,    0,    0,  284,    0,    0,    0,    0,  339,
707       338,  360,  359,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,  115,    0,    0,  114,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711        69,    0,   68,    0,    0,  121,    0,  120,    0,  202,
712       201,    0,  251,  250,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,  278,  277,    0,    0,    0,    0,
715         0,    0,    0,   11,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,   73,   72,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,  117,  116,    0,    0,    0,
722         0,    0,    0,  237,    0,    0,  236,    0,    0,  320,
723         0,    0,  319,    0,    0,    0,    0,    0,  241,    0,
724
725       240,    0,  322,    0,  321,    0,    0,    0,    0,    0,
726         0,    0,    0,    0,    0,    0,    0,  247,    0,  246,
727         0,    0,    0,    0,    0,    0,  249,  248,  239,  238,
728       324,  323,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
732         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,   13,    0
738     } ;
739
740 static yyconst flex_int32_t yy_ec[256] =
741     {   0,
742         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
743         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
745         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
746         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
747        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
748        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
749        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
750        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
751        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
752
753        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
754        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
755        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
756         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
757         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
758         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
759         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
760         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
761         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
762         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
763
764         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
765         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
766         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
767         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
768         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
769         1,    1,    1,    1,    1
770     } ;
771
772 static yyconst flex_int32_t yy_meta[75] =
773     {   0,
774         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
775         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
776         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
777         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
778         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
779         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
780         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
781         5,    5,    5,    5
782     } ;
783
784 static yyconst flex_int16_t yy_base[3319] =
785     {   0,
786         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
787        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
788       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
789       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
790       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
791       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
792       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
793       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
794       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
795       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
796
797       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
798      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
799      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
800      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
801      1585,    0, 1341, 1345, 1659, 1726, 1348, 1403, 1793, 1850,
802      1406, 1409, 1907, 1974, 1413, 1416, 1471, 1474, 1477, 1481,
803      1538, 1541, 2041, 2108, 1544, 1548, 1679, 1682, 1685, 1689,
804      1746, 1749, 2175, 2242, 1752, 1756, 1813, 1816, 1819, 1823,
805      1870, 1873, 2309, 2366, 1876, 1880, 2423, 2490, 1927, 1930,
806      1933, 1937, 1940, 1994, 1997, 2000, 2557, 2624, 2004, 2007,
807
808      2061, 2064, 2067, 2071, 2074, 2128, 2691, 2758, 2131, 2134,
809      2138, 2141, 2195, 2198, 2201, 2205, 2825, 2895, 2208, 2262,
810      2965, 3022, 2265, 2268, 2272, 2275, 2329, 2332, 2335, 2339,
811      3079, 3149, 2342, 2386,    0,    0, 7919,10220,10220,   95,
812       100,   29,   41,10220,  103,   51,10220,10220, 7908,10220,
813     10220, 7895,10220, 7910, 7910,  202,10220,10220,10220,10220,
814      7904, 7904, 7859,  153,10220,  161, 7883,    0,  145,10220,
815      7849,10220,  165, 3215,   73, 2342,  315,  357, 7889, 7832,
816     10220,  168, 7875,    0,  152,10220, 7837,10220,  261, 7879,
817        31,10220,  266, 7870,    0,  245,10220, 7832, 7832, 7830,
818
819       421, 7835,10220,  269, 7859,    0,  340,10220, 7825, 7825,
820       271, 7823,  238,10220,  441,  163,  313,  368,10220,  503,
821      7851,    0,  401,10220, 7810, 7810, 7800,10220,  506,  548,
822     10220,  561, 7845,    0,  481,10220, 7808, 7796,10220,  571,
823      2389, 2397,  161,  571,   38, 7846,  477, 2341,  574,  907,
824      7843,   79,10220,  697, 7834,    0,  482,10220, 7790, 7796,
825      7784, 7789,10220,  703,  426,  530,10220,  706, 7823,    0,
826       546,10220, 7779, 7789, 7763,10220,  765,  559,  564,10220,
827       771, 7807,    0,  549,10220, 7774, 7776,10220,  774,  682,
828     10220,  831, 7800,    0,  615,10220, 7770, 7745,10220,  837,
829
830       690,10220,  840, 7793,    0,  750,10220, 7742, 7748, 7754,
831      7742, 7736,10220,  906,  825, 7787,   87,10220,  914, 7778,
832         0,  758,10220, 7727,  203, 7729, 7739, 7741,  157,  311,
833       834,10220,  972,  958,10220,  981, 7765,    0,  815,10220,
834      7714, 7712, 7715, 7725, 7727, 7708, 7702,10220, 1021,  959,
835     10220, 1038, 7749,    0,  825,10220, 7701, 7711,10220, 1044,
836      1032,10220, 1048, 7742,    0,  891,10220, 7708, 7704, 7706,
837        15,10220, 1088,  899,  597,10220, 1105, 7730,    0,  956,
838     10220, 7682,  181,10220, 1111, 1098, 7736, 7683,10220, 1114,
839      7722,    0, 1022,10220, 7674, 7665,  299,10220, 1117, 7723,
840
841       302,10220, 1173, 7714,    0, 1033,10220, 7672, 7676,10220,
842      1179, 1167,10220, 1182, 7707,    0, 1090,10220, 7655, 7655,
843     10220, 1241, 7708,  630,10220, 1247, 7695,    0, 1168,10220,
844      7647, 7642, 7642,10220, 1303, 7695,  785,10220, 1309, 7686,
845         0, 1225,10220, 7632, 7637, 7642, 7626,10220, 1365,  814,
846      7681,  568,10220, 1368, 7672,    0, 1226,10220, 7638,10220,
847      1371, 1420,10220, 1376, 7666,    0, 1231,10220, 7633,10220,
848      1433,  387,  902,10220, 1436, 7660,    0, 1287,10220, 7627,
849      7629,10220, 1440, 1482, 1444,  687, 7601,10220, 7662, 7651,
850     10220,10220,10220, 1491,  254, 7598, 7597, 7595, 7162, 7121,
851
852     10220,    0, 7113, 7114, 7138, 7110, 7102,  437, 7111, 7111,
853      7114,  372, 1243,  378, 7102, 7102,  625,  429, 7121,  693,
854      7097, 1508, 7091,  702, 1517, 1518,10220,    0, 7089, 7091,
855     10220,    0, 7086, 1692, 7074,  372, 7070, 7113,10220,    0,
856      7070, 1759, 7058, 7076, 7062, 7065, 7062, 7062, 7046, 1776,
857     10220,    0, 7046, 7036, 7047, 7020,10220,    0, 1883, 7018,
858      7063, 7045, 7009, 7014, 7019,  695, 7002, 7030, 6994, 6982,
859       970, 1037,10220,    0, 6992, 2448, 6998, 6975, 6980,10220,
860         0, 6984, 2455, 6958, 6950,10220,    0, 2460, 6955, 6942,
861     10220,    0, 6941, 6936, 6934,10220,    0, 6945,  758, 2469,
862
863      6921, 6938, 6930,  889,10220,    0, 6935, 6927, 2510, 6908,
864      2513, 6905, 6899, 6916, 6906, 6888, 6903, 6902, 6895, 6896,
865     10220,    0, 6897, 6896, 6875, 2516, 6862, 6858, 6878, 6857,
866     10220,    0, 6857, 2519, 6852,10220,    0, 6847, 2522, 6836,
867      6841, 6835, 6823,10220,    0, 6813, 6811, 6796, 6790, 6788,
868     10220,    0, 6776, 6794, 6790, 6778, 6812,10220,    0, 6756,
869      2577, 6760,10220,    0, 6746, 6760, 6754,10220,    0, 6735,
870      6753, 6739, 6739,10220,    0, 6721, 6715, 6720, 6720, 6703,
871      6700,10220,    0, 6704, 6710,10220,    0, 2580, 6707,10220,
872         0, 2583, 6696, 6691, 6720, 6729, 1278, 6676,10220, 1496,
873
874         0, 6653, 6653, 6696, 6693, 6645,10220, 6656, 6636, 2394,
875      2586, 1718, 6631, 6621, 6614, 6615, 6608, 6619, 6607, 6590,
876      6590, 6603, 6601, 6586, 6585, 6573, 6578, 6586, 6571, 6568,
877      1777, 6559, 6569, 6566, 6548, 6561, 6548, 2590, 2645, 6547,
878      2648, 1551, 6541, 6568, 2652, 2655,10220, 6528, 2658, 1957,
879      2711, 6518, 2714, 6517, 6521, 6523, 2720, 2732, 6496, 6497,
880      6496, 6496, 2723, 2781, 2784, 2024, 6469, 2787, 2846, 1902,
881      6472, 6459, 6463, 6454, 6452, 1969, 6449, 6448, 6436, 6434,
882      6434, 2790, 2092, 6447, 6438, 2793, 2796, 6422, 2849, 2159,
883      6435, 2853, 2856, 2859, 2229, 6434, 2915, 2918, 6432, 6426,
884
885      2923, 2926, 6414, 6403, 6405, 2929, 2296, 6404, 6384, 2985,
886      2988, 6382, 6381, 6390, 1778, 2994, 2474, 6386, 2997, 2541,
887      3000, 6381, 6378, 6374, 6361, 6349, 6346, 6358, 3042, 3045,
888      6354,   37, 6343, 3051, 2611, 3054, 6351, 6335, 3057, 3112,
889      6330, 3099, 2678, 3104, 3108, 6342, 3118, 2877, 6337, 6316,
890      6309, 3127, 3171, 3174, 3178, 3181, 3184, 3205, 6313, 3199,
891      3210, 3213, 3219, 3231, 3250, 6321, 3237, 2885, 3241, 3282,
892      3244, 3255, 3288, 3291, 3294, 3301, 3297, 3315, 3320, 6321,
893      6296, 6299, 6292, 3323, 3326, 6301, 6282, 3329, 3334, 3348,
894      2947, 3353, 3356, 3359, 2955, 6277, 3367, 3377, 6325,10220,
895
896     10220, 1074, 6283,10220, 6315, 6314, 6262,10220,10220, 6256,
897      6247, 6257, 3381, 3386,10220, 3392, 1577, 6249, 6238, 6257,
898      6234, 6246, 6230, 6233, 6233, 6228, 6225, 6219, 6195, 1114,
899      6209, 6192, 6185, 6199, 6191, 6192, 1710, 6172, 6175, 6168,
900      1437, 6181, 3401, 3405, 3411,10220, 3414, 3419, 3136,10220,
901     10220, 3425, 6206, 3433, 3443,10220, 3446, 6154, 3452,10220,
902     10220, 3465, 3468, 3477, 3483, 3488, 6168, 3496, 6162, 3501,
903      3504,10220, 3507, 1651, 6160, 3510, 6158, 3514, 3528,10220,
904      3533, 3536,10220,10220, 6145, 3547, 3552,10220, 3555, 6138,
905      6150, 6130, 6133, 6120, 6117, 6132, 6127, 6107, 6105, 6106,
906
907      3559,10220,10220, 6097, 3574, 3577, 3581,10220, 3584, 6101,
908      3596,10220,10220, 6119, 3587, 3592,10220, 3606, 3611,10220,
909     10220, 3619, 3625, 3628,10220, 3631, 3637, 3640, 3651, 3658,
910     10220, 3661, 6086, 6085, 3664, 3670,10220,10220, 6070, 6076,
911      3682, 3685,10220, 3688, 6061, 6059, 6060, 6048, 6068, 6053,
912      3692,10220,10220, 3707, 3710,10220,10220, 3718, 3721, 6041,
913      6049, 6053, 6050, 6041, 6044, 6027, 3729, 3732,10220, 3736,
914      6016, 6012, 6003, 6015, 3739,10220,10220, 3755, 3758, 6000,
915      6011, 3766, 3769,10220, 3773, 5991, 3776,10220,10220, 3788,
916      3792,10220, 3795, 5971, 3798,10220,10220, 5978, 5982, 5984,
917
918      3807, 3814,10220, 3817, 3820, 3826, 3838, 3841, 5983, 3849,
919      3852,10220, 3856, 5959, 3859, 3864, 5949, 5948, 3878, 3881,
920      5956, 3889, 3892,10220, 3896, 5957, 3899,10220,10220, 3911,
921      3915,10220, 3918, 3924, 3930, 3938, 3942, 3950, 3956,10220,
922      3961, 3964, 3969, 5939, 5939, 3982, 3985, 3993, 3996,10220,
923      4000, 5929, 4003, 5948, 5920, 4006, 4015,10220, 4025, 5918,
924      5932, 4028, 4034,10220, 4037, 4040,10220,10220, 4048, 4056,
925     10220, 4059, 4063,10220,10220, 5927, 4071, 4078,10220, 4081,
926       598, 4091,10220,10220, 5961, 5960, 5921, 5911, 4100, 5903,
927      5909, 5901, 5879, 5889, 1785, 5872, 1844, 5872, 5872, 2034,
928
929      5883, 5881, 2100, 5869, 5875, 5865, 5859, 5849, 5832, 5825,
930      5823, 2103, 5834, 5833, 4103, 4121, 4106, 4112, 4130, 5832,
931      5853, 4138, 5819, 4143,10220,10220, 4151, 4158, 4169,10220,
932     10220, 5818, 4177, 4181, 5789, 4189, 2167, 5776, 4195, 4198,
933      4208, 4213, 5771, 4115,10220, 5762, 5759, 2170, 2237, 5740,
934      5734, 5708, 5696, 5707, 5704, 5690, 4216, 4219, 4222, 4240,
935      5682, 5687, 4243, 4246, 4249, 4264, 4267, 4270, 5686, 4278,
936      5684, 5675, 4285, 4288, 4297, 4308, 4311, 5656, 5638, 5653,
937      4315, 5626, 5637, 4318, 4326, 4336,10220,10220, 4344, 5589,
938      5611, 5580, 5583, 5579, 5544, 4347, 5547, 4350, 5506, 5413,
939
940      4355,10220,10220, 4368, 5419, 4371, 5338, 4374, 5337, 5341,
941      5314, 4378, 4381, 4386,10220,10220, 4396,10220,10220, 5307,
942      4404, 2304, 4407,10220,10220, 5305, 5320, 4416,10220,10220,
943      5302, 4425, 5300, 4428, 4432,10220,10220, 4447,10220,10220,
944      4455, 4458,10220,10220, 5201, 5216, 4467,10220,10220, 4475,
945      5138, 4478, 4487, 5126, 5144, 4481, 4895, 4496, 4503, 4506,
946      4509, 4514, 1077, 4918, 4517,10220, 4913,10220,10220, 4869,
947      4864, 4527,   21,  100,  110,  141,  163, 2413,  193, 2418,
948       205, 2482,  268, 2549,  308,  338, 2552,  385, 2619,  441,
949      2817,  495,  495,  508,  591, 2686,  609, 3131, 4536,10220,
950
951     10220, 4546, 4549,10220,10220,  627,  689, 4559,  684, 4565,
952     10220,10220,  710, 4580,10220,10220,  710, 4573, 2751,  744,
953      4588, 1866, 2191, 4597, 4600, 4615,  768,  763,  820, 2820,
954      3072, 4618,  837,  830,  853, 4621, 4624,  869, 4627, 4635,
955      4645,10220,10220, 4630,  890, 4653, 4656, 4660,10220,10220,
956      4671, 4679,10220,10220, 4690, 4693,  931,  924, 4697,10220,
957     10220, 4708, 4712, 4721, 4726,  933, 4734, 4321,  955,  978,
958      4739, 4742, 4753,  964, 4758,10220,10220, 4766, 4771, 4779,
959       971, 1023, 1049, 1051, 4784, 4787, 1089, 4790, 4793, 4802,
960      1092, 4808, 4811, 1105, 4820, 1098, 4826, 1111, 1093, 1113,
961
962      4829, 4832, 1133, 4840, 1124, 4847, 1156, 4850, 4854, 4859,
963      4862, 1165, 4868, 4872, 4882, 4887, 4891, 1170, 4901,10220,
964     10220, 1177, 1172, 4894, 1188, 4915, 4918, 4926, 4933, 4938,
965      4946, 4941, 1344, 1337, 1249,10220, 1218, 4960, 4963, 1240,
966      1233, 1338, 1265, 4966, 1293, 1286, 4969, 1300, 1292, 1298,
967      4972, 4978, 4982, 1329, 4989, 1363, 4992, 4995, 1356, 1370,
968      1359, 4998, 1377, 5001, 1382, 1427, 5004, 1387, 5008, 1410,
969      5011, 5014, 1460, 1450, 1668, 1454, 1469, 1457, 1695, 1460,
970      5026,10220,10220, 5034, 5037, 1454, 1744, 5040, 5043, 1459,
971      1747, 1811, 5046, 5055,10220,10220, 5064, 5067, 5071, 5074,
972
973      5085, 5089, 5092, 5095, 5104, 1457, 1467, 5111,10220,10220,
974      5119, 1481, 1498, 1492, 5127,10220, 5130, 1503, 1515, 5133,
975     10220,10220, 5141, 5146, 1516, 5155,10220,10220, 5163, 5166,
976      5174, 1519, 1627, 1642, 5177, 5181, 5195, 1644, 5198,10220,
977     10220, 5206, 5210, 1655, 5218,10220,10220, 1661, 5226,10220,
978      1675, 5229, 1674, 5232, 1709, 5235, 1729, 1732, 1714, 5250,
979     10220, 1734, 5253, 1724, 5256, 5259, 5274, 5279, 1752, 5287,
980      1761, 5294, 5297, 5300, 5306, 5318, 5321, 5329, 1768, 1771,
981      1778, 5332, 1804, 5337,10220,10220, 5354, 5357, 5363,10220,
982     10220, 5377,10220, 1926, 1918, 1950, 1820, 5381, 5384, 5399,
983
984      5402, 1822, 1854, 1837, 5406, 5411, 5414, 1861, 1894, 1888,
985      5418, 5421, 5424, 5427, 1887, 5430, 5433, 5436, 5439, 5442,
986      1893, 5446, 1905, 1919, 5449,10220, 1924, 5452, 5455, 1956,
987      5470, 5474, 5477, 1978, 1975, 1977, 1984, 1980, 1994, 1993,
988      1999, 2005, 2014, 5485, 5492, 5498, 5506, 2033, 2017, 5510,
989      5513, 5516, 5519, 5527, 5530, 5535, 5548,10220,10220, 5556,
990      5561,10220, 5564,10220,10220, 5575, 2021, 2015, 2064, 2112,
991      2024, 2033, 2030, 5580,10220,10220, 2035, 5588,10220,10220,
992      5596, 5599, 2048, 2060, 2088, 5608,10220,10220, 5616, 2090,
993      5619,10220,10220, 2083, 2093, 2089, 5629, 2102, 5635, 5638,
994
995      2110, 2102, 2190, 2202, 2107, 2140, 5648,10220, 2144, 5653,
996     10220,10220, 5661,10220,10220, 2164, 5669, 2156, 5672, 5675,
997      5681,10220,10220, 5694,10220,10220, 5703, 5707, 5712, 5715,
998      5725, 2166, 5733, 5739, 5744, 2238, 2284, 5747, 5752,10220,
999     10220, 5764, 5767, 5770, 2170, 2204, 5775, 5778, 5783, 5786,
1000      5794, 5797, 5800, 2213, 2220, 5803, 5806, 5809, 2222, 5812,
1001      2219,10220, 5815, 5818,10220,10220, 5826, 5833,10220, 5837,
1002     10220,10220, 2266, 2252, 2269, 2264, 2277, 2300, 2300, 2322,
1003      2317, 2332, 5845, 5848, 2704, 5831, 5857, 2293, 2293, 5860,
1004      2297, 5868,10220,10220, 5876, 5879,10220,10220, 5887, 5895,
1005
1006      2325, 2339, 2367, 2389, 2373, 2393, 2350, 5898, 2348, 2353,
1007      5907,10220,10220, 5901, 2383, 2395, 5915, 2396, 2401, 2407,
1008      2413, 5919,10220, 5923, 5927,10220,10220, 2411, 2418, 2455,
1009      2481, 2462, 2497, 2474, 2479, 5941, 2481, 5947, 5950, 5953,
1010      5956, 5959, 5962, 5980, 5988, 5991, 5997, 6000, 6009, 6018,
1011     10220, 6021, 2553, 2596, 6024, 6028, 6031, 2468, 2465, 6043,
1012      6047, 6050, 2461, 2477, 2478, 6053,10220, 2473, 6056, 6059,
1013      6067, 2505, 2501, 2556, 2547, 2559, 2555, 2552, 2566, 2559,
1014      2570, 6076, 2551, 2561, 2604, 2556, 2571, 2606, 2606, 2611,
1015      2609, 2611, 2614, 2629, 2656, 2652, 2659, 6079, 6085,10220,
1016
1017      6088, 2673, 2677, 2742,10220, 2740,10220, 6091, 6098, 2683,
1018      2708, 6109, 6112, 2697, 6123, 6128,10220, 2706, 2713, 6131,
1019      2715, 6137, 6149, 2748, 2746, 2748, 2804,10220, 2802,10220,
1020      6141, 2755, 6159, 2758, 6162,10220, 6165, 6168, 6176, 6183,
1021      6187, 6191,10220,10220, 6202, 6206, 6214, 6220,10220, 6223,
1022      6226, 2903, 2854, 2821, 6234,10220, 2785, 2814, 2805, 2817,
1023      2822, 6239, 6253, 2909, 2982, 6245, 2847, 2860, 2866, 2870,
1024      2887, 2906, 2915, 2915, 2918, 2936, 6263, 2883, 2896, 2892,
1025      2900, 2900, 2934, 2925, 2937, 2951, 2947, 2954, 2953, 2958,
1026      2951, 2969, 2997, 2988, 6266, 6269,10220, 2990, 6272,10220,
1027
1028     10220, 6275, 6278, 2991, 3002, 6293,10220,10220, 3010, 6301,
1029      6307, 2998, 6315, 6319, 6324, 6333, 6338,10220,10220, 3015,
1030      3025, 3038,10220,10220, 6346, 6351, 6359, 6364, 6367, 3164,
1031      3448, 6377,10220, 6382, 6385, 6389,10220,10220, 6397, 6404,
1032      6415,10220, 3097, 3128, 3211, 3036, 6418, 3056, 3062, 3068,
1033      6421, 6424, 3085, 3091, 3176, 3103, 3107, 3299, 6434, 3119,
1034      3130, 3147, 3152,10220, 3185, 3182, 3181, 3188,10220, 6439,
1035      3182, 3191, 3182, 3200, 3214, 3216, 3229, 3220, 3229, 3233,
1036      3247, 3256, 3257, 3263, 3246, 6442, 3262, 6452, 6458, 6461,
1037      6464, 6472,10220,10220, 3293, 3279, 3293, 6480,10220,10220,
1038
1039      3297, 6491, 6495, 6505,10220,10220, 6515, 6518, 3287, 6526,
1040      3297, 6529,10220,10220, 6537, 6540, 6548, 6551, 3329, 3330,
1041      3335, 3338, 3339, 3340, 6559, 6562, 6566,10220,10220, 3362,
1042      3371, 6574, 3333, 6581, 6584, 3330, 3331, 6593,10220,10220,
1043      3380, 3375, 3376, 3396, 3410, 3398, 3404, 3412, 6587, 3402,
1044      3429, 3446, 3435, 3419, 3438, 3453, 3442, 6601, 3407, 3409,
1045      3426, 3476, 3487, 3478, 3459, 3452, 3455, 3471, 3516, 3517,
1046      3505, 3473, 3488, 6605, 6611, 6614, 6620, 6623, 3489, 6634,
1047     10220,10220, 3490, 3486, 3474, 3498, 6642,10220,10220, 6651,
1048     10220,10220, 3507, 6659, 6662, 3491, 6670, 3571, 3601, 6678,
1049
1050      3658, 3662, 3523, 3535, 3565, 3530, 3539, 3583, 6686, 6689,
1051      3583, 6692, 6695, 6698, 6717, 6720, 6723, 6726, 3576, 3592,
1052      3594, 3585, 3590, 3623, 3625, 3613, 6729, 6732, 3628, 3628,
1053     10220, 3645, 3648, 3650,10220, 3652, 6740, 3646, 3636, 3700,
1054     10220,10220, 3666, 3665, 3665, 3660, 3735,10220,10220, 3697,
1055      3695, 6743, 6747, 6750, 6759,10220,10220, 3693, 3694, 3696,
1056      6769, 3697, 6772, 6775,10220,10220, 6783, 3727, 3739, 3730,
1057      3755, 3747, 3758, 3751, 3762, 3768, 3780,10220, 3778, 3788,
1058     10220, 6790,10220, 6793, 3811, 6796, 6803, 6815, 6846, 6893,
1059      6823, 6826, 6829, 3800, 3827, 3830, 3798, 3821, 3839, 3840,
1060
1061      3825, 6834,10220,10220, 3865, 3842, 3844, 3877, 3855, 3856,
1062      6857, 3838, 3840,10220, 3840, 3853, 3845, 3857,10220, 3857,
1063      3872, 6866, 6869,10220, 3870, 3877, 3896, 6872, 6876, 3889,
1064      6884, 6913, 6904, 6922, 3944, 3916, 3947, 3922, 3963, 3935,
1065      3968, 3940, 3976, 3984, 3983, 3984, 6930, 4004, 6939, 4027,
1066      4003, 6959, 7006, 3997,10220,10220, 3976, 4001,10220,10220,
1067      3983,10220, 4028, 4047,10220, 4046, 4047, 6933,10220, 4065,
1068      4028, 4025, 4080, 4078, 4040, 4037, 4087, 4044, 4046, 4027,
1069      6979, 4111, 4124, 4060, 6987,10220,10220, 6995, 4130, 4138,
1070     10220, 4122,10220, 4120,10220, 4131,10220, 4134,10220,10220,
1071
1072     10220,10220, 6952,10220, 4168, 4188, 4185, 4142, 4276, 4147,
1073      7017, 4144, 4148, 4161, 4156,10220,10220,10220,10220,10220,
1074      4189, 4134,10220,10220, 4230, 4151,10220, 7026, 7029, 7032,
1075      4215, 4201, 4218, 4203, 7037, 4261, 4205, 4314, 4207,10220,
1076     10220,10220,10220, 7040, 4251, 4240, 4253, 7055, 4269, 4255,
1077      4269, 4271,10220, 4246, 4297,10220, 4256, 4298, 7059, 7062,
1078      7070, 7077, 7088, 7091, 4268, 4300, 4321, 4304, 4327, 4340,
1079      7099, 7107, 4325, 4333, 4346, 4346, 4360, 4374, 7102, 4383,
1080     10220, 4370,10220, 4378, 4364,10220, 4366,10220, 7117,10220,
1081     10220, 7125,10220,10220, 7133, 4394, 4416, 4386, 4406, 4406,
1082
1083      4409, 4414, 4414, 7141,10220,10220, 4417, 4430, 4427, 4429,
1084      4435, 4436, 4482,10220, 4480, 4483, 4438, 4447, 4492, 4493,
1085      4503, 4504, 4505, 4511, 4515, 4513, 4519, 4520, 4524, 4531,
1086      4531, 4529, 4539, 4539, 4568,10220,10220, 4520, 4527, 4545,
1087      4573, 4556, 4576, 4568, 4567, 4585, 4574, 4572, 4589, 4603,
1088      4601, 4618, 4608, 4611, 4628, 4658, 4655, 4656, 4630, 4632,
1089      4634, 4639, 4654, 4649, 4683, 4676, 4667, 4698, 4682, 4680,
1090      4713, 4694, 4685, 4717, 4727,10220,10220, 4701, 4707, 4704,
1091      4723, 4744, 4719,10220, 4754, 4732,10220, 4760, 4738,10220,
1092      4767, 4745,10220, 4805, 4742, 4759, 4763, 4776,10220, 4782,
1093
1094     10220, 4790,10220, 4792,10220, 4793, 7149, 4800, 4831, 4819,
1095      4838, 4815, 4824, 4833, 4836, 7152, 4875,10220, 4874,10220,
1096      4881, 4890, 4896, 4899, 4895, 4903,10220,10220,10220,10220,
1097     10220,10220, 4892, 4957, 5032, 5035, 4958, 4999, 4893, 5065,
1098      5090, 5106, 5126, 5142, 5096, 5107, 5003, 5131, 5186, 5203,
1099      4934, 5136, 4968, 5151, 5169, 5183, 5121, 5166, 5318, 5331,
1100      5251, 5293, 5191, 5230, 5223, 5291, 5252, 5296, 5308, 5327,
1101      5059, 5358, 5333, 5378, 5185, 5427, 4989, 5000, 5440, 5477,
1102      5483, 5528, 5442, 5443, 5535, 5542, 5272, 5552, 5522, 5587,
1103      5254, 5267, 5478, 5504, 5536, 5567, 5330, 5465, 5549, 5593,
1104
1105      5614, 5615, 5609, 5673, 5606, 5649, 5688, 5701, 5668, 5742,
1106      5507, 5623, 5771, 5824, 5462, 5285, 7160, 7163,10220,10220,
1107      7183, 7192, 7201, 7210, 7219, 7228, 7237, 7246, 7255, 7264,
1108      7273, 7282, 7291, 7300, 7309, 7318, 7327, 7336, 7345, 7354,
1109      7363, 7372, 7381, 7390, 7399, 7408, 7417, 7426, 7435, 7444,
1110      7453, 7462, 7471, 7480, 7489, 7498, 7507, 7516, 7525, 7534,
1111      7543, 7552, 7561, 7570, 7579, 7588, 7597, 7606, 7615, 7624,
1112      7633, 7642, 7651, 7658, 7665, 7672, 7679, 7686, 7693, 7700,
1113      7707, 7714, 7721, 7728, 7735, 7742, 7749, 7756, 7763, 7770,
1114      7777, 7784, 7791, 7798, 7805, 7812, 7819, 7828, 7835, 7840,
1115
1116      7847, 7852, 7859, 7864, 7871, 7876, 7883, 7888, 7895, 7900,
1117      7907, 7912, 7919, 7924, 7931, 7936, 7943, 7948, 7955, 7960,
1118      7967, 7972, 7979, 7984, 7991, 7996, 8003, 8008, 8015, 8020,
1119      8027, 8032, 8039, 8044, 8051, 8056, 8063, 8068, 8075, 8080,
1120      8087, 8092, 8099, 8104, 8111, 8116, 8125, 8131, 8138, 8146,
1121      8153, 8161, 8168, 8176, 8183, 8191, 8198, 8206, 8213, 8221,
1122      8228, 8236, 8243, 8251, 8258, 8266, 8273, 8281, 8288, 8296,
1123      8303, 8311, 8318, 8326, 8333, 8341, 8348, 8356, 8364, 8372,
1124      8380, 8388, 8395, 8403, 8411, 8419, 8427, 8435, 8442, 8450,
1125      8457, 8465, 8473, 8480, 8488, 8497, 8503, 8510, 8518, 8526,
1126
1127      8534, 8542, 8550, 8557, 8565, 8572, 8580, 8587, 8595, 8602,
1128      8610, 8617, 8625, 8633, 8641, 8649, 8657, 8664, 8672, 8679,
1129      8687, 8694, 8702, 8709, 8717, 8724, 8732, 8739, 8747, 8754,
1130      8762, 8769, 8777, 8785, 8792, 8800, 8807, 8815, 8822, 8830,
1131      8838, 8845, 8853, 8862, 8871, 8878, 8886, 8894, 8901, 8909,
1132      8916, 8924, 8931, 8939, 8946, 8953, 8961, 8968, 8976, 8984,
1133      8991, 8999, 9006, 9014, 9021, 9029, 9036, 9044, 9051, 9059,
1134      9066, 9074, 9081, 9089, 9096, 9104, 9111, 9119, 9127, 9134,
1135      9142, 9149, 9157, 9165, 9173, 9181, 9189, 9197, 9206, 9215,
1136      9222, 9230, 9238, 9245, 9253, 9260, 9268, 9275, 9283, 9290,
1137
1138      9297, 9305, 9312, 9320, 9328, 9336, 9344, 9351, 9359, 9366,
1139      9374, 9381, 9389, 9396, 9404, 9411, 9419, 9426, 9434, 9442,
1140      9450, 9457, 9465, 9473, 9481, 9489, 9496, 9504, 9512, 9520,
1141      9528, 9537, 9546, 9554, 9562, 9570, 9577, 9585, 9592, 9600,
1142      9608, 9616, 9624, 9632, 9640, 9648, 9656, 9664, 9672, 9679,
1143      9686, 9694, 9701, 9708, 9716, 9723, 9730, 9738, 9745, 9753,
1144      9760, 9768, 9776, 9784, 9791, 9799, 9807, 9815, 9824, 9833,
1145      9841, 9849, 9856, 9863, 9871, 9879, 9887, 9895, 9903, 9910,
1146      9917, 9925, 9932, 9939, 9947, 9954, 9961, 9968, 9976, 9983,
1147      9991, 9999,10007,10015,10023,10031,10039,10048,10057,10065,
1148
1149     10073,10080,10088,10096,10104,10112,10120,10127,10134,10142,
1150     10149,10156,10165,10174,10183,10192,10201,10210
1151     } ;
1152
1153 static yyconst flex_int16_t yy_def[3319] =
1154     {   0,
1155      2921, 2921, 2922, 2922, 2922, 2922, 2923, 2923, 2924, 2924,
1156      2925, 2925, 2926, 2926, 2926, 2926, 2927, 2927, 2921, 2921,
1157      2928, 2928, 2929, 2929, 2929, 2929, 2921, 2921, 2929, 2929,
1158      2929, 2929, 2921, 2921, 2929, 2929, 2921, 2921, 2929, 2929,
1159      2929, 2929, 2930, 2930, 2931, 2931, 2921, 2921, 2931, 2931,
1160      2931, 2931, 2932, 2932, 2926, 2926, 2933, 2933, 2934, 2934,
1161      2921, 2921, 2934, 2934, 2934, 2934, 2935, 2935, 2936, 2936,
1162      2937, 2937, 2938, 2938, 2938, 2938, 2921, 2921, 2938, 2938,
1163      2938, 2938, 2921, 2921, 2938, 2938, 2921, 2921, 2938, 2938,
1164      2938, 2938, 2921, 2921, 2938, 2938, 2921, 2921, 2938, 2938,
1165
1166      2938, 2938, 2939, 2939, 2940, 2940, 2921, 2921, 2940, 2940,
1167      2940, 2940, 2941, 2941, 2942, 2942, 2921, 2921, 2942, 2942,
1168      2942, 2942, 2943, 2943, 2944, 2944, 2945, 2945, 2946, 2946,
1169      2947, 2947, 2948, 2948, 2921, 2921, 2948, 2948, 2948, 2948,
1170      2920,  141, 2949, 2949, 2950, 2950, 2951, 2951, 2952, 2952,
1171      2953, 2953, 2954, 2954, 2955, 2955, 2921, 2921, 2955, 2955,
1172      2955, 2955, 2956, 2956, 2957, 2957, 2921, 2921, 2957, 2957,
1173      2957, 2957, 2958, 2958, 2959, 2959, 2921, 2921, 2959, 2959,
1174      2959, 2959, 2960, 2960, 2961, 2961, 2962, 2962, 2963, 2963,
1175      2921, 2921, 2963, 2963, 2963, 2963, 2964, 2964, 2965, 2965,
1176
1177      2921, 2921, 2965, 2965, 2965, 2965, 2966, 2966, 2967, 2967,
1178      2921, 2921, 2967, 2967, 2967, 2967, 2968, 2968, 2969, 2969,
1179      2970, 2970, 2971, 2971, 2921, 2921, 2971, 2971, 2971, 2971,
1180      2972, 2972, 2973, 2973, 2921, 2921, 2920, 2920, 2920, 2920,
1181      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1182      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1183      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2974, 2920, 2920,
1184      2974, 2920, 2920, 2920,  274,  274,  276,  274,  277,  277,
1185      2920, 2920, 2920, 2975, 2920, 2920, 2975, 2920, 2920,  278,
1186       277, 2920, 2920, 2920, 2976, 2920, 2920, 2976, 2976, 2976,
1187
1188      2920, 2920, 2920, 2920, 2920, 2977, 2920, 2920, 2977, 2977,
1189      2977, 2977, 2977, 2920, 2920,  277,  277,  277, 2920, 2920,
1190      2920, 2978, 2920, 2920, 2978, 2978, 2978, 2920, 2920, 2920,
1191      2920, 2920, 2920, 2979, 2920, 2920, 2979, 2979, 2920, 2920,
1192       278,  277,  278,  341,  342,  342,  342,  342,  347,  349,
1193       348,  347, 2920, 2920, 2920, 2980, 2920, 2920, 2980, 2980,
1194      2980, 2980, 2920, 2920,  277,  277, 2920, 2920, 2920, 2981,
1195      2920, 2920, 2981, 2981, 2981, 2920, 2920,  277,  277, 2920,
1196      2920, 2920, 2982, 2920, 2920, 2982, 2982, 2920, 2920, 2920,
1197      2920, 2920, 2920, 2983, 2920, 2920, 2983, 2983, 2920, 2920,
1198
1199      2920, 2920, 2920, 2920, 2984, 2920, 2920, 2984, 2984, 2984,
1200      2984, 2984, 2920, 2920,  277,  415,  415, 2920, 2920, 2920,
1201      2985, 2920, 2920, 2985, 2985, 2985, 2985, 2985, 2985, 2985,
1202      2985, 2920, 2920, 2920, 2920, 2920, 2920, 2986, 2920, 2920,
1203      2986, 2986, 2986, 2986, 2986, 2986, 2986, 2920, 2920, 2920,
1204      2920, 2920, 2920, 2987, 2920, 2920, 2987, 2987, 2920, 2920,
1205      2920, 2920, 2920, 2920, 2988, 2920, 2920, 2988, 2988, 2988,
1206      2988, 2920, 2920,  415,  277, 2920, 2920, 2920, 2989, 2920,
1207      2920, 2989, 2989, 2920, 2920,  277,  486,  486, 2920, 2920,
1208      2920, 2990, 2920, 2920, 2990, 2990, 2990, 2920, 2920,  486,
1209
1210       486, 2920, 2920, 2920, 2991, 2920, 2920, 2991, 2991, 2920,
1211      2920, 2920, 2920, 2920, 2920, 2992, 2920, 2920, 2992, 2992,
1212      2920, 2920,  486,  486, 2920, 2920, 2920, 2993, 2920, 2920,
1213      2993, 2993, 2993, 2920, 2920,  486,  486, 2920, 2920, 2920,
1214      2994, 2920, 2920, 2994, 2994, 2994, 2994, 2920, 2920,  277,
1215       550,  550, 2920, 2920, 2920, 2995, 2920, 2920, 2995, 2920,
1216      2920, 2920, 2920, 2920, 2920, 2996, 2920, 2920, 2996, 2920,
1217      2920,  550,  277, 2920, 2920, 2920, 2997, 2920, 2920, 2997,
1218      2997, 2920, 2920, 2920, 2920, 2998, 2920, 2920, 2920, 2920,
1219      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1220
1221      2920, 2999, 2999, 3000, 2920, 2920, 2920, 2920, 2920, 2920,
1222      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1223      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3001, 3001, 3002,
1224      2920, 3003, 3003, 3003, 3003, 2920, 3004, 2920, 2920, 3005,
1225      3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3006, 2920,
1226      2920, 3007, 3007, 3007, 3007, 3008, 2920, 3009, 3009, 3009,
1227      3010, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1228      2920, 2920, 2920, 3011, 3011, 3011, 3011, 3011, 3012, 2920,
1229      3013, 3013, 3013, 3013, 3014, 2920, 3015, 3015, 3015, 3016,
1230      2920, 3017, 3017, 3017, 3018, 2920, 3019, 3019, 3019, 3019,
1231
1232      3019, 3019, 3020, 2920, 2920, 3021, 3021, 3021, 3021, 3021,
1233      3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3022,
1234      2920, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3024,
1235      2920, 3025, 3025, 3025, 3026, 2920, 3027, 3027, 3027, 3027,
1236      3027, 3027, 3028, 2920, 3029, 3029, 3029, 3029, 3030, 2920,
1237      2920, 3031, 3031, 3031, 3031, 3031, 3032, 2920, 3033, 3033,
1238      3033, 3034, 2920, 3035, 3035, 3035, 3036, 2920, 3037, 3037,
1239      3037, 3037, 3038, 2920, 3039, 3039, 3039, 3039, 3039, 3040,
1240      2920, 2920, 3041, 3041, 3042, 2920, 3043, 3043, 3044, 2920,
1241      3045, 3045, 3045, 3046, 3047, 2920, 3047, 2920, 2920, 2920,
1242
1243      3048, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3049, 3050,
1244      3050, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1245      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1246      2920, 2920, 2920, 2920, 2920, 2920, 3051, 3052, 3052, 3053,
1247      2920, 2920, 3053, 2920, 3054, 3054, 2920, 3055, 2920, 2920,
1248      3055, 3055, 3055, 3055, 3055, 3055, 3056, 3056, 2920, 3057,
1249      3057, 3057, 3058, 3058, 2920, 2920, 3059, 3060, 3060, 2920,
1250      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1251      3061, 2920, 2920, 3061, 3061, 3062, 3062, 3063, 2920, 2920,
1252      3063, 3064, 3064, 2920, 2920, 3065, 3066, 3066, 3067, 3067,
1253
1254      3068, 3068, 3069, 3069, 3069, 2920, 2920, 3069, 3069, 3070,
1255      3070, 2920, 2920, 3071, 3071, 2920, 2920, 3071, 2920, 2920,
1256      3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3072, 3072,
1257      3073, 3073, 3073, 2920, 2920, 3073, 3073, 3073, 3074, 3074,
1258      3075, 2920, 2920, 3076, 3076, 3077, 2920, 2920, 3077, 3077,
1259      3077, 3078, 3078, 3079, 3079, 3079, 3080, 3080, 2920, 3081,
1260      3081, 3081, 3081, 3082, 3082, 3083, 2920, 2920, 3084, 3084,
1261      3085, 3085, 3086, 3086, 3087, 3087, 3087, 3088, 3088, 3089,
1262      3089, 3089, 3089, 3090, 3090, 2920, 3091, 3092, 3092, 2920,
1263      2920, 3093, 3093, 2920, 2920, 3094, 3095, 3095, 3096, 2920,
1264
1265      2920, 3096, 2920, 2920, 3097, 2920, 2920, 2920, 2920, 2920,
1266      2920, 3098, 2920, 3099, 2920, 3099, 2920, 2920, 2920, 2920,
1267      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1268      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1269      2920, 2920, 3100, 2920, 3101, 2920, 3101, 3102, 2920, 2920,
1270      2920, 3102, 2920, 2920, 3103, 2920, 3103, 3104, 2920, 2920,
1271      2920, 2920, 2920, 3104, 2920, 2920, 3104, 3104, 3104, 2920,
1272      3105, 2920, 3105, 2920, 3106, 3106, 3106, 2920, 3107, 2920,
1273      3107, 2920, 2920, 2920, 3108, 2920, 3109, 2920, 3109, 2920,
1274      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3110,
1275
1276      2920, 2920, 2920, 3110, 3110, 2920, 3111, 2920, 3111, 3112,
1277      2920, 2920, 2920, 3112, 2920, 3113, 2920, 3113, 2920, 2920,
1278      2920, 3114, 2920, 3115, 2920, 3115, 3116, 3116, 2920, 3117,
1279      2920, 3117, 3118, 3118, 3118, 2920, 2920, 2920, 3118, 3118,
1280      2920, 3119, 2920, 3119, 2920, 2920, 3120, 3120, 3120, 3120,
1281      2920, 2920, 2920, 3120, 2920, 2920, 2920, 2920, 2920, 3120,
1282      3120, 3120, 3120, 3120, 3120, 3120, 2920, 3121, 2920, 3121,
1283      3122, 3122, 3122, 3122, 2920, 2920, 2920, 2920, 2920, 3122,
1284      3122, 2920, 3123, 2920, 3123, 3124, 2920, 2920, 2920, 2920,
1285      3125, 2920, 3125, 3126, 2920, 2920, 2920, 3126, 3126, 3126,
1286
1287      2920, 3127, 2920, 3127, 2920, 2920, 2920, 2920, 3128, 2920,
1288      3129, 2920, 3129, 2920, 2920, 2920, 3130, 3130, 2920, 2920,
1289      3130, 2920, 3131, 2920, 3131, 3132, 2920, 2920, 2920, 2920,
1290      3133, 2920, 3133, 2920, 2920, 2920, 2920, 2920, 3134, 2920,
1291      3134, 2920, 2920, 3135, 3135, 2920, 2920, 2920, 3136, 2920,
1292      3136, 3137, 3137, 3137, 3137, 2920, 3138, 2920, 3138, 2920,
1293      3139, 2920, 3140, 2920, 3140, 2920, 2920, 2920, 2920, 3141,
1294      2920, 3141, 2920, 2920, 2920, 3142, 2920, 3143, 2920, 3143,
1295      3144, 3145, 2920, 2920, 2920, 2920, 2920, 3146, 3147, 2920,
1296      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1297
1298      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1299      2920, 2920, 2920, 2920, 2920, 2920, 3148, 2920, 2920, 3149,
1300      2920, 3150, 3151, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1301      2920, 3151, 2920, 2920, 3151, 3152, 2920, 3153, 2920, 2920,
1302      3153, 3154, 3155, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1303      2920, 2920, 2920, 2920, 2920, 3156, 3156, 2920, 2920, 3157,
1304      3158, 3158, 3159, 2920, 2920, 3160, 2920, 2920, 3161, 3162,
1305      3163, 3163, 2920, 2920, 3163, 3163, 3164, 2920, 2920, 3165,
1306      3165, 3165, 3165, 2920, 2920, 2920, 2920, 2920, 3165, 3165,
1307      3165, 3165, 3165, 3165, 3165, 3166, 3167, 3167, 3167, 3167,
1308
1309      2920, 2920, 2920, 3167, 3167, 3168, 3169, 3170, 3171, 3171,
1310      3171, 3171, 3172, 2920, 2920, 2920, 2920, 2920, 2920, 3173,
1311      3174, 2920, 2920, 2920, 2920, 3175, 3175, 2920, 2920, 2920,
1312      3175, 3176, 3177, 3178, 2920, 2920, 2920, 2920, 2920, 2920,
1313      3179, 2920, 2920, 2920, 3180, 3180, 2920, 2920, 2920, 3181,
1314      3182, 2920, 2920, 3182, 3182, 3183, 2920, 3184, 3185, 3186,
1315      3187, 3188, 3189, 3190, 3190, 2920, 3190, 2920, 2920, 2920,
1316      3191, 3192, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1317      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1318      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1319
1320      2920, 3193, 2920, 2920, 2920, 3194, 2920, 3195, 3196, 2920,
1321      2920, 2920, 3196, 2920, 2920, 2920, 3196, 3197, 2920, 3198,
1322      2920, 2920, 2920, 2920, 2920, 3199, 3200, 2920, 2920, 2920,
1323      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3201, 2920, 2920,
1324      2920, 2920, 2920, 3202, 3203, 3203, 3204, 2920, 2920, 2920,
1325      3205, 2920, 2920, 2920, 3206, 3207, 3208, 3208, 2920, 2920,
1326      2920, 2920, 2920, 2920, 2920, 3208, 3209, 2920, 2920, 3210,
1327      2920, 2920, 3210, 3210, 2920, 2920, 2920, 2920, 2920, 3210,
1328      3210, 3210, 3210, 3210, 3210, 3211, 3212, 2920, 2920, 3212,
1329      3212, 2920, 2920, 3212, 3213, 3214, 3215, 3216, 3216, 3216,
1330
1331      2920, 2920, 3216, 3217, 3218, 3219, 2920, 3220, 3220, 3220,
1332      3221, 3222, 3223, 3224, 3225, 3225, 3226, 3227, 2920, 2920,
1333      2920, 3227, 3227, 3228, 2920, 2920, 2920, 3229, 3230, 2920,
1334      2920, 3231, 3232, 3233, 3233, 2920, 2920, 3234, 3235, 2920,
1335      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1336      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1337      2920, 2920, 2920, 3236, 3237, 2920, 3238, 3239, 3239, 3239,
1338      3240, 3241, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1339      2920, 2920, 2920, 3242, 3243, 2920, 2920, 2920, 2920, 2920,
1340      2920, 2920, 3244, 2920, 2920, 2920, 3245, 3246, 2920, 2920,
1341
1342      3247, 3248, 2920, 2920, 3249, 3250, 3250, 2920, 2920, 2920,
1343      2920, 2920, 2920, 3250, 2920, 2920, 2920, 2920, 3251, 2920,
1344      2920, 2920, 2920, 2920, 3251, 2920, 2920, 2920, 2920, 2920,
1345      3251, 3251, 3251, 3251, 2920, 2920, 3252, 3253, 2920, 2920,
1346      2920, 2920, 2920, 3253, 2920, 2920, 2920, 3253, 2920, 2920,
1347      3254, 3255, 3256, 3256, 3256, 2920, 2920, 2920, 3256, 2920,
1348      2920, 3257, 3258, 2920, 2920, 2920, 2920, 2920, 3259, 3260,
1349      3261, 3262, 3263, 2920, 2920, 2920, 2920, 3264, 3265, 3265,
1350      3265, 3266, 2920, 2920, 2920, 2920, 3267, 3268, 2920, 2920,
1351      2920, 2920, 2920, 3269, 3270, 3270, 2920, 2920, 2920, 3271,
1352
1353      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1354      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1355      2920, 3272, 3273, 2920, 2920, 2920, 3274, 2920, 2920, 3274,
1356      3275, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1357      2920, 2920, 2920, 3276, 2920, 2920, 2920, 2920, 2920, 2920,
1358      2920, 2920, 2920, 3277, 2920, 2920, 2920, 2920, 2920, 3278,
1359      2920, 2920, 2920, 2920, 2920, 3279, 3280, 3280, 2920, 2920,
1360      3280, 2920, 3281, 2920, 2920, 2920, 3281, 2920, 2920, 2920,
1361      2920, 2920, 3281, 3281, 3281, 2920, 2920, 2920, 3282, 3283,
1362      2920, 2920, 2920, 3283, 3283, 3284, 3285, 3286, 2920, 2920,
1363
1364      3286, 3286, 2920, 2920, 3286, 3287, 2920, 2920, 2920, 2920,
1365      2920, 2920, 2920, 2920, 2920, 3288, 3289, 3290, 3291, 3292,
1366      2920, 2920, 2920, 2920, 2920, 2920, 3293, 3294, 3294, 3294,
1367      3295, 2920, 3296, 3297, 3298, 3299, 3299, 2920, 2920, 2920,
1368      2920, 3300, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1369      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3301,
1370      3302, 2920, 3303, 2920, 2920, 2920, 3303, 2920, 2920, 2920,
1371      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1372      2920, 2920, 3304, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1373      2920, 2920, 2920, 2920, 3305, 2920, 2920, 2920, 3306, 3307,
1374
1375      3308, 3308, 2920, 2920, 2920, 2920, 3308, 2920, 3309, 3309,
1376      2920, 2920, 2920, 3309, 3309, 3309, 3310, 3311, 3311, 3311,
1377      3312, 2920, 2920, 3286, 2920, 2920, 2920, 3286, 3286, 2920,
1378      2920, 2920, 2920, 3286, 3287, 2920, 3288, 3289, 3290, 3291,
1379      3292, 3293, 2920, 2920, 3294, 3294, 3295, 2920, 3296, 2920,
1380      2920, 3298, 3299, 3299, 2920, 3300, 2920, 2920, 2920, 2920,
1381      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3302, 2920, 2920,
1382      3303, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1383      2920, 3304, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1384      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3305, 2920, 2920,
1385
1386      3307, 3308, 3308, 2920, 2920, 2920, 2920, 3308, 2920, 3309,
1387      3309, 2920, 2920, 3309, 3309, 2920, 2920, 3311, 3311, 3311,
1388      3312, 2920, 2920, 3286, 3286, 3286, 2920, 2920, 2920, 2920,
1389      3286, 3287, 2920, 3288, 2920, 2920, 2920, 2920, 3291, 3292,
1390      3293, 2920, 2920, 2920, 2920, 2920, 3294, 2920, 2920, 2920,
1391      3296, 3298, 3299, 3299, 2920, 2920, 2920, 2920, 2920, 2920,
1392      2920, 3302, 2920, 2920, 2920, 3303, 2920, 2920, 2920, 2920,
1393      2920, 2920, 2920, 2920, 2920, 2920, 3304, 2920, 2920, 2920,
1394      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1395      2920, 2920, 2920, 2920, 3305, 2920, 2920, 3308, 3308, 2920,
1396
1397      2920, 2920, 2920, 3309, 3309, 2920, 2920, 2920, 3309, 2920,
1398      2920, 3311, 3311, 2920, 2920, 3312, 2920, 2920, 2920, 3286,
1399      3286, 3286, 2920, 2920, 2920, 2920, 3287, 3288, 2920, 2920,
1400      2920, 2920, 2920, 3292, 3293, 2920, 2920, 2920, 2920, 2920,
1401      2920, 2920, 3298, 3299, 3299, 2920, 2920, 2920, 2920, 2920,
1402      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3303, 2920,
1403      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3304,
1404      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1405      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3305, 3308, 2920,
1406      2920, 2920, 2920, 2920, 3309, 3309, 3309, 2920, 2920, 2920,
1407
1408      3311, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3286, 3286,
1409      3286, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1410      2920, 2920, 2920, 2920, 3292, 3293, 2920, 2920, 2920, 3298,
1411      3299, 3299, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1412      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3303, 2920,
1413      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3304, 2920, 2920,
1414      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1415      2920, 2920, 2920, 2920, 2920, 3305, 2920, 2920, 3308, 2920,
1416      2920, 2920, 3309, 3309, 3309, 3311, 2920, 2920, 2920, 2920,
1417      2920, 2920, 3286, 2920, 2920, 3286, 2920, 2920, 2920, 2920,
1418
1419      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3292, 3293,
1420      3298, 3299, 3299, 3299, 2920, 2920, 2920, 2920, 2920, 2920,
1421      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1422      2920, 2920, 2920, 2920, 2920, 2920, 3304, 2920, 2920, 2920,
1423      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1424      2920, 2920, 2920, 3305, 2920, 2920, 2920, 3308, 3309, 3309,
1425      3309, 3311, 3286, 2920, 2920, 2920, 3286, 2920, 2920, 2920,
1426      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1427      2920, 2920, 2920, 3293, 3298, 3299, 3299, 3299, 3313, 3314,
1428      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1429
1430      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1431      3304, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1432      2920, 2920, 2920, 2920, 3308, 3309, 3309, 2920, 2920, 3311,
1433      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1434      2920, 2920, 2920, 2920, 2920, 2920, 3293, 3298, 3299, 3315,
1435      3316, 3313, 3314, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1436      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1437      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3308, 3309, 3309,
1438      2920, 2920, 2920, 3311, 2920, 2920, 2920, 2920, 2920, 2920,
1439      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1440
1441      2920, 2920, 2920, 2920, 3298, 3315, 3299, 3317, 3316, 3318,
1442      3299, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1443      2920, 2920, 2920, 2920, 2920, 2920, 2920, 3308, 3309, 3309,
1444      2920, 2920, 2920, 2920, 3311, 2920, 2920, 2920, 2920, 2920,
1445      2920, 2920, 2920, 3298, 3317, 2920, 3318, 3299, 2920, 2920,
1446      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1447      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1448      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 3298, 2920,
1449      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1450      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1451
1452      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1453      2920, 2920, 3298, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1454      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1455      2920, 2920, 2920, 2920, 3298, 2920, 2920, 2920, 2920, 2920,
1456      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1457      2920, 2920, 2920, 2920, 2920, 3298, 2920, 2920, 2920, 2920,
1458      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1459      2920, 2920, 2920, 2920, 3298, 2920, 2920, 2920, 2920, 2920,
1460      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1461      2920, 2920, 2920, 3298, 2920, 2920, 2920, 2920, 2920, 2920,
1462
1463      2920, 2920, 2920, 2920, 2920, 2920, 3298, 2920, 2920, 2920,
1464      2920, 2920, 2920, 2920, 2920, 3298, 2920, 2920, 2920, 2920,
1465      2920, 2920, 2920, 2920, 3298, 3298, 2920, 2920, 2920, 2920,
1466      2920, 2920, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1467      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1468      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1469      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1470      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1471      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1472      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1473
1474      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1475      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 2920,    0,
1476      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1477      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1478      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1479      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1480      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1481      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1482      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1483      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1484
1485      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1486      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1487      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1488      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1489      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1490      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1491      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1492      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1493      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1494      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1495
1496      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1497      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1498      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1499      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1500      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1501      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1502      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1503      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1504      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1505      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1506
1507      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1508      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1509      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1510      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1511      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1512      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1513      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1514      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1515      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1516      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1517
1518      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
1519      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920
1520     } ;
1521
1522 static yyconst flex_int16_t yy_nxt[10295] =
1523     {   0,
1524      2920,  240,  241,  240,  240,  241,  240,  240,  241,  240,
1525       240,  241,  240,  245,  241,  245,  251,  242,  248,  251,
1526       242,  248, 2920,  243, 2920,  249,  243, 2920,  249,  246,
1527       245,  241,  245,  586,  252,  254,  255,  252,  254,  255,
1528       256,  257,  630,  256,  257,  586,  246,  261,  262,  587,
1529       258,  254,  255,  258,  259,  589,  256,  254,  255,  619,
1530       259,  588,  256,  261,  262, 2920,  258,  241,  241,  241,
1531       741,  588,  258,  241,  241,  241,  273,  241,  273,  273,
1532       241,  273,  742,  264,  273,  241,  273,  607, 1640,  264,
1533       661,  263,  274, 1172,  622,  274,  585,  585,  585, 1173,
1534
1535       275,  585,  585,  585,  585,  585,  585,  263,  265,  266,
1536       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1537       265,  265,  265,  617,  265,  269,  265,  270,  265,  273,
1538       241,  273,  241,  241,  241,  241,  241,  241,  618,  273,
1539       241,  273,  273,  241,  273,  275,  623,  612,  276,  589,
1540       622,  276, 1641,  265,  265,  274,  589,  589,  274,  273,
1541       241,  273,  585,  585,  585,  588,  585,  585,  585,  585,
1542       585,  585,  588,  588,  649,  277, 1642,  271,  265,  266,
1543       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1544       265,  265,  265, 1643,  265,  269,  265,  270,  265,  273,
1545
1546       241,  273,  241,  241,  241,  241,  241,  241,  594,  273,
1547       241,  273,  273,  241,  273,  277,  600, 1644,  278,  713,
1548       665,  278,  714,  265,  265,  275,  650,  667,  275,  241,
1549       241,  241,  241,  241,  241,  273,  241,  273,  273,  241,
1550       273,  273,  241,  273, 1645,  279,  747,  271,  279,  589,
1551       595,  277,  708,  748,  277, 1646,  596,  280,  273,  241,
1552       273,  597,  585,  585,  585,  588,  598,  585,  585,  585,
1553       585,  585,  585,  709,  280,  281,  282,  241,  282,  281,
1554       281,  281,  281,  281,  281,  281,  283,  281,  281,  281,
1555       647,  281,  285,  281,  286,  281,  289,  241,  289,  289,
1556
1557       241,  289,  241,  241,  241,  648,  241,  241,  241,  289,
1558       241,  289,  290,  757,  802,  290, 1648,  803,  278,  643,
1559       281,  281,  278,  644, 2920,  290,  604,  645,  287,  281,
1560       282,  241,  282,  281,  281,  281,  281,  281,  281,  281,
1561       283,  281,  281,  281,  589,  281,  285,  281,  286,  281,
1562       289,  241,  289,  289,  241,  289,  289,  241,  289,  715,
1563       588,  611,  254,  255,  755,  624,  290,  256, 2920,  291,
1564      1649,  756,  291,  716,  281,  281,  650,  301,  625,  649,
1565       618,  796,  287,  292,  293,  241,  293,  292,  292,  292,
1566       292,  292,  292,  292,  294,  292,  292,  292,  789,  292,
1567
1568       296,  292,  297,  292, 1650,  589,  302,  617,  315,  241,
1569       315,  315,  241,  315,  241,  241,  241,  844,  254,  255,
1570       626,  588,  618,  256,  316,  636,  825,  316,  292,  292,
1571       317,  622,  637,  301,  820,  606,  298,  679,  821,  299,
1572       826,  588,  585,  585,  585, 1651,  300,  292,  293,  241,
1573       293,  292,  292,  292,  292,  292,  292,  292,  294,  292,
1574       292,  292,  302,  292,  296,  292,  297,  292,  241,  241,
1575       241,  315,  241,  315,  315,  241,  315,  830,  315,  241,
1576       315,  315,  241,  315,  317,  589,  589,  316, 2920,  650,
1577       316,  826,  292,  292,  318, 1654,  815,  318,  619,  816,
1578
1579       298,  588,  588,  299,  585,  585,  585,  585,  585,  585,
1580       300,  303,  304,  241,  304,  303,  303,  303,  303,  303,
1581       303,  303,  305,  303,  303,  303,  607,  303,  307,  303,
1582       308,  303,  329,  241,  329,  329,  241,  329,  340,  241,
1583       340,  679,  340,  241,  340,  340,  241,  340,  330, 1657,
1584       589,  330,  589,  589,  341, 1658,  303,  303,  341,  656,
1585      1659,  342,  585,  585,  585,  309,  588,  310,  588,  588,
1586       685,  311,  585,  585,  585,  685,  312,  313,  303,  304,
1587       241,  304,  303,  303,  303,  303,  303,  303,  303,  305,
1588       303,  303,  303,  622,  303,  307,  303,  308,  303,  340,
1589
1590       241,  340,  241,  241,  241,  241,  241,  241,  743,  340,
1591       241,  340,  340,  241,  340,  342,  606, 1000,  343,  589,
1592       669,  343,  650,  303,  303,  344,  609,  622,  344,  664,
1593       610,  622,  309,  665,  310,  588,  618, 1463,  311,  672,
1594       667,  767, 1660,  312,  313,  319,  320,  241,  320,  319,
1595       319,  319,  319,  319,  319,  319,  321,  319,  319,  319,
1596       622,  319,  323,  319,  324,  319,  340,  241,  340,  340,
1597       241,  340,  241,  241,  241, 1661,  241,  241,  241,  340,
1598       241,  340,  345, 1665,  815,  345,  589,  829,  346,  611,
1599       319,  319,  346,  690,  589,  342,  796,  325,  585,  585,
1600
1601       585,  695,  588,  326,  585,  585,  585,  585,  585,  585,
1602       588,  797,  327,  319,  320,  241,  320,  319,  319,  319,
1603       319,  319,  319,  319,  321,  319,  319,  319, 1666,  319,
1604       323,  319,  324,  319,  340,  241,  340,  241,  241,  241,
1605       241,  241,  241,  830,  340,  241,  340,  340,  241,  340,
1606       342, 1668,  832,  347,  589,  816,  347,  874,  319,  319,
1607       345,  832,  589,  345,  829,  325,  585,  585,  585, 1669,
1608       588,  326,  585,  585,  585,  585,  585,  585,  588, 1670,
1609       327,  331,  332,  241,  332,  331,  331,  331,  331,  331,
1610       331,  331,  333,  331,  331,  331,  773,  331,  335,  331,
1611
1612       336,  331,  340,  241,  340,  340,  241,  340,  241,  241,
1613       241, 1672,  241,  241,  241,  340,  241,  340,  348,  589,
1614       904,  348, 1685,  905,  349,  780,  331,  331,  349,  589,
1615      1686,  350,  585,  585,  585,  588,  703,  337,  585,  585,
1616       585,  585,  585,  585,  611,  588,  338,  331,  332,  241,
1617       332,  331,  331,  331,  331,  331,  331,  331,  333,  331,
1618       331,  331,  781,  331,  335,  331,  336,  331,  340,  241,
1619       340,  241,  241,  241,  241,  241,  241,  650,  340,  241,
1620       340,  340,  241,  340,  350,  704, 1687,  351,  650,  717,
1621       351, 1690,  331,  331,  348,  589, 1691,  348,  340,  241,
1622
1623       340,  718,  719,  337,  340,  241,  340,  585,  585,  585,
1624       743,  588,  338,  789,  352,  585,  585,  585,  661, 1692,
1625       352,  353,  354,  241,  354,  353,  353,  353,  353,  353,
1626       353,  353,  355,  353,  353,  353, 1693,  353,  357,  353,
1627       358,  353,  364,  241,  364,  364,  241,  364,  241,  241,
1628       241,  912,  241,  241,  241,  913,  670, 1698,  365,  612,
1629       589,  365,  589,  589,  317,  622,  353,  353,  317,  720,
1630       730,  359,  666,  585,  585,  585,  588,  360,  588,  588,
1631      1706,  361,  585,  585,  585, 1707, 1714,  362,  353,  354,
1632       241,  354,  353,  353,  353,  353,  353,  353,  353,  355,
1633
1634       353,  353,  353, 1718,  353,  357,  353,  358,  353,  364,
1635       241,  364,  364,  241,  364,  364,  241,  364,  830,  364,
1636       241,  364,  585,  585,  585,  365,  589, 1719,  365, 1725,
1637      1731,  366,  879,  353,  353,  366,  589,  589,  359,  585,
1638       585,  585,  588,  735,  360,  585,  585,  585,  361,  585,
1639       585,  585,  588,  588,  362,  367,  368,  241,  368,  367,
1640       367,  367,  367,  367,  367,  367,  369,  367,  367,  367,
1641      1732,  367,  371,  367,  372,  367,  377,  241,  377,  377,
1642       241,  377,  241,  241,  241,  830,  241,  241,  241,  585,
1643       585,  585,  378, 1000,  589,  378, 1000, 1281,  317,  880,
1644
1645       367,  367,  317, 1733, 1734,  373,  585,  585,  585,  749,
1646       588,  374,  585,  585,  585,  585,  585,  585,  585,  585,
1647       585, 1633,  375,  367,  368,  241,  368,  367,  367,  367,
1648       367,  367,  367,  367,  369,  367,  367,  367, 1738,  367,
1649       371,  367,  372,  367,  377,  241,  377,  377,  241,  377,
1650       377,  241,  377, 1744,  377,  241,  377,  750, 1748, 1751,
1651       378,  622, 1753,  378, 1302, 1754,  379, 1755,  367,  367,
1652       379,  589,  589,  373,  585,  585,  585, 1303,  762,  374,
1653       585,  585,  585,  585,  585,  585, 1759,  588,  588, 1762,
1654       375,  380,  381,  241,  381,  380,  380,  380,  380,  380,
1655
1656       380,  380,  382,  380,  380,  380, 1764,  380,  384,  380,
1657       385,  380,  389,  241,  389,  389,  241,  389,  400,  241,
1658       400, 1771,  400,  241,  400,  414,  241,  414,  390,  589,
1659       589,  390, 1779, 1780,  401,  589,  380,  380,  401, 1781,
1660      1783,  415,  585,  585,  585,  588,  588,  386,  585,  585,
1661       585,  588,  387,  380,  381,  241,  381,  380,  380,  380,
1662       380,  380,  380,  380,  382,  380,  380,  380, 1466,  380,
1663       384,  380,  385,  380,  414,  241,  414,  241,  241,  241,
1664       241,  241,  241, 1797,  414,  241,  414,  414,  241,  414,
1665       415,  589, 1801,  416, 1802,  822,  416, 1000,  380,  380,
1666
1667       415, 1796,  823,  415,  585,  585,  585,  588,  824,  386,
1668       585,  585,  585, 1002,  387,  391,  392,  241,  392,  391,
1669       391,  391,  391,  391,  391,  391,  393,  391,  391,  391,
1670      1805,  391,  395,  391,  396,  391,  414,  241,  414,  414,
1671       241,  414,  433,  241,  433, 1807,  433,  241,  433,  449,
1672       241,  449,  417, 1808, 1809,  417, 1466, 1810,  434, 1803,
1673       391,  391,  434, 1000, 1811,  450,  585,  585,  585,  585,
1674       585,  585,  585,  585,  585, 1804,  397,  585,  585,  585,
1675      1794, 1814,  398,  391,  392,  241,  392,  391,  391,  391,
1676       391,  391,  391,  391,  393,  391,  391,  391, 1795,  391,
1677
1678       395,  391,  396,  391,  449,  241,  449,  460,  241,  460,
1679       460,  241,  460, 1815,  473,  241,  473,  473,  241,  473,
1680       450, 1818, 1819,  461,  589, 1820,  461, 1821,  391,  391,
1681       474,  785, 1823,  474,  585,  585,  585,  585,  585,  585,
1682       588,  585,  585,  585,  397,  585,  585,  585, 1824, 1827,
1683       398,  402,  403,  241,  403,  402,  402,  402,  402,  402,
1684       402,  402,  404,  402,  402,  402, 1830,  402,  406,  402,
1685       407,  402,  241,  241,  241,  241,  241,  241,  473,  241,
1686       473, 1834,  473,  241,  473, 1835,  589, 1313,  317, 1838,
1687      1839,  317, 1840,  794,  474, 1843,  402,  402,  474,  408,
1688
1689      1303,  409,  588,  800,  800,  800, 1847,  410,  800,  800,
1690       800, 1851, 1004, 1867,  411, 1868, 1869,  412,  402,  403,
1691       241,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1692       402,  402,  402, 1870,  402,  406,  402,  407,  402,  473,
1693       241,  473,  473,  241,  473,  485,  241,  485, 1871,  485,
1694       241,  485, 1049, 1049, 1049,  475, 1050, 1872,  475, 1051,
1695       834,  486,  801,  402,  402,  486,  408,  823,  409,  834,
1696       822, 1873, 1877,  835,  410, 1883,  823,  823, 1017, 1017,
1697      1017,  411,  824,  835,  412,  418,  419,  241,  419,  418,
1698       418,  418,  418,  418,  418,  418,  420,  418,  418,  418,
1699
1700       421,  418,  422,  418,  423,  418,  421,  421,  421,  421,
1701       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1702       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1703       418,  418,  421,  424,  425,  426,  421,  421,  421,  421,
1704       421,  427,  421,  421,  428,  421,  421,  421,  429,  421,
1705       430,  431,  421,  421,  421,  421,  421,  421,  421,  435,
1706       436,  241,  436,  435,  435,  435,  435,  435,  435,  435,
1707       437,  435,  435,  435, 1884,  435,  439,  435,  440,  435,
1708       241,  241,  241,  241,  241,  241,  485,  241,  485, 1836,
1709       485,  241,  485,  841,  841,  841,  487, 1837, 1885,  487,
1710
1711      1890, 1313,  486, 1894,  435,  435,  486,  441,  442,  443,
1712       842, 1037, 1037, 1037, 1337,  444, 1841, 1895,  445, 1017,
1713      1017, 1017,  446, 1896, 1842,  447,  435,  436,  241,  436,
1714       435,  435,  435,  435,  435,  435,  435,  437,  435,  435,
1715       435, 1898,  435,  439,  435,  440,  435,  485,  241,  485,
1716       485,  241,  485,  499,  241,  499, 1902,  499,  241,  499,
1717       849,  849,  849,  488, 1903, 1848,  488, 1904, 1848,  500,
1718      1905,  435,  435,  500,  441,  442,  443,  850, 1037, 1037,
1719      1037, 1849,  444, 1018, 1804,  445, 1478, 1478, 1478,  446,
1720      1906, 1909,  447,  451,  452,  241,  452,  451,  451,  451,
1721
1722       451,  451,  451,  451,  453,  451,  451,  451, 1916,  451,
1723       455,  451,  456,  451,  241,  241,  241,  241,  241,  241,
1724       499,  241,  499, 1918,  499,  241,  499, 1148,  834, 1928,
1725       487, 1929, 1803,  487, 1930,  823,  500, 1149,  451,  451,
1726       500,  859, 1018,  457, 1150, 1480, 1480, 1480, 1849,  458,
1727       451,  452,  241,  452,  451,  451,  451,  451,  451,  451,
1728       451,  453,  451,  451,  451, 1932,  451,  455,  451,  456,
1729       451,  499,  241,  499,  499,  241,  499,  511,  241,  511,
1730      1938,  511,  241,  511,  865,  865,  865,  501, 1673, 1944,
1731       501, 1481, 1945,  512, 1674,  451,  451,  512, 1675, 1946,
1732
1733       457,  866, 1676, 1017, 1017, 1017,  458,  462,  463,  241,
1734       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1735       462,  462, 1949,  462,  466,  462,  467,  462,  522,  241,
1736       522,  522,  241,  522,  241,  241,  241, 1466,  241,  241,
1737       241,  522,  241,  522,  523, 1000, 1950,  523, 1951, 1955,
1738       487, 1935,  462,  462,  487, 1959,  468,  523, 1059, 1059,
1739      1059, 1961, 1060,  469, 1962, 1061,  470, 1090, 1936, 1466,
1740      1037, 1037, 1037,  471,  462,  463,  241,  463,  462,  462,
1741       462,  462,  462,  462,  462,  464,  462,  462,  462, 1963,
1742       462,  466,  462,  467,  462,  522,  241,  522,  522,  241,
1743
1744       522,  522,  241,  522, 1967,  535,  241,  535,  535,  241,
1745       535,  523, 1973, 1974,  524, 1937, 1975,  524, 1976,  462,
1746       462,  536, 1977,  468,  536, 1082, 1082, 1082, 1978, 1083,
1747       469, 1979, 1084,  470, 1090, 1484, 1484, 1484, 1980, 1981,
1748       471,  476,  477,  241,  477,  476,  476,  476,  476,  476,
1749       476,  476,  478,  476,  476,  476, 1982,  476,  480,  476,
1750       481,  476,  241,  241,  241,  241,  241,  241,  535,  241,
1751       535, 1988,  535,  241,  535,  535,  241,  535,  487, 1989,
1752      2001,  487, 2002, 2007,  536, 2008,  476,  476,  536, 2009,
1753      2003,  537,  482, 1101, 1101, 1101, 2010, 1102, 2004, 2014,
1754
1755      1103, 1487, 1487, 1487, 1496, 1496, 1496,  483,  476,  477,
1756       241,  477,  476,  476,  476,  476,  476,  476,  476,  478,
1757       476,  476,  476, 2015,  476,  480,  476,  481,  476,  535,
1758       241,  535,  549,  241,  549,  549,  241,  549, 2005,  241,
1759       241,  241,  241,  241,  241,  537, 2006, 2016,  550, 2018,
1760      2019,  550, 2020,  476,  476,  551, 2021, 2024,  551,  482,
1761      1111, 1111, 1111, 2028, 1112, 2029, 2034, 1113, 1519, 1519,
1762      1519, 1530, 1530, 1530,  483,  489,  490,  241,  490,  489,
1763       489,  489,  489,  489,  489,  489,  491,  489,  489,  489,
1764      2035,  489,  493,  489,  494,  489,  549,  241,  549,  549,
1765
1766       241,  549,  549,  241,  549, 2036,  549,  241,  549,  561,
1767       241,  561,  550, 1677, 2037,  550, 2030, 2039,  552, 1678,
1768       489,  489,  552, 1679, 2031,  562,  495, 1680, 2032,  496,
1769      1119, 1119, 1119, 2048, 1120, 2058, 2033, 1121, 1531, 1531,
1770      1531,  497,  489,  490,  241,  490,  489,  489,  489,  489,
1771       489,  489,  489,  491,  489,  489,  489, 1466,  489,  493,
1772       489,  494,  489,  561,  241,  561,  571,  241,  571,  571,
1773       241,  571, 2059,  241,  241,  241,  241,  241,  241,  562,
1774      2063, 2064,  572, 2065, 1481,  572, 2068,  489,  489,  317,
1775      2072, 2073,  317,  495, 2074, 2075,  496, 1136, 1136, 1136,
1776
1777      2053, 1137, 2076, 1466, 1138, 1480, 1480, 1480,  497,  502,
1778       503,  241,  503,  502,  502,  502,  502,  502,  502,  502,
1779       504,  502,  502,  502, 2077,  502,  506,  502,  507,  502,
1780       571,  241,  571,  571,  241,  571,  571,  241,  571, 2078,
1781       571,  241,  571,  583,  241,  583,  572, 2079, 2080,  572,
1782      2054, 1607,  573, 2920,  502,  502,  573, 2081, 2095,  584,
1783       508, 2096,  619,  619, 2097,  509,  502,  503,  241,  503,
1784       502,  502,  502,  502,  502,  502,  502,  504,  502,  502,
1785       502, 2102,  502,  506,  502,  507,  502,  583,  241,  583,
1786       670, 2103,  620, 2104, 2105, 1013, 1013, 1013,  621, 2106,
1787
1788       661, 2107, 2108,  584, 2110,  622,  671, 2111,  661,  623,
1789       662,  502,  502, 1015, 1478, 1478, 1478,  508,  668, 1480,
1790      1480, 1480,  509,  513,  514,  241,  514,  513,  513,  513,
1791       513,  513,  513,  513,  515,  513,  513,  513,  663,  513,
1792       517,  513,  518,  513,  664, 2114,  669, 2115,  665,  882,
1793       882,  882, 2118, 2119,  666,  667,  889,  889,  889, 2120,
1794       622,  894,  894,  894,  616, 2121,  883, 2125,  513,  513,
1795       906,  906,  906,  890,  519, 1151, 1151, 1151,  895, 1152,
1796      2126, 2127, 1153, 1647, 1647, 1647, 2128,  907, 2129,  520,
1797       513,  514,  241,  514,  513,  513,  513,  513,  513,  513,
1798
1799       513,  515,  513,  513,  513, 2130,  513,  517,  513,  518,
1800       513,  916,  916,  916,  919,  919,  919,  934,  934,  934,
1801       942,  942,  942,  947,  947,  947, 2131, 2132,  917, 2134,
1802      2157,  920, 2158, 2159,  935,  513,  513,  943, 2160, 2161,
1803       948,  519, 1155, 1155, 1155, 2162, 1156, 2167, 2168, 1157,
1804      1484, 1484, 1484, 1487, 1487, 1487,  520,  525,  526,  241,
1805       526,  525,  525,  525,  525,  525,  525,  525,  527,  525,
1806       525,  525, 1466,  525,  529,  525,  530,  525,  967,  967,
1807       967,  990,  990,  990,  994,  994,  994, 1013, 1013, 1013,
1808      2169, 1044, 1044, 1044, 2170,  968, 2171, 2172,  991, 2173,
1809
1810      2174,  995,  525,  525, 2153, 1015, 2175, 2176,  531, 1046,
1811      2178,  532, 1175, 1175, 1175, 1466, 1176, 2179, 2182, 1177,
1812      1652, 1652, 1652,  533,  525,  526,  241,  526,  525,  525,
1813       525,  525,  525,  525,  525,  527,  525,  525,  525, 2183,
1814       525,  529,  525,  530,  525, 1016, 1044, 1044, 1044,  841,
1815       841,  841, 2154, 1054, 1054, 1054, 1054, 1054, 1054,  849,
1816       849,  849, 2184, 2180, 1046, 2185,  842, 2186, 2187,  525,
1817       525, 1056, 2181, 2189, 1056,  531,  850, 2188,  532, 1187,
1818      1187, 1187, 2190, 1188, 1653, 2191, 1189, 1496, 1496, 1496,
1819       533,  538,  539,  241,  539,  538,  538,  538,  538,  538,
1820
1821       538,  538,  540,  538,  538,  538, 1047,  538,  542,  538,
1822       543,  538, 1062, 1062, 1062, 1065, 1065, 1065, 2192, 2193,
1823      1057, 1070, 1070, 1070, 1078, 1078, 1078, 2083, 2084, 1063,
1824      2085, 2194, 1066, 1070, 1070, 1070,  538,  538, 2086, 1072,
1825      2198, 2087, 1080, 2199,  544, 2088,  545, 2200, 2201,  546,
1826      2204, 1072, 1519, 1519, 1519, 2205, 2209,  547,  538,  539,
1827       241,  539,  538,  538,  538,  538,  538,  538,  538,  540,
1828       538,  538,  538, 2212,  538,  542,  538,  543,  538, 2213,
1829      1073, 2216, 1078, 1078, 1078,  865,  865,  865, 1086, 1086,
1830      1086,  882,  882,  882, 1106, 1106, 1106, 1106, 1106, 1106,
1831
1832      1080, 2220,  866,  538,  538, 2221, 1088, 2222,  883, 2223,
1833      2224,  544, 1108,  545, 2227, 1108,  546, 2228, 1655, 1655,
1834      1655, 1530, 1530, 1530,  547,  553,  554,  241,  554,  553,
1835       553,  553,  553,  553,  553,  553,  555,  553,  553,  553,
1836      1466,  553,  557,  553,  558,  553, 1081, 1086, 1086, 1086,
1837       889,  889,  889, 2246, 1115, 1115, 1115, 1115, 1115, 1115,
1838       894,  894,  894, 1109, 1656, 1088, 2247,  890, 2248, 2249,
1839       553,  553, 1117, 1466, 2250, 1117, 2260,  895, 1195, 1195,
1840      1195, 2261, 1196, 2245, 1089, 1197, 1227, 1227, 1227, 2262,
1841      1228, 2263, 2264, 1229,  559,  553,  554,  241,  554,  553,
1842
1843       553,  553,  553,  553,  553,  553,  555,  553,  553,  553,
1844      2244,  553,  557,  553,  558,  553, 1123, 1123, 1123, 1123,
1845      1123, 1123, 1000, 1118, 1129, 1129, 1129, 1129, 1129, 1129,
1846       906,  906,  906, 2253, 1125, 2265, 2266, 1125, 2267, 2268,
1847       553,  553, 1131, 2254, 2269, 1131, 2255,  907, 1266, 1266,
1848      1266, 2271, 1267, 2272, 2273, 1268, 1273, 1273, 1273, 2274,
1849      1274, 2275, 2243, 1275,  559,  563,  564,  241,  564,  563,
1850       563,  563,  563,  563,  563,  563,  565,  563,  563,  563,
1851      1126,  563,  567,  563,  568,  563, 1141, 1141, 1141, 1141,
1852      1141, 1141, 1132, 2276, 2277,  916,  916,  916,  919,  919,
1853
1854       919, 1158, 1158, 1158, 1143, 2278, 2256, 1143, 2279, 2280,
1855       563,  563,  917, 2281, 2282,  920, 2257, 2283, 1159, 2258,
1856      2284,  569,  563,  564,  241,  564,  563,  563,  563,  563,
1857       563,  563,  563,  565,  563,  563,  563, 2285,  563,  567,
1858       563,  568,  563, 1167, 1167, 1167, 1167, 1167, 1167, 2286,
1859      1144, 2287,  934,  934,  934, 1178, 1178, 1178, 1182, 1182,
1860      1182, 1169, 2289, 2295, 1169, 2296, 2297,  563,  563,  935,
1861      2301, 2309, 1179, 1531, 1531, 1531, 1184, 2310,  569,  574,
1862       575,  241,  575,  574,  574,  574,  574,  574,  574,  574,
1863       576,  574,  574,  574, 2311,  574,  578,  574,  579,  574,
1864
1865       942,  942,  942, 2333, 1170, 1190, 1190, 1190, 2335, 1190,
1866      1190, 1190, 2336, 1182, 1182, 1182, 1000,  943, 2337,  947,
1867       947,  947, 2341, 1192,  574,  574, 2342, 1192, 1201, 1201,
1868      1201, 1184, 1662, 1662, 1662,  580,  948, 1049, 1049, 1049,
1869      2345, 1050, 2346, 2350, 1051, 2330, 1203, 1466,  581,  574,
1870       575,  241,  575,  574,  574,  574,  574,  574,  574,  574,
1871       576,  574,  574,  574, 1185,  574,  578,  574,  579,  574,
1872      1193, 2351, 1201, 1201, 1201, 1205, 1205, 1205, 1663, 1207,
1873      1207, 1207, 2920, 2920, 2920, 1210, 1210, 1210, 2319, 2331,
1874      1203, 2352, 1206, 2353,  574,  574, 1208, 2343, 2320, 2920,
1875
1876      1215, 1215, 1215, 1212, 2321,  580, 1210, 1210, 1210, 2354,
1877      2344, 2920, 2920, 2920, 1219, 1219, 1219, 1216,  581,  589,
1878      2920, 2920, 2920, 2355, 1212, 2356,  604, 1204, 2920, 2357,
1879      1466, 1220, 1222, 1222, 1222,  588,  605, 2920,  967,  967,
1880       967, 1209, 1230, 1230, 1230, 1234, 1234, 1234, 2359, 2360,
1881      1224, 1222, 1222, 1222, 2361,  968, 1236, 1236, 1236, 2362,
1882      1232, 1217, 1235,  606,  607,  608, 2363, 1213, 2364, 1224,
1883       609,  610, 2332, 1237,  611,  612, 1218, 2365,  613, 1221,
1884       614,  615,  616, 1230, 1230, 1230, 2366, 2367, 1225, 1238,
1885      1238, 1238, 1238, 1238, 1238, 1242, 1242, 1242, 1246, 1246,
1886
1887      1246, 1232, 2920, 2920, 2920, 2368, 2369, 1240, 2370, 2371,
1888      1240, 2372, 1243, 2373, 2375, 1247, 1248, 1248, 1248, 2920,
1889      2347, 1248, 1248, 1248, 1256, 1256, 1256, 1256, 1256, 1256,
1890      1262, 1262, 1262, 2348, 1250, 1262, 1262, 1262, 1233, 1250,
1891      2383, 2384, 1258, 2385, 2386, 1258, 2393, 2396, 1264,  990,
1892       990,  990, 1244, 1264, 1269, 1269, 1269, 1269, 1269, 1269,
1893       994,  994,  994, 1241, 2403, 2404,  991, 1245, 1277, 1277,
1894      1277, 2405, 1271, 2406, 2407, 1271, 2408,  995, 1277, 1277,
1895      1277, 1000, 1013, 1013, 1013, 2415, 1279, 1013, 1013, 1013,
1896      1466, 1259, 1251, 1013, 1013, 1013, 1279, 2417, 2418, 1265,
1897
1898      1015, 2419, 1315, 1315, 1315, 1015, 1044, 1044, 1044, 2420,
1899      2421, 1015, 1044, 1044, 1044, 1044, 1044, 1044, 1272, 1316,
1900      1318, 1318, 1318, 2422, 1046, 2412, 2920, 2920, 2920, 2411,
1901      1046, 2423, 2424, 1046, 1054, 1054, 1054, 1319, 2425, 2426,
1902      1289, 2429, 1280, 2920, 1054, 1054, 1054, 1054, 1054, 1054,
1903      2430, 2431, 1056, 1059, 1059, 1059, 2432, 1060, 2433, 2434,
1904      1061, 2435, 1056, 2436, 1317, 1056, 1062, 1062, 1062, 1324,
1905      1324, 1324, 2322, 1325, 2438, 2439, 1326, 2440, 1327, 1327,
1906      1327, 2441, 2323, 1063, 1065, 1065, 1065, 1320, 2324, 1329,
1907      1329, 1329, 2442, 1330, 1322, 1328, 1331, 1333, 1333, 1333,
1908
1909      2443, 1066, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070,
1910      1070, 1339, 1339, 1339, 1334, 1078, 1078, 1078, 2444, 2445,
1911      1072, 2446, 2447, 1072, 2448, 2449, 1072, 2450, 1340, 1078,
1912      1078, 1078, 2451, 1080, 1078, 1078, 1078, 1082, 1082, 1082,
1913      2452, 1083, 2458, 2459, 1084, 2460, 2461, 1080, 1086, 1086,
1914      1086, 2462, 1080, 1086, 1086, 1086, 1344, 1344, 1344, 2463,
1915      1101, 1101, 1101, 2467, 1102, 2476, 1088, 1103, 1336, 2477,
1916      2478, 1088, 2479, 2480, 1345, 1358, 1358, 1358, 1106, 1106,
1917      1106, 1342, 1106, 1106, 1106, 1106, 1106, 1106, 1115, 1115,
1918      1115, 2481, 1359, 1115, 1115, 1115, 1108, 1111, 1111, 1111,
1919
1920      1108, 1112, 1000, 1108, 1113, 2468, 1117, 1115, 1115, 1115,
1921      2494, 1117, 1119, 1119, 1119, 2469, 1120, 2495, 2496, 1121,
1922      1364, 1364, 1364, 2497, 2498, 1117, 1123, 1123, 1123, 1123,
1923      1123, 1123, 1123, 1123, 1123, 2470, 2485, 1365, 1367, 1367,
1924      1367, 2920, 2920, 2920, 1125, 2471, 1360, 1125, 2499, 2500,
1925      1125, 2501, 1129, 1129, 1129, 1368, 2505, 2506, 2920, 1129,
1926      1129, 1129, 1129, 1129, 1129, 1373, 1373, 1373, 1363, 1369,
1927      1131, 1136, 1136, 1136, 2507, 1137, 2508, 1131, 1138, 2509,
1928      1131, 2510, 1374, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
1929      1141, 1141, 2472, 1151, 1151, 1151, 2474, 1152, 2512, 1366,
1930
1931      1153, 1143, 2473, 2513, 1143, 2514, 2475, 1143, 1384, 1384,
1932      1384, 1155, 1155, 1155, 2515, 1156, 2516, 2517, 1157, 1158,
1933      1158, 1158, 1386, 1386, 1386, 1385, 1387, 2518, 1370, 1388,
1934      1167, 1167, 1167, 1167, 1167, 1167, 1159, 1167, 1167, 1167,
1935      1175, 1175, 1175, 2519, 1176, 2520, 2521, 1177, 1169, 2525,
1936      2526, 1169, 2527, 2530, 1377, 1169, 1178, 1178, 1178, 1401,
1937      1401, 1401, 2535, 1402, 2536, 2537, 1403, 1182, 1182, 1182,
1938      1182, 1182, 1182, 1179, 1182, 1182, 1182, 1187, 1187, 1187,
1939      2538, 1188, 2539, 2540, 1189, 1184, 2541, 2542, 1184, 1190,
1940      1190, 1190, 1184, 1190, 1190, 1190, 1190, 1190, 1190, 1195,
1941
1942      1195, 1195, 2543, 1196, 1396, 2544, 1197, 1192, 1201, 1201,
1943      1201, 1192, 2545, 2546, 1192, 1201, 1201, 1201, 1201, 1201,
1944      1201, 1205, 1205, 1205, 2554, 1406, 1203, 1414, 1414, 1414,
1945      1000, 1415, 2555, 1203, 1416, 2556, 1203, 2557, 1206, 1207,
1946      1207, 1207, 1417, 1417, 1417, 2558, 1418, 2559, 2560, 1419,
1947      1210, 1210, 1210, 1210, 1210, 1210, 1208, 1210, 1210, 1210,
1948      1215, 1215, 1215, 1408, 2561, 1423, 1423, 1423, 1212, 1424,
1949      2562, 1212, 1425, 2548, 2563, 1212, 2564, 1216, 1413, 1219,
1950      1219, 1219, 1428, 1428, 1428, 2565, 1429, 2566, 2567, 1430,
1951      1222, 1222, 1222, 1222, 1222, 1222, 1220, 1222, 1222, 1222,
1952
1953      1227, 1227, 1227, 2570, 1228, 2571, 2572, 1229, 1224, 2573,
1954      2574, 1224, 1230, 1230, 1230, 1224, 1230, 1230, 1230, 1230,
1955      1230, 1230, 2575, 2576, 1421, 1234, 1234, 1234, 2577, 2578,
1956      1232, 1435, 1435, 1435, 1232, 1436, 2579, 1232, 1437, 1236,
1957      1236, 1236, 1235, 1438, 1438, 1438, 2580, 1439, 2584, 2591,
1958      1440, 1238, 1238, 1238, 2592, 2593, 1237, 1238, 1238, 1238,
1959      2594, 1432, 1238, 1238, 1238, 1242, 1242, 1242, 2595, 1240,
1960      1442, 1442, 1442, 2596, 1443, 1240, 2597, 1444, 2598, 1434,
1961      1240, 2599, 1243, 1246, 1246, 1246, 1447, 1447, 1447, 2600,
1962      1448, 2601, 2602, 1449, 1248, 1248, 1248, 1248, 1248, 1248,
1963
1964      1247, 1248, 1248, 1248, 1452, 1452, 1452, 1256, 1256, 1256,
1965      2612, 2607, 1250, 2613, 2614, 1250, 1256, 1256, 1256, 1250,
1966      2615, 1453, 2610, 1000, 1441, 1258, 1256, 1256, 1256, 1262,
1967      1262, 1262, 2607, 2616, 1258, 1262, 1262, 1262, 1262, 1262,
1968      1262, 1266, 1266, 1266, 1258, 1267, 2608, 1264, 1268, 1269,
1969      1269, 1269, 2617, 1264, 2618, 2619, 1264, 1269, 1269, 1269,
1970      1269, 1269, 1269, 1450, 1273, 1273, 1273, 1271, 1274, 2605,
1971      2620, 1275, 1277, 1277, 1277, 1271, 2621, 2622, 1271, 1277,
1972      1277, 1277, 1277, 1277, 1277, 2623, 2624, 1456, 2625, 2626,
1973      1279, 1459, 1465, 1465, 1465, 2627, 2628, 1279, 2629, 2630,
1974
1975      1279, 1013, 1013, 1013, 1315, 1315, 1315, 1044, 1044, 1044,
1976      1466, 1467, 2635, 1318, 1318, 1318, 1344, 1344, 1344, 1015,
1977      1460, 1316, 1499, 1499, 1499, 1046, 1500, 2640, 2641, 1501,
1978      1319, 1503, 1503, 1503, 1345, 1504, 2642, 2631, 1505, 1054,
1979      1054, 1054, 2643, 1462, 1324, 1324, 1324, 2646, 1325, 2632,
1980      2633, 1326, 1327, 1327, 1327, 2646, 2636, 1056, 2649, 1510,
1981      1510, 1510, 2634, 1511, 2638, 1502, 1512, 1472, 2637, 1328,
1982      1329, 1329, 1329, 2650, 1330, 2651, 2639, 1331, 1333, 1333,
1983      1333, 2652, 1514, 1514, 1514, 2655, 1515, 1000, 1508, 1516,
1984      1070, 1070, 1070, 2607, 2653, 1334, 1339, 1339, 1339, 1521,
1985
1986      1521, 1521, 2658, 1522, 1466, 1467, 1523, 2608, 1072, 1524,
1987      1524, 1524, 2654, 1340, 1078, 1078, 1078, 1539, 1539, 1539,
1988      1358, 1358, 1358, 1541, 1541, 1541, 1525, 1542, 2644, 2667,
1989      1543, 2670, 1080, 2675, 1540, 2678, 2665, 1359, 2656, 2668,
1990      1518, 1106, 1106, 1106, 1115, 1115, 1115, 1364, 1364, 1364,
1991      1548, 1548, 1548, 2657, 1549, 2666, 2646, 1550, 2669, 1108,
1992      2680, 2646, 1117, 1526, 1365, 1123, 1123, 1123, 1367, 1367,
1993      1367, 1552, 1552, 1552, 2681, 1553, 2682, 2683, 1554, 1129,
1994      1129, 1129, 2673, 1125, 2607, 1368, 1373, 1373, 1373, 1559,
1995      1559, 1559, 2684, 1560, 2685, 2610, 1561, 1131, 1562, 1562,
1996
1997      1562, 2674, 2686, 1374, 2687, 1544, 2688, 2698, 1547, 1564,
1998      1564, 1564, 1141, 1141, 1141, 1563, 1571, 1571, 1571, 1384,
1999      1384, 1384, 1717, 1717, 1717, 1551, 1565, 1575, 1575, 1575,
2000      1143, 1576, 2699, 1572, 1577, 2676, 1385, 1386, 1386, 1386,
2001      1556, 1387, 2700, 2701, 1388, 1578, 1578, 1578, 1167, 1167,
2002      1167, 1588, 1588, 1588, 2677, 1566, 1401, 1401, 1401, 2702,
2003      1402, 2703, 1579, 1403, 2707, 2708, 1169, 2709, 1589, 1592,
2004      1592, 1592, 1182, 1182, 1182, 1190, 1190, 1190, 1567, 1601,
2005      1601, 1601, 1201, 1201, 1201, 2710, 1593, 1414, 1414, 1414,
2006      1184, 1415, 2711, 1192, 1416, 2712, 1602, 1417, 1417, 1417,
2007
2008      1203, 1418, 2714, 2715, 1419, 1210, 1210, 1210, 1423, 1423,
2009      1423, 2716, 1424, 1586, 2717, 1425, 2718, 1428, 1428, 1428,
2010      2719, 1429, 2723, 1212, 1430, 1603, 1222, 1222, 1222, 1230,
2011      1230, 1230, 2720, 1435, 1435, 1435, 1595, 1436, 2724, 1604,
2012      1437, 1597, 2721, 2725, 1224, 2726, 2727, 1232, 1438, 1438,
2013      1438, 2728, 1439, 2729, 2722, 1440, 1238, 1238, 1238, 1442,
2014      1442, 1442, 2730, 1443, 2731, 2732, 1444, 2733, 1447, 1447,
2015      1447, 1606, 1448, 2734, 1240, 1449, 1248, 1248, 1248, 1452,
2016      1452, 1452, 1256, 1256, 1256, 2736, 1613, 1611, 1619, 1619,
2017      1619, 2737, 1620, 2738, 1250, 1621, 1453, 1626, 1626, 1626,
2018
2019      1258, 1000, 2739, 1614, 1262, 1262, 1262, 1269, 1269, 1269,
2020      1630, 1630, 1630, 2740, 1627, 1277, 1277, 1277, 1465, 1465,
2021      1465, 2741, 1264, 1617, 2742, 1271, 2735, 1631, 1013, 1013,
2022      1013, 1624, 2743, 1279, 2744, 2745, 1466, 1499, 1499, 1499,
2023      2746, 1500, 2747, 2748, 1501, 2749, 1015, 1044, 1044, 1044,
2024      1503, 1503, 1503, 2750, 1504, 2751, 2752, 1505, 2753, 1629,
2025      1054, 1054, 1054, 2754, 2755, 1046, 1510, 1510, 1510, 1634,
2026      1511, 1628, 2757, 1512, 1070, 1070, 1070, 1632, 1056, 2758,
2027      1639, 1514, 1514, 1514, 2759, 1515, 1635, 1000, 1516, 1521,
2028      1521, 1521, 1072, 1522, 2760, 2761, 1523, 2762, 1524, 1524,
2029
2030      1524, 1681, 1681, 1681, 2763, 1682, 2756, 2764, 1683, 2765,
2031      2766, 1667, 2767, 2768, 1664, 1525, 1078, 1078, 1078, 1688,
2032      1688, 1688, 1688, 1688, 1688, 1652, 1652, 1652, 1539, 1539,
2033      1539, 1106, 1106, 1106, 1080, 1671, 1694, 1694, 1694, 2769,
2034      1695, 2770, 2771, 1696, 2772, 1540, 1541, 1541, 1541, 1108,
2035      1542, 2773, 2774, 1543, 1699, 1699, 1699, 1115, 1115, 1115,
2036      2776, 1548, 1548, 1548, 2777, 1549, 2778, 1684, 1550, 2779,
2037      2780, 1700, 1123, 1123, 1123, 1117, 2781, 1000, 1697, 2782,
2038      1552, 1552, 1552, 1689, 1553, 2783, 1653, 1554, 2784, 1689,
2039      1125, 1703, 1703, 1703, 1129, 1129, 1129, 2775, 1559, 1559,
2040
2041      1559, 2785, 1560, 2786, 1701, 1561, 2787, 2788, 1704, 1562,
2042      1562, 1562, 1131, 1708, 1708, 1708, 2789, 1709, 2790, 2791,
2043      1710, 2792, 1564, 1564, 1564, 2793, 1563, 1711, 1711, 1711,
2044      2795, 1712, 2796, 2797, 1713, 1715, 1715, 1715, 1702, 1565,
2045      1571, 1571, 1571, 1720, 1720, 1720, 1000, 1721, 2798, 2799,
2046      1722, 2800, 2794, 1716, 1723, 1723, 1723, 1572, 1705, 1575,
2047      1575, 1575, 2801, 1576, 2802, 2803, 1577, 1578, 1578, 1578,
2048      2804, 1724, 1726, 1726, 1726, 2805, 1727, 2806, 2808, 1728,
2049      1729, 1729, 1729, 2809, 1579, 1735, 1735, 1735, 1167, 1167,
2050      1167, 1588, 1588, 1588, 1739, 1739, 1739, 1730, 1740, 2810,
2051
2052      2811, 1741, 1736, 1742, 1742, 1742, 1169, 2812, 1589, 1592,
2053      1592, 1592, 1745, 1745, 1745, 2813, 1746, 2814, 2815, 1747,
2054      1743, 1749, 1749, 1749, 1000, 2817, 1593, 1190, 1190, 1190,
2055      1601, 1601, 1601, 1756, 1756, 1756, 2818, 1757, 2807, 1750,
2056      1758, 1760, 1760, 1760, 2819, 1192, 2820, 1602, 1210, 1210,
2057      1210, 1765, 1765, 1765, 1737, 1767, 1767, 1767, 2821, 1761,
2058      2920, 2920, 2920, 1222, 1222, 1222, 1212, 2822, 1766, 1230,
2059      1230, 1230, 1768, 1238, 1238, 1238, 2823, 2920, 1752, 2824,
2060      2827, 1224, 2828, 1774, 1774, 1774, 2829, 1232, 1776, 1776,
2061      1776, 1240, 1248, 1248, 1248, 1256, 1256, 1256, 2830, 1763,
2062
2063      1775, 2831, 1619, 1619, 1619, 1777, 1620, 2832, 2841, 1621,
2064      1250, 1000, 1000, 1258, 1000, 1772, 1626, 1626, 1626, 1784,
2065      1784, 1784, 1000, 1785, 1769, 1638, 1786, 1262, 1262, 1262,
2066      1770, 1637, 1636, 1627, 1269, 1269, 1269, 1466, 1773, 1630,
2067      1630, 1630, 1792, 1792, 1792, 1264, 1782, 1789, 1789, 1789,
2068      2833, 1790, 1271, 1000, 1791, 1625, 1631, 1778, 2834, 2835,
2069      1793, 1798, 1798, 1798, 1013, 1013, 1013, 1806, 1806, 1806,
2070      1647, 1647, 1647, 1812, 1812, 1812, 1000, 1000, 1799, 1652,
2071      1652, 1652, 1015, 1813, 1813, 1813, 1787, 1000, 2853, 1788,
2072      1655, 1655, 1655, 1816, 1816, 1816, 1817, 1817, 1817, 1662,
2073
2074      1662, 1662, 1044, 1044, 1044, 1825, 1825, 1825, 1000, 1828,
2075      1828, 1828, 1070, 1070, 1070, 1832, 1832, 1832, 1000, 1000,
2076      1046, 2839, 1000, 1826, 2836, 1800, 1829, 1681, 1681, 1681,
2077      1072, 1682, 1833, 2855, 1683, 1078, 1078, 1078, 1845, 1845,
2078      1845, 1688, 1688, 1688, 1850, 1850, 1850, 1852, 1852, 1852,
2079      2879, 1000, 1822, 1080, 1000, 1846, 1694, 1694, 1694, 2849,
2080      1695, 2880, 2840, 1696, 1853, 1106, 1106, 1106, 1855, 1855,
2081      1855, 1831, 1699, 1699, 1699, 1857, 1857, 1857, 1000, 1858,
2082      2842, 1844, 1859, 1108, 1000, 1856, 1115, 1115, 1115, 1700,
2083      1861, 1861, 1861, 1703, 1703, 1703, 1863, 1863, 1863, 2837,
2084
2085      1864, 2843, 2838, 1865, 1117, 1129, 1129, 1129, 1862, 1000,
2086      1704, 2873, 1708, 1708, 1708, 1000, 1709, 2844, 1854, 1710,
2087      1711, 1711, 1711, 1131, 1712, 1000, 1000, 1713, 1715, 1715,
2088      1715, 1717, 1717, 1717, 1720, 1720, 1720, 2845, 1721, 1860,
2089      1000, 1722, 1723, 1723, 1723, 1000, 1716, 1874, 1874, 1874,
2090      1000, 1875, 1866, 2846, 1876, 1000, 1726, 1726, 1726, 1724,
2091      1727, 1000, 2847, 1728, 1729, 1729, 1729, 1878, 1878, 1878,
2092      1000, 1879, 2859, 2848, 1880, 1881, 1881, 1881, 1735, 1735,
2093      1735, 1730, 1886, 1886, 1886, 1000, 1887, 2850, 1000, 1888,
2094      2854, 1623, 1882, 1622, 1618, 1736, 1167, 1167, 1167, 1739,
2095
2096      1739, 1739, 1000, 1740, 1000, 1000, 1741, 1742, 1742, 1742,
2097      1000, 1891, 1891, 1891, 1169, 1892, 2856, 2860, 1893, 1745,
2098      1745, 1745, 1000, 1746, 1743, 2857, 1747, 1749, 1749, 1749,
2099      1190, 1190, 1190, 1899, 1899, 1899, 1756, 1756, 1756, 2858,
2100      1757, 2877, 1000, 1758, 2865, 1750, 2851, 1889, 1192, 1000,
2101      1900, 1760, 1760, 1760, 1907, 1907, 1907, 1765, 1765, 1765,
2102      1910, 1910, 1910, 2852, 1911, 2893, 1616, 1912, 1615, 1761,
2103      1000, 1000, 1908, 1000, 1766, 1767, 1767, 1767, 2894, 1901,
2104      1913, 1913, 1913, 2866, 1914, 2867, 1000, 1915, 1222, 1222,
2105      1222, 1000, 1768, 2917, 1897, 1230, 1230, 1230, 1238, 1238,
2106
2107      1238, 1774, 1774, 1774, 1000, 2863, 1224, 1921, 1921, 1921,
2108      1000, 1922, 1000, 1232, 1923, 1000, 1240, 2869, 1775, 1776,
2109      1776, 1776, 1924, 1924, 1924, 2889, 1925, 1000, 2861, 1926,
2110      1248, 1248, 1248, 1256, 1256, 1256, 1777, 1000, 1784, 1784,
2111      1784, 2862, 1785, 2875, 1919, 1786, 1000, 2864, 1250, 1000,
2112      1000, 1258, 1000, 2868, 1917, 1262, 1262, 1262, 1269, 1269,
2113      1269, 2870, 2871, 1920, 1789, 1789, 1789, 1612, 1790, 1610,
2114      1609, 1791, 1608, 1264, 1605, 1600, 1271, 1000, 1792, 1792,
2115      1792, 2872, 1798, 1798, 1798, 1939, 1939, 1939, 2876, 1940,
2116      2899, 1599, 1941, 1598, 1596, 1927, 1793, 1000, 1931, 1799,
2117
2118      1013, 1013, 1013, 1943, 1943, 1943, 1933, 1947, 1947, 1947,
2119      2874, 1934, 1806, 1806, 1806, 1948, 1948, 1948, 1015, 1952,
2120      1952, 1952, 1812, 1812, 1812, 1813, 1813, 1813, 1953, 1953,
2121      1953, 1816, 1816, 1816, 1817, 1817, 1817, 1956, 1956, 1956,
2122      1957, 1957, 1957, 1958, 1958, 1958, 1000, 1044, 1044, 1044,
2123      1825, 1825, 1825, 1828, 1828, 1828, 1964, 1964, 1964, 1000,
2124      1965, 1000, 1000, 1966, 1942, 1046, 1594, 2917, 1826, 1591,
2125      1829, 1968, 1968, 1968, 1954, 1832, 1832, 1832, 1970, 1970,
2126      1970, 1000, 1971, 2878, 1000, 1972, 1078, 1078, 1078, 1969,
2127      2885, 2886, 1833, 1845, 1845, 1845, 1000, 1000, 1960, 1984,
2128
2129      1984, 1984, 1000, 1985, 1080, 2881, 1986, 1987, 1987, 1987,
2130      1846, 1850, 1850, 1850, 1990, 1990, 1990, 1852, 1852, 1852,
2131      1992, 1992, 1992, 1000, 1993, 2900, 1000, 1994, 1106, 1106,
2132      1106, 1855, 1855, 1855, 1853, 1983, 1996, 1996, 1996, 2883,
2133      1997, 1000, 2882, 1998, 2895, 2887, 1108, 1000, 1856, 1857,
2134      1857, 1857, 2888, 1858, 1000, 1000, 1859, 1115, 1115, 1115,
2135      1991, 1000, 1861, 1861, 1861, 1863, 1863, 1863, 1000, 1864,
2136      2896, 1000, 1865, 1590, 2913, 1117, 1129, 1129, 1129, 1995,
2137      1862, 1874, 1874, 1874, 2884, 1875, 1000, 2891, 1876, 1878,
2138      1878, 1878, 2897, 1879, 1131, 1587, 1880, 1881, 1881, 1881,
2139
2140      2011, 2011, 2011, 2901, 2012, 2890, 1000, 2013, 1999, 1886,
2141      1886, 1886, 1000, 1887, 1882, 1585, 1888, 1167, 1167, 1167,
2142      1891, 1891, 1891, 2898, 1892, 1000, 1584, 1893, 1000, 2000,
2143      2022, 2022, 2022, 1000, 1000, 1169, 1899, 1899, 1899, 2025,
2144      2025, 2025, 1000, 2026, 1583, 1582, 2027, 2902, 2023, 1907,
2145      1907, 1907, 2892, 1900, 1910, 1910, 1910, 2907, 1911, 1581,
2146      1580, 1912, 1913, 1913, 1913, 2905, 1914, 1908, 1000, 1915,
2147      1222, 1222, 1222, 1230, 1230, 1230, 1238, 1238, 1238, 2903,
2148      2904, 2017, 1921, 1921, 1921, 1574, 1922, 1000, 1224, 1923,
2149      2914, 1232, 1000, 1573, 1240, 1924, 1924, 1924, 2909, 1925,
2150
2151      2908, 1570, 1926, 1569, 1248, 1248, 1248, 1000, 2043, 2043,
2152      2043, 2910, 2041, 2920, 2920, 2920, 2920, 2920, 2920, 2911,
2153      1000, 2038, 1250, 1568, 2042, 2044, 1256, 1256, 1256, 2906,
2154      2920, 1558, 1557, 2920, 1262, 1262, 1262, 1555, 1546, 2040,
2155      2050, 2050, 2050, 1545, 1258, 2052, 2052, 2052, 2055, 2055,
2156      2055, 1538, 1264, 1939, 1939, 1939, 1537, 1940, 2051, 1536,
2157      1941, 1000, 1535, 1000, 2045, 1013, 1013, 1013, 1943, 1943,
2158      1943, 2057, 2057, 2057, 1534, 2046, 1947, 1947, 1947, 1948,
2159      1948, 1948, 1533, 1015, 2060, 2060, 2060, 2061, 2061, 2061,
2160      1000, 2047, 1532, 2912, 2049, 2062, 2062, 2062, 1952, 1952,
2161
2162      1952, 1953, 1953, 1953, 1956, 1956, 1956, 1957, 1957, 1957,
2163      1958, 1958, 1958, 2066, 2066, 2066, 2069, 2069, 2069, 1964,
2164      1964, 1964, 2915, 1965, 2056, 1529, 1966, 2920, 2920, 2920,
2165      1528, 2067, 1527, 2070, 1968, 1968, 1968, 1520, 1970, 1970,
2166      1970, 1517, 1971, 1000, 2920, 1972, 1078, 1078, 1078, 1984,
2167      1984, 1984, 1969, 1985, 2089, 2090, 1986, 2091, 1987, 1987,
2168      1987, 1990, 1990, 1990, 1080, 2092, 1513, 1509, 2093, 1992,
2169      1992, 1992, 2094, 1993, 1507, 2916, 1994, 1106, 1106, 1106,
2170      1996, 1996, 1996, 1506, 1997, 1498, 1497, 1998, 2099, 2099,
2171      2099, 1495, 1494, 2071, 1493, 1108, 1129, 1129, 1129, 2109,
2172
2173      2109, 2109, 2112, 2112, 2112, 1492, 2100, 2082, 2011, 2011,
2174      2011, 1491, 2012, 1490, 1131, 2013, 2116, 2116, 2116, 2113,
2175      2022, 2022, 2022, 2098, 2122, 2122, 2122, 1489, 2025, 2025,
2176      2025, 1488, 2026, 1486, 2117, 2027, 1485, 1483, 2023, 1482,
2177      1479, 2123, 2133, 2133, 2133, 1477, 1476, 2101, 2135, 2135,
2178      2135, 2137, 2137, 2137, 1230, 1230, 1230, 1238, 1238, 1238,
2179      1248, 1248, 1248, 2043, 2043, 2043, 2136, 1475, 2138, 1474,
2180      2124, 1473, 1232, 1471, 1470, 1240, 1469, 1468, 1250, 1461,
2181      2044, 2142, 2142, 2142, 1458, 2143, 1457, 1455, 2144, 2145,
2182      2145, 2145, 2920, 2920, 2920, 1454, 1451, 2141, 2148, 2148,
2183
2184      2148, 2150, 2150, 2150, 1446, 1445, 2146, 1433, 1431, 2920,
2185      1262, 1262, 1262, 1427, 2139, 1426, 2149, 1422, 2140, 2050,
2186      2050, 2050, 2052, 2052, 2052, 2055, 2055, 2055, 1264, 2155,
2187      2155, 2155, 2057, 2057, 2057, 1420, 1412, 2051, 1411, 1410,
2188      1000, 1409, 1407, 2147, 2060, 2060, 2060, 2156, 2061, 2061,
2189      2061, 2062, 2062, 2062, 2066, 2066, 2066, 2069, 2069, 2069,
2190      2163, 2163, 2163, 1405, 2164, 1404, 1400, 2165, 2920, 2920,
2191      2920, 1399, 2067, 1398, 2070, 1397, 2151, 1078, 1078, 1078,
2192      1106, 1106, 1106, 1395, 2152, 2920, 2099, 2099, 2099, 2196,
2193      2196, 2196, 2202, 2202, 2202, 1080, 1394, 1393, 1108, 2109,
2194
2195      2109, 2109, 1392, 1391, 2100, 1390, 1389, 2197, 1383, 2203,
2196      2112, 2112, 2112, 2206, 2206, 2206, 1382, 2207, 1381, 1380,
2197      2208, 1379, 1378, 2166, 2210, 2210, 2210, 2113, 1376, 2116,
2198      2116, 2116, 2214, 2214, 2214, 1375, 1372, 2177, 2122, 2122,
2199      2122, 2211, 2225, 2225, 2225, 1371, 2195, 2117, 1362, 2215,
2200      2217, 2217, 2217, 1361, 2218, 2123, 1357, 2219, 1356, 2226,
2201      2133, 2133, 2133, 2135, 2135, 2135, 2137, 2137, 2137, 2229,
2202      2229, 2229, 1355, 2230, 1354, 1353, 2231, 2232, 2232, 2232,
2203      1352, 2136, 1351, 2138, 1238, 1238, 1238, 1350, 1248, 1248,
2204      1248, 1349, 2142, 2142, 2142, 2233, 2143, 1348, 1347, 2144,
2205
2206      1346, 1343, 1240, 2145, 2145, 2145, 1250, 2236, 2236, 2236,
2207      1341, 2237, 1338, 1335, 2238, 2239, 2239, 2239, 1332, 1323,
2208      2146, 2148, 2148, 2148, 2150, 2150, 2150, 2241, 2241, 2241,
2209      1321, 1314, 2240, 1312, 1311, 2155, 2155, 2155, 1310, 2149,
2210      2251, 2251, 2251, 1309, 1308, 2242, 2920, 2920, 2920, 1307,
2211      1306, 2234, 2235, 2156, 2163, 2163, 2163, 2252, 2164, 1305,
2212      1304, 2165, 1301, 2920, 1078, 1078, 1078, 1106, 1106, 1106,
2213      2196, 2196, 2196, 2290, 2290, 2290, 2202, 2202, 2202, 2292,
2214      2292, 2292, 1080, 2293, 1300, 1108, 2294, 1299, 2197, 1298,
2215      2291, 1297, 1296, 2203, 2206, 2206, 2206, 1295, 2207, 1294,
2216
2217      1293, 2208, 2210, 2210, 2210, 1292, 1291, 2259, 2298, 2298,
2218      2298, 1290, 2299, 1288, 1287, 2300, 2302, 2302, 2302, 2211,
2219      2214, 2214, 2214, 1286, 2270, 2304, 2304, 2304, 1285, 2305,
2220      1284, 1283, 2306, 2303, 2307, 2307, 2307, 2215, 2288, 2217,
2221      2217, 2217, 1282, 2218, 1000, 1276, 2219, 2225, 2225, 2225,
2222      1261, 2308, 2312, 2312, 2312, 1260, 2313, 1255, 1254, 2314,
2223      2315, 2315, 2315, 1253, 2226, 2317, 2317, 2317, 2229, 2229,
2224      2229, 1252, 2230, 1226, 1214, 2231, 1200, 2316, 2232, 2232,
2225      2232, 1199, 2318, 1238, 1238, 1238, 1248, 1248, 1248, 1198,
2226      2236, 2236, 2236, 1194, 2237, 1186, 2233, 2238, 2239, 2239,
2227
2228      2239, 1240, 1181, 1180, 1250, 2327, 2327, 2327, 1174, 2328,
2229      1171, 1166, 2329, 1165, 1164, 2240, 2241, 2241, 2241, 2334,
2230      2334, 2334, 2251, 2251, 2251, 2338, 2338, 2338, 1163, 2339,
2231      1162, 1161, 2340, 1160, 2242, 2920, 2920, 2920, 1154, 2252,
2232      1078, 1078, 1078, 2374, 2374, 2374, 1147, 2326, 1146, 2325,
2233      1145, 1140, 2920, 1106, 1106, 1106, 1139, 1135, 1080, 2377,
2234      2377, 2377, 2290, 2290, 2290, 2380, 2380, 2380, 1134, 2381,
2235      1133, 1108, 2382, 2292, 2292, 2292, 2378, 2293, 1128, 2291,
2236      2294, 2298, 2298, 2298, 1127, 2299, 1122, 1114, 2300, 1110,
2237      1105, 2358, 2302, 2302, 2302, 2349, 2387, 2387, 2387, 1104,
2238
2239      2388, 1100, 1099, 2389, 1098, 2379, 2304, 2304, 2304, 2303,
2240      2305, 1097, 1096, 2306, 1095, 2376, 2307, 2307, 2307, 2390,
2241      2390, 2390, 1094, 2391, 1093, 1092, 2392, 2394, 2394, 2394,
2242      2312, 2312, 2312, 2308, 2313, 1091, 1085, 2314, 2315, 2315,
2243      2315, 2397, 2397, 2397, 2395, 2398, 1077, 1076, 2399, 2317,
2244      2317, 2317, 2400, 2400, 2400, 2316, 2401, 1075, 1074, 2402,
2245      1238, 1238, 1238, 1248, 1248, 1248, 2318, 2327, 2327, 2327,
2246      1069, 2328, 1068, 1067, 2329, 2413, 2413, 2413, 1240, 1064,
2247      1058, 1250, 2334, 2334, 2334, 2416, 2416, 2416, 2427, 2427,
2248      2427, 1053, 2414, 1466, 2338, 2338, 2338, 1052, 2339, 1048,
2249
2250      1043, 2340, 1078, 1078, 1078, 2428, 2374, 2374, 2374, 1042,
2251      1041, 2409, 2453, 2453, 2453, 1106, 1106, 1106, 1040, 1039,
2252      1080, 2377, 2377, 2377, 2455, 2455, 2455, 1038, 2456, 1036,
2253      2410, 2457, 1035, 1108, 1034, 2380, 2380, 2380, 2378, 2381,
2254      1033, 1032, 2382, 2387, 2387, 2387, 1031, 2388, 1030, 1029,
2255      2389, 2437, 2390, 2390, 2390, 1028, 2391, 1027, 1026, 2392,
2256      2394, 2394, 2394, 2464, 2464, 2464, 2454, 2465, 1025, 1024,
2257      2466, 2397, 2397, 2397, 1023, 2398, 1022, 2395, 2399, 2400,
2258      2400, 2400, 1021, 2401, 1020, 1019, 2402, 2482, 2482, 2482,
2259      1248, 1248, 1248, 2486, 2486, 2486, 2413, 2413, 2413, 2488,
2260
2261      2488, 2488, 1012, 2489, 1011, 2483, 2490, 1010, 1250, 1009,
2262      2487, 1466, 1008, 2414, 1466, 1007, 1006, 1466, 2491, 2491,
2263      2491, 2416, 2416, 2416, 2492, 2492, 2492, 2493, 2493, 2493,
2264      2427, 2427, 2427, 2502, 2502, 2502, 1003, 2503, 1001, 1000,
2265      2504, 1078, 1078, 1078, 2522, 2522, 2522, 2428, 2453, 2453,
2266      2453, 2523, 2523, 2523,  998,  996, 2484,  993,  989, 1080,
2267      2455, 2455, 2455,  987, 2456,  986,  985, 2457,  983, 2524,
2268      2528, 2528, 2528, 2531, 2531, 2531, 2464, 2464, 2464,  982,
2269      2465,  981,  980, 2466, 2533, 2533, 2533, 2529,  979,  977,
2270      2532, 2482, 2482, 2482, 1248, 1248, 1248, 2486, 2486, 2486,
2271
2272       976, 2534,  975,  974, 2549, 2549, 2549, 2511, 2550, 2483,
2273       972, 2551, 1250,  971, 2487, 1466, 2488, 2488, 2488,  970,
2274      2489,  966, 1466, 2490, 2491, 2491, 2491, 2492, 2492, 2492,
2275      2493, 2493, 2493,  965, 1466, 2502, 2502, 2502,  963, 2503,
2276       962,  961, 2504,  960,  959, 2547, 1464, 1464, 1464, 1464,
2277      1464, 1464, 1464, 1464, 1464,  958,  956, 1464, 2568, 2568,
2278      2568,  955, 1464, 1464, 1464, 1466, 1464, 2522, 2522, 2522,
2279      2523, 2523, 2523, 2528, 2528, 2528, 2569, 2581, 2581, 2581,
2280       954, 2582,  953,  951, 2583, 2531, 2531, 2531, 2524,  950,
2281      2529, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
2282
2283      1464, 1464, 2532,  949, 1464, 2533, 2533, 2533,  946, 1464,
2284      1464, 1464, 1466, 1464, 2585, 2585, 2585,  945, 2586,  941,
2285       940, 2587, 2534, 2588, 2588, 2588,  938, 2589,  937,  936,
2286      2590, 2603, 2603, 2603, 2568, 2568, 2568,  933, 1464, 1464,
2287      2549, 2549, 2549,  932, 2550,  931,  930, 2551,  928, 2604,
2288       927,  926, 2569, 2603, 2603, 2603,  925,  924, 1466, 1464,
2289      1464, 1464, 1464, 1464, 2611, 1464, 1464, 1464,  923,  922,
2290      1464, 2604,  921,  918,  915, 1464, 1464, 1464, 1466, 1464,
2291      2581, 2581, 2581,  914, 2582,  911,  909, 2583, 2585, 2585,
2292      2585,  908, 2586,  903,  902, 2587, 2588, 2588, 2588,  900,
2293
2294      2589,  899,  898, 2590, 1464, 1464, 1464, 1464, 1464, 1464,
2295      1464, 1464, 1464, 1464, 2611,  896,  893, 1464, 2648, 2648,
2296      2648,  891, 1464, 1464, 1464, 1466, 1464, 2659, 2659, 2659,
2297      2661, 2661, 2661, 2663, 2663, 2663, 1466, 1467, 2671, 2671,
2298      2671, 2679, 2679, 2679, 2660,  888,  887, 2662,  885,  884,
2299      2664, 1464, 1464,  881,  878, 2672, 2648, 2648, 2648, 1000,
2300      2659, 2659, 2659, 2689, 2689, 2689,  877, 2690,  876,  875,
2301      2691, 2661, 2661, 2661, 1466,  873,  872, 2660, 2692, 2692,
2302      2692,  871, 2693,  870,  869, 2694,  867,  864, 2662, 2663,
2303      2663, 2663, 2695, 2695, 2695,  862, 2696,  861,  860, 2697,
2304
2305      2671, 2671, 2671, 2679, 2679, 2679, 2664, 1634, 2704, 2704,
2306      2704,  858, 2705,  856,  855, 2706,  854, 2672, 2689, 2689,
2307      2689, 1000, 2690,  853,  852, 2691, 2692, 2692, 2692,  851,
2308      2693,  848,  847, 2694, 2695, 2695, 2695,  846, 2696,  843,
2309      2713, 2697, 2704, 2704, 2704,  840, 2705,  839,  837, 2706,
2310      2816, 2816, 2816, 2816, 2816, 2816,  836, 2825,  833,  831,
2311      2826, 2918, 2918, 2918, 2918, 2918, 2918,  828, 1000,  827,
2312       819, 1000,  818,  817,  814,  813,  812,  811,  809, 2919,
2313       808,  807, 2919,  238,  238,  238,  238,  238,  238,  238,
2314       238,  238,  239,  239,  239,  239,  239,  239,  239,  239,
2315
2316       239,  244,  244,  244,  244,  244,  244,  244,  244,  244,
2317       247,  247,  247,  247,  247,  247,  247,  247,  247,  250,
2318       250,  250,  250,  250,  250,  250,  250,  250,  253,  253,
2319       253,  253,  253,  253,  253,  253,  253,  260,  260,  260,
2320       260,  260,  260,  260,  260,  260,  268,  268,  268,  268,
2321       268,  268,  268,  268,  268,  272,  272,  272,  272,  272,
2322       272,  272,  272,  272,  284,  284,  284,  284,  284,  284,
2323       284,  284,  284,  288,  288,  288,  288,  288,  288,  288,
2324       288,  288,  295,  295,  295,  295,  295,  295,  295,  295,
2325       295,  306,  306,  306,  306,  306,  306,  306,  306,  306,
2326
2327       314,  314,  314,  314,  314,  314,  314,  314,  314,  322,
2328       322,  322,  322,  322,  322,  322,  322,  322,  328,  328,
2329       328,  328,  328,  328,  328,  328,  328,  334,  334,  334,
2330       334,  334,  334,  334,  334,  334,  339,  339,  339,  339,
2331       339,  339,  339,  339,  339,  356,  356,  356,  356,  356,
2332       356,  356,  356,  356,  363,  363,  363,  363,  363,  363,
2333       363,  363,  363,  370,  370,  370,  370,  370,  370,  370,
2334       370,  370,  376,  376,  376,  376,  376,  376,  376,  376,
2335       376,  383,  383,  383,  383,  383,  383,  383,  383,  383,
2336       388,  388,  388,  388,  388,  388,  388,  388,  388,  394,
2337
2338       394,  394,  394,  394,  394,  394,  394,  394,  399,  399,
2339       399,  399,  399,  399,  399,  399,  399,  405,  405,  405,
2340       405,  405,  405,  405,  405,  405,  413,  413,  413,  413,
2341       413,  413,  413,  413,  413,  432,  432,  432,  432,  432,
2342       432,  432,  432,  432,  438,  438,  438,  438,  438,  438,
2343       438,  438,  438,  448,  448,  448,  448,  448,  448,  448,
2344       448,  448,  454,  454,  454,  454,  454,  454,  454,  454,
2345       454,  459,  459,  459,  459,  459,  459,  459,  459,  459,
2346       465,  465,  465,  465,  465,  465,  465,  465,  465,  472,
2347       472,  472,  472,  472,  472,  472,  472,  472,  479,  479,
2348
2349       479,  479,  479,  479,  479,  479,  479,  484,  484,  484,
2350       484,  484,  484,  484,  484,  484,  492,  492,  492,  492,
2351       492,  492,  492,  492,  492,  498,  498,  498,  498,  498,
2352       498,  498,  498,  498,  505,  505,  505,  505,  505,  505,
2353       505,  505,  505,  510,  510,  510,  510,  510,  510,  510,
2354       510,  510,  516,  516,  516,  516,  516,  516,  516,  516,
2355       516,  521,  521,  521,  521,  521,  521,  521,  521,  521,
2356       528,  528,  528,  528,  528,  528,  528,  528,  528,  534,
2357       534,  534,  534,  534,  534,  534,  534,  534,  541,  541,
2358       541,  541,  541,  541,  541,  541,  541,  548,  548,  548,
2359
2360       548,  548,  548,  548,  548,  548,  556,  556,  556,  556,
2361       556,  556,  556,  556,  556,  560,  560,  560,  560,  560,
2362       560,  560,  560,  560,  566,  566,  566,  566,  566,  566,
2363       566,  566,  566,  570,  570,  570,  570,  570,  570,  570,
2364       570,  570,  577,  577,  577,  577,  577,  577,  577,  577,
2365       577,  582,  582,  582,  582,  582,  582,  582,  582,  582,
2366       602,  602,  602,  806,  805,  804,  602,  628,  628,  628,
2367       799,  796,  798,  628,  632,  632,  632,  793,  792,  790,
2368       632,  640,  640,  640,  788,  786,  784,  640,  652,  652,
2369       652,  782, 2920,  779,  652,  658,  658,  658,  778,  777,
2370
2371       776,  658,  674,  674,  674,  774,  773,  772,  674,  681,
2372       681,  681,  771,  770,  768,  681,  687,  687,  687,  767,
2373       766,  765,  687,  692,  692,  692,  763,  761,  760,  692,
2374       697,  697,  697,  758,  757,  754,  697,  706,  706,  706,
2375       753,  751,  611,  706,  722,  722,  722, 2920,  746,  744,
2376       722,  732,  732,  732,  740,  739,  738,  732,  737,  737,
2377       737,  736,  734,  733,  737,  745,  745,  745,  731,  729,
2378       728,  745,  752,  752,  752,  727,  726,  725,  752,  759,
2379       759,  759,  724,  723,  721,  759,  764,  764,  764,  712,
2380       711,  710,  764,  769,  769,  769,  707,  705, 2920,  769,
2381
2382       775,  775,  775,  702,  701,  700,  775,  783,  783,  783,
2383       699,  698,  696,  783,  787,  787,  787,  694,  693,  691,
2384       787,  791,  791,  791,  689,  688,  686,  791,  795,  795,
2385       795,  795,  795,  795,  795,  684,  795,  602,  602,  602,
2386       683,  682,  680,  602,  810,  678,  677,  676,  810,  628,
2387       628,  628,  675,  673, 2920,  628,  838, 2920,  660,  659,
2388       838,  632,  632,  632,  657,  655,  654,  632,  845,  653,
2389       651,  646,  845,  640,  640,  640,  642,  641,  639,  640,
2390       857,  638,  635,  634,  857,  652,  652,  652,  633,  631,
2391       630,  652,  863,  629,  627,  622,  863,  658,  658,  658,
2392
2393      2920,  603,  601,  658,  868,  599,  593,  592,  868,  674,
2394       674,  674,  593,  592,  591,  674,  886,  590, 2920, 2920,
2395       886,  681,  681,  681, 2920, 2920, 2920,  681,  892, 2920,
2396      2920, 2920,  892,  687,  687,  687, 2920, 2920, 2920,  687,
2397       897, 2920, 2920, 2920,  897,  692,  692,  692, 2920, 2920,
2398      2920,  692,  901, 2920, 2920, 2920,  901,  697,  697,  697,
2399      2920, 2920, 2920,  697,  910, 2920, 2920, 2920,  910,  706,
2400       706,  706, 2920, 2920, 2920,  706,  929, 2920, 2920, 2920,
2401       929,  722,  722,  722, 2920, 2920, 2920,  722,  939, 2920,
2402      2920, 2920,  939,  732,  732,  732, 2920, 2920, 2920,  732,
2403
2404       944, 2920, 2920, 2920,  944,  737,  737,  737, 2920, 2920,
2405      2920,  737,  952, 2920, 2920, 2920,  952,  745,  745,  745,
2406      2920, 2920, 2920,  745,  957, 2920, 2920, 2920,  957,  752,
2407       752,  752, 2920, 2920, 2920,  752,  964, 2920, 2920, 2920,
2408       964,  759,  759,  759, 2920, 2920, 2920,  759,  969, 2920,
2409      2920, 2920,  969,  764,  764,  764, 2920, 2920, 2920,  764,
2410       973, 2920, 2920, 2920,  973,  769,  769,  769, 2920, 2920,
2411      2920,  769,  978, 2920, 2920, 2920,  978,  775,  775,  775,
2412      2920, 2920, 2920,  775,  984, 2920, 2920, 2920,  984,  783,
2413       783,  783, 2920, 2920, 2920,  783,  988, 2920, 2920, 2920,
2414
2415       988,  787,  787,  787, 2920, 2920, 2920,  787,  992, 2920,
2416      2920, 2920,  992,  791,  791,  791, 2920, 2920, 2920,  791,
2417       997, 2920, 2920, 2920,  997,  999,  999,  999,  999,  999,
2418       999,  999,  999,  999, 1005, 2920, 2920, 2920, 2920, 1005,
2419       602,  602,  602, 2920, 2920, 2920,  602, 1014, 1014, 1014,
2420      1014, 2920, 2920, 1014, 1014,  628,  628,  628, 2920, 2920,
2421      2920,  628, 1045, 1045, 1045, 1045, 2920, 2920, 1045, 1045,
2422       632,  632,  632, 2920, 2920, 2920,  632, 1055, 1055, 1055,
2423      1055, 2920, 2920, 1055, 1055,  640,  640,  640, 2920, 2920,
2424      2920,  640, 1071, 1071, 1071, 1071, 2920, 2920, 1071, 1071,
2425
2426       652,  652,  652, 2920, 2920, 2920,  652, 1079, 1079, 1079,
2427      1079, 2920, 2920, 1079, 1079,  658,  658,  658, 2920, 2920,
2428      2920,  658, 1087, 1087, 1087, 1087, 2920, 2920, 1087, 1087,
2429       674,  674,  674, 2920, 2920, 2920,  674, 1107, 1107, 1107,
2430      1107, 2920, 2920, 1107, 1107,  681,  681,  681, 2920, 2920,
2431      2920,  681, 1116, 1116, 1116, 1116, 2920, 2920, 1116, 1116,
2432       687,  687,  687, 2920, 2920, 2920,  687, 1124, 1124, 1124,
2433      1124, 2920, 2920, 1124, 1124,  692,  692,  692, 2920, 2920,
2434      2920,  692, 1130, 1130, 1130, 1130, 2920, 2920, 1130, 1130,
2435       697,  697,  697, 2920, 2920, 2920,  697, 1142, 1142, 1142,
2436
2437      1142, 2920, 2920, 1142, 1142,  706,  706,  706, 2920, 2920,
2438      2920,  706, 1168, 1168, 1168, 1168, 2920, 2920, 1168, 1168,
2439       722,  722,  722, 2920, 2920, 2920,  722, 1183, 1183, 1183,
2440      1183, 2920, 2920, 1183, 1183,  732,  732,  732, 2920, 2920,
2441      2920,  732, 1191, 1191, 1191, 1191, 2920, 2920, 1191, 1191,
2442       737,  737,  737, 2920, 2920, 2920,  737, 1202, 1202, 1202,
2443      1202, 2920, 2920, 1202, 1202,  745,  745,  745,  745, 2920,
2444       745, 2920,  745, 1211, 1211, 1211, 1211, 2920, 2920, 1211,
2445      1211,  752,  752,  752,  752, 2920,  752, 2920,  752, 1223,
2446      1223, 1223, 1223, 2920, 2920, 1223, 1223,  759,  759,  759,
2447
2448      2920, 2920, 2920,  759, 1231, 1231, 1231, 1231, 2920, 2920,
2449      1231, 1231,  764,  764,  764,  764, 2920,  764, 2920,  764,
2450      1239, 1239, 1239, 1239, 2920, 2920, 1239, 1239,  769,  769,
2451       769,  769, 2920,  769, 2920,  769, 1249, 1249, 1249, 1249,
2452      2920, 2920, 1249, 1249,  775,  775,  775, 2920, 2920, 2920,
2453       775, 1257, 1257, 1257, 1257, 2920, 2920, 1257, 1257,  783,
2454       783,  783, 2920, 2920, 2920,  783, 1263, 1263, 1263, 1263,
2455      2920, 2920, 1263, 1263, 1270, 1270, 1270, 1270, 2920, 2920,
2456      1270, 1270,  791,  791,  791, 2920, 2920, 2920,  791, 1278,
2457      1278, 1278, 1278, 2920, 2920, 1278, 1278,  999,  999,  999,
2458
2459       999,  999,  999,  999,  999,  999, 1005, 2920, 1005, 2920,
2460      2920, 1005,  602,  602,  602, 2920, 2920, 2920,  602, 1014,
2461      1014, 1014, 1014, 2920, 2920, 1014, 1014,  628,  628,  628,
2462       628, 2920,  628, 2920,  628, 1045, 1045, 1045, 1045, 2920,
2463      2920, 1045, 1045,  632,  632,  632,  632, 2920,  632, 2920,
2464       632, 1055, 1055, 1055, 1055, 2920, 2920, 1055, 1055,  640,
2465       640,  640, 2920, 2920, 2920,  640, 1071, 1071, 1071, 1071,
2466      2920, 2920, 1071, 1071,  652,  652,  652, 2920, 2920, 2920,
2467       652, 1079, 1079, 1079, 1079, 2920, 2920, 1079, 1079,  658,
2468       658,  658, 2920, 2920, 2920,  658, 1087, 1087, 1087, 1087,
2469
2470      2920, 2920, 1087, 1087,  674,  674,  674, 2920, 2920, 2920,
2471       674, 1107, 1107, 1107, 1107, 2920, 2920, 1107, 1107,  681,
2472       681,  681, 2920, 2920, 2920,  681, 1116, 1116, 1116, 1116,
2473      2920, 2920, 1116, 1116,  687,  687,  687,  687, 2920,  687,
2474      2920,  687, 1124, 1124, 1124, 1124, 2920, 2920, 1124, 1124,
2475       692,  692,  692,  692, 2920,  692, 2920,  692, 1130, 1130,
2476      1130, 1130, 2920, 2920, 1130, 1130,  697,  697,  697, 2920,
2477      2920, 2920,  697, 1142, 1142, 1142, 1142, 2920, 2920, 1142,
2478      1142,  706,  706,  706, 2920, 2920, 2920,  706, 1168, 1168,
2479      1168, 1168, 2920, 2920, 1168, 1168,  722,  722,  722, 2920,
2480
2481      2920, 2920,  722, 1183, 1183, 1183, 1183, 2920, 2920, 1183,
2482      1183,  732,  732,  732, 2920, 2920, 2920,  732, 1191, 1191,
2483      1191, 1191, 2920, 2920, 1191, 1191,  737,  737,  737, 2920,
2484      2920, 2920,  737, 1202, 1202, 1202, 1202, 2920, 2920, 1202,
2485      1202,  745,  745,  745, 2920, 2920, 2920,  745, 1211, 1211,
2486      1211, 1211, 2920, 2920, 1211, 1211,  752,  752,  752, 2920,
2487      2920, 2920,  752, 1223, 1223, 1223, 1223, 2920, 2920, 1223,
2488      1223,  759,  759,  759, 2920, 2920, 2920,  759, 1231, 1231,
2489      1231, 1231, 2920, 2920, 1231, 1231, 1239, 1239, 1239, 1239,
2490      2920, 2920, 1239, 1239,  769,  769,  769, 2920, 2920, 2920,
2491
2492       769, 1249, 1249, 1249, 1249, 2920, 2920, 1249, 1249,  775,
2493       775,  775, 2920, 2920, 2920,  775, 1257, 1257, 1257, 1257,
2494      2920, 2920, 1257, 1257,  783,  783,  783, 2920, 2920, 2920,
2495       783, 1263, 1263, 1263, 1263, 2920, 2920, 1263, 1263, 1270,
2496      1270, 1270, 1270, 2920, 2920, 1270, 1270,  791,  791,  791,
2497      2920, 2920, 2920,  791, 1278, 1278, 1278, 1278, 2920, 2920,
2498      1278, 1278,  999,  999,  999,  999,  999,  999,  999,  999,
2499       999, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
2500       602,  602,  602, 2920, 2920, 2920,  602, 1014, 1014, 1014,
2501      1014, 2920, 2920, 1014, 1014, 1045, 1045, 1045, 1045, 2920,
2502
2503      2920, 1045, 1045,  632,  632,  632, 2920, 2920, 2920,  632,
2504      1055, 1055, 1055, 1055, 2920, 2920, 1055, 1055,  640,  640,
2505       640, 2920, 2920, 2920,  640, 1071, 1071, 1071, 1071, 2920,
2506      2920, 1071, 1071,  652,  652,  652, 2920, 2920, 2920,  652,
2507      1079, 1079, 1079, 1079, 2920, 2920, 1079, 1079,  658,  658,
2508       658, 2920, 2920, 2920,  658,  674,  674,  674, 2920, 2920,
2509      2920,  674, 1107, 1107, 1107, 1107, 2920, 2920, 1107, 1107,
2510       681,  681,  681, 2920, 2920, 2920,  681, 1116, 1116, 1116,
2511      1116, 2920, 2920, 1116, 1116, 1124, 1124, 1124, 1124, 2920,
2512      2920, 1124, 1124,  692,  692,  692, 2920, 2920, 2920,  692,
2513
2514      1130, 1130, 1130, 1130, 2920, 2920, 1130, 1130,  697,  697,
2515       697, 2920, 2920, 2920,  697, 1142, 1142, 1142, 1142, 2920,
2516      2920, 1142, 1142,  706,  706,  706, 2920, 2920, 2920,  706,
2517      1168, 1168, 1168, 1168, 2920, 2920, 1168, 1168,  722,  722,
2518       722, 2920, 2920, 2920,  722, 1183, 1183, 1183, 1183, 2920,
2519      2920, 1183, 1183,  732,  732,  732, 2920, 2920, 2920,  732,
2520      1191, 1191, 1191, 1191, 2920, 2920, 1191, 1191,  737,  737,
2521       737, 2920, 2920, 2920,  737, 1202, 1202, 1202, 1202, 2920,
2522      2920, 1202, 1202,  745,  745,  745, 2920, 2920, 2920,  745,
2523      1211, 1211, 1211, 1211, 2920, 2920, 1211, 1211,  752,  752,
2524
2525       752, 2920, 2920, 2920,  752, 1223, 1223, 1223, 1223, 2920,
2526      2920, 1223, 1223,  759,  759,  759, 2920, 2920, 2920,  759,
2527      1231, 1231, 1231, 1231, 2920, 2920, 1231, 1231, 1239, 1239,
2528      1239, 1239, 2920, 2920, 1239, 1239,  769,  769,  769, 2920,
2529      2920, 2920,  769, 1249, 1249, 1249, 1249, 2920, 2920, 1249,
2530      1249,  775,  775,  775, 2920, 2920, 2920,  775, 1257, 1257,
2531      1257, 1257, 2920, 2920, 1257, 1257,  783,  783,  783,  783,
2532      2920,  783, 2920,  783, 1263, 1263, 1263, 1263, 2920, 2920,
2533      1263, 1263, 1270, 1270, 1270, 1270, 2920, 2920, 1270, 1270,
2534       791,  791,  791,  791, 2920,  791, 2920,  791, 1278, 1278,
2535
2536      1278, 1278, 2920, 2920, 1278, 1278,  999,  999,  999,  999,
2537       999,  999,  999,  999,  999, 1464, 1464, 1464, 1464, 1464,
2538      1464, 1464, 1464, 1464,  602,  602,  602, 2920, 2920, 2920,
2539       602, 1014, 1014, 1014, 1014, 2920, 2920, 1014, 1014, 1045,
2540      1045, 1045, 1045, 2920, 2920, 1045, 1045,  632,  632,  632,
2541      2920, 2920, 2920,  632, 1055, 1055, 1055, 1055, 2920, 2920,
2542      1055, 1055,  640,  640,  640, 2920, 2920, 2920,  640, 1071,
2543      1071, 1071, 1071, 2920, 2920, 1071, 1071,  652,  652,  652,
2544      2920, 2920, 2920,  652, 1079, 1079, 1079, 1079, 2920, 2920,
2545      1079, 1079,  658,  658,  658, 2920, 2920, 2920,  658,  674,
2546
2547       674,  674, 2920, 2920, 2920,  674, 1107, 1107, 1107, 1107,
2548      2920, 2920, 1107, 1107,  681,  681,  681, 2920, 2920, 2920,
2549       681, 1116, 1116, 1116, 1116, 2920, 2920, 1116, 1116, 1124,
2550      1124, 1124, 1124, 2920, 2920, 1124, 1124,  692,  692,  692,
2551       692, 2920,  692, 2920,  692, 1130, 1130, 1130, 1130, 2920,
2552      2920, 1130, 1130,  697,  697,  697, 2920, 2920, 2920,  697,
2553      1142, 1142, 1142, 1142, 2920, 2920, 1142, 1142,  706,  706,
2554       706, 2920, 2920, 2920,  706, 1168, 1168, 1168, 1168, 2920,
2555      2920, 1168, 1168,  722,  722,  722, 2920, 2920, 2920,  722,
2556      1183, 1183, 1183, 1183, 2920, 2920, 1183, 1183,  732,  732,
2557
2558       732, 2920, 2920, 2920,  732, 1191, 1191, 1191, 1191, 2920,
2559      2920, 1191, 1191,  737,  737,  737, 2920, 2920, 2920,  737,
2560      1202, 1202, 1202, 1202, 2920, 2920, 1202, 1202,  745,  745,
2561       745, 2920, 2920, 2920,  745, 1211, 1211, 1211, 1211, 2920,
2562      2920, 1211, 1211,  752,  752,  752,  752, 2920,  752, 2920,
2563       752, 1223, 1223, 1223, 1223, 2920, 2920, 1223, 1223,  759,
2564       759,  759, 2920, 2920, 2920,  759, 1231, 1231, 1231, 1231,
2565      2920, 2920, 1231, 1231, 1239, 1239, 1239, 1239, 2920, 2920,
2566      1239, 1239,  769,  769,  769,  769, 2920,  769, 2920,  769,
2567      1249, 1249, 1249, 1249, 2920, 2920, 1249, 1249,  775,  775,
2568
2569       775, 2920, 2920, 2920,  775, 1257, 1257, 1257, 1257, 2920,
2570      2920, 1257, 1257, 1263, 1263, 1263, 1263, 2920, 2920, 1263,
2571      1263, 1270, 1270, 1270, 1270, 2920, 2920, 1270, 1270, 1278,
2572      1278, 1278, 1278, 2920, 2920, 1278, 1278,  999,  999,  999,
2573       999,  999,  999,  999,  999,  999, 1464, 1464, 1464, 1464,
2574      1464, 1464, 1464, 1464, 1464,  602,  602,  602,  602, 2920,
2575       602, 2920,  602, 1014, 1014, 1014, 1014, 2920, 2920, 1014,
2576      1014, 1045, 1045, 1045, 1045, 2920, 2920, 1045, 1045,  632,
2577       632,  632, 2920, 2920, 2920,  632, 1055, 1055, 1055, 1055,
2578      2920, 2920, 1055, 1055,  640,  640,  640, 2920, 2920, 2920,
2579
2580       640, 1071, 1071, 1071, 1071, 2920, 2920, 1071, 1071,  652,
2581       652,  652,  652, 2920,  652, 2920,  652, 1079, 1079, 1079,
2582      1079, 2920, 2920, 1079, 1079,  658,  658,  658,  658, 2920,
2583       658, 2920,  658,  674,  674,  674,  674, 2920,  674, 2920,
2584       674, 1107, 1107, 1107, 1107, 2920, 2920, 1107, 1107,  681,
2585       681,  681,  681, 2920,  681, 2920,  681, 1116, 1116, 1116,
2586      1116, 2920, 2920, 1116, 1116, 1124, 1124, 1124, 1124, 2920,
2587      2920, 1124, 1124, 1130, 1130, 1130, 1130, 2920, 2920, 1130,
2588      1130,  697,  697,  697, 2920, 2920, 2920,  697,  706,  706,
2589       706, 2920, 2920, 2920,  706, 1168, 1168, 1168, 1168, 2920,
2590
2591      2920, 1168, 1168,  722,  722,  722, 2920, 2920, 2920,  722,
2592       732,  732,  732, 2920, 2920, 2920,  732, 1191, 1191, 1191,
2593      1191, 2920, 2920, 1191, 1191,  737,  737,  737, 2920, 2920,
2594      2920,  737,  745,  745,  745, 2920, 2920, 2920,  745, 1211,
2595      1211, 1211, 1211, 2920, 2920, 1211, 1211,  752,  752,  752,
2596      2920, 2920, 2920,  752, 1223, 1223, 1223, 1223, 2920, 2920,
2597      1223, 1223,  759,  759,  759, 2920, 2920, 2920,  759, 1231,
2598      1231, 1231, 1231, 2920, 2920, 1231, 1231, 1239, 1239, 1239,
2599      1239, 2920, 2920, 1239, 1239, 1249, 1249, 1249, 1249, 2920,
2600      2920, 1249, 1249,  775,  775,  775, 2920, 2920, 2920,  775,
2601
2602      1257, 1257, 1257, 1257, 2920, 2920, 1257, 1257, 1263, 1263,
2603      1263, 1263, 2920, 2920, 1263, 1263, 1270, 1270, 1270, 1270,
2604      2920, 2920, 1270, 1270,  999,  999,  999,  999,  999,  999,
2605       999,  999,  999, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
2606      1464, 1464, 1014, 1014, 1014, 1014, 2920, 2920, 1014, 1014,
2607      1045, 1045, 1045, 1045, 2920, 2920, 1045, 1045,  632,  632,
2608       632, 2920, 2920, 2920,  632,  640,  640,  640, 2920, 2920,
2609      2920,  640, 1071, 1071, 1071, 1071, 2920, 2920, 1071, 1071,
2610      1079, 1079, 1079, 1079, 2920, 2920, 1079, 1079, 1107, 1107,
2611      1107, 1107, 2920, 2920, 1107, 1107, 1116, 1116, 1116, 1116,
2612
2613      2920, 2920, 1116, 1116, 1130, 1130, 1130, 1130, 2920, 2920,
2614      1130, 1130,  697,  697,  697, 2920, 2920, 2920,  697,  706,
2615       706,  706, 2920, 2920, 2920,  706, 1168, 1168, 1168, 1168,
2616      2920, 2920, 1168, 1168,  722,  722,  722, 2920, 2920, 2920,
2617       722,  732,  732,  732, 2920, 2920, 2920,  732, 1191, 1191,
2618      1191, 1191, 2920, 2920, 1191, 1191,  737,  737,  737, 2920,
2619      2920, 2920,  737,  745,  745,  745, 2920, 2920, 2920,  745,
2620       752,  752,  752, 2920, 2920, 2920,  752, 1223, 1223, 1223,
2621      1223, 2920, 2920, 1223, 1223,  759,  759,  759, 2920, 2920,
2622      2920,  759, 1231, 1231, 1231, 1231, 2920, 2920, 1231, 1231,
2623
2624      1239, 1239, 1239, 1239, 2920, 2920, 1239, 1239, 1249, 1249,
2625      1249, 1249, 2920, 2920, 1249, 1249,  775,  775,  775,  775,
2626      2920,  775, 2920,  775, 1257, 1257, 1257, 1257, 2920, 2920,
2627      1257, 1257, 1263, 1263, 1263, 1263, 2920, 2920, 1263, 1263,
2628      1270, 1270, 1270, 1270, 2920, 2920, 1270, 1270,  999,  999,
2629       999,  999,  999,  999,  999,  999,  999, 1464, 1464, 1464,
2630      1464, 1464, 1464, 1464, 1464, 1464, 1014, 1014, 1014, 1014,
2631      2920, 2920, 1014, 1014, 1045, 1045, 1045, 1045, 2920, 2920,
2632      1045, 1045,  632,  632,  632, 2920, 2920, 2920,  632,  640,
2633       640,  640,  640, 2920,  640, 2920,  640, 1079, 1079, 1079,
2634
2635      1079, 2920, 2920, 1079, 1079, 1107, 1107, 1107, 1107, 2920,
2636      2920, 1107, 1107, 1116, 1116, 1116, 1116, 2920, 2920, 1116,
2637      1116, 1130, 1130, 1130, 1130, 2920, 2920, 1130, 1130,  697,
2638       697,  697, 2920, 2920, 2920,  697,  706,  706,  706, 2920,
2639      2920, 2920,  706, 1168, 1168, 1168, 1168, 2920, 2920, 1168,
2640      1168,  722,  722,  722, 2920, 2920, 2920,  722,  732,  732,
2641       732, 2920, 2920, 2920,  732, 2552, 2552, 2552, 2552, 2552,
2642      2552, 2552, 2552, 2552, 2553, 2553, 2553, 2553, 2553, 2553,
2643      2553, 2553, 2553, 2606, 2606, 2606, 2606, 2606, 2606, 2606,
2644      2606, 2606, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
2645
2646      2609, 2645, 2645, 2645, 2645, 2645, 2645, 2645, 2645, 2645,
2647      2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647,  237,
2648      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2649      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2650      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2651      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2652      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2653      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2654      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
2655      2920, 2920, 2920, 2920
2656
2657     } ;
2658
2659 static yyconst flex_int16_t yy_chk[10295] =
2660     {   0,
2661         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2662         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2663         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2664         8,    8,    8,  242,   11,   13,   13,   12,   14,   14,
2665        13,   13,  291,   14,   14,  243,    8,   17,   17,  242,
2666        13,   15,   15,   14,   15,  246,   15,   16,   16,  345,
2667        16,  243,   16,   18,   18,    0,   15,   19,   19,   19,
2668       471,  246,   16,   20,   20,   20,   23,   23,   23,   24,
2669        24,   24,  471,   19,   25,   25,   25,  345, 1473,   20,
2670       352,   17,   23,  932,  291,   24,  240,  240,  240,  932,
2671
2672        25,  241,  241,  241,  245,  245,  245,   18,   21,   21,
2673        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2674        21,   21,   21,  275,   21,   21,   21,   21,   21,   26,
2675        26,   26,   27,   27,   27,   28,   28,   28,  275,   29,
2676        29,   29,   30,   30,   30,   26,  352,  417,   27,  269,
2677       417,   28, 1474,   21,   21,   29,  285,  264,   30,   31,
2678        31,   31,  266,  266,  266,  269,  273,  273,  273,  282,
2679       282,  282,  285,  264,  316,   31, 1475,   21,   22,   22,
2680        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2681        22,   22,   22, 1476,   22,   22,   22,   22,   22,   32,
2682
2683        32,   32,   33,   33,   33,   34,   34,   34,  256,   35,
2684        35,   35,   36,   36,   36,   32,  264, 1477,   33,  429,
2685       343,   34,  429,   22,   22,   35,  316,  343,   36,   37,
2686        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2687        40,   41,   41,   41, 1479,   37,  483,   22,   38,  296,
2688       256,   39,  425,  483,   40, 1481,  256,   41,   42,   42,
2689        42,  256,  289,  289,  289,  296,  256,  293,  293,  293,
2690       304,  304,  304,  425,   42,   43,   43,   43,   43,   43,
2691        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2692       313,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2693
2694        46,   46,   47,   47,   47,  313,   48,   48,   48,   49,
2695        49,   49,   45,  501,  595,   46, 1483,  595,   47,  311,
2696        43,   43,   48,  311,  317,   49,  277,  311,   43,   44,
2697        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2698        44,   44,   44,   44,  307,   44,   44,   44,   44,   44,
2699        50,   50,   50,   51,   51,   51,   52,   52,   52,  430,
2700       307,  501,   55,   55,  497,  277,   50,   55,  278,   51,
2701      1485,  497,   52,  430,   44,   44,  317,   55,  277,  318,
2702       277,  636,   44,   53,   53,   53,   53,   53,   53,   53,
2703        53,   53,   53,   53,   53,   53,   53,   53,  572,   53,
2704
2705        53,   53,   53,   53, 1486,  323,   55,  278,   59,   59,
2706        59,   60,   60,   60,   61,   61,   61,  636,   56,   56,
2707       278,  323,  278,   56,   59,  301,  614,   60,   53,   53,
2708        61,  318,  301,   56,  612,  572,   53,  365,  612,   53,
2709       614,  301,  315,  315,  315, 1488,   53,   54,   54,   54,
2710        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2711        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2712        62,   63,   63,   63,   64,   64,   64,  618,   65,   65,
2713        65,   66,   66,   66,   62,  335,  357,   63,  347,  365,
2714        64,  618,   54,   54,   65, 1490,  608,   66,  347,  608,
2715
2716        54,  335,  357,   54,  320,  320,  320,  329,  329,  329,
2717        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2718        57,   57,   57,   57,   57,   57,  347,   57,   57,   57,
2719        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2720        73,  366,   74,   74,   74,   75,   75,   75,   69, 1492,
2721       371,   70,  330,  384,   73, 1493,   57,   57,   74,  330,
2722      1494,   75,  332,  332,  332,   57,  371,   57,  330,  384,
2723       378,   57,  340,  340,  340,  379,   57,   57,   58,   58,
2724        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2725        58,   58,   58,  366,   58,   58,   58,   58,   58,   76,
2726
2727        76,   76,   77,   77,   77,   78,   78,   78,  475,   79,
2728        79,   79,   80,   80,   80,   76,  552, 1281,   77,  395,
2729       344,   78,  378,   58,   58,   79,  344,  379,   80,  349,
2730       349,  552,   58,  349,   58,  395,  344, 1281,   58,  349,
2731       349,  524, 1495,   58,   58,   67,   67,   67,   67,   67,
2732        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2733       475,   67,   67,   67,   67,   67,   81,   81,   81,   82,
2734        82,   82,   83,   83,   83, 1497,   84,   84,   84,   85,
2735        85,   85,   81, 1506,  617,   82,  390,  617,   83,  524,
2736        67,   67,   84,  390,  401,   85,  586,   67,  354,  354,
2737
2738       354,  401,  390,   67,  364,  364,  364,  368,  368,  368,
2739       401,  586,   67,   68,   68,   68,   68,   68,   68,   68,
2740        68,   68,   68,   68,   68,   68,   68,   68, 1507,   68,
2741        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
2742        88,   88,   88,  666,   89,   89,   89,   90,   90,   90,
2743        86, 1509,  620,   87,  406,  620,   88,  666,   68,   68,
2744        89,  624,  422,   90,  624,   68,  377,  377,  377, 1513,
2745       406,   68,  381,  381,  381,  389,  389,  389,  422, 1517,
2746        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2747        71,   71,   71,   71,   71,   71,  537,   71,   71,   71,
2748
2749        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
2750        93, 1520,   94,   94,   94,   95,   95,   95,   91,  439,
2751       699,   92, 1527,  699,   93,  550,   71,   71,   94,  455,
2752      1528,   95,  392,  392,  392,  439,  415,   71,  400,  400,
2753       400,  403,  403,  403,  537,  455,   71,   72,   72,   72,
2754        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2755        72,   72,  550,   72,   72,   72,   72,   72,   96,   96,
2756        96,   97,   97,   97,   98,   98,   98,  550,   99,   99,
2757        99,  100,  100,  100,   96,  415, 1529,   97,  415,  431,
2758        98, 1533,   72,   72,   99,  466, 1534,  100,  101,  101,
2759
2760       101,  431,  431,   72,  102,  102,  102,  414,  414,  414,
2761       474,  466,   72,  573,  101,  419,  419,  419,  350, 1535,
2762       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2763       103,  103,  103,  103,  103,  103, 1538,  103,  103,  103,
2764       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
2765       107,  704,  108,  108,  108,  704,  350, 1545,  105,  474,
2766       480,  106,  434,  450,  107,  573,  103,  103,  108,  434,
2767       450,  103,  350,  433,  433,  433,  480,  103,  434,  450,
2768      1557,  103,  436,  436,  436, 1558, 1566,  103,  104,  104,
2769       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2770
2771       104,  104,  104, 1569,  104,  104,  104,  104,  104,  109,
2772       109,  109,  110,  110,  110,  111,  111,  111,  671,  112,
2773       112,  112,  449,  449,  449,  109,  493, 1570,  110, 1574,
2774      1581,  111,  671,  104,  104,  112,  461,  506,  104,  452,
2775       452,  452,  493,  461,  104,  460,  460,  460,  104,  463,
2776       463,  463,  461,  506,  104,  113,  113,  113,  113,  113,
2777       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2778      1582,  113,  113,  113,  113,  113,  115,  115,  115,  116,
2779       116,  116,  117,  117,  117,  672,  118,  118,  118,  473,
2780       473,  473,  115, 1002,  517,  116, 1463, 1002,  117,  672,
2781
2782       113,  113,  118, 1583, 1584,  113,  477,  477,  477,  486,
2783       517,  113,  485,  485,  485,  490,  490,  490,  499,  499,
2784       499, 1463,  113,  114,  114,  114,  114,  114,  114,  114,
2785       114,  114,  114,  114,  114,  114,  114,  114, 1587,  114,
2786       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
2787       121,  121,  121, 1591,  122,  122,  122,  486, 1594, 1596,
2788       119,  486, 1598,  120, 1030, 1599,  121, 1600,  114,  114,
2789       122,  512,  529,  114,  503,  503,  503, 1030,  512,  114,
2790       511,  511,  511,  514,  514,  514, 1603,  512,  529, 1605,
2791       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2792
2793       123,  123,  123,  123,  123,  123, 1607,  123,  123,  123,
2794       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
2795       129, 1612,  130,  130,  130,  133,  133,  133,  125,  542,
2796       557,  126, 1618, 1622,  129,  567,  123,  123,  130, 1623,
2797      1625,  133,  522,  522,  522,  542,  557,  123,  526,  526,
2798       526,  567,  123,  124,  124,  124,  124,  124,  124,  124,
2799       124,  124,  124,  124,  124,  124,  124,  124, 1635,  124,
2800       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
2801       136,  136,  136, 1637,  137,  137,  137,  138,  138,  138,
2802       134,  578, 1640,  135, 1641,  613,  136,  797,  124,  124,
2803
2804       137, 1635,  613,  138,  535,  535,  535,  578,  613,  124,
2805       539,  539,  539,  797,  124,  127,  127,  127,  127,  127,
2806       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2807      1643,  127,  127,  127,  127,  127,  139,  139,  139,  140,
2808       140,  140,  143,  143,  143, 1645,  144,  144,  144,  147,
2809       147,  147,  139, 1646, 1648,  140, 1634, 1649,  143, 1642,
2810       127,  127,  144, 1633, 1650,  147,  549,  549,  549,  554,
2811       554,  554,  561,  561,  561, 1642,  127,  564,  564,  564,
2812      1633, 1654,  127,  128,  128,  128,  128,  128,  128,  128,
2813       128,  128,  128,  128,  128,  128,  128,  128, 1634,  128,
2814
2815       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
2816       152,  152,  152, 1656,  155,  155,  155,  156,  156,  156,
2817       148, 1659, 1660,  151,  562, 1661,  152, 1663,  128,  128,
2818       155,  562, 1665,  156,  571,  571,  571,  575,  575,  575,
2819       562,  583,  583,  583,  128,  585,  585,  585, 1666, 1668,
2820       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2821       131,  131,  131,  131,  131,  131, 1670,  131,  131,  131,
2822       131,  131,  157,  157,  157,  158,  158,  158,  159,  159,
2823       159, 1673,  160,  160,  160, 1674,  584, 1041,  157, 1676,
2824      1677,  158, 1678,  584,  159, 1680,  131,  131,  160,  131,
2825
2826      1041,  131,  584,  594,  594,  594, 1686,  131,  800,  800,
2827       800, 1690,  800, 1706,  131, 1707, 1712,  131,  132,  132,
2828       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2829       132,  132,  132, 1713,  132,  132,  132,  132,  132,  161,
2830       161,  161,  162,  162,  162,  165,  165,  165, 1714,  166,
2831       166,  166,  842,  842,  842,  161,  842, 1718,  162,  842,
2832       622,  165,  594,  132,  132,  166,  132,  622,  132,  625,
2833       626, 1719, 1725,  622,  132, 1732,  625,  626, 1017, 1017,
2834      1017,  132,  625,  626,  132,  141,  141,  141,  141,  141,
2835       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2836
2837       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2838       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2839       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2840       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2841       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2842       141,  141,  141,  141,  141,  141,  141,  141,  141,  145,
2843       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2844       145,  145,  145,  145, 1733,  145,  145,  145,  145,  145,
2845       167,  167,  167,  168,  168,  168,  169,  169,  169, 1675,
2846       170,  170,  170,  634,  634,  634,  167, 1675, 1734,  168,
2847
2848      1738, 1074,  169, 1744,  145,  145,  170,  145,  145,  145,
2849       634, 1037, 1037, 1037, 1074,  145, 1679, 1748,  145,  812,
2850       812,  812,  145, 1751, 1679,  145,  146,  146,  146,  146,
2851       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2852       146, 1753,  146,  146,  146,  146,  146,  171,  171,  171,
2853       172,  172,  172,  175,  175,  175, 1755,  176,  176,  176,
2854       642,  642,  642,  171, 1757, 1687,  172, 1758, 1691,  175,
2855      1759,  146,  146,  176,  146,  146,  146,  642,  831,  831,
2856       831, 1687,  146,  812, 1691,  146, 1295, 1295, 1295,  146,
2857      1762, 1764,  146,  149,  149,  149,  149,  149,  149,  149,
2858
2859       149,  149,  149,  149,  149,  149,  149,  149, 1769,  149,
2860       149,  149,  149,  149,  177,  177,  177,  178,  178,  178,
2861       179,  179,  179, 1771,  180,  180,  180,  915,  650, 1779,
2862       177, 1780, 1692,  178, 1781,  650,  179,  915,  149,  149,
2863       180,  650,  831,  149,  915, 1297, 1297, 1297, 1692,  149,
2864       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2865       150,  150,  150,  150,  150, 1783,  150,  150,  150,  150,
2866       150,  181,  181,  181,  182,  182,  182,  185,  185,  185,
2867      1797,  186,  186,  186,  659,  659,  659,  181, 1522, 1802,
2868       182, 1297, 1803,  185, 1522,  150,  150,  186, 1522, 1804,
2869
2870       150,  659, 1522,  870,  870,  870,  150,  153,  153,  153,
2871       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2872       153,  153, 1808,  153,  153,  153,  153,  153,  189,  189,
2873       189,  190,  190,  190,  191,  191,  191, 1795,  192,  192,
2874       192,  193,  193,  193,  189, 1794, 1809,  190, 1810, 1815,
2875       191, 1794,  153,  153,  192, 1821,  153,  193,  850,  850,
2876       850, 1823,  850,  153, 1824,  850,  153,  870, 1795, 1796,
2877       876,  876,  876,  153,  154,  154,  154,  154,  154,  154,
2878       154,  154,  154,  154,  154,  154,  154,  154,  154, 1827,
2879       154,  154,  154,  154,  154,  194,  194,  194,  195,  195,
2880
2881       195,  196,  196,  196, 1830,  199,  199,  199,  200,  200,
2882       200,  194, 1834, 1835,  195, 1796, 1836,  196, 1837,  154,
2883       154,  199, 1838,  154,  200,  866,  866,  866, 1839,  866,
2884       154, 1840,  866,  154,  876, 1300, 1300, 1300, 1841, 1842,
2885       154,  163,  163,  163,  163,  163,  163,  163,  163,  163,
2886       163,  163,  163,  163,  163,  163, 1843,  163,  163,  163,
2887       163,  163,  201,  201,  201,  202,  202,  202,  203,  203,
2888       203, 1848,  204,  204,  204,  205,  205,  205,  201, 1849,
2889      1867,  202, 1868, 1871,  203, 1872,  163,  163,  204, 1873,
2890      1869,  205,  163,  883,  883,  883, 1877,  883, 1869, 1883,
2891
2892       883, 1303, 1303, 1303, 1312, 1312, 1312,  163,  164,  164,
2893       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2894       164,  164,  164, 1884,  164,  164,  164,  164,  164,  206,
2895       206,  206,  209,  209,  209,  210,  210,  210, 1870,  211,
2896       211,  211,  212,  212,  212,  206, 1870, 1885,  209, 1890,
2897      1894,  210, 1895,  164,  164,  211, 1896, 1898,  212,  164,
2898       890,  890,  890, 1901,  890, 1902, 1905,  890, 1337, 1337,
2899      1337, 1348, 1348, 1348,  164,  173,  173,  173,  173,  173,
2900       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2901      1906,  173,  173,  173,  173,  173,  213,  213,  213,  214,
2902
2903       214,  214,  215,  215,  215, 1909,  216,  216,  216,  219,
2904       219,  219,  213, 1523, 1916,  214, 1903, 1918,  215, 1523,
2905       173,  173,  216, 1523, 1903,  219,  173, 1523, 1904,  173,
2906       895,  895,  895, 1932,  895, 1945, 1904,  895, 1349, 1349,
2907      1349,  173,  174,  174,  174,  174,  174,  174,  174,  174,
2908       174,  174,  174,  174,  174,  174,  174, 1936,  174,  174,
2909       174,  174,  174,  220,  220,  220,  223,  223,  223,  224,
2910       224,  224, 1946,  225,  225,  225,  226,  226,  226,  220,
2911      1954, 1955,  223, 1959, 1349,  224, 1961,  174,  174,  225,
2912      1973, 1974,  226,  174, 1975, 1976,  174,  907,  907,  907,
2913
2914      1936,  907, 1977, 1937,  907, 1422, 1422, 1422,  174,  183,
2915       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
2916       183,  183,  183,  183, 1978,  183,  183,  183,  183,  183,
2917       227,  227,  227,  228,  228,  228,  229,  229,  229, 1979,
2918       230,  230,  230,  233,  233,  233,  227, 1980, 1981,  228,
2919      1937, 1422,  229,  276,  183,  183,  230, 1982, 1988,  233,
2920       183, 1989,  348,  276, 1991,  183,  184,  184,  184,  184,
2921       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2922       184, 2001,  184,  184,  184,  184,  184,  234,  234,  234,
2923       348, 2002,  276, 2003, 2004,  810,  810,  810,  276, 2005,
2924
2925       341, 2006, 2007,  234, 2009,  276,  348, 2010,  342,  276,
2926       341,  184,  184,  810, 1478, 1478, 1478,  184,  342, 1480,
2927      1480, 1480,  184,  187,  187,  187,  187,  187,  187,  187,
2928       187,  187,  187,  187,  187,  187,  187,  187,  341,  187,
2929       187,  187,  187,  187,  341, 2015,  342, 2016,  341,  676,
2930       676,  676, 2018, 2019,  341,  341,  683,  683,  683, 2020,
2931       342,  688,  688,  688,  342, 2021,  676, 2028,  187,  187,
2932       700,  700,  700,  683,  187,  917,  917,  917,  688,  917,
2933      2029, 2030,  917, 1482, 1482, 1482, 2031,  700, 2032,  187,
2934       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
2935
2936       188,  188,  188,  188,  188, 2033,  188,  188,  188,  188,
2937       188,  709,  709,  709,  711,  711,  711,  726,  726,  726,
2938       734,  734,  734,  739,  739,  739, 2034, 2035,  709, 2037,
2939      2058,  711, 2059, 2063,  726,  188,  188,  734, 2064, 2065,
2940       739,  188,  920,  920,  920, 2068,  920, 2072, 2073,  920,
2941      1484, 1484, 1484, 1487, 1487, 1487,  188,  197,  197,  197,
2942       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
2943       197,  197, 2053,  197,  197,  197,  197,  197,  761,  761,
2944       761,  788,  788,  788,  792,  792,  792,  811,  811,  811,
2945      2074,  838,  838,  838, 2075,  761, 2076, 2077,  788, 2078,
2946
2947      2079,  792,  197,  197, 2053,  811, 2080, 2081,  197,  838,
2948      2083,  197,  935,  935,  935, 2054,  935, 2084, 2086,  935,
2949      1489, 1489, 1489,  197,  198,  198,  198,  198,  198,  198,
2950       198,  198,  198,  198,  198,  198,  198,  198,  198, 2087,
2951       198,  198,  198,  198,  198,  811,  839,  839,  839,  841,
2952       841,  841, 2054,  845,  845,  845,  846,  846,  846,  849,
2953       849,  849, 2088, 2085,  839, 2089,  841, 2090, 2091,  198,
2954       198,  845, 2085, 2092,  846,  198,  849, 2091,  198,  943,
2955       943,  943, 2093,  943, 1489, 2094,  943, 1496, 1496, 1496,
2956       198,  207,  207,  207,  207,  207,  207,  207,  207,  207,
2957
2958       207,  207,  207,  207,  207,  207,  839,  207,  207,  207,
2959       207,  207,  851,  851,  851,  853,  853,  853, 2095, 2096,
2960       846,  857,  857,  857,  863,  863,  863, 1985, 1985,  851,
2961      1985, 2097,  853,  858,  858,  858,  207,  207, 1985,  857,
2962      2102, 1985,  863, 2103,  207, 1985,  207, 2104, 2106,  207,
2963      2110,  858, 1519, 1519, 1519, 2111, 2114,  207,  208,  208,
2964       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2965       208,  208,  208, 2118,  208,  208,  208,  208,  208, 2119,
2966       858, 2121,  864,  864,  864,  865,  865,  865,  868,  868,
2967       868,  882,  882,  882,  886,  886,  886,  887,  887,  887,
2968
2969       864, 2124,  865,  208,  208, 2125,  868, 2126,  882, 2127,
2970      2129,  208,  886,  208, 2132,  887,  208, 2134, 1491, 1491,
2971      1491, 1530, 1530, 1530,  208,  217,  217,  217,  217,  217,
2972       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2973      2154,  217,  217,  217,  217,  217,  864,  869,  869,  869,
2974       889,  889,  889, 2157,  892,  892,  892,  893,  893,  893,
2975       894,  894,  894,  887, 1491,  869, 2158,  889, 2159, 2160,
2976       217,  217,  892, 2153, 2161,  893, 2167,  894,  948,  948,
2977       948, 2168,  948, 2154,  869,  948,  968,  968,  968, 2169,
2978       968, 2170, 2171,  968,  217,  218,  218,  218,  218,  218,
2979
2980       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
2981      2153,  218,  218,  218,  218,  218,  897,  897,  897,  898,
2982       898,  898, 2152,  893,  901,  901,  901,  902,  902,  902,
2983       906,  906,  906, 2164,  897, 2172, 2173,  898, 2174, 2175,
2984       218,  218,  901, 2164, 2176,  902, 2164,  906,  991,  991,
2985       991, 2178,  991, 2179, 2180,  991,  995,  995,  995, 2181,
2986       995, 2182, 2152,  995,  218,  221,  221,  221,  221,  221,
2987       221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
2988       898,  221,  221,  221,  221,  221,  910,  910,  910,  911,
2989       911,  911,  902, 2183, 2184,  916,  916,  916,  919,  919,
2990
2991       919,  921,  921,  921,  910, 2185, 2165,  911, 2186, 2187,
2992       221,  221,  916, 2188, 2189,  919, 2165, 2190,  921, 2165,
2993      2191,  221,  222,  222,  222,  222,  222,  222,  222,  222,
2994       222,  222,  222,  222,  222,  222,  222, 2192,  222,  222,
2995       222,  222,  222,  929,  929,  929,  930,  930,  930, 2193,
2996       911, 2194,  934,  934,  934,  936,  936,  936,  939,  939,
2997       939,  929, 2198, 2204,  930, 2205, 2209,  222,  222,  934,
2998      2212, 2220,  936, 1531, 1531, 1531,  939, 2221,  222,  231,
2999       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
3000       231,  231,  231,  231, 2222,  231,  231,  231,  231,  231,
3001
3002       942,  942,  942, 2246,  930,  944,  944,  944, 2248,  945,
3003       945,  945, 2249,  940,  940,  940, 2243,  942, 2250,  947,
3004       947,  947, 2253,  944,  231,  231, 2254,  945,  952,  952,
3005       952,  940, 1498, 1498, 1498,  231,  947, 1049, 1049, 1049,
3006      2256, 1049, 2257, 2260, 1049, 2243,  952, 2244,  231,  232,
3007       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
3008       232,  232,  232,  232,  940,  232,  232,  232,  232,  232,
3009       945, 2261,  953,  953,  953,  954,  954,  954, 1498,  955,
3010       955,  955,  956,  956,  956,  957,  957,  957, 2230, 2244,
3011       953, 2262,  954, 2263,  232,  232,  955, 2255, 2230,  956,
3012
3013       960,  960,  960,  957, 2230,  232,  958,  958,  958, 2265,
3014      2255,  961,  961,  961,  962,  962,  962,  960,  232,  274,
3015       963,  963,  963, 2266,  958, 2267,  274,  953,  961, 2268,
3016      2245,  962,  964,  964,  964,  274,  274,  963,  967,  967,
3017       967,  956,  969,  969,  969,  971,  971,  971, 2271, 2272,
3018       964,  965,  965,  965, 2273,  967,  972,  972,  972, 2274,
3019       969,  961,  971,  274,  274,  274, 2275,  958, 2276,  965,
3020       274,  274, 2245,  972,  274,  274,  961, 2277,  274,  963,
3021       274,  274,  274,  970,  970,  970, 2278, 2279,  965,  973,
3022       973,  973,  974,  974,  974,  975,  975,  975,  977,  977,
3023
3024       977,  970,  976,  976,  976, 2280, 2281,  973, 2282, 2283,
3025       974, 2284,  975, 2285, 2287,  977,  978,  978,  978,  976,
3026      2258,  979,  979,  979,  984,  984,  984,  985,  985,  985,
3027       988,  988,  988, 2258,  978,  989,  989,  989,  970,  979,
3028      2295, 2296,  984, 2297, 2301,  985, 2309, 2311,  988,  990,
3029       990,  990,  976,  989,  992,  992,  992,  993,  993,  993,
3030       994,  994,  994,  974, 2319, 2320,  990,  976,  997,  997,
3031       997, 2321,  992, 2322, 2323,  993, 2324,  994,  998,  998,
3032       998, 2330, 1013, 1013, 1013, 2333,  997, 1014, 1014, 1014,
3033      2331,  985,  979, 1016, 1016, 1016,  998, 2336, 2337,  989,
3034
3035      1013, 2341, 1043, 1043, 1043, 1014, 1044, 1044, 1044, 2342,
3036      2343, 1016, 1045, 1045, 1045, 1047, 1047, 1047,  993, 1043,
3037      1048, 1048, 1048, 2344, 1044, 2331, 1052, 1052, 1052, 2330,
3038      1045, 2345, 2346, 1047, 1054, 1054, 1054, 1048, 2347, 2348,
3039      1016, 2350,  998, 1052, 1055, 1055, 1055, 1057, 1057, 1057,
3040      2351, 2352, 1054, 1059, 1059, 1059, 2353, 1059, 2354, 2355,
3041      1059, 2356, 1055, 2357, 1047, 1057, 1062, 1062, 1062, 1063,
3042      1063, 1063, 2231, 1063, 2359, 2360, 1063, 2361, 1064, 1064,
3043      1064, 2362, 2231, 1062, 1065, 1065, 1065, 1052, 2231, 1066,
3044      1066, 1066, 2363, 1066, 1057, 1064, 1066, 1068, 1068, 1068,
3045
3046      2364, 1065, 1070, 1070, 1070, 1071, 1071, 1071, 1073, 1073,
3047      1073, 1076, 1076, 1076, 1068, 1078, 1078, 1078, 2365, 2366,
3048      1070, 2367, 2368, 1071, 2369, 2370, 1073, 2371, 1076, 1079,
3049      1079, 1079, 2372, 1078, 1081, 1081, 1081, 1082, 1082, 1082,
3050      2373, 1082, 2379, 2383, 1082, 2384, 2385, 1079, 1086, 1086,
3051      1086, 2386, 1081, 1087, 1087, 1087, 1089, 1089, 1089, 2393,
3052      1101, 1101, 1101, 2396, 1101, 2403, 1086, 1101, 1073, 2404,
3053      2405, 1087, 2406, 2407, 1089, 1105, 1105, 1105, 1106, 1106,
3054      1106, 1081, 1107, 1107, 1107, 1109, 1109, 1109, 1115, 1115,
3055      1115, 2408, 1105, 1116, 1116, 1116, 1106, 1111, 1111, 1111,
3056
3057      1107, 1111, 2411, 1109, 1111, 2398, 1115, 1118, 1118, 1118,
3058      2419, 1116, 1119, 1119, 1119, 2398, 1119, 2420, 2421, 1119,
3059      1122, 1122, 1122, 2422, 2423, 1118, 1123, 1123, 1123, 1124,
3060      1124, 1124, 1126, 1126, 1126, 2399, 2411, 1122, 1127, 1127,
3061      1127, 1128, 1128, 1128, 1123, 2399, 1109, 1124, 2424, 2425,
3062      1126, 2426, 1129, 1129, 1129, 1127, 2429, 2430, 1128, 1130,
3063      1130, 1130, 1132, 1132, 1132, 1135, 1135, 1135, 1118, 1128,
3064      1129, 1136, 1136, 1136, 2432, 1136, 2433, 1130, 1136, 2434,
3065      1132, 2436, 1135, 1141, 1141, 1141, 1142, 1142, 1142, 1144,
3066      1144, 1144, 2401, 1151, 1151, 1151, 2402, 1151, 2438, 1126,
3067
3068      1151, 1141, 2401, 2439, 1142, 2440, 2402, 1144, 1154, 1154,
3069      1154, 1155, 1155, 1155, 2443, 1155, 2444, 2445, 1155, 1158,
3070      1158, 1158, 1159, 1159, 1159, 1154, 1159, 2446, 1132, 1159,
3071      1167, 1167, 1167, 1168, 1168, 1168, 1158, 1170, 1170, 1170,
3072      1175, 1175, 1175, 2447, 1175, 2450, 2451, 1175, 1167, 2458,
3073      2459, 1168, 2460, 2462, 1144, 1170, 1178, 1178, 1178, 1179,
3074      1179, 1179, 2468, 1179, 2469, 2470, 1179, 1182, 1182, 1182,
3075      1183, 1183, 1183, 1178, 1185, 1185, 1185, 1187, 1187, 1187,
3076      2471, 1187, 2472, 2473, 1187, 1182, 2474, 2475, 1183, 1190,
3077      1190, 1190, 1185, 1191, 1191, 1191, 1193, 1193, 1193, 1195,
3078
3079      1195, 1195, 2476, 1195, 1170, 2477, 1195, 1190, 1201, 1201,
3080      1201, 1191, 2479, 2480, 1193, 1202, 1202, 1202, 1204, 1204,
3081      1204, 1205, 1205, 1205, 2494, 1185, 1201, 1206, 1206, 1206,
3082      2485, 1206, 2495, 1202, 1206, 2496, 1204, 2497, 1205, 1207,
3083      1207, 1207, 1208, 1208, 1208, 2498, 1208, 2499, 2500, 1208,
3084      1210, 1210, 1210, 1211, 1211, 1211, 1207, 1213, 1213, 1213,
3085      1215, 1215, 1215, 1193, 2501, 1216, 1216, 1216, 1210, 1216,
3086      2505, 1211, 1216, 2485, 2506, 1213, 2507, 1215, 1204, 1219,
3087      1219, 1219, 1220, 1220, 1220, 2508, 1220, 2509, 2510, 1220,
3088      1222, 1222, 1222, 1223, 1223, 1223, 1219, 1225, 1225, 1225,
3089
3090      1227, 1227, 1227, 2512, 1227, 2513, 2515, 1227, 1222, 2516,
3091      2517, 1223, 1230, 1230, 1230, 1225, 1231, 1231, 1231, 1233,
3092      1233, 1233, 2518, 2520, 1213, 1234, 1234, 1234, 2521, 2525,
3093      1230, 1235, 1235, 1235, 1231, 1235, 2526, 1233, 1235, 1236,
3094      1236, 1236, 1234, 1237, 1237, 1237, 2527, 1237, 2530, 2535,
3095      1237, 1238, 1238, 1238, 2536, 2537, 1236, 1239, 1239, 1239,
3096      2538, 1225, 1241, 1241, 1241, 1242, 1242, 1242, 2539, 1238,
3097      1243, 1243, 1243, 2540, 1243, 1239, 2541, 1243, 2542, 1233,
3098      1241, 2543, 1242, 1246, 1246, 1246, 1247, 1247, 1247, 2544,
3099      1247, 2545, 2546, 1247, 1248, 1248, 1248, 1249, 1249, 1249,
3100
3101      1246, 1251, 1251, 1251, 1253, 1253, 1253, 1256, 1256, 1256,
3102      2554, 2551, 1248, 2557, 2558, 1249, 1257, 1257, 1257, 1251,
3103      2561, 1253, 2551, 2548, 1241, 1256, 1259, 1259, 1259, 1262,
3104      1262, 1262, 2550, 2563, 1257, 1263, 1263, 1263, 1265, 1265,
3105      1265, 1266, 1266, 1266, 1259, 1266, 2550, 1262, 1266, 1269,
3106      1269, 1269, 2564, 1263, 2566, 2567, 1265, 1270, 1270, 1270,
3107      1272, 1272, 1272, 1251, 1273, 1273, 1273, 1269, 1273, 2548,
3108      2570, 1273, 1277, 1277, 1277, 1270, 2571, 2572, 1272, 1278,
3109      1278, 1278, 1280, 1280, 1280, 2573, 2574, 1259, 2575, 2576,
3110      1277, 1265, 1282, 1282, 1282, 2577, 2578, 1278, 2579, 2580,
3111
3112      1280, 1289, 1289, 1289, 1315, 1315, 1315, 1317, 1317, 1317,
3113      1282, 1282, 2584, 1318, 1318, 1318, 1344, 1344, 1344, 1289,
3114      1272, 1315, 1316, 1316, 1316, 1317, 1316, 2592, 2594, 1316,
3115      1318, 1319, 1319, 1319, 1344, 1319, 2596, 2582, 1319, 1322,
3116      1322, 1322, 2598, 1280, 1324, 1324, 1324, 2608, 1324, 2582,
3117      2583, 1324, 1327, 1327, 1327, 2610, 2589, 1322, 2612, 1328,
3118      1328, 1328, 2583, 1328, 2590, 1317, 1328, 1289, 2589, 1327,
3119      1329, 1329, 1329, 2613, 1329, 2614, 2590, 1329, 1333, 1333,
3120      1333, 2615, 1334, 1334, 1334, 2622, 1334, 2605, 1322, 1334,
3121      1336, 1336, 1336, 2606, 2621, 1333, 1339, 1339, 1339, 1340,
3122
3123      1340, 1340, 2626, 1340, 2607, 2607, 1340, 2606, 1336, 1341,
3124      1341, 1341, 2621, 1339, 1342, 1342, 1342, 1357, 1357, 1357,
3125      1358, 1358, 1358, 1359, 1359, 1359, 1341, 1359, 2605, 2632,
3126      1359, 2634, 1342, 2637, 1357, 2639, 2631, 1358, 2625, 2633,
3127      1336, 1360, 1360, 1360, 1363, 1363, 1363, 1364, 1364, 1364,
3128      1365, 1365, 1365, 2625, 1365, 2631, 2645, 1365, 2633, 1360,
3129      2646, 2647, 1363, 1342, 1364, 1366, 1366, 1366, 1367, 1367,
3130      1367, 1368, 1368, 1368, 2649, 1368, 2650, 2651, 1368, 1370,
3131      1370, 1370, 2636, 1366, 2609, 1367, 1373, 1373, 1373, 1374,
3132      1374, 1374, 2652, 1374, 2654, 2609, 1374, 1370, 1375, 1375,
3133
3134      1375, 2636, 2655, 1373, 2657, 1360, 2658, 2665, 1363, 1376,
3135      1376, 1376, 1377, 1377, 1377, 1375, 1381, 1381, 1381, 1384,
3136      1384, 1384, 1568, 1568, 1568, 1366, 1376, 1385, 1385, 1385,
3137      1377, 1385, 2666, 1381, 1385, 2638, 1384, 1386, 1386, 1386,
3138      1370, 1386, 2667, 2668, 1386, 1389, 1389, 1389, 1396, 1396,
3139      1396, 1398, 1398, 1398, 2638, 1376, 1401, 1401, 1401, 2669,
3140      1401, 2670, 1389, 1401, 2673, 2674, 1396, 2675, 1398, 1404,
3141      1404, 1404, 1406, 1406, 1406, 1408, 1408, 1408, 1377, 1412,
3142      1412, 1412, 1413, 1413, 1413, 2676, 1404, 1414, 1414, 1414,
3143      1406, 1414, 2677, 1408, 1414, 2678, 1412, 1417, 1417, 1417,
3144
3145      1413, 1417, 2680, 2682, 1417, 1421, 1421, 1421, 1423, 1423,
3146      1423, 2684, 1423, 1396, 2685, 1423, 2687, 1428, 1428, 1428,
3147      2696, 1428, 2698, 1421, 1428, 1412, 1432, 1432, 1432, 1434,
3148      1434, 1434, 2696, 1435, 1435, 1435, 1406, 1435, 2699, 1413,
3149      1435, 1408, 2697, 2700, 1432, 2701, 2702, 1434, 1438, 1438,
3150      1438, 2703, 1438, 2707, 2697, 1438, 1441, 1441, 1441, 1442,
3151      1442, 1442, 2708, 1442, 2709, 2710, 1442, 2711, 1447, 1447,
3152      1447, 1421, 1447, 2712, 1441, 1447, 1450, 1450, 1450, 1452,
3153      1452, 1452, 1456, 1456, 1456, 2715, 1434, 1432, 1453, 1453,
3154      1453, 2716, 1453, 2717, 1450, 1453, 1452, 1458, 1458, 1458,
3155
3156      1456, 2713, 2718, 1441, 1459, 1459, 1459, 1460, 1460, 1460,
3157      1461, 1461, 1461, 2719, 1458, 1462, 1462, 1462, 1465, 1465,
3158      1465, 2720, 1459, 1450, 2721, 1460, 2713, 1461, 1472, 1472,
3159      1472, 1456, 2722, 1462, 2723, 2724, 1465, 1499, 1499, 1499,
3160      2725, 1499, 2726, 2727, 1499, 2728, 1472, 1502, 1502, 1502,
3161      1503, 1503, 1503, 2729, 1503, 2730, 2731, 1503, 2732, 1460,
3162      1508, 1508, 1508, 2733, 2734, 1502, 1510, 1510, 1510, 1465,
3163      1510, 1459, 2738, 1510, 1518, 1518, 1518, 1462, 1508, 2739,
3164      1472, 1514, 1514, 1514, 2740, 1514, 1465, 2735, 1514, 1521,
3165      1521, 1521, 1518, 1521, 2741, 2742, 1521, 2743, 1524, 1524,
3166
3167      1524, 1525, 1525, 1525, 2744, 1525, 2735, 2745, 1525, 2746,
3168      2747, 1508, 2748, 2749, 1502, 1524, 1526, 1526, 1526, 1532,
3169      1532, 1532, 1536, 1536, 1536, 1537, 1537, 1537, 1539, 1539,
3170      1539, 1544, 1544, 1544, 1526, 1518, 1540, 1540, 1540, 2750,
3171      1540, 2751, 2752, 1540, 2753, 1539, 1541, 1541, 1541, 1544,
3172      1541, 2754, 2755, 1541, 1546, 1546, 1546, 1547, 1547, 1547,
3173      2757, 1548, 1548, 1548, 2758, 1548, 2759, 1526, 1548, 2760,
3174      2761, 1546, 1551, 1551, 1551, 1547, 2762, 2756, 1544, 2763,
3175      1552, 1552, 1552, 1532, 1552, 2764, 1536, 1552, 2765, 1537,
3176      1551, 1555, 1555, 1555, 1556, 1556, 1556, 2756, 1559, 1559,
3177
3178      1559, 2766, 1559, 2767, 1547, 1559, 2768, 2769, 1555, 1562,
3179      1562, 1562, 1556, 1563, 1563, 1563, 2770, 1563, 2771, 2772,
3180      1563, 2773, 1564, 1564, 1564, 2774, 1562, 1565, 1565, 1565,
3181      2778, 1565, 2779, 2780, 1565, 1567, 1567, 1567, 1551, 1564,
3182      1571, 1571, 1571, 1572, 1572, 1572, 2775, 1572, 2781, 2782,
3183      1572, 2783, 2775, 1567, 1573, 1573, 1573, 1571, 1556, 1575,
3184      1575, 1575, 2785, 1575, 2786, 2788, 1575, 1578, 1578, 1578,
3185      2789, 1573, 1579, 1579, 1579, 2791, 1579, 2792, 2795, 1579,
3186      1580, 1580, 1580, 2796, 1578, 1585, 1585, 1585, 1586, 1586,
3187      1586, 1588, 1588, 1588, 1589, 1589, 1589, 1580, 1589, 2797,
3188
3189      2798, 1589, 1585, 1590, 1590, 1590, 1586, 2800, 1588, 1592,
3190      1592, 1592, 1593, 1593, 1593, 2802, 1593, 2804, 2806, 1593,
3191      1590, 1595, 1595, 1595, 2794, 2808, 1592, 1597, 1597, 1597,
3192      1601, 1601, 1601, 1602, 1602, 1602, 2809, 1602, 2794, 1595,
3193      1602, 1604, 1604, 1604, 2810, 1597, 2811, 1601, 1606, 1606,
3194      1606, 1608, 1608, 1608, 1586, 1609, 1609, 1609, 2812, 1604,
3195      1610, 1610, 1610, 1611, 1611, 1611, 1606, 2813, 1608, 1613,
3196      1613, 1613, 1609, 1614, 1614, 1614, 2814, 1610, 1597, 2815,
3197      2817, 1611, 2819, 1615, 1615, 1615, 2821, 1613, 1616, 1616,
3198      1616, 1614, 1617, 1617, 1617, 1624, 1624, 1624, 2822, 1606,
3199
3200      1615, 2823, 1619, 1619, 1619, 1616, 1619, 2824, 2839, 1619,
3201      1617, 2833, 2839, 1624, 2825, 1613, 1626, 1626, 1626, 1627,
3202      1627, 1627, 2826, 1627, 1610, 1471, 1627, 1628, 1628, 1628,
3203      1611, 1470, 1467, 1626, 1629, 1629, 1629, 1464, 1614, 1630,
3204      1630, 1630, 1632, 1632, 1632, 1628, 1624, 1631, 1631, 1631,
3205      2825, 1631, 1629, 2851, 1631, 1457, 1630, 1617, 2826, 2833,
3206      1632, 1638, 1638, 1638, 1639, 1639, 1639, 1644, 1644, 1644,
3207      1647, 1647, 1647, 1651, 1651, 1651, 2834, 2837, 1638, 1652,
3208      1652, 1652, 1639, 1653, 1653, 1653, 1628, 2853, 2851, 1629,
3209      1655, 1655, 1655, 1657, 1657, 1657, 1658, 1658, 1658, 1662,
3210
3211      1662, 1662, 1664, 1664, 1664, 1667, 1667, 1667, 2877, 1669,
3212      1669, 1669, 1671, 1671, 1671, 1672, 1672, 1672, 2838, 2878,
3213      1664, 2837, 2847, 1667, 2834, 1639, 1669, 1681, 1681, 1681,
3214      1671, 1681, 1672, 2853, 1681, 1684, 1684, 1684, 1685, 1685,
3215      1685, 1688, 1688, 1688, 1689, 1689, 1689, 1693, 1693, 1693,
3216      2877, 2835, 1664, 1684, 2836, 1685, 1694, 1694, 1694, 2847,
3217      1694, 2878, 2838, 1694, 1693, 1697, 1697, 1697, 1698, 1698,
3218      1698, 1671, 1699, 1699, 1699, 1700, 1700, 1700, 2871, 1700,
3219      2840, 1684, 1700, 1697, 2840, 1698, 1701, 1701, 1701, 1699,
3220      1702, 1702, 1702, 1703, 1703, 1703, 1704, 1704, 1704, 2835,
3221
3222      1704, 2841, 2836, 1704, 1701, 1705, 1705, 1705, 1702, 2841,
3223      1703, 2871, 1708, 1708, 1708, 2845, 1708, 2842, 1697, 1708,
3224      1711, 1711, 1711, 1705, 1711, 2842, 2846, 1711, 1715, 1715,
3225      1715, 1717, 1717, 1717, 1720, 1720, 1720, 2843, 1720, 1701,
3226      2857, 1720, 1723, 1723, 1723, 2843, 1715, 1724, 1724, 1724,
3227      2848, 1724, 1705, 2844, 1724, 2852, 1726, 1726, 1726, 1723,
3228      1726, 2844, 2845, 1726, 1729, 1729, 1729, 1730, 1730, 1730,
3229      2854, 1730, 2857, 2846, 1730, 1731, 1731, 1731, 1735, 1735,
3230      1735, 1729, 1736, 1736, 1736, 2858, 1736, 2848, 2855, 1736,
3231      2852, 1455, 1731, 1454, 1451, 1735, 1737, 1737, 1737, 1739,
3232
3233      1739, 1739, 2856, 1739, 2875, 2849, 1739, 1742, 1742, 1742,
3234      2863, 1743, 1743, 1743, 1737, 1743, 2854, 2858, 1743, 1745,
3235      1745, 1745, 2850, 1745, 1742, 2855, 1745, 1749, 1749, 1749,
3236      1752, 1752, 1752, 1754, 1754, 1754, 1756, 1756, 1756, 2856,
3237      1756, 2875, 2865, 1756, 2863, 1749, 2849, 1737, 1752, 2864,
3238      1754, 1760, 1760, 1760, 1763, 1763, 1763, 1765, 1765, 1765,
3239      1766, 1766, 1766, 2850, 1766, 2891, 1446, 1766, 1445, 1760,
3240      2861, 2867, 1763, 2891, 1765, 1767, 1767, 1767, 2892, 1754,
3241      1768, 1768, 1768, 2864, 1768, 2865, 2892, 1768, 1770, 1770,
3242      1770, 2887, 1767, 2916, 1752, 1772, 1772, 1772, 1773, 1773,
3243
3244      1773, 1774, 1774, 1774, 2916, 2861, 1770, 1775, 1775, 1775,
3245      2866, 1775, 2862, 1772, 1775, 2868, 1773, 2867, 1774, 1776,
3246      1776, 1776, 1777, 1777, 1777, 2887, 1777, 2869, 2859, 1777,
3247      1778, 1778, 1778, 1782, 1782, 1782, 1776, 2859, 1784, 1784,
3248      1784, 2860, 1784, 2873, 1772, 1784, 2870, 2862, 1778, 2897,
3249      2860, 1782, 2873, 2866, 1770, 1787, 1787, 1787, 1788, 1788,
3250      1788, 2868, 2869, 1773, 1789, 1789, 1789, 1433, 1789, 1431,
3251      1427, 1789, 1426, 1787, 1420, 1411, 1788, 2872, 1792, 1792,
3252      1792, 2870, 1798, 1798, 1798, 1799, 1799, 1799, 2874, 1799,
3253      2897, 1410, 1799, 1409, 1407, 1778, 1792, 2874, 1782, 1798,
3254
3255      1800, 1800, 1800, 1801, 1801, 1801, 1787, 1805, 1805, 1805,
3256      2872, 1788, 1806, 1806, 1806, 1807, 1807, 1807, 1800, 1811,
3257      1811, 1811, 1812, 1812, 1812, 1813, 1813, 1813, 1814, 1814,
3258      1814, 1816, 1816, 1816, 1817, 1817, 1817, 1818, 1818, 1818,
3259      1819, 1819, 1819, 1820, 1820, 1820, 2876, 1822, 1822, 1822,
3260      1825, 1825, 1825, 1828, 1828, 1828, 1829, 1829, 1829, 2879,
3261      1829, 2883, 2884, 1829, 1800, 1822, 1405, 2915, 1825, 1400,
3262      1828, 1831, 1831, 1831, 1814, 1832, 1832, 1832, 1833, 1833,
3263      1833, 2915, 1833, 2876, 2898, 1833, 1844, 1844, 1844, 1831,
3264      2883, 2884, 1832, 1845, 1845, 1845, 2880, 2893, 1822, 1846,
3265
3266      1846, 1846, 2881, 1846, 1844, 2879, 1846, 1847, 1847, 1847,
3267      1845, 1850, 1850, 1850, 1851, 1851, 1851, 1852, 1852, 1852,
3268      1853, 1853, 1853, 2894, 1853, 2898, 2911, 1853, 1854, 1854,
3269      1854, 1855, 1855, 1855, 1852, 1844, 1856, 1856, 1856, 2881,
3270      1856, 2889, 2880, 1856, 2893, 2885, 1854, 2882, 1855, 1857,
3271      1857, 1857, 2886, 1857, 2885, 2895, 1857, 1860, 1860, 1860,
3272      1851, 2886, 1861, 1861, 1861, 1863, 1863, 1863, 2899, 1863,
3273      2894, 2888, 1863, 1399, 2911, 1860, 1866, 1866, 1866, 1854,
3274      1861, 1874, 1874, 1874, 2882, 1874, 2896, 2889, 1874, 1878,
3275      1878, 1878, 2895, 1878, 1866, 1397, 1878, 1881, 1881, 1881,
3276
3277      1882, 1882, 1882, 2899, 1882, 2888, 2890, 1882, 1860, 1886,
3278      1886, 1886, 2900, 1886, 1881, 1395, 1886, 1889, 1889, 1889,
3279      1891, 1891, 1891, 2896, 1891, 2905, 1394, 1891, 2903, 1866,
3280      1897, 1897, 1897, 2901, 2902, 1889, 1899, 1899, 1899, 1900,
3281      1900, 1900, 2912, 1900, 1393, 1392, 1900, 2900, 1897, 1907,
3282      1907, 1907, 2890, 1899, 1910, 1910, 1910, 2905, 1910, 1391,
3283      1390, 1910, 1913, 1913, 1913, 2903, 1913, 1907, 2906, 1913,
3284      1917, 1917, 1917, 1919, 1919, 1919, 1920, 1920, 1920, 2901,
3285      2902, 1889, 1921, 1921, 1921, 1383, 1921, 2909, 1917, 1921,
3286      2912, 1919, 2904, 1382, 1920, 1924, 1924, 1924, 2907, 1924,
3287
3288      2906, 1380, 1924, 1379, 1927, 1927, 1927, 2907, 1928, 1928,
3289      1928, 2908, 1920, 1929, 1929, 1929, 1930, 1930, 1930, 2909,
3290      2908, 1917, 1927, 1378, 1927, 1928, 1931, 1931, 1931, 2904,
3291      1929, 1372, 1371, 1930, 1933, 1933, 1933, 1369, 1362, 1919,
3292      1934, 1934, 1934, 1361, 1931, 1935, 1935, 1935, 1938, 1938,
3293      1938, 1356, 1933, 1939, 1939, 1939, 1355, 1939, 1934, 1354,
3294      1939, 2910, 1353, 1935, 1929, 1942, 1942, 1942, 1943, 1943,
3295      1943, 1944, 1944, 1944, 1352, 1930, 1947, 1947, 1947, 1948,
3296      1948, 1948, 1351, 1942, 1949, 1949, 1949, 1950, 1950, 1950,
3297      2913, 1931, 1350, 2910, 1933, 1951, 1951, 1951, 1952, 1952,
3298
3299      1952, 1953, 1953, 1953, 1956, 1956, 1956, 1957, 1957, 1957,
3300      1958, 1958, 1958, 1960, 1960, 1960, 1963, 1963, 1963, 1964,
3301      1964, 1964, 2913, 1964, 1942, 1347, 1964, 1967, 1967, 1967,
3302      1346, 1960, 1343, 1963, 1968, 1968, 1968, 1338, 1970, 1970,
3303      1970, 1335, 1970, 2914, 1967, 1970, 1983, 1983, 1983, 1984,
3304      1984, 1984, 1968, 1984, 1986, 1986, 1984, 1986, 1987, 1987,
3305      1987, 1990, 1990, 1990, 1983, 1986, 1332, 1323, 1986, 1992,
3306      1992, 1992, 1986, 1992, 1321, 2914, 1992, 1995, 1995, 1995,
3307      1996, 1996, 1996, 1320, 1996, 1314, 1313, 1996, 1999, 1999,
3308      1999, 1311, 1310, 1967, 1309, 1995, 2000, 2000, 2000, 2008,
3309
3310      2008, 2008, 2014, 2014, 2014, 1308, 1999, 1983, 2011, 2011,
3311      2011, 1307, 2011, 1306, 2000, 2011, 2017, 2017, 2017, 2014,
3312      2022, 2022, 2022, 1995, 2024, 2024, 2024, 1305, 2025, 2025,
3313      2025, 1304, 2025, 1302, 2017, 2025, 1301, 1299, 2022, 1298,
3314      1296, 2024, 2036, 2036, 2036, 1294, 1293, 2000, 2038, 2038,
3315      2038, 2039, 2039, 2039, 2040, 2040, 2040, 2041, 2041, 2041,
3316      2042, 2042, 2042, 2043, 2043, 2043, 2038, 1292, 2039, 1291,
3317      2024, 1290, 2040, 1288, 1287, 2041, 1286, 1285, 2042, 1276,
3318      2043, 2044, 2044, 2044, 1261, 2044, 1260, 1255, 2044, 2045,
3319      2045, 2045, 2046, 2046, 2046, 1254, 1252, 2042, 2047, 2047,
3320
3321      2047, 2048, 2048, 2048, 1245, 1244, 2045, 1226, 1221, 2046,
3322      2049, 2049, 2049, 1218, 2040, 1217, 2047, 1214, 2041, 2050,
3323      2050, 2050, 2052, 2052, 2052, 2055, 2055, 2055, 2049, 2056,
3324      2056, 2056, 2057, 2057, 2057, 1209, 1200, 2050, 1199, 1198,
3325      2052, 1194, 1186, 2046, 2060, 2060, 2060, 2056, 2061, 2061,
3326      2061, 2062, 2062, 2062, 2066, 2066, 2066, 2069, 2069, 2069,
3327      2070, 2070, 2070, 1181, 2070, 1180, 1174, 2070, 2071, 2071,
3328      2071, 1173, 2066, 1172, 2069, 1171, 2049, 2082, 2082, 2082,
3329      2098, 2098, 2098, 1166, 2052, 2071, 2099, 2099, 2099, 2101,
3330      2101, 2101, 2108, 2108, 2108, 2082, 1165, 1164, 2098, 2109,
3331
3332      2109, 2109, 1163, 1162, 2099, 1161, 1160, 2101, 1150, 2108,
3333      2112, 2112, 2112, 2113, 2113, 2113, 1149, 2113, 1148, 1147,
3334      2113, 1146, 1145, 2071, 2115, 2115, 2115, 2112, 1140, 2116,
3335      2116, 2116, 2120, 2120, 2120, 1139, 1134, 2082, 2122, 2122,
3336      2122, 2115, 2131, 2131, 2131, 1133, 2098, 2116, 1114, 2120,
3337      2123, 2123, 2123, 1110, 2123, 2122, 1104, 2123, 1100, 2131,
3338      2133, 2133, 2133, 2135, 2135, 2135, 2137, 2137, 2137, 2138,
3339      2138, 2138, 1099, 2138, 1098, 1097, 2138, 2139, 2139, 2139,
3340      1096, 2135, 1095, 2137, 2140, 2140, 2140, 1094, 2141, 2141,
3341      2141, 1093, 2142, 2142, 2142, 2139, 2142, 1092, 1091, 2142,
3342
3343      1090, 1085, 2140, 2145, 2145, 2145, 2141, 2146, 2146, 2146,
3344      1077, 2146, 1075, 1069, 2146, 2147, 2147, 2147, 1067, 1058,
3345      2145, 2148, 2148, 2148, 2150, 2150, 2150, 2151, 2151, 2151,
3346      1053, 1042, 2147, 1040, 1039, 2155, 2155, 2155, 1038, 2148,
3347      2162, 2162, 2162, 1036, 1035, 2151, 2166, 2166, 2166, 1034,
3348      1033, 2140, 2141, 2155, 2163, 2163, 2163, 2162, 2163, 1032,
3349      1031, 2163, 1029, 2166, 2177, 2177, 2177, 2195, 2195, 2195,
3350      2196, 2196, 2196, 2199, 2199, 2199, 2202, 2202, 2202, 2203,
3351      2203, 2203, 2177, 2203, 1028, 2195, 2203, 1027, 2196, 1026,
3352      2199, 1025, 1024, 2202, 2206, 2206, 2206, 1023, 2206, 1022,
3353
3354      1021, 2206, 2210, 2210, 2210, 1020, 1019, 2166, 2211, 2211,
3355      2211, 1018, 2211, 1012, 1011, 2211, 2213, 2213, 2213, 2210,
3356      2214, 2214, 2214, 1010, 2177, 2215, 2215, 2215, 1007, 2215,
3357      1006, 1005, 2215, 2213, 2216, 2216, 2216, 2214, 2195, 2217,
3358      2217, 2217, 1003, 2217,  999,  996, 2217, 2225, 2225, 2225,
3359       987, 2216, 2226, 2226, 2226,  986, 2226,  983,  982, 2226,
3360      2227, 2227, 2227,  981, 2225, 2228, 2228, 2228, 2229, 2229,
3361      2229,  980, 2229,  966,  959, 2229,  951, 2227, 2232, 2232,
3362      2232,  950, 2228, 2234, 2234, 2234, 2235, 2235, 2235,  949,
3363      2236, 2236, 2236,  946, 2236,  941, 2232, 2236, 2239, 2239,
3364
3365      2239, 2234,  938,  937, 2235, 2240, 2240, 2240,  933, 2240,
3366       931,  928, 2240,  927,  926, 2239, 2241, 2241, 2241, 2247,
3367      2247, 2247, 2251, 2251, 2251, 2252, 2252, 2252,  925, 2252,
3368       924,  923, 2252,  922, 2241, 2259, 2259, 2259,  918, 2251,
3369      2270, 2270, 2270, 2286, 2286, 2286,  914, 2235,  913, 2234,
3370       912,  909, 2259, 2288, 2288, 2288,  908,  905, 2270, 2289,
3371      2289, 2289, 2290, 2290, 2290, 2291, 2291, 2291,  904, 2291,
3372       903, 2288, 2291, 2292, 2292, 2292, 2289, 2292,  900, 2290,
3373      2292, 2298, 2298, 2298,  899, 2298,  896,  891, 2298,  888,
3374       885, 2270, 2302, 2302, 2302, 2259, 2303, 2303, 2303,  884,
3375
3376      2303,  881,  880, 2303,  879, 2289, 2304, 2304, 2304, 2302,
3377      2304,  878,  877, 2304,  875, 2288, 2307, 2307, 2307, 2308,
3378      2308, 2308,  874, 2308,  873,  872, 2308, 2310, 2310, 2310,
3379      2312, 2312, 2312, 2307, 2312,  871,  867, 2312, 2315, 2315,
3380      2315, 2316, 2316, 2316, 2310, 2316,  862,  861, 2316, 2317,
3381      2317, 2317, 2318, 2318, 2318, 2315, 2318,  860,  859, 2318,
3382      2325, 2325, 2325, 2326, 2326, 2326, 2317, 2327, 2327, 2327,
3383       856, 2327,  855,  854, 2327, 2332, 2332, 2332, 2325,  852,
3384       848, 2326, 2334, 2334, 2334, 2335, 2335, 2335, 2349, 2349,
3385      2349,  844, 2332, 2332, 2338, 2338, 2338,  843, 2338,  840,
3386
3387       837, 2338, 2358, 2358, 2358, 2349, 2374, 2374, 2374,  836,
3388       835, 2325, 2375, 2375, 2375, 2376, 2376, 2376,  834,  833,
3389      2358, 2377, 2377, 2377, 2378, 2378, 2378,  832, 2378,  830,
3390      2326, 2378,  829, 2376,  828, 2380, 2380, 2380, 2377, 2380,
3391       827,  826, 2380, 2387, 2387, 2387,  825, 2387,  824,  823,
3392      2387, 2358, 2390, 2390, 2390,  822, 2390,  821,  820, 2390,
3393      2394, 2394, 2394, 2395, 2395, 2395, 2376, 2395,  819,  818,
3394      2395, 2397, 2397, 2397,  817, 2397,  816, 2394, 2397, 2400,
3395      2400, 2400,  815, 2400,  814,  813, 2400, 2409, 2409, 2409,
3396      2410, 2410, 2410, 2412, 2412, 2412, 2413, 2413, 2413, 2414,
3397
3398      2414, 2414,  809, 2414,  808, 2409, 2414,  806, 2410,  805,
3399      2412, 2412,  804, 2413, 2413,  803,  802, 2414, 2415, 2415,
3400      2415, 2416, 2416, 2416, 2417, 2417, 2417, 2418, 2418, 2418,
3401      2427, 2427, 2427, 2428, 2428, 2428,  798, 2428,  796,  795,
3402      2428, 2437, 2437, 2437, 2452, 2452, 2452, 2427, 2453, 2453,
3403      2453, 2454, 2454, 2454,  794,  793, 2410,  789,  785, 2437,
3404      2455, 2455, 2455,  784, 2455,  781,  780, 2455,  779, 2454,
3405      2461, 2461, 2461, 2463, 2463, 2463, 2464, 2464, 2464,  778,
3406      2464,  777,  776, 2464, 2467, 2467, 2467, 2461,  773,  772,
3407      2463, 2482, 2482, 2482, 2484, 2484, 2484, 2486, 2486, 2486,
3408
3409       771, 2467,  770,  767, 2487, 2487, 2487, 2437, 2487, 2482,
3410       766, 2487, 2484,  765, 2486, 2486, 2488, 2488, 2488,  762,
3411      2488,  760, 2487, 2488, 2491, 2491, 2491, 2492, 2492, 2492,
3412      2493, 2493, 2493,  757, 2488, 2502, 2502, 2502,  756, 2502,
3413       755,  754, 2502,  753,  750, 2484, 2489, 2489, 2489, 2489,
3414      2489, 2489, 2489, 2489, 2489,  749,  748, 2489, 2511, 2511,
3415      2511,  747, 2489, 2489, 2489, 2489, 2489, 2522, 2522, 2522,
3416      2523, 2523, 2523, 2528, 2528, 2528, 2511, 2529, 2529, 2529,
3417       746, 2529,  743,  742, 2529, 2531, 2531, 2531, 2523,  741,
3418      2528, 2489, 2489, 2490, 2490, 2490, 2490, 2490, 2490, 2490,
3419
3420      2490, 2490, 2531,  740, 2490, 2533, 2533, 2533,  738, 2490,
3421      2490, 2490, 2490, 2490, 2532, 2532, 2532,  735, 2532,  733,
3422       730, 2532, 2533, 2534, 2534, 2534,  729, 2534,  728,  727,
3423      2534, 2547, 2547, 2547, 2568, 2568, 2568,  725, 2490, 2490,
3424      2549, 2549, 2549,  724, 2549,  723,  720, 2549,  719, 2547,
3425       718,  717, 2568, 2603, 2603, 2603,  716,  715, 2549, 2552,
3426      2552, 2552, 2552, 2552, 2552, 2552, 2552, 2552,  714,  713,
3427      2552, 2603,  712,  710,  708, 2552, 2552, 2552, 2552, 2552,
3428      2581, 2581, 2581,  707, 2581,  703,  702, 2581, 2585, 2585,
3429      2585,  701, 2585,  698,  695, 2585, 2588, 2588, 2588,  694,
3430
3431      2588,  693,  690, 2588, 2552, 2552, 2553, 2553, 2553, 2553,
3432      2553, 2553, 2553, 2553, 2553,  689,  685, 2553, 2611, 2611,
3433      2611,  684, 2553, 2553, 2553, 2553, 2553, 2628, 2628, 2628,
3434      2629, 2629, 2629, 2630, 2630, 2630, 2611, 2611, 2635, 2635,
3435      2635, 2644, 2644, 2644, 2628,  682,  679, 2629,  678,  677,
3436      2630, 2553, 2553,  675,  670, 2635, 2648, 2648, 2648, 2644,
3437      2659, 2659, 2659, 2660, 2660, 2660,  669, 2660,  668,  667,
3438      2660, 2661, 2661, 2661, 2648,  665,  664, 2659, 2662, 2662,
3439      2662,  663, 2662,  662,  661, 2662,  660,  656, 2661, 2663,
3440      2663, 2663, 2664, 2664, 2664,  655, 2664,  654,  653, 2664,
3441
3442      2671, 2671, 2671, 2679, 2679, 2679, 2663, 2648, 2672, 2672,
3443      2672,  649, 2672,  648,  647, 2672,  646, 2671, 2689, 2689,
3444      2689, 2679, 2689,  645,  644, 2689, 2692, 2692, 2692,  643,
3445      2692,  641,  638, 2692, 2695, 2695, 2695,  637, 2695,  635,
3446      2679, 2695, 2704, 2704, 2704,  633, 2704,  630,  629, 2704,
3447      2807, 2807, 2807, 2816, 2816, 2816,  623, 2816,  621,  619,
3448      2816, 2917, 2917, 2917, 2918, 2918, 2918,  616, 2807,  615,
3449       611, 2816,  610,  609,  607,  606,  605,  604,  603, 2917,
3450       600,  599, 2918, 2921, 2921, 2921, 2921, 2921, 2921, 2921,
3451      2921, 2921, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922,
3452
3453      2922, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923,
3454      2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2925,
3455      2925, 2925, 2925, 2925, 2925, 2925, 2925, 2925, 2926, 2926,
3456      2926, 2926, 2926, 2926, 2926, 2926, 2926, 2927, 2927, 2927,
3457      2927, 2927, 2927, 2927, 2927, 2927, 2928, 2928, 2928, 2928,
3458      2928, 2928, 2928, 2928, 2928, 2929, 2929, 2929, 2929, 2929,
3459      2929, 2929, 2929, 2929, 2930, 2930, 2930, 2930, 2930, 2930,
3460      2930, 2930, 2930, 2931, 2931, 2931, 2931, 2931, 2931, 2931,
3461      2931, 2931, 2932, 2932, 2932, 2932, 2932, 2932, 2932, 2932,
3462      2932, 2933, 2933, 2933, 2933, 2933, 2933, 2933, 2933, 2933,
3463
3464      2934, 2934, 2934, 2934, 2934, 2934, 2934, 2934, 2934, 2935,
3465      2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2936, 2936,
3466      2936, 2936, 2936, 2936, 2936, 2936, 2936, 2937, 2937, 2937,
3467      2937, 2937, 2937, 2937, 2937, 2937, 2938, 2938, 2938, 2938,
3468      2938, 2938, 2938, 2938, 2938, 2939, 2939, 2939, 2939, 2939,
3469      2939, 2939, 2939, 2939, 2940, 2940, 2940, 2940, 2940, 2940,
3470      2940, 2940, 2940, 2941, 2941, 2941, 2941, 2941, 2941, 2941,
3471      2941, 2941, 2942, 2942, 2942, 2942, 2942, 2942, 2942, 2942,
3472      2942, 2943, 2943, 2943, 2943, 2943, 2943, 2943, 2943, 2943,
3473      2944, 2944, 2944, 2944, 2944, 2944, 2944, 2944, 2944, 2945,
3474
3475      2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2946, 2946,
3476      2946, 2946, 2946, 2946, 2946, 2946, 2946, 2947, 2947, 2947,
3477      2947, 2947, 2947, 2947, 2947, 2947, 2948, 2948, 2948, 2948,
3478      2948, 2948, 2948, 2948, 2948, 2949, 2949, 2949, 2949, 2949,
3479      2949, 2949, 2949, 2949, 2950, 2950, 2950, 2950, 2950, 2950,
3480      2950, 2950, 2950, 2951, 2951, 2951, 2951, 2951, 2951, 2951,
3481      2951, 2951, 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952,
3482      2952, 2953, 2953, 2953, 2953, 2953, 2953, 2953, 2953, 2953,
3483      2954, 2954, 2954, 2954, 2954, 2954, 2954, 2954, 2954, 2955,
3484      2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2956, 2956,
3485
3486      2956, 2956, 2956, 2956, 2956, 2956, 2956, 2957, 2957, 2957,
3487      2957, 2957, 2957, 2957, 2957, 2957, 2958, 2958, 2958, 2958,
3488      2958, 2958, 2958, 2958, 2958, 2959, 2959, 2959, 2959, 2959,
3489      2959, 2959, 2959, 2959, 2960, 2960, 2960, 2960, 2960, 2960,
3490      2960, 2960, 2960, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
3491      2961, 2961, 2962, 2962, 2962, 2962, 2962, 2962, 2962, 2962,
3492      2962, 2963, 2963, 2963, 2963, 2963, 2963, 2963, 2963, 2963,
3493      2964, 2964, 2964, 2964, 2964, 2964, 2964, 2964, 2964, 2965,
3494      2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 2966, 2966,
3495      2966, 2966, 2966, 2966, 2966, 2966, 2966, 2967, 2967, 2967,
3496
3497      2967, 2967, 2967, 2967, 2967, 2967, 2968, 2968, 2968, 2968,
3498      2968, 2968, 2968, 2968, 2968, 2969, 2969, 2969, 2969, 2969,
3499      2969, 2969, 2969, 2969, 2970, 2970, 2970, 2970, 2970, 2970,
3500      2970, 2970, 2970, 2971, 2971, 2971, 2971, 2971, 2971, 2971,
3501      2971, 2971, 2972, 2972, 2972, 2972, 2972, 2972, 2972, 2972,
3502      2972, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973,
3503      2974, 2974, 2974,  598,  597,  596, 2974, 2975, 2975, 2975,
3504       590,  589,  587, 2975, 2976, 2976, 2976,  581,  580,  576,
3505      2976, 2977, 2977, 2977,  569,  565,  559, 2977, 2978, 2978,
3506      2978,  555,  551,  547, 2978, 2979, 2979, 2979,  546,  545,
3507
3508       544, 2979, 2980, 2980, 2980,  540,  536,  533, 2980, 2981,
3509      2981, 2981,  532,  531,  527, 2981, 2982, 2982, 2982,  523,
3510       520,  519, 2982, 2983, 2983, 2983,  515,  509,  508, 2983,
3511      2984, 2984, 2984,  504,  500,  496, 2984, 2985, 2985, 2985,
3512       495,  491,  488, 2985, 2986, 2986, 2986,  487,  482,  478,
3513      2986, 2987, 2987, 2987,  470,  469,  468, 2987, 2988, 2988,
3514      2988,  464,  458,  457, 2988, 2989, 2989, 2989,  453,  447,
3515       446, 2989, 2990, 2990, 2990,  445,  444,  443, 2990, 2991,
3516      2991, 2991,  442,  441,  437, 2991, 2992, 2992, 2992,  428,
3517       427,  426, 2992, 2993, 2993, 2993,  424,  420,  416, 2993,
3518
3519      2994, 2994, 2994,  412,  411,  410, 2994, 2995, 2995, 2995,
3520       409,  408,  404, 2995, 2996, 2996, 2996,  398,  397,  393,
3521      2996, 2997, 2997, 2997,  387,  386,  382, 2997, 2998, 2998,
3522      2998, 2998, 2998, 2998, 2998,  375, 2998, 2999, 2999, 2999,
3523       374,  373,  369, 2999, 3000,  362,  361,  360, 3000, 3001,
3524      3001, 3001,  359,  355,  351, 3001, 3002,  346,  338,  337,
3525      3002, 3003, 3003, 3003,  333,  327,  326, 3003, 3004,  325,
3526       321,  312, 3004, 3005, 3005, 3005,  310,  309,  305, 3005,
3527      3006,  302,  300,  299, 3006, 3007, 3007, 3007,  298,  294,
3528       290, 3007, 3008,  287,  283,  280, 3008, 3009, 3009, 3009,
3529
3530       279,  271,  267, 3009, 3010,  263,  262,  261, 3010, 3011,
3531      3011, 3011,  255,  254,  252, 3011, 3012,  249,  237,    0,
3532      3012, 3013, 3013, 3013,    0,    0,    0, 3013, 3014,    0,
3533         0,    0, 3014, 3015, 3015, 3015,    0,    0,    0, 3015,
3534      3016,    0,    0,    0, 3016, 3017, 3017, 3017,    0,    0,
3535         0, 3017, 3018,    0,    0,    0, 3018, 3019, 3019, 3019,
3536         0,    0,    0, 3019, 3020,    0,    0,    0, 3020, 3021,
3537      3021, 3021,    0,    0,    0, 3021, 3022,    0,    0,    0,
3538      3022, 3023, 3023, 3023,    0,    0,    0, 3023, 3024,    0,
3539         0,    0, 3024, 3025, 3025, 3025,    0,    0,    0, 3025,
3540
3541      3026,    0,    0,    0, 3026, 3027, 3027, 3027,    0,    0,
3542         0, 3027, 3028,    0,    0,    0, 3028, 3029, 3029, 3029,
3543         0,    0,    0, 3029, 3030,    0,    0,    0, 3030, 3031,
3544      3031, 3031,    0,    0,    0, 3031, 3032,    0,    0,    0,
3545      3032, 3033, 3033, 3033,    0,    0,    0, 3033, 3034,    0,
3546         0,    0, 3034, 3035, 3035, 3035,    0,    0,    0, 3035,
3547      3036,    0,    0,    0, 3036, 3037, 3037, 3037,    0,    0,
3548         0, 3037, 3038,    0,    0,    0, 3038, 3039, 3039, 3039,
3549         0,    0,    0, 3039, 3040,    0,    0,    0, 3040, 3041,
3550      3041, 3041,    0,    0,    0, 3041, 3042,    0,    0,    0,
3551
3552      3042, 3043, 3043, 3043,    0,    0,    0, 3043, 3044,    0,
3553         0,    0, 3044, 3045, 3045, 3045,    0,    0,    0, 3045,
3554      3046,    0,    0,    0, 3046, 3047, 3047, 3047, 3047, 3047,
3555      3047, 3047, 3047, 3047, 3048,    0,    0,    0,    0, 3048,
3556      3049, 3049, 3049,    0,    0,    0, 3049, 3050, 3050, 3050,
3557      3050,    0,    0, 3050, 3050, 3051, 3051, 3051,    0,    0,
3558         0, 3051, 3052, 3052, 3052, 3052,    0,    0, 3052, 3052,
3559      3053, 3053, 3053,    0,    0,    0, 3053, 3054, 3054, 3054,
3560      3054,    0,    0, 3054, 3054, 3055, 3055, 3055,    0,    0,
3561         0, 3055, 3056, 3056, 3056, 3056,    0,    0, 3056, 3056,
3562
3563      3057, 3057, 3057,    0,    0,    0, 3057, 3058, 3058, 3058,
3564      3058,    0,    0, 3058, 3058, 3059, 3059, 3059,    0,    0,
3565         0, 3059, 3060, 3060, 3060, 3060,    0,    0, 3060, 3060,
3566      3061, 3061, 3061,    0,    0,    0, 3061, 3062, 3062, 3062,
3567      3062,    0,    0, 3062, 3062, 3063, 3063, 3063,    0,    0,
3568         0, 3063, 3064, 3064, 3064, 3064,    0,    0, 3064, 3064,
3569      3065, 3065, 3065,    0,    0,    0, 3065, 3066, 3066, 3066,
3570      3066,    0,    0, 3066, 3066, 3067, 3067, 3067,    0,    0,
3571         0, 3067, 3068, 3068, 3068, 3068,    0,    0, 3068, 3068,
3572      3069, 3069, 3069,    0,    0,    0, 3069, 3070, 3070, 3070,
3573
3574      3070,    0,    0, 3070, 3070, 3071, 3071, 3071,    0,    0,
3575         0, 3071, 3072, 3072, 3072, 3072,    0,    0, 3072, 3072,
3576      3073, 3073, 3073,    0,    0,    0, 3073, 3074, 3074, 3074,
3577      3074,    0,    0, 3074, 3074, 3075, 3075, 3075,    0,    0,
3578         0, 3075, 3076, 3076, 3076, 3076,    0,    0, 3076, 3076,
3579      3077, 3077, 3077,    0,    0,    0, 3077, 3078, 3078, 3078,
3580      3078,    0,    0, 3078, 3078, 3079, 3079, 3079, 3079,    0,
3581      3079,    0, 3079, 3080, 3080, 3080, 3080,    0,    0, 3080,
3582      3080, 3081, 3081, 3081, 3081,    0, 3081,    0, 3081, 3082,
3583      3082, 3082, 3082,    0,    0, 3082, 3082, 3083, 3083, 3083,
3584
3585         0,    0,    0, 3083, 3084, 3084, 3084, 3084,    0,    0,
3586      3084, 3084, 3085, 3085, 3085, 3085,    0, 3085,    0, 3085,
3587      3086, 3086, 3086, 3086,    0,    0, 3086, 3086, 3087, 3087,
3588      3087, 3087,    0, 3087,    0, 3087, 3088, 3088, 3088, 3088,
3589         0,    0, 3088, 3088, 3089, 3089, 3089,    0,    0,    0,
3590      3089, 3090, 3090, 3090, 3090,    0,    0, 3090, 3090, 3091,
3591      3091, 3091,    0,    0,    0, 3091, 3092, 3092, 3092, 3092,
3592         0,    0, 3092, 3092, 3093, 3093, 3093, 3093,    0,    0,
3593      3093, 3093, 3094, 3094, 3094,    0,    0,    0, 3094, 3095,
3594      3095, 3095, 3095,    0,    0, 3095, 3095, 3096, 3096, 3096,
3595
3596      3096, 3096, 3096, 3096, 3096, 3096, 3097,    0, 3097,    0,
3597         0, 3097, 3098, 3098, 3098,    0,    0,    0, 3098, 3099,
3598      3099, 3099, 3099,    0,    0, 3099, 3099, 3100, 3100, 3100,
3599      3100,    0, 3100,    0, 3100, 3101, 3101, 3101, 3101,    0,
3600         0, 3101, 3101, 3102, 3102, 3102, 3102,    0, 3102,    0,
3601      3102, 3103, 3103, 3103, 3103,    0,    0, 3103, 3103, 3104,
3602      3104, 3104,    0,    0,    0, 3104, 3105, 3105, 3105, 3105,
3603         0,    0, 3105, 3105, 3106, 3106, 3106,    0,    0,    0,
3604      3106, 3107, 3107, 3107, 3107,    0,    0, 3107, 3107, 3108,
3605      3108, 3108,    0,    0,    0, 3108, 3109, 3109, 3109, 3109,
3606
3607         0,    0, 3109, 3109, 3110, 3110, 3110,    0,    0,    0,
3608      3110, 3111, 3111, 3111, 3111,    0,    0, 3111, 3111, 3112,
3609      3112, 3112,    0,    0,    0, 3112, 3113, 3113, 3113, 3113,
3610         0,    0, 3113, 3113, 3114, 3114, 3114, 3114,    0, 3114,
3611         0, 3114, 3115, 3115, 3115, 3115,    0,    0, 3115, 3115,
3612      3116, 3116, 3116, 3116,    0, 3116,    0, 3116, 3117, 3117,
3613      3117, 3117,    0,    0, 3117, 3117, 3118, 3118, 3118,    0,
3614         0,    0, 3118, 3119, 3119, 3119, 3119,    0,    0, 3119,
3615      3119, 3120, 3120, 3120,    0,    0,    0, 3120, 3121, 3121,
3616      3121, 3121,    0,    0, 3121, 3121, 3122, 3122, 3122,    0,
3617
3618         0,    0, 3122, 3123, 3123, 3123, 3123,    0,    0, 3123,
3619      3123, 3124, 3124, 3124,    0,    0,    0, 3124, 3125, 3125,
3620      3125, 3125,    0,    0, 3125, 3125, 3126, 3126, 3126,    0,
3621         0,    0, 3126, 3127, 3127, 3127, 3127,    0,    0, 3127,
3622      3127, 3128, 3128, 3128,    0,    0,    0, 3128, 3129, 3129,
3623      3129, 3129,    0,    0, 3129, 3129, 3130, 3130, 3130,    0,
3624         0,    0, 3130, 3131, 3131, 3131, 3131,    0,    0, 3131,
3625      3131, 3132, 3132, 3132,    0,    0,    0, 3132, 3133, 3133,
3626      3133, 3133,    0,    0, 3133, 3133, 3134, 3134, 3134, 3134,
3627         0,    0, 3134, 3134, 3135, 3135, 3135,    0,    0,    0,
3628
3629      3135, 3136, 3136, 3136, 3136,    0,    0, 3136, 3136, 3137,
3630      3137, 3137,    0,    0,    0, 3137, 3138, 3138, 3138, 3138,
3631         0,    0, 3138, 3138, 3139, 3139, 3139,    0,    0,    0,
3632      3139, 3140, 3140, 3140, 3140,    0,    0, 3140, 3140, 3141,
3633      3141, 3141, 3141,    0,    0, 3141, 3141, 3142, 3142, 3142,
3634         0,    0,    0, 3142, 3143, 3143, 3143, 3143,    0,    0,
3635      3143, 3143, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144,
3636      3144, 3145, 3145, 3145, 3145, 3145, 3145, 3145, 3145, 3145,
3637      3146, 3146, 3146,    0,    0,    0, 3146, 3147, 3147, 3147,
3638      3147,    0,    0, 3147, 3147, 3148, 3148, 3148, 3148,    0,
3639
3640         0, 3148, 3148, 3149, 3149, 3149,    0,    0,    0, 3149,
3641      3150, 3150, 3150, 3150,    0,    0, 3150, 3150, 3151, 3151,
3642      3151,    0,    0,    0, 3151, 3152, 3152, 3152, 3152,    0,
3643         0, 3152, 3152, 3153, 3153, 3153,    0,    0,    0, 3153,
3644      3154, 3154, 3154, 3154,    0,    0, 3154, 3154, 3155, 3155,
3645      3155,    0,    0,    0, 3155, 3156, 3156, 3156,    0,    0,
3646         0, 3156, 3157, 3157, 3157, 3157,    0,    0, 3157, 3157,
3647      3158, 3158, 3158,    0,    0,    0, 3158, 3159, 3159, 3159,
3648      3159,    0,    0, 3159, 3159, 3160, 3160, 3160, 3160,    0,
3649         0, 3160, 3160, 3161, 3161, 3161,    0,    0,    0, 3161,
3650
3651      3162, 3162, 3162, 3162,    0,    0, 3162, 3162, 3163, 3163,
3652      3163,    0,    0,    0, 3163, 3164, 3164, 3164, 3164,    0,
3653         0, 3164, 3164, 3165, 3165, 3165,    0,    0,    0, 3165,
3654      3166, 3166, 3166, 3166,    0,    0, 3166, 3166, 3167, 3167,
3655      3167,    0,    0,    0, 3167, 3168, 3168, 3168, 3168,    0,
3656         0, 3168, 3168, 3169, 3169, 3169,    0,    0,    0, 3169,
3657      3170, 3170, 3170, 3170,    0,    0, 3170, 3170, 3171, 3171,
3658      3171,    0,    0,    0, 3171, 3172, 3172, 3172, 3172,    0,
3659         0, 3172, 3172, 3173, 3173, 3173,    0,    0,    0, 3173,
3660      3174, 3174, 3174, 3174,    0,    0, 3174, 3174, 3175, 3175,
3661
3662      3175,    0,    0,    0, 3175, 3176, 3176, 3176, 3176,    0,
3663         0, 3176, 3176, 3177, 3177, 3177,    0,    0,    0, 3177,
3664      3178, 3178, 3178, 3178,    0,    0, 3178, 3178, 3179, 3179,
3665      3179, 3179,    0,    0, 3179, 3179, 3180, 3180, 3180,    0,
3666         0,    0, 3180, 3181, 3181, 3181, 3181,    0,    0, 3181,
3667      3181, 3182, 3182, 3182,    0,    0,    0, 3182, 3183, 3183,
3668      3183, 3183,    0,    0, 3183, 3183, 3184, 3184, 3184, 3184,
3669         0, 3184,    0, 3184, 3185, 3185, 3185, 3185,    0,    0,
3670      3185, 3185, 3186, 3186, 3186, 3186,    0,    0, 3186, 3186,
3671      3187, 3187, 3187, 3187,    0, 3187,    0, 3187, 3188, 3188,
3672
3673      3188, 3188,    0,    0, 3188, 3188, 3189, 3189, 3189, 3189,
3674      3189, 3189, 3189, 3189, 3189, 3190, 3190, 3190, 3190, 3190,
3675      3190, 3190, 3190, 3190, 3191, 3191, 3191,    0,    0,    0,
3676      3191, 3192, 3192, 3192, 3192,    0,    0, 3192, 3192, 3193,
3677      3193, 3193, 3193,    0,    0, 3193, 3193, 3194, 3194, 3194,
3678         0,    0,    0, 3194, 3195, 3195, 3195, 3195,    0,    0,
3679      3195, 3195, 3196, 3196, 3196,    0,    0,    0, 3196, 3197,
3680      3197, 3197, 3197,    0,    0, 3197, 3197, 3198, 3198, 3198,
3681         0,    0,    0, 3198, 3199, 3199, 3199, 3199,    0,    0,
3682      3199, 3199, 3200, 3200, 3200,    0,    0,    0, 3200, 3201,
3683
3684      3201, 3201,    0,    0,    0, 3201, 3202, 3202, 3202, 3202,
3685         0,    0, 3202, 3202, 3203, 3203, 3203,    0,    0,    0,
3686      3203, 3204, 3204, 3204, 3204,    0,    0, 3204, 3204, 3205,
3687      3205, 3205, 3205,    0,    0, 3205, 3205, 3206, 3206, 3206,
3688      3206,    0, 3206,    0, 3206, 3207, 3207, 3207, 3207,    0,
3689         0, 3207, 3207, 3208, 3208, 3208,    0,    0,    0, 3208,
3690      3209, 3209, 3209, 3209,    0,    0, 3209, 3209, 3210, 3210,
3691      3210,    0,    0,    0, 3210, 3211, 3211, 3211, 3211,    0,
3692         0, 3211, 3211, 3212, 3212, 3212,    0,    0,    0, 3212,
3693      3213, 3213, 3213, 3213,    0,    0, 3213, 3213, 3214, 3214,
3694
3695      3214,    0,    0,    0, 3214, 3215, 3215, 3215, 3215,    0,
3696         0, 3215, 3215, 3216, 3216, 3216,    0,    0,    0, 3216,
3697      3217, 3217, 3217, 3217,    0,    0, 3217, 3217, 3218, 3218,
3698      3218,    0,    0,    0, 3218, 3219, 3219, 3219, 3219,    0,
3699         0, 3219, 3219, 3220, 3220, 3220, 3220,    0, 3220,    0,
3700      3220, 3221, 3221, 3221, 3221,    0,    0, 3221, 3221, 3222,
3701      3222, 3222,    0,    0,    0, 3222, 3223, 3223, 3223, 3223,
3702         0,    0, 3223, 3223, 3224, 3224, 3224, 3224,    0,    0,
3703      3224, 3224, 3225, 3225, 3225, 3225,    0, 3225,    0, 3225,
3704      3226, 3226, 3226, 3226,    0,    0, 3226, 3226, 3227, 3227,
3705
3706      3227,    0,    0,    0, 3227, 3228, 3228, 3228, 3228,    0,
3707         0, 3228, 3228, 3229, 3229, 3229, 3229,    0,    0, 3229,
3708      3229, 3230, 3230, 3230, 3230,    0,    0, 3230, 3230, 3231,
3709      3231, 3231, 3231,    0,    0, 3231, 3231, 3232, 3232, 3232,
3710      3232, 3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233, 3233,
3711      3233, 3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234,    0,
3712      3234,    0, 3234, 3235, 3235, 3235, 3235,    0,    0, 3235,
3713      3235, 3236, 3236, 3236, 3236,    0,    0, 3236, 3236, 3237,
3714      3237, 3237,    0,    0,    0, 3237, 3238, 3238, 3238, 3238,
3715         0,    0, 3238, 3238, 3239, 3239, 3239,    0,    0,    0,
3716
3717      3239, 3240, 3240, 3240, 3240,    0,    0, 3240, 3240, 3241,
3718      3241, 3241, 3241,    0, 3241,    0, 3241, 3242, 3242, 3242,
3719      3242,    0,    0, 3242, 3242, 3243, 3243, 3243, 3243,    0,
3720      3243,    0, 3243, 3244, 3244, 3244, 3244,    0, 3244,    0,
3721      3244, 3245, 3245, 3245, 3245,    0,    0, 3245, 3245, 3246,
3722      3246, 3246, 3246,    0, 3246,    0, 3246, 3247, 3247, 3247,
3723      3247,    0,    0, 3247, 3247, 3248, 3248, 3248, 3248,    0,
3724         0, 3248, 3248, 3249, 3249, 3249, 3249,    0,    0, 3249,
3725      3249, 3250, 3250, 3250,    0,    0,    0, 3250, 3251, 3251,
3726      3251,    0,    0,    0, 3251, 3252, 3252, 3252, 3252,    0,
3727
3728         0, 3252, 3252, 3253, 3253, 3253,    0,    0,    0, 3253,
3729      3254, 3254, 3254,    0,    0,    0, 3254, 3255, 3255, 3255,
3730      3255,    0,    0, 3255, 3255, 3256, 3256, 3256,    0,    0,
3731         0, 3256, 3257, 3257, 3257,    0,    0,    0, 3257, 3258,
3732      3258, 3258, 3258,    0,    0, 3258, 3258, 3259, 3259, 3259,
3733         0,    0,    0, 3259, 3260, 3260, 3260, 3260,    0,    0,
3734      3260, 3260, 3261, 3261, 3261,    0,    0,    0, 3261, 3262,
3735      3262, 3262, 3262,    0,    0, 3262, 3262, 3263, 3263, 3263,
3736      3263,    0,    0, 3263, 3263, 3264, 3264, 3264, 3264,    0,
3737         0, 3264, 3264, 3265, 3265, 3265,    0,    0,    0, 3265,
3738
3739      3266, 3266, 3266, 3266,    0,    0, 3266, 3266, 3267, 3267,
3740      3267, 3267,    0,    0, 3267, 3267, 3268, 3268, 3268, 3268,
3741         0,    0, 3268, 3268, 3269, 3269, 3269, 3269, 3269, 3269,
3742      3269, 3269, 3269, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
3743      3270, 3270, 3271, 3271, 3271, 3271,    0,    0, 3271, 3271,
3744      3272, 3272, 3272, 3272,    0,    0, 3272, 3272, 3273, 3273,
3745      3273,    0,    0,    0, 3273, 3274, 3274, 3274,    0,    0,
3746         0, 3274, 3275, 3275, 3275, 3275,    0,    0, 3275, 3275,
3747      3276, 3276, 3276, 3276,    0,    0, 3276, 3276, 3277, 3277,
3748      3277, 3277,    0,    0, 3277, 3277, 3278, 3278, 3278, 3278,
3749
3750         0,    0, 3278, 3278, 3279, 3279, 3279, 3279,    0,    0,
3751      3279, 3279, 3280, 3280, 3280,    0,    0,    0, 3280, 3281,
3752      3281, 3281,    0,    0,    0, 3281, 3282, 3282, 3282, 3282,
3753         0,    0, 3282, 3282, 3283, 3283, 3283,    0,    0,    0,
3754      3283, 3284, 3284, 3284,    0,    0,    0, 3284, 3285, 3285,
3755      3285, 3285,    0,    0, 3285, 3285, 3286, 3286, 3286,    0,
3756         0,    0, 3286, 3287, 3287, 3287,    0,    0,    0, 3287,
3757      3288, 3288, 3288,    0,    0,    0, 3288, 3289, 3289, 3289,
3758      3289,    0,    0, 3289, 3289, 3290, 3290, 3290,    0,    0,
3759         0, 3290, 3291, 3291, 3291, 3291,    0,    0, 3291, 3291,
3760
3761      3292, 3292, 3292, 3292,    0,    0, 3292, 3292, 3293, 3293,
3762      3293, 3293,    0,    0, 3293, 3293, 3294, 3294, 3294, 3294,
3763         0, 3294,    0, 3294, 3295, 3295, 3295, 3295,    0,    0,
3764      3295, 3295, 3296, 3296, 3296, 3296,    0,    0, 3296, 3296,
3765      3297, 3297, 3297, 3297,    0,    0, 3297, 3297, 3298, 3298,
3766      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3299, 3299, 3299,
3767      3299, 3299, 3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300,
3768         0,    0, 3300, 3300, 3301, 3301, 3301, 3301,    0,    0,
3769      3301, 3301, 3302, 3302, 3302,    0,    0,    0, 3302, 3303,
3770      3303, 3303, 3303,    0, 3303,    0, 3303, 3304, 3304, 3304,
3771
3772      3304,    0,    0, 3304, 3304, 3305, 3305, 3305, 3305,    0,
3773         0, 3305, 3305, 3306, 3306, 3306, 3306,    0,    0, 3306,
3774      3306, 3307, 3307, 3307, 3307,    0,    0, 3307, 3307, 3308,
3775      3308, 3308,    0,    0,    0, 3308, 3309, 3309, 3309,    0,
3776         0,    0, 3309, 3310, 3310, 3310, 3310,    0,    0, 3310,
3777      3310, 3311, 3311, 3311,    0,    0,    0, 3311, 3312, 3312,
3778      3312,    0,    0,    0, 3312, 3313, 3313, 3313, 3313, 3313,
3779      3313, 3313, 3313, 3313, 3314, 3314, 3314, 3314, 3314, 3314,
3780      3314, 3314, 3314, 3315, 3315, 3315, 3315, 3315, 3315, 3315,
3781      3315, 3315, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316,
3782
3783      3316, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317,
3784      3318, 3318, 3318, 3318, 3318, 3318, 3318, 3318, 3318, 2920,
3785      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3786      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3787      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3788      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3789      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3790      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3791      2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
3792      2920, 2920, 2920, 2920
3793
3794     } ;
3795
3796 /* Table of booleans, true if rule could match eol. */
3797 static yyconst flex_int32_t yy_rule_can_match_eol[491] =
3798     {   0,
3799 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3800     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3801     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3802     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3803     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3804     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3805     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3806     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3807     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3808     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3809     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3810     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3811     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3812     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3813     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
3814     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3815     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3816     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3817     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3818     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3819     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
3820     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
3821     0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3822     1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
3823     1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3824
3825 static yy_state_type yy_last_accepting_state;
3826 static char *yy_last_accepting_cpos;
3827
3828 extern int surf_parse__flex_debug;
3829 int surf_parse__flex_debug = 0;
3830
3831 /* The intent behind this definition is that it'll catch
3832  * any uses of REJECT which flex missed.
3833  */
3834 #define REJECT reject_used_but_not_detected
3835 #define yymore() yymore_used_but_not_detected
3836 #define YY_MORE_ADJ 0
3837 #define YY_RESTORE_YY_MORE_OFFSET
3838 char *surf_parse_text;
3839 /* Validating XML processor for src/surf/simgrid.dtd.
3840  *
3841  * This program was generated with the FleXML XML processor generator.
3842  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3843  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3844  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3845  * 
3846  * There are two, intertwined parts to this program, part A and part B.
3847  *
3848  * Part A
3849  * ------
3850  * 
3851  * Some parts, here collectively called "Part A", are found in the 
3852  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3853  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3854  *
3855  * You can redistribute, use, perform, display and/or modify "Part A"
3856  * provided the following two conditions hold:
3857  *
3858  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3859  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3860  *    FITNESS FOR A PARTICULAR PURPOSE.
3861  *
3862  * 2. The program distribution conditions do not in any way affect the
3863  *    distribution conditions of the FleXML system used to generate this
3864  *    file or any version of FleXML derived from that system.
3865  *
3866  * Notice that these are explicit rights granted to you for files
3867  * generated by the FleXML system.  For your rights in connection with
3868  * the FleXML system itself please consult the GNU General Public License.
3869  * 
3870  * Part B
3871  * ------
3872  * 
3873  * The other parts, here collectively called "Part B", and which came 
3874  * from the DTD used by FleXML to generate this program, can be 
3875  * distributed (or not, as the case may be) under the terms of whoever
3876  * wrote them, provided these terms respect and obey the two conditions 
3877  * above under the heading "Part A".
3878  *
3879  * The author of and contributors to FleXML specifically disclaim
3880  * any copyright interest in "Part B", unless "Part B" was written 
3881  * by the author of or contributors to FleXML.
3882  * 
3883  */
3884
3885 /* Version strings. */
3886 const char rcs_surfxml_flexml_skeleton[] =
3887  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3888 const char rcs_surfxml_flexml[] =
3889  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3890
3891 /* ANSI headers. */
3892 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3893 #include <stdio.h>
3894 #include <string.h>
3895 #include <assert.h>
3896 #include <stdarg.h>
3897 #include <ctype.h>
3898      
3899 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3900 # ifndef __STRICT_ANSI__
3901 #  include <io.h>
3902 #  include <process.h>
3903 # endif
3904 #else
3905 # include <unistd.h>
3906 #endif
3907      
3908 #ifndef FLEXML_INDEXSTACKSIZE
3909 #define FLEXML_INDEXSTACKSIZE 1000
3910 #endif
3911
3912 /* Generated definitions. */
3913 #define FLEXML_yylineno
3914 #ifndef FLEXML_BUFFERSTACKSIZE
3915 #define FLEXML_BUFFERSTACKSIZE 1000000
3916 #endif
3917 #define FLEXML_NEED_BUFFERLIT
3918
3919 /* XML processor api. */
3920 /* FleXML-provided data. */
3921 int surfxml_pcdata_ix;
3922 extern char *surfxml_bufferstack;
3923 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3924 AT_surfxml_mount_name AX_surfxml_mount_name;
3925 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3926 short int surfxml_mount_name_isset;
3927 AT_surfxml_random_generator AX_surfxml_random_generator;
3928 #define A_surfxml_random_generator AX_surfxml_random_generator
3929 short int surfxml_random_generator_isset;
3930 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3931 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3932 short int surfxml_ASroute_gw_dst_isset;
3933 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3934 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3935 short int surfxml_trace_connect_element_isset;
3936 AT_surfxml_prop_id AX_surfxml_prop_id;
3937 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3938 short int surfxml_prop_id_isset;
3939 AT_surfxml_host_id AX_surfxml_host_id;
3940 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3941 short int surfxml_host_id_isset;
3942 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3943 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3944 short int surfxml_ASroute_symmetrical_isset;
3945 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3946 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3947 short int surfxml_peer_lat_isset;
3948 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3949 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3950 short int surfxml_link_latency_file_isset;
3951 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3952 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3953 short int surfxml_peer_availability_file_isset;
3954 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3955 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3956 short int surfxml_link_ctn_direction_isset;
3957 AT_surfxml_host_state AX_surfxml_host_state;
3958 #define A_surfxml_host_state AX_surfxml_host_state
3959 short int surfxml_host_state_isset;
3960 AT_surfxml_AS_id AX_surfxml_AS_id;
3961 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3962 short int surfxml_AS_id_isset;
3963 AT_surfxml_host_power AX_surfxml_host_power;
3964 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3965 short int surfxml_host_power_isset;
3966 AT_surfxml_router_id AX_surfxml_router_id;
3967 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3968 short int surfxml_router_id_isset;
3969 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3970 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3971 short int surfxml_storage_type_id_isset;
3972 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3973 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3974 short int surfxml_process_start_time_isset;
3975 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3976 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3977 short int surfxml_cluster_suffix_isset;
3978 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
3979 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
3980 short int surfxml_bypassASroute_dst_isset;
3981 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3982 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3983 short int surfxml_ASroute_src_isset;
3984 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3985 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3986 short int surfxml_cluster_prefix_isset;
3987 AT_surfxml_trace_file AX_surfxml_trace_file;
3988 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3989 short int surfxml_trace_file_isset;
3990 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3991 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3992 short int surfxml_link_sharing_policy_isset;
3993 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3994 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3995 short int surfxml_storage_typeId_isset;
3996 AT_surfxml_random_min AX_surfxml_random_min;
3997 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3998 short int surfxml_random_min_isset;
3999 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4000 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4001 short int surfxml_link_ctn_id_isset;
4002 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4003 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4004 short int surfxml_peer_bw_out_isset;
4005 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4006 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4007 short int surfxml_cluster_availability_file_isset;
4008 AT_surfxml_storage_content AX_surfxml_storage_content;
4009 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4010 short int surfxml_storage_content_isset;
4011 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4012 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4013 short int surfxml_process_kill_time_isset;
4014 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4015 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4016 short int surfxml_cluster_bb_bw_isset;
4017 AT_surfxml_argument_value AX_surfxml_argument_value;
4018 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4019 short int surfxml_argument_value_isset;
4020 AT_surfxml_link_state AX_surfxml_link_state;
4021 #define A_surfxml_link_state AX_surfxml_link_state
4022 short int surfxml_link_state_isset;
4023 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4024 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4025 short int surfxml_ASroute_gw_src_isset;
4026 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4027 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4028 short int surfxml_AS_routing_isset;
4029 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4030 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4031 short int surfxml_link_bandwidth_isset;
4032 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4033 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4034 short int surfxml_cluster_id_isset;
4035 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4036 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4037 short int surfxml_peer_bw_in_isset;
4038 AT_surfxml_random_mean AX_surfxml_random_mean;
4039 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4040 short int surfxml_random_mean_isset;
4041 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4042 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4043 short int surfxml_storage_type_size_isset;
4044 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4045 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4046 short int surfxml_cluster_bb_lat_isset;
4047 AT_surfxml_link_latency AX_surfxml_link_latency;
4048 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4049 short int surfxml_link_latency_isset;
4050 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4051 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4052 short int surfxml_trace_connect_kind_isset;
4053 AT_surfxml_random_seed AX_surfxml_random_seed;
4054 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4055 short int surfxml_random_seed_isset;
4056 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4057 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4058 short int surfxml_cluster_state_file_isset;
4059 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4060 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4061 short int surfxml_link_bandwidth_file_isset;
4062 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4063 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4064 short int surfxml_storage_type_content_isset;
4065 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4066 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4067 short int surfxml_route_symmetrical_isset;
4068 AT_surfxml_random_id AX_surfxml_random_id;
4069 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4070 short int surfxml_random_id_isset;
4071 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4072 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4073 short int surfxml_mstorage_name_isset;
4074 AT_surfxml_random_max AX_surfxml_random_max;
4075 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4076 short int surfxml_random_max_isset;
4077 AT_surfxml_link_id AX_surfxml_link_id;
4078 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4079 short int surfxml_link_id_isset;
4080 AT_surfxml_process_host AX_surfxml_process_host;
4081 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4082 short int surfxml_process_host_isset;
4083 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4084 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4085 short int surfxml_host_availability_file_isset;
4086 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4087 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4088 short int surfxml_cluster_lat_isset;
4089 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4090 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4091 short int surfxml_trace_periodicity_isset;
4092 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4093 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4094 short int surfxml_cluster_bb_sharing_policy_isset;
4095 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4096 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4097 short int surfxml_router_coordinates_isset;
4098 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4099 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4100 short int surfxml_peer_coordinates_isset;
4101 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4102 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4103 short int surfxml_peer_state_file_isset;
4104 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4105 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4106 short int surfxml_bypassASroute_src_isset;
4107 AT_surfxml_prop_value AX_surfxml_prop_value;
4108 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4109 short int surfxml_prop_value_isset;
4110 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4111 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4112 short int surfxml_mstorage_typeId_isset;
4113 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4114 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4115 short int surfxml_ASroute_dst_isset;
4116 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4117 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4118 short int surfxml_link_state_file_isset;
4119 AT_surfxml_random_radical AX_surfxml_random_radical;
4120 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4121 short int surfxml_random_radical_isset;
4122 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4123 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4124 short int surfxml_bypassASroute_gw_src_isset;
4125 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4126 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4127 short int surfxml_trace_connect_trace_isset;
4128 AT_surfxml_mount_id AX_surfxml_mount_id;
4129 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4130 short int surfxml_mount_id_isset;
4131 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4132 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4133 short int surfxml_cluster_power_isset;
4134 AT_surfxml_process_function AX_surfxml_process_function;
4135 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4136 short int surfxml_process_function_isset;
4137 AT_surfxml_peer_id AX_surfxml_peer_id;
4138 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4139 short int surfxml_peer_id_isset;
4140 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4141 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4142 short int surfxml_cluster_router_id_isset;
4143 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4144 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4145 short int surfxml_cluster_sharing_policy_isset;
4146 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4147 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4148 short int surfxml_bypassRoute_dst_isset;
4149 AT_surfxml_host_core AX_surfxml_host_core;
4150 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4151 short int surfxml_host_core_isset;
4152 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4153 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4154 short int surfxml_storage_type_model_isset;
4155 AT_surfxml_host_availability AX_surfxml_host_availability;
4156 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4157 short int surfxml_host_availability_isset;
4158 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4159 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4160 short int surfxml_bypassRoute_src_isset;
4161 AT_surfxml_route_src AX_surfxml_route_src;
4162 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4163 short int surfxml_route_src_isset;
4164 AT_surfxml_storage_id AX_surfxml_storage_id;
4165 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4166 short int surfxml_storage_id_isset;
4167 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4168 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4169 short int surfxml_host_coordinates_isset;
4170 AT_surfxml_trace_id AX_surfxml_trace_id;
4171 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4172 short int surfxml_trace_id_isset;
4173 AT_surfxml_peer_power AX_surfxml_peer_power;
4174 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4175 short int surfxml_peer_power_isset;
4176 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4177 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4178 short int surfxml_cluster_radical_isset;
4179 AT_surfxml_config_id AX_surfxml_config_id;
4180 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4181 short int surfxml_config_id_isset;
4182 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4183 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4184 short int surfxml_bypassASroute_gw_dst_isset;
4185 AT_surfxml_include_file AX_surfxml_include_file;
4186 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4187 short int surfxml_include_file_isset;
4188 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4189 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4190 short int surfxml_random_std_deviation_isset;
4191 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4192 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4193 short int surfxml_cluster_core_isset;
4194 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4195 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4196 short int surfxml_host_state_file_isset;
4197 AT_surfxml_route_dst AX_surfxml_route_dst;
4198 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4199 short int surfxml_route_dst_isset;
4200 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4201 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4202 short int surfxml_cluster_bw_isset;
4203 AT_surfxml_platform_version AX_surfxml_platform_version;
4204 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4205 short int surfxml_platform_version_isset;
4206
4207 /* XML state. */
4208 #ifdef FLEX_DEBUG
4209 # define ENTER(state)   debug_enter(state,#state)
4210 # define LEAVE          debug_leave()
4211 # define SET(state)     debug_set(state,#state)
4212   static void debug_enter(int, const char*);
4213   static void debug_leave(void);
4214   static void debug_set(int, const char*);
4215 #else
4216 # define ENTER(state)   (yy_push_state(state))
4217 # define LEAVE          (yy_pop_state())
4218 # define SET(state)     BEGIN(state)
4219 #endif
4220
4221 /* Generic actions. */
4222 #define SKIP    /*skip*/
4223 #define SUCCEED        CLEANUP; return 0
4224
4225 #define FAIL    return fail
4226 static int fail(const char*, ...);
4227
4228 enum {flexml_max_err_msg_size = 512};
4229 static char flexml_err_msg[flexml_max_err_msg_size];
4230 const char * surfxml_parse_err_msg()
4231 {
4232     return flexml_err_msg;
4233 }
4234 static void reset_surfxml_parse_err_msg()
4235 {
4236     flexml_err_msg[0] = '\0';
4237 }
4238
4239 /* Cleanup */
4240 static void cleanup(void);
4241 #define CLEANUP  cleanup()
4242
4243 /* Text buffer stack handling. */
4244 char *surfxml_bufferstack = NULL;
4245 static int blimit = FLEXML_BUFFERSTACKSIZE;
4246 static int bnext = 1;
4247
4248 static int *indexstack = NULL;
4249 static int ilimit = FLEXML_INDEXSTACKSIZE;
4250 static int inext = 1;
4251
4252 #define BUFFERSET(P)  (P = bnext)
4253 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4254 #define BUFFERDONE    (BUFFERPUTC('\0'))
4255
4256 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4257
4258 /* after this is called, there are at least 2 slots left in the stack */
4259 static int ck_blimit()
4260 {
4261      if (bnext >= blimit) {
4262          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4263          {
4264              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4265              assert(temp);
4266              surfxml_bufferstack = temp;
4267          }
4268      }
4269      return 0;
4270 }
4271
4272 /* after this is called, there are at least 2 slots left in the stack */
4273 static int ck_ilimit()
4274 {
4275      if (inext >= ilimit) {
4276          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4277          {
4278              int *temp = (int *) realloc(indexstack, ilimit);
4279              assert(temp);
4280              indexstack = temp;
4281          }
4282      }
4283      return 0;
4284 }
4285
4286 #ifdef FLEXML_NEED_BUFFERLIT
4287 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4288 {
4289   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4290   assert(s <= e); BUFFERSET(*pp);
4291   while (++s<e) {
4292     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4293     else BUFFERPUTC(*s);
4294   }
4295   BUFFERDONE;
4296 }
4297 #endif
4298
4299 static void pushbuffer(int p)
4300 {
4301     ck_ilimit();
4302     indexstack[inext++] = p;
4303     indexstack[inext++] = bnext;    
4304 }
4305
4306 static int popbuffer(void)
4307 {
4308     assert(inext >= 2);
4309     bnext = indexstack[--inext];
4310     return indexstack[--inext];
4311 }
4312
4313 /* General internal entities are `unput' back onto the input stream... */
4314 #define ENTITYTEXT(T) \
4315   { char *s = (T), *e = s+strlen(s);\
4316     while (--e >= s) { unput(*e); }}
4317
4318 /* Flex standard options. */
4319 #define YY_NO_INPUT 1
4320 /* Flex user-requested options. */
4321 /* XML character classes (currently restricted to ASCII). */
4322 /* "Common syntactic structures." */
4323 /* "Names and Tokens." */
4324 /* Miscellaneous. */
4325 /* Parser states (flex `exclusive start conditions'):
4326  *
4327  * PROLOG       the XML prolog of the document before <?xml...>
4328  * DOCTYPE      the XML prolog of the document after <?xml...>
4329  * EPILOG       after the root element
4330  * INCOMMENT    inside an XML comment <!--....-->
4331  * INPI         inside an XML PI <?...?>
4332  * VALUE1       inside a '...'-delimited literal
4333  * VALUE2       inside a "..."-delimited literal
4334  * CDATA        inside a <![CDATA[...] ]> section.
4335  * ROOT_<tag>   expect root element <tag>
4336  * AL_<tag>     inside the attribute list for <tag>
4337  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4338  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4339  */
4340
4341 /* State names. */
4342 const char* *surfxml_statenames=NULL;
4343
4344 #define INITIAL 0
4345 #define PROLOG 1
4346 #define DOCTYPE 2
4347 #define EPILOG 3
4348 #define INCOMMENT 4
4349 #define INPI 5
4350 #define VALUE1 6
4351 #define VALUE2 7
4352 #define CDATA 8
4353 #define ROOT_surfxml_platform 9
4354 #define AL_surfxml_platform 10
4355 #define S_surfxml_platform 11
4356 #define S_surfxml_platform_1 12
4357 #define S_surfxml_platform_2 13
4358 #define S_surfxml_platform_3 14
4359 #define S_surfxml_platform_4 15
4360 #define S_surfxml_platform_5 16
4361 #define S_surfxml_platform_6 17
4362 #define S_surfxml_platform_7 18
4363 #define S_surfxml_platform_8 19
4364 #define E_surfxml_platform 20
4365 #define AL_surfxml_include 21
4366 #define S_surfxml_include 22
4367 #define S_surfxml_include_1 23
4368 #define S_surfxml_include_2 24
4369 #define E_surfxml_include 25
4370 #define AL_surfxml_trace 26
4371 #define IN_trace 27
4372 #define AL_surfxml_random 28
4373 #define S_surfxml_random 29
4374 #define S_surfxml_random_1 30
4375 #define S_surfxml_random_2 31
4376 #define E_surfxml_random 32
4377 #define AL_surfxml_trace_connect 33
4378 #define E_surfxml_trace_connect 34
4379 #define AL_surfxml_AS 35
4380 #define S_surfxml_AS 36
4381 #define S_surfxml_AS_1 37
4382 #define S_surfxml_AS_2 38
4383 #define S_surfxml_AS_3 39
4384 #define S_surfxml_AS_4 40
4385 #define S_surfxml_AS_5 41
4386 #define S_surfxml_AS_6 42
4387 #define S_surfxml_AS_7 43
4388 #define S_surfxml_AS_8 44
4389 #define S_surfxml_AS_9 45
4390 #define S_surfxml_AS_10 46
4391 #define S_surfxml_AS_11 47
4392 #define S_surfxml_AS_12 48
4393 #define S_surfxml_AS_13 49
4394 #define E_surfxml_AS 50
4395 #define AL_surfxml_storage_type 51
4396 #define S_surfxml_storage_type 52
4397 #define S_surfxml_storage_type_1 53
4398 #define S_surfxml_storage_type_2 54
4399 #define E_surfxml_storage_type 55
4400 #define AL_surfxml_storage 56
4401 #define S_surfxml_storage 57
4402 #define S_surfxml_storage_1 58
4403 #define S_surfxml_storage_2 59
4404 #define E_surfxml_storage 60
4405 #define AL_surfxml_mount 61
4406 #define E_surfxml_mount 62
4407 #define AL_surfxml_mstorage 63
4408 #define E_surfxml_mstorage 64
4409 #define AL_surfxml_host 65
4410 #define S_surfxml_host 66
4411 #define S_surfxml_host_1 67
4412 #define S_surfxml_host_2 68
4413 #define E_surfxml_host 69
4414 #define AL_surfxml_cluster 70
4415 #define E_surfxml_cluster 71
4416 #define AL_surfxml_peer 72
4417 #define E_surfxml_peer 73
4418 #define AL_surfxml_router 74
4419 #define E_surfxml_router 75
4420 #define AL_surfxml_link 76
4421 #define S_surfxml_link 77
4422 #define S_surfxml_link_1 78
4423 #define S_surfxml_link_2 79
4424 #define E_surfxml_link 80
4425 #define AL_surfxml_route 81
4426 #define S_surfxml_route 82
4427 #define S_surfxml_route_1 83
4428 #define S_surfxml_route_2 84
4429 #define E_surfxml_route 85
4430 #define AL_surfxml_ASroute 86
4431 #define S_surfxml_ASroute 87
4432 #define S_surfxml_ASroute_1 88
4433 #define S_surfxml_ASroute_2 89
4434 #define E_surfxml_ASroute 90
4435 #define AL_surfxml_link_ctn 91
4436 #define E_surfxml_link_ctn 92
4437 #define AL_surfxml_bypassRoute 93
4438 #define S_surfxml_bypassRoute 94
4439 #define S_surfxml_bypassRoute_1 95
4440 #define S_surfxml_bypassRoute_2 96
4441 #define E_surfxml_bypassRoute 97
4442 #define AL_surfxml_bypassASroute 98
4443 #define S_surfxml_bypassASroute 99
4444 #define S_surfxml_bypassASroute_1 100
4445 #define S_surfxml_bypassASroute_2 101
4446 #define E_surfxml_bypassASroute 102
4447 #define AL_surfxml_process 103
4448 #define S_surfxml_process 104
4449 #define S_surfxml_process_1 105
4450 #define S_surfxml_process_2 106
4451 #define E_surfxml_process 107
4452 #define AL_surfxml_argument 108
4453 #define E_surfxml_argument 109
4454 #define AL_surfxml_config 110
4455 #define S_surfxml_config 111
4456 #define S_surfxml_config_1 112
4457 #define S_surfxml_config_2 113
4458 #define E_surfxml_config 114
4459 #define AL_surfxml_prop 115
4460 #define E_surfxml_prop 116
4461 #define IMPOSSIBLE 117
4462
4463 #ifndef YY_NO_UNISTD_H
4464 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4465  * down here because we want the user's section 1 to have been scanned first.
4466  * The user has a chance to override it with an option.
4467  */
4468 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4469 #  ifndef __STRICT_ANSI__
4470 #    include <io.h>
4471 #    include <process.h>
4472 #  endif
4473 #else
4474 #  include <unistd.h>
4475 #endif
4476 #endif
4477
4478 #ifndef YY_EXTRA_TYPE
4479 #define YY_EXTRA_TYPE void *
4480 #endif
4481
4482 static int yy_init_globals (void );
4483
4484 /* Accessor methods to globals.
4485    These are made visible to non-reentrant scanners for convenience. */
4486
4487 int surf_parse_lex_destroy (void );
4488
4489 int surf_parse_get_debug (void );
4490
4491 void surf_parse_set_debug (int debug_flag  );
4492
4493 YY_EXTRA_TYPE surf_parse_get_extra (void );
4494
4495 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4496
4497 FILE *surf_parse_get_in (void );
4498
4499 void surf_parse_set_in  (FILE * in_str  );
4500
4501 FILE *surf_parse_get_out (void );
4502
4503 void surf_parse_set_out  (FILE * out_str  );
4504
4505 int surf_parse_get_leng (void );
4506
4507 char *surf_parse_get_text (void );
4508
4509 int surf_parse_get_lineno (void );
4510
4511 void surf_parse_set_lineno (int line_number  );
4512
4513 /* Macros after this point can all be overridden by user definitions in
4514  * section 1.
4515  */
4516
4517 #ifndef YY_SKIP_YYWRAP
4518 #ifdef __cplusplus
4519 extern "C" int surf_parse_wrap (void );
4520 #else
4521 extern int surf_parse_wrap (void );
4522 #endif
4523 #endif
4524
4525 #ifndef yytext_ptr
4526 static void yy_flex_strncpy (char *,yyconst char *,int );
4527 #endif
4528
4529 #ifdef YY_NEED_STRLEN
4530 static int yy_flex_strlen (yyconst char * );
4531 #endif
4532
4533 #ifndef YY_NO_INPUT
4534
4535 #ifdef __cplusplus
4536 static int yyinput (void );
4537 #else
4538 static int input (void );
4539 #endif
4540
4541 #endif
4542
4543         static int yy_start_stack_ptr = 0;
4544         static int yy_start_stack_depth = 0;
4545         static int *yy_start_stack = NULL;
4546     
4547     static void yy_push_state (int new_state );
4548     
4549     static void yy_pop_state (void );
4550     
4551 /* Amount of stuff to slurp up with each read. */
4552 #ifndef YY_READ_BUF_SIZE
4553 #ifdef __ia64__
4554 /* On IA-64, the buffer size is 16k, not 8k */
4555 #define YY_READ_BUF_SIZE 16384
4556 #else
4557 #define YY_READ_BUF_SIZE 8192
4558 #endif /* __ia64__ */
4559 #endif
4560
4561 /* Copy whatever the last rule matched to the standard output. */
4562 #ifndef ECHO
4563 /* This used to be an fputs(), but since the string might contain NUL's,
4564  * we now use fwrite().
4565  */
4566 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4567 #endif
4568
4569 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4570  * is returned in "result".
4571  */
4572 #ifndef YY_INPUT
4573 #define YY_INPUT(buf,result,max_size) \
4574         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4575                 { \
4576                 int c = '*'; \
4577                 size_t n; \
4578                 for ( n = 0; n < max_size && \
4579                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4580                         buf[n] = (char) c; \
4581                 if ( c == '\n' ) \
4582                         buf[n++] = (char) c; \
4583                 if ( c == EOF && ferror( surf_parse_in ) ) \
4584                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4585                 result = n; \
4586                 } \
4587         else \
4588                 { \
4589                 errno=0; \
4590                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4591                         { \
4592                         if( errno != EINTR) \
4593                                 { \
4594                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4595                                 break; \
4596                                 } \
4597                         errno=0; \
4598                         clearerr(surf_parse_in); \
4599                         } \
4600                 }\
4601 \
4602
4603 #endif
4604
4605 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4606  * we don't want an extra ';' after the "return" because that will cause
4607  * some compilers to complain about unreachable statements.
4608  */
4609 #ifndef yyterminate
4610 #define yyterminate() return YY_NULL
4611 #endif
4612
4613 /* Number of entries by which start-condition stack grows. */
4614 #ifndef YY_START_STACK_INCR
4615 #define YY_START_STACK_INCR 25
4616 #endif
4617
4618 /* Report a fatal error. */
4619 #ifndef YY_FATAL_ERROR
4620 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4621 #endif
4622
4623 /* end tables serialization structures and prototypes */
4624
4625 /* Default declaration of generated scanner - a define so the user can
4626  * easily add parameters.
4627  */
4628 #ifndef YY_DECL
4629 #define YY_DECL_IS_OURS 1
4630
4631 extern int surf_parse_lex (void);
4632
4633 #define YY_DECL int surf_parse_lex (void)
4634 #endif /* !YY_DECL */
4635
4636 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4637  * have been set up.
4638  */
4639 #ifndef YY_USER_ACTION
4640 #define YY_USER_ACTION
4641 #endif
4642
4643 /* Code executed at the end of each rule. */
4644 #ifndef YY_BREAK
4645 #define YY_BREAK break;
4646 #endif
4647
4648 #define YY_RULE_SETUP \
4649         YY_USER_ACTION
4650
4651 /** The main scanner function which does all the work.
4652  */
4653 YY_DECL
4654 {
4655         register yy_state_type yy_current_state;
4656         register char *yy_cp, *yy_bp;
4657         register int yy_act;
4658     
4659  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4660  SET(PROLOG);
4661  reset_surfxml_parse_err_msg();
4662  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4663  assert(surfxml_bufferstack);
4664  #ifdef FLEX_DEBUG
4665  {
4666      int i;
4667      for (i = 0; i < blimit; i++) {
4668          surfxml_bufferstack[i] = '\377';
4669      }
4670  }
4671  #endif
4672  surfxml_bufferstack[0] = '\0';
4673  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4674  assert(indexstack);
4675  indexstack[0] = 0;
4676
4677   /* FleXML_init */
4678   bnext = inext = 1;
4679   surfxml_bufferliteral('\0', &bnext, "0.0");
4680   surfxml_bufferliteral('\0', &bnext, "2147483647");
4681   surfxml_bufferliteral('\0', &bnext, "1");
4682   surfxml_bufferliteral('\0', &bnext, "1.0");
4683   surfxml_bufferliteral('\0', &bnext, "1");
4684   surfxml_bufferliteral('\0', &bnext, "0.0");
4685   surfxml_bufferliteral('\0', &bnext, "-1.0");
4686   surfxml_bufferliteral('\0', &bnext, "-1.0");
4687   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4688   surfxml_statenames[PROLOG] = NULL;
4689   surfxml_statenames[DOCTYPE] = NULL;
4690   surfxml_statenames[EPILOG] = NULL;
4691   surfxml_statenames[INCOMMENT] = NULL;
4692   surfxml_statenames[INPI] = NULL;
4693   surfxml_statenames[VALUE1] = NULL;
4694   surfxml_statenames[VALUE2] = NULL;
4695   surfxml_statenames[CDATA] = NULL;
4696   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4697   surfxml_statenames[AL_surfxml_platform] = NULL;
4698   surfxml_statenames[S_surfxml_platform] = "platform";
4699   surfxml_statenames[S_surfxml_platform_1] = "platform";
4700   surfxml_statenames[S_surfxml_platform_2] = "platform";
4701   surfxml_statenames[S_surfxml_platform_3] = "platform";
4702   surfxml_statenames[S_surfxml_platform_4] = "platform";
4703   surfxml_statenames[S_surfxml_platform_5] = "platform";
4704   surfxml_statenames[S_surfxml_platform_6] = "platform";
4705   surfxml_statenames[S_surfxml_platform_7] = "platform";
4706   surfxml_statenames[S_surfxml_platform_8] = "platform";
4707   surfxml_statenames[E_surfxml_platform] = "platform";
4708   surfxml_statenames[AL_surfxml_include] = NULL;
4709   surfxml_statenames[S_surfxml_include] = "include";
4710   surfxml_statenames[S_surfxml_include_1] = "include";
4711   surfxml_statenames[S_surfxml_include_2] = "include";
4712   surfxml_statenames[E_surfxml_include] = "include";
4713   surfxml_statenames[AL_surfxml_trace] = NULL;
4714   surfxml_statenames[IN_trace] = "trace";
4715   surfxml_statenames[AL_surfxml_random] = NULL;
4716   surfxml_statenames[S_surfxml_random] = "random";
4717   surfxml_statenames[S_surfxml_random_1] = "random";
4718   surfxml_statenames[S_surfxml_random_2] = "random";
4719   surfxml_statenames[E_surfxml_random] = "random";
4720   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4721   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4722   surfxml_statenames[AL_surfxml_AS] = NULL;
4723   surfxml_statenames[S_surfxml_AS] = "AS";
4724   surfxml_statenames[S_surfxml_AS_1] = "AS";
4725   surfxml_statenames[S_surfxml_AS_2] = "AS";
4726   surfxml_statenames[S_surfxml_AS_3] = "AS";
4727   surfxml_statenames[S_surfxml_AS_4] = "AS";
4728   surfxml_statenames[S_surfxml_AS_5] = "AS";
4729   surfxml_statenames[S_surfxml_AS_6] = "AS";
4730   surfxml_statenames[S_surfxml_AS_7] = "AS";
4731   surfxml_statenames[S_surfxml_AS_8] = "AS";
4732   surfxml_statenames[S_surfxml_AS_9] = "AS";
4733   surfxml_statenames[S_surfxml_AS_10] = "AS";
4734   surfxml_statenames[S_surfxml_AS_11] = "AS";
4735   surfxml_statenames[S_surfxml_AS_12] = "AS";
4736   surfxml_statenames[S_surfxml_AS_13] = "AS";
4737   surfxml_statenames[E_surfxml_AS] = "AS";
4738   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4739   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4740   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4741   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4742   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4743   surfxml_statenames[AL_surfxml_storage] = NULL;
4744   surfxml_statenames[S_surfxml_storage] = "storage";
4745   surfxml_statenames[S_surfxml_storage_1] = "storage";
4746   surfxml_statenames[S_surfxml_storage_2] = "storage";
4747   surfxml_statenames[E_surfxml_storage] = "storage";
4748   surfxml_statenames[AL_surfxml_mount] = NULL;
4749   surfxml_statenames[E_surfxml_mount] = "mount";
4750   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4751   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4752   surfxml_statenames[AL_surfxml_host] = NULL;
4753   surfxml_statenames[S_surfxml_host] = "host";
4754   surfxml_statenames[S_surfxml_host_1] = "host";
4755   surfxml_statenames[S_surfxml_host_2] = "host";
4756   surfxml_statenames[E_surfxml_host] = "host";
4757   surfxml_statenames[AL_surfxml_cluster] = NULL;
4758   surfxml_statenames[E_surfxml_cluster] = "cluster";
4759   surfxml_statenames[AL_surfxml_peer] = NULL;
4760   surfxml_statenames[E_surfxml_peer] = "peer";
4761   surfxml_statenames[AL_surfxml_router] = NULL;
4762   surfxml_statenames[E_surfxml_router] = "router";
4763   surfxml_statenames[AL_surfxml_link] = NULL;
4764   surfxml_statenames[S_surfxml_link] = "link";
4765   surfxml_statenames[S_surfxml_link_1] = "link";
4766   surfxml_statenames[S_surfxml_link_2] = "link";
4767   surfxml_statenames[E_surfxml_link] = "link";
4768   surfxml_statenames[AL_surfxml_route] = NULL;
4769   surfxml_statenames[S_surfxml_route] = "route";
4770   surfxml_statenames[S_surfxml_route_1] = "route";
4771   surfxml_statenames[S_surfxml_route_2] = "route";
4772   surfxml_statenames[E_surfxml_route] = "route";
4773   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4774   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4775   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4776   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4777   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4778   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4779   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4780   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4781   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4782   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4783   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4784   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4785   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
4786   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
4787   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
4788   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
4789   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
4790   surfxml_statenames[AL_surfxml_process] = NULL;
4791   surfxml_statenames[S_surfxml_process] = "process";
4792   surfxml_statenames[S_surfxml_process_1] = "process";
4793   surfxml_statenames[S_surfxml_process_2] = "process";
4794   surfxml_statenames[E_surfxml_process] = "process";
4795   surfxml_statenames[AL_surfxml_argument] = NULL;
4796   surfxml_statenames[E_surfxml_argument] = "argument";
4797   surfxml_statenames[AL_surfxml_config] = NULL;
4798   surfxml_statenames[S_surfxml_config] = "config";
4799   surfxml_statenames[S_surfxml_config_1] = "config";
4800   surfxml_statenames[S_surfxml_config_2] = "config";
4801   surfxml_statenames[E_surfxml_config] = "config";
4802   surfxml_statenames[AL_surfxml_prop] = NULL;
4803   surfxml_statenames[E_surfxml_prop] = "prop";
4804   }
4805
4806  /* COMMENTS and PIs: handled uniformly for efficiency. */
4807
4808         if ( !(yy_init) )
4809                 {
4810                 (yy_init) = 1;
4811
4812 #ifdef YY_USER_INIT
4813                 YY_USER_INIT;
4814 #endif
4815
4816                 if ( ! (yy_start) )
4817                         (yy_start) = 1; /* first start state */
4818
4819                 if ( ! surf_parse_in )
4820                         surf_parse_in = stdin;
4821
4822                 if ( ! surf_parse_out )
4823                         surf_parse_out = stdout;
4824
4825                 if ( ! YY_CURRENT_BUFFER ) {
4826                         surf_parse_ensure_buffer_stack ();
4827                         YY_CURRENT_BUFFER_LVALUE =
4828                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4829                 }
4830
4831                 surf_parse__load_buffer_state( );
4832                 }
4833
4834         while ( 1 )             /* loops until end-of-file is reached */
4835                 {
4836                 yy_cp = (yy_c_buf_p);
4837
4838                 /* Support of surf_parse_text. */
4839                 *yy_cp = (yy_hold_char);
4840
4841                 /* yy_bp points to the position in yy_ch_buf of the start of
4842                  * the current run.
4843                  */
4844                 yy_bp = yy_cp;
4845
4846                 yy_current_state = (yy_start);
4847 yy_match:
4848                 do
4849                         {
4850                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4851                         if ( yy_accept[yy_current_state] )
4852                                 {
4853                                 (yy_last_accepting_state) = yy_current_state;
4854                                 (yy_last_accepting_cpos) = yy_cp;
4855                                 }
4856                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4857                                 {
4858                                 yy_current_state = (int) yy_def[yy_current_state];
4859                                 if ( yy_current_state >= 2921 )
4860                                         yy_c = yy_meta[(unsigned int) yy_c];
4861                                 }
4862                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4863                         ++yy_cp;
4864                         }
4865                 while ( yy_base[yy_current_state] != 10220 );
4866
4867 yy_find_action:
4868                 yy_act = yy_accept[yy_current_state];
4869                 if ( yy_act == 0 )
4870                         { /* have to back up */
4871                         yy_cp = (yy_last_accepting_cpos);
4872                         yy_current_state = (yy_last_accepting_state);
4873                         yy_act = yy_accept[yy_current_state];
4874                         }
4875
4876                 YY_DO_BEFORE_ACTION;
4877
4878                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4879                         {
4880                         int yyl;
4881                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4882                                 if ( surf_parse_text[yyl] == '\n' )
4883                                            
4884     surf_parse_lineno++;
4885 ;
4886                         }
4887
4888 do_action:      /* This label is used only to access EOF actions. */
4889
4890                 switch ( yy_act )
4891         { /* beginning of action switch */
4892                         case 0: /* must back up */
4893                         /* undo the effects of YY_DO_BEFORE_ACTION */
4894                         *yy_cp = (yy_hold_char);
4895                         yy_cp = (yy_last_accepting_cpos);
4896                         yy_current_state = (yy_last_accepting_state);
4897                         goto yy_find_action;
4898
4899 case 1:
4900 YY_RULE_SETUP
4901 ENTER(INCOMMENT);
4902         YY_BREAK
4903 case 2:
4904 YY_RULE_SETUP
4905 ENTER(INPI);
4906         YY_BREAK
4907
4908 case 3:
4909 YY_RULE_SETUP
4910 LEAVE;
4911         YY_BREAK
4912 case 4:
4913 case 5:
4914 case 6:
4915 /* rule 6 can match eol */
4916 YY_RULE_SETUP
4917 SKIP;
4918         YY_BREAK
4919 case YY_STATE_EOF(INCOMMENT):
4920 FAIL("EOF in comment.");
4921         YY_BREAK
4922
4923 case 7:
4924 YY_RULE_SETUP
4925 LEAVE;
4926         YY_BREAK
4927 case 8:
4928 case 9:
4929 /* rule 9 can match eol */
4930 YY_RULE_SETUP
4931 SKIP;
4932         YY_BREAK
4933 case YY_STATE_EOF(INPI):
4934 FAIL("EOF in PI (processing instruction).");
4935         YY_BREAK
4936
4937 /* SPACES: skipped uniformly */
4938 case 10:
4939 /* rule 10 can match eol */
4940 YY_RULE_SETUP
4941 SKIP;
4942         YY_BREAK
4943 /* PROLOG: determine root element and process it. */
4944
4945 case 11:
4946 /* rule 11 can match eol */
4947 YY_RULE_SETUP
4948 SET(DOCTYPE); 
4949         YY_BREAK
4950 case 12:
4951 /* rule 12 can match eol */
4952 YY_RULE_SETUP
4953 FAIL("Bad declaration %s.",surf_parse_text);
4954         YY_BREAK
4955
4956 case 13:
4957 /* rule 13 can match eol */
4958 YY_RULE_SETUP
4959 SET(ROOT_surfxml_platform);
4960         YY_BREAK
4961 case 14:
4962 /* rule 14 can match eol */
4963 YY_RULE_SETUP
4964 FAIL("Bad declaration %s.",surf_parse_text);
4965         YY_BREAK
4966 case 15:
4967 YY_RULE_SETUP
4968 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4969         YY_BREAK
4970 case YY_STATE_EOF(PROLOG):
4971 case YY_STATE_EOF(DOCTYPE):
4972 FAIL("EOF in prolog.");
4973         YY_BREAK
4974
4975 /* RULES DERIVED FROM DTD. */
4976 /* <!-- Small DTD for SURF based tools. -->  */
4977 case 16:
4978 /* rule 16 can match eol */
4979 YY_RULE_SETUP
4980 FAIL("Starting tag <platform> is not allowed here.");
4981         YY_BREAK
4982 case 17:
4983 /* rule 17 can match eol */
4984 YY_RULE_SETUP
4985 {
4986   AX_surfxml_platform_version = 1;
4987   surfxml_platform_version_isset = 0;
4988   ENTER(AL_surfxml_platform); pushbuffer(0);
4989   }
4990         YY_BREAK
4991
4992 case 18:
4993 /* rule 18 can match eol */
4994 YY_RULE_SETUP
4995 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);
4996         YY_BREAK
4997 case 19:
4998 /* rule 19 can match eol */
4999 YY_RULE_SETUP
5000 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);
5001         YY_BREAK
5002 case 20:
5003 YY_RULE_SETUP
5004 {
5005   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5006  }
5007         YY_BREAK
5008 case 21:
5009 YY_RULE_SETUP
5010 {
5011   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5012   switch (YY_START) {
5013    case ROOT_surfxml_platform: SET(EPILOG); break;
5014   }
5015  }
5016         YY_BREAK
5017 case 22:
5018 YY_RULE_SETUP
5019 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5020         YY_BREAK
5021 case 23:
5022 YY_RULE_SETUP
5023 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5024         YY_BREAK
5025 case YY_STATE_EOF(AL_surfxml_platform):
5026 FAIL("EOF in attribute list of `platform' element.");
5027         YY_BREAK
5028
5029 case 24:
5030 /* rule 24 can match eol */
5031 YY_RULE_SETUP
5032 {
5033   LEAVE;
5034   ETag_surfxml_platform();
5035   popbuffer(); /* attribute */
5036   switch (YY_START) {
5037    case ROOT_surfxml_platform: SET(EPILOG); break;
5038   }
5039  }
5040         YY_BREAK
5041 case 25:
5042 /* rule 25 can match eol */
5043 YY_RULE_SETUP
5044 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5045         YY_BREAK
5046 case 26:
5047 YY_RULE_SETUP
5048 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5049         YY_BREAK
5050 case YY_STATE_EOF(S_surfxml_platform_8):
5051 case YY_STATE_EOF(S_surfxml_platform_1):
5052 case YY_STATE_EOF(S_surfxml_platform_3):
5053 case YY_STATE_EOF(S_surfxml_platform):
5054 case YY_STATE_EOF(S_surfxml_platform_4):
5055 case YY_STATE_EOF(S_surfxml_platform_6):
5056 case YY_STATE_EOF(E_surfxml_platform):
5057 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5058         YY_BREAK
5059
5060 case 27:
5061 /* rule 27 can match eol */
5062 YY_RULE_SETUP
5063 FAIL("Starting tag <include> is not allowed here.");
5064         YY_BREAK
5065 case 28:
5066 /* rule 28 can match eol */
5067 YY_RULE_SETUP
5068 {
5069   AX_surfxml_include_file = 0;
5070   surfxml_include_file_isset = 0;
5071   ENTER(AL_surfxml_include); pushbuffer(0);
5072   }
5073         YY_BREAK
5074
5075 case 29:
5076 /* rule 29 can match eol */
5077 YY_RULE_SETUP
5078 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);
5079         YY_BREAK
5080 case 30:
5081 /* rule 30 can match eol */
5082 YY_RULE_SETUP
5083 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);
5084         YY_BREAK
5085 case 31:
5086 YY_RULE_SETUP
5087 {
5088   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5089   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5090  }
5091         YY_BREAK
5092 case 32:
5093 YY_RULE_SETUP
5094 {
5095   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5096   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5097   switch (YY_START) {
5098    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5099    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5100    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;
5101    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5102   }
5103  }
5104         YY_BREAK
5105 case 33:
5106 YY_RULE_SETUP
5107 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5108         YY_BREAK
5109 case 34:
5110 YY_RULE_SETUP
5111 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5112         YY_BREAK
5113 case YY_STATE_EOF(AL_surfxml_include):
5114 FAIL("EOF in attribute list of `include' element.");
5115         YY_BREAK
5116
5117 case 35:
5118 /* rule 35 can match eol */
5119 YY_RULE_SETUP
5120 {
5121   LEAVE;
5122   ETag_surfxml_include();
5123   popbuffer(); /* attribute */
5124   switch (YY_START) {
5125    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5126    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5127    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;
5128    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5129   }
5130  }
5131         YY_BREAK
5132 case 36:
5133 /* rule 36 can match eol */
5134 YY_RULE_SETUP
5135 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5136         YY_BREAK
5137 case 37:
5138 YY_RULE_SETUP
5139 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5140         YY_BREAK
5141 case YY_STATE_EOF(E_surfxml_include):
5142 case YY_STATE_EOF(S_surfxml_include):
5143 case YY_STATE_EOF(S_surfxml_include_2):
5144 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5145         YY_BREAK
5146
5147 case 38:
5148 /* rule 38 can match eol */
5149 YY_RULE_SETUP
5150 FAIL("Starting tag <trace> is not allowed here.");
5151         YY_BREAK
5152 case 39:
5153 /* rule 39 can match eol */
5154 YY_RULE_SETUP
5155 {
5156   AX_surfxml_trace_id = 0;
5157   surfxml_trace_id_isset = 0;
5158   AX_surfxml_trace_file = 0;
5159   surfxml_trace_file_isset = 0;
5160   AX_surfxml_trace_periodicity = 0;
5161   surfxml_trace_periodicity_isset = 0;
5162   ENTER(AL_surfxml_trace); pushbuffer(0);
5163   }
5164         YY_BREAK
5165
5166 case 40:
5167 /* rule 40 can match eol */
5168 YY_RULE_SETUP
5169 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);
5170         YY_BREAK
5171 case 41:
5172 /* rule 41 can match eol */
5173 YY_RULE_SETUP
5174 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);
5175         YY_BREAK
5176 case 42:
5177 /* rule 42 can match eol */
5178 YY_RULE_SETUP
5179 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);
5180         YY_BREAK
5181 case 43:
5182 /* rule 43 can match eol */
5183 YY_RULE_SETUP
5184 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);
5185         YY_BREAK
5186 case 44:
5187 /* rule 44 can match eol */
5188 YY_RULE_SETUP
5189 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);
5190         YY_BREAK
5191 case 45:
5192 /* rule 45 can match eol */
5193 YY_RULE_SETUP
5194 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);
5195         YY_BREAK
5196 case 46:
5197 YY_RULE_SETUP
5198 {
5199   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5200   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5201   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5202  }
5203         YY_BREAK
5204 case 47:
5205 YY_RULE_SETUP
5206 {
5207   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5208   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5209   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5210   switch (YY_START) {
5211    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;
5212    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5213    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5214    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5215    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;
5216    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5217    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5218   }
5219  }
5220         YY_BREAK
5221 case 48:
5222 YY_RULE_SETUP
5223 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5224         YY_BREAK
5225 case 49:
5226 YY_RULE_SETUP
5227 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5228         YY_BREAK
5229 case YY_STATE_EOF(AL_surfxml_trace):
5230 FAIL("EOF in attribute list of `trace' element.");
5231         YY_BREAK
5232
5233 case 50:
5234 /* rule 50 can match eol */
5235 YY_RULE_SETUP
5236 {
5237   LEAVE;
5238   BUFFERDONE;
5239   ETag_surfxml_trace();
5240   surfxml_pcdata_ix = popbuffer();
5241   popbuffer(); /* attribute */
5242   switch (YY_START) {
5243    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;
5244    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5245    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5246    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5247    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;
5248    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5249    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5250   }
5251  }
5252         YY_BREAK
5253 case 51:
5254 /* rule 51 can match eol */
5255 YY_RULE_SETUP
5256 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5257         YY_BREAK
5258 case YY_STATE_EOF(IN_trace):
5259 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5260         YY_BREAK
5261
5262 case 52:
5263 /* rule 52 can match eol */
5264 YY_RULE_SETUP
5265 FAIL("Starting tag <random> is not allowed here.");
5266         YY_BREAK
5267 case 53:
5268 /* rule 53 can match eol */
5269 YY_RULE_SETUP
5270 {
5271   AX_surfxml_random_id = 0;
5272   surfxml_random_id_isset = 0;
5273   AX_surfxml_random_min = 0;
5274   surfxml_random_min_isset = 0;
5275   AX_surfxml_random_max = 0;
5276   surfxml_random_max_isset = 0;
5277   AX_surfxml_random_mean = 0;
5278   surfxml_random_mean_isset = 0;
5279   AX_surfxml_random_std_deviation = 0;
5280   surfxml_random_std_deviation_isset = 0;
5281   AX_surfxml_random_seed = 5;
5282   surfxml_random_seed_isset = 0;
5283   AX_surfxml_random_radical = 0;
5284   surfxml_random_radical_isset = 0;
5285   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5286   surfxml_random_generator_isset = 0;
5287   ENTER(AL_surfxml_random); pushbuffer(0);
5288   }
5289         YY_BREAK
5290
5291 case 54:
5292 /* rule 54 can match eol */
5293 YY_RULE_SETUP
5294 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);
5295         YY_BREAK
5296 case 55:
5297 /* rule 55 can match eol */
5298 YY_RULE_SETUP
5299 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);
5300         YY_BREAK
5301 case 56:
5302 /* rule 56 can match eol */
5303 YY_RULE_SETUP
5304 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);
5305         YY_BREAK
5306 case 57:
5307 /* rule 57 can match eol */
5308 YY_RULE_SETUP
5309 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);
5310         YY_BREAK
5311 case 58:
5312 /* rule 58 can match eol */
5313 YY_RULE_SETUP
5314 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);
5315         YY_BREAK
5316 case 59:
5317 /* rule 59 can match eol */
5318 YY_RULE_SETUP
5319 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);
5320         YY_BREAK
5321 case 60:
5322 /* rule 60 can match eol */
5323 YY_RULE_SETUP
5324 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);
5325         YY_BREAK
5326 case 61:
5327 /* rule 61 can match eol */
5328 YY_RULE_SETUP
5329 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);
5330         YY_BREAK
5331 case 62:
5332 /* rule 62 can match eol */
5333 YY_RULE_SETUP
5334 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);
5335         YY_BREAK
5336 case 63:
5337 /* rule 63 can match eol */
5338 YY_RULE_SETUP
5339 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);
5340         YY_BREAK
5341 case 64:
5342 /* rule 64 can match eol */
5343 YY_RULE_SETUP
5344 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);
5345         YY_BREAK
5346 case 65:
5347 /* rule 65 can match eol */
5348 YY_RULE_SETUP
5349 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);
5350         YY_BREAK
5351 case 66:
5352 /* rule 66 can match eol */
5353 YY_RULE_SETUP
5354 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);
5355         YY_BREAK
5356 case 67:
5357 /* rule 67 can match eol */
5358 YY_RULE_SETUP
5359 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);
5360         YY_BREAK
5361 case 68:
5362 /* rule 68 can match eol */
5363 case 69:
5364 /* rule 69 can match eol */
5365 YY_RULE_SETUP
5366 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5367         YY_BREAK
5368 case 70:
5369 /* rule 70 can match eol */
5370 case 71:
5371 /* rule 71 can match eol */
5372 YY_RULE_SETUP
5373 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5374         YY_BREAK
5375 case 72:
5376 /* rule 72 can match eol */
5377 case 73:
5378 /* rule 73 can match eol */
5379 YY_RULE_SETUP
5380 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5381         YY_BREAK
5382 case 74:
5383 /* rule 74 can match eol */
5384 case 75:
5385 /* rule 75 can match eol */
5386 YY_RULE_SETUP
5387 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5388         YY_BREAK
5389 case 76:
5390 YY_RULE_SETUP
5391 {
5392   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5393   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5394   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5395   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5396   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5397   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5398  }
5399         YY_BREAK
5400 case 77:
5401 YY_RULE_SETUP
5402 {
5403   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5404   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5405   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5406   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5407   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5408   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5409   switch (YY_START) {
5410    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5411   }
5412  }
5413         YY_BREAK
5414 case 78:
5415 YY_RULE_SETUP
5416 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5417         YY_BREAK
5418 case 79:
5419 YY_RULE_SETUP
5420 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5421         YY_BREAK
5422 case YY_STATE_EOF(AL_surfxml_random):
5423 FAIL("EOF in attribute list of `random' element.");
5424         YY_BREAK
5425
5426 case 80:
5427 /* rule 80 can match eol */
5428 YY_RULE_SETUP
5429 {
5430   LEAVE;
5431   ETag_surfxml_random();
5432   popbuffer(); /* attribute */
5433   switch (YY_START) {
5434    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5435   }
5436  }
5437         YY_BREAK
5438 case 81:
5439 /* rule 81 can match eol */
5440 YY_RULE_SETUP
5441 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5442         YY_BREAK
5443 case 82:
5444 YY_RULE_SETUP
5445 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5446         YY_BREAK
5447 case YY_STATE_EOF(S_surfxml_random):
5448 case YY_STATE_EOF(S_surfxml_random_2):
5449 case YY_STATE_EOF(E_surfxml_random):
5450 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5451         YY_BREAK
5452
5453 case 83:
5454 /* rule 83 can match eol */
5455 YY_RULE_SETUP
5456 FAIL("Starting tag <trace_connect> is not allowed here.");
5457         YY_BREAK
5458 case 84:
5459 /* rule 84 can match eol */
5460 YY_RULE_SETUP
5461 {
5462   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5463   surfxml_trace_connect_kind_isset = 0;
5464   AX_surfxml_trace_connect_trace = 0;
5465   surfxml_trace_connect_trace_isset = 0;
5466   AX_surfxml_trace_connect_element = 0;
5467   surfxml_trace_connect_element_isset = 0;
5468   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5469   }
5470         YY_BREAK
5471
5472 case 85:
5473 /* rule 85 can match eol */
5474 case 86:
5475 /* rule 86 can match eol */
5476 YY_RULE_SETUP
5477 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5478         YY_BREAK
5479 case 87:
5480 /* rule 87 can match eol */
5481 case 88:
5482 /* rule 88 can match eol */
5483 YY_RULE_SETUP
5484 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5485         YY_BREAK
5486 case 89:
5487 /* rule 89 can match eol */
5488 case 90:
5489 /* rule 90 can match eol */
5490 YY_RULE_SETUP
5491 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5492         YY_BREAK
5493 case 91:
5494 /* rule 91 can match eol */
5495 case 92:
5496 /* rule 92 can match eol */
5497 YY_RULE_SETUP
5498 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5499         YY_BREAK
5500 case 93:
5501 /* rule 93 can match eol */
5502 case 94:
5503 /* rule 94 can match eol */
5504 YY_RULE_SETUP
5505 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5506         YY_BREAK
5507 case 95:
5508 /* rule 95 can match eol */
5509 YY_RULE_SETUP
5510 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);
5511         YY_BREAK
5512 case 96:
5513 /* rule 96 can match eol */
5514 YY_RULE_SETUP
5515 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);
5516         YY_BREAK
5517 case 97:
5518 /* rule 97 can match eol */
5519 YY_RULE_SETUP
5520 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);
5521         YY_BREAK
5522 case 98:
5523 /* rule 98 can match eol */
5524 YY_RULE_SETUP
5525 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);
5526         YY_BREAK
5527 case 99:
5528 YY_RULE_SETUP
5529 {
5530   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5531   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5532   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5533  }
5534         YY_BREAK
5535 case 100:
5536 YY_RULE_SETUP
5537 {
5538   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5539   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5540   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5541   switch (YY_START) {
5542    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;
5543    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5544    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5545    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5546    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;
5547    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5548    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5549   }
5550  }
5551         YY_BREAK
5552 case 101:
5553 YY_RULE_SETUP
5554 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5555         YY_BREAK
5556 case 102:
5557 YY_RULE_SETUP
5558 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5559         YY_BREAK
5560 case YY_STATE_EOF(AL_surfxml_trace_connect):
5561 FAIL("EOF in attribute list of `trace_connect' element.");
5562         YY_BREAK
5563
5564 case 103:
5565 /* rule 103 can match eol */
5566 YY_RULE_SETUP
5567 {
5568   LEAVE;
5569   ETag_surfxml_trace_connect();
5570   popbuffer(); /* attribute */
5571   switch (YY_START) {
5572    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;
5573    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5574    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5575    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5576    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;
5577    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5578    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5579   }
5580  }
5581         YY_BREAK
5582 case 104:
5583 /* rule 104 can match eol */
5584 YY_RULE_SETUP
5585 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5586         YY_BREAK
5587 case 105:
5588 YY_RULE_SETUP
5589 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5590         YY_BREAK
5591 case YY_STATE_EOF(E_surfxml_trace_connect):
5592 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5593         YY_BREAK
5594
5595 case 106:
5596 /* rule 106 can match eol */
5597 YY_RULE_SETUP
5598 FAIL("Starting tag <AS> is not allowed here.");
5599         YY_BREAK
5600 case 107:
5601 /* rule 107 can match eol */
5602 YY_RULE_SETUP
5603 {
5604   AX_surfxml_AS_id = 0;
5605   surfxml_AS_id_isset = 0;
5606   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
5607   surfxml_AS_routing_isset = 0;
5608   ENTER(AL_surfxml_AS); pushbuffer(0);
5609   }
5610         YY_BREAK
5611
5612 case 108:
5613 /* rule 108 can match eol */
5614 YY_RULE_SETUP
5615 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);
5616         YY_BREAK
5617 case 109:
5618 /* rule 109 can match eol */
5619 YY_RULE_SETUP
5620 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);
5621         YY_BREAK
5622 case 110:
5623 /* rule 110 can match eol */
5624 case 111:
5625 /* rule 111 can match eol */
5626 YY_RULE_SETUP
5627 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5628         YY_BREAK
5629 case 112:
5630 /* rule 112 can match eol */
5631 case 113:
5632 /* rule 113 can match eol */
5633 YY_RULE_SETUP
5634 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5635         YY_BREAK
5636 case 114:
5637 /* rule 114 can match eol */
5638 case 115:
5639 /* rule 115 can match eol */
5640 YY_RULE_SETUP
5641 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5642         YY_BREAK
5643 case 116:
5644 /* rule 116 can match eol */
5645 case 117:
5646 /* rule 117 can match eol */
5647 YY_RULE_SETUP
5648 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5649         YY_BREAK
5650 case 118:
5651 /* rule 118 can match eol */
5652 case 119:
5653 /* rule 119 can match eol */
5654 YY_RULE_SETUP
5655 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5656         YY_BREAK
5657 case 120:
5658 /* rule 120 can match eol */
5659 case 121:
5660 /* rule 121 can match eol */
5661 YY_RULE_SETUP
5662 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
5663         YY_BREAK
5664 case 122:
5665 /* rule 122 can match eol */
5666 case 123:
5667 /* rule 123 can match eol */
5668 YY_RULE_SETUP
5669 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5670         YY_BREAK
5671 case 124:
5672 /* rule 124 can match eol */
5673 case 125:
5674 /* rule 125 can match eol */
5675 YY_RULE_SETUP
5676 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5677         YY_BREAK
5678 case 126:
5679 YY_RULE_SETUP
5680 {
5681   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5682   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5683  }
5684         YY_BREAK
5685 case 127:
5686 YY_RULE_SETUP
5687 {
5688   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5689   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5690   switch (YY_START) {
5691    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5692    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;
5693    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5694   }
5695  }
5696         YY_BREAK
5697 case 128:
5698 YY_RULE_SETUP
5699 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5700         YY_BREAK
5701 case 129:
5702 YY_RULE_SETUP
5703 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5704         YY_BREAK
5705 case YY_STATE_EOF(AL_surfxml_AS):
5706 FAIL("EOF in attribute list of `AS' element.");
5707         YY_BREAK
5708
5709 case 130:
5710 /* rule 130 can match eol */
5711 YY_RULE_SETUP
5712 {
5713   LEAVE;
5714   ETag_surfxml_AS();
5715   popbuffer(); /* attribute */
5716   switch (YY_START) {
5717    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5718    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;
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 131:
5724 /* rule 131 can match eol */
5725 YY_RULE_SETUP
5726 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5727         YY_BREAK
5728 case 132:
5729 YY_RULE_SETUP
5730 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5731         YY_BREAK
5732 case YY_STATE_EOF(S_surfxml_AS_9):
5733 case YY_STATE_EOF(S_surfxml_AS_1):
5734 case YY_STATE_EOF(S_surfxml_AS_11):
5735 case YY_STATE_EOF(S_surfxml_AS_6):
5736 case YY_STATE_EOF(E_surfxml_AS):
5737 case YY_STATE_EOF(S_surfxml_AS_3):
5738 case YY_STATE_EOF(S_surfxml_AS_13):
5739 case YY_STATE_EOF(S_surfxml_AS_8):
5740 case YY_STATE_EOF(S_surfxml_AS):
5741 case YY_STATE_EOF(S_surfxml_AS_4):
5742 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5743         YY_BREAK
5744
5745 case 133:
5746 /* rule 133 can match eol */
5747 YY_RULE_SETUP
5748 FAIL("Starting tag <storage_type> is not allowed here.");
5749         YY_BREAK
5750 case 134:
5751 /* rule 134 can match eol */
5752 YY_RULE_SETUP
5753 {
5754   AX_surfxml_storage_type_id = 0;
5755   surfxml_storage_type_id_isset = 0;
5756   AX_surfxml_storage_type_model = 0;
5757   surfxml_storage_type_model_isset = 0;
5758   AX_surfxml_storage_type_size = 0;
5759   surfxml_storage_type_size_isset = 0;
5760   AX_surfxml_storage_type_content = 0;
5761   surfxml_storage_type_content_isset = 0;
5762   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5763   }
5764         YY_BREAK
5765
5766 case 135:
5767 /* rule 135 can match eol */
5768 YY_RULE_SETUP
5769 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);
5770         YY_BREAK
5771 case 136:
5772 /* rule 136 can match eol */
5773 YY_RULE_SETUP
5774 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);
5775         YY_BREAK
5776 case 137:
5777 /* rule 137 can match eol */
5778 YY_RULE_SETUP
5779 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);
5780         YY_BREAK
5781 case 138:
5782 /* rule 138 can match eol */
5783 YY_RULE_SETUP
5784 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);
5785         YY_BREAK
5786 case 139:
5787 /* rule 139 can match eol */
5788 YY_RULE_SETUP
5789 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);
5790         YY_BREAK
5791 case 140:
5792 /* rule 140 can match eol */
5793 YY_RULE_SETUP
5794 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);
5795         YY_BREAK
5796 case 141:
5797 /* rule 141 can match eol */
5798 YY_RULE_SETUP
5799 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);
5800         YY_BREAK
5801 case 142:
5802 /* rule 142 can match eol */
5803 YY_RULE_SETUP
5804 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);
5805         YY_BREAK
5806 case 143:
5807 YY_RULE_SETUP
5808 {
5809   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5810   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5811   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5812   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5813  }
5814         YY_BREAK
5815 case 144:
5816 YY_RULE_SETUP
5817 {
5818   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5819   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5820   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5821   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5822   switch (YY_START) {
5823    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5824    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5825   }
5826  }
5827         YY_BREAK
5828 case 145:
5829 YY_RULE_SETUP
5830 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5831         YY_BREAK
5832 case 146:
5833 YY_RULE_SETUP
5834 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5835         YY_BREAK
5836 case YY_STATE_EOF(AL_surfxml_storage_type):
5837 FAIL("EOF in attribute list of `storage_type' element.");
5838         YY_BREAK
5839
5840 case 147:
5841 /* rule 147 can match eol */
5842 YY_RULE_SETUP
5843 {
5844   LEAVE;
5845   ETag_surfxml_storage_type();
5846   popbuffer(); /* attribute */
5847   switch (YY_START) {
5848    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5849    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5850   }
5851  }
5852         YY_BREAK
5853 case 148:
5854 /* rule 148 can match eol */
5855 YY_RULE_SETUP
5856 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5857         YY_BREAK
5858 case 149:
5859 YY_RULE_SETUP
5860 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5861         YY_BREAK
5862 case YY_STATE_EOF(E_surfxml_storage_type):
5863 case YY_STATE_EOF(S_surfxml_storage_type_2):
5864 case YY_STATE_EOF(S_surfxml_storage_type):
5865 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5866         YY_BREAK
5867
5868 case 150:
5869 /* rule 150 can match eol */
5870 YY_RULE_SETUP
5871 FAIL("Starting tag <storage> is not allowed here.");
5872         YY_BREAK
5873 case 151:
5874 /* rule 151 can match eol */
5875 YY_RULE_SETUP
5876 {
5877   AX_surfxml_storage_id = 0;
5878   surfxml_storage_id_isset = 0;
5879   AX_surfxml_storage_typeId = 0;
5880   surfxml_storage_typeId_isset = 0;
5881   AX_surfxml_storage_content = 0;
5882   surfxml_storage_content_isset = 0;
5883   ENTER(AL_surfxml_storage); pushbuffer(0);
5884   }
5885         YY_BREAK
5886
5887 case 152:
5888 /* rule 152 can match eol */
5889 YY_RULE_SETUP
5890 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);
5891         YY_BREAK
5892 case 153:
5893 /* rule 153 can match eol */
5894 YY_RULE_SETUP
5895 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);
5896         YY_BREAK
5897 case 154:
5898 /* rule 154 can match eol */
5899 YY_RULE_SETUP
5900 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);
5901         YY_BREAK
5902 case 155:
5903 /* rule 155 can match eol */
5904 YY_RULE_SETUP
5905 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);
5906         YY_BREAK
5907 case 156:
5908 /* rule 156 can match eol */
5909 YY_RULE_SETUP
5910 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);
5911         YY_BREAK
5912 case 157:
5913 /* rule 157 can match eol */
5914 YY_RULE_SETUP
5915 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);
5916         YY_BREAK
5917 case 158:
5918 YY_RULE_SETUP
5919 {
5920   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5921   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5922   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5923  }
5924         YY_BREAK
5925 case 159:
5926 YY_RULE_SETUP
5927 {
5928   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5929   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5930   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5931   switch (YY_START) {
5932    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5933    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5934   }
5935  }
5936         YY_BREAK
5937 case 160:
5938 YY_RULE_SETUP
5939 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5940         YY_BREAK
5941 case 161:
5942 YY_RULE_SETUP
5943 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5944         YY_BREAK
5945 case YY_STATE_EOF(AL_surfxml_storage):
5946 FAIL("EOF in attribute list of `storage' element.");
5947         YY_BREAK
5948
5949 case 162:
5950 /* rule 162 can match eol */
5951 YY_RULE_SETUP
5952 {
5953   LEAVE;
5954   ETag_surfxml_storage();
5955   popbuffer(); /* attribute */
5956   switch (YY_START) {
5957    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5958    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5959   }
5960  }
5961         YY_BREAK
5962 case 163:
5963 /* rule 163 can match eol */
5964 YY_RULE_SETUP
5965 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5966         YY_BREAK
5967 case 164:
5968 YY_RULE_SETUP
5969 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5970         YY_BREAK
5971 case YY_STATE_EOF(E_surfxml_storage):
5972 case YY_STATE_EOF(S_surfxml_storage):
5973 case YY_STATE_EOF(S_surfxml_storage_2):
5974 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5975         YY_BREAK
5976
5977 case 165:
5978 /* rule 165 can match eol */
5979 YY_RULE_SETUP
5980 FAIL("Starting tag <mount> is not allowed here.");
5981         YY_BREAK
5982 case 166:
5983 /* rule 166 can match eol */
5984 YY_RULE_SETUP
5985 {
5986   AX_surfxml_mount_id = 0;
5987   surfxml_mount_id_isset = 0;
5988   AX_surfxml_mount_name = 0;
5989   surfxml_mount_name_isset = 0;
5990   ENTER(AL_surfxml_mount); pushbuffer(0);
5991   }
5992         YY_BREAK
5993
5994 case 167:
5995 /* rule 167 can match eol */
5996 YY_RULE_SETUP
5997 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);
5998         YY_BREAK
5999 case 168:
6000 /* rule 168 can match eol */
6001 YY_RULE_SETUP
6002 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);
6003         YY_BREAK
6004 case 169:
6005 /* rule 169 can match eol */
6006 YY_RULE_SETUP
6007 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);
6008         YY_BREAK
6009 case 170:
6010 /* rule 170 can match eol */
6011 YY_RULE_SETUP
6012 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);
6013         YY_BREAK
6014 case 171:
6015 YY_RULE_SETUP
6016 {
6017   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6018   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6019   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6020  }
6021         YY_BREAK
6022 case 172:
6023 YY_RULE_SETUP
6024 {
6025   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6026   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6027   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6028   switch (YY_START) {
6029    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6030   }
6031  }
6032         YY_BREAK
6033 case 173:
6034 YY_RULE_SETUP
6035 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6036         YY_BREAK
6037 case 174:
6038 YY_RULE_SETUP
6039 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6040         YY_BREAK
6041 case YY_STATE_EOF(AL_surfxml_mount):
6042 FAIL("EOF in attribute list of `mount' element.");
6043         YY_BREAK
6044
6045 case 175:
6046 /* rule 175 can match eol */
6047 YY_RULE_SETUP
6048 {
6049   LEAVE;
6050   ETag_surfxml_mount();
6051   popbuffer(); /* attribute */
6052   switch (YY_START) {
6053    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6054   }
6055  }
6056         YY_BREAK
6057 case 176:
6058 /* rule 176 can match eol */
6059 YY_RULE_SETUP
6060 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6061         YY_BREAK
6062 case 177:
6063 YY_RULE_SETUP
6064 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6065         YY_BREAK
6066 case YY_STATE_EOF(E_surfxml_mount):
6067 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6068         YY_BREAK
6069
6070 case 178:
6071 /* rule 178 can match eol */
6072 YY_RULE_SETUP
6073 FAIL("Starting tag <mstorage> is not allowed here.");
6074         YY_BREAK
6075 case 179:
6076 /* rule 179 can match eol */
6077 YY_RULE_SETUP
6078 {
6079   AX_surfxml_mstorage_typeId = 0;
6080   surfxml_mstorage_typeId_isset = 0;
6081   AX_surfxml_mstorage_name = 0;
6082   surfxml_mstorage_name_isset = 0;
6083   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6084   }
6085         YY_BREAK
6086
6087 case 180:
6088 /* rule 180 can match eol */
6089 YY_RULE_SETUP
6090 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);
6091         YY_BREAK
6092 case 181:
6093 /* rule 181 can match eol */
6094 YY_RULE_SETUP
6095 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);
6096         YY_BREAK
6097 case 182:
6098 /* rule 182 can match eol */
6099 YY_RULE_SETUP
6100 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);
6101         YY_BREAK
6102 case 183:
6103 /* rule 183 can match eol */
6104 YY_RULE_SETUP
6105 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);
6106         YY_BREAK
6107 case 184:
6108 YY_RULE_SETUP
6109 {
6110   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6111   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6112   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6113  }
6114         YY_BREAK
6115 case 185:
6116 YY_RULE_SETUP
6117 {
6118   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6119   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6120   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6121   switch (YY_START) {
6122    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6123   }
6124  }
6125         YY_BREAK
6126 case 186:
6127 YY_RULE_SETUP
6128 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6129         YY_BREAK
6130 case 187:
6131 YY_RULE_SETUP
6132 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6133         YY_BREAK
6134 case YY_STATE_EOF(AL_surfxml_mstorage):
6135 FAIL("EOF in attribute list of `mstorage' element.");
6136         YY_BREAK
6137
6138 case 188:
6139 /* rule 188 can match eol */
6140 YY_RULE_SETUP
6141 {
6142   LEAVE;
6143   ETag_surfxml_mstorage();
6144   popbuffer(); /* attribute */
6145   switch (YY_START) {
6146    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6147   }
6148  }
6149         YY_BREAK
6150 case 189:
6151 /* rule 189 can match eol */
6152 YY_RULE_SETUP
6153 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6154         YY_BREAK
6155 case 190:
6156 YY_RULE_SETUP
6157 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6158         YY_BREAK
6159 case YY_STATE_EOF(E_surfxml_mstorage):
6160 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6161         YY_BREAK
6162
6163 case 191:
6164 /* rule 191 can match eol */
6165 YY_RULE_SETUP
6166 FAIL("Starting tag <host> is not allowed here.");
6167         YY_BREAK
6168 case 192:
6169 /* rule 192 can match eol */
6170 YY_RULE_SETUP
6171 {
6172   AX_surfxml_host_id = 0;
6173   surfxml_host_id_isset = 0;
6174   AX_surfxml_host_power = 0;
6175   surfxml_host_power_isset = 0;
6176   AX_surfxml_host_core = 16;
6177   surfxml_host_core_isset = 0;
6178   AX_surfxml_host_availability = 18;
6179   surfxml_host_availability_isset = 0;
6180   AX_surfxml_host_availability_file = 0;
6181   surfxml_host_availability_file_isset = 0;
6182   AX_surfxml_host_state = A_surfxml_host_state_ON;
6183   surfxml_host_state_isset = 0;
6184   AX_surfxml_host_state_file = 0;
6185   surfxml_host_state_file_isset = 0;
6186   AX_surfxml_host_coordinates = 0;
6187   surfxml_host_coordinates_isset = 0;
6188   ENTER(AL_surfxml_host); pushbuffer(0);
6189   }
6190         YY_BREAK
6191
6192 case 193:
6193 /* rule 193 can match eol */
6194 YY_RULE_SETUP
6195 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);
6196         YY_BREAK
6197 case 194:
6198 /* rule 194 can match eol */
6199 YY_RULE_SETUP
6200 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);
6201         YY_BREAK
6202 case 195:
6203 /* rule 195 can match eol */
6204 YY_RULE_SETUP
6205 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);
6206         YY_BREAK
6207 case 196:
6208 /* rule 196 can match eol */
6209 YY_RULE_SETUP
6210 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);
6211         YY_BREAK
6212 case 197:
6213 /* rule 197 can match eol */
6214 YY_RULE_SETUP
6215 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);
6216         YY_BREAK
6217 case 198:
6218 /* rule 198 can match eol */
6219 YY_RULE_SETUP
6220 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);
6221         YY_BREAK
6222 case 199:
6223 /* rule 199 can match eol */
6224 YY_RULE_SETUP
6225 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);
6226         YY_BREAK
6227 case 200:
6228 /* rule 200 can match eol */
6229 YY_RULE_SETUP
6230 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);
6231         YY_BREAK
6232 case 201:
6233 /* rule 201 can match eol */
6234 YY_RULE_SETUP
6235 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);
6236         YY_BREAK
6237 case 202:
6238 /* rule 202 can match eol */
6239 YY_RULE_SETUP
6240 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);
6241         YY_BREAK
6242 case 203:
6243 /* rule 203 can match eol */
6244 case 204:
6245 /* rule 204 can match eol */
6246 YY_RULE_SETUP
6247 A_surfxml_host_state = A_surfxml_host_state_ON;
6248         YY_BREAK
6249 case 205:
6250 /* rule 205 can match eol */
6251 case 206:
6252 /* rule 206 can match eol */
6253 YY_RULE_SETUP
6254 A_surfxml_host_state = A_surfxml_host_state_OFF;
6255         YY_BREAK
6256 case 207:
6257 /* rule 207 can match eol */
6258 YY_RULE_SETUP
6259 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);
6260         YY_BREAK
6261 case 208:
6262 /* rule 208 can match eol */
6263 YY_RULE_SETUP
6264 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);
6265         YY_BREAK
6266 case 209:
6267 /* rule 209 can match eol */
6268 YY_RULE_SETUP
6269 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);
6270         YY_BREAK
6271 case 210:
6272 /* rule 210 can match eol */
6273 YY_RULE_SETUP
6274 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);
6275         YY_BREAK
6276 case 211:
6277 YY_RULE_SETUP
6278 {
6279   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6280   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6281   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6282  }
6283         YY_BREAK
6284 case 212:
6285 YY_RULE_SETUP
6286 {
6287   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6288   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6289   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6290   switch (YY_START) {
6291    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6292   }
6293  }
6294         YY_BREAK
6295 case 213:
6296 YY_RULE_SETUP
6297 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6298         YY_BREAK
6299 case 214:
6300 YY_RULE_SETUP
6301 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6302         YY_BREAK
6303 case YY_STATE_EOF(AL_surfxml_host):
6304 FAIL("EOF in attribute list of `host' element.");
6305         YY_BREAK
6306
6307 case 215:
6308 /* rule 215 can match eol */
6309 YY_RULE_SETUP
6310 {
6311   LEAVE;
6312   ETag_surfxml_host();
6313   popbuffer(); /* attribute */
6314   switch (YY_START) {
6315    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6316   }
6317  }
6318         YY_BREAK
6319 case 216:
6320 /* rule 216 can match eol */
6321 YY_RULE_SETUP
6322 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6323         YY_BREAK
6324 case 217:
6325 YY_RULE_SETUP
6326 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6327         YY_BREAK
6328 case YY_STATE_EOF(S_surfxml_host):
6329 case YY_STATE_EOF(E_surfxml_host):
6330 case YY_STATE_EOF(S_surfxml_host_2):
6331 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6332         YY_BREAK
6333
6334 case 218:
6335 /* rule 218 can match eol */
6336 YY_RULE_SETUP
6337 FAIL("Starting tag <cluster> is not allowed here.");
6338         YY_BREAK
6339 case 219:
6340 /* rule 219 can match eol */
6341 YY_RULE_SETUP
6342 {
6343   AX_surfxml_cluster_id = 0;
6344   surfxml_cluster_id_isset = 0;
6345   AX_surfxml_cluster_prefix = 0;
6346   surfxml_cluster_prefix_isset = 0;
6347   AX_surfxml_cluster_suffix = 0;
6348   surfxml_cluster_suffix_isset = 0;
6349   AX_surfxml_cluster_radical = 0;
6350   surfxml_cluster_radical_isset = 0;
6351   AX_surfxml_cluster_power = 0;
6352   surfxml_cluster_power_isset = 0;
6353   AX_surfxml_cluster_core = 22;
6354   surfxml_cluster_core_isset = 0;
6355   AX_surfxml_cluster_bw = 0;
6356   surfxml_cluster_bw_isset = 0;
6357   AX_surfxml_cluster_lat = 0;
6358   surfxml_cluster_lat_isset = 0;
6359   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6360   surfxml_cluster_sharing_policy_isset = 0;
6361   AX_surfxml_cluster_bb_bw = 0;
6362   surfxml_cluster_bb_bw_isset = 0;
6363   AX_surfxml_cluster_bb_lat = 0;
6364   surfxml_cluster_bb_lat_isset = 0;
6365   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6366   surfxml_cluster_bb_sharing_policy_isset = 0;
6367   AX_surfxml_cluster_availability_file = 0;
6368   surfxml_cluster_availability_file_isset = 0;
6369   AX_surfxml_cluster_state_file = 0;
6370   surfxml_cluster_state_file_isset = 0;
6371   AX_surfxml_cluster_router_id = 0;
6372   surfxml_cluster_router_id_isset = 0;
6373   ENTER(AL_surfxml_cluster); pushbuffer(0);
6374   }
6375         YY_BREAK
6376
6377 case 220:
6378 /* rule 220 can match eol */
6379 YY_RULE_SETUP
6380 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);
6381         YY_BREAK
6382 case 221:
6383 /* rule 221 can match eol */
6384 YY_RULE_SETUP
6385 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);
6386         YY_BREAK
6387 case 222:
6388 /* rule 222 can match eol */
6389 YY_RULE_SETUP
6390 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);
6391         YY_BREAK
6392 case 223:
6393 /* rule 223 can match eol */
6394 YY_RULE_SETUP
6395 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);
6396         YY_BREAK
6397 case 224:
6398 /* rule 224 can match eol */
6399 YY_RULE_SETUP
6400 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);
6401         YY_BREAK
6402 case 225:
6403 /* rule 225 can match eol */
6404 YY_RULE_SETUP
6405 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);
6406         YY_BREAK
6407 case 226:
6408 /* rule 226 can match eol */
6409 YY_RULE_SETUP
6410 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);
6411         YY_BREAK
6412 case 227:
6413 /* rule 227 can match eol */
6414 YY_RULE_SETUP
6415 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);
6416         YY_BREAK
6417 case 228:
6418 /* rule 228 can match eol */
6419 YY_RULE_SETUP
6420 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);
6421         YY_BREAK
6422 case 229:
6423 /* rule 229 can match eol */
6424 YY_RULE_SETUP
6425 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);
6426         YY_BREAK
6427 case 230:
6428 /* rule 230 can match eol */
6429 YY_RULE_SETUP
6430 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);
6431         YY_BREAK
6432 case 231:
6433 /* rule 231 can match eol */
6434 YY_RULE_SETUP
6435 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);
6436         YY_BREAK
6437 case 232:
6438 /* rule 232 can match eol */
6439 YY_RULE_SETUP
6440 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);
6441         YY_BREAK
6442 case 233:
6443 /* rule 233 can match eol */
6444 YY_RULE_SETUP
6445 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);
6446         YY_BREAK
6447 case 234:
6448 /* rule 234 can match eol */
6449 YY_RULE_SETUP
6450 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);
6451         YY_BREAK
6452 case 235:
6453 /* rule 235 can match eol */
6454 YY_RULE_SETUP
6455 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);
6456         YY_BREAK
6457 case 236:
6458 /* rule 236 can match eol */
6459 case 237:
6460 /* rule 237 can match eol */
6461 YY_RULE_SETUP
6462 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6463         YY_BREAK
6464 case 238:
6465 /* rule 238 can match eol */
6466 case 239:
6467 /* rule 239 can match eol */
6468 YY_RULE_SETUP
6469 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6470         YY_BREAK
6471 case 240:
6472 /* rule 240 can match eol */
6473 case 241:
6474 /* rule 241 can match eol */
6475 YY_RULE_SETUP
6476 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6477         YY_BREAK
6478 case 242:
6479 /* rule 242 can match eol */
6480 YY_RULE_SETUP
6481 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);
6482         YY_BREAK
6483 case 243:
6484 /* rule 243 can match eol */
6485 YY_RULE_SETUP
6486 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);
6487         YY_BREAK
6488 case 244:
6489 /* rule 244 can match eol */
6490 YY_RULE_SETUP
6491 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);
6492         YY_BREAK
6493 case 245:
6494 /* rule 245 can match eol */
6495 YY_RULE_SETUP
6496 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);
6497         YY_BREAK
6498 case 246:
6499 /* rule 246 can match eol */
6500 case 247:
6501 /* rule 247 can match eol */
6502 YY_RULE_SETUP
6503 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6504         YY_BREAK
6505 case 248:
6506 /* rule 248 can match eol */
6507 case 249:
6508 /* rule 249 can match eol */
6509 YY_RULE_SETUP
6510 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6511         YY_BREAK
6512 case 250:
6513 /* rule 250 can match eol */
6514 YY_RULE_SETUP
6515 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);
6516         YY_BREAK
6517 case 251:
6518 /* rule 251 can match eol */
6519 YY_RULE_SETUP
6520 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);
6521         YY_BREAK
6522 case 252:
6523 /* rule 252 can match eol */
6524 YY_RULE_SETUP
6525 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);
6526         YY_BREAK
6527 case 253:
6528 /* rule 253 can match eol */
6529 YY_RULE_SETUP
6530 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);
6531         YY_BREAK
6532 case 254:
6533 /* rule 254 can match eol */
6534 YY_RULE_SETUP
6535 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);
6536         YY_BREAK
6537 case 255:
6538 /* rule 255 can match eol */
6539 YY_RULE_SETUP
6540 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);
6541         YY_BREAK
6542 case 256:
6543 YY_RULE_SETUP
6544 {
6545   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6546   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6547   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6548   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6549   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6550   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6551   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6552   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6553  }
6554         YY_BREAK
6555 case 257:
6556 YY_RULE_SETUP
6557 {
6558   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6559   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6560   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6561   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6562   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6563   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6564   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6565   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6566   switch (YY_START) {
6567    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6568    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;
6569    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6570   }
6571  }
6572         YY_BREAK
6573 case 258:
6574 YY_RULE_SETUP
6575 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6576         YY_BREAK
6577 case 259:
6578 YY_RULE_SETUP
6579 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6580         YY_BREAK
6581 case YY_STATE_EOF(AL_surfxml_cluster):
6582 FAIL("EOF in attribute list of `cluster' element.");
6583         YY_BREAK
6584
6585 case 260:
6586 /* rule 260 can match eol */
6587 YY_RULE_SETUP
6588 {
6589   LEAVE;
6590   ETag_surfxml_cluster();
6591   popbuffer(); /* attribute */
6592   switch (YY_START) {
6593    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6594    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;
6595    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6596   }
6597  }
6598         YY_BREAK
6599 case 261:
6600 /* rule 261 can match eol */
6601 YY_RULE_SETUP
6602 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6603         YY_BREAK
6604 case 262:
6605 YY_RULE_SETUP
6606 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6607         YY_BREAK
6608 case YY_STATE_EOF(E_surfxml_cluster):
6609 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6610         YY_BREAK
6611
6612 case 263:
6613 /* rule 263 can match eol */
6614 YY_RULE_SETUP
6615 FAIL("Starting tag <peer> is not allowed here.");
6616         YY_BREAK
6617 case 264:
6618 /* rule 264 can match eol */
6619 YY_RULE_SETUP
6620 {
6621   AX_surfxml_peer_id = 0;
6622   surfxml_peer_id_isset = 0;
6623   AX_surfxml_peer_power = 0;
6624   surfxml_peer_power_isset = 0;
6625   AX_surfxml_peer_bw_in = 0;
6626   surfxml_peer_bw_in_isset = 0;
6627   AX_surfxml_peer_bw_out = 0;
6628   surfxml_peer_bw_out_isset = 0;
6629   AX_surfxml_peer_lat = 0;
6630   surfxml_peer_lat_isset = 0;
6631   AX_surfxml_peer_coordinates = 0;
6632   surfxml_peer_coordinates_isset = 0;
6633   AX_surfxml_peer_availability_file = 0;
6634   surfxml_peer_availability_file_isset = 0;
6635   AX_surfxml_peer_state_file = 0;
6636   surfxml_peer_state_file_isset = 0;
6637   ENTER(AL_surfxml_peer); pushbuffer(0);
6638   }
6639         YY_BREAK
6640
6641 case 265:
6642 /* rule 265 can match eol */
6643 YY_RULE_SETUP
6644 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);
6645         YY_BREAK
6646 case 266:
6647 /* rule 266 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 267:
6652 /* rule 267 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 268:
6657 /* rule 268 can match eol */
6658 YY_RULE_SETUP
6659 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);
6660         YY_BREAK
6661 case 269:
6662 /* rule 269 can match eol */
6663 YY_RULE_SETUP
6664 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);
6665         YY_BREAK
6666 case 270:
6667 /* rule 270 can match eol */
6668 YY_RULE_SETUP
6669 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);
6670         YY_BREAK
6671 case 271:
6672 /* rule 271 can match eol */
6673 YY_RULE_SETUP
6674 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);
6675         YY_BREAK
6676 case 272:
6677 /* rule 272 can match eol */
6678 YY_RULE_SETUP
6679 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);
6680         YY_BREAK
6681 case 273:
6682 /* rule 273 can match eol */
6683 YY_RULE_SETUP
6684 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);
6685         YY_BREAK
6686 case 274:
6687 /* rule 274 can match eol */
6688 YY_RULE_SETUP
6689 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);
6690         YY_BREAK
6691 case 275:
6692 /* rule 275 can match eol */
6693 YY_RULE_SETUP
6694 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);
6695         YY_BREAK
6696 case 276:
6697 /* rule 276 can match eol */
6698 YY_RULE_SETUP
6699 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);
6700         YY_BREAK
6701 case 277:
6702 /* rule 277 can match eol */
6703 YY_RULE_SETUP
6704 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);
6705         YY_BREAK
6706 case 278:
6707 /* rule 278 can match eol */
6708 YY_RULE_SETUP
6709 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);
6710         YY_BREAK
6711 case 279:
6712 /* rule 279 can match eol */
6713 YY_RULE_SETUP
6714 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);
6715         YY_BREAK
6716 case 280:
6717 /* rule 280 can match eol */
6718 YY_RULE_SETUP
6719 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);
6720         YY_BREAK
6721 case 281:
6722 YY_RULE_SETUP
6723 {
6724   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6725   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6726   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6727   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6728   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6729   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6730  }
6731         YY_BREAK
6732 case 282:
6733 YY_RULE_SETUP
6734 {
6735   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6736   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6737   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6738   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6739   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6740   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6741   switch (YY_START) {
6742    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6743    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;
6744    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6745   }
6746  }
6747         YY_BREAK
6748 case 283:
6749 YY_RULE_SETUP
6750 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6751         YY_BREAK
6752 case 284:
6753 YY_RULE_SETUP
6754 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6755         YY_BREAK
6756 case YY_STATE_EOF(AL_surfxml_peer):
6757 FAIL("EOF in attribute list of `peer' element.");
6758         YY_BREAK
6759
6760 case 285:
6761 /* rule 285 can match eol */
6762 YY_RULE_SETUP
6763 {
6764   LEAVE;
6765   ETag_surfxml_peer();
6766   popbuffer(); /* attribute */
6767   switch (YY_START) {
6768    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6769    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;
6770    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6771   }
6772  }
6773         YY_BREAK
6774 case 286:
6775 /* rule 286 can match eol */
6776 YY_RULE_SETUP
6777 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6778         YY_BREAK
6779 case 287:
6780 YY_RULE_SETUP
6781 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6782         YY_BREAK
6783 case YY_STATE_EOF(E_surfxml_peer):
6784 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6785         YY_BREAK
6786
6787 case 288:
6788 /* rule 288 can match eol */
6789 YY_RULE_SETUP
6790 FAIL("Starting tag <router> is not allowed here.");
6791         YY_BREAK
6792 case 289:
6793 /* rule 289 can match eol */
6794 YY_RULE_SETUP
6795 {
6796   AX_surfxml_router_id = 0;
6797   surfxml_router_id_isset = 0;
6798   AX_surfxml_router_coordinates = 0;
6799   surfxml_router_coordinates_isset = 0;
6800   ENTER(AL_surfxml_router); pushbuffer(0);
6801   }
6802         YY_BREAK
6803
6804 case 290:
6805 /* rule 290 can match eol */
6806 YY_RULE_SETUP
6807 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);
6808         YY_BREAK
6809 case 291:
6810 /* rule 291 can match eol */
6811 YY_RULE_SETUP
6812 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);
6813         YY_BREAK
6814 case 292:
6815 /* rule 292 can match eol */
6816 YY_RULE_SETUP
6817 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);
6818         YY_BREAK
6819 case 293:
6820 /* rule 293 can match eol */
6821 YY_RULE_SETUP
6822 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);
6823         YY_BREAK
6824 case 294:
6825 YY_RULE_SETUP
6826 {
6827   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6828   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6829  }
6830         YY_BREAK
6831 case 295:
6832 YY_RULE_SETUP
6833 {
6834   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6835   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6836   switch (YY_START) {
6837    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6838   }
6839  }
6840         YY_BREAK
6841 case 296:
6842 YY_RULE_SETUP
6843 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6844         YY_BREAK
6845 case 297:
6846 YY_RULE_SETUP
6847 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6848         YY_BREAK
6849 case YY_STATE_EOF(AL_surfxml_router):
6850 FAIL("EOF in attribute list of `router' element.");
6851         YY_BREAK
6852
6853 case 298:
6854 /* rule 298 can match eol */
6855 YY_RULE_SETUP
6856 {
6857   LEAVE;
6858   ETag_surfxml_router();
6859   popbuffer(); /* attribute */
6860   switch (YY_START) {
6861    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6862   }
6863  }
6864         YY_BREAK
6865 case 299:
6866 /* rule 299 can match eol */
6867 YY_RULE_SETUP
6868 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6869         YY_BREAK
6870 case 300:
6871 YY_RULE_SETUP
6872 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6873         YY_BREAK
6874 case YY_STATE_EOF(E_surfxml_router):
6875 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6876         YY_BREAK
6877
6878 case 301:
6879 /* rule 301 can match eol */
6880 YY_RULE_SETUP
6881 FAIL("Starting tag <link> is not allowed here.");
6882         YY_BREAK
6883 case 302:
6884 /* rule 302 can match eol */
6885 YY_RULE_SETUP
6886 {
6887   AX_surfxml_link_id = 0;
6888   surfxml_link_id_isset = 0;
6889   AX_surfxml_link_bandwidth = 0;
6890   surfxml_link_bandwidth_isset = 0;
6891   AX_surfxml_link_bandwidth_file = 0;
6892   surfxml_link_bandwidth_file_isset = 0;
6893   AX_surfxml_link_latency = 24;
6894   surfxml_link_latency_isset = 0;
6895   AX_surfxml_link_latency_file = 0;
6896   surfxml_link_latency_file_isset = 0;
6897   AX_surfxml_link_state = A_surfxml_link_state_ON;
6898   surfxml_link_state_isset = 0;
6899   AX_surfxml_link_state_file = 0;
6900   surfxml_link_state_file_isset = 0;
6901   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6902   surfxml_link_sharing_policy_isset = 0;
6903   ENTER(AL_surfxml_link); pushbuffer(0);
6904   }
6905         YY_BREAK
6906
6907 case 303:
6908 /* rule 303 can match eol */
6909 YY_RULE_SETUP
6910 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);
6911         YY_BREAK
6912 case 304:
6913 /* rule 304 can match eol */
6914 YY_RULE_SETUP
6915 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);
6916         YY_BREAK
6917 case 305:
6918 /* rule 305 can match eol */
6919 YY_RULE_SETUP
6920 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);
6921         YY_BREAK
6922 case 306:
6923 /* rule 306 can match eol */
6924 YY_RULE_SETUP
6925 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);
6926         YY_BREAK
6927 case 307:
6928 /* rule 307 can match eol */
6929 YY_RULE_SETUP
6930 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);
6931         YY_BREAK
6932 case 308:
6933 /* rule 308 can match eol */
6934 YY_RULE_SETUP
6935 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);
6936         YY_BREAK
6937 case 309:
6938 /* rule 309 can match eol */
6939 YY_RULE_SETUP
6940 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);
6941         YY_BREAK
6942 case 310:
6943 /* rule 310 can match eol */
6944 YY_RULE_SETUP
6945 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);
6946         YY_BREAK
6947 case 311:
6948 /* rule 311 can match eol */
6949 YY_RULE_SETUP
6950 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);
6951         YY_BREAK
6952 case 312:
6953 /* rule 312 can match eol */
6954 YY_RULE_SETUP
6955 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);
6956         YY_BREAK
6957 case 313:
6958 /* rule 313 can match eol */
6959 case 314:
6960 /* rule 314 can match eol */
6961 YY_RULE_SETUP
6962 A_surfxml_link_state = A_surfxml_link_state_ON;
6963         YY_BREAK
6964 case 315:
6965 /* rule 315 can match eol */
6966 case 316:
6967 /* rule 316 can match eol */
6968 YY_RULE_SETUP
6969 A_surfxml_link_state = A_surfxml_link_state_OFF;
6970         YY_BREAK
6971 case 317:
6972 /* rule 317 can match eol */
6973 YY_RULE_SETUP
6974 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);
6975         YY_BREAK
6976 case 318:
6977 /* rule 318 can match eol */
6978 YY_RULE_SETUP
6979 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);
6980         YY_BREAK
6981 case 319:
6982 /* rule 319 can match eol */
6983 case 320:
6984 /* rule 320 can match eol */
6985 YY_RULE_SETUP
6986 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6987         YY_BREAK
6988 case 321:
6989 /* rule 321 can match eol */
6990 case 322:
6991 /* rule 322 can match eol */
6992 YY_RULE_SETUP
6993 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6994         YY_BREAK
6995 case 323:
6996 /* rule 323 can match eol */
6997 case 324:
6998 /* rule 324 can match eol */
6999 YY_RULE_SETUP
7000 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7001         YY_BREAK
7002 case 325:
7003 YY_RULE_SETUP
7004 {
7005   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7006   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7007   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7008  }
7009         YY_BREAK
7010 case 326:
7011 YY_RULE_SETUP
7012 {
7013   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7014   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7015   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7016   switch (YY_START) {
7017    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7018    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7019   }
7020  }
7021         YY_BREAK
7022 case 327:
7023 YY_RULE_SETUP
7024 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7025         YY_BREAK
7026 case 328:
7027 YY_RULE_SETUP
7028 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7029         YY_BREAK
7030 case YY_STATE_EOF(AL_surfxml_link):
7031 FAIL("EOF in attribute list of `link' element.");
7032         YY_BREAK
7033
7034 case 329:
7035 /* rule 329 can match eol */
7036 YY_RULE_SETUP
7037 {
7038   LEAVE;
7039   ETag_surfxml_link();
7040   popbuffer(); /* attribute */
7041   switch (YY_START) {
7042    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7043    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7044   }
7045  }
7046         YY_BREAK
7047 case 330:
7048 /* rule 330 can match eol */
7049 YY_RULE_SETUP
7050 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7051         YY_BREAK
7052 case 331:
7053 YY_RULE_SETUP
7054 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7055         YY_BREAK
7056 case YY_STATE_EOF(E_surfxml_link):
7057 case YY_STATE_EOF(S_surfxml_link_2):
7058 case YY_STATE_EOF(S_surfxml_link):
7059 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7060         YY_BREAK
7061
7062 case 332:
7063 /* rule 332 can match eol */
7064 YY_RULE_SETUP
7065 FAIL("Starting tag <route> is not allowed here.");
7066         YY_BREAK
7067 case 333:
7068 /* rule 333 can match eol */
7069 YY_RULE_SETUP
7070 {
7071   AX_surfxml_route_src = 0;
7072   surfxml_route_src_isset = 0;
7073   AX_surfxml_route_dst = 0;
7074   surfxml_route_dst_isset = 0;
7075   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7076   surfxml_route_symmetrical_isset = 0;
7077   ENTER(AL_surfxml_route); pushbuffer(0);
7078   }
7079         YY_BREAK
7080
7081 case 334:
7082 /* rule 334 can match eol */
7083 YY_RULE_SETUP
7084 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);
7085         YY_BREAK
7086 case 335:
7087 /* rule 335 can match eol */
7088 YY_RULE_SETUP
7089 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);
7090         YY_BREAK
7091 case 336:
7092 /* rule 336 can match eol */
7093 YY_RULE_SETUP
7094 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);
7095         YY_BREAK
7096 case 337:
7097 /* rule 337 can match eol */
7098 YY_RULE_SETUP
7099 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);
7100         YY_BREAK
7101 case 338:
7102 /* rule 338 can match eol */
7103 case 339:
7104 /* rule 339 can match eol */
7105 YY_RULE_SETUP
7106 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7107         YY_BREAK
7108 case 340:
7109 /* rule 340 can match eol */
7110 case 341:
7111 /* rule 341 can match eol */
7112 YY_RULE_SETUP
7113 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7114         YY_BREAK
7115 case 342:
7116 YY_RULE_SETUP
7117 {
7118   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7119   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7120   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7121  }
7122         YY_BREAK
7123 case 343:
7124 YY_RULE_SETUP
7125 {
7126   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7127   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7128   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7129   switch (YY_START) {
7130    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;
7131   }
7132  }
7133         YY_BREAK
7134 case 344:
7135 YY_RULE_SETUP
7136 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7137         YY_BREAK
7138 case 345:
7139 YY_RULE_SETUP
7140 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7141         YY_BREAK
7142 case YY_STATE_EOF(AL_surfxml_route):
7143 FAIL("EOF in attribute list of `route' element.");
7144         YY_BREAK
7145
7146 case 346:
7147 /* rule 346 can match eol */
7148 YY_RULE_SETUP
7149 {
7150   LEAVE;
7151   ETag_surfxml_route();
7152   popbuffer(); /* attribute */
7153   switch (YY_START) {
7154    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;
7155   }
7156  }
7157         YY_BREAK
7158 case 347:
7159 /* rule 347 can match eol */
7160 YY_RULE_SETUP
7161 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7162         YY_BREAK
7163 case 348:
7164 YY_RULE_SETUP
7165 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7166         YY_BREAK
7167 case YY_STATE_EOF(S_surfxml_route):
7168 case YY_STATE_EOF(S_surfxml_route_2):
7169 case YY_STATE_EOF(E_surfxml_route):
7170 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7171         YY_BREAK
7172
7173 case 349:
7174 /* rule 349 can match eol */
7175 YY_RULE_SETUP
7176 FAIL("Starting tag <ASroute> is not allowed here.");
7177         YY_BREAK
7178 case 350:
7179 /* rule 350 can match eol */
7180 YY_RULE_SETUP
7181 {
7182   AX_surfxml_ASroute_src = 0;
7183   surfxml_ASroute_src_isset = 0;
7184   AX_surfxml_ASroute_dst = 0;
7185   surfxml_ASroute_dst_isset = 0;
7186   AX_surfxml_ASroute_gw_src = 0;
7187   surfxml_ASroute_gw_src_isset = 0;
7188   AX_surfxml_ASroute_gw_dst = 0;
7189   surfxml_ASroute_gw_dst_isset = 0;
7190   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7191   surfxml_ASroute_symmetrical_isset = 0;
7192   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7193   }
7194         YY_BREAK
7195
7196 case 351:
7197 /* rule 351 can match eol */
7198 YY_RULE_SETUP
7199 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);
7200         YY_BREAK
7201 case 352:
7202 /* rule 352 can match eol */
7203 YY_RULE_SETUP
7204 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);
7205         YY_BREAK
7206 case 353:
7207 /* rule 353 can match eol */
7208 YY_RULE_SETUP
7209 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);
7210         YY_BREAK
7211 case 354:
7212 /* rule 354 can match eol */
7213 YY_RULE_SETUP
7214 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);
7215         YY_BREAK
7216 case 355:
7217 /* rule 355 can match eol */
7218 YY_RULE_SETUP
7219 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);
7220         YY_BREAK
7221 case 356:
7222 /* rule 356 can match eol */
7223 YY_RULE_SETUP
7224 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);
7225         YY_BREAK
7226 case 357:
7227 /* rule 357 can match eol */
7228 YY_RULE_SETUP
7229 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);
7230         YY_BREAK
7231 case 358:
7232 /* rule 358 can match eol */
7233 YY_RULE_SETUP
7234 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);
7235         YY_BREAK
7236 case 359:
7237 /* rule 359 can match eol */
7238 case 360:
7239 /* rule 360 can match eol */
7240 YY_RULE_SETUP
7241 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7242         YY_BREAK
7243 case 361:
7244 /* rule 361 can match eol */
7245 case 362:
7246 /* rule 362 can match eol */
7247 YY_RULE_SETUP
7248 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7249         YY_BREAK
7250 case 363:
7251 YY_RULE_SETUP
7252 {
7253   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7254   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7255   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7256   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7257   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7258  }
7259         YY_BREAK
7260 case 364:
7261 YY_RULE_SETUP
7262 {
7263   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7264   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7265   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7266   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7267   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7268   switch (YY_START) {
7269    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;
7270   }
7271  }
7272         YY_BREAK
7273 case 365:
7274 YY_RULE_SETUP
7275 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7276         YY_BREAK
7277 case 366:
7278 YY_RULE_SETUP
7279 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7280         YY_BREAK
7281 case YY_STATE_EOF(AL_surfxml_ASroute):
7282 FAIL("EOF in attribute list of `ASroute' element.");
7283         YY_BREAK
7284
7285 case 367:
7286 /* rule 367 can match eol */
7287 YY_RULE_SETUP
7288 {
7289   LEAVE;
7290   ETag_surfxml_ASroute();
7291   popbuffer(); /* attribute */
7292   switch (YY_START) {
7293    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;
7294   }
7295  }
7296         YY_BREAK
7297 case 368:
7298 /* rule 368 can match eol */
7299 YY_RULE_SETUP
7300 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7301         YY_BREAK
7302 case 369:
7303 YY_RULE_SETUP
7304 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7305         YY_BREAK
7306 case YY_STATE_EOF(E_surfxml_ASroute):
7307 case YY_STATE_EOF(S_surfxml_ASroute):
7308 case YY_STATE_EOF(S_surfxml_ASroute_2):
7309 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7310         YY_BREAK
7311
7312 case 370:
7313 /* rule 370 can match eol */
7314 YY_RULE_SETUP
7315 FAIL("Starting tag <link_ctn> is not allowed here.");
7316         YY_BREAK
7317 case 371:
7318 /* rule 371 can match eol */
7319 YY_RULE_SETUP
7320 {
7321   AX_surfxml_link_ctn_id = 0;
7322   surfxml_link_ctn_id_isset = 0;
7323   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7324   surfxml_link_ctn_direction_isset = 0;
7325   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7326   }
7327         YY_BREAK
7328
7329 case 372:
7330 /* rule 372 can match eol */
7331 YY_RULE_SETUP
7332 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);
7333         YY_BREAK
7334 case 373:
7335 /* rule 373 can match eol */
7336 YY_RULE_SETUP
7337 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);
7338         YY_BREAK
7339 case 374:
7340 /* rule 374 can match eol */
7341 case 375:
7342 /* rule 375 can match eol */
7343 YY_RULE_SETUP
7344 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7345         YY_BREAK
7346 case 376:
7347 /* rule 376 can match eol */
7348 case 377:
7349 /* rule 377 can match eol */
7350 YY_RULE_SETUP
7351 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7352         YY_BREAK
7353 case 378:
7354 /* rule 378 can match eol */
7355 case 379:
7356 /* rule 379 can match eol */
7357 YY_RULE_SETUP
7358 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7359         YY_BREAK
7360 case 380:
7361 YY_RULE_SETUP
7362 {
7363   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7364   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7365  }
7366         YY_BREAK
7367 case 381:
7368 YY_RULE_SETUP
7369 {
7370   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7371   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7372   switch (YY_START) {
7373    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7374    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7375    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7376    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7377   }
7378  }
7379         YY_BREAK
7380 case 382:
7381 YY_RULE_SETUP
7382 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7383         YY_BREAK
7384 case 383:
7385 YY_RULE_SETUP
7386 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7387         YY_BREAK
7388 case YY_STATE_EOF(AL_surfxml_link_ctn):
7389 FAIL("EOF in attribute list of `link_ctn' element.");
7390         YY_BREAK
7391
7392 case 384:
7393 /* rule 384 can match eol */
7394 YY_RULE_SETUP
7395 {
7396   LEAVE;
7397   ETag_surfxml_link_ctn();
7398   popbuffer(); /* attribute */
7399   switch (YY_START) {
7400    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7401    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7402    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7403    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7404   }
7405  }
7406         YY_BREAK
7407 case 385:
7408 /* rule 385 can match eol */
7409 YY_RULE_SETUP
7410 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7411         YY_BREAK
7412 case 386:
7413 YY_RULE_SETUP
7414 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7415         YY_BREAK
7416 case YY_STATE_EOF(E_surfxml_link_ctn):
7417 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7418         YY_BREAK
7419
7420 case 387:
7421 /* rule 387 can match eol */
7422 YY_RULE_SETUP
7423 FAIL("Starting tag <bypassRoute> is not allowed here.");
7424         YY_BREAK
7425 case 388:
7426 /* rule 388 can match eol */
7427 YY_RULE_SETUP
7428 {
7429   AX_surfxml_bypassRoute_src = 0;
7430   surfxml_bypassRoute_src_isset = 0;
7431   AX_surfxml_bypassRoute_dst = 0;
7432   surfxml_bypassRoute_dst_isset = 0;
7433   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7434   }
7435         YY_BREAK
7436
7437 case 389:
7438 /* rule 389 can match eol */
7439 YY_RULE_SETUP
7440 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);
7441         YY_BREAK
7442 case 390:
7443 /* rule 390 can match eol */
7444 YY_RULE_SETUP
7445 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);
7446         YY_BREAK
7447 case 391:
7448 /* rule 391 can match eol */
7449 YY_RULE_SETUP
7450 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);
7451         YY_BREAK
7452 case 392:
7453 /* rule 392 can match eol */
7454 YY_RULE_SETUP
7455 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);
7456         YY_BREAK
7457 case 393:
7458 YY_RULE_SETUP
7459 {
7460   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7461   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7462   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7463  }
7464         YY_BREAK
7465 case 394:
7466 YY_RULE_SETUP
7467 {
7468   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7469   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7470   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7471   switch (YY_START) {
7472    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;
7473   }
7474  }
7475         YY_BREAK
7476 case 395:
7477 YY_RULE_SETUP
7478 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7479         YY_BREAK
7480 case 396:
7481 YY_RULE_SETUP
7482 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7483         YY_BREAK
7484 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7485 FAIL("EOF in attribute list of `bypassRoute' element.");
7486         YY_BREAK
7487
7488 case 397:
7489 /* rule 397 can match eol */
7490 YY_RULE_SETUP
7491 {
7492   LEAVE;
7493   ETag_surfxml_bypassRoute();
7494   popbuffer(); /* attribute */
7495   switch (YY_START) {
7496    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;
7497   }
7498  }
7499         YY_BREAK
7500 case 398:
7501 /* rule 398 can match eol */
7502 YY_RULE_SETUP
7503 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7504         YY_BREAK
7505 case 399:
7506 YY_RULE_SETUP
7507 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7508         YY_BREAK
7509 case YY_STATE_EOF(S_surfxml_bypassRoute):
7510 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7511 case YY_STATE_EOF(E_surfxml_bypassRoute):
7512 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7513         YY_BREAK
7514
7515 case 400:
7516 /* rule 400 can match eol */
7517 YY_RULE_SETUP
7518 FAIL("Starting tag <bypassASroute> is not allowed here.");
7519         YY_BREAK
7520 case 401:
7521 /* rule 401 can match eol */
7522 YY_RULE_SETUP
7523 {
7524   AX_surfxml_bypassASroute_src = 0;
7525   surfxml_bypassASroute_src_isset = 0;
7526   AX_surfxml_bypassASroute_dst = 0;
7527   surfxml_bypassASroute_dst_isset = 0;
7528   AX_surfxml_bypassASroute_gw_src = 0;
7529   surfxml_bypassASroute_gw_src_isset = 0;
7530   AX_surfxml_bypassASroute_gw_dst = 0;
7531   surfxml_bypassASroute_gw_dst_isset = 0;
7532   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7533   }
7534         YY_BREAK
7535
7536 case 402:
7537 /* rule 402 can match eol */
7538 YY_RULE_SETUP
7539 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);
7540         YY_BREAK
7541 case 403:
7542 /* rule 403 can match eol */
7543 YY_RULE_SETUP
7544 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);
7545         YY_BREAK
7546 case 404:
7547 /* rule 404 can match eol */
7548 YY_RULE_SETUP
7549 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);
7550         YY_BREAK
7551 case 405:
7552 /* rule 405 can match eol */
7553 YY_RULE_SETUP
7554 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);
7555         YY_BREAK
7556 case 406:
7557 /* rule 406 can match eol */
7558 YY_RULE_SETUP
7559 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);
7560         YY_BREAK
7561 case 407:
7562 /* rule 407 can match eol */
7563 YY_RULE_SETUP
7564 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);
7565         YY_BREAK
7566 case 408:
7567 /* rule 408 can match eol */
7568 YY_RULE_SETUP
7569 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);
7570         YY_BREAK
7571 case 409:
7572 /* rule 409 can match eol */
7573 YY_RULE_SETUP
7574 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);
7575         YY_BREAK
7576 case 410:
7577 YY_RULE_SETUP
7578 {
7579   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7580   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7581   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7582   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7583   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7584  }
7585         YY_BREAK
7586 case 411:
7587 YY_RULE_SETUP
7588 {
7589   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7590   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7591   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7592   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7593   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7594   switch (YY_START) {
7595    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;
7596   }
7597  }
7598         YY_BREAK
7599 case 412:
7600 YY_RULE_SETUP
7601 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7602         YY_BREAK
7603 case 413:
7604 YY_RULE_SETUP
7605 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7606         YY_BREAK
7607 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7608 FAIL("EOF in attribute list of `bypassASroute' element.");
7609         YY_BREAK
7610
7611 case 414:
7612 /* rule 414 can match eol */
7613 YY_RULE_SETUP
7614 {
7615   LEAVE;
7616   ETag_surfxml_bypassASroute();
7617   popbuffer(); /* attribute */
7618   switch (YY_START) {
7619    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;
7620   }
7621  }
7622         YY_BREAK
7623 case 415:
7624 /* rule 415 can match eol */
7625 YY_RULE_SETUP
7626 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7627         YY_BREAK
7628 case 416:
7629 YY_RULE_SETUP
7630 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7631         YY_BREAK
7632 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7633 case YY_STATE_EOF(E_surfxml_bypassASroute):
7634 case YY_STATE_EOF(S_surfxml_bypassASroute):
7635 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7636         YY_BREAK
7637
7638 case 417:
7639 /* rule 417 can match eol */
7640 YY_RULE_SETUP
7641 FAIL("Starting tag <process> is not allowed here.");
7642         YY_BREAK
7643 case 418:
7644 /* rule 418 can match eol */
7645 YY_RULE_SETUP
7646 {
7647   AX_surfxml_process_host = 0;
7648   surfxml_process_host_isset = 0;
7649   AX_surfxml_process_function = 0;
7650   surfxml_process_function_isset = 0;
7651   AX_surfxml_process_start_time = 28;
7652   surfxml_process_start_time_isset = 0;
7653   AX_surfxml_process_kill_time = 33;
7654   surfxml_process_kill_time_isset = 0;
7655   ENTER(AL_surfxml_process); pushbuffer(0);
7656   }
7657         YY_BREAK
7658
7659 case 419:
7660 /* rule 419 can match eol */
7661 YY_RULE_SETUP
7662 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);
7663         YY_BREAK
7664 case 420:
7665 /* rule 420 can match eol */
7666 YY_RULE_SETUP
7667 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);
7668         YY_BREAK
7669 case 421:
7670 /* rule 421 can match eol */
7671 YY_RULE_SETUP
7672 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);
7673         YY_BREAK
7674 case 422:
7675 /* rule 422 can match eol */
7676 YY_RULE_SETUP
7677 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);
7678         YY_BREAK
7679 case 423:
7680 /* rule 423 can match eol */
7681 YY_RULE_SETUP
7682 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);
7683         YY_BREAK
7684 case 424:
7685 /* rule 424 can match eol */
7686 YY_RULE_SETUP
7687 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);
7688         YY_BREAK
7689 case 425:
7690 /* rule 425 can match eol */
7691 YY_RULE_SETUP
7692 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);
7693         YY_BREAK
7694 case 426:
7695 /* rule 426 can match eol */
7696 YY_RULE_SETUP
7697 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);
7698         YY_BREAK
7699 case 427:
7700 YY_RULE_SETUP
7701 {
7702   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7703   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7704   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7705  }
7706         YY_BREAK
7707 case 428:
7708 YY_RULE_SETUP
7709 {
7710   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7711   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7712   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7713   switch (YY_START) {
7714    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;
7715   }
7716  }
7717         YY_BREAK
7718 case 429:
7719 YY_RULE_SETUP
7720 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7721         YY_BREAK
7722 case 430:
7723 YY_RULE_SETUP
7724 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7725         YY_BREAK
7726 case YY_STATE_EOF(AL_surfxml_process):
7727 FAIL("EOF in attribute list of `process' element.");
7728         YY_BREAK
7729
7730 case 431:
7731 /* rule 431 can match eol */
7732 YY_RULE_SETUP
7733 {
7734   LEAVE;
7735   ETag_surfxml_process();
7736   popbuffer(); /* attribute */
7737   switch (YY_START) {
7738    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;
7739   }
7740  }
7741         YY_BREAK
7742 case 432:
7743 /* rule 432 can match eol */
7744 YY_RULE_SETUP
7745 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7746         YY_BREAK
7747 case 433:
7748 YY_RULE_SETUP
7749 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7750         YY_BREAK
7751 case YY_STATE_EOF(E_surfxml_process):
7752 case YY_STATE_EOF(S_surfxml_process):
7753 case YY_STATE_EOF(S_surfxml_process_2):
7754 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7755         YY_BREAK
7756
7757 case 434:
7758 /* rule 434 can match eol */
7759 YY_RULE_SETUP
7760 FAIL("Starting tag <argument> is not allowed here.");
7761         YY_BREAK
7762 case 435:
7763 /* rule 435 can match eol */
7764 YY_RULE_SETUP
7765 {
7766   AX_surfxml_argument_value = 0;
7767   surfxml_argument_value_isset = 0;
7768   ENTER(AL_surfxml_argument); pushbuffer(0);
7769   }
7770         YY_BREAK
7771
7772 case 436:
7773 /* rule 436 can match eol */
7774 YY_RULE_SETUP
7775 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);
7776         YY_BREAK
7777 case 437:
7778 /* rule 437 can match eol */
7779 YY_RULE_SETUP
7780 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);
7781         YY_BREAK
7782 case 438:
7783 YY_RULE_SETUP
7784 {
7785   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7786   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7787  }
7788         YY_BREAK
7789 case 439:
7790 YY_RULE_SETUP
7791 {
7792   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7793   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7794   switch (YY_START) {
7795    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7796   }
7797  }
7798         YY_BREAK
7799 case 440:
7800 YY_RULE_SETUP
7801 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7802         YY_BREAK
7803 case 441:
7804 YY_RULE_SETUP
7805 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7806         YY_BREAK
7807 case YY_STATE_EOF(AL_surfxml_argument):
7808 FAIL("EOF in attribute list of `argument' element.");
7809         YY_BREAK
7810
7811 case 442:
7812 /* rule 442 can match eol */
7813 YY_RULE_SETUP
7814 {
7815   LEAVE;
7816   ETag_surfxml_argument();
7817   popbuffer(); /* attribute */
7818   switch (YY_START) {
7819    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7820   }
7821  }
7822         YY_BREAK
7823 case 443:
7824 /* rule 443 can match eol */
7825 YY_RULE_SETUP
7826 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7827         YY_BREAK
7828 case 444:
7829 YY_RULE_SETUP
7830 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7831         YY_BREAK
7832 case YY_STATE_EOF(E_surfxml_argument):
7833 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7834         YY_BREAK
7835
7836 case 445:
7837 /* rule 445 can match eol */
7838 YY_RULE_SETUP
7839 FAIL("Starting tag <config> is not allowed here.");
7840         YY_BREAK
7841 case 446:
7842 /* rule 446 can match eol */
7843 YY_RULE_SETUP
7844 {
7845   AX_surfxml_config_id = 0;
7846   surfxml_config_id_isset = 0;
7847   ENTER(AL_surfxml_config); pushbuffer(0);
7848   }
7849         YY_BREAK
7850
7851 case 447:
7852 /* rule 447 can match eol */
7853 YY_RULE_SETUP
7854 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);
7855         YY_BREAK
7856 case 448:
7857 /* rule 448 can match eol */
7858 YY_RULE_SETUP
7859 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);
7860         YY_BREAK
7861 case 449:
7862 YY_RULE_SETUP
7863 {
7864   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7865  }
7866         YY_BREAK
7867 case 450:
7868 YY_RULE_SETUP
7869 {
7870   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7871   switch (YY_START) {
7872    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7873   }
7874  }
7875         YY_BREAK
7876 case 451:
7877 YY_RULE_SETUP
7878 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7879         YY_BREAK
7880 case 452:
7881 YY_RULE_SETUP
7882 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7883         YY_BREAK
7884 case YY_STATE_EOF(AL_surfxml_config):
7885 FAIL("EOF in attribute list of `config' element.");
7886         YY_BREAK
7887
7888 case 453:
7889 /* rule 453 can match eol */
7890 YY_RULE_SETUP
7891 {
7892   LEAVE;
7893   ETag_surfxml_config();
7894   popbuffer(); /* attribute */
7895   switch (YY_START) {
7896    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7897   }
7898  }
7899         YY_BREAK
7900 case 454:
7901 /* rule 454 can match eol */
7902 YY_RULE_SETUP
7903 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7904         YY_BREAK
7905 case 455:
7906 YY_RULE_SETUP
7907 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7908         YY_BREAK
7909 case YY_STATE_EOF(S_surfxml_config):
7910 case YY_STATE_EOF(S_surfxml_config_2):
7911 case YY_STATE_EOF(E_surfxml_config):
7912 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7913         YY_BREAK
7914
7915 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7916   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7917 case 456:
7918 /* rule 456 can match eol */
7919 YY_RULE_SETUP
7920 FAIL("Starting tag <prop> is not allowed here.");
7921         YY_BREAK
7922 case 457:
7923 /* rule 457 can match eol */
7924 YY_RULE_SETUP
7925 {
7926   AX_surfxml_prop_id = 0;
7927   surfxml_prop_id_isset = 0;
7928   AX_surfxml_prop_value = 0;
7929   surfxml_prop_value_isset = 0;
7930   ENTER(AL_surfxml_prop); pushbuffer(0);
7931   }
7932         YY_BREAK
7933
7934 case 458:
7935 /* rule 458 can match eol */
7936 YY_RULE_SETUP
7937 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);
7938         YY_BREAK
7939 case 459:
7940 /* rule 459 can match eol */
7941 YY_RULE_SETUP
7942 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);
7943         YY_BREAK
7944 case 460:
7945 /* rule 460 can match eol */
7946 YY_RULE_SETUP
7947 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);
7948         YY_BREAK
7949 case 461:
7950 /* rule 461 can match eol */
7951 YY_RULE_SETUP
7952 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);
7953         YY_BREAK
7954 case 462:
7955 YY_RULE_SETUP
7956 {
7957   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7958   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7959   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7960  }
7961         YY_BREAK
7962 case 463:
7963 YY_RULE_SETUP
7964 {
7965   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7966   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7967   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7968   switch (YY_START) {
7969    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7970    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7971    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7972    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7973    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7974    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7975    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7976   }
7977  }
7978         YY_BREAK
7979 case 464:
7980 YY_RULE_SETUP
7981 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7982         YY_BREAK
7983 case 465:
7984 YY_RULE_SETUP
7985 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7986         YY_BREAK
7987 case YY_STATE_EOF(AL_surfxml_prop):
7988 FAIL("EOF in attribute list of `prop' element.");
7989         YY_BREAK
7990
7991 case 466:
7992 /* rule 466 can match eol */
7993 YY_RULE_SETUP
7994 {
7995   LEAVE;
7996   ETag_surfxml_prop();
7997   popbuffer(); /* attribute */
7998   switch (YY_START) {
7999    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8000    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8001    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8002    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8003    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8004    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8005    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8006   }
8007  }
8008         YY_BREAK
8009 case 467:
8010 /* rule 467 can match eol */
8011 YY_RULE_SETUP
8012 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8013         YY_BREAK
8014 case 468:
8015 YY_RULE_SETUP
8016 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8017         YY_BREAK
8018 case YY_STATE_EOF(E_surfxml_prop):
8019 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8020         YY_BREAK
8021
8022 /* EPILOG: after the root element. */
8023
8024 case 469:
8025 YY_RULE_SETUP
8026 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8027         YY_BREAK
8028 case YY_STATE_EOF(EPILOG):
8029 SUCCEED;
8030         YY_BREAK
8031
8032 /* CHARACTER DATA. */
8033
8034 /* Non-defined standard entities... */
8035 case 470:
8036 YY_RULE_SETUP
8037 BUFFERPUTC('&');
8038         YY_BREAK
8039 case 471:
8040 YY_RULE_SETUP
8041 BUFFERPUTC('<');
8042         YY_BREAK
8043 case 472:
8044 YY_RULE_SETUP
8045 BUFFERPUTC('>');
8046         YY_BREAK
8047 case 473:
8048 YY_RULE_SETUP
8049 BUFFERPUTC('\'');
8050         YY_BREAK
8051 case 474:
8052 YY_RULE_SETUP
8053 BUFFERPUTC('"');
8054         YY_BREAK
8055 /* Character entities. */
8056 case 475:
8057 YY_RULE_SETUP
8058 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8059         YY_BREAK
8060 case 476:
8061 YY_RULE_SETUP
8062 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8063         YY_BREAK
8064
8065 case 477:
8066 /* rule 477 can match eol */
8067 case 478:
8068 /* rule 478 can match eol */
8069 case 479:
8070 /* rule 479 can match eol */
8071 case 480:
8072 /* rule 480 can match eol */
8073 YY_RULE_SETUP
8074 BUFFERPUTC('\n');
8075         YY_BREAK
8076
8077 case 481:
8078 YY_RULE_SETUP
8079 ENTER(CDATA);
8080         YY_BREAK
8081 case 482:
8082 YY_RULE_SETUP
8083 FAIL("Unexpected `]""]>' in character data.");
8084         YY_BREAK
8085
8086 case 483:
8087 YY_RULE_SETUP
8088 BUFFERDONE; LEAVE;
8089         YY_BREAK
8090 case YY_STATE_EOF(VALUE1):
8091 FAIL("EOF in literal (\"'\" expected).");
8092         YY_BREAK
8093
8094 case 484:
8095 YY_RULE_SETUP
8096 BUFFERDONE; LEAVE;
8097         YY_BREAK
8098 case YY_STATE_EOF(VALUE2):
8099 FAIL("EOF in literal (`\"' expected).");
8100         YY_BREAK
8101
8102 case 485:
8103 /* rule 485 can match eol */
8104 YY_RULE_SETUP
8105 BUFFERPUTC(surf_parse_text[0]);
8106         YY_BREAK
8107 case 486:
8108 YY_RULE_SETUP
8109 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8110         YY_BREAK
8111
8112 case 487:
8113 YY_RULE_SETUP
8114 LEAVE;
8115         YY_BREAK
8116 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8117 case 488:
8118 YY_RULE_SETUP
8119 BUFFERPUTC(surf_parse_text[0]);
8120         YY_BREAK
8121 case YY_STATE_EOF(CDATA):
8122 FAIL("EOF in CDATA section.");
8123         YY_BREAK
8124
8125 /* Impossible rules to avoid warnings from flex(1). */
8126 /* Ideally, this should be replaced by code in flexml.pl that
8127     generates just the states not covered by other rules. */
8128
8129 case 489:
8130 /* rule 489 can match eol */
8131 YY_RULE_SETUP
8132 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8133         YY_BREAK
8134
8135 case 490:
8136 YY_RULE_SETUP
8137 ECHO;
8138         YY_BREAK
8139 case YY_STATE_EOF(INITIAL):
8140 case YY_STATE_EOF(ROOT_surfxml_platform):
8141 case YY_STATE_EOF(S_surfxml_platform_2):
8142 case YY_STATE_EOF(S_surfxml_platform_5):
8143 case YY_STATE_EOF(S_surfxml_platform_7):
8144 case YY_STATE_EOF(S_surfxml_include_1):
8145 case YY_STATE_EOF(S_surfxml_random_1):
8146 case YY_STATE_EOF(S_surfxml_AS_2):
8147 case YY_STATE_EOF(S_surfxml_AS_5):
8148 case YY_STATE_EOF(S_surfxml_AS_7):
8149 case YY_STATE_EOF(S_surfxml_AS_10):
8150 case YY_STATE_EOF(S_surfxml_AS_12):
8151 case YY_STATE_EOF(S_surfxml_storage_type_1):
8152 case YY_STATE_EOF(S_surfxml_storage_1):
8153 case YY_STATE_EOF(S_surfxml_host_1):
8154 case YY_STATE_EOF(S_surfxml_link_1):
8155 case YY_STATE_EOF(S_surfxml_route_1):
8156 case YY_STATE_EOF(S_surfxml_ASroute_1):
8157 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8158 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8159 case YY_STATE_EOF(S_surfxml_process_1):
8160 case YY_STATE_EOF(S_surfxml_config_1):
8161 case YY_STATE_EOF(IMPOSSIBLE):
8162         yyterminate();
8163
8164         case YY_END_OF_BUFFER:
8165                 {
8166                 /* Amount of text matched not including the EOB char. */
8167                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8168
8169                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8170                 *yy_cp = (yy_hold_char);
8171                 YY_RESTORE_YY_MORE_OFFSET
8172
8173                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8174                         {
8175                         /* We're scanning a new file or input source.  It's
8176                          * possible that this happened because the user
8177                          * just pointed surf_parse_in at a new source and called
8178                          * surf_parse_lex().  If so, then we have to assure
8179                          * consistency between YY_CURRENT_BUFFER and our
8180                          * globals.  Here is the right place to do so, because
8181                          * this is the first action (other than possibly a
8182                          * back-up) that will match for the new input source.
8183                          */
8184                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8185                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8186                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8187                         }
8188
8189                 /* Note that here we test for yy_c_buf_p "<=" to the position
8190                  * of the first EOB in the buffer, since yy_c_buf_p will
8191                  * already have been incremented past the NUL character
8192                  * (since all states make transitions on EOB to the
8193                  * end-of-buffer state).  Contrast this with the test
8194                  * in input().
8195                  */
8196                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8197                         { /* This was really a NUL. */
8198                         yy_state_type yy_next_state;
8199
8200                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8201
8202                         yy_current_state = yy_get_previous_state(  );
8203
8204                         /* Okay, we're now positioned to make the NUL
8205                          * transition.  We couldn't have
8206                          * yy_get_previous_state() go ahead and do it
8207                          * for us because it doesn't know how to deal
8208                          * with the possibility of jamming (and we don't
8209                          * want to build jamming into it because then it
8210                          * will run more slowly).
8211                          */
8212
8213                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8214
8215                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8216
8217                         if ( yy_next_state )
8218                                 {
8219                                 /* Consume the NUL. */
8220                                 yy_cp = ++(yy_c_buf_p);
8221                                 yy_current_state = yy_next_state;
8222                                 goto yy_match;
8223                                 }
8224
8225                         else
8226                                 {
8227                                 yy_cp = (yy_c_buf_p);
8228                                 goto yy_find_action;
8229                                 }
8230                         }
8231
8232                 else switch ( yy_get_next_buffer(  ) )
8233                         {
8234                         case EOB_ACT_END_OF_FILE:
8235                                 {
8236                                 (yy_did_buffer_switch_on_eof) = 0;
8237
8238                                 if ( surf_parse_wrap( ) )
8239                                         {
8240                                         /* Note: because we've taken care in
8241                                          * yy_get_next_buffer() to have set up
8242                                          * surf_parse_text, we can now set up
8243                                          * yy_c_buf_p so that if some total
8244                                          * hoser (like flex itself) wants to
8245                                          * call the scanner after we return the
8246                                          * YY_NULL, it'll still work - another
8247                                          * YY_NULL will get returned.
8248                                          */
8249                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8250
8251                                         yy_act = YY_STATE_EOF(YY_START);
8252                                         goto do_action;
8253                                         }
8254
8255                                 else
8256                                         {
8257                                         if ( ! (yy_did_buffer_switch_on_eof) )
8258                                                 YY_NEW_FILE;
8259                                         }
8260                                 break;
8261                                 }
8262
8263                         case EOB_ACT_CONTINUE_SCAN:
8264                                 (yy_c_buf_p) =
8265                                         (yytext_ptr) + yy_amount_of_matched_text;
8266
8267                                 yy_current_state = yy_get_previous_state(  );
8268
8269                                 yy_cp = (yy_c_buf_p);
8270                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8271                                 goto yy_match;
8272
8273                         case EOB_ACT_LAST_MATCH:
8274                                 (yy_c_buf_p) =
8275                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8276
8277                                 yy_current_state = yy_get_previous_state(  );
8278
8279                                 yy_cp = (yy_c_buf_p);
8280                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8281                                 goto yy_find_action;
8282                         }
8283                 break;
8284                 }
8285
8286         default:
8287                 YY_FATAL_ERROR(
8288                         "fatal flex scanner internal error--no action found" );
8289         } /* end of action switch */
8290                 } /* end of scanning one token */
8291 } /* end of surf_parse_lex */
8292
8293 /* yy_get_next_buffer - try to read in a new buffer
8294  *
8295  * Returns a code representing an action:
8296  *      EOB_ACT_LAST_MATCH -
8297  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8298  *      EOB_ACT_END_OF_FILE - end of file
8299  */
8300 static int yy_get_next_buffer (void)
8301 {
8302         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8303         register char *source = (yytext_ptr);
8304         register int number_to_move, i;
8305         int ret_val;
8306
8307         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8308                 YY_FATAL_ERROR(
8309                 "fatal flex scanner internal error--end of buffer missed" );
8310
8311         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8312                 { /* Don't try to fill the buffer, so this is an EOF. */
8313                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8314                         {
8315                         /* We matched a single character, the EOB, so
8316                          * treat this as a final EOF.
8317                          */
8318                         return EOB_ACT_END_OF_FILE;
8319                         }
8320
8321                 else
8322                         {
8323                         /* We matched some text prior to the EOB, first
8324                          * process it.
8325                          */
8326                         return EOB_ACT_LAST_MATCH;
8327                         }
8328                 }
8329
8330         /* Try to read more data. */
8331
8332         /* First move last chars to start of buffer. */
8333         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8334
8335         for ( i = 0; i < number_to_move; ++i )
8336                 *(dest++) = *(source++);
8337
8338         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8339                 /* don't do the read, it's not guaranteed to return an EOF,
8340                  * just force an EOF
8341                  */
8342                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8343
8344         else
8345                 {
8346                         int num_to_read =
8347                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8348
8349                 while ( num_to_read <= 0 )
8350                         { /* Not enough room in the buffer - grow it. */
8351
8352                         /* just a shorter name for the current buffer */
8353                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8354
8355                         int yy_c_buf_p_offset =
8356                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8357
8358                         if ( b->yy_is_our_buffer )
8359                                 {
8360                                 int new_size = b->yy_buf_size * 2;
8361
8362                                 if ( new_size <= 0 )
8363                                         b->yy_buf_size += b->yy_buf_size / 8;
8364                                 else
8365                                         b->yy_buf_size *= 2;
8366
8367                                 b->yy_ch_buf = (char *)
8368                                         /* Include room in for 2 EOB chars. */
8369                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8370                                 }
8371                         else
8372                                 /* Can't grow it, we don't own it. */
8373                                 b->yy_ch_buf = 0;
8374
8375                         if ( ! b->yy_ch_buf )
8376                                 YY_FATAL_ERROR(
8377                                 "fatal error - scanner input buffer overflow" );
8378
8379                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8380
8381                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8382                                                 number_to_move - 1;
8383
8384                         }
8385
8386                 if ( num_to_read > YY_READ_BUF_SIZE )
8387                         num_to_read = YY_READ_BUF_SIZE;
8388
8389                 /* Read in more data. */
8390                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8391                         (yy_n_chars), (size_t) num_to_read );
8392
8393                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8394                 }
8395
8396         if ( (yy_n_chars) == 0 )
8397                 {
8398                 if ( number_to_move == YY_MORE_ADJ )
8399                         {
8400                         ret_val = EOB_ACT_END_OF_FILE;
8401                         surf_parse_restart(surf_parse_in  );
8402                         }
8403
8404                 else
8405                         {
8406                         ret_val = EOB_ACT_LAST_MATCH;
8407                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8408                                 YY_BUFFER_EOF_PENDING;
8409                         }
8410                 }
8411
8412         else
8413                 ret_val = EOB_ACT_CONTINUE_SCAN;
8414
8415         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8416                 /* Extend the array by 50%, plus the number we really need. */
8417                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8418                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8419                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8420                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8421         }
8422
8423         (yy_n_chars) += number_to_move;
8424         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8425         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8426
8427         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8428
8429         return ret_val;
8430 }
8431
8432 /* yy_get_previous_state - get the state just before the EOB char was reached */
8433
8434     static yy_state_type yy_get_previous_state (void)
8435 {
8436         register yy_state_type yy_current_state;
8437         register char *yy_cp;
8438     
8439         yy_current_state = (yy_start);
8440
8441         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8442                 {
8443                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8444                 if ( yy_accept[yy_current_state] )
8445                         {
8446                         (yy_last_accepting_state) = yy_current_state;
8447                         (yy_last_accepting_cpos) = yy_cp;
8448                         }
8449                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8450                         {
8451                         yy_current_state = (int) yy_def[yy_current_state];
8452                         if ( yy_current_state >= 2921 )
8453                                 yy_c = yy_meta[(unsigned int) yy_c];
8454                         }
8455                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8456                 }
8457
8458         return yy_current_state;
8459 }
8460
8461 /* yy_try_NUL_trans - try to make a transition on the NUL character
8462  *
8463  * synopsis
8464  *      next_state = yy_try_NUL_trans( current_state );
8465  */
8466     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8467 {
8468         register int yy_is_jam;
8469         register char *yy_cp = (yy_c_buf_p);
8470
8471         register YY_CHAR yy_c = 1;
8472         if ( yy_accept[yy_current_state] )
8473                 {
8474                 (yy_last_accepting_state) = yy_current_state;
8475                 (yy_last_accepting_cpos) = yy_cp;
8476                 }
8477         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8478                 {
8479                 yy_current_state = (int) yy_def[yy_current_state];
8480                 if ( yy_current_state >= 2921 )
8481                         yy_c = yy_meta[(unsigned int) yy_c];
8482                 }
8483         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8484         yy_is_jam = (yy_current_state == 2920);
8485
8486         return yy_is_jam ? 0 : yy_current_state;
8487 }
8488
8489 #ifndef YY_NO_INPUT
8490 #ifdef __cplusplus
8491     static int yyinput (void)
8492 #else
8493     static int input  (void)
8494 #endif
8495
8496 {
8497         int c;
8498     
8499         *(yy_c_buf_p) = (yy_hold_char);
8500
8501         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8502                 {
8503                 /* yy_c_buf_p now points to the character we want to return.
8504                  * If this occurs *before* the EOB characters, then it's a
8505                  * valid NUL; if not, then we've hit the end of the buffer.
8506                  */
8507                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8508                         /* This was really a NUL. */
8509                         *(yy_c_buf_p) = '\0';
8510
8511                 else
8512                         { /* need more input */
8513                         int offset = (yy_c_buf_p) - (yytext_ptr);
8514                         ++(yy_c_buf_p);
8515
8516                         switch ( yy_get_next_buffer(  ) )
8517                                 {
8518                                 case EOB_ACT_LAST_MATCH:
8519                                         /* This happens because yy_g_n_b()
8520                                          * sees that we've accumulated a
8521                                          * token and flags that we need to
8522                                          * try matching the token before
8523                                          * proceeding.  But for input(),
8524                                          * there's no matching to consider.
8525                                          * So convert the EOB_ACT_LAST_MATCH
8526                                          * to EOB_ACT_END_OF_FILE.
8527                                          */
8528
8529                                         /* Reset buffer status. */
8530                                         surf_parse_restart(surf_parse_in );
8531
8532                                         /*FALLTHROUGH*/
8533
8534                                 case EOB_ACT_END_OF_FILE:
8535                                         {
8536                                         if ( surf_parse_wrap( ) )
8537                                                 return EOF;
8538
8539                                         if ( ! (yy_did_buffer_switch_on_eof) )
8540                                                 YY_NEW_FILE;
8541 #ifdef __cplusplus
8542                                         return yyinput();
8543 #else
8544                                         return input();
8545 #endif
8546                                         }
8547
8548                                 case EOB_ACT_CONTINUE_SCAN:
8549                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8550                                         break;
8551                                 }
8552                         }
8553                 }
8554
8555         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8556         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8557         (yy_hold_char) = *++(yy_c_buf_p);
8558
8559         if ( c == '\n' )
8560                    
8561     surf_parse_lineno++;
8562 ;
8563
8564         return c;
8565 }
8566 #endif  /* ifndef YY_NO_INPUT */
8567
8568 /** Immediately switch to a different input stream.
8569  * @param input_file A readable stream.
8570  * 
8571  * @note This function does not reset the start condition to @c INITIAL .
8572  */
8573     void surf_parse_restart  (FILE * input_file )
8574 {
8575     
8576         if ( ! YY_CURRENT_BUFFER ){
8577         surf_parse_ensure_buffer_stack ();
8578                 YY_CURRENT_BUFFER_LVALUE =
8579             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8580         }
8581
8582         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8583         surf_parse__load_buffer_state( );
8584 }
8585
8586 /** Switch to a different input buffer.
8587  * @param new_buffer The new input buffer.
8588  * 
8589  */
8590     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8591 {
8592     
8593         /* TODO. We should be able to replace this entire function body
8594          * with
8595          *              surf_parse_pop_buffer_state();
8596          *              surf_parse_push_buffer_state(new_buffer);
8597      */
8598         surf_parse_ensure_buffer_stack ();
8599         if ( YY_CURRENT_BUFFER == new_buffer )
8600                 return;
8601
8602         if ( YY_CURRENT_BUFFER )
8603                 {
8604                 /* Flush out information for old buffer. */
8605                 *(yy_c_buf_p) = (yy_hold_char);
8606                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8607                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8608                 }
8609
8610         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8611         surf_parse__load_buffer_state( );
8612
8613         /* We don't actually know whether we did this switch during
8614          * EOF (surf_parse_wrap()) processing, but the only time this flag
8615          * is looked at is after surf_parse_wrap() is called, so it's safe
8616          * to go ahead and always set it.
8617          */
8618         (yy_did_buffer_switch_on_eof) = 1;
8619 }
8620
8621 static void surf_parse__load_buffer_state  (void)
8622 {
8623         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8624         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8625         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8626         (yy_hold_char) = *(yy_c_buf_p);
8627 }
8628
8629 /** Allocate and initialize an input buffer state.
8630  * @param file A readable stream.
8631  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8632  * 
8633  * @return the allocated buffer state.
8634  */
8635     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8636 {
8637         YY_BUFFER_STATE b;
8638     
8639         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8640         if ( ! b )
8641                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8642
8643         b->yy_buf_size = size;
8644
8645         /* yy_ch_buf has to be 2 characters longer than the size given because
8646          * we need to put in 2 end-of-buffer characters.
8647          */
8648         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8649         if ( ! b->yy_ch_buf )
8650                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8651
8652         b->yy_is_our_buffer = 1;
8653
8654         surf_parse__init_buffer(b,file );
8655
8656         return b;
8657 }
8658
8659 /** Destroy the buffer.
8660  * @param b a buffer created with surf_parse__create_buffer()
8661  * 
8662  */
8663     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8664 {
8665     
8666         if ( ! b )
8667                 return;
8668
8669         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8670                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8671
8672         if ( b->yy_is_our_buffer )
8673                 surf_parse_free((void *) b->yy_ch_buf  );
8674
8675         surf_parse_free((void *) b  );
8676 }
8677
8678 #ifndef __cplusplus
8679 extern int isatty (int );
8680 #endif /* __cplusplus */
8681     
8682 /* Initializes or reinitializes a buffer.
8683  * This function is sometimes called more than once on the same buffer,
8684  * such as during a surf_parse_restart() or at EOF.
8685  */
8686     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8687
8688 {
8689         int oerrno = errno;
8690     
8691         surf_parse__flush_buffer(b );
8692
8693         b->yy_input_file = file;
8694         b->yy_fill_buffer = 1;
8695
8696     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8697      * called from surf_parse_restart() or through yy_get_next_buffer.
8698      * In that case, we don't want to reset the lineno or column.
8699      */
8700     if (b != YY_CURRENT_BUFFER){
8701         b->yy_bs_lineno = 1;
8702         b->yy_bs_column = 0;
8703     }
8704
8705         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8706     
8707         errno = oerrno;
8708 }
8709
8710 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8711  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8712  * 
8713  */
8714     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8715 {
8716         if ( ! b )
8717                 return;
8718
8719         b->yy_n_chars = 0;
8720
8721         /* We always need two end-of-buffer characters.  The first causes
8722          * a transition to the end-of-buffer state.  The second causes
8723          * a jam in that state.
8724          */
8725         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8726         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8727
8728         b->yy_buf_pos = &b->yy_ch_buf[0];
8729
8730         b->yy_at_bol = 1;
8731         b->yy_buffer_status = YY_BUFFER_NEW;
8732
8733         if ( b == YY_CURRENT_BUFFER )
8734                 surf_parse__load_buffer_state( );
8735 }
8736
8737 /** Pushes the new state onto the stack. The new state becomes
8738  *  the current state. This function will allocate the stack
8739  *  if necessary.
8740  *  @param new_buffer The new state.
8741  *  
8742  */
8743 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8744 {
8745         if (new_buffer == NULL)
8746                 return;
8747
8748         surf_parse_ensure_buffer_stack();
8749
8750         /* This block is copied from surf_parse__switch_to_buffer. */
8751         if ( YY_CURRENT_BUFFER )
8752                 {
8753                 /* Flush out information for old buffer. */
8754                 *(yy_c_buf_p) = (yy_hold_char);
8755                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8756                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8757                 }
8758
8759         /* Only push if top exists. Otherwise, replace top. */
8760         if (YY_CURRENT_BUFFER)
8761                 (yy_buffer_stack_top)++;
8762         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8763
8764         /* copied from surf_parse__switch_to_buffer. */
8765         surf_parse__load_buffer_state( );
8766         (yy_did_buffer_switch_on_eof) = 1;
8767 }
8768
8769 /** Removes and deletes the top of the stack, if present.
8770  *  The next element becomes the new top.
8771  *  
8772  */
8773 void surf_parse_pop_buffer_state (void)
8774 {
8775         if (!YY_CURRENT_BUFFER)
8776                 return;
8777
8778         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8779         YY_CURRENT_BUFFER_LVALUE = NULL;
8780         if ((yy_buffer_stack_top) > 0)
8781                 --(yy_buffer_stack_top);
8782
8783         if (YY_CURRENT_BUFFER) {
8784                 surf_parse__load_buffer_state( );
8785                 (yy_did_buffer_switch_on_eof) = 1;
8786         }
8787 }
8788
8789 /* Allocates the stack if it does not exist.
8790  *  Guarantees space for at least one push.
8791  */
8792 static void surf_parse_ensure_buffer_stack (void)
8793 {
8794         int num_to_alloc;
8795     
8796         if (!(yy_buffer_stack)) {
8797
8798                 /* First allocation is just for 2 elements, since we don't know if this
8799                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8800                  * immediate realloc on the next call.
8801          */
8802                 num_to_alloc = 1;
8803                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8804                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8805                                                                 );
8806                 if ( ! (yy_buffer_stack) )
8807                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8808                                                                   
8809                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8810                                 
8811                 (yy_buffer_stack_max) = num_to_alloc;
8812                 (yy_buffer_stack_top) = 0;
8813                 return;
8814         }
8815
8816         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8817
8818                 /* Increase the buffer to prepare for a possible push. */
8819                 int grow_size = 8 /* arbitrary grow size */;
8820
8821                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8822                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8823                                                                 ((yy_buffer_stack),
8824                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8825                                                                 );
8826                 if ( ! (yy_buffer_stack) )
8827                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8828
8829                 /* zero only the new slots.*/
8830                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8831                 (yy_buffer_stack_max) = num_to_alloc;
8832         }
8833 }
8834
8835 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8836  * @param base the character buffer
8837  * @param size the size in bytes of the character buffer
8838  * 
8839  * @return the newly allocated buffer state object. 
8840  */
8841 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8842 {
8843         YY_BUFFER_STATE b;
8844     
8845         if ( size < 2 ||
8846              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8847              base[size-1] != YY_END_OF_BUFFER_CHAR )
8848                 /* They forgot to leave room for the EOB's. */
8849                 return 0;
8850
8851         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8852         if ( ! b )
8853                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8854
8855         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8856         b->yy_buf_pos = b->yy_ch_buf = base;
8857         b->yy_is_our_buffer = 0;
8858         b->yy_input_file = 0;
8859         b->yy_n_chars = b->yy_buf_size;
8860         b->yy_is_interactive = 0;
8861         b->yy_at_bol = 1;
8862         b->yy_fill_buffer = 0;
8863         b->yy_buffer_status = YY_BUFFER_NEW;
8864
8865         surf_parse__switch_to_buffer(b  );
8866
8867         return b;
8868 }
8869
8870 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8871  * scan from a @e copy of @a str.
8872  * @param yystr a NUL-terminated string to scan
8873  * 
8874  * @return the newly allocated buffer state object.
8875  * @note If you want to scan bytes that may contain NUL values, then use
8876  *       surf_parse__scan_bytes() instead.
8877  */
8878 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8879 {
8880     
8881         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8882 }
8883
8884 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8885  * scan from a @e copy of @a bytes.
8886  * @param yybytes the byte buffer to scan
8887  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8888  * 
8889  * @return the newly allocated buffer state object.
8890  */
8891 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8892 {
8893         YY_BUFFER_STATE b;
8894         char *buf;
8895         yy_size_t n;
8896         int i;
8897     
8898         /* Get memory for full buffer, including space for trailing EOB's. */
8899         n = _yybytes_len + 2;
8900         buf = (char *) surf_parse_alloc(n  );
8901         if ( ! buf )
8902                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8903
8904         for ( i = 0; i < _yybytes_len; ++i )
8905                 buf[i] = yybytes[i];
8906
8907         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8908
8909         b = surf_parse__scan_buffer(buf,n );
8910         if ( ! b )
8911                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8912
8913         /* It's okay to grow etc. this buffer, and we should throw it
8914          * away when we're done.
8915          */
8916         b->yy_is_our_buffer = 1;
8917
8918         return b;
8919 }
8920
8921     static void yy_push_state (int  new_state )
8922 {
8923         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8924                 {
8925                 yy_size_t new_size;
8926
8927                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8928                 new_size = (yy_start_stack_depth) * sizeof( int );
8929
8930                 if ( ! (yy_start_stack) )
8931                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8932
8933                 else
8934                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8935
8936                 if ( ! (yy_start_stack) )
8937                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8938                 }
8939
8940         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8941
8942         BEGIN(new_state);
8943 }
8944
8945     static void yy_pop_state  (void)
8946 {
8947         if ( --(yy_start_stack_ptr) < 0 )
8948                 YY_FATAL_ERROR( "start-condition stack underflow" );
8949
8950         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8951 }
8952
8953 #ifndef YY_EXIT_FAILURE
8954 #define YY_EXIT_FAILURE 2
8955 #endif
8956
8957 static void yy_fatal_error (yyconst char* msg )
8958 {
8959         (void) fprintf( stderr, "%s\n", msg );
8960         exit( YY_EXIT_FAILURE );
8961 }
8962
8963 /* Redefine yyless() so it works in section 3 code. */
8964
8965 #undef yyless
8966 #define yyless(n) \
8967         do \
8968                 { \
8969                 /* Undo effects of setting up surf_parse_text. */ \
8970         int yyless_macro_arg = (n); \
8971         YY_LESS_LINENO(yyless_macro_arg);\
8972                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8973                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8974                 (yy_hold_char) = *(yy_c_buf_p); \
8975                 *(yy_c_buf_p) = '\0'; \
8976                 surf_parse_leng = yyless_macro_arg; \
8977                 } \
8978         while ( 0 )
8979
8980 /* Accessor  methods (get/set functions) to struct members. */
8981
8982 /** Get the current line number.
8983  * 
8984  */
8985 int surf_parse_get_lineno  (void)
8986 {
8987         
8988     return surf_parse_lineno;
8989 }
8990
8991 /** Get the input stream.
8992  * 
8993  */
8994 FILE *surf_parse_get_in  (void)
8995 {
8996         return surf_parse_in;
8997 }
8998
8999 /** Get the output stream.
9000  * 
9001  */
9002 FILE *surf_parse_get_out  (void)
9003 {
9004         return surf_parse_out;
9005 }
9006
9007 /** Get the length of the current token.
9008  * 
9009  */
9010 int surf_parse_get_leng  (void)
9011 {
9012         return surf_parse_leng;
9013 }
9014
9015 /** Get the current token.
9016  * 
9017  */
9018
9019 char *surf_parse_get_text  (void)
9020 {
9021         return surf_parse_text;
9022 }
9023
9024 /** Set the current line number.
9025  * @param line_number
9026  * 
9027  */
9028 void surf_parse_set_lineno (int  line_number )
9029 {
9030     
9031     surf_parse_lineno = line_number;
9032 }
9033
9034 /** Set the input stream. This does not discard the current
9035  * input buffer.
9036  * @param in_str A readable stream.
9037  * 
9038  * @see surf_parse__switch_to_buffer
9039  */
9040 void surf_parse_set_in (FILE *  in_str )
9041 {
9042         surf_parse_in = in_str ;
9043 }
9044
9045 void surf_parse_set_out (FILE *  out_str )
9046 {
9047         surf_parse_out = out_str ;
9048 }
9049
9050 int surf_parse_get_debug  (void)
9051 {
9052         return surf_parse__flex_debug;
9053 }
9054
9055 void surf_parse_set_debug (int  bdebug )
9056 {
9057         surf_parse__flex_debug = bdebug ;
9058 }
9059
9060 static int yy_init_globals (void)
9061 {
9062         /* Initialization is the same as for the non-reentrant scanner.
9063      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9064      */
9065
9066     /* We do not touch surf_parse_lineno unless the option is enabled. */
9067     surf_parse_lineno =  1;
9068     
9069     (yy_buffer_stack) = 0;
9070     (yy_buffer_stack_top) = 0;
9071     (yy_buffer_stack_max) = 0;
9072     (yy_c_buf_p) = (char *) 0;
9073     (yy_init) = 0;
9074     (yy_start) = 0;
9075
9076     (yy_start_stack_ptr) = 0;
9077     (yy_start_stack_depth) = 0;
9078     (yy_start_stack) =  NULL;
9079
9080 /* Defined in main.c */
9081 #ifdef YY_STDINIT
9082     surf_parse_in = stdin;
9083     surf_parse_out = stdout;
9084 #else
9085     surf_parse_in = (FILE *) 0;
9086     surf_parse_out = (FILE *) 0;
9087 #endif
9088
9089     /* For future reference: Set errno on error, since we are called by
9090      * surf_parse_lex_init()
9091      */
9092     return 0;
9093 }
9094
9095 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9096 int surf_parse_lex_destroy  (void)
9097 {
9098     
9099     /* Pop the buffer stack, destroying each element. */
9100         while(YY_CURRENT_BUFFER){
9101                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9102                 YY_CURRENT_BUFFER_LVALUE = NULL;
9103                 surf_parse_pop_buffer_state();
9104         }
9105
9106         /* Destroy the stack itself. */
9107         surf_parse_free((yy_buffer_stack) );
9108         (yy_buffer_stack) = NULL;
9109
9110     /* Destroy the start condition stack. */
9111         surf_parse_free((yy_start_stack)  );
9112         (yy_start_stack) = NULL;
9113
9114     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9115      * surf_parse_lex() is called, initialization will occur. */
9116     yy_init_globals( );
9117
9118     return 0;
9119 }
9120
9121 /*
9122  * Internal utility routines.
9123  */
9124
9125 #ifndef yytext_ptr
9126 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9127 {
9128         register int i;
9129         for ( i = 0; i < n; ++i )
9130                 s1[i] = s2[i];
9131 }
9132 #endif
9133
9134 #ifdef YY_NEED_STRLEN
9135 static int yy_flex_strlen (yyconst char * s )
9136 {
9137         register int n;
9138         for ( n = 0; s[n]; ++n )
9139                 ;
9140
9141         return n;
9142 }
9143 #endif
9144
9145 void *surf_parse_alloc (yy_size_t  size )
9146 {
9147         return (void *) malloc( size );
9148 }
9149
9150 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9151 {
9152         /* The cast to (char *) in the following accommodates both
9153          * implementations that use char* generic pointers, and those
9154          * that use void* generic pointers.  It works with the latter
9155          * because both ANSI C and C++ allow castless assignment from
9156          * any pointer type to void*, and deal with argument conversions
9157          * as though doing an assignment.
9158          */
9159         return (void *) realloc( (char *) ptr, size );
9160 }
9161
9162 void surf_parse_free (void * ptr )
9163 {
9164         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9165 }
9166
9167 #define YYTABLES_NAME "yytables"
9168
9169 /* Element context stack lookup. */
9170 int surfxml_element_context(int i)
9171 {
9172   return (0<i && i<yy_start_stack_depth
9173           ? yy_start_stack[yy_start_stack_ptr - i]
9174           : 0);
9175 }
9176
9177 #ifdef FLEX_DEBUG
9178 void print_yy_stack(char* fmt, ...)
9179 {
9180   int i = 0; va_list ap; va_start(ap, fmt);
9181   vfprintf(stderr, fmt, ap);
9182   if (surfxml_statenames) {
9183       for (i=1; i<yy_start_stack_ptr; i++) {
9184           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9185       }
9186       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9187   }
9188   va_end(ap);
9189 }
9190
9191 void print_surfxml_bufferstack()
9192 {
9193     int i;
9194     fputs("Buffer: ", stderr);
9195     for (i = 0; i < blimit; i++) {
9196        if ( surfxml_bufferstack[i] == '\377' ) break;
9197          putc(surfxml_bufferstack[i], stderr);
9198     }
9199     putc('\n', stderr);
9200 }
9201
9202 static void debug_enter(int state, const char* statename) {
9203   yy_push_state(state);
9204   if (surf_parse__flex_debug) {
9205        print_yy_stack("--ENTER(%s) : ",statename);
9206        print_surfxml_bufferstack();
9207   }
9208 }
9209
9210 static void debug_leave(void) {
9211     if (surf_parse__flex_debug) {
9212         print_yy_stack("--LEAVE : ");
9213         print_surfxml_bufferstack();
9214     }
9215   yy_pop_state();
9216 }
9217
9218 static void debug_set(int state, const char* statename) {
9219   BEGIN(state);
9220   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9221 }
9222 #endif
9223
9224 static void cleanup(void)
9225 {
9226     if (surfxml_statenames) {
9227         free(surfxml_statenames);
9228         surfxml_statenames = NULL;
9229     }
9230     free(surfxml_bufferstack);
9231     surfxml_bufferstack = NULL;
9232
9233     free(indexstack);
9234     indexstack = NULL;
9235 }
9236
9237 static int fail(const char* fmt, ...)
9238 {
9239     int chars_left, used;
9240     va_list ap; va_start(ap, fmt);
9241 #ifdef FLEXML_yylineno
9242     used = sprintf(flexml_err_msg,
9243                    "Invalid XML (XML input line %d, state %d): ",
9244                    surf_parse_lineno, YY_START);
9245 #else
9246     used = sprintf(flexml_err_msg,
9247                    "Invalid XML (state %d): ",
9248                    YY_START);
9249 #endif
9250     chars_left = flexml_max_err_msg_size - used - 1;
9251     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9252     va_end(ap);
9253
9254 #ifndef FLEXML_quiet_parser
9255     /* print directly to sdterr */
9256     fprintf(stderr, "%s\n", flexml_err_msg);
9257     flexml_err_msg[0] = '\0';
9258 #endif
9259
9260     cleanup();
9261
9262     return 1;
9263 }
9264