Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
added dvfs support
[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 564
407 #define YY_END_OF_BUFFER 565
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[3289] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,  565,  563,   15,   10,   10,   15,   15,  543,
445        10,  543,    5,    6,    5,    8,    9,    8,  559,  551,
446       552,  560,  557,  560,  558,  562,  551,  552,  562,  563,
447        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
448        26,  563,   26,  563,  563,   26,   33,   10,   33,   33,
449
450        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
451        48,   48,   46,   48,   48,   48,  560,  559,   78,   10,
452        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
453        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
454       101,  105,   10,  105,  126,   10,  126,  126,  126,  124,
455       126,  126,  130,   10,  130,  130,  563,  130,  563,  130,
456       130,  563,  563,  130,  563,  130,  563,  130,  143,   10,
457       143,  143,  143,  141,  143,  143,  143,  143,  147,   10,
458       147,  147,  158,   10,  158,  158,  158,  156,  158,  158,
459       158,  162,   10,  162,  162,  171,   10,  171,  171,  171,
460
461       169,  171,  171,  175,   10,  175,  184,   10,  184,  184,
462       184,  182,  184,  184,  188,   10,  188,  213,   10,  213,
463       213,  213,  211,  213,  213,  213,  213,  213,  217,   10,
464       217,  563,  217,  224,   10,  224,  224,  224,  222,  224,
465       228,   10,  228,  239,   10,  239,  239,  239,  237,  239,
466       239,  239,  243,   10,  243,  290,   10,  290,  290,  290,
467       288,  290,  290,  290,  290,  290,  290,  290,  290,  294,
468        10,  294,  313,   10,  313,  313,  313,  311,  313,  313,
469       313,  313,  313,  313,  317,   10,  317,  338,   10,  338,
470       338,  338,  336,  338,  338,  338,  338,  338,  338,  338,
471
472       342,   10,  342,  351,   10,  351,  351,  351,  349,  351,
473       351,  355,   10,  355,  366,   10,  366,  366,  366,  364,
474       366,  366,  366,  370,   10,  370,  397,   10,  397,  397,
475       397,  395,  397,  397,  397,  397,  401,   10,  401,  401,
476       414,   10,  414,  414,  414,  412,  414,  414,  418,   10,
477       418,  563,  418,  435,   10,  435,  435,  435,  433,  435,
478       435,  435,  439,   10,  439,  439,  452,   10,  452,  452,
479       452,  450,  452,  452,  456,   10,  456,  465,   10,  465,
480       465,  465,  463,  465,  465,  469,   10,  469,  469,  482,
481        10,  482,  482,  482,  480,  482,  482,  482,  486,   10,
482
483       486,  486,  503,   10,  503,  503,  503,  501,  503,  503,
484       503,  503,  503,  507,   10,  507,  563,  507,  514,   10,
485       514,  514,  514,  512,  514,  518,   10,  518,  525,   10,
486       525,  525,  525,  523,  525,  529,   10,  529,  529,  538,
487        10,  538,  538,  538,  536,  538,  538,  542,   10,  542,
488        10,    0,    2,    2,    0,    4,    7,  554,  553,    0,
489         0,    0,    0,    0,    0,    0,   21,   23,   23,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,   32,   34,   34,    0,   47,   49,   49,
493
494        49,   49,    0,    0,    0,   77,   79,   79,   79,   79,
495        79,   79,   79,   79,   79,    0,  100,  102,  102,  102,
496       102,    0,  125,  127,  127,  127,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,  142,  144,  144,  144,  144,
499       144,    0,  157,  159,  159,  159,  159,    0,  170,  172,
500       172,  172,    0,  183,  185,  185,  185,    0,  212,  214,
501       214,  214,  214,  214,  214,  214,    0,    0,  223,  225,
502       225,    0,  238,  240,  240,  240,  240,    0,  289,  291,
503       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
504
505       291,  291,  291,  291,  291,    0,  312,  314,  314,  314,
506       314,  314,  314,  314,  314,    0,  337,  339,  339,  339,
507       339,  339,  339,  339,  339,    0,  350,  352,  352,  352,
508         0,  365,  367,  367,  367,  367,    0,  396,  398,  398,
509       398,  398,  398,  398,    0,  413,  415,  415,  415,  415,
510         0,    0,  434,  436,  436,  436,  436,  436,    0,  451,
511       453,  453,  453,    0,  464,  466,  466,  466,    0,  481,
512       483,  483,  483,  483,    0,  502,  504,  504,  504,  504,
513       504,  504,    0,    0,  513,  515,  515,    0,  524,  526,
514       526,    0,  537,  539,  539,  539,    0,    0,    0,    0,
515
516         0,    3,    0,    0,    0,    0,    0,    0,    0,  561,
517         0,   23,    0,    0,  107,    0,    0,    0,    0,    0,
518         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
520         0,    0,    0,   34,    0,    0,   49,    0,    0,   49,
521         0,    0,    0,  556,   79,    0,    0,   79,   79,   79,
522        79,   79,   79,    0,    0,  102,  102,  102,    0,    0,
523         0,    0,  127,    0,    0,  107,    0,    0,    0,    0,
524         0,    0,    0,    0,  106,    0,    0,    0,    0,  144,
525         0,    0,  144,  144,    0,    0,  159,    0,    0,  159,
526
527         0,    0,    0,    0,  172,    0,    0,  185,  185,    0,
528         0,  214,  214,  214,    0,    0,  214,  214,  214,    0,
529         0,    0,    0,  225,    0,    0,  240,    0,    0,    0,
530         0,    0,    0,  291,  291,    0,    0,  291,    0,    0,
531       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
532         0,    0,    0,    0,    0,    0,  314,  314,  314,  314,
533       314,    0,    0,  339,  339,  339,    0,    0,  339,  339,
534       339,    0,    0,  352,    0,    0,    0,    0,  367,    0,
535         0,  367,    0,    0,  398,    0,    0,  398,  398,  398,
536         0,    0,  415,  415,  415,    0,    0,    0,  436,  436,
537
538       436,  436,    0,    0,  453,    0,    0,    0,    0,  466,
539       466,    0,    0,  483,  483,  483,    0,    0,  504,  504,
540       504,  504,  504,    0,    0,    0,  515,    0,    0,    0,
541         0,    0,    0,    0,    0,  539,    0,    0,    0,   14,
542         1,    0,    0,  549,    0,    0,    0,  546,  545,    0,
543         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
544         0,    0,    0,    0,  218,    0,    0,    0,    0,    0,
545         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
546         0,    0,    0,    0,    0,    0,   34,    0,    0,   36,
547         0,   49,    0,   41,   40,   49,    0,    0,    0,   51,
548
549         0,   79,    0,   55,   54,    0,    0,   79,    0,    0,
550        79,   79,   79,    0,    0,   81,    0,  102,  102,  102,
551         0,    0,  104,    0,    0,  109,  108,  127,    0,    0,
552       129,    0,    0,    0,    0,  219,    0,    0,    0,    0,
553         0,    0,    0,    0,    0,  144,    0,  134,  133,  144,
554       144,    0,    0,  146,    0,  159,    0,  151,  150,  159,
555         0,    0,  161,    0,    0,  166,  165,  172,    0,    0,
556       174,    0,  185,  185,    0,    0,  187,    0,  214,  214,
557       214,    0,  192,  191,  214,  214,  214,    0,    0,  216,
558         0,    0,    0,  225,    0,    0,  227,    0,  240,    0,
559
560       232,  231,    0,  234,  233,    0,    0,  242,    0,  291,
561       291,  291,  291,    0,  259,  258,  291,    0,  247,  246,
562         0,    0,  291,  291,  291,  291,  291,  291,  291,  291,
563       291,    0,    0,  293,    0,    0,  308,  307,    0,  298,
564       297,    0,    0,  314,  314,  314,  314,    0,    0,  316,
565         0,  339,  339,  339,  339,    0,  321,  320,    0,    0,
566       339,  339,    0,    0,  341,    0,  352,    0,  346,  345,
567         0,    0,  354,    0,  367,    0,  359,  358,  367,    0,
568         0,  369,    0,  398,    0,  374,  373,  398,  398,  398,
569         0,    0,  400,    0,    0,    0,    0,    0,  415,    0,
570
571         0,  417,    0,    0,    0,    0,  436,  436,    0,    0,
572       436,    0,    0,  438,    0,  453,    0,  443,  442,    0,
573         0,  455,    0,    0,    0,    0,    0,    0,    0,  468,
574         0,    0,    0,  483,  483,    0,    0,    0,    0,  485,
575         0,  504,  504,  504,  504,  504,    0,    0,  506,    0,
576         0,  515,    0,    0,  517,    0,    0,  522,  521,    0,
577         0,  528,    0,    0,  533,  532,  539,    0,    0,  541,
578         0,    0,    0,  550,  544,    0,    0,    0,   23,    0,
579         0,    0,    0,    0,    0,    0,    0,  218,  189,    0,
580       371,    0,    0,  319,    0,    0,  530,    0,    0,    0,
581
582         0,    0,    0,    0,    0,    0,  318,    0,    0,    0,
583         0,    0,    0,    0,   49,    0,    0,   79,    0,   59,
584        58,    0,    0,    0,   57,   56,   79,    0,    0,   79,
585         0,  102,    0,    0,  102,    0,  127,    0,  128,    0,
586         0,    0,  219,  190,  372,  531,    0,    0,    0,    0,
587         0,    0,  144,  144,    0,    0,    0,  159,  159,    0,
588         0,    0,    0,    0,    0,  185,    0,  214,  214,    0,
589         0,  214,  214,  214,    0,    0,    0,    0,    0,    0,
590         0,    0,    0,  291,  291,  291,  291,    0,    0,    0,
591       261,  260,  291,  291,  291,  291,  291,  291,  291,  291,
592
593       291,    0,    0,  310,  309,  314,  314,  314,  314,    0,
594       339,  339,  339,  339,    0,  329,  328,  339,  339,    0,
595       352,    0,  367,  367,    0,  398,  398,  398,  398,    0,
596         0,  407,  406,    0,  405,  404,  415,    0,  371,    0,
597       424,  423,  436,  436,    0,  422,  421,  436,    0,  453,
598         0,    0,  462,  461,    0,  460,  459,    0,    0,  475,
599       474,  483,  483,    0,  473,  472,    0,  504,    0,    0,
600       504,  504,  504,    0,    0,  515,    0,    0,  539,    0,
601         0,    0,    0,   12,    0,  547,  548,    0,   23,    0,
602         0,    0,    0,    0,    0,    0,    0,  189,    0,    0,
603
604       371,    0,  163,    0,  319,    0,    0,  530,    0,  402,
605         0,   39,    0,    0,    0,    0,    0,  318,    0,   38,
606         0,   30,   29,    0,    0,   43,   42,   49,    0,    0,
607        79,    0,   61,   60,   79,    0,   65,   64,   79,    0,
608       102,    0,    0,    0,    0,    0,    0,  127,    0,    0,
609         0,  190,    0,  372,  531,  403,    0,    0,    0,  403,
610       402,  144,    0,    0,    0,  138,  137,    0,  159,  159,
611         0,    0,  168,  167,    0,    0,  181,  180,  185,    0,
612       214,  214,    0,  196,  195,    0,    0,  214,    0,    0,
613       214,    0,  164,    0,    0,  221,  220,    0,  226,    0,
614
615       236,  235,    0,  291,    0,    0,  291,  291,    0,  257,
616       256,  291,  291,    0,    0,  291,  291,  291,  291,  291,
617       291,    0,    0,    0,  314,  314,  314,    0,  339,    0,
618         0,  339,  339,    0,    0,  339,    0,  352,    0,  367,
619       367,    0,  398,  398,  398,    0,    0,  398,    0,  415,
620         0,    0,  436,  436,  436,    0,  453,    0,    0,  483,
621       483,    0,  504,    0,  490,  489,  504,  504,  504,    0,
622         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
623         0,   11,    0,   23,    0,    0,    0,    0,    0,    0,
624         0,  520,    0,    0,    0,  163,    0,    0,    0,   53,
625
626       402,  343,    0,   39,    0,  519,   52,    0,    0,    0,
627         0,   38,    0,    0,   49,    0,    0,   79,   79,   79,
628         0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
629         0,   96,   95,    0,  127,    0,    0,    0,    0,  403,
630       344,    0,    0,    0,  144,    0,  136,  135,    0,  159,
631         0,    0,    0,    0,    0,    0,    0,  214,  214,    0,
632       194,  193,    0,    0,    0,    0,    0,  214,    0,  215,
633       164,    0,    0,  291,    0,  269,  268,    0,    0,  291,
634       291,  291,    0,  255,  254,    0,    0,  291,  291,  291,
635       291,    0,    0,    0,    0,  306,  305,    0,    0,  314,
636
637         0,    0,    0,  339,    0,  325,  324,    0,    0,  339,
638         0,  323,  322,  339,    0,  340,  352,    0,  367,  367,
639         0,  398,  398,  398,    0,    0,    0,  398,    0,  399,
640       415,    0,    0,    0,    0,    0,    0,  436,    0,  453,
641         0,    0,    0,    0,    0,    0,    0,  504,  504,  504,
642       504,    0,    0,    0,  511,  510,    0,    0,    0,  535,
643       534,    0,  540,    0,    0,    0,    0,    0,    0,    0,
644       419,    0,    0,    0,    0,  296,  245,  520,    0,   28,
645         0,    0,    0,  488,   53,  343,  148,    0,  519,   52,
646       295,  244,   27,  487,    0,    0,   49,    0,    0,   50,
647
648        79,    0,    0,   79,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650       420,    0,    0,    0,    0,  344,  149,    0,    0,    0,
651         0,    0,    0,  153,  152,    0,    0,  173,    0,  179,
652       178,    0,  214,  214,    0,  210,  209,    0,    0,  214,
653         0,    0,  291,    0,  271,  270,  291,  291,  291,    0,
654       249,  248,    0,    0,  291,  291,  291,    0,  251,  250,
655         0,    0,  300,  299,    0,    0,    0,  302,  301,    0,
656       339,    0,  327,  326,  339,  339,  352,    0,  367,    0,
657         0,    0,  398,    0,    0,  398,  398,    0,    0,  398,
658
659       415,    0,  416,    0,    0,  428,  427,    0,  426,  425,
660       436,    0,  453,    0,    0,    0,  479,  478,    0,  477,
661       476,    0,  504,  504,  504,  504,    0,    0,    0,    0,
662         0,    0,    0,   17,    0,   19,   18,    0,  419,  508,
663       356,    0,    0,  296,  245,    0,   28,  440,  176,   16,
664       488,  148,    0,    0,  295,  244,   27,  487,    0,    0,
665        49,  555,   79,    0,   67,   66,   79,    0,   80,    0,
666        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,  420,  357,    0,    0,
668         0,  149,    0,    0,  140,  139,    0,    0,  155,  154,
669
670         0,    0,  214,  214,    0,    0,    0,    0,  214,  177,
671         0,  291,  291,  291,  291,    0,  253,  252,  291,  291,
672       291,    0,    0,  304,  303,    0,  339,  339,  339,  352,
673         0,  353,  367,    0,  363,  362,    0,  398,    0,  380,
674       379,  398,  398,    0,    0,    0,    0,  398,  415,  441,
675       436,    0,  453,    0,    0,    0,    0,    0,  504,  504,
676       504,    0,  509,    0,    0,  527,    0,    0,    0,   17,
677         0,  508,  356,    0,    0,  229,  440,  176,   16,    0,
678         0,    0,    0,   35,   49,    0,    0,   79,    0,    0,
679         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
680
681         0,    0,    0,    0,    0,    0,    0,    0,    0,  357,
682         0,    0,  230,    0,    0,    0,  160,    0,  214,  214,
683         0,  202,    0,  201,  214,  177,    0,  291,  291,  291,
684       291,  291,    0,    0,  291,  291,    0,  292,    0,  315,
685       339,  339,  339,  352,    0,    0,    0,    0,    0,  398,
686       398,  398,    0,  384,    0,  383,  398,  415,  441,  436,
687         0,  437,    0,    0,    0,    0,    0,    0,  492,  491,
688         0,    0,  504,  504,    0,  505,  509,    0,    0,    0,
689         0,    0,   24,    0,    0,  229,    0,    0,    0,   49,
690         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,    0,    0,    0,    0,    0,    0,  230,
694         0,    0,    0,  186,  214,  214,  204,  203,    0,    0,
695         0,  291,  291,  291,  291,  291,    0,  281,  280,  291,
696         0,    0,  339,  339,    0,    0,  352,    0,  361,  360,
697         0,  368,    0,  376,  375,  398,  398,  398,  386,  385,
698         0,    0,  415,  436,    0,    0,    0,    0,  454,    0,
699         0,    0,  496,  495,    0,    0,    0,    0,    0,  516,
700         0,    0,    0,    0,  457,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
702
703         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,  458,    0,    0,  214,    0,    0,    0,  206,  205,
706         0,  241,  291,  291,  291,    0,    0,  291,  291,    0,
707       279,  278,  339,    0,    0,    0,  335,  334,    0,    0,
708       398,  398,  398,    0,  388,  387,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,  494,  493,    0,    0,    0,    0,  457,  131,
711         0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
712         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,    0,  458,  132,    0,    0,
716         0,  214,    0,  208,  207,  291,  291,    0,    0,    0,
717       285,  284,    0,    0,  291,  339,    0,  331,  330,    0,
718       348,  347,  398,    0,    0,  398,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,  470,  131,
721        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,    0,   94,    0,    0,    0,   93,    0,
723         0,    0,    0,    0,  111,  119,    0,    0,    0,    0,
724
725       110,  118,    0,  471,  132,    0,    0,  198,  197,  214,
726       291,  291,    0,  283,  282,    0,  287,  286,  291,  339,
727       398,    0,  382,  381,  398,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,  445,    0,    0,  444,    0,
729       467,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,  470,   84,   83,    0,    0,    0,    0,    0,
731         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
732         0,    0,    0,    0,    0,  113,    0,    0,    0,  112,
733         0,  471,    0,  145,  214,  291,  291,    0,    0,  339,
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,   75,   71,
738         0,    0,   74,   70,    0,   92,    0,    0,   91,    0,
739         0,    0,  103,    0,    0,    0,    0,    0,    0,  214,
740       291,  291,    0,    0,    0,  339,    0,  378,  377,    0,
741         0,    0,  411,    0,  410,    0,  432,    0,  431,    0,
742       447,  449,  446,  448,    0,  484,  498,    0,  497,    0,
743         0,    0,    0,   12,    0,   12,    0,    0,    0,    0,
744         0,   86,   90,   85,   89,  123,    0,  121,  122,    0,
745       120,  214,  291,  291,    0,    0,    0,    0,  339,    0,
746
747         0,    0,    0,  409,  408,  430,  429,    0,    0,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,  115,    0,
749       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,   69,    0,   68,    0,
752         0,    0,    0,  200,  199,    0,  277,  276,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,  333,  332,
754         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758       500,  499,    0,   73,   72,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,  117,  116,    0,    0,    0,    0,    0,
763         0,  263,    0,    0,  262,    0,    0,  390,    0,    0,
764       389,    0,    0,    0,    0,    0,  267,    0,  266,    0,
765       392,    0,  391,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,  273,    0,  272,    0,    0,
767         0,    0,    0,    0,  275,  274,  265,  264,  394,  393,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,   13,    0
778     } ;
779
780 static yyconst flex_int32_t yy_ec[256] =
781     {   0,
782         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
783         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
784         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
785         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
786         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
787        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
788        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
789        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
790        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
791        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
792
793        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
794        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
795        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1
810     } ;
811
812 static yyconst flex_int32_t yy_meta[75] =
813     {   0,
814         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
815         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
816         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
817         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
818         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
819         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
820         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
821         5,    5,    5,    5
822     } ;
823
824 static yyconst flex_int16_t yy_base[3769] =
825     {   0,
826         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
827        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
828       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
829       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
830       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
831       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
832       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
833       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
834       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
835       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
836
837       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
838      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
839      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
840      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
841      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
842      1406, 1409, 1921, 1988, 1413, 1416, 2055, 2122, 1471, 1474,
843      2189, 2246, 1477, 1481, 2303, 2363, 1538, 1541, 2423, 2490,
844      1544, 1548, 1605, 1608, 1611, 1615, 1618, 1667, 2557, 2624,
845      1670, 1673, 1677, 1680, 1729, 1732, 1735, 1739, 2691, 2758,
846      1742, 1798, 1801, 1804, 1808, 1811, 1941, 1944, 2825, 2882,
847
848      1947, 1951, 2939, 3006, 1954, 2008, 2011, 2014, 2018, 2021,
849      2075, 2078, 3073, 3140, 2081, 2085, 2142, 2145, 2148, 2152,
850      2209, 2212, 3207, 3274, 2215, 2219, 2266, 2269, 2272, 2276,
851      2323, 2326, 3341, 3411, 2329, 2333, 3481, 3538, 2336, 2383,
852      2386, 2389, 2393, 2396, 2443, 2446, 3595, 3665, 2449, 2453,
853         0,    0, 9025,12042,12042,   95,  100,   29,   41,12042,
854       103,   51,12042,12042, 9010,12042,12042, 8999,12042, 9014,
855      9010,  202,12042,12042,12042,12042, 9008, 9008, 8959,  153,
856     12042,  161, 8985,    0,  145,12042, 8951,12042,  165, 3731,
857        73, 2462,  315,  357, 8987, 8934,12042,  168, 8977,    0,
858
859       152,12042, 8935,12042,  261, 8979,   31,12042,  266, 8970,
860         0,  245,12042, 8928, 8932, 8930,  421, 8931,12042,  269,
861      8957,    0,  340,12042, 8923, 8919,  271, 8921,  238,12042,
862       441,  484,12042,  504, 8949,    0,  401,12042, 8904, 8906,
863      8896,12042,  561,  548,12042,  571, 8937,    0,  481,12042,
864      8904, 8892,12042,  628, 3795, 8886,  163, 2456,  567,  206,
865        38, 8937,  954, 2465,  639,  907,  437,   79,12042,  634,
866      8928,    0,  546,12042, 8880, 8890, 8878, 8879,12042,  638,
867       313,  368,12042,  697, 8915,    0,  549,12042, 8871, 8877,
868      8855,12042,  704,  426,  497,12042,  707, 8907,    0,  747,
869
870     12042, 8321, 8323,12042,  767,  753,12042,  773, 8350,    0,
871       757,12042, 8320, 8295,12042,  831,  818,12042,  838, 8347,
872         0,  758,12042, 8296, 8302, 8312,  251, 8294,12042,  841,
873       559,  825,  530,12042,  906, 8341,    0,  815,12042, 8310,
874     12042,  914,  891,12042,  977, 8331,    0,  953,12042, 8287,
875      8296, 8276,12042,  981,  965,12042, 1021, 8319,    0,  966,
876     12042, 8267,  203, 8268, 8277,  378,   85,  311,  972,12042,
877      1040, 1025,12042, 1048, 8304,    0, 1026,12042, 8252, 8269,
878      8267,  157, 8266, 8239,12042, 1088, 1092,12042, 1105, 8286,
879         0, 1033,12042, 8235, 8232, 8227, 8237, 8238, 8216, 8210,
880
881     12042, 1112, 1154,12042, 1115, 8256,    0, 1089,12042, 8212,
882      8221,12042, 1118, 1160,12042, 1174, 8248,    0, 1090,12042,
883      8218, 8209, 8211,12042, 1180, 1228,12042, 1183, 8238,    0,
884      1158,12042, 8197, 8193, 8192,   15,12042, 1186,  564,  814,
885     12042, 1241, 8220,    0, 1225,12042, 8171,  181,12042, 1248,
886      1294,  432,  303,12042, 1305, 8217,    0, 1226,12042, 8146,
887      8137,  299,12042, 1309, 1224,  350,12042, 1365, 8187,    0,
888      1293,12042, 8137, 8141,12042, 1368, 1352,12042, 1372, 8171,
889         0, 1360,12042, 8119, 8119,12042, 1376, 1426,  676,12042,
890      1433, 8163,    0, 1418,12042, 8111, 8106, 8109,12042, 1438,
891
892      1436,  685,12042, 1503, 8146,    0, 1423,12042, 8096, 8101,
893      8104, 8098, 8081,12042, 1507, 1504,  560,  899,12042, 1510,
894      8128,    0, 1428,12042, 8094,12042, 1568, 1622,12042, 1574,
895      8122,    0, 1482,12042, 8088,12042, 1577,  963, 1007,12042,
896      1635, 8118,    0, 1496,12042, 8085, 8086,12042, 1638, 1623,
897      1697,  677, 8057,12042, 8111, 8100,12042,12042,12042, 1690,
898       375, 8050, 8044, 8042, 8089, 8040,12042,    0, 8029, 8017,
899      8036, 8008,  104, 1383, 8008, 7990, 7986, 7990,  889, 1636,
900      1037, 7967, 7968, 1500, 1105, 7989, 1691, 7958, 1699, 7953,
901      1709, 1710, 1711,12042,    0, 7957, 7955,12042,    0, 7951,
902
903      2088, 7942,  666, 7935, 7980,12042,    0, 7936, 2155, 7918,
904      7940, 7919, 7927, 7925, 7920, 7905,12042,    0, 7916, 7896,
905      7908, 7887,12042,    0, 2222, 7881, 7927, 7904,  172, 7877,
906      7877, 7881, 1767, 1297, 7865, 1768, 7893,  707,  724,  814,
907       841, 1567, 1782, 1629,  888,12042,    0, 7865, 2279, 7874,
908      7840, 7846,12042,    0, 7849, 2456, 7839, 7835,12042,    0,
909      2514, 7830, 7829,12042,    0, 7826, 7815, 7808,12042,    0,
910      7819,  758, 2519, 7786, 7788, 7805, 7793,  897,12042,    0,
911      7787, 7791,12042,    0, 7774, 2525, 2577, 7787,12042,    0,
912      7789, 7789, 2580, 7765, 2583, 7762, 7767, 7754, 7745, 7761,
913
914      7757, 7737, 7752, 7751, 7744, 7737,12042,    0, 2586, 2589,
915      7718, 7709, 7725, 7718, 7715, 7716,12042,    0, 7713, 7712,
916      7695, 2644, 7689, 7684, 7700, 7677,12042,    0, 7667, 2647,
917      7657,12042,    0, 7660, 2650, 7652, 7659,12042,    0, 7646,
918      2653, 7638, 7652, 7651, 7637,12042,    0, 7627, 7639, 7627,
919      7621, 7621,12042,    0, 7609, 7627, 7619, 7608, 7642,12042,
920         0, 7597, 2656, 7601,12042,    0, 7584, 7598, 7597,12042,
921         0, 7575, 7583, 7579, 7578,12042,    0, 7557, 7550, 7552,
922      7563, 7560, 7537, 7534,12042,    0, 7538, 7543,12042,    0,
923      2711, 7534,12042,    0, 2714, 7524, 7518, 7552, 7551, 1537,
924
925      7499,12042, 1823,    0, 7494, 7490, 7535, 7533, 7485,12042,
926      7497, 7478, 2719, 2722, 1971, 7467, 7469, 7455, 7466, 7445,
927      7448, 7437, 7430, 7445, 7432, 7417, 7417, 7426, 7427, 7400,
928      7393, 7385, 7385, 7397, 7380, 7375, 1980, 7386, 7360, 7365,
929      7355, 7344, 7356, 7344, 2725, 2732, 7343, 2781, 2038, 7337,
930      7369, 2786, 2789,12042, 7338, 2793, 2107, 2799, 7324, 2845,
931      7328, 7326, 7328, 2848, 2855, 7304, 7312, 7310, 2858, 2903,
932      2906, 2174, 7291, 2910, 2916, 2353, 7303, 7288, 7278, 7279,
933      7282, 7270, 7263, 7267, 2413, 7263, 7260, 7230, 7228, 7222,
934      2913, 2539, 7236, 7234, 2959, 2962, 7218, 2968, 2608, 7224,
935
936      2972, 3029, 2986, 2675, 7206, 3034, 3037, 7201, 7200, 3040,
937      3043, 7194, 7180, 7188, 3099, 2745, 7185, 7178, 7154, 3102,
938      3109, 7151, 7147, 7161, 3112, 3165, 7150, 3105, 2813, 3160,
939      2991, 3171, 3174, 7144, 1910, 3178, 3062, 7147, 3186, 3197,
940      3228, 7141, 7133, 7142, 7140, 7135, 7123, 7108, 7105, 7112,
941      3231, 3236, 3239, 3246, 3295, 3298, 3306, 3313, 3320, 3376,
942      3373, 3242, 3361, 7108,   37, 7091, 3365, 3387, 3432, 7099,
943      7082, 3309, 3444, 7078, 3435, 3395, 3439, 3458, 7087, 3501,
944      3463, 7074, 3504, 3511, 7074, 3507, 3471, 7068, 7052, 7043,
945      3514, 3560, 3563, 3567, 3570, 3573, 3618, 7047, 3621, 3641,
946
947      3630, 3644, 3633, 3686, 7054, 3694, 3652, 3697, 3700, 3712,
948      3725, 3730, 3735, 3743, 3757, 3764, 3738, 3769, 7055, 7032,
949      7039, 7021, 7005, 3799, 3802, 7011, 6996, 3808, 3811, 3775,
950      3823, 3833, 3837, 3845, 3863, 6994, 3871, 3876, 7019,12042,
951     12042, 1138, 6978,12042, 7019, 7014, 6963,12042,12042, 6949,
952      6936, 6945, 3879, 3882,12042, 3885, 1704, 6937, 6926, 6925,
953      6934, 6915, 6901, 6913, 1771, 6888, 6894, 6894, 6887, 6885,
954      6877, 6874,  446, 6888, 6854, 6851, 6864, 6860, 6860, 2047,
955      6847, 6830, 6834, 6823, 1109, 6833, 3890, 3904, 3908,12042,
956      3911, 3914, 3917,12042,12042, 3933, 6850, 3936, 3941,12042,
957
958      3944, 6807, 3951,12042,12042, 3947, 3965, 3973, 3976, 3979,
959      6814, 3987, 6812, 3995, 3998,12042, 4001, 6809, 4005, 6803,
960      4008, 4023,12042, 4027, 4030,12042,12042, 6797, 4038, 4042,
961     12042, 4046, 6785, 6778, 6786, 2240, 6766, 6770, 1510, 6760,
962      6760, 6769, 6768, 6718, 6716, 6727, 4050,12042,12042, 6715,
963      4065, 4068, 4071,12042, 4075, 6720, 4083,12042,12042, 6738,
964      4078, 4097,12042, 4100, 4103,12042,12042, 4111, 4119, 4122,
965     12042, 4125, 4129, 4132, 4150, 4153,12042, 4156, 6707, 6713,
966      4162, 4165,12042,12042, 6682, 6679, 6673, 4175, 4180,12042,
967      4183, 6653, 6651, 4186, 4189, 4194,12042, 4208, 4204, 4213,
968
969     12042,12042, 4223,12042,12042, 4231, 4234,12042, 4237, 6652,
970      6636, 6657, 6639, 4240,12042,12042, 4256, 4259,12042,12042,
971      4267, 4270, 6626, 6637, 6595, 6603, 6603, 6599, 6586, 6589,
972      6581, 4278, 4281,12042, 4285, 4288,12042,12042, 4304,12042,
973     12042, 4312, 4315, 6567, 6575, 6575, 6566, 4323, 4326,12042,
974      4330, 6561, 6558, 6549, 6554, 4333,12042,12042, 4345, 4349,
975      6538, 6550, 4357, 4363,12042, 4366, 6549, 4369,12042,12042,
976      4385, 4388,12042, 4391, 6520, 4394,12042,12042, 6526, 4410,
977      4413,12042, 4418, 6512, 4422,12042,12042, 6514, 6518, 6520,
978      4432, 4437,12042, 4441, 4444, 4447, 4462, 4468, 6509, 4476,
979
980      4480,12042, 4484, 6501, 4487, 4505, 6488, 6488, 4491, 4513,
981      6494, 4521, 4524,12042, 4527, 6488, 4530,12042,12042, 4546,
982      4552,12042, 4555, 4558, 4561, 4576, 4579, 4587, 4594,12042,
983      4598, 4601, 4606, 6452, 6436, 4619, 4622, 4630, 4633,12042,
984      4637, 6428, 4640, 6432, 6428, 6398, 4643, 4652,12042, 4662,
985      6370, 6382, 4665, 4671,12042, 4674, 4677,12042,12042, 4685,
986      4693,12042, 4696, 4700,12042,12042, 6357, 4708, 4715,12042,
987      4718, 1013, 4728,12042,12042, 6392, 6389, 6295, 6285, 4737,
988      6277, 6270, 6219, 6191, 6193, 6162, 6172, 2297, 2549, 6158,
989      2552, 6107, 6060, 2616, 6014, 5995, 2619, 5961, 5959, 5890,
990
991      5874, 5860, 5705, 5703, 5675, 5668, 2683, 5662, 5634, 4740,
992      4758, 4743, 4749, 4767, 5608,    1, 4775,   17, 4780,12042,
993     12042, 4788, 4795, 4806,12042,12042,   40, 4814, 4818,  141,
994      4826,  255, 4832, 4835, 4845, 4850,  320, 4752,12042,  330,
995       355,  379, 2686, 2863, 3000, 2753,  425,  450,  460,  483,
996       503,  565,  581, 4853, 4856, 4859, 4877,  622,  633, 4880,
997      4883, 4886, 4901, 4904, 4907,  677, 4915,  706,  710, 4922,
998      4925, 4934,  759, 4945, 4948,  763,  780, 4952, 4956, 4970,
999      4973, 4977, 4985,  843, 4992,  829,  853, 4995, 4998, 5006,
1000     12042,12042,  867,  999, 5015, 1026, 1056, 1073, 1145, 1174,
1001
1002      1162, 5018, 5021,12042,12042, 5029, 5033, 5037, 5040, 5043,
1003      1192, 5047, 1201, 1236, 5058,12042,12042, 5068, 1247, 5071,
1004      1239, 5074, 1245, 1252, 5077, 1248, 1280, 1293, 5080, 5086,
1005      5105,12042,12042, 5113,12042,12042, 1314, 5100, 3135, 5121,
1006     12042,12042, 1331, 1363, 5129,12042,12042, 1354, 5137, 1357,
1007      5144, 5147,12042,12042, 5156,12042,12042, 5167, 5170,12042,
1008     12042, 1358, 1396, 5179,12042,12042, 5187, 1393, 5190, 5193,
1009      1399, 1425, 1440, 5202, 1429, 5208, 5211, 5215, 5221, 5226,
1010      1538, 1471, 5230,12042, 1473,12042,12042, 1471, 1492, 5235,
1011      1487, 1531, 1538, 1557, 1572, 1592, 1591, 2877, 1603, 1634,
1012
1013      3131, 1636, 3265, 1641, 3269, 1634, 1658, 3332, 1687, 3404,
1014      1694, 3533, 1712, 1707, 1741, 1756, 1765, 3368, 1751, 4495,
1015      5239,12042,12042, 5254, 5257,12042,12042, 1766, 1792, 5268,
1016      1771, 5273,12042,12042, 1781, 5289,12042,12042, 1773, 5282,
1017      1776, 5301, 2898, 2944, 5309, 5313, 5322, 1791, 1869, 1889,
1018      1894, 3588, 1903, 3624, 3761, 5327, 1909, 1899, 1909, 5330,
1019      5333, 1911, 5336, 5344, 5354,12042,12042, 5362, 1912, 5365,
1020      5368, 5374,12042,12042, 5383, 5388,12042,12042, 5402, 5398,
1021      1936, 1942, 5406,12042,12042, 5420, 5423, 5431, 5434, 5438,
1022      1965, 5452, 5455, 1978, 5459,12042,12042, 5467,12042, 5471,
1023
1024     12042,12042, 5479, 1978, 5482, 5486, 5494, 1964, 5500,12042,
1025     12042, 1965, 1982, 5512, 5515, 5526, 1983, 2005, 2016, 2032,
1026      5530, 5533, 5536, 5548, 5539, 5544, 5557, 5562, 2044, 5565,
1027      5568, 5576, 2033, 5583, 5587, 2043, 5595, 2036, 5603, 2048,
1028      2035, 5607, 2062, 2044, 2063, 5610, 5616, 2066, 5628, 2055,
1029      5631, 2087, 5634, 5639, 5642, 5660, 2096, 5663, 5666, 5669,
1030      5672, 5675, 2098, 5690,12042,12042, 2105, 2104, 2097, 5698,
1031      2114, 5701, 5710, 5719, 5724, 5728, 5732, 5746, 2168, 2167,
1032      2242,12042, 2109, 5750, 5753, 2128, 2122, 2123, 2264, 2152,
1033      2162, 5508, 2174, 2179, 2166, 5756, 2183, 2173, 2178, 5759,
1034
1035      5768, 5772, 2224, 5775, 2234, 5780, 5783, 2220, 2223, 2238,
1036      2229, 5786, 2268, 5789, 2283, 2320, 5792, 2280, 5795, 2288,
1037      5798, 5801, 2324, 2312, 2372, 2316, 2336, 2323, 2432, 2325,
1038      5804,12042,12042, 5819, 5823, 2309, 2317, 2383, 2346, 5826,
1039      5829, 2353, 2443, 2444, 5832, 5841,12042,12042, 5850, 5853,
1040      5858, 5862, 5871, 5876, 5879, 5883, 5891, 2351, 2363, 5897,
1041     12042,12042, 5905, 5910, 5919, 2382, 2386, 2382, 5927,12042,
1042      5930, 2408, 5933, 2415, 5939,12042,12042, 5947, 5952, 2419,
1043      2429, 2426, 5961,12042,12042, 5969, 5972, 5980, 2429, 2440,
1044      2432, 5983, 5988, 6001, 6004,12042,12042, 6012, 6016, 6024,
1045
1046      6030, 6033, 6042, 2455, 6049,12042,12042, 6057, 6061, 2465,
1047      6069,12042,12042, 2468, 6077,12042, 2483, 6080, 2466, 6083,
1048      6086, 2467, 6089, 2491, 6101, 2510, 2513, 2516, 6109,12042,
1049      2537, 6112, 2527, 6115, 6118, 6136, 6139, 2541, 6148, 2538,
1050      6154, 6157, 6160, 6163, 6178, 6181, 6189, 2544, 2546, 2544,
1051      2558, 6192, 2554, 6197,12042,12042, 6211, 6215, 6219,12042,
1052     12042, 6230,12042, 2641, 2699, 2654, 2579, 6234, 6237, 6245,
1053      6258, 2594, 2611, 2626, 2605, 6264, 6269, 6272, 2611, 6275,
1054      2618, 2629, 2622, 6278, 6281, 6284, 6287, 2644, 6290, 6293,
1055      6296, 6299, 6302, 6305, 2668, 6310, 2675, 2694, 6313,12042,
1056
1057      2675, 6317, 6320, 2695, 6335, 6338, 6341, 2718, 2735, 2740,
1058      2746, 2743, 2752, 2759, 2759, 2772, 2765, 6349, 6356, 6362,
1059      6370, 2758, 2775, 2757, 2759, 6374, 6377, 6380, 6383, 6391,
1060      6394, 6399, 6412,12042,12042, 6420, 6425,12042, 6428,12042,
1061     12042, 6439, 2763, 2756, 6444,12042,12042, 3024, 3034, 2781,
1062      2800, 6452, 2794, 6458,12042,12042, 2794, 2803, 2821, 6472,
1063     12042,12042, 6466, 6480, 2818, 2809, 2814, 6489,12042,12042,
1064      6497, 6501,12042,12042, 6509, 6512, 6520,12042,12042, 6528,
1065      2816, 6531,12042,12042, 2830, 2862, 2856, 6539, 2870, 6542,
1066      6547, 6562, 2877, 6565, 6568, 2883, 2874, 3035, 3096, 2908,
1067
1068      2927, 6577,12042, 2918, 6583,12042,12042, 6596,12042,12042,
1069      2932, 6591, 2922, 6605, 6610, 6613,12042,12042, 6625,12042,
1070     12042, 6633, 6637, 6643, 6647, 6655, 6661, 2928, 6665, 6668,
1071      6673, 3009, 3069, 6676, 6680,12042,12042, 6688, 6695, 6698,
1072      6701, 2932, 2930, 6707, 6715, 2942, 6718, 6721, 6727, 6730,
1073      6733, 6736, 2954, 2966, 6739, 6742, 6748, 6751, 2972, 6754,
1074      2967,12042, 6757, 6760,12042,12042, 6768, 6775,12042, 6779,
1075     12042,12042, 3025, 3015, 3030, 3035, 3069, 3071, 3058, 3073,
1076      3085, 3095, 6787, 6790, 5682, 6773, 6799, 6802, 3060, 3058,
1077      3071, 6807, 3088, 6810,12042,12042, 6818, 6821,12042,12042,
1078
1079      6829, 6837, 3108, 3113, 3143, 3165, 3157, 3184, 3143, 6840,
1080      6843, 3141, 3147, 3147, 3323, 6849,12042,12042, 6857, 3160,
1081      3183, 6865, 6868,12042,12042, 6876, 3200, 3206, 3207, 3211,
1082      6879,12042, 6884, 6889,12042,12042, 6898, 6904, 6907,12042,
1083     12042, 6917, 6922, 3238, 3284, 3276, 3296, 6925, 3257, 6928,
1084      3269, 6935, 6931, 6943, 6955, 6962, 6958, 6967, 6977, 6984,
1085      6987, 6990, 6995, 7005, 7009,12042, 7012, 3424, 3337, 7017,
1086      7024, 7020, 7031, 3256, 3258, 7039, 7043, 7046, 7049, 3254,
1087      3269, 3276, 7052,12042, 3267, 7055, 7058, 3325, 3342, 3338,
1088      3365, 3354, 3365, 3362, 3361, 3405, 3397, 3411, 7066, 3390,
1089
1090      3395, 3463, 3390, 3398, 3396, 3406, 3518, 3405, 3414, 7075,
1091      3416, 3444, 7078, 3446, 7081, 7085,12042, 7088, 3454, 3458,
1092      3523,12042, 3521,12042, 7091, 7094, 7100, 3465, 3506, 3499,
1093      3497, 3530, 7110, 7113, 3523, 7121, 7128,12042, 7131,12042,
1094      3520, 3527, 7134, 3544, 7139, 7158, 7143, 7152, 7166, 7174,
1095      7177, 7180, 3612,12042, 3610,12042, 7183, 3569, 7186, 3570,
1096      7201,12042, 7204, 7207, 7215, 7222, 7227, 7230,12042,12042,
1097      7241, 7246, 7254, 7259, 7262,12042, 7265, 7268, 3631, 3630,
1098      3644, 7272,12042, 3570, 3604, 7277, 3595, 3609, 3639, 7281,
1099      7292, 3795, 4026, 3631, 3665, 3687, 3686, 3696, 3713, 3691,
1100
1101      3701, 3700, 3704, 3721, 7300, 3679, 3691, 3688, 3694, 3694,
1102      3699, 3701, 3716, 3712, 3724, 3723, 3720, 3724, 3743, 7303,
1103      3754, 7306, 7309,12042, 3748, 7312,12042,12042, 7315, 7319,
1104      7333, 3750, 3770, 3779, 7336, 3775, 7339,12042,12042, 3797,
1105      7347, 7354, 3785, 7365, 7368, 7371, 7379, 7386,12042,12042,
1106      7397,12042, 7400,12042,12042, 7408, 7411, 7416,12042,12042,
1107      7419, 7422, 7430, 7437, 7441, 3835, 4268, 7449,12042, 7455,
1108      7458, 7468,12042,12042, 7464, 7478, 7486, 7489, 7497,12042,
1109      3878, 3870, 3910, 3803, 7500, 3842, 3846, 3850, 7505, 7509,
1110      3865, 3868, 3951, 3884, 3889, 4000, 3867, 3916, 3916, 3914,
1111
1112      3921,12042, 3940, 3928, 3939, 3945,12042, 7523, 3927, 3954,
1113      3941, 3956, 3964, 3970, 3953, 3964, 3964, 3978, 4002, 4008,
1114      3992, 7526, 4012, 7529, 7532, 7535, 7538, 7553,12042,12042,
1115      7561,12042, 4035, 4027, 7564, 7567, 7585, 7571, 4042, 7593,
1116     12042,12042, 4046, 7601, 7604, 7612,12042,12042, 7620, 7623,
1117      7631, 7634, 7638, 7642,12042,12042, 7652, 7656, 7664, 7670,
1118      4060, 4061, 4071, 4074, 4075, 4079, 7678, 7682, 7690, 4112,
1119      4193, 7701,12042,12042, 4152, 4120, 7709, 4065, 7575, 7712,
1120      4051, 4073, 7715,12042,12042, 4121, 4109, 4111, 4119, 4127,
1121      4126, 4145, 4171, 7723, 4161, 4180, 4198, 4191, 4181, 4208,
1122
1123      4236, 4225, 7730, 4180, 4185, 4201, 4249, 4250, 4204, 4198,
1124      4200, 4226, 4286, 4287, 4239, 4247, 7733, 7736, 7741, 7744,
1125      7750, 4248, 7762,12042,12042, 4257, 4252, 7770, 7773, 7781,
1126     12042,12042, 7789, 7793, 4247, 4268, 7801,12042,12042, 7809,
1127     12042,12042, 7817, 7820, 7823, 7831, 7838, 4339, 4364, 7849,
1128      4392, 4397, 4280, 4303, 4334, 4298, 4309, 4336, 7857, 7860,
1129      4326, 4331, 4332, 4337, 4356, 7863, 7869, 7872, 7882, 7891,
1130      7894, 7897, 4344, 4355, 4357, 4346, 4366, 4376, 4379, 4367,
1131      7903, 7906, 4378, 4388,12042, 4393, 4400, 4424,12042, 4425,
1132      7914, 4405, 4391, 4456,12042,12042, 4415, 4415, 4405, 4466,
1133
1134     12042,12042, 4424, 7917, 7921, 7927, 7933,12042,12042, 4428,
1135      4435, 4444, 7942,12042,12042, 7950,12042,12042, 7958, 4445,
1136      7961, 7964,12042,12042, 7972, 4469, 4486, 4477, 4492, 4484,
1137      4495, 4499, 4511, 4503, 4514,12042, 4507, 4519,12042, 7981,
1138     12042, 7984, 4520, 4512, 4526, 4529, 4553, 7990, 7993, 8012,
1139      8037, 8084, 8003, 8020, 8023, 4544, 4565, 4568, 4536, 4559,
1140      4577, 4578, 4552, 8027,12042,12042, 4588, 4566, 4573, 4602,
1141      4580, 4586, 8048, 4561, 4563,12042, 4573, 4582, 4583,12042,
1142      4594, 8057, 8060,12042, 4592, 4598, 4609, 8063, 8067, 4601,
1143      8075, 8104, 8095, 8113, 4664, 4632, 4675, 4651, 4686, 4654,
1144
1145      4698, 4669, 4708, 4709, 4714, 4715, 8121, 4720, 4687, 4724,
1146      4694, 4730, 8130, 4760, 4765, 8150, 8197, 4722,12042,12042,
1147      4699, 4751,12042,12042, 4737,12042, 4781, 4782,12042, 4784,
1148      4785, 8124,12042, 4794, 4753, 4800, 4802, 4764, 4805, 4766,
1149      4770, 4752, 8170, 4804, 4893, 4779, 8178,12042,12042, 8186,
1150      4903, 4906,12042, 4834,12042, 4833,12042, 4839,12042, 4841,
1151     12042,12042,12042,12042, 8143,12042,12042, 4844,12042, 4845,
1152      4851, 4871, 4853, 4863, 5045, 4867, 8208, 4878, 4868, 4881,
1153      4872,12042,12042,12042,12042,12042, 4916,12042,12042, 4890,
1154     12042, 8217, 8220, 8223, 4944, 4886, 4962, 4910, 8228, 5088,
1155
1156      4915, 5122, 4928,12042,12042,12042,12042, 4923, 4929, 8231,
1157      4963, 4949, 4973, 8246, 4985, 4984, 5004, 5004,12042, 4979,
1158     12042, 4980, 8250, 8253, 8261, 8268, 8279, 8282, 5015, 5024,
1159      5036, 5028, 5036, 5070, 8290, 8298, 5053, 5062, 5074, 5058,
1160      5068, 5091, 5078, 5081, 8293, 5106,12042, 5100,12042, 5109,
1161      5101, 5103, 8308,12042,12042, 8316,12042,12042, 8324, 5128,
1162      5139, 5124, 5142, 5139, 5143, 5151, 5148, 8332,12042,12042,
1163      5161, 5168, 5170, 5183, 5188, 5188, 5238, 5238, 5242,12042,
1164      5243, 5242, 5196, 5198, 5242, 5236, 5245, 5239, 5243, 5253,
1165      5255, 5264, 5271, 5271, 5269, 5276, 5280, 5278, 5284, 5288,
1166
1167     12042,12042, 5323,12042,12042, 5265, 5267, 5287, 5319, 5304,
1168      5327, 5314, 5311, 5329, 5322, 5320, 5348, 5337, 5338, 5356,
1169      5352, 5354, 5373, 5408, 5401, 5404, 5377, 5378, 5382, 5382,
1170      5404, 5394, 5437, 5419, 5409, 5440, 5426, 5423, 5460, 5441,
1171      5439, 5469, 5474,12042,12042, 5449, 5465, 5463, 5479, 5501,
1172      5475,12042, 5511, 5489,12042, 5517, 5492,12042, 5517, 5511,
1173     12042, 5574, 5519, 5537, 5536, 5550,12042, 5555,12042, 5557,
1174     12042, 5562,12042, 5566, 8340, 5574, 5597, 5590, 5608, 5577,
1175      5582, 5584, 5595, 8343, 5634,12042, 5638,12042, 5643, 5641,
1176      5646, 5645, 5669, 5690,12042,12042,12042,12042,12042,12042,
1177
1178      5677, 5747, 5820, 5829, 5799, 5826, 5639, 5665, 5670, 5864,
1179      5890, 5926, 5744, 5895, 5900, 5932, 5797, 5898, 5849, 5924,
1180      5957, 5975, 5960, 5981, 5948, 5978, 5949, 6036, 6046, 6054,
1181      6074, 6076, 6113, 6115, 5991, 6057, 6116, 6133, 5976, 6078,
1182      6178, 6191, 6150, 6153, 5678, 6124, 6188, 6290, 6200, 6206,
1183      6020, 6105, 6231, 6307, 6308, 6334, 6341, 6370, 6232, 6392,
1184      6350, 6371, 6400, 6406, 5989, 6184, 6312, 6432, 6399, 6413,
1185      6431, 6451, 6438, 6486, 6314, 6516, 6500, 6505, 6079, 6429,
1186      6538, 6558, 5818, 5828, 8351, 8354,12042,12042, 8374, 8383,
1187      8392, 8401, 8410, 8419, 8428, 8437, 8446, 8455, 8464, 8473,
1188
1189      8482, 8491, 8500, 8509, 8518, 8527, 8536, 8545, 8554, 8563,
1190      8572, 8581, 8590, 8599, 8608, 8617, 8626, 8635, 8644, 8653,
1191      8662, 8671, 8680, 8689, 8698, 8707, 8716, 8725, 8734, 8743,
1192      8752, 8761, 8770, 8779, 8788, 8797, 8806, 8815, 8824, 8833,
1193      8842, 8851, 8860, 8869, 8878, 8887, 8896, 8905, 8914, 8921,
1194      8928, 8935, 8942, 8949, 8956, 8963, 8970, 8977, 8984, 8991,
1195      8998, 9005, 9012, 9019, 9026, 9033, 9040, 9047, 9054, 9061,
1196      9068, 9075, 9082, 9089, 9096, 9103, 9110, 9119, 9126, 9131,
1197      9138, 9143, 9150, 9155, 9162, 9167, 9174, 9179, 9186, 9191,
1198      9198, 9203, 9210, 9215, 9222, 9227, 9234, 9239, 9246, 9251,
1199
1200      9258, 9263, 9270, 9275, 9282, 9287, 9294, 9299, 9306, 9311,
1201      9318, 9323, 9330, 9335, 9342, 9347, 9354, 9359, 9366, 9371,
1202      9378, 9383, 9390, 9395, 9402, 9407, 9414, 9419, 9426, 9431,
1203      9438, 9443, 9450, 9455, 9464, 9470, 9477, 9485, 9492, 9500,
1204      9507, 9515, 9522, 9530, 9537, 9545, 9552, 9560, 9567, 9575,
1205      9582, 9590, 9597, 9605, 9612, 9620, 9627, 9635, 9642, 9650,
1206      9657, 9665, 9672, 9680, 9688, 9696, 9703, 9711, 9718, 9726,
1207      9733, 9741, 9748, 9756, 9764, 9772, 9780, 9788, 9795, 9803,
1208      9811, 9819, 9827, 9835, 9842, 9850, 9857, 9865, 9873, 9880,
1209      9888, 9897, 9903, 9910, 9918, 9926, 9934, 9942, 9950, 9957,
1210
1211      9965, 9972, 9980, 9987, 9995,10002,10010,10017,10025,10033,
1212     10041,10049,10057,10064,10072,10080,10088,10096,10104,10111,
1213     10119,10126,10134,10141,10149,10156,10164,10171,10179,10186,
1214     10194,10201,10209,10216,10224,10231,10239,10247,10254,10262,
1215     10269,10277,10284,10292,10300,10307,10315,10324,10333,10340,
1216     10348,10356,10363,10371,10378,10386,10393,10401,10408,10415,
1217     10423,10430,10438,10446,10453,10461,10468,10476,10484,10492,
1218     10499,10507,10515,10523,10530,10538,10545,10553,10560,10568,
1219     10575,10583,10590,10598,10605,10613,10620,10628,10636,10643,
1220     10651,10658,10666,10674,10682,10690,10698,10706,10715,10724,
1221
1222     10731,10739,10747,10754,10762,10769,10777,10784,10792,10799,
1223     10806,10814,10821,10829,10837,10845,10853,10860,10868,10876,
1224     10883,10891,10899,10907,10914,10922,10929,10937,10944,10952,
1225     10959,10967,10974,10982,10990,10998,11005,11013,11021,11029,
1226     11037,11044,11052,11060,11068,11076,11085,11094,11102,11110,
1227     11118,11125,11133,11140,11148,11156,11164,11172,11180,11188,
1228     11196,11204,11212,11220,11227,11235,11242,11250,11258,11266,
1229     11273,11280,11288,11295,11303,11310,11317,11325,11332,11340,
1230     11347,11355,11363,11371,11378,11386,11394,11402,11411,11420,
1231     11428,11436,11443,11450,11458,11466,11474,11482,11490,11497,
1232
1233     11505,11512,11520,11528,11535,11542,11550,11557,11565,11572,
1234     11579,11586,11594,11601,11609,11617,11625,11633,11641,11649,
1235     11657,11666,11675,11683,11691,11698,11706,11714,11722,11730,
1236     11738,11745,11753,11760,11768,11776,11783,11790,11798,11806,
1237     11814,11821,11828,11836,11844,11852,11860,11868,11876,11884,
1238     11892,11901,11910,11918,11925,11932,11940,11948,11956,11963,
1239     11971,11978,11987,11996,12005,12014,12023,12032
1240     } ;
1241
1242 static yyconst flex_int16_t yy_def[3769] =
1243     {   0,
1244      3289, 3289, 3290, 3290, 3290, 3290, 3291, 3291, 3292, 3292,
1245      3293, 3293, 3294, 3294, 3294, 3294, 3295, 3295, 3289, 3289,
1246      3296, 3296, 3297, 3297, 3297, 3297, 3289, 3289, 3297, 3297,
1247      3297, 3297, 3289, 3289, 3297, 3297, 3289, 3289, 3297, 3297,
1248      3297, 3297, 3298, 3298, 3299, 3299, 3289, 3289, 3299, 3299,
1249      3299, 3299, 3300, 3300, 3294, 3294, 3301, 3301, 3302, 3302,
1250      3303, 3303, 3304, 3304, 3305, 3305, 3306, 3306, 3306, 3306,
1251      3289, 3289, 3306, 3306, 3306, 3306, 3289, 3289, 3306, 3306,
1252      3306, 3306, 3289, 3289, 3306, 3306, 3289, 3289, 3306, 3306,
1253      3306, 3306, 3289, 3289, 3306, 3306, 3289, 3289, 3306, 3306,
1254
1255      3306, 3306, 3307, 3307, 3308, 3308, 3289, 3289, 3308, 3308,
1256      3308, 3308, 3309, 3309, 3310, 3310, 3289, 3289, 3310, 3310,
1257      3310, 3310, 3311, 3311, 3312, 3312, 3313, 3313, 3314, 3314,
1258      3315, 3315, 3316, 3316, 3289, 3289, 3316, 3316, 3316, 3316,
1259      3317, 3317, 3318, 3318, 3319, 3319, 3320, 3320, 3288,  149,
1260      3321, 3321, 3322, 3322, 3323, 3323, 3324, 3324, 3325, 3325,
1261      3326, 3326, 3327, 3327, 3328, 3328, 3329, 3329, 3330, 3330,
1262      3331, 3331, 3289, 3289, 3331, 3331, 3331, 3331, 3332, 3332,
1263      3333, 3333, 3289, 3289, 3333, 3333, 3333, 3333, 3334, 3334,
1264      3335, 3335, 3289, 3289, 3335, 3335, 3335, 3335, 3336, 3336,
1265
1266      3337, 3337, 3338, 3338, 3339, 3339, 3289, 3289, 3339, 3339,
1267      3339, 3339, 3340, 3340, 3341, 3341, 3289, 3289, 3341, 3341,
1268      3341, 3341, 3342, 3342, 3343, 3343, 3289, 3289, 3343, 3343,
1269      3343, 3343, 3344, 3344, 3345, 3345, 3346, 3346, 3347, 3347,
1270      3289, 3289, 3347, 3347, 3347, 3347, 3348, 3348, 3349, 3349,
1271      3289, 3289, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1272      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1273      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1274      3288, 3288, 3288, 3350, 3288, 3288, 3350, 3288, 3288, 3288,
1275       290,  290,  292,  290,  293,  293, 3288, 3288, 3288, 3351,
1276
1277      3288, 3288, 3351, 3288, 3288,  294,  293, 3288, 3288, 3288,
1278      3352, 3288, 3288, 3352, 3352, 3352, 3288, 3288, 3288, 3288,
1279      3288, 3353, 3288, 3288, 3353, 3353, 3353, 3353, 3353, 3288,
1280      3288, 3288, 3288, 3288, 3288, 3354, 3288, 3288, 3354, 3354,
1281      3354, 3288, 3288, 3288, 3288, 3288, 3288, 3355, 3288, 3288,
1282      3355, 3355, 3288, 3288, 3288,  355,  293,  293,  294,  359,
1283       358,  358,  358,  358,  359,  365,  363,  363, 3288, 3288,
1284      3288, 3356, 3288, 3288, 3356, 3356, 3356, 3356, 3288, 3288,
1285       293,  293, 3288, 3288, 3288, 3357, 3288, 3288, 3357, 3357,
1286      3357, 3288, 3288,  293,  293, 3288, 3288, 3288, 3358, 3288,
1287
1288      3288, 3358, 3358, 3288, 3288, 3288, 3288, 3288, 3288, 3359,
1289      3288, 3288, 3359, 3359, 3288, 3288, 3288, 3288, 3288, 3288,
1290      3360, 3288, 3288, 3360, 3360, 3360, 3360, 3360, 3288, 3288,
1291       293,  293,  293, 3288, 3288, 3288, 3361, 3288, 3288, 3361,
1292      3288, 3288, 3288, 3288, 3288, 3288, 3362, 3288, 3288, 3362,
1293      3362, 3362, 3288, 3288, 3288, 3288, 3288, 3288, 3363, 3288,
1294      3288, 3363, 3363, 3363, 3363, 3363, 3363, 3363, 3363, 3288,
1295      3288, 3288, 3288, 3288, 3288, 3364, 3288, 3288, 3364, 3364,
1296      3364, 3364, 3364, 3364, 3288, 3288, 3288, 3288, 3288, 3288,
1297      3365, 3288, 3288, 3365, 3365, 3365, 3365, 3365, 3365, 3365,
1298
1299      3288, 3288, 3288, 3288, 3288, 3288, 3366, 3288, 3288, 3366,
1300      3366, 3288, 3288, 3288, 3288, 3288, 3288, 3367, 3288, 3288,
1301      3367, 3367, 3367, 3288, 3288, 3288, 3288, 3288, 3288, 3368,
1302      3288, 3288, 3368, 3368, 3368, 3368, 3288, 3288,  293,  293,
1303      3288, 3288, 3288, 3369, 3288, 3288, 3369, 3369, 3288, 3288,
1304       293,  363,  363, 3288, 3288, 3288, 3370, 3288, 3288, 3370,
1305      3370, 3370, 3288, 3288,  363,  363, 3288, 3288, 3288, 3371,
1306      3288, 3288, 3371, 3371, 3288, 3288, 3288, 3288, 3288, 3288,
1307      3372, 3288, 3288, 3372, 3372, 3288, 3288,  363,  363, 3288,
1308      3288, 3288, 3373, 3288, 3288, 3373, 3373, 3373, 3288, 3288,
1309
1310       363,  363, 3288, 3288, 3288, 3374, 3288, 3288, 3374, 3374,
1311      3374, 3374, 3374, 3288, 3288,  293,  432,  293, 3288, 3288,
1312      3288, 3375, 3288, 3288, 3375, 3288, 3288, 3288, 3288, 3288,
1313      3288, 3376, 3288, 3288, 3376, 3288, 3288,  293,  293, 3288,
1314      3288, 3288, 3377, 3288, 3288, 3377, 3377, 3288, 3288, 3288,
1315      3288, 3378, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1316      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3379, 3379, 3380,
1317      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1318      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1319      3288, 3288, 3288, 3288, 3381, 3381, 3382, 3288, 3383, 3383,
1320
1321      3383, 3383, 3288, 3384, 3288, 3288, 3385, 3385, 3385, 3385,
1322      3385, 3385, 3385, 3385, 3385, 3386, 3288, 3387, 3387, 3387,
1323      3387, 3388, 3288, 3389, 3389, 3389, 3390, 3288, 3288, 3288,
1324      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1325      3288, 3288, 3288, 3288, 3288, 3288, 3391, 3391, 3391, 3391,
1326      3391, 3392, 3288, 3393, 3393, 3393, 3393, 3394, 3288, 3395,
1327      3395, 3395, 3396, 3288, 3397, 3397, 3397, 3398, 3288, 3399,
1328      3399, 3399, 3399, 3399, 3399, 3399, 3400, 3288, 3288, 3401,
1329      3401, 3402, 3288, 3403, 3403, 3403, 3403, 3404, 3288, 3405,
1330      3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405,
1331
1332      3405, 3405, 3405, 3405, 3405, 3406, 3288, 3407, 3407, 3407,
1333      3407, 3407, 3407, 3407, 3407, 3408, 3288, 3409, 3409, 3409,
1334      3409, 3409, 3409, 3409, 3409, 3410, 3288, 3411, 3411, 3411,
1335      3412, 3288, 3413, 3413, 3413, 3413, 3414, 3288, 3415, 3415,
1336      3415, 3415, 3415, 3415, 3416, 3288, 3417, 3417, 3417, 3417,
1337      3418, 3288, 3288, 3419, 3419, 3419, 3419, 3419, 3420, 3288,
1338      3421, 3421, 3421, 3422, 3288, 3423, 3423, 3423, 3424, 3288,
1339      3425, 3425, 3425, 3425, 3426, 3288, 3427, 3427, 3427, 3427,
1340      3427, 3427, 3428, 3288, 3288, 3429, 3429, 3430, 3288, 3431,
1341      3431, 3432, 3288, 3433, 3433, 3433, 3434, 3435, 3288, 3435,
1342
1343      3288, 3288, 3288, 3436, 3288, 3288, 3288, 3288, 3288, 3288,
1344      3288, 3437, 3438, 3438, 3288, 3288, 3288, 3288, 3288, 3288,
1345      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1346      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1347      3288, 3288, 3288, 3439, 3440, 3440, 3441, 3288, 3288, 3441,
1348      3288, 3442, 3442, 3288, 3443, 3288, 3288, 3443, 3443, 3443,
1349      3443, 3443, 3443, 3444, 3444, 3445, 3445, 3445, 3446, 3446,
1350      3288, 3288, 3447, 3448, 3448, 3288, 3288, 3288, 3288, 3288,
1351      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3449,
1352      3288, 3288, 3449, 3449, 3450, 3450, 3451, 3288, 3288, 3451,
1353
1354      3452, 3452, 3288, 3288, 3453, 3454, 3454, 3455, 3455, 3456,
1355      3456, 3457, 3457, 3457, 3288, 3288, 3457, 3457, 3457, 3458,
1356      3458, 3288, 3288, 3459, 3460, 3460, 3461, 3288, 3288, 3288,
1357      3288, 3462, 3462, 3463, 3463, 3288, 3288, 3463, 3288, 3288,
1358      3463, 3463, 3463, 3463, 3463, 3463, 3463, 3463, 3463, 3463,
1359      3464, 3464, 3288, 3288, 3288, 3288, 3465, 3465, 3465, 3465,
1360      3465, 3466, 3466, 3467, 3467, 3467, 3288, 3288, 3467, 3467,
1361      3467, 3468, 3468, 3469, 3288, 3288, 3470, 3470, 3471, 3288,
1362      3288, 3471, 3472, 3472, 3473, 3288, 3288, 3473, 3473, 3473,
1363      3474, 3474, 3475, 3475, 3475, 3476, 3476, 3288, 3477, 3477,
1364
1365      3477, 3477, 3478, 3478, 3479, 3288, 3288, 3480, 3480, 3481,
1366      3481, 3482, 3482, 3483, 3483, 3483, 3484, 3484, 3485, 3485,
1367      3485, 3485, 3485, 3486, 3486, 3288, 3487, 3488, 3488, 3288,
1368      3288, 3489, 3489, 3288, 3288, 3490, 3491, 3491, 3492, 3288,
1369      3288, 3492, 3288, 3288, 3493, 3288, 3288, 3288, 3288, 3288,
1370      3288, 3494, 3288, 3495, 3288, 3495, 3288, 3288, 3288, 3288,
1371      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1372      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1373      3288, 3288, 3288, 3288, 3288, 3288, 3496, 3288, 3497, 3288,
1374      3497, 3498, 3288, 3288, 3288, 3498, 3288, 3288, 3499, 3288,
1375
1376      3499, 3500, 3288, 3288, 3288, 3288, 3288, 3500, 3288, 3288,
1377      3500, 3500, 3500, 3288, 3501, 3288, 3501, 3502, 3502, 3502,
1378      3288, 3503, 3288, 3503, 3288, 3288, 3288, 3504, 3288, 3505,
1379      3288, 3505, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1380      3288, 3288, 3288, 3288, 3288, 3506, 3288, 3288, 3288, 3506,
1381      3506, 3288, 3507, 3288, 3507, 3508, 3288, 3288, 3288, 3508,
1382      3288, 3509, 3288, 3509, 3288, 3288, 3288, 3510, 3288, 3511,
1383      3288, 3511, 3512, 3512, 3288, 3513, 3288, 3513, 3514, 3514,
1384      3514, 3288, 3288, 3288, 3514, 3514, 3514, 3288, 3515, 3288,
1385      3515, 3288, 3288, 3516, 3288, 3517, 3288, 3517, 3518, 3288,
1386
1387      3288, 3288, 3288, 3288, 3288, 3288, 3519, 3288, 3519, 3520,
1388      3520, 3520, 3520, 3288, 3288, 3288, 3520, 3288, 3288, 3288,
1389      3288, 3288, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
1390      3520, 3288, 3521, 3288, 3521, 3288, 3288, 3288, 3288, 3288,
1391      3288, 3288, 3288, 3522, 3522, 3522, 3522, 3288, 3523, 3288,
1392      3523, 3524, 3524, 3524, 3524, 3288, 3288, 3288, 3288, 3288,
1393      3524, 3524, 3288, 3525, 3288, 3525, 3526, 3288, 3288, 3288,
1394      3288, 3527, 3288, 3527, 3528, 3288, 3288, 3288, 3528, 3288,
1395      3529, 3288, 3529, 3530, 3288, 3288, 3288, 3530, 3530, 3530,
1396      3288, 3531, 3288, 3531, 3288, 3288, 3288, 3288, 3532, 3288,
1397
1398      3533, 3288, 3533, 3288, 3288, 3288, 3534, 3534, 3288, 3288,
1399      3534, 3288, 3535, 3288, 3535, 3536, 3288, 3288, 3288, 3288,
1400      3537, 3288, 3537, 3288, 3288, 3288, 3288, 3288, 3538, 3288,
1401      3538, 3288, 3288, 3539, 3539, 3288, 3288, 3288, 3540, 3288,
1402      3540, 3541, 3541, 3541, 3541, 3541, 3288, 3542, 3288, 3542,
1403      3288, 3543, 3288, 3544, 3288, 3544, 3288, 3288, 3288, 3288,
1404      3545, 3288, 3545, 3288, 3288, 3288, 3546, 3288, 3547, 3288,
1405      3547, 3548, 3549, 3288, 3288, 3288, 3288, 3288, 3550, 3551,
1406      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1407      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1408
1409      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1410      3288, 3552, 3288, 3288, 3553, 3288, 3554, 3555, 3288, 3288,
1411      3288, 3288, 3288, 3288, 3288, 3288, 3555, 3288, 3288, 3555,
1412      3556, 3557, 3288, 3288, 3557, 3558, 3559, 3288, 3288, 3288,
1413      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1414      3288, 3288, 3560, 3560, 3288, 3288, 3561, 3562, 3562, 3563,
1415      3288, 3288, 3564, 3288, 3288, 3565, 3566, 3567, 3567, 3288,
1416      3288, 3567, 3567, 3567, 3568, 3288, 3288, 3288, 3288, 3569,
1417      3288, 3288, 3570, 3571, 3571, 3571, 3571, 3288, 3288, 3288,
1418      3288, 3288, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,
1419
1420      3571, 3572, 3288, 3288, 3288, 3573, 3573, 3573, 3573, 3574,
1421      3575, 3575, 3575, 3575, 3288, 3288, 3288, 3575, 3575, 3576,
1422      3577, 3578, 3579, 3579, 3580, 3581, 3581, 3581, 3581, 3582,
1423      3288, 3288, 3288, 3288, 3288, 3288, 3583, 3584, 3288, 3288,
1424      3288, 3288, 3585, 3585, 3288, 3288, 3288, 3585, 3586, 3587,
1425      3588, 3288, 3288, 3288, 3288, 3288, 3288, 3589, 3288, 3288,
1426      3288, 3590, 3590, 3288, 3288, 3288, 3591, 3592, 3288, 3288,
1427      3592, 3592, 3592, 3593, 3288, 3594, 3595, 3596, 3597, 3598,
1428      3599, 3600, 3600, 3288, 3600, 3288, 3288, 3288, 3601, 3602,
1429      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1430
1431      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1432      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1433      3288, 3288, 3288, 3603, 3288, 3288, 3288, 3604, 3288, 3605,
1434      3606, 3288, 3288, 3288, 3606, 3288, 3288, 3288, 3606, 3607,
1435      3608, 3288, 3288, 3288, 3288, 3288, 3609, 3610, 3288, 3288,
1436      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1437      3288, 3611, 3288, 3288, 3288, 3288, 3288, 3612, 3613, 3613,
1438      3614, 3288, 3288, 3288, 3615, 3288, 3288, 3288, 3616, 3617,
1439      3618, 3618, 3288, 3288, 3288, 3288, 3288, 3618, 3288, 3288,
1440      3618, 3619, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1441
1442      3288, 3288, 3620, 3621, 3288, 3288, 3621, 3621, 3288, 3288,
1443      3288, 3621, 3621, 3288, 3288, 3621, 3621, 3621, 3621, 3621,
1444      3621, 3622, 3288, 3288, 3623, 3623, 3623, 3624, 3625, 3288,
1445      3288, 3625, 3625, 3288, 3288, 3625, 3626, 3627, 3628, 3629,
1446      3629, 3630, 3631, 3631, 3631, 3288, 3288, 3631, 3632, 3633,
1447      3634, 3288, 3635, 3635, 3635, 3636, 3637, 3638, 3639, 3640,
1448      3640, 3641, 3642, 3288, 3288, 3288, 3642, 3642, 3642, 3643,
1449      3288, 3288, 3288, 3644, 3645, 3288, 3288, 3646, 3647, 3648,
1450      3648, 3288, 3288, 3649, 3650, 3288, 3288, 3288, 3288, 3288,
1451      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1452
1453      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1454      3288, 3288, 3288, 3651, 3652, 3288, 3653, 3654, 3654, 3654,
1455      3655, 3656, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1456      3288, 3288, 3288, 3657, 3658, 3288, 3288, 3288, 3288, 3288,
1457      3288, 3288, 3288, 3288, 3659, 3288, 3288, 3288, 3660, 3661,
1458      3288, 3288, 3662, 3663, 3288, 3288, 3664, 3665, 3665, 3288,
1459      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3665, 3288, 3288,
1460      3288, 3288, 3666, 3667, 3288, 3288, 3288, 3288, 3288, 3667,
1461      3667, 3667, 3288, 3288, 3288, 3288, 3288, 3667, 3667, 3667,
1462      3667, 3288, 3288, 3668, 3288, 3288, 3288, 3288, 3288, 3669,
1463
1464      3288, 3288, 3670, 3671, 3288, 3288, 3288, 3288, 3288, 3671,
1465      3288, 3288, 3288, 3671, 3288, 3288, 3672, 3673, 3674, 3674,
1466      3675, 3676, 3676, 3676, 3288, 3288, 3288, 3676, 3288, 3288,
1467      3677, 3678, 3288, 3288, 3288, 3288, 3288, 3679, 3680, 3681,
1468      3682, 3683, 3288, 3288, 3288, 3288, 3684, 3685, 3685, 3685,
1469      3685, 3686, 3288, 3288, 3288, 3288, 3687, 3688, 3288, 3288,
1470      3288, 3288, 3288, 3689, 3690, 3690, 3288, 3288, 3288, 3691,
1471      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1472      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1473      3288, 3288, 3288, 3288, 3288, 3692, 3693, 3288, 3288, 3288,
1474
1475      3694, 3288, 3288, 3694, 3695, 3288, 3288, 3288, 3288, 3288,
1476      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3696, 3288, 3288,
1477      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3697,
1478      3288, 3288, 3288, 3288, 3288, 3698, 3288, 3288, 3288, 3288,
1479      3288, 3699, 3700, 3700, 3288, 3288, 3288, 3288, 3288, 3700,
1480      3288, 3701, 3702, 3288, 3288, 3288, 3702, 3702, 3702, 3288,
1481      3288, 3288, 3288, 3288, 3702, 3702, 3702, 3288, 3288, 3288,
1482      3703, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3704,
1483      3705, 3288, 3288, 3288, 3705, 3705, 3706, 3707, 3708, 3288,
1484      3288, 3709, 3710, 3288, 3288, 3710, 3710, 3288, 3288, 3710,
1485
1486      3711, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1487      3712, 3713, 3714, 3715, 3716, 3288, 3288, 3288, 3288, 3288,
1488      3288, 3717, 3718, 3718, 3718, 3718, 3719, 3288, 3720, 3721,
1489      3722, 3723, 3723, 3288, 3288, 3288, 3288, 3724, 3288, 3288,
1490      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1491      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3725,
1492      3726, 3288, 3727, 3288, 3288, 3288, 3727, 3288, 3288, 3288,
1493      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1494      3288, 3288, 3728, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1495      3288, 3288, 3288, 3288, 3288, 3288, 3729, 3288, 3288, 3288,
1496
1497      3730, 3731, 3732, 3732, 3288, 3288, 3288, 3288, 3732, 3288,
1498      3733, 3734, 3734, 3734, 3734, 3288, 3288, 3288, 3734, 3734,
1499      3734, 3735, 3288, 3288, 3288, 3736, 3737, 3737, 3737, 3738,
1500      3288, 3288, 3739, 3288, 3288, 3288, 3740, 3741, 3288, 3288,
1501      3288, 3741, 3741, 3288, 3288, 3288, 3288, 3741, 3742, 3288,
1502      3743, 3744, 3745, 3746, 3747, 3748, 3288, 3288, 3749, 3749,
1503      3749, 3750, 3288, 3751, 3288, 3288, 3752, 3753, 3753, 3288,
1504      3754, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1505      3288, 3288, 3288, 3288, 3755, 3288, 3288, 3756, 3288, 3288,
1506      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3757, 3288,
1507
1508      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1509      3288, 3288, 3288, 3288, 3758, 3288, 3288, 3759, 3760, 3760,
1510      3288, 3288, 3288, 3288, 3760, 3288, 3761, 3762, 3762, 3762,
1511      3762, 3762, 3288, 3288, 3762, 3762, 3288, 3288, 3288, 3288,
1512      3737, 3737, 3737, 3738, 3288, 3288, 3740, 3288, 3288, 3741,
1513      3741, 3741, 3288, 3288, 3288, 3288, 3741, 3742, 3288, 3743,
1514      3288, 3288, 3288, 3288, 3746, 3747, 3748, 3288, 3288, 3288,
1515      3288, 3288, 3749, 3749, 3288, 3288, 3288, 3751, 3752, 3753,
1516      3753, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3755,
1517      3288, 3288, 3288, 3756, 3288, 3288, 3288, 3288, 3288, 3288,
1518
1519      3288, 3288, 3288, 3288, 3757, 3288, 3288, 3288, 3288, 3288,
1520      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1521      3288, 3758, 3288, 3288, 3760, 3760, 3288, 3288, 3288, 3288,
1522      3761, 3762, 3762, 3762, 3762, 3762, 3288, 3288, 3288, 3762,
1523      3288, 3288, 3737, 3737, 3288, 3288, 3738, 3288, 3288, 3288,
1524      3288, 3288, 3288, 3288, 3288, 3741, 3741, 3741, 3288, 3288,
1525      3288, 3288, 3742, 3743, 3288, 3288, 3288, 3288, 3288, 3747,
1526      3748, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1527      3752, 3753, 3753, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1528      3288, 3288, 3288, 3288, 3288, 3288, 3756, 3288, 3288, 3288,
1529
1530      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3757, 3288, 3288,
1531      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1532      3288, 3288, 3288, 3758, 3760, 3288, 3288, 3288, 3288, 3288,
1533      3288, 3288, 3762, 3762, 3762, 3288, 3288, 3762, 3762, 3288,
1534      3288, 3288, 3737, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1535      3741, 3741, 3741, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1536      3288, 3288, 3288, 3288, 3288, 3288, 3747, 3748, 3288, 3288,
1537      3288, 3288, 3288, 3288, 3752, 3753, 3753, 3288, 3288, 3288,
1538      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1539      3288, 3288, 3288, 3756, 3288, 3288, 3288, 3288, 3288, 3288,
1540
1541      3288, 3288, 3757, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1542      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3758, 3288,
1543      3288, 3760, 3288, 3288, 3288, 3762, 3762, 3288, 3288, 3288,
1544      3288, 3288, 3288, 3288, 3762, 3737, 3288, 3288, 3288, 3288,
1545      3288, 3288, 3741, 3288, 3288, 3741, 3288, 3288, 3288, 3288,
1546      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3747, 3748,
1547      3288, 3288, 3288, 3288, 3752, 3753, 3753, 3753, 3288, 3288,
1548      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1549      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1550      3757, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1551
1552      3288, 3288, 3288, 3288, 3288, 3758, 3288, 3288, 3288, 3760,
1553      3762, 3762, 3288, 3288, 3288, 3288, 3288, 3288, 3762, 3737,
1554      3741, 3288, 3288, 3288, 3741, 3288, 3288, 3288, 3288, 3288,
1555      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1556      3288, 3748, 3288, 3288, 3288, 3288, 3752, 3753, 3753, 3753,
1557      3763, 3764, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1558      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1559      3288, 3288, 3757, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1560      3288, 3288, 3288, 3288, 3760, 3762, 3762, 3288, 3288, 3737,
1561      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1562
1563      3288, 3288, 3288, 3288, 3288, 3288, 3748, 3288, 3288, 3288,
1564      3288, 3752, 3753, 3765, 3766, 3763, 3764, 3288, 3288, 3288,
1565      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1566      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3760,
1567      3762, 3762, 3288, 3288, 3288, 3737, 3288, 3288, 3288, 3288,
1568      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1569      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1570      3752, 3765, 3753, 3767, 3766, 3768, 3753, 3288, 3288, 3288,
1571      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1572      3288, 3760, 3762, 3762, 3288, 3288, 3288, 3288, 3737, 3288,
1573
1574      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3752,
1575      3767, 3288, 3768, 3753, 3288, 3288, 3288, 3288, 3288, 3288,
1576      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1577      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1578      3288, 3288, 3288, 3288, 3752, 3288, 3288, 3288, 3288, 3288,
1579      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1580      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1581      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3752, 3288,
1582      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1583      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1584
1585      3288, 3288, 3752, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1586      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1587      3288, 3288, 3288, 3752, 3288, 3288, 3288, 3288, 3288, 3288,
1588      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1589      3288, 3288, 3752, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1590      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1591      3288, 3752, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1592      3288, 3288, 3288, 3288, 3752, 3288, 3288, 3288, 3288, 3288,
1593      3288, 3288, 3288, 3752, 3288, 3288, 3288, 3288, 3288, 3288,
1594      3288, 3288, 3752, 3752, 3288, 3288, 3288, 3288, 3288, 3288,
1595
1596      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1597      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1598      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1599      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1600      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1601      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1602      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1603      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
1604      3752, 3752, 3752, 3752, 3752, 3752, 3288,    0, 3288, 3288,
1605      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1606
1607      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1608      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1609      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1610      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1611      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1612      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1613      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1614      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1615      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1616      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1617
1618      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1619      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1620      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1621      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1622      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1623      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1624      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1625      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1626      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1627      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1628
1629      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1630      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1631      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1632      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1633      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1634      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1635      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1636      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1637      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1638      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1639
1640      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1641      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1642      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1643      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1644      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1645      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1646      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1647      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1648      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1649      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1650
1651      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1652      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1653      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1654      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1655      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1656      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
1657      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288
1658     } ;
1659
1660 static yyconst flex_int16_t yy_nxt[12117] =
1661     {   0,
1662      3288,  256,  257,  256,  256,  257,  256,  256,  257,  256,
1663       256,  257,  256,  261,  257,  261,  267,  258,  264,  267,
1664       258,  264, 1729,  259, 3288,  265,  259, 3288,  265,  262,
1665       261,  257,  261,  652,  268,  270,  271,  268,  270,  271,
1666       272,  273,  697,  272,  273,  652,  262,  277,  278,  653,
1667       274,  270,  271,  274,  275,  655,  272,  270,  271,  686,
1668       275,  654,  272,  277,  278, 1731,  274,  257,  257,  257,
1669       843,  654,  274,  257,  257,  257,  289,  257,  289,  289,
1670       257,  289,  844,  280,  289,  257,  289,  673, 1735,  280,
1671       727,  279,  290, 1353,  689,  290,  651,  651,  651, 1354,
1672
1673       291,  651,  651,  651,  651,  651,  651,  279,  281,  282,
1674       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1675       281,  281,  281,  684,  281,  285,  281,  286,  281,  289,
1676       257,  289,  257,  257,  257,  257,  257,  257,  685,  289,
1677       257,  289,  289,  257,  289,  291,  690,  799,  292,  655,
1678       800,  292,  917,  281,  281,  290,  655,  655,  290,  289,
1679       257,  289,  651,  651,  651,  654,  651,  651,  651,  651,
1680       651,  651,  654,  654, 3288,  293,  918,  287,  281,  282,
1681       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1682       281,  281,  281, 1739,  281,  285,  281,  286,  281,  289,
1683
1684       257,  289,  257,  257,  257,  257,  257,  257,  660,  289,
1685       257,  289,  289,  257,  289,  293,  666,  727,  294,  812,
1686       977,  294,  813,  281,  281,  291,  736,  728,  291,  257,
1687       257,  257,  257,  257,  257,  289,  257,  289,  289,  257,
1688       289,  289,  257,  289,  978,  295,  849,  287,  295,  655,
1689       661,  293,  792,  850,  293,  740,  662,  296,  289,  257,
1690       289,  663,  651,  651,  651,  654,  664,  651,  651,  651,
1691       651,  651,  651,  793,  296,  297,  298,  257,  298,  297,
1692       297,  297,  297,  297,  297,  297,  299,  297,  297,  297,
1693       714,  297,  301,  297,  302,  297,  305,  257,  305,  305,
1694
1695       257,  305,  257,  257,  257,  715,  257,  257,  257,  305,
1696       257,  305,  306,  774,  851,  306, 1741,  775,  294,  710,
1697       297,  297,  294,  711,  752,  306,  670,  712,  303,  297,
1698       298,  257,  298,  297,  297,  297,  297,  297,  297,  297,
1699       299,  297,  297,  297,  655,  297,  301,  297,  302,  297,
1700       305,  257,  305,  305,  257,  305,  305,  257,  305,  801,
1701       654,  859,  270,  271,  857,  691,  306,  272, 3288,  307,
1702       690,  858,  307,  802,  297,  297,  736,  317,  692,  752,
1703       685, 1748,  303,  308,  309,  257,  309,  308,  308,  308,
1704       308,  308,  308,  308,  310,  308,  308,  308, 1749,  308,
1705
1706       312,  308,  313,  308, 1750,  655,  318,  684,  331,  257,
1707       331,  331,  257,  331,  343,  257,  343,  690,  270,  271,
1708       693,  654,  685,  272,  332,  703,  796,  332,  308,  308,
1709       344,  689,  704,  317,  797,  905,  314,  758,  906,  315,
1710       798,  654,  651,  651,  651, 1751,  316,  308,  309,  257,
1711       309,  308,  308,  308,  308,  308,  308,  308,  310,  308,
1712       308,  308,  318,  308,  312,  308,  313,  308,  343,  257,
1713       343,  354,  257,  354,  354,  257,  354, 1756,  354,  257,
1714       354,  354,  257,  354,  344,  655,  741,  355,  655,  736,
1715       355,  852,  308,  308,  356,  716, 1496,  356, 1757,  690,
1716
1717       314,  654,  742,  315,  654,  651,  651,  651,  758, 1497,
1718       316,  319,  320,  257,  320,  319,  319,  319,  319,  319,
1719       319,  319,  321,  319,  319,  319, 1758,  319,  323,  319,
1720       324,  319,  257,  257,  257,  257,  257,  257,  354,  257,
1721       354,  777,  354,  257,  354,  354,  257,  354,  357, 1759,
1722       655,  357,  655,  655,  355, 1760,  319,  319,  355,  722,
1723       689,  358,  651,  651,  651,  325,  654,  326,  654,  654,
1724       777,  327,  651,  651,  651,  845,  328,  329,  319,  320,
1725       257,  320,  319,  319,  319,  319,  319,  319,  319,  321,
1726       319,  319,  319,  689,  319,  323,  319,  324,  319,  354,
1727
1728       257,  354,  257,  257,  257,  257,  257,  257,  884,  354,
1729       257,  354,  354,  257,  354,  358,  739, 1761,  359,  778,
1730       679,  359,  736,  319,  319,  360,  732,  736,  360,  651,
1731       651,  651,  325,  735,  326,  651,  651,  651,  327,  651,
1732       651,  651, 1762,  328,  329,  333,  334,  257,  334,  333,
1733       333,  333,  333,  333,  333,  333,  335,  333,  333,  333,
1734       686,  333,  337,  333,  338,  333,  354,  257,  354,  354,
1735       257,  354,  257,  257,  257,  899,  257,  257,  257,  354,
1736       257,  354,  361, 1769, 1770,  361,  899,  869,  362,  743,
1737       333,  333,  362,  730,  731,  358,  875,  339,  651,  651,
1738
1739       651,  900,  689,  340,  744,  651,  651,  651,  651,  651,
1740       651,  951,  341,  333,  334,  257,  334,  333,  333,  333,
1741       333,  333,  333,  333,  335,  333,  333,  333, 1779,  333,
1742       337,  333,  338,  333,  354,  257,  354,  257,  257,  257,
1743       257,  257,  257,  690,  354,  257,  354,  354,  257,  354,
1744       358,  655,  690,  363, 1781,  917,  363,  655,  333,  333,
1745       361,  655,  655,  361,  763,  339, 1782,  654,  651,  651,
1746       651,  340,  977,  654,  651,  651,  651,  654,  654,  986,
1747       341,  345,  346,  257,  346,  345,  345,  345,  345,  345,
1748       345,  345,  347,  345,  345,  345,  918,  345,  349,  345,
1749
1750       350,  345,  354,  257,  354,  354,  257,  354,  257,  257,
1751       257, 1788,  257,  257,  257,  354,  257,  354,  364,  655,
1752      1013,  364,  655, 1014,  365,  845,  345,  345,  365,  768,
1753      1793,  366,  651,  651,  651,  654, 3288,  351,  654,  651,
1754       651,  651,  651,  651,  651, 1794,  352,  345,  346,  257,
1755       346,  345,  345,  345,  345,  345,  345,  345,  347,  345,
1756       345,  345,  977,  345,  349,  345,  350,  345,  354,  257,
1757       354,  257,  257,  257,  257,  257,  257,  689,  354,  257,
1758       354,  354,  257,  354,  366,  778,  986,  367,  736,  917,
1759       367, 1804,  345,  345,  364,  655, 1807,  364,  354,  257,
1760
1761       354, 1808,  782,  351,  354,  257,  354,  651,  651,  651,
1762       883,  654,  352,  987,  368,  651,  651,  651,  727, 1812,
1763       368,  369,  370,  257,  370,  369,  369,  369,  369,  369,
1764       369,  369,  371,  369,  369,  369,  977,  369,  373,  369,
1765       374,  369,  380,  257,  380,  380,  257,  380,  257,  257,
1766       257,  926,  257,  257,  257,  927,  745,  655,  381, 1022,
1767       987,  381,  689, 1023,  357, 3288,  369,  369,  357,  655,
1768       655,  375,  734,  654,  892,  686,  788,  376,  651,  651,
1769       651,  377,  651,  651,  651,  654,  654,  378,  369,  370,
1770       257,  370,  369,  369,  369,  369,  369,  369,  369,  371,
1771
1772       369,  369,  369,  673,  369,  373,  369,  374,  369,  380,
1773       257,  380,  380,  257,  380,  380,  257,  380,  892,  380,
1774       257,  380,  651,  651,  651,  381,  736,  803,  381,  655,
1775       655,  382, 1140,  369,  369,  382,  806,  655,  375,  804,
1776       805,  651,  651,  651,  376,  654,  654, 1813,  377,  651,
1777       651,  651, 1681,  654,  378,  383,  384,  257,  384,  383,
1778       383,  383,  383,  383,  383,  383,  385,  383,  383,  383,
1779       689,  383,  387,  383,  388,  383,  393,  257,  393,  393,
1780       257,  393,  257,  257,  257,  931,  257,  257,  257,  651,
1781       651,  651,  394,  655,  655,  394,  655, 1816,  357,  932,
1782
1783       383,  383,  357,  816, 1817,  389,  651,  651,  651,  654,
1784       654,  390,  654,  651,  651,  651,  651,  651,  651,  651,
1785       651,  651,  391,  383,  384,  257,  384,  383,  383,  383,
1786       383,  383,  383,  383,  385,  383,  383,  383, 1818,  383,
1787       387,  383,  388,  383,  393,  257,  393,  393,  257,  393,
1788       393,  257,  393,  936,  393,  257,  393, 1140,  655, 1508,
1789       394, 1472,  655,  394,  655,  826,  395,  932,  383,  383,
1790       395,  831, 1497,  389,  654,  651,  651,  651,  654,  390,
1791       654,  651,  651,  651,  651,  651,  651,  651,  651,  651,
1792       391,  396,  397,  257,  397,  396,  396,  396,  396,  396,
1793
1794       396,  396,  398,  396,  396,  396, 1819,  396,  400,  396,
1795       401,  396,  405,  257,  405,  405,  257,  405,  416,  257,
1796       416, 1820,  416,  257,  416,  430,  257,  430,  406,  655,
1797       655,  406,  655, 1821,  417,  859,  396,  396,  417,  837,
1798      1829,  431,  651,  651,  651,  654,  654,  402,  654,  651,
1799       651,  651,  403,  396,  397,  257,  397,  396,  396,  396,
1800       396,  396,  396,  396,  398,  396,  396,  396, 1832,  396,
1801       400,  396,  401,  396,  430,  257,  430,  257,  257,  257,
1802       257,  257,  257,  852,  430,  257,  430,  430,  257,  430,
1803       431,  690, 1833,  432, 1836, 1838,  432,  655,  396,  396,
1804
1805       431, 1840, 1841,  431, 1843,  851,  651,  651,  651,  402,
1806       651,  651,  651,  654,  403,  407,  408,  257,  408,  407,
1807       407,  407,  407,  407,  407,  407,  409,  407,  407,  407,
1808      1844,  407,  411,  407,  412,  407,  430,  257,  430,  430,
1809       257,  430,  442,  257,  442,  936,  442,  257,  442,  454,
1810       257,  454,  433,  852, 1845,  433,  655,  689,  443,  983,
1811       407,  407,  443,  864,  655,  455,  651,  651,  651,  651,
1812       651,  651,  654,  651,  651,  651,  413,  651,  651,  651,
1813       654, 1850,  414,  407,  408,  257,  408,  407,  407,  407,
1814       407,  407,  407,  407,  409,  407,  407,  407, 1853,  407,
1815
1816       411,  407,  412,  407,  454,  257,  454,  471,  257,  471,
1817       471,  257,  471, 1854,  486,  257,  486,  486,  257,  486,
1818       455, 1855,  655,  472, 1857, 1860,  472,  655,  407,  407,
1819       487,  919,  655,  487,  651,  651,  651,  869,  654,  651,
1820       651,  651,  920,  654,  413,  921, 1861,  875,  654, 1863,
1821       414,  418,  419,  257,  419,  418,  418,  418,  418,  418,
1822       418,  418,  420,  418,  418,  418, 1867,  418,  422,  418,
1823       423,  418,  502,  257,  502,  502,  257,  502,  513,  257,
1824       513, 1868,  513,  257,  513,  852,  655, 1869,  503, 1871,
1825      1684,  503, 1882,  690,  514,  852,  418,  418,  514,  424,
1826
1827       655,  425,  654,  690,  651,  651,  651,  426,  651,  651,
1828       651,  651,  651,  651,  427,  883,  654,  428,  418,  419,
1829       257,  419,  418,  418,  418,  418,  418,  418,  418,  420,
1830       418,  418,  418, 1883,  418,  422,  418,  423,  418,  525,
1831       257,  525,  525,  257,  525,  538,  257,  538,  919,  538,
1832       257,  538,  884, 1884, 1886,  526, 1140, 1140,  526,  920,
1833      1508,  539,  935,  418,  418,  539,  424,  736,  425,  651,
1834       651,  651, 1142, 1546,  426,  651,  651,  651,  651,  651,
1835       651,  427, 1879, 1887,  428,  434,  435,  257,  435,  434,
1836       434,  434,  434,  434,  434,  434,  436,  434,  434,  434,
1837
1838      1888,  434,  438,  434,  439,  434,  257,  257,  257,  257,
1839       257,  257,  538,  257,  538,  936,  538,  257,  538,  538,
1840       257,  538,  357, 1889, 1890,  357,  655,  655,  539,  988,
1841       434,  434,  539,  888,  897,  540,  651,  651,  651,  651,
1842       651,  651,  654,  654, 1891, 1892,  440,  434,  435,  257,
1843       435,  434,  434,  434,  434,  434,  434,  434,  436,  434,
1844       434,  434, 1893,  434,  438,  434,  439,  434,  538,  257,
1845       538,  550,  257,  550,  550,  257,  550,  936,  257,  257,
1846       257,  257,  257,  257,  540, 1894, 1895,  551,  928, 1897,
1847       551,  989,  434,  434,  552,  929, 1898,  552,  651,  651,
1848
1849       651,  930,  903,  903,  903, 1157, 1157, 1157,  440,  444,
1850       445,  257,  445,  444,  444,  444,  444,  444,  444,  444,
1851       446,  444,  444,  444, 1899,  444,  448,  444,  449,  444,
1852       550,  257,  550,  550,  257,  550,  550,  257,  550,  938,
1853       550,  257,  550,  564,  257,  564,  551, 1900, 1903,  551,
1854       939,  941,  553,  921,  444,  444,  553,  938,  929,  565,
1855       450,  904,  941,  928,  942,  451, 1906, 1907,  939,  929,
1856       929,  935, 1488, 1488, 1488,  930,  942,  452,  444,  445,
1857       257,  445,  444,  444,  444,  444,  444,  444,  444,  446,
1858       444,  444,  444, 1908,  444,  448,  444,  449,  444,  564,
1859
1860       257,  564,  257,  257,  257,  257,  257,  257, 1909,  564,
1861       257,  564,  564,  257,  564,  565, 1910, 1911,  552,  928,
1862       941,  552, 1915,  444,  444,  565,  929,  929,  565,  450,
1863       919, 1916,  982,  982,  451,  903,  903,  903, 1918, 1144,
1864      1919,  939, 1920, 1922,  935, 1935,  452,  456,  457,  257,
1865       457,  456,  456,  456,  456,  456,  456,  456,  458,  456,
1866       456,  456,  459,  456,  460,  456,  461,  456,  459,  459,
1867       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1868       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1869       459,  459,  456,  456,  459,  462,  463,  464,  459,  459,
1870
1871       459,  459,  459,  465,  459,  459,  466,  459,  459,  459,
1872       467,  459,  468,  469,  459,  459,  459,  459,  459,  459,
1873       459,  473,  474,  257,  474,  473,  473,  473,  473,  473,
1874       473,  473,  475,  473,  473,  473, 1936,  473,  477,  473,
1875       478,  473,  564,  257,  564,  564,  257,  564,  576,  257,
1876       576, 1937,  576,  257,  576,  587,  257,  587,  566, 1311,
1877      1938,  566, 1939, 1942,  577, 1943,  473,  473,  577, 1312,
1878       479,  588, 1157, 1157, 1157, 1944, 1313,  480, 1945, 1950,
1879       481, 1180, 1180, 1180,  482, 1958,  483,  484,  473,  474,
1880       257,  474,  473,  473,  473,  473,  473,  473,  473,  475,
1881
1882       473,  473,  473, 1959,  473,  477,  473,  478,  473,  587,
1883       257,  587,  257,  257,  257,  257,  257,  257, 1968,  587,
1884       257,  587,  587,  257,  587,  588, 1972, 1974,  552, 1980,
1885      1981,  552, 1982,  473,  473,  588, 1158,  479,  588, 1193,
1886      1193, 1193, 1988, 1194,  480, 1158, 1195,  481, 1180, 1180,
1887      1180,  482, 1989,  483,  484,  488,  489,  257,  489,  488,
1888       488,  488,  488,  488,  488,  488,  490,  488,  488,  488,
1889      1990,  488,  492,  488,  493,  488,  587,  257,  587,  587,
1890       257,  587,  600,  257,  600, 1991,  600,  257,  600,  948,
1891       948,  948,  589, 2004, 2010,  589, 2014, 2017,  601, 2019,
1892
1893       488,  488,  601,  494,  495,  496,  949, 2020, 1203, 1203,
1894      1203,  497, 1204, 2022,  498, 1205, 2023, 2024,  499, 2028,
1895      2031,  500,  488,  489,  257,  489,  488,  488,  488,  488,
1896       488,  488,  488,  490,  488,  488,  488, 2033,  488,  492,
1897       488,  493,  488,  257,  257,  257,  257,  257,  257,  600,
1898       257,  600, 2040,  600,  257,  600,  956,  956,  956,  552,
1899      2048, 2049,  552, 2050, 2051,  601, 2053,  488,  488,  601,
1900       494,  495,  496,  957, 2067, 1225, 1225, 1225,  497, 1226,
1901      2071,  498, 1227, 2072, 2073,  499, 1684, 1140,  500,  504,
1902       505,  257,  505,  504,  504,  504,  504,  504,  504,  504,
1903
1904       506,  504,  504,  504, 2064,  504,  508,  504,  509,  504,
1905       600,  257,  600,  600,  257,  600,  615,  257,  615, 2076,
1906       615,  257,  615,  971,  971,  971,  602, 2077, 2065,  602,
1907      2079, 2080,  616, 2081,  504,  504,  616, 2082, 2083,  510,
1908       972, 1543, 1543, 1543, 2084,  511,  504,  505,  257,  505,
1909       504,  504,  504,  504,  504,  504,  504,  506,  504,  504,
1910       504, 1684,  504,  508,  504,  509,  504,  257,  257,  257,
1911       257,  257,  257,  615,  257,  615, 2087,  615,  257,  615,
1912       991,  991,  991,  617, 2088, 2074,  617, 2091, 2092,  616,
1913      2093,  504,  504,  616, 2066, 2094,  510,  992, 1488, 1488,
1914
1915      1488, 2075,  511,  515,  516,  257,  516,  515,  515,  515,
1916       515,  515,  515,  515,  517,  515,  515,  515, 2095,  515,
1917       519,  515,  520,  515,  615,  257,  615,  615,  257,  615,
1918       627,  257,  627, 2097,  627,  257,  627,  637,  257,  637,
1919       618, 2098, 2101,  618, 2104, 2108,  628, 2109,  515,  515,
1920       628, 2112,  521,  638, 1157, 1157, 1157, 2113, 2114,  522,
1921      2117, 2121,  523,  515,  516,  257,  516,  515,  515,  515,
1922       515,  515,  515,  515,  517,  515,  515,  515, 2122,  515,
1923       519,  515,  520,  515,  637,  257,  637,  257,  257,  257,
1924       257,  257,  257, 2110,  637,  257,  637,  637,  257,  637,
1925
1926       638, 2111, 2125,  357, 2123, 2127,  357, 2143,  515,  515,
1927       638, 2144,  521,  638, 1180, 1180, 1180, 2148, 1233,  522,
1928      2124, 2149,  523,  527,  528,  257,  528,  527,  527,  527,
1929       527,  527,  527,  527,  529,  527,  527,  527, 2150,  527,
1930       531,  527,  532,  527,  637,  257,  637,  637,  257,  637,
1931       649,  257,  649, 2115,  649,  257,  649,  998,  998,  998,
1932       639, 2116, 2151,  639, 2123, 2074,  650,  727,  527,  527,
1933       650, 2153,  533, 3288,  999, 2157, 2158,  737, 1233,  534,
1934      2075, 2124,  535,  686, 2159, 2165,  686, 2166, 2167,  536,
1935       527,  528,  257,  528,  527,  527,  527,  527,  527,  527,
1936
1937       527,  529,  527,  527,  527,  738,  527,  531,  527,  532,
1938       527, 2181,  687, 2185,  741, 1003, 1003, 1003,  688,  689,
1939      1015, 1015, 1015,  683, 2186,  689, 1028, 1028, 1028,  690,
1940       742, 2187, 1004, 2189, 2193,  527,  527, 1016, 2197,  533,
1941      1247, 1247, 1247, 1029, 1248, 2198,  534, 1249, 2199,  535,
1942      1698, 1698, 1698, 1701, 1701, 1701,  536,  541,  542,  257,
1943       542,  541,  541,  541,  541,  541,  541,  541,  543,  541,
1944       541,  541, 2200,  541,  545,  541,  546,  541, 1030, 1030,
1945      1030, 1036, 1036, 1036, 1039, 1039, 1039, 1053, 1053, 1053,
1946      1055, 1055, 1055, 2201, 2204, 1031, 1699, 2211, 1037, 1702,
1947
1948      2213, 1040,  541,  541, 1054, 2223, 2224, 1056,  547, 1257,
1949      1257, 1257, 2225, 1258, 2226, 2228, 1259, 1705, 1705, 1705,
1950      1708, 1708, 1708,  548,  541,  542,  257,  542,  541,  541,
1951       541,  541,  541,  541,  541,  543,  541,  541,  541, 2234,
1952       541,  545,  541,  546,  541, 1067, 1067, 1067, 1075, 1075,
1953      1075, 1080, 1080, 1080, 1086, 1086, 1086, 1106, 1106, 1106,
1954      1140, 2240, 1068, 2241, 2242, 1076, 2231, 2243, 1081,  541,
1955       541, 1087, 2246, 1684, 1107,  547, 1265, 1265, 1265, 2248,
1956      1266, 2249, 2250, 1267, 1718, 1718, 1718, 1543, 1543, 1543,
1957       548,  554,  555,  257,  555,  554,  554,  554,  554,  554,
1958
1959       554,  554,  556,  554,  554,  554, 2254,  554,  558,  554,
1960       559,  554, 1130, 1130, 1130, 1134, 1134, 1134, 1684, 2233,
1961      1153, 1153, 1153, 1153, 1153, 1153, 1188, 1188, 1188, 1131,
1962      2259, 2261, 1135, 1188, 1188, 1188,  554,  554, 1155, 2262,
1963      2263, 1155,  560, 2267, 1190,  561, 1282, 1282, 1282, 2232,
1964      1283, 1190, 2273, 1284, 1755, 1755, 1755,  562,  554,  555,
1965       257,  555,  554,  554,  554,  554,  554,  554,  554,  556,
1966       554,  554,  554, 2274,  554,  558,  554,  559,  554, 2275,
1967      2276, 1156,  948,  948,  948, 2277, 2278, 1198, 1198, 1198,
1968      1198, 1198, 1198, 1191,  956,  956,  956, 2279, 2280,  949,
1969
1970      1206, 1206, 1206,  554,  554, 1200, 2281, 2282, 1200,  560,
1971      2288,  957,  561, 2289, 1300, 1300, 1300, 1207, 1301, 2290,
1972      2291, 1302, 2303, 2304,  562,  567,  568,  257,  568,  567,
1973       567,  567,  567,  567,  567,  567,  569,  567,  567,  567,
1974      2309,  567,  571,  567,  572,  567, 1209, 1209, 1209, 1214,
1975      1214, 1214, 2310, 2312, 1201, 2313, 1214, 1214, 1214, 1221,
1976      1221, 1221, 2314, 1210, 1752, 1752, 1752, 1216, 2315, 2319,
1977       567,  567, 2320, 2321, 1216, 2327,  573, 1223, 1698, 1698,
1978      1698,  574,  567,  568,  257,  568,  567,  567,  567,  567,
1979       567,  567,  567,  569,  567,  567,  567, 2328,  567,  571,
1980
1981       567,  572,  567, 1217, 1221, 1221, 1221,  971,  971,  971,
1982      1753, 1229, 1229, 1229,  991,  991,  991, 1229, 1229, 1229,
1983      1923, 2329, 1223, 2330,  972, 2333, 1924,  567,  567, 1231,
1984      1925,  992, 2338,  573, 1926, 1231, 2342, 2343,  574,  578,
1985       579,  257,  579,  578,  578,  578,  578,  578,  578,  578,
1986       580,  578,  578,  578, 1232,  578,  582,  578,  583,  578,
1987      1252, 1252, 1252, 1252, 1252, 1252, 1927, 2348, 1224,  998,
1988       998,  998, 1928, 1261, 1261, 1261, 1929, 2349, 1254, 2350,
1989      1930, 1254, 2351, 2353,  578,  578,  999, 1003, 1003, 1003,
1990       584, 1263, 1303, 1303, 1303, 2363, 1304, 2374, 2375, 1305,
1991
1992      2376, 1754, 1754, 1754, 1004,  585,  578,  579,  257,  579,
1993       578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
1994       578, 2380,  578,  582,  578,  583,  578, 2381, 1684, 1255,
1995      1261, 1261, 1261, 2382, 2385, 1269, 1269, 1269, 1269, 1269,
1996      1269, 1275, 1275, 1275, 1275, 1275, 1275, 1702, 1263, 2389,
1997      2305,  578,  578, 1271, 2390, 2391, 1271,  584, 2306, 1277,
1998      2307, 2344, 1277, 1314, 1314, 1314, 2392, 1315, 2308, 2345,
1999      1316, 2368,  585,  590,  591,  257,  591,  590,  590,  590,
2000       590,  590,  590,  590,  592,  590,  590,  590, 1684,  590,
2001       594,  590,  595,  590, 2393, 2394, 1264, 2395, 2396, 1272,
2002
2003      1015, 1015, 1015, 1288, 1288, 1288, 1028, 1028, 1028, 1278,
2004      1288, 1288, 1288, 1295, 1295, 1295, 2397, 1016,  590,  590,
2005      2398, 1290, 2346, 1029,  596, 2411, 2412,  597, 1290, 2413,
2006      2347, 1297, 1701, 1701, 1701, 2369, 1701, 1701, 1701,  598,
2007       590,  591,  257,  591,  590,  590,  590,  590,  590,  590,
2008       590,  592,  590,  590,  590, 2414,  590,  594,  590,  595,
2009       590, 1030, 1030, 1030, 2419, 2420, 1295, 1295, 1295, 2421,
2010      2422, 1291, 1306, 1306, 1306, 1306, 1306, 1306, 1031, 1036,
2011      1036, 1036, 1852, 2423, 1297,  590,  590, 1039, 1039, 1039,
2012      1308,  596, 2424, 1308,  597, 2425, 1037, 2428, 1318, 1318,
2013
2014      1318, 2429, 1319, 2430, 1040, 1320,  598,  603,  604,  257,
2015       604,  603,  603,  603,  603,  603,  603,  603,  605,  603,
2016       603,  603, 2435,  603,  607,  603,  608,  603, 1298, 1321,
2017      1321, 1321, 1332, 1332, 1332, 2436, 1309, 1332, 1332, 1332,
2018      1053, 1053, 1053, 1348, 1348, 1348, 1322, 1336, 1336, 1336,
2019      1334, 1337,  603,  603, 1338, 1334, 2441, 1054, 2442, 2443,
2020       609, 1350,  610, 2444, 2453,  611, 1896, 1896, 1896,  612,
2021      1705, 1705, 1705,  613,  603,  604,  257,  604,  603,  603,
2022       603,  603,  603,  603,  603,  605,  603,  603,  603, 2454,
2023       603,  607,  603,  608,  603, 1335, 1055, 1055, 1055, 1339,
2024
2025      1339, 1339, 2455, 1340, 2456, 2458, 1341, 1342, 1342, 1342,
2026      1363, 1363, 1363, 1056, 3288, 3288, 3288, 2460, 2484,  603,
2027       603, 3288, 3288, 3288, 1343, 2485, 2487,  609, 1365,  610,
2028      2488, 3288,  611, 1708, 1708, 1708,  612, 2489, 3288, 2490,
2029       613,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2030       619,  619,  621,  619,  619,  619, 1684,  619,  623,  619,
2031       624,  619, 1348, 1348, 1348, 1344, 1067, 1067, 1067, 1718,
2032      1718, 1718, 2431, 1345, 3288, 3288, 3288, 3288, 3288, 3288,
2033      1350, 2494, 2432, 1068, 2495, 2496,  619,  619, 1356, 1356,
2034      1356, 3288, 1357, 2481, 3288, 1358, 1368, 1368, 1368, 2497,
2035
2036      1369, 2498, 2499, 1370, 2500, 1901, 1901, 1901, 2501, 1351,
2037       625,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2038       619,  619,  621,  619,  619,  619, 1347,  619,  623,  619,
2039       624,  619, 1346, 1359, 1359, 1359, 1075, 1075, 1075, 2502,
2040      1371, 1371, 1371, 1684, 2503, 1363, 1363, 1363, 2504, 2506,
2041      1360, 2507, 2510, 1076, 2511, 2512,  619,  619, 1373, 1371,
2042      1371, 1371, 2513, 1365, 1376, 1376, 1376, 2516, 1377, 1902,
2043      2517, 1378, 1385, 1385, 1385, 2480, 1386, 1373, 2518, 1387,
2044       625,  629,  630,  257,  630,  629,  629,  629,  629,  629,
2045       629,  629,  631,  629,  629,  629, 1366,  629,  633,  629,
2046
2047       634,  629, 1080, 1080, 1080, 1380, 1380, 1380, 1086, 1086,
2048      1086, 2519, 1380, 1380, 1380, 1391, 1391, 1391, 2521, 1081,
2049      1374, 2525, 2508, 1382, 2526, 1087,  629,  629, 2527, 2528,
2050      1382, 2509, 2532, 1393, 1904, 1904, 1904,  635,  629,  630,
2051       257,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2052       629,  629,  629, 2533,  629,  633,  629,  634,  629, 1383,
2053      2534, 1391, 1391, 1391, 1395, 1395, 1395, 2535, 1397, 1397,
2054      1397, 3288, 3288, 3288, 1400, 1400, 1400, 2514, 2536, 1393,
2055      1905, 1396, 2540,  629,  629, 1398, 2515, 2543, 3288, 1752,
2056      1752, 1752, 1402, 2544,  635,  640,  641,  257,  641,  640,
2057
2058       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2059      2547,  640,  644,  640,  645,  640, 1394, 2559, 2560, 1400,
2060      1400, 1400, 1405, 1405, 1405, 1754, 1754, 1754, 2563, 2564,
2061      1399, 1409, 1409, 1409, 1412, 1412, 1412, 1402, 2584, 1406,
2062       640,  640, 3288, 3288, 3288, 3288, 3288, 3288, 1410, 1684,
2063      1140,  646, 1414, 1417, 1417, 1417, 2585, 1418, 2586, 3288,
2064      1419, 2587, 3288, 1684,  647,  640,  641,  257,  641,  640,
2065       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2066      1403,  640,  644,  640,  645,  640, 2582, 1412, 1412, 1412,
2067      2581, 2588, 1407, 2597, 2598, 1106, 1106, 1106, 1420, 1420,
2068
2069      1420, 1420, 1420, 1420, 1411, 1414, 2583, 1408, 2599, 2600,
2070       640,  640, 1107, 1424, 1424, 1424, 1422, 2601, 2602, 1422,
2071      2603,  646, 2604, 2605, 1415, 2606, 1426, 1426, 1426, 2607,
2072      1425, 1428, 1428, 1428,  647,  655, 1428, 1428, 1428, 1438,
2073      1438, 1438,  670, 1427, 1432, 1432, 1432, 2609, 2610, 1430,
2074      2611,  654,  671, 2612, 1430, 2613, 1423, 1440, 3288, 3288,
2075      3288, 1433, 1755, 1755, 1755, 1436, 1436, 1436, 2614, 2615,
2076      1438, 1438, 1438, 2616, 2617, 3288, 1130, 1130, 1130,  672,
2077       673,  674, 1437, 2618, 2619,  675,  676,  677, 1440, 2620,
2078       678,  679, 2621, 1131,  680, 2622,  681,  682,  683,  655,
2079
2080      1447, 1447, 1447, 1447, 1447, 1447,  727, 1431, 1434, 1453,
2081      1453, 1453, 1453, 1453, 1453,  654,  728, 2623, 1449, 2591,
2082      2625, 1449, 2633, 1435, 1457, 1457, 1457, 1455, 1458, 2592,
2083      1455, 1459, 2593, 2634, 1460, 1460, 1460, 2635, 1460, 1460,
2084      1460, 1441, 2638,  672,  729,  684, 1134, 1134, 1134,  730,
2085       731,  677, 1462, 2639,  732,  679, 1462, 2643,  733, 2661,
2086       734,  735,  683, 1135, 1464, 1464, 1464, 1450, 1465, 2662,
2087      2678, 1466, 1468, 1468, 1468, 2663, 1456, 1468, 1468, 1468,
2088      1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1684,
2089      1470, 1510, 1510, 1510, 2680, 1470, 2681, 1140, 1155, 1463,
2090
2091      2682, 1155, 2686, 2687, 1155, 1188, 1188, 1188, 1511, 1188,
2092      1188, 1188, 1188, 1188, 1188, 1513, 1513, 1513, 1193, 1193,
2093      1193, 2690, 1194, 1190, 2691, 1195, 2675, 1190, 2694, 1684,
2094      1190, 2676, 1514, 1480, 3288, 3288, 3288, 1198, 1198, 1198,
2095      2695, 1471, 1198, 1198, 1198, 1198, 1198, 1198, 1206, 1206,
2096      1206, 3288, 1203, 1203, 1203, 1200, 1204, 2696, 2697, 1205,
2097      1200, 1512, 2698, 1200, 2699, 1207, 1519, 1519, 1519, 2700,
2098      1520, 2677, 2688, 1521, 1522, 1522, 1522, 1209, 1209, 1209,
2099      1524, 1524, 1524, 2701, 1525, 2689, 2702, 1526, 1528, 1528,
2100      1528, 1523, 1517, 2704, 1210, 1515, 1214, 1214, 1214, 1214,
2101
2102      1214, 1214, 1214, 1214, 1214, 1529, 1533, 1533, 1533, 1221,
2103      1221, 1221, 2705, 2706, 1216, 2707, 2708, 1216, 2709, 2710,
2104      1216, 2692, 2711, 1534, 1221, 1221, 1221, 1223, 1221, 1221,
2105      1221, 1225, 1225, 1225, 2693, 1226, 2712, 2713, 1227, 1229,
2106      1229, 1229, 1223, 1229, 1229, 1229, 1223, 1538, 1538, 1538,
2107      2594, 1247, 1247, 1247, 2714, 1248, 2715, 1231, 1249, 2716,
2108      2595, 1231, 1531, 2596, 2718, 1539, 1555, 1555, 1555, 1252,
2109      1252, 1252, 1252, 1252, 1252, 1536, 1252, 1252, 1252, 1261,
2110      1261, 1261, 2726, 1556, 1257, 1257, 1257, 1254, 1258, 2727,
2111      1254, 1259, 2735, 2736, 1254, 2753, 2754, 1263, 1261, 1261,
2112
2113      1261, 1261, 1261, 1261, 1265, 1265, 1265, 2755, 1266, 2756,
2114      2757, 1267, 1561, 1561, 1561, 2758, 1263, 2769, 2771, 1263,
2115      1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1562,
2116      1564, 1564, 1564, 3288, 3288, 3288, 2761, 1557, 1271, 1684,
2117      2772, 1271, 2773, 2774, 1271, 2775, 2776, 1565, 2777, 2762,
2118      3288, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
2119      2778, 1566, 1560, 1570, 1570, 1570, 1282, 1282, 1282, 1277,
2120      1283, 1140, 1277, 1284, 2766, 1277, 1288, 1288, 1288, 2779,
2121      1571, 1288, 1288, 1288, 1288, 1288, 1288, 1578, 1578, 1578,
2122      1295, 1295, 1295, 1563, 1290, 1295, 1295, 1295, 2780, 1290,
2123
2124      2783, 2784, 1290, 2785, 1579, 1581, 1581, 1581, 1297, 1295,
2125      1295, 1295, 2786, 1297, 1300, 1300, 1300, 2763, 1301, 2765,
2126      2787, 1302, 1582, 1567, 1303, 1303, 1303, 1297, 1304, 2788,
2127      2764, 1305, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
2128      1306, 1314, 1314, 1314, 2789, 1315, 2790, 2792, 1316, 1575,
2129      1308, 2793, 2794, 1308, 2795, 2796, 1308, 1588, 1588, 1588,
2130      1318, 1318, 1318, 2797, 1319, 2798, 2799, 1320, 1321, 1321,
2131      1321, 1590, 1590, 1590, 1589, 1591, 1580, 2800, 1592, 1332,
2132      1332, 1332, 1332, 1332, 1332, 1322, 1332, 1332, 1332, 1336,
2133      1336, 1336, 2664, 1337, 2801, 2802, 1338, 1334, 2803, 2804,
2134
2135      1334, 2810, 2665, 1583, 1334, 1339, 1339, 1339, 2666, 1340,
2136      2811, 2812, 1341, 1342, 1342, 1342, 1603, 1603, 1603, 2819,
2137      1604, 2820, 2834, 1605, 1348, 1348, 1348, 1348, 1348, 1348,
2138      1343, 1348, 1348, 1348, 1356, 1356, 1356, 2835, 1357, 2836,
2139      2837, 1358, 1350, 2838, 2839, 1350, 1359, 1359, 1359, 1350,
2140      1615, 1615, 1615, 1602, 1616, 2843, 2844, 1617, 1363, 1363,
2141      1363, 2845, 2846, 1360, 1363, 1363, 1363, 1363, 1363, 1363,
2142      1368, 1368, 1368, 2826, 1369, 1140, 1365, 1370, 2856, 1610,
2143      2857, 2858, 1365, 2827, 2859, 1365, 1371, 1371, 1371, 1371,
2144      1371, 1371, 1371, 1371, 1371, 1376, 1376, 1376, 2828, 1377,
2145
2146      2860, 2861, 1378, 2862, 1373, 2863, 2867, 1373, 2829, 2847,
2147      1373, 1380, 1380, 1380, 1380, 1380, 1380, 2868, 1620, 1380,
2148      1380, 1380, 2869, 1385, 1385, 1385, 2830, 1386, 2870, 1382,
2149      1387, 2832, 1382, 1391, 1391, 1391, 2831, 1382, 1391, 1391,
2150      1391, 2833, 1391, 1391, 1391, 1395, 1395, 1395, 1631, 1631,
2151      1631, 1393, 1632, 2871, 2872, 1633, 1393, 2874, 2875, 1622,
2152      1393, 2876, 1396, 1397, 1397, 1397, 2877, 2878, 1625, 1634,
2153      1634, 1634, 2879, 1635, 2880, 2881, 1636, 1400, 1400, 1400,
2154      1398, 1400, 1400, 1400, 2885, 1400, 1400, 1400, 1405, 1405,
2155      1405, 2886, 1409, 1409, 1409, 1402, 1912, 1912, 1912, 1402,
2156
2157      2887, 2890, 1630, 1402, 2895, 1406, 1640, 1640, 1640, 1410,
2158      1641, 2896, 2897, 1642, 1645, 1645, 1645, 2898, 1646, 2899,
2159      2900, 1647, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
2160      1412, 1417, 1417, 1417, 2901, 1418, 2902, 2903, 1419, 2904,
2161      1414, 2905, 1913, 1414, 2906, 2908, 1414, 1420, 1420, 1420,
2162      2909, 2910, 1638, 1420, 1420, 1420, 1420, 1420, 1420, 1424,
2163      1424, 1424, 1652, 1652, 1652, 1422, 1653, 2911, 2918, 1654,
2164      2919, 1422, 1140, 2920, 1422, 2921, 1425, 1426, 1426, 1426,
2165      1655, 1655, 1655, 2922, 1656, 2923, 2924, 1657, 1428, 1428,
2166      1428, 2925, 1649, 2926, 1427, 1428, 1428, 1428, 2927, 1428,
2167
2168      1428, 1428, 1432, 1432, 1432, 2928, 1430, 1659, 1659, 1659,
2169      2929, 1660, 2930, 1430, 1661, 2912, 1651, 1430, 2931, 1433,
2170      1436, 1436, 1436, 1664, 1664, 1664, 2934, 1665, 2935, 2936,
2171      1666, 1438, 1438, 1438, 1438, 1438, 1438, 1437, 1438, 1438,
2172      1438, 1669, 1669, 1669, 1447, 1447, 1447, 2937, 2938, 1440,
2173      2939, 2940, 1440, 1447, 1447, 1447, 1440, 2941, 1670, 2942,
2174      2946, 1658, 1449, 1447, 1447, 1447, 1453, 1453, 1453, 2953,
2175      2954, 1449, 1453, 1453, 1453, 1453, 1453, 1453, 1457, 1457,
2176      1457, 1449, 1458, 2955, 1455, 1459, 1460, 1460, 1460, 2956,
2177      1455, 2957, 2958, 1455, 1460, 1460, 1460, 1460, 1460, 1460,
2178
2179      1667, 1464, 1464, 1464, 1462, 1465, 2959, 2960, 1466, 1468,
2180      1468, 1468, 1462, 2961, 2962, 1462, 1468, 1468, 1468, 1468,
2181      1468, 1468, 2963, 2964, 1674, 2967, 2968, 1470, 1677, 1683,
2182      1683, 1683, 2969, 2970, 1470, 2978, 2979, 1470, 1153, 1153,
2183      1153, 1510, 1510, 1510, 1188, 1188, 1188, 1684, 1685, 1140,
2184      1513, 1513, 1513, 1538, 1538, 1538, 1155, 1678, 1511, 1721,
2185      1721, 1721, 1190, 1722, 2980, 2973, 1723, 1514, 1725, 1725,
2186      1725, 1539, 1726, 2973, 2981, 1727, 1198, 1198, 1198, 2974,
2187      1680, 1519, 1519, 1519, 2976, 1520, 2982, 2983, 1521, 1522,
2188      1522, 1522, 2984, 2985, 1200, 2971, 1732, 1732, 1732, 2986,
2189
2190      1733, 2987, 1724, 1734, 1690, 2988, 1523, 1524, 1524, 1524,
2191      2989, 1525, 2990, 2991, 1526, 1528, 1528, 1528, 2992, 1736,
2192      1736, 1736, 2993, 1737, 2994, 1730, 1738, 1214, 1214, 1214,
2193      2995, 2999, 1529, 1533, 1533, 1533, 1742, 1742, 1742, 3004,
2194      1743, 3005, 2996, 1744, 3006, 1216, 1745, 1745, 1745, 3007,
2195      1534, 1221, 1221, 1221, 1763, 1763, 1763, 1555, 1555, 1555,
2196      1765, 1765, 1765, 1746, 1766, 3008, 3009, 1767, 3012, 1223,
2197      1140, 1764, 1684, 1685, 1556, 3012, 2973, 1740, 1252, 1252,
2198      1252, 1261, 1261, 1261, 1561, 1561, 1561, 1772, 1772, 1772,
2199      2974, 1773, 3015, 3016, 1774, 3017, 1254, 3018, 3021, 1263,
2200
2201      1747, 1562, 1269, 1269, 1269, 1564, 1564, 1564, 1776, 1776,
2202      1776, 3010, 1777, 3022, 3031, 1778, 1275, 1275, 1275, 2997,
2203      1271, 3019, 1565, 1570, 1570, 1570, 1783, 1783, 1783, 3000,
2204      1784, 2998, 3002, 1785, 1277, 1786, 1786, 1786, 3034, 3020,
2205      1571, 3001, 1768, 3039, 3003, 1771, 1789, 1789, 1789, 1288,
2206      1288, 1288, 1787, 1578, 1578, 1578, 3042, 1795, 1795, 1795,
2207      3043, 1796, 1775, 1790, 1797, 3029, 3044, 1290, 3012, 3046,
2208      1579, 1798, 1798, 1798, 1581, 1581, 1581, 1780, 1800, 1800,
2209      1800, 3012, 1801, 3032, 3030, 1802, 1306, 1306, 1306, 1799,
2210      3047, 1582, 1791, 1805, 1805, 1805, 1588, 1588, 1588, 1809,
2211
2212      1809, 1809, 3033, 1810, 1308, 3048, 1811, 1590, 1590, 1590,
2213      1806, 1591, 3049, 1589, 1592, 1792, 1814, 1814, 1814, 1332,
2214      1332, 1332, 1603, 1603, 1603, 3050, 1604, 3051, 3052, 1605,
2215      1823, 1823, 1823, 1815, 3288, 3288, 3288, 1334, 3288, 3288,
2216      3288, 3288, 3288, 3288, 1348, 1348, 1348, 1824, 1830, 1830,
2217      1830, 3288, 1803, 2973, 3062, 3288, 3063, 3064, 3288, 1615,
2218      1615, 1615, 1350, 1616, 2976, 1831, 1617, 3065, 3066, 1834,
2219      1834, 1834, 1363, 1363, 1363, 1371, 1371, 1371, 1380, 1380,
2220      1380, 1846, 1846, 1846, 1822, 1826, 1835, 1391, 1391, 1391,
2221      1365, 3067, 3071, 1373, 3072, 3073, 1382, 3074, 1847, 1828,
2222
2223      3075, 1400, 1400, 1400, 1825, 1393, 1631, 1631, 1631, 3037,
2224      1632, 1827, 3076, 1633, 1634, 1634, 1634, 3077, 1635, 1402,
2225      3078, 1636, 1640, 1640, 1640, 3080, 1641, 1848, 3038, 1642,
2226      1645, 1645, 1645, 3081, 1646, 1842, 1837, 1647, 1412, 1412,
2227      1412, 1839, 3082, 3040, 1849, 1420, 1420, 1420, 1652, 1652,
2228      1652, 3083, 1653, 3084, 3085, 1654, 1414, 1655, 1655, 1655,
2229      3089, 1656, 3041, 1422, 1657, 3087, 3086, 1851, 1428, 1428,
2230      1428, 1659, 1659, 1659, 3090, 1660, 3091, 3088, 1661, 3092,
2231      1664, 1664, 1664, 3093, 1665, 3094, 1430, 1666, 1438, 1438,
2232      1438, 1669, 1669, 1669, 1864, 1864, 1864, 3095, 1865, 1856,
2233
2234      3096, 1866, 1858, 1447, 1447, 1447, 1440, 3097, 1670, 1872,
2235      1872, 1872, 1453, 1453, 1453, 1859, 1460, 1460, 1460, 3098,
2236      3099, 1449, 1876, 1876, 1876, 3100, 1873, 1468, 1468, 1468,
2237      1455, 1683, 1683, 1683, 1462, 1862, 1153, 1153, 1153, 1877,
2238      1721, 1721, 1721, 3101, 1722, 1470, 3102, 1723, 3104, 1684,
2239      3105, 3106, 1870, 3107, 1155, 1188, 1188, 1188, 1725, 1725,
2240      1725, 1140, 1726, 3108, 3109, 1727, 3110, 3111, 1875, 1198,
2241      1198, 1198, 3112, 1190, 1732, 1732, 1732, 3113, 1733, 1874,
2242      3114, 1734, 1880, 1214, 1214, 1214, 3103, 1200, 1885, 1878,
2243      1736, 1736, 1736, 3115, 1737, 3116, 3117, 1738, 3118, 1881,
2244
2245      3119, 1216, 1742, 1742, 1742, 3120, 1743, 3121, 3122, 1744,
2246      1745, 1745, 1745, 3123, 1931, 1931, 1931, 3125, 1932, 3126,
2247      1917, 1933, 1914, 1221, 1221, 1221, 3127, 1746, 1940, 1940,
2248      1940, 1940, 1940, 1940, 1901, 1901, 1901, 1763, 1763, 1763,
2249      3128, 1223, 1140, 3129, 1921, 1946, 1946, 1946, 3130, 1947,
2250      3131, 3132, 1948, 3133, 1764, 1765, 1765, 1765, 3134, 1766,
2251      3135, 3124, 1767, 1252, 1252, 1252, 1951, 1951, 1951, 1261,
2252      1261, 1261, 3136, 3137, 1934, 1772, 1772, 1772, 3138, 1773,
2253      3139, 1254, 1774, 1952, 1269, 1269, 1269, 1263, 3140, 1776,
2254      1776, 1776, 1941, 1777, 3141, 1902, 1778, 3142, 1941, 1275,
2255
2256      1275, 1275, 1271, 1955, 1955, 1955, 3144, 1783, 1783, 1783,
2257      1949, 1784, 3145, 3146, 1785, 3147, 1953, 1277, 3148, 3149,
2258      1956, 1786, 1786, 1786, 1960, 1960, 1960, 1140, 1961, 3150,
2259      3151, 1962, 1963, 1963, 1963, 1789, 1789, 1789, 1787, 1965,
2260      1965, 1965, 3152, 1966, 3153, 3154, 1967, 3143, 3155, 1964,
2261      1954, 3156, 1790, 1969, 1969, 1969, 1971, 1971, 1971, 3157,
2262      1795, 1795, 1795, 1957, 1796, 3158, 3159, 1797, 1798, 1798,
2263      1798, 1970, 1800, 1800, 1800, 3160, 1801, 3161, 3163, 1802,
2264      1306, 1306, 1306, 1805, 1805, 1805, 1799, 1975, 1975, 1975,
2265      3164, 1976, 3165, 1140, 1977, 1978, 1978, 1978, 1308, 3162,
2266
2267      1806, 1809, 1809, 1809, 3166, 1810, 3167, 3168, 1811, 2078,
2268      2078, 2078, 1979, 1814, 1814, 1814, 1983, 1983, 1983, 3169,
2269      1984, 3170, 3171, 1985, 3172, 3173, 1973, 1986, 1986, 1986,
2270      1815, 1992, 1992, 1992, 1332, 1332, 1332, 1823, 1823, 1823,
2271      1998, 1998, 1998, 3174, 1987, 3288, 3288, 3288, 1993, 1995,
2272      1995, 1995, 1334, 1996, 1824, 3176, 1997, 1999, 2001, 2001,
2273      2001, 3177, 3288, 1348, 1348, 1348, 1830, 1830, 1830, 2005,
2274      2005, 2005, 3178, 2006, 3179, 2002, 2007, 2008, 2008, 2008,
2275      3180, 1350, 3181, 1831, 1834, 1834, 1834, 3182, 2011, 2011,
2276      2011, 3183, 2012, 1140, 2009, 2013, 2015, 2015, 2015, 3185,
2277
2278      1994, 1835, 3186, 2000, 1371, 1371, 1371, 3175, 1380, 1380,
2279      1380, 1846, 1846, 1846, 2016, 3187, 3188, 2025, 2025, 2025,
2280      3189, 2026, 1373, 2003, 2027, 3190, 1382, 3191, 1847, 2029,
2281      2029, 2029, 1400, 1400, 1400, 2034, 2034, 2034, 3192, 3195,
2282      2036, 2036, 2036, 3288, 3288, 3288, 3196, 2030, 3197, 3198,
2283      1402, 3199, 2035, 3200, 3209, 2018, 2021, 2037, 1140, 1728,
2284      3288, 1412, 1412, 1412, 1420, 1420, 1420, 1428, 1428, 1428,
2285      2043, 2043, 2043, 2045, 2045, 2045, 1438, 1438, 1438, 1414,
2286      3210, 3211, 1422, 2032, 1140, 1430, 1720, 2044, 1140, 1140,
2287      2046, 1864, 1864, 1864, 1440, 1865, 1140, 1140, 1866, 1447,
2288
2289      1447, 1447, 1872, 1872, 1872, 2400, 2401, 2038, 2402, 1140,
2290      2041, 2054, 2054, 2054, 1719, 2055, 2403, 1449, 2056, 1873,
2291      1453, 1453, 1453, 2404, 3201, 1460, 1460, 1460, 2039, 1876,
2292      1876, 1876, 2042, 2059, 2059, 2059, 1717, 2060, 1455, 3247,
2293      2061, 2047, 1716, 1462, 3203, 3202, 1877, 2062, 2062, 2062,
2294      2052, 2068, 2068, 2068, 1153, 1153, 1153, 1896, 1896, 1896,
2295      2085, 2085, 2085, 1140, 1715, 2063, 1140, 1714, 2069, 1901,
2296      1901, 1901, 1155, 2086, 2086, 2086, 1904, 1904, 1904, 2057,
2297      2058, 2089, 2089, 2089, 2090, 2090, 2090, 1912, 1912, 1912,
2298      1188, 1188, 1188, 2099, 2099, 2099, 2102, 2102, 2102, 1214,
2299
2300      1214, 1214, 2106, 2106, 2106, 1931, 1931, 1931, 1190, 1932,
2301      3215, 2100, 1933, 2103, 3204, 2070, 1140, 1216, 1140, 2107,
2302      1221, 1221, 1221, 3285, 2119, 2119, 2119, 1940, 1940, 1940,
2303      2126, 2126, 2126, 2128, 2128, 2128, 3285, 1140, 1223, 1140,
2304      2096, 2120, 1946, 1946, 1946, 1140, 1947, 1140, 1140, 1948,
2305      2129, 1252, 1252, 1252, 2131, 2131, 2131, 3219, 2105, 1951,
2306      1951, 1951, 3207, 2133, 2133, 2133, 2118, 2134, 1140, 1254,
2307      2135, 2132, 1261, 1261, 1261, 3212, 1952, 2137, 2137, 2137,
2308      1955, 1955, 1955, 1140, 2139, 2139, 2139, 3205, 2140, 3208,
2309      1263, 2141, 1275, 1275, 1275, 2138, 3206, 1956, 1960, 1960,
2310
2311      1960, 3213, 1961, 3221, 2130, 1962, 1963, 1963, 1963, 1140,
2312      1277, 2145, 2145, 2145, 1140, 2146, 1713, 1140, 2147, 1140,
2313      1965, 1965, 1965, 1964, 1966, 2136, 1712, 1967, 1969, 1969,
2314      1969, 1971, 1971, 1971, 1306, 1306, 1306, 3214, 1711, 2142,
2315      1975, 1975, 1975, 1140, 1976, 1140, 1970, 1977, 1978, 1978,
2316      1978, 1140, 1308, 2154, 2154, 2154, 3217, 2155, 3220, 3229,
2317      2156, 3216, 1983, 1983, 1983, 1979, 1984, 1140, 1140, 1985,
2318      1986, 1986, 1986, 2160, 2160, 2160, 1140, 2161, 3222, 1140,
2319      2162, 2163, 2163, 2163, 1992, 1992, 1992, 1987, 3218, 2168,
2320      2168, 2168, 2152, 2169, 1140, 1140, 2170, 1140, 2164, 3227,
2321
2322      1140, 1993, 1332, 1332, 1332, 1995, 1995, 1995, 1140, 1996,
2323      1140, 1710, 1997, 1998, 1998, 1998, 3225, 2172, 2172, 2172,
2324      1334, 2173, 3223, 1709, 2174, 2175, 2175, 2175, 3241, 3228,
2325      1999, 2001, 2001, 2001, 2177, 2177, 2177, 3226, 2178, 1140,
2326      3224, 2179, 2176, 1348, 1348, 1348, 3230, 1707, 2002, 3267,
2327      2005, 2005, 2005, 2171, 2006, 1140, 3237, 2007, 2008, 2008,
2328      2008, 1350, 2182, 2182, 2182, 1140, 2183, 1706, 3253, 2184,
2329      2011, 2011, 2011, 1140, 2012, 2009, 1140, 2013, 2015, 2015,
2330      2015, 1371, 1371, 1371, 2190, 2190, 2190, 1380, 1380, 1380,
2331      2194, 2194, 2194, 1140, 2180, 1140, 2016, 1140, 1140, 1373,
2332
2333      3231, 2191, 2025, 2025, 2025, 1382, 2026, 2195, 3232, 2027,
2334      2029, 2029, 2029, 2202, 2202, 2202, 2034, 2034, 2034, 2205,
2335      2205, 2205, 3238, 2206, 1140, 1704, 2207, 3233, 2030, 3234,
2336      3242, 2203, 1140, 2035, 1140, 1140, 2196, 2036, 2036, 2036,
2337      2208, 2208, 2208, 1140, 2209, 2188, 3281, 2210, 2192, 1412,
2338      1412, 1412, 1140, 3254, 2037, 1420, 1420, 1420, 1428, 1428,
2339      1428, 2043, 2043, 2043, 2216, 2216, 2216, 1414, 2217, 1140,
2340      3239, 2218, 1140, 1422, 1703, 3235, 1430, 3236, 2044, 2045,
2341      2045, 2045, 2219, 2219, 2219, 3248, 2220, 3240, 3243, 2221,
2342      1438, 1438, 1438, 1447, 1447, 1447, 2046, 1140, 2054, 2054,
2343
2344      2054, 3244, 2055, 1140, 2214, 2056, 3245, 1140, 1440, 3246,
2345      1140, 1449, 1453, 1453, 1453, 2212, 1460, 1460, 1460, 1140,
2346      2059, 2059, 2059, 2215, 2060, 1140, 1700, 2061, 1697, 1696,
2347      1455, 2062, 2062, 2062, 1462, 2068, 2068, 2068, 2235, 2235,
2348      2235, 3255, 2236, 3261, 3268, 2237, 1153, 1153, 1153, 2063,
2349      1140, 1140, 2069, 3249, 1695, 2222, 3251, 1694, 2227, 2239,
2350      2239, 2239, 3252, 2229, 1155, 2244, 2244, 2244, 1693, 2230,
2351      2245, 2245, 2245, 2078, 2078, 2078, 2247, 2247, 2247, 2251,
2352      2251, 2251, 2085, 2085, 2085, 2086, 2086, 2086, 2252, 2252,
2353      2252, 2089, 2089, 2089, 2090, 2090, 2090, 2255, 2255, 2255,
2354
2355      2256, 2256, 2256, 2257, 2257, 2257, 2258, 2258, 2258, 1140,
2356      2238, 1188, 1188, 1188, 2099, 2099, 2099, 3256, 2102, 2102,
2357      2102, 2264, 2264, 2264, 3277, 2265, 1140, 1140, 2266, 1190,
2358      1692, 1140, 2100, 1140, 2253, 2103, 2268, 2268, 2268, 2106,
2359      2106, 2106, 2270, 2270, 2270, 1691, 2271, 1689, 1688, 2272,
2360      1221, 1221, 1221, 1140, 2269, 3250, 2107, 2119, 2119, 2119,
2361      1140, 3257, 2260, 2284, 2284, 2284, 3269, 2285, 1223, 1140,
2362      2286, 2287, 2287, 2287, 2120, 2126, 2126, 2126, 2292, 2292,
2363      2292, 2128, 2128, 2128, 2294, 2294, 2294, 3258, 2295, 1140,
2364      1140, 2296, 1252, 1252, 1252, 2131, 2131, 2131, 2129, 2283,
2365
2366      2298, 2298, 2298, 3262, 2299, 1687, 3259, 2300, 1686, 1679,
2367      1254, 1140, 2132, 2133, 2133, 2133, 3263, 2134, 1140, 1140,
2368      2135, 1261, 1261, 1261, 2293, 1140, 2137, 2137, 2137, 2139,
2369      2139, 2139, 1140, 2140, 1676, 3260, 2141, 3264, 1675, 1263,
2370      1275, 1275, 1275, 2297, 2138, 2145, 2145, 2145, 1140, 2146,
2371      1140, 1140, 2147, 1306, 1306, 1306, 3265, 1140, 1277, 2154,
2372      2154, 2154, 3266, 2155, 3271, 1673, 2156, 2163, 2163, 2163,
2373      1140, 1308, 2301, 2160, 2160, 2160, 1672, 2161, 3272, 1671,
2374      2162, 2316, 2316, 2316, 2164, 2317, 3270, 3273, 2318, 3275,
2375      2168, 2168, 2168, 2302, 2169, 1668, 3282, 2170, 1332, 1332,
2376
2377      1332, 1663, 2172, 2172, 2172, 1140, 2173, 3274, 2311, 2174,
2378      2175, 2175, 2175, 2323, 2323, 2323, 1334, 2324, 1662, 1140,
2379      2325, 2177, 2177, 2177, 1140, 2178, 3278, 2176, 2179, 1348,
2380      1348, 1348, 2182, 2182, 2182, 1140, 2183, 3276, 1650, 2184,
2381      2331, 2331, 2331, 2190, 2190, 2190, 1648, 1350, 2334, 2334,
2382      2334, 3279, 2335, 1644, 1643, 2336, 3280, 1140, 2332, 1639,
2383      2191, 1637, 2322, 1380, 1380, 1380, 2194, 2194, 2194, 2339,
2384      2339, 2339, 1629, 2340, 1628, 1627, 2341, 1140, 2202, 2202,
2385      2202, 1382, 1626, 2195, 2205, 2205, 2205, 1624, 2206, 3283,
2386      1623, 2207, 1412, 1412, 1412, 2326, 2203, 2208, 2208, 2208,
2387
2388      1621, 2209, 1619, 1618, 2210, 1614, 1420, 1420, 1420, 3284,
2389      1414, 1428, 1428, 1428, 2216, 2216, 2216, 1613, 2217, 1612,
2390      1611, 2218, 1609, 2337, 1422, 1608, 2219, 2219, 2219, 1430,
2391      2220, 1607, 1606, 2221, 1438, 1438, 1438, 1601, 2357, 2357,
2392      2357, 1600, 1599, 2352, 3288, 3288, 3288, 2355, 3288, 3288,
2393      3288, 1598, 1440, 1597, 2356, 2358, 3288, 3288, 3288, 1596,
2394      1595, 3288, 1447, 1447, 1447, 3288, 1453, 1453, 1453, 2365,
2395      2365, 2365, 2354, 3288, 2367, 2367, 2367, 2370, 2370, 2370,
2396      1449, 2235, 2235, 2235, 1455, 2236, 1594, 2366, 2237, 1153,
2397      1153, 1153, 1140, 1593, 1587, 2359, 2239, 2239, 2239, 2372,
2398
2399      2372, 2372, 2373, 2373, 2373, 1586, 1585, 1155, 2244, 2244,
2400      2244, 1584, 2360, 1577, 1576, 2361, 2245, 2245, 2245, 2247,
2401      2247, 2247, 2377, 2377, 2377, 1574, 2364, 2362, 2378, 2378,
2402      2378, 2379, 2379, 2379, 2251, 2251, 2251, 2252, 2252, 2252,
2403      2255, 2255, 2255, 2256, 2256, 2256, 1573, 1572, 2371, 2257,
2404      2257, 2257, 2258, 2258, 2258, 2383, 2383, 2383, 2386, 2386,
2405      2386, 2264, 2264, 2264, 1569, 2265, 1568, 1559, 2266, 3288,
2406      3288, 3288, 1558, 2384, 1554, 2387, 2268, 2268, 2268, 1553,
2407      2270, 2270, 2270, 1552, 2271, 1551, 3288, 2272, 1221, 1221,
2408      1221, 2284, 2284, 2284, 2269, 2285, 2405, 2406, 2286, 2407,
2409
2410      2287, 2287, 2287, 2410, 2410, 2410, 1223, 2408, 2292, 2292,
2411      2292, 2294, 2294, 2294, 2409, 2295, 1550, 1549, 2296, 1252,
2412      1252, 1252, 2298, 2298, 2298, 1548, 2299, 1547, 1545, 2300,
2413      2416, 2416, 2416, 1544, 1542, 2388, 1541, 1254, 1275, 1275,
2414      1275, 2426, 2426, 2426, 1306, 1306, 1306, 1540, 2417, 2399,
2415      2316, 2316, 2316, 1537, 2317, 1535, 1277, 2318, 2433, 2433,
2416      2433, 1532, 1308, 1530, 1527, 2415, 2437, 2437, 2437, 2323,
2417      2323, 2323, 1518, 2324, 1516, 2434, 2325, 2439, 2439, 2439,
2418      2331, 2331, 2331, 1509, 2438, 2445, 2445, 2445, 1507, 2418,
2419      2334, 2334, 2334, 1506, 2335, 2440, 1505, 2336, 2332, 1380,
2420
2421      1380, 1380, 2446, 1504, 2427, 2448, 2448, 2448, 2339, 2339,
2422      2339, 1503, 2340, 1502, 1501, 2341, 1500, 1382, 3288, 3288,
2423      3288, 1499, 2449, 3288, 3288, 3288, 3288, 3288, 3288, 2459,
2424      2459, 2459, 2463, 2463, 2463, 3288, 2461, 2461, 2461, 1498,
2425      3288, 1495, 1494, 3288, 1420, 1420, 1420, 1493, 1492, 2464,
2426      2447, 2450, 1491, 1490, 2462, 1489, 1428, 1428, 1428, 2357,
2427      2357, 2357, 1422, 1438, 1438, 1438, 1487, 1486, 2468, 2468,
2428      2468, 1485, 2469, 2451, 1430, 2470, 2358, 2457, 2471, 2471,
2429      2471, 1440, 1484, 1483, 2452, 3288, 3288, 3288, 3288, 3288,
2430      3288, 2475, 2475, 2475, 1482, 2472, 2477, 2477, 2477, 1481,
2431
2432      2467, 1479, 3288, 1478, 2465, 3288, 1453, 1453, 1453, 2476,
2433      2365, 2365, 2365, 2367, 2367, 2367, 1477, 2466, 2370, 2370,
2434      2370, 2372, 2372, 2372, 1455, 2482, 2482, 2482, 2366, 1476,
2435      1475, 1140, 2373, 2373, 2373, 1474, 2473, 1473, 1140, 2474,
2436      2486, 2486, 2486, 2483, 2377, 2377, 2377, 2378, 2378, 2378,
2437      2379, 2379, 2379, 2383, 2383, 2383, 2386, 2386, 2386, 2491,
2438      2491, 2491, 1467, 2492, 1452, 1451, 2493, 1221, 1221, 1221,
2439      1446, 2384, 2478, 2387, 1445, 2479, 2410, 2410, 2410, 2520,
2440      2520, 2520, 1252, 1252, 1252, 1223, 2416, 2416, 2416, 2523,
2441      2523, 2523, 2529, 2529, 2529, 2426, 2426, 2426, 1444, 1443,
2442
2443      1254, 1306, 1306, 1306, 2417, 1442, 1416, 2524, 1404, 2530,
2444      1390, 2433, 2433, 2433, 2537, 2537, 2537, 1389, 2538, 1308,
2445      1388, 2539, 2541, 2541, 2541, 1384, 1379, 2505, 2434, 2437,
2446      2437, 2437, 2439, 2439, 2439, 2545, 2545, 2545, 1375, 2542,
2447      2445, 2445, 2445, 1367, 2551, 2551, 2551, 2438, 2522, 1362,
2448      2440, 1361, 2546, 2448, 2448, 2448, 1355, 2446, 2531, 2548,
2449      2548, 2548, 2552, 2549, 1352, 1331, 2550, 2553, 2553, 2553,
2450      2449, 2554, 1330, 1329, 2555, 3288, 3288, 3288, 3288, 3288,
2451      3288, 3288, 3288, 3288, 2561, 2561, 2561, 2459, 2459, 2459,
2452      1328, 1327, 3288, 1326, 1325, 3288, 1324, 1323, 3288, 1317,
2453
2454      1310, 2562, 2461, 2461, 2461, 2463, 2463, 2463, 2565, 2565,
2455      2565, 1299, 2566, 1294, 1293, 2567, 2568, 2568, 2568, 1292,
2456      2462, 1287, 2464, 1428, 1428, 1428, 1286, 2556, 1438, 1438,
2457      1438, 2468, 2468, 2468, 2569, 2469, 2557, 1285, 2470, 2558,
2458      1281, 1430, 2471, 2471, 2471, 1280, 1440, 2572, 2572, 2572,
2459      1279, 2573, 1274, 1273, 2574, 2575, 2575, 2575, 1268, 2472,
2460      2577, 2577, 2577, 2475, 2475, 2475, 2477, 2477, 2477, 2579,
2461      2579, 2579, 2576, 2482, 2482, 2482, 1260, 2578, 2486, 2486,
2462      2486, 2476, 2589, 2589, 2589, 1256, 1251, 2580, 1250, 1246,
2463      2570, 2483, 2571, 2491, 2491, 2491, 1245, 2492, 1244, 2590,
2464
2465      2493, 1221, 1221, 1221, 2520, 2520, 2520, 1252, 1252, 1252,
2466      2523, 2523, 2523, 2626, 2626, 2626, 2529, 2529, 2529, 1223,
2467      2628, 2628, 2628, 1243, 2629, 1254, 1242, 2630, 2524, 1241,
2468      2627, 1240, 1239, 2530, 2631, 2631, 2631, 2636, 2636, 2636,
2469      2537, 2537, 2537, 1238, 2538, 1237, 1236, 2539, 2541, 2541,
2470      2541, 1235, 2632, 1234, 2637, 2640, 2640, 2640, 1228, 2641,
2471      1220, 2608, 2642, 1219, 1218, 2542, 2644, 2644, 2644, 2545,
2472      2545, 2545, 2646, 2646, 2646, 1213, 2647, 1212, 2624, 2648,
2473      2649, 2649, 2649, 2645, 1211, 1208, 2546, 2548, 2548, 2548,
2474      1202, 2549, 1197, 1196, 2550, 1192, 1187, 2650, 2551, 2551,
2475
2476      2551, 2553, 2553, 2553, 1186, 2554, 1185, 1184, 2555, 3288,
2477      3288, 3288, 3288, 3288, 3288, 1183, 2552, 3288, 3288, 3288,
2478      2561, 2561, 2561, 2654, 2654, 2654, 3288, 2655, 1182, 3288,
2479      2656, 2657, 2657, 2657, 3288, 1181, 1179, 2562, 2659, 2659,
2480      2659, 1178, 2565, 2565, 2565, 1177, 2566, 1176, 2658, 2567,
2481      2568, 2568, 2568, 1175, 1174, 2660, 1428, 1428, 1428, 1438,
2482      1438, 1438, 1173, 2652, 2651, 2575, 2575, 2575, 2569, 2572,
2483      2572, 2572, 2653, 2573, 1430, 1172, 2574, 1440, 1171, 2669,
2484      2669, 2669, 2576, 2670, 1170, 1169, 2671, 2577, 2577, 2577,
2485      2672, 2672, 2672, 1168, 2673, 1167, 1166, 2674, 2579, 2579,
2486
2487      2579, 2679, 2679, 2679, 2578, 1165, 2589, 2589, 2589, 1164,
2488      2683, 2683, 2683, 1163, 2684, 1162, 2580, 2685, 1161, 1160,
2489      2668, 1159, 2667, 2590, 1221, 1221, 1221, 2717, 2717, 2717,
2490      1252, 1252, 1252, 2720, 2720, 2720, 2626, 2626, 2626, 2723,
2491      2723, 2723, 1223, 2724, 1152, 1151, 2725, 1150, 1254, 1149,
2492      2721, 1148, 1147, 2627, 2628, 2628, 2628, 1146, 2629, 1143,
2493      1141, 2630, 2631, 2631, 2631, 2728, 2728, 2728, 2636, 2636,
2494      2636, 1140, 2733, 2733, 2733, 2703, 2679, 2679, 2679, 2722,
2495      2632, 1138, 2729, 1136, 1133, 2637, 2730, 2730, 2730, 2734,
2496      2731, 1129, 2719, 2732, 2640, 2640, 2640, 1127, 2641, 1126,
2497
2498      1125, 2642, 2644, 2644, 2644, 2737, 2737, 2737, 1123, 2738,
2499      1122, 1121, 2739, 2646, 2646, 2646, 1120, 2647, 1119, 2645,
2500      2648, 2649, 2649, 2649, 2740, 2740, 2740, 1118, 2741, 1116,
2501      1115, 2742, 3288, 3288, 3288, 2744, 2744, 2744, 2650, 3288,
2502      3288, 3288, 1114, 2654, 2654, 2654, 1113, 2655, 1111, 3288,
2503      2656, 1110, 2745, 2657, 2657, 2657, 3288, 2747, 2747, 2747,
2504      1109, 2748, 1105, 1104, 2749, 2659, 2659, 2659, 1102, 1101,
2505      2658, 2750, 2750, 2750, 1100, 2751, 1099, 1098, 2752, 1428,
2506      1428, 1428, 2660, 1438, 1438, 1438, 1097, 1095, 2746, 1094,
2507      2743, 2669, 2669, 2669, 1093, 2670, 1092, 1430, 2671, 1090,
2508
2509      1089, 1440, 2672, 2672, 2672, 1088, 2673, 1085, 1084, 2674,
2510      2767, 2767, 2767, 2770, 2770, 2770, 2683, 2683, 2683, 1082,
2511      2684, 1079, 1078, 2685, 2781, 2781, 2781, 2768, 1684, 1074,
2512      2759, 1221, 1221, 1221, 2717, 2717, 2717, 2805, 2805, 2805,
2513      1073, 2782, 1252, 1252, 1252, 2720, 2720, 2720, 1071, 1223,
2514      2760, 2807, 2807, 2807, 1070, 2808, 1069, 1066, 2809, 1065,
2515      1254, 1064, 2721, 2723, 2723, 2723, 1063, 2724, 1061, 1060,
2516      2725, 2728, 2728, 2728, 2813, 2813, 2813, 1059, 2814, 1058,
2517      2791, 2815, 2730, 2730, 2730, 1057, 2731, 1052, 2729, 2732,
2518      2733, 2733, 2733, 2806, 2816, 2816, 2816, 1050, 2817, 1049,
2519
2520      1048, 2818, 2737, 2737, 2737, 1047, 2738, 2734, 1046, 2739,
2521      2740, 2740, 2740, 1045, 2741, 1044, 1043, 2742, 3288, 3288,
2522      3288, 2744, 2744, 2744, 2822, 2822, 2822, 1042, 2823, 1041,
2523      1038, 2824, 3288, 3288, 3288, 3288, 1035, 1034, 2745, 2747,
2524      2747, 2747, 1033, 2748, 1027, 1026, 2749, 1024, 1021, 3288,
2525      2750, 2750, 2750, 1019, 2751, 1018, 1017, 2752, 2840, 2840,
2526      2840, 1438, 1438, 1438, 2848, 2848, 2848, 1012, 1011, 2821,
2527      2767, 2767, 2767, 2850, 2850, 2850, 2841, 2851, 1009, 1440,
2528      2852, 2849, 1684, 2853, 2853, 2853, 1008, 2768, 1684, 1007,
2529      1005, 1684, 2770, 2770, 2770, 2854, 2854, 2854, 2855, 2855,
2530
2531      2855, 1002, 1000, 2825, 2781, 2781, 2781, 2864, 2864, 2864,
2532       997, 2865,  996,  994, 2866, 1221, 1221, 1221, 2882, 2882,
2533      2882, 2782, 2805, 2805, 2805,  993,  990, 2842, 2883, 2883,
2534      2883,  985,  984, 1223, 2807, 2807, 2807,  981, 2808,  980,
2535       979, 2809,  976, 2813, 2813, 2813, 2884, 2814,  975,  973,
2536      2815, 2816, 2816, 2816,  970, 2817,  968,  967, 2818, 2888,
2537      2888, 2888, 2891, 2891, 2891, 2822, 2822, 2822,  966, 2823,
2538       965,  963, 2824, 2893, 2893, 2893, 2889,  962,  961, 2892,
2539       960, 2873, 2840, 2840, 2840, 1438, 1438, 1438,  959,  958,
2540      2894, 2848, 2848, 2848, 2913, 2913, 2913,  955, 2914,  954,
2541
2542      2841, 2915,  953, 1440, 2853, 2853, 2853,  950, 2849, 1684,
2543       947,  946, 1684, 2850, 2850, 2850,  944, 2851,  943,  940,
2544      2852, 2854, 2854, 2854, 2855, 2855, 2855,  937, 2864, 2864,
2545      2864, 1684, 2865,  934,  933, 2866, 2907, 1682, 1682, 1682,
2546      1682, 1682, 1682, 1682, 1682, 1682,  925,  924, 1682, 2932,
2547      2932, 2932,  923, 1682, 1682, 1682, 1684, 1682, 2882, 2882,
2548      2882, 2883, 2883, 2883, 2888, 2888, 2888, 2933, 2943, 2943,
2549      2943,  922, 2944,  916,  915, 2945, 2891, 2891, 2891, 2884,
2550       914, 2889, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
2551      1682, 1682, 1682, 2892,  912, 1682, 2893, 2893, 2893,  911,
2552
2553      1682, 1682, 1682, 1684, 1682, 2947, 2947, 2947,  910, 2948,
2554       909,  908, 2949, 2894, 2950, 2950, 2950,  907, 2951,  902,
2555       899, 2952, 2965, 2965, 2965, 2932, 2932, 2932,  901, 1682,
2556      1682, 2913, 2913, 2913,  896, 2914,  895,  893, 2915,  891,
2557      2966,  889,  887, 2933, 2965, 2965, 2965,  885,  882, 1684,
2558      1682, 1682, 1682, 1682, 1682, 2977, 1682, 1682, 1682,  881,
2559       880, 1682, 2966,  879,  878,  876, 1682, 1682, 1682, 1684,
2560      1682, 2943, 2943, 2943,  874, 2944,  873,  872, 2945, 2947,
2561      2947, 2947,  870, 2948,  868,  867, 2949, 2950, 2950, 2950,
2562       865, 2951,  863,  862, 2952, 1682, 1682, 1682, 1682, 1682,
2563
2564      1682, 1682, 1682, 1682, 1682, 2977,  860,  856, 1682, 3014,
2565      3014, 3014,  855, 1682, 1682, 1682, 1684, 1682, 3023, 3023,
2566      3023, 3025, 3025, 3025, 3027, 3027, 3027, 1684, 1685, 3035,
2567      3035, 3035, 3045, 3045, 3045, 3024,  853,  848, 3026,  846,
2568       842, 3028, 1682, 1682,  841,  840, 3036, 3014, 3014, 3014,
2569      1140, 3023, 3023, 3023, 3053, 3053, 3053,  838, 3054,  836,
2570       835, 3055, 3025, 3025, 3025, 1684,  834,  832, 3024, 3056,
2571      3056, 3056,  830, 3057,  829,  827, 3058,  825,  824, 3026,
2572      3027, 3027, 3027, 3059, 3059, 3059,  823, 3060,  822,  821,
2573      3061, 3035, 3035, 3035, 3045, 3045, 3045, 3028, 1880, 3068,
2574
2575      3068, 3068,  820, 3069,  819,  817, 3070,  815, 3036, 3053,
2576      3053, 3053, 1140, 3054,  814,  811, 3055, 3056, 3056, 3056,
2577       810, 3057,  809,  807, 3058, 3059, 3059, 3059,  795, 3060,
2578       794, 3079, 3061, 3068, 3068, 3068,  791, 3069,  789,  787,
2579      3070, 3184, 3184, 3184, 3184, 3184, 3184,  786, 3193,  785,
2580       783, 3194, 3286, 3286, 3286, 3286, 3286, 3286,  781, 1140,
2581       779,  776, 1140,  773,  772,  771,  769,  767,  766,  764,
2582      3287,  762,  761, 3287,  254,  254,  254,  254,  254,  254,
2583       254,  254,  254,  255,  255,  255,  255,  255,  255,  255,
2584       255,  255,  260,  260,  260,  260,  260,  260,  260,  260,
2585
2586       260,  263,  263,  263,  263,  263,  263,  263,  263,  263,
2587       266,  266,  266,  266,  266,  266,  266,  266,  266,  269,
2588       269,  269,  269,  269,  269,  269,  269,  269,  276,  276,
2589       276,  276,  276,  276,  276,  276,  276,  284,  284,  284,
2590       284,  284,  284,  284,  284,  284,  288,  288,  288,  288,
2591       288,  288,  288,  288,  288,  300,  300,  300,  300,  300,
2592       300,  300,  300,  300,  304,  304,  304,  304,  304,  304,
2593       304,  304,  304,  311,  311,  311,  311,  311,  311,  311,
2594       311,  311,  322,  322,  322,  322,  322,  322,  322,  322,
2595       322,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2596
2597       336,  336,  336,  336,  336,  336,  336,  336,  336,  342,
2598       342,  342,  342,  342,  342,  342,  342,  342,  348,  348,
2599       348,  348,  348,  348,  348,  348,  348,  353,  353,  353,
2600       353,  353,  353,  353,  353,  353,  372,  372,  372,  372,
2601       372,  372,  372,  372,  372,  379,  379,  379,  379,  379,
2602       379,  379,  379,  379,  386,  386,  386,  386,  386,  386,
2603       386,  386,  386,  392,  392,  392,  392,  392,  392,  392,
2604       392,  392,  399,  399,  399,  399,  399,  399,  399,  399,
2605       399,  404,  404,  404,  404,  404,  404,  404,  404,  404,
2606       410,  410,  410,  410,  410,  410,  410,  410,  410,  415,
2607
2608       415,  415,  415,  415,  415,  415,  415,  415,  421,  421,
2609       421,  421,  421,  421,  421,  421,  421,  429,  429,  429,
2610       429,  429,  429,  429,  429,  429,  437,  437,  437,  437,
2611       437,  437,  437,  437,  437,  441,  441,  441,  441,  441,
2612       441,  441,  441,  441,  447,  447,  447,  447,  447,  447,
2613       447,  447,  447,  453,  453,  453,  453,  453,  453,  453,
2614       453,  453,  470,  470,  470,  470,  470,  470,  470,  470,
2615       470,  476,  476,  476,  476,  476,  476,  476,  476,  476,
2616       485,  485,  485,  485,  485,  485,  485,  485,  485,  491,
2617       491,  491,  491,  491,  491,  491,  491,  491,  501,  501,
2618
2619       501,  501,  501,  501,  501,  501,  501,  507,  507,  507,
2620       507,  507,  507,  507,  507,  507,  512,  512,  512,  512,
2621       512,  512,  512,  512,  512,  518,  518,  518,  518,  518,
2622       518,  518,  518,  518,  524,  524,  524,  524,  524,  524,
2623       524,  524,  524,  530,  530,  530,  530,  530,  530,  530,
2624       530,  530,  537,  537,  537,  537,  537,  537,  537,  537,
2625       537,  544,  544,  544,  544,  544,  544,  544,  544,  544,
2626       549,  549,  549,  549,  549,  549,  549,  549,  549,  557,
2627       557,  557,  557,  557,  557,  557,  557,  557,  563,  563,
2628       563,  563,  563,  563,  563,  563,  563,  570,  570,  570,
2629
2630       570,  570,  570,  570,  570,  570,  575,  575,  575,  575,
2631       575,  575,  575,  575,  575,  581,  581,  581,  581,  581,
2632       581,  581,  581,  581,  586,  586,  586,  586,  586,  586,
2633       586,  586,  586,  593,  593,  593,  593,  593,  593,  593,
2634       593,  593,  599,  599,  599,  599,  599,  599,  599,  599,
2635       599,  606,  606,  606,  606,  606,  606,  606,  606,  606,
2636       614,  614,  614,  614,  614,  614,  614,  614,  614,  622,
2637       622,  622,  622,  622,  622,  622,  622,  622,  626,  626,
2638       626,  626,  626,  626,  626,  626,  626,  632,  632,  632,
2639       632,  632,  632,  632,  632,  632,  636,  636,  636,  636,
2640
2641       636,  636,  636,  636,  636,  643,  643,  643,  643,  643,
2642       643,  643,  643,  643,  648,  648,  648,  648,  648,  648,
2643       648,  648,  648,  668,  668,  668,  759,  757,  756,  668,
2644       695,  695,  695,  755,  753,  751,  695,  699,  699,  699,
2645       750,  749,  748,  699,  707,  707,  707,  746, 3288,  693,
2646       707,  718,  718,  718,  726,  725,  723,  718,  724,  724,
2647       724,  721,  720,  719,  724,  747,  747,  747,  717,  713,
2648       709,  747,  754,  754,  754,  708,  706,  705,  754,  760,
2649       760,  760,  702,  701,  700,  760,  765,  765,  765,  698,
2650       697,  696,  765,  770,  770,  770,  694,  689, 3288,  770,
2651
2652       780,  780,  780,  669,  667,  665,  780,  784,  784,  784,
2653       659,  658,  659,  784,  790,  790,  790,  658,  657,  656,
2654       790,  808,  808,  808, 3288, 3288, 3288,  808,  818,  818,
2655       818, 3288, 3288, 3288,  818,  828,  828,  828, 3288, 3288,
2656      3288,  828,  833,  833,  833, 3288, 3288, 3288,  833,  839,
2657       839,  839, 3288, 3288, 3288,  839,  847,  847,  847, 3288,
2658      3288, 3288,  847,  854,  854,  854, 3288, 3288, 3288,  854,
2659       861,  861,  861, 3288, 3288, 3288,  861,  866,  866,  866,
2660      3288, 3288, 3288,  866,  871,  871,  871, 3288, 3288, 3288,
2661       871,  877,  877,  877, 3288, 3288, 3288,  877,  886,  886,
2662
2663       886, 3288, 3288, 3288,  886,  890,  890,  890, 3288, 3288,
2664      3288,  890,  894,  894,  894, 3288, 3288, 3288,  894,  898,
2665       898,  898,  898,  898,  898,  898, 3288,  898,  668,  668,
2666       668, 3288, 3288, 3288,  668,  913, 3288, 3288, 3288,  913,
2667       695,  695,  695, 3288, 3288, 3288,  695,  945, 3288, 3288,
2668      3288,  945,  699,  699,  699, 3288, 3288, 3288,  699,  952,
2669      3288, 3288, 3288,  952,  707,  707,  707, 3288, 3288, 3288,
2670       707,  964, 3288, 3288, 3288,  964,  718,  718,  718, 3288,
2671      3288, 3288,  718,  969, 3288, 3288, 3288,  969,  724,  724,
2672       724, 3288, 3288, 3288,  724,  974, 3288, 3288, 3288,  974,
2673
2674       747,  747,  747, 3288, 3288, 3288,  747,  995, 3288, 3288,
2675      3288,  995,  754,  754,  754, 3288, 3288, 3288,  754, 1001,
2676      3288, 3288, 3288, 1001,  760,  760,  760, 3288, 3288, 3288,
2677       760, 1006, 3288, 3288, 3288, 1006,  765,  765,  765, 3288,
2678      3288, 3288,  765, 1010, 3288, 3288, 3288, 1010,  770,  770,
2679       770, 3288, 3288, 3288,  770, 1020, 3288, 3288, 3288, 1020,
2680       780,  780,  780, 3288, 3288, 3288,  780, 1025, 3288, 3288,
2681      3288, 1025,  784,  784,  784, 3288, 3288, 3288,  784, 1032,
2682      3288, 3288, 3288, 1032,  790,  790,  790, 3288, 3288, 3288,
2683       790, 1051, 3288, 3288, 3288, 1051,  808,  808,  808, 3288,
2684
2685      3288, 3288,  808, 1062, 3288, 3288, 3288, 1062,  818,  818,
2686       818, 3288, 3288, 3288,  818, 1072, 3288, 3288, 3288, 1072,
2687       828,  828,  828, 3288, 3288, 3288,  828, 1077, 3288, 3288,
2688      3288, 1077,  833,  833,  833, 3288, 3288, 3288,  833, 1083,
2689      3288, 3288, 3288, 1083,  839,  839,  839, 3288, 3288, 3288,
2690       839, 1091, 3288, 3288, 3288, 1091,  847,  847,  847, 3288,
2691      3288, 3288,  847, 1096, 3288, 3288, 3288, 1096,  854,  854,
2692       854, 3288, 3288, 3288,  854, 1103, 3288, 3288, 3288, 1103,
2693       861,  861,  861, 3288, 3288, 3288,  861, 1108, 3288, 3288,
2694      3288, 1108,  866,  866,  866, 3288, 3288, 3288,  866, 1112,
2695
2696      3288, 3288, 3288, 1112,  871,  871,  871, 3288, 3288, 3288,
2697       871, 1117, 3288, 3288, 3288, 1117,  877,  877,  877, 3288,
2698      3288, 3288,  877, 1124, 3288, 3288, 3288, 1124,  886,  886,
2699       886, 3288, 3288, 3288,  886, 1128, 3288, 3288, 3288, 1128,
2700       890,  890,  890, 3288, 3288, 3288,  890, 1132, 3288, 3288,
2701      3288, 1132,  894,  894,  894, 3288, 3288, 3288,  894, 1137,
2702      3288, 3288, 3288, 1137, 1139, 1139, 1139, 1139, 1139, 1139,
2703      1139, 1139, 1139, 1145, 3288, 3288, 3288, 3288, 1145,  668,
2704       668,  668, 3288, 3288, 3288,  668, 1154, 1154, 1154, 1154,
2705      3288, 3288, 1154, 1154,  695,  695,  695, 3288, 3288, 3288,
2706
2707       695, 1189, 1189, 1189, 1189, 3288, 3288, 1189, 1189,  699,
2708       699,  699, 3288, 3288, 3288,  699, 1199, 1199, 1199, 1199,
2709      3288, 3288, 1199, 1199,  707,  707,  707, 3288, 3288, 3288,
2710       707, 1215, 1215, 1215, 1215, 3288, 3288, 1215, 1215,  718,
2711       718,  718, 3288, 3288, 3288,  718, 1222, 1222, 1222, 1222,
2712      3288, 3288, 1222, 1222,  724,  724,  724, 3288, 3288, 3288,
2713       724, 1230, 1230, 1230, 1230, 3288, 3288, 1230, 1230,  747,
2714       747,  747, 3288, 3288, 3288,  747, 1253, 1253, 1253, 1253,
2715      3288, 3288, 1253, 1253,  754,  754,  754, 3288, 3288, 3288,
2716       754, 1262, 1262, 1262, 1262, 3288, 3288, 1262, 1262,  760,
2717
2718       760,  760, 3288, 3288, 3288,  760, 1270, 1270, 1270, 1270,
2719      3288, 3288, 1270, 1270,  765,  765,  765, 3288, 3288, 3288,
2720       765, 1276, 1276, 1276, 1276, 3288, 3288, 1276, 1276,  770,
2721       770,  770, 3288, 3288, 3288,  770, 1289, 1289, 1289, 1289,
2722      3288, 3288, 1289, 1289,  780,  780,  780, 3288, 3288, 3288,
2723       780, 1296, 1296, 1296, 1296, 3288, 3288, 1296, 1296,  784,
2724       784,  784, 3288, 3288, 3288,  784, 1307, 1307, 1307, 1307,
2725      3288, 3288, 1307, 1307,  790,  790,  790, 3288, 3288, 3288,
2726       790, 1333, 1333, 1333, 1333, 3288, 3288, 1333, 1333,  808,
2727       808,  808,  808, 3288,  808, 3288,  808, 1349, 1349, 1349,
2728
2729      1349, 3288, 3288, 1349, 1349,  818,  818,  818, 3288, 3288,
2730      3288,  818, 1364, 1364, 1364, 1364, 3288, 3288, 1364, 1364,
2731       828,  828,  828, 3288, 3288, 3288,  828, 1372, 1372, 1372,
2732      1372, 3288, 3288, 1372, 1372,  833,  833,  833, 3288, 3288,
2733      3288,  833, 1381, 1381, 1381, 1381, 3288, 3288, 1381, 1381,
2734       839,  839,  839, 3288, 3288, 3288,  839, 1392, 1392, 1392,
2735      1392, 3288, 3288, 1392, 1392,  847,  847,  847,  847, 3288,
2736       847, 3288,  847, 1401, 1401, 1401, 1401, 3288, 3288, 1401,
2737      1401,  854,  854,  854,  854, 3288,  854, 3288,  854, 1413,
2738      1413, 1413, 1413, 3288, 3288, 1413, 1413,  861,  861,  861,
2739
2740      3288, 3288, 3288,  861, 1421, 1421, 1421, 1421, 3288, 3288,
2741      1421, 1421,  866,  866,  866,  866, 3288,  866, 3288,  866,
2742      1429, 1429, 1429, 1429, 3288, 3288, 1429, 1429,  871,  871,
2743       871,  871, 3288,  871, 3288,  871, 1439, 1439, 1439, 1439,
2744      3288, 3288, 1439, 1439,  877,  877,  877, 3288, 3288, 3288,
2745       877, 1448, 1448, 1448, 1448, 3288, 3288, 1448, 1448,  886,
2746       886,  886, 3288, 3288, 3288,  886, 1454, 1454, 1454, 1454,
2747      3288, 3288, 1454, 1454, 1461, 1461, 1461, 1461, 3288, 3288,
2748      1461, 1461,  894,  894,  894, 3288, 3288, 3288,  894, 1469,
2749      1469, 1469, 1469, 3288, 3288, 1469, 1469, 1139, 1139, 1139,
2750
2751      1139, 1139, 1139, 1139, 1139, 1139, 1145, 3288, 1145, 3288,
2752      3288, 1145,  668,  668,  668, 3288, 3288, 3288,  668, 1154,
2753      1154, 1154, 1154, 3288, 3288, 1154, 1154,  695,  695,  695,
2754       695, 3288,  695, 3288,  695, 1189, 1189, 1189, 1189, 3288,
2755      3288, 1189, 1189,  699,  699,  699,  699, 3288,  699, 3288,
2756       699, 1199, 1199, 1199, 1199, 3288, 3288, 1199, 1199,  707,
2757       707,  707, 3288, 3288, 3288,  707, 1215, 1215, 1215, 1215,
2758      3288, 3288, 1215, 1215,  718,  718,  718, 3288, 3288, 3288,
2759       718, 1222, 1222, 1222, 1222, 3288, 3288, 1222, 1222,  724,
2760       724,  724, 3288, 3288, 3288,  724, 1230, 1230, 1230, 1230,
2761
2762      3288, 3288, 1230, 1230,  747,  747,  747, 3288, 3288, 3288,
2763       747, 1253, 1253, 1253, 1253, 3288, 3288, 1253, 1253,  754,
2764       754,  754, 3288, 3288, 3288,  754, 1262, 1262, 1262, 1262,
2765      3288, 3288, 1262, 1262,  760,  760,  760,  760, 3288,  760,
2766      3288,  760, 1270, 1270, 1270, 1270, 3288, 3288, 1270, 1270,
2767       765,  765,  765,  765, 3288,  765, 3288,  765, 1276, 1276,
2768      1276, 1276, 3288, 3288, 1276, 1276,  770,  770,  770, 3288,
2769      3288, 3288,  770, 1289, 1289, 1289, 1289, 3288, 3288, 1289,
2770      1289,  780,  780,  780,  780, 3288,  780, 3288,  780, 1296,
2771      1296, 1296, 1296, 3288, 3288, 1296, 1296,  784,  784,  784,
2772
2773       784, 3288,  784, 3288,  784, 1307, 1307, 1307, 1307, 3288,
2774      3288, 1307, 1307,  790,  790,  790, 3288, 3288, 3288,  790,
2775      1333, 1333, 1333, 1333, 3288, 3288, 1333, 1333,  808,  808,
2776       808, 3288, 3288, 3288,  808, 1349, 1349, 1349, 1349, 3288,
2777      3288, 1349, 1349,  818,  818,  818, 3288, 3288, 3288,  818,
2778      1364, 1364, 1364, 1364, 3288, 3288, 1364, 1364,  828,  828,
2779       828, 3288, 3288, 3288,  828, 1372, 1372, 1372, 1372, 3288,
2780      3288, 1372, 1372,  833,  833,  833, 3288, 3288, 3288,  833,
2781      1381, 1381, 1381, 1381, 3288, 3288, 1381, 1381,  839,  839,
2782       839, 3288, 3288, 3288,  839, 1392, 1392, 1392, 1392, 3288,
2783
2784      3288, 1392, 1392,  847,  847,  847, 3288, 3288, 3288,  847,
2785      1401, 1401, 1401, 1401, 3288, 3288, 1401, 1401,  854,  854,
2786       854, 3288, 3288, 3288,  854, 1413, 1413, 1413, 1413, 3288,
2787      3288, 1413, 1413,  861,  861,  861, 3288, 3288, 3288,  861,
2788      1421, 1421, 1421, 1421, 3288, 3288, 1421, 1421, 1429, 1429,
2789      1429, 1429, 3288, 3288, 1429, 1429,  871,  871,  871, 3288,
2790      3288, 3288,  871, 1439, 1439, 1439, 1439, 3288, 3288, 1439,
2791      1439,  877,  877,  877, 3288, 3288, 3288,  877, 1448, 1448,
2792      1448, 1448, 3288, 3288, 1448, 1448,  886,  886,  886, 3288,
2793      3288, 3288,  886, 1454, 1454, 1454, 1454, 3288, 3288, 1454,
2794
2795      1454, 1461, 1461, 1461, 1461, 3288, 3288, 1461, 1461,  894,
2796       894,  894, 3288, 3288, 3288,  894, 1469, 1469, 1469, 1469,
2797      3288, 3288, 1469, 1469, 1139, 1139, 1139, 1139, 1139, 1139,
2798      1139, 1139, 1139, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
2799      1682, 1682,  668,  668,  668, 3288, 3288, 3288,  668, 1154,
2800      1154, 1154, 1154, 3288, 3288, 1154, 1154, 1189, 1189, 1189,
2801      1189, 3288, 3288, 1189, 1189,  699,  699,  699, 3288, 3288,
2802      3288,  699, 1199, 1199, 1199, 1199, 3288, 3288, 1199, 1199,
2803       707,  707,  707, 3288, 3288, 3288,  707, 1215, 1215, 1215,
2804      1215, 3288, 3288, 1215, 1215,  718,  718,  718, 3288, 3288,
2805
2806      3288,  718, 1222, 1222, 1222, 1222, 3288, 3288, 1222, 1222,
2807       724,  724,  724, 3288, 3288, 3288,  724,  747,  747,  747,
2808      3288, 3288, 3288,  747, 1253, 1253, 1253, 1253, 3288, 3288,
2809      1253, 1253,  754,  754,  754, 3288, 3288, 3288,  754, 1262,
2810      1262, 1262, 1262, 3288, 3288, 1262, 1262, 1270, 1270, 1270,
2811      1270, 3288, 3288, 1270, 1270,  765,  765,  765, 3288, 3288,
2812      3288,  765, 1276, 1276, 1276, 1276, 3288, 3288, 1276, 1276,
2813       770,  770,  770, 3288, 3288, 3288,  770, 1289, 1289, 1289,
2814      1289, 3288, 3288, 1289, 1289, 1296, 1296, 1296, 1296, 3288,
2815      3288, 1296, 1296, 1307, 1307, 1307, 1307, 3288, 3288, 1307,
2816
2817      1307,  790,  790,  790, 3288, 3288, 3288,  790, 1333, 1333,
2818      1333, 1333, 3288, 3288, 1333, 1333,  808,  808,  808,  808,
2819      3288,  808, 3288,  808, 1349, 1349, 1349, 1349, 3288, 3288,
2820      1349, 1349,  818,  818,  818, 3288, 3288, 3288,  818, 1364,
2821      1364, 1364, 1364, 3288, 3288, 1364, 1364,  828,  828,  828,
2822      3288, 3288, 3288,  828, 1372, 1372, 1372, 1372, 3288, 3288,
2823      1372, 1372,  833,  833,  833, 3288, 3288, 3288,  833, 1381,
2824      1381, 1381, 1381, 3288, 3288, 1381, 1381,  839,  839,  839,
2825      3288, 3288, 3288,  839, 1392, 1392, 1392, 1392, 3288, 3288,
2826      1392, 1392,  847,  847,  847, 3288, 3288, 3288,  847, 1401,
2827
2828      1401, 1401, 1401, 3288, 3288, 1401, 1401,  854,  854,  854,
2829      3288, 3288, 3288,  854, 1413, 1413, 1413, 1413, 3288, 3288,
2830      1413, 1413,  861,  861,  861, 3288, 3288, 3288,  861, 1421,
2831      1421, 1421, 1421, 3288, 3288, 1421, 1421, 1429, 1429, 1429,
2832      1429, 3288, 3288, 1429, 1429,  871,  871,  871, 3288, 3288,
2833      3288,  871, 1439, 1439, 1439, 1439, 3288, 3288, 1439, 1439,
2834       877,  877,  877, 3288, 3288, 3288,  877, 1448, 1448, 1448,
2835      1448, 3288, 3288, 1448, 1448,  886,  886,  886,  886, 3288,
2836       886, 3288,  886, 1454, 1454, 1454, 1454, 3288, 3288, 1454,
2837      1454, 1461, 1461, 1461, 1461, 3288, 3288, 1461, 1461,  894,
2838
2839       894,  894,  894, 3288,  894, 3288,  894, 1469, 1469, 1469,
2840      1469, 3288, 3288, 1469, 1469, 1139, 1139, 1139, 1139, 1139,
2841      1139, 1139, 1139, 1139, 1682, 1682, 1682, 1682, 1682, 1682,
2842      1682, 1682, 1682,  668,  668,  668, 3288, 3288, 3288,  668,
2843      1154, 1154, 1154, 1154, 3288, 3288, 1154, 1154, 1189, 1189,
2844      1189, 1189, 3288, 3288, 1189, 1189,  699,  699,  699, 3288,
2845      3288, 3288,  699, 1199, 1199, 1199, 1199, 3288, 3288, 1199,
2846      1199,  707,  707,  707, 3288, 3288, 3288,  707, 1215, 1215,
2847      1215, 1215, 3288, 3288, 1215, 1215,  718,  718,  718, 3288,
2848      3288, 3288,  718, 1222, 1222, 1222, 1222, 3288, 3288, 1222,
2849
2850      1222,  724,  724,  724, 3288, 3288, 3288,  724,  747,  747,
2851       747, 3288, 3288, 3288,  747, 1253, 1253, 1253, 1253, 3288,
2852      3288, 1253, 1253,  754,  754,  754, 3288, 3288, 3288,  754,
2853      1262, 1262, 1262, 1262, 3288, 3288, 1262, 1262, 1270, 1270,
2854      1270, 1270, 3288, 3288, 1270, 1270,  765,  765,  765,  765,
2855      3288,  765, 3288,  765, 1276, 1276, 1276, 1276, 3288, 3288,
2856      1276, 1276,  770,  770,  770, 3288, 3288, 3288,  770, 1289,
2857      1289, 1289, 1289, 3288, 3288, 1289, 1289, 1307, 1307, 1307,
2858      1307, 3288, 3288, 1307, 1307,  790,  790,  790, 3288, 3288,
2859      3288,  790, 1333, 1333, 1333, 1333, 3288, 3288, 1333, 1333,
2860
2861       808,  808,  808,  808, 3288,  808, 3288,  808, 1349, 1349,
2862      1349, 1349, 3288, 3288, 1349, 1349,  818,  818,  818, 3288,
2863      3288, 3288,  818, 1364, 1364, 1364, 1364, 3288, 3288, 1364,
2864      1364,  828,  828,  828, 3288, 3288, 3288,  828, 1372, 1372,
2865      1372, 1372, 3288, 3288, 1372, 1372,  833,  833,  833, 3288,
2866      3288, 3288,  833, 1381, 1381, 1381, 1381, 3288, 3288, 1381,
2867      1381,  839,  839,  839, 3288, 3288, 3288,  839, 1392, 1392,
2868      1392, 1392, 3288, 3288, 1392, 1392,  847,  847,  847, 3288,
2869      3288, 3288,  847, 1401, 1401, 1401, 1401, 3288, 3288, 1401,
2870      1401,  854,  854,  854,  854, 3288,  854, 3288,  854, 1413,
2871
2872      1413, 1413, 1413, 3288, 3288, 1413, 1413,  861,  861,  861,
2873      3288, 3288, 3288,  861, 1421, 1421, 1421, 1421, 3288, 3288,
2874      1421, 1421, 1429, 1429, 1429, 1429, 3288, 3288, 1429, 1429,
2875       871,  871,  871,  871, 3288,  871, 3288,  871, 1439, 1439,
2876      1439, 1439, 3288, 3288, 1439, 1439,  877,  877,  877, 3288,
2877      3288, 3288,  877, 1448, 1448, 1448, 1448, 3288, 3288, 1448,
2878      1448, 1454, 1454, 1454, 1454, 3288, 3288, 1454, 1454, 1461,
2879      1461, 1461, 1461, 3288, 3288, 1461, 1461, 1469, 1469, 1469,
2880      1469, 3288, 3288, 1469, 1469, 1139, 1139, 1139, 1139, 1139,
2881      1139, 1139, 1139, 1139, 1682, 1682, 1682, 1682, 1682, 1682,
2882
2883      1682, 1682, 1682,  668,  668,  668,  668, 3288,  668, 3288,
2884       668, 1154, 1154, 1154, 1154, 3288, 3288, 1154, 1154, 1189,
2885      1189, 1189, 1189, 3288, 3288, 1189, 1189,  699,  699,  699,
2886      3288, 3288, 3288,  699, 1199, 1199, 1199, 1199, 3288, 3288,
2887      1199, 1199,  707,  707,  707, 3288, 3288, 3288,  707, 1215,
2888      1215, 1215, 1215, 3288, 3288, 1215, 1215,  718,  718,  718,
2889       718, 3288,  718, 3288,  718, 1222, 1222, 1222, 1222, 3288,
2890      3288, 1222, 1222,  724,  724,  724,  724, 3288,  724, 3288,
2891       724,  747,  747,  747,  747, 3288,  747, 3288,  747, 1253,
2892      1253, 1253, 1253, 3288, 3288, 1253, 1253,  754,  754,  754,
2893
2894       754, 3288,  754, 3288,  754, 1262, 1262, 1262, 1262, 3288,
2895      3288, 1262, 1262, 1270, 1270, 1270, 1270, 3288, 3288, 1270,
2896      1270, 1276, 1276, 1276, 1276, 3288, 3288, 1276, 1276,  770,
2897       770,  770, 3288, 3288, 3288,  770, 1307, 1307, 1307, 1307,
2898      3288, 3288, 1307, 1307,  790,  790,  790, 3288, 3288, 3288,
2899       790, 1333, 1333, 1333, 1333, 3288, 3288, 1333, 1333,  808,
2900       808,  808,  808, 3288,  808, 3288,  808, 1349, 1349, 1349,
2901      1349, 3288, 3288, 1349, 1349,  818,  818,  818, 3288, 3288,
2902      3288,  818,  828,  828,  828, 3288, 3288, 3288,  828, 1372,
2903      1372, 1372, 1372, 3288, 3288, 1372, 1372,  833,  833,  833,
2904
2905      3288, 3288, 3288,  833, 1381, 1381, 1381, 1381, 3288, 3288,
2906      1381, 1381,  839,  839,  839, 3288, 3288, 3288,  839,  847,
2907       847,  847, 3288, 3288, 3288,  847, 1401, 1401, 1401, 1401,
2908      3288, 3288, 1401, 1401,  854,  854,  854, 3288, 3288, 3288,
2909       854, 1413, 1413, 1413, 1413, 3288, 3288, 1413, 1413,  861,
2910       861,  861, 3288, 3288, 3288,  861, 1421, 1421, 1421, 1421,
2911      3288, 3288, 1421, 1421, 1429, 1429, 1429, 1429, 3288, 3288,
2912      1429, 1429, 1439, 1439, 1439, 1439, 3288, 3288, 1439, 1439,
2913       877,  877,  877, 3288, 3288, 3288,  877, 1448, 1448, 1448,
2914      1448, 3288, 3288, 1448, 1448, 1454, 1454, 1454, 1454, 3288,
2915
2916      3288, 1454, 1454, 1461, 1461, 1461, 1461, 3288, 3288, 1461,
2917      1461, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
2918      1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1154,
2919      1154, 1154, 1154, 3288, 3288, 1154, 1154, 1189, 1189, 1189,
2920      1189, 3288, 3288, 1189, 1189,  699,  699,  699, 3288, 3288,
2921      3288,  699,  707,  707,  707, 3288, 3288, 3288,  707, 1215,
2922      1215, 1215, 1215, 3288, 3288, 1215, 1215, 1222, 1222, 1222,
2923      1222, 3288, 3288, 1222, 1222, 1253, 1253, 1253, 1253, 3288,
2924      3288, 1253, 1253, 1262, 1262, 1262, 1262, 3288, 3288, 1262,
2925      1262, 1276, 1276, 1276, 1276, 3288, 3288, 1276, 1276,  770,
2926
2927       770,  770, 3288, 3288, 3288,  770, 1307, 1307, 1307, 1307,
2928      3288, 3288, 1307, 1307,  790,  790,  790, 3288, 3288, 3288,
2929       790, 1333, 1333, 1333, 1333, 3288, 3288, 1333, 1333, 1349,
2930      1349, 1349, 1349, 3288, 3288, 1349, 1349,  818,  818,  818,
2931      3288, 3288, 3288,  818,  828,  828,  828, 3288, 3288, 3288,
2932       828, 1372, 1372, 1372, 1372, 3288, 3288, 1372, 1372,  833,
2933       833,  833, 3288, 3288, 3288,  833, 1381, 1381, 1381, 1381,
2934      3288, 3288, 1381, 1381,  839,  839,  839, 3288, 3288, 3288,
2935       839,  847,  847,  847, 3288, 3288, 3288,  847,  854,  854,
2936       854, 3288, 3288, 3288,  854, 1413, 1413, 1413, 1413, 3288,
2937
2938      3288, 1413, 1413,  861,  861,  861, 3288, 3288, 3288,  861,
2939      1421, 1421, 1421, 1421, 3288, 3288, 1421, 1421, 1429, 1429,
2940      1429, 1429, 3288, 3288, 1429, 1429, 1439, 1439, 1439, 1439,
2941      3288, 3288, 1439, 1439,  877,  877,  877,  877, 3288,  877,
2942      3288,  877, 1448, 1448, 1448, 1448, 3288, 3288, 1448, 1448,
2943      1454, 1454, 1454, 1454, 3288, 3288, 1454, 1454, 1461, 1461,
2944      1461, 1461, 3288, 3288, 1461, 1461, 1139, 1139, 1139, 1139,
2945      1139, 1139, 1139, 1139, 1139, 1682, 1682, 1682, 1682, 1682,
2946      1682, 1682, 1682, 1682, 1154, 1154, 1154, 1154, 3288, 3288,
2947      1154, 1154, 1189, 1189, 1189, 1189, 3288, 3288, 1189, 1189,
2948
2949       699,  699,  699, 3288, 3288, 3288,  699,  707,  707,  707,
2950       707, 3288,  707, 3288,  707, 1222, 1222, 1222, 1222, 3288,
2951      3288, 1222, 1222, 1253, 1253, 1253, 1253, 3288, 3288, 1253,
2952      1253, 1262, 1262, 1262, 1262, 3288, 3288, 1262, 1262, 1276,
2953      1276, 1276, 1276, 3288, 3288, 1276, 1276,  770,  770,  770,
2954      3288, 3288, 3288,  770, 1307, 1307, 1307, 1307, 3288, 3288,
2955      1307, 1307,  790,  790,  790, 3288, 3288, 3288,  790, 1333,
2956      1333, 1333, 1333, 3288, 3288, 1333, 1333, 1349, 1349, 1349,
2957      1349, 3288, 3288, 1349, 1349,  818,  818,  818, 3288, 3288,
2958      3288,  818,  828,  828,  828, 3288, 3288, 3288,  828,  833,
2959
2960       833,  833,  833, 3288,  833, 3288,  833, 1381, 1381, 1381,
2961      1381, 3288, 3288, 1381, 1381,  839,  839,  839,  839, 3288,
2962       839, 3288,  839,  847,  847,  847, 3288, 3288, 3288,  847,
2963       854,  854,  854, 3288, 3288, 3288,  854, 1413, 1413, 1413,
2964      1413, 3288, 3288, 1413, 1413,  861,  861,  861,  861, 3288,
2965       861, 3288,  861, 1421, 1421, 1421, 1421, 3288, 3288, 1421,
2966      1421, 1429, 1429, 1429, 1429, 3288, 3288, 1429, 1429, 1439,
2967      1439, 1439, 1439, 3288, 3288, 1439, 1439,  877,  877,  877,
2968       877, 3288,  877, 3288,  877, 1448, 1448, 1448, 1448, 3288,
2969      3288, 1448, 1448, 1454, 1454, 1454, 1454, 3288, 3288, 1454,
2970
2971      1454, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
2972      1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1154,
2973      1154, 1154, 1154, 3288, 3288, 1154, 1154,  699,  699,  699,
2974      3288, 3288, 3288,  699,  707,  707,  707, 3288, 3288, 3288,
2975       707, 1222, 1222, 1222, 1222, 3288, 3288, 1222, 1222, 1253,
2976      1253, 1253, 1253, 3288, 3288, 1253, 1253, 1276, 1276, 1276,
2977      1276, 3288, 3288, 1276, 1276,  770,  770,  770, 3288, 3288,
2978      3288,  770, 1307, 1307, 1307, 1307, 3288, 3288, 1307, 1307,
2979       790,  790,  790, 3288, 3288, 3288,  790, 2916, 2916, 2916,
2980      2916, 2916, 2916, 2916, 2916, 2916, 2917, 2917, 2917, 2917,
2981
2982      2917, 2917, 2917, 2917, 2917, 2972, 2972, 2972, 2972, 2972,
2983      2972, 2972, 2972, 2972, 2975, 2975, 2975, 2975, 2975, 2975,
2984      2975, 2975, 2975, 3011, 3011, 3011, 3011, 3011, 3011, 3011,
2985      3011, 3011, 3013, 3013, 3013, 3013, 3013, 3013, 3013, 3013,
2986      3013,  253, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2987      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2988      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2989      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2990      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2991      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2992
2993      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
2994      3288, 3288, 3288, 3288, 3288, 3288
2995     } ;
2996
2997 static yyconst flex_int16_t yy_chk[12117] =
2998     {   0,
2999         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3000         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3001         4,   10, 1516,    5,    0,    9,    6,    0,   10,    7,
3002         8,    8,    8,  258,   11,   13,   13,   12,   14,   14,
3003        13,   13,  307,   14,   14,  259,    8,   17,   17,  258,
3004        13,   15,   15,   14,   15,  262,   15,   16,   16,  361,
3005        16,  259,   16,   18,   18, 1518,   15,   19,   19,   19,
3006       536,  262,   16,   20,   20,   20,   23,   23,   23,   24,
3007        24,   24,  536,   19,   25,   25,   25,  361, 1527,   20,
3008       368,   17,   23, 1065,  307,   24,  256,  256,  256, 1065,
3009
3010        25,  257,  257,  257,  261,  261,  261,   18,   21,   21,
3011        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3012        21,   21,   21,  291,   21,   21,   21,   21,   21,   26,
3013        26,   26,   27,   27,   27,   28,   28,   28,  291,   29,
3014        29,   29,   30,   30,   30,   26,  368,  467,   27,  285,
3015       467,   28,  673,   21,   21,   29,  301,  280,   30,   31,
3016        31,   31,  282,  282,  282,  285,  289,  289,  289,  298,
3017       298,  298,  301,  280,  357,   31,  673,   21,   22,   22,
3018        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3019        22,   22,   22, 1530,   22,   22,   22,   22,   22,   32,
3020
3021        32,   32,   33,   33,   33,   34,   34,   34,  272,   35,
3022        35,   35,   36,   36,   36,   32,  280,  360,   33,  482,
3023       729,   34,  482,   22,   22,   35,  357,  360,   36,   37,
3024        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3025        40,   41,   41,   41,  729,   37,  548,   22,   38,  312,
3026       272,   39,  463,  548,   40,  360,  272,   41,   42,   42,
3027        42,  272,  305,  305,  305,  312,  272,  309,  309,  309,
3028       320,  320,  320,  463,   42,   43,   43,   43,   43,   43,
3029        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3030       329,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3031
3032        46,   46,   47,   47,   47,  329,   48,   48,   48,   49,
3033        49,   49,   45,  427,  553,   46, 1532,  427,   47,  327,
3034        43,   43,   48,  327,  381,   49,  293,  327,   43,   44,
3035        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3036        44,   44,   44,   44,  323,   44,   44,   44,   44,   44,
3037        50,   50,   50,   51,   51,   51,   52,   52,   52,  468,
3038       323,  566,   55,   55,  562,  293,   50,   55,  294,   51,
3039       553,  562,   52,  468,   44,   44,  381,   55,  293,  382,
3040       293, 1537,   44,   53,   53,   53,   53,   53,   53,   53,
3041        53,   53,   53,   53,   53,   53,   53,   53, 1540,   53,
3042
3043        53,   53,   53,   53, 1541,  337,   55,  294,   59,   59,
3044        59,   60,   60,   60,   63,   63,   63,  566,   56,   56,
3045       294,  337,  294,   56,   59,  317,  466,   60,   53,   53,
3046        63,  382,  317,   56,  466,  661,   53,  394,  661,   53,
3047       466,  317,  331,  331,  331, 1542,   53,   54,   54,   54,
3048        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3049        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3050        64,   67,   67,   67,   68,   68,   68, 1547,   69,   69,
3051        69,   70,   70,   70,   64,  349,  367,   67,  332,  394,
3052        68,  552,   54,   54,   69,  332, 1173,   70, 1548,  552,
3053
3054        54,  349,  367,   54,  332,  334,  334,  334,  395, 1173,
3055        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3056        57,   57,   57,   57,   57,   57, 1549,   57,   57,   57,
3057        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3058        73,  433,   74,   74,   74,   75,   75,   75,   71, 1550,
3059       373,   72,  344,  387,   73, 1551,   57,   57,   74,  344,
3060       395,   75,  343,  343,  343,   57,  373,   57,  344,  387,
3061       431,   57,  346,  346,  346,  539,   57,   57,   58,   58,
3062        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3063        58,   58,   58,  433,   58,   58,   58,   58,   58,   76,
3064
3065        76,   76,   77,   77,   77,   78,   78,   78,  617,   79,
3066        79,   79,   80,   80,   80,   76,  359, 1552,   77,  431,
3067       617,   78,  431,   58,   58,   79,  359,  539,   80,  354,
3068       354,  354,   58,  359,   58,  370,  370,  370,   58,  380,
3069       380,  380, 1553,   58,   58,   61,   61,   61,   61,   61,
3070        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3071       365,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3072        82,   82,   83,   83,   83,  703,   84,   84,   84,   85,
3073        85,   85,   81, 1558, 1559,   82,  652,  589,   83,  365,
3074        61,   61,   84,  365,  365,   85,  602,   61,  384,  384,
3075
3076       384,  652,  365,   61,  365,  393,  393,  393,  397,  397,
3077       397,  703,   61,   62,   62,   62,   62,   62,   62,   62,
3078        62,   62,   62,   62,   62,   62,   62,   62, 1566,   62,
3079        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3080        88,   88,   88,  589,   89,   89,   89,   90,   90,   90,
3081        86,  400,  602,   87, 1568,  738,   88,  406,   62,   62,
3082        89,  411,  422,   90,  406,   62, 1569,  400,  405,  405,
3083       405,   62,  739,  406,  408,  408,  408,  411,  422,  738,
3084        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3085        65,   65,   65,   65,   65,   65,  739,   65,   65,   65,
3086
3087        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3088        93, 1573,   94,   94,   94,   95,   95,   95,   91,  438,
3089       772,   92,  417,  772,   93,  540,   65,   65,   94,  417,
3090      1576,   95,  416,  416,  416,  438,  432,   65,  417,  419,
3091       419,  419,  430,  430,  430, 1577,   65,   66,   66,   66,
3092        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3093        66,   66,  740,   66,   66,   66,   66,   66,   96,   96,
3094        96,   97,   97,   97,   98,   98,   98,  540,   99,   99,
3095        99,  100,  100,  100,   96,  432,  740,   97,  432,  741,
3096        98, 1584,   66,   66,   99,  443, 1586,  100,  101,  101,
3097
3098       101, 1587,  443,   66,  102,  102,  102,  435,  435,  435,
3099       618,  443,   66,  741,  101,  442,  442,  442,  366, 1593,
3100       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3101       103,  103,  103,  103,  103,  103,  745,  103,  103,  103,
3102       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3103       107,  679,  108,  108,  108,  679,  366,  448,  105,  778,
3104       745,  106,  618,  778,  107,  363,  103,  103,  108,  455,
3105       460,  103,  366,  448,  638,  363,  455,  103,  445,  445,
3106       445,  103,  454,  454,  454,  455,  460,  103,  104,  104,
3107       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3108
3109       104,  104,  104,  363,  104,  104,  104,  104,  104,  109,
3110       109,  109,  110,  110,  110,  111,  111,  111,  639,  112,
3111       112,  112,  457,  457,  457,  109,  638,  469,  110,  472,
3112       477,  111, 1472,  104,  104,  112,  472,  492,  104,  469,
3113       469,  471,  471,  471,  104,  472,  477, 1594,  104,  474,
3114       474,  474, 1472,  492,  104,  113,  113,  113,  113,  113,
3115       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3116       639,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3117       116,  116,  117,  117,  117,  681,  118,  118,  118,  486,
3118       486,  486,  115,  508,  519,  116,  487, 1596,  117,  681,
3119
3120       113,  113,  118,  487, 1597,  113,  489,  489,  489,  508,
3121       519,  113,  487,  502,  502,  502,  505,  505,  505,  513,
3122       513,  513,  113,  114,  114,  114,  114,  114,  114,  114,
3123       114,  114,  114,  114,  114,  114,  114,  114, 1598,  114,
3124       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3125       121,  121,  121,  685,  122,  122,  122, 1142,  503, 1185,
3126       119, 1142,  531,  120,  514,  503,  121,  685,  114,  114,
3127       122,  514, 1185,  114,  503,  516,  516,  516,  531,  114,
3128       514,  525,  525,  525,  528,  528,  528,  538,  538,  538,
3129       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3130
3131       123,  123,  123,  123,  123,  123, 1599,  123,  123,  123,
3132       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3133       129, 1600,  130,  130,  130,  133,  133,  133,  125,  545,
3134       558,  126,  526, 1601,  129,  565,  123,  123,  130,  526,
3135      1611,  133,  542,  542,  542,  545,  558,  123,  526,  550,
3136       550,  550,  123,  124,  124,  124,  124,  124,  124,  124,
3137       124,  124,  124,  124,  124,  124,  124,  124, 1613,  124,
3138       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3139       136,  136,  136,  565,  137,  137,  137,  138,  138,  138,
3140       134,  565, 1614,  135, 1619, 1621,  136,  571,  124,  124,
3141
3142       137, 1623, 1624,  138, 1626,  551,  555,  555,  555,  124,
3143       564,  564,  564,  571,  124,  127,  127,  127,  127,  127,
3144       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3145      1627,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3146       140,  140,  143,  143,  143,  734,  144,  144,  144,  147,
3147       147,  147,  139,  551, 1628,  140,  577,  551,  143,  734,
3148       127,  127,  144,  577,  582,  147,  568,  568,  568,  576,
3149       576,  576,  577,  579,  579,  579,  127,  587,  587,  587,
3150       582, 1637,  127,  128,  128,  128,  128,  128,  128,  128,
3151       128,  128,  128,  128,  128,  128,  128,  128, 1643,  128,
3152
3153       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3154       152,  152,  152, 1644,  155,  155,  155,  156,  156,  156,
3155       148, 1648,  594,  151, 1650, 1662,  152,  607,  128,  128,
3156       155,  674,  623,  156,  591,  591,  591,  588,  594,  600,
3157       600,  600,  674,  607,  128,  674, 1663,  601,  623, 1668,
3158       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3159       131,  131,  131,  131,  131,  131, 1671,  131,  131,  131,
3160       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3161       163, 1672,  164,  164,  164,  588,  633, 1673,  159, 1675,
3162      1682,  160, 1685,  588,  163,  601,  131,  131,  164,  131,
3163
3164       644,  131,  633,  601,  604,  604,  604,  131,  615,  615,
3165       615,  620,  620,  620,  131,  616,  644,  131,  132,  132,
3166       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3167       132,  132,  132, 1688,  132,  132,  132,  132,  132,  167,
3168       167,  167,  168,  168,  168,  171,  171,  171,  684,  172,
3169       172,  172,  616, 1689, 1691,  167,  900, 1681,  168,  684,
3170      1239,  171,  684,  132,  132,  172,  132,  616,  132,  627,
3171       627,  627,  900, 1239,  132,  630,  630,  630,  637,  637,
3172       637,  132, 1681, 1692,  132,  141,  141,  141,  141,  141,
3173       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3174
3175      1693,  141,  141,  141,  141,  141,  173,  173,  173,  174,
3176       174,  174,  175,  175,  175,  742,  176,  176,  176,  177,
3177       177,  177,  173, 1694, 1695,  174,  628,  650,  175,  742,
3178       141,  141,  176,  628,  650,  177,  641,  641,  641,  649,
3179       649,  649,  628,  650, 1696, 1697,  141,  142,  142,  142,
3180       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3181       142,  142, 1699,  142,  142,  142,  142,  142,  178,  178,
3182       178,  181,  181,  181,  182,  182,  182,  744,  183,  183,
3183       183,  184,  184,  184,  178, 1700, 1702,  181,  680, 1704,
3184       182,  744,  142,  142,  183,  680, 1706,  184,  651,  651,
3185
3186       651,  680,  660,  660,  660, 1157, 1157, 1157,  142,  145,
3187       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3188       145,  145,  145,  145, 1707,  145,  145,  145,  145,  145,
3189       185,  185,  185,  186,  186,  186,  187,  187,  187,  687,
3190       188,  188,  188,  191,  191,  191,  185, 1709, 1711,  186,
3191       687,  689,  187,  687,  145,  145,  188,  691,  689,  191,
3192       145,  660,  692,  693,  689,  145, 1713, 1714,  691,  692,
3193       693,  691, 1165, 1165, 1165,  692,  693,  145,  146,  146,
3194       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3195       146,  146,  146, 1715,  146,  146,  146,  146,  146,  192,
3196
3197       192,  192,  193,  193,  193,  194,  194,  194, 1716,  195,
3198       195,  195,  196,  196,  196,  192, 1717, 1719,  193,  733,
3199       736,  194, 1728,  146,  146,  195,  733,  736,  196,  146,
3200       743, 1729,  733,  736,  146,  903,  903,  903, 1731,  903,
3201      1735,  743, 1739, 1741,  743, 1748,  146,  149,  149,  149,
3202       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3203       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3204       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3205       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3206       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3207
3208       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3209       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3210       149,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3211       153,  153,  153,  153,  153,  153, 1749,  153,  153,  153,
3212       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3213       201, 1750,  202,  202,  202,  205,  205,  205,  197, 1035,
3214      1751,  198, 1753, 1757,  201, 1758,  153,  153,  202, 1035,
3215       153,  205,  915,  915,  915, 1759, 1035,  153, 1762, 1769,
3216       153,  937,  937,  937,  153, 1781,  153,  153,  154,  154,
3217       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3218
3219       154,  154,  154, 1782,  154,  154,  154,  154,  154,  206,
3220       206,  206,  207,  207,  207,  208,  208,  208, 1791,  209,
3221       209,  209,  210,  210,  210,  206, 1794, 1804,  207, 1808,
3222      1812,  208, 1813,  154,  154,  209,  915,  154,  210,  949,
3223       949,  949, 1817,  949,  154,  937,  949,  154, 1180, 1180,
3224      1180,  154, 1818,  154,  154,  157,  157,  157,  157,  157,
3225       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3226      1819,  157,  157,  157,  157,  157,  211,  211,  211,  212,
3227       212,  212,  215,  215,  215, 1820,  216,  216,  216,  701,
3228       701,  701,  211, 1829, 1833,  212, 1836, 1838,  215, 1840,
3229
3230       157,  157,  216,  157,  157,  157,  701, 1841,  957,  957,
3231       957,  157,  957, 1843,  157,  957, 1844, 1845,  157, 1848,
3232      1850,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3233       158,  158,  158,  158,  158,  158,  158, 1852,  158,  158,
3234       158,  158,  158,  217,  217,  217,  218,  218,  218,  219,
3235       219,  219, 1857,  220,  220,  220,  709,  709,  709,  217,
3236      1863, 1867,  218, 1868, 1869,  219, 1871,  158,  158,  220,
3237       158,  158,  158,  709, 1883,  972,  972,  972,  158,  972,
3238      1886,  158,  972, 1887, 1888,  158, 1880, 1879,  158,  161,
3239       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3240
3241       161,  161,  161,  161, 1879,  161,  161,  161,  161,  161,
3242       221,  221,  221,  222,  222,  222,  225,  225,  225, 1890,
3243       226,  226,  226,  725,  725,  725,  221, 1891, 1880,  222,
3244      1893, 1894,  225, 1895,  161,  161,  226, 1897, 1898,  161,
3245       725, 1236, 1236, 1236, 1899,  161,  162,  162,  162,  162,
3246       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3247       162, 1881,  162,  162,  162,  162,  162,  227,  227,  227,
3248       228,  228,  228,  229,  229,  229, 1903,  230,  230,  230,
3249       749,  749,  749,  227, 1905, 1889,  228, 1908, 1909,  229,
3250      1910,  162,  162,  230, 1881, 1911,  162,  749, 1488, 1488,
3251
3252      1488, 1889,  162,  165,  165,  165,  165,  165,  165,  165,
3253       165,  165,  165,  165,  165,  165,  165,  165, 1913,  165,
3254       165,  165,  165,  165,  231,  231,  231,  232,  232,  232,
3255       235,  235,  235, 1915,  236,  236,  236,  239,  239,  239,
3256       231, 1916, 1918,  232, 1920, 1923,  235, 1924,  165,  165,
3257       236, 1926,  165,  239,  976,  976,  976, 1927, 1928,  165,
3258      1930, 1936,  165,  166,  166,  166,  166,  166,  166,  166,
3259       166,  166,  166,  166,  166,  166,  166,  166, 1937,  166,
3260       166,  166,  166,  166,  240,  240,  240,  241,  241,  241,
3261       242,  242,  242, 1925,  243,  243,  243,  244,  244,  244,
3262
3263       240, 1925, 1939,  241, 1938, 1942,  242, 1958,  166,  166,
3264       243, 1959,  166,  244,  985,  985,  985, 1966,  976,  166,
3265      1938, 1967,  166,  169,  169,  169,  169,  169,  169,  169,
3266       169,  169,  169,  169,  169,  169,  169,  169, 1968,  169,
3267       169,  169,  169,  169,  245,  245,  245,  246,  246,  246,
3268       249,  249,  249, 1929,  250,  250,  250,  756,  756,  756,
3269       245, 1929, 1972,  246, 1943, 1944,  249,  358,  169,  169,
3270       250, 1974,  169,  292,  756, 1980, 1981,  358,  985,  169,
3271      1943, 1944,  169,  292, 1982, 1989,  364, 1990, 1991,  169,
3272       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3273
3274       170,  170,  170,  170,  170,  358,  170,  170,  170,  170,
3275       170, 2004,  292, 2010,  364,  761,  761,  761,  292,  358,
3276       773,  773,  773,  358, 2014,  292,  786,  786,  786,  292,
3277       364, 2017,  761, 2019, 2022,  170,  170,  773, 2024,  170,
3278       992,  992,  992,  786,  992, 2026,  170,  992, 2027,  170,
3279      1489, 1489, 1489, 1491, 1491, 1491,  170,  179,  179,  179,
3280       179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
3281       179,  179, 2028,  179,  179,  179,  179,  179,  787,  787,
3282       787,  793,  793,  793,  795,  795,  795,  809,  809,  809,
3283       810,  810,  810, 2031, 2033,  787, 1489, 2038,  793, 1491,
3284
3285      2040,  795,  179,  179,  809, 2048, 2049,  810,  179,  999,
3286       999,  999, 2050,  999, 2051, 2053,  999, 1494, 1494, 1494,
3287      1497, 1497, 1497,  179,  180,  180,  180,  180,  180,  180,
3288       180,  180,  180,  180,  180,  180,  180,  180,  180, 2067,
3289       180,  180,  180,  180,  180,  822,  822,  822,  830,  830,
3290       830,  835,  835,  835,  841,  841,  841,  863,  863,  863,
3291      2064, 2072,  822, 2073, 2074,  830, 2064, 2075,  835,  180,
3292       180,  841, 2079, 2066,  863,  180, 1004, 1004, 1004, 2081,
3293      1004, 2082, 2083, 1004, 1507, 1507, 1507, 1543, 1543, 1543,
3294       180,  189,  189,  189,  189,  189,  189,  189,  189,  189,
3295
3296       189,  189,  189,  189,  189,  189, 2088,  189,  189,  189,
3297       189,  189,  891,  891,  891,  895,  895,  895, 2065, 2066,
3298       913,  913,  913,  914,  914,  914,  945,  945,  945,  891,
3299      2095, 2097,  895,  946,  946,  946,  189,  189,  913, 2098,
3300      2101,  914,  189, 2104,  945,  189, 1016, 1016, 1016, 2065,
3301      1016,  946, 2108, 1016, 1546, 1546, 1546,  189,  190,  190,
3302       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
3303       190,  190,  190, 2109,  190,  190,  190,  190,  190, 2110,
3304      2111,  914,  948,  948,  948, 2112, 2113,  952,  952,  952,
3305       953,  953,  953,  946,  956,  956,  956, 2114, 2115,  948,
3306
3307       958,  958,  958,  190,  190,  952, 2116, 2117,  953,  190,
3308      2122,  956,  190, 2123, 1029, 1029, 1029,  958, 1029, 2124,
3309      2125, 1029, 2143, 2144,  190,  199,  199,  199,  199,  199,
3310       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3311      2150,  199,  199,  199,  199,  199,  960,  960,  960,  964,
3312       964,  964, 2151, 2153,  953, 2157,  965,  965,  965,  969,
3313       969,  969, 2158,  960, 1544, 1544, 1544,  964, 2159, 2165,
3314       199,  199, 2166, 2167,  965, 2181,  199,  969, 1698, 1698,
3315      1698,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3316       200,  200,  200,  200,  200,  200,  200, 2185,  200,  200,
3317
3318       200,  200,  200,  965,  970,  970,  970,  971,  971,  971,
3319      1544,  974,  974,  974,  991,  991,  991,  975,  975,  975,
3320      1743, 2186,  970, 2187,  971, 2189, 1743,  200,  200,  974,
3321      1743,  991, 2193,  200, 1743,  975, 2196, 2197,  200,  203,
3322       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3323       203,  203,  203,  203,  975,  203,  203,  203,  203,  203,
3324       995,  995,  995,  996,  996,  996, 1744, 2200,  970,  998,
3325       998,  998, 1744, 1001, 1001, 1001, 1744, 2201,  995, 2204,
3326      1744,  996, 2211, 2213,  203,  203,  998, 1003, 1003, 1003,
3327       203, 1001, 1031, 1031, 1031, 2228, 1031, 2242, 2243, 1031,
3328
3329      2246, 1545, 1545, 1545, 1003,  203,  204,  204,  204,  204,
3330       204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
3331       204, 2253,  204,  204,  204,  204,  204, 2254, 2232,  996,
3332      1002, 1002, 1002, 2259, 2261, 1006, 1006, 1006, 1007, 1007,
3333      1007, 1010, 1010, 1010, 1011, 1011, 1011, 1545, 1002, 2273,
3334      2148,  204,  204, 1006, 2274, 2275, 1007,  204, 2148, 1010,
3335      2149, 2198, 1011, 1037, 1037, 1037, 2276, 1037, 2149, 2198,
3336      1037, 2232,  204,  213,  213,  213,  213,  213,  213,  213,
3337       213,  213,  213,  213,  213,  213,  213,  213, 2233,  213,
3338       213,  213,  213,  213, 2277, 2278, 1002, 2279, 2280, 1007,
3339
3340      1015, 1015, 1015, 1020, 1020, 1020, 1028, 1028, 1028, 1011,
3341      1021, 1021, 1021, 1025, 1025, 1025, 2281, 1015,  213,  213,
3342      2282, 1020, 2199, 1028,  213, 2289, 2290,  213, 1021, 2291,
3343      2199, 1025, 1701, 1701, 1701, 2233, 1639, 1639, 1639,  213,
3344       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3345       214,  214,  214,  214,  214, 2293,  214,  214,  214,  214,
3346       214, 1030, 1030, 1030, 2303, 2304, 1026, 1026, 1026, 2305,
3347      2306, 1021, 1032, 1032, 1032, 1033, 1033, 1033, 1030, 1036,
3348      1036, 1036, 1639, 2307, 1026,  214,  214, 1039, 1039, 1039,
3349      1032,  214, 2308, 1033,  214, 2309, 1036, 2312, 1040, 1040,
3350
3351      1040, 2313, 1040, 2314, 1039, 1040,  214,  223,  223,  223,
3352       223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
3353       223,  223, 2320,  223,  223,  223,  223,  223, 1026, 1041,
3354      1041, 1041, 1051, 1051, 1051, 2321, 1033, 1052, 1052, 1052,
3355      1053, 1053, 1053, 1062, 1062, 1062, 1041, 1054, 1054, 1054,
3356      1051, 1054,  223,  223, 1054, 1052, 2327, 1053, 2328, 2329,
3357       223, 1062,  223, 2330, 2344,  223, 1703, 1703, 1703,  223,
3358      1705, 1705, 1705,  223,  224,  224,  224,  224,  224,  224,
3359       224,  224,  224,  224,  224,  224,  224,  224,  224, 2345,
3360       224,  224,  224,  224,  224, 1052, 1055, 1055, 1055, 1056,
3361
3362      1056, 1056, 2346, 1056, 2347, 2349, 1056, 1057, 1057, 1057,
3363      1072, 1072, 1072, 1055, 1058, 1058, 1058, 2351, 2374,  224,
3364       224, 1059, 1059, 1059, 1057, 2375, 2380,  224, 1072,  224,
3365      2381, 1058,  224, 1708, 1708, 1708,  224, 2382, 1059, 2385,
3366       224,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3367       233,  233,  233,  233,  233,  233, 2369,  233,  233,  233,
3368       233,  233, 1063, 1063, 1063, 1058, 1067, 1067, 1067, 1718,
3369      1718, 1718, 2315, 1059, 1061, 1061, 1061, 1060, 1060, 1060,
3370      1063, 2388, 2315, 1067, 2389, 2390,  233,  233, 1068, 1068,
3371      1068, 1061, 1068, 2369, 1060, 1068, 1076, 1076, 1076, 2391,
3372
3373      1076, 2392, 2393, 1076, 2394, 1710, 1710, 1710, 2395, 1063,
3374       233,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3375       234,  234,  234,  234,  234,  234, 1061,  234,  234,  234,
3376       234,  234, 1060, 1069, 1069, 1069, 1075, 1075, 1075, 2396,
3377      1077, 1077, 1077, 2368, 2397, 1073, 1073, 1073, 2398, 2400,
3378      1069, 2401, 2403, 1075, 2404, 2405,  234,  234, 1077, 1078,
3379      1078, 1078, 2406, 1073, 1081, 1081, 1081, 2408, 1081, 1710,
3380      2409, 1081, 1087, 1087, 1087, 2368, 1087, 1078, 2411, 1087,
3381       234,  237,  237,  237,  237,  237,  237,  237,  237,  237,
3382       237,  237,  237,  237,  237,  237, 1073,  237,  237,  237,
3383
3384       237,  237, 1080, 1080, 1080, 1083, 1083, 1083, 1086, 1086,
3385      1086, 2412, 1084, 1084, 1084, 1091, 1091, 1091, 2414, 1080,
3386      1078, 2419, 2402, 1083, 2420, 1086,  237,  237, 2421, 2423,
3387      1084, 2402, 2428, 1091, 1712, 1712, 1712,  237,  238,  238,
3388       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3389       238,  238,  238, 2429,  238,  238,  238,  238,  238, 1084,
3390      2430, 1092, 1092, 1092, 1093, 1093, 1093, 2431, 1094, 1094,
3391      1094, 1095, 1095, 1095, 1096, 1096, 1096, 2407, 2432, 1092,
3392      1712, 1093, 2435,  238,  238, 1094, 2407, 2441, 1095, 1752,
3393      1752, 1752, 1096, 2442,  238,  247,  247,  247,  247,  247,
3394
3395       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
3396      2444,  247,  247,  247,  247,  247, 1092, 2453, 2455, 1097,
3397      1097, 1097, 1099, 1099, 1099, 1754, 1754, 1754, 2458, 2460,
3398      1095, 1101, 1101, 1101, 1103, 1103, 1103, 1097, 2484, 1099,
3399       247,  247, 1100, 1100, 1100, 1102, 1102, 1102, 1101, 2480,
3400      2479,  247, 1103, 1107, 1107, 1107, 2485, 1107, 2487, 1100,
3401      1107, 2488, 1102, 2481,  247,  248,  248,  248,  248,  248,
3402       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
3403      1097,  248,  248,  248,  248,  248, 2480, 1104, 1104, 1104,
3404      2479, 2489, 1100, 2494, 2495, 1106, 1106, 1106, 1108, 1108,
3405
3406      1108, 1109, 1109, 1109, 1102, 1104, 2481, 1100, 2496, 2497,
3407       248,  248, 1106, 1110, 1110, 1110, 1108, 2498, 2499, 1109,
3408      2500,  248, 2501, 2502, 1104, 2503, 1111, 1111, 1111, 2504,
3409      1110, 1112, 1112, 1112,  248,  290, 1113, 1113, 1113, 1117,
3410      1117, 1117,  290, 1111, 1114, 1114, 1114, 2506, 2507, 1112,
3411      2508,  290,  290, 2509, 1113, 2510, 1109, 1117, 1115, 1115,
3412      1115, 1114, 1755, 1755, 1755, 1116, 1116, 1116, 2511, 2512,
3413      1118, 1118, 1118, 2513, 2514, 1115, 1130, 1130, 1130,  290,
3414       290,  290, 1116, 2515, 2516,  290,  290,  290, 1118, 2517,
3415       290,  290, 2518, 1130,  290, 2519,  290,  290,  290,  355,
3416
3417      1124, 1124, 1124, 1125, 1125, 1125,  355, 1113, 1115, 1128,
3418      1128, 1128, 1129, 1129, 1129,  355,  355, 2521, 1124, 2492,
3419      2525, 1125, 2532, 1115, 1131, 1131, 1131, 1128, 1131, 2492,
3420      1129, 1131, 2492, 2533, 1132, 1132, 1132, 2534, 1133, 1133,
3421      1133, 1118, 2536,  355,  355,  355, 1134, 1134, 1134,  355,
3422       355,  355, 1132, 2540,  355,  355, 1133, 2543,  355, 2566,
3423       355,  355,  355, 1134, 1135, 1135, 1135, 1125, 1135, 2566,
3424      2584, 1135, 1137, 1137, 1137, 2566, 1129, 1138, 1138, 1138,
3425      1153, 1153, 1153, 1154, 1154, 1154, 1156, 1156, 1156, 2582,
3426      1137, 1187, 1187, 1187, 2586, 1138, 2587, 2581, 1153, 1133,
3427
3428      2588, 1154, 2591, 2592, 1156, 1188, 1188, 1188, 1187, 1189,
3429      1189, 1189, 1191, 1191, 1191, 1192, 1192, 1192, 1193, 1193,
3430      1193, 2594, 1193, 1188, 2595, 1193, 2581, 1189, 2597, 2583,
3431      1191, 2582, 1192, 1156, 1196, 1196, 1196, 1198, 1198, 1198,
3432      2598, 1138, 1199, 1199, 1199, 1201, 1201, 1201, 1206, 1206,
3433      1206, 1196, 1203, 1203, 1203, 1198, 1203, 2599, 2600, 1203,
3434      1199, 1191, 2601, 1201, 2603, 1206, 1207, 1207, 1207, 2604,
3435      1207, 2583, 2593, 1207, 1208, 1208, 1208, 1209, 1209, 1209,
3436      1210, 1210, 1210, 2605, 1210, 2593, 2606, 1210, 1212, 1212,
3437      1212, 1208, 1201, 2609, 1209, 1196, 1214, 1214, 1214, 1215,
3438
3439      1215, 1215, 1217, 1217, 1217, 1212, 1219, 1219, 1219, 1221,
3440      1221, 1221, 2610, 2611, 1214, 2612, 2613, 1215, 2614, 2615,
3441      1217, 2596, 2616, 1219, 1222, 1222, 1222, 1221, 1224, 1224,
3442      1224, 1225, 1225, 1225, 2596, 1225, 2617, 2618, 1225, 1229,
3443      1229, 1229, 1222, 1230, 1230, 1230, 1224, 1232, 1232, 1232,
3444      2493, 1247, 1247, 1247, 2619, 1247, 2620, 1229, 1247, 2621,
3445      2493, 1230, 1217, 2493, 2623, 1232, 1251, 1251, 1251, 1252,
3446      1252, 1252, 1253, 1253, 1253, 1224, 1255, 1255, 1255, 1261,
3447      1261, 1261, 2633, 1251, 1257, 1257, 1257, 1252, 1257, 2634,
3448      1253, 1257, 2639, 2643, 1255, 2661, 2662, 1261, 1262, 1262,
3449
3450      1262, 1264, 1264, 1264, 1265, 1265, 1265, 2663, 1265, 2664,
3451      2665, 1265, 1268, 1268, 1268, 2666, 1262, 2678, 2681, 1264,
3452      1269, 1269, 1269, 1270, 1270, 1270, 1272, 1272, 1272, 1268,
3453      1273, 1273, 1273, 1274, 1274, 1274, 2670, 1255, 1269, 2676,
3454      2682, 1270, 2686, 2687, 1272, 2688, 2689, 1273, 2690, 2670,
3455      1274, 1275, 1275, 1275, 1276, 1276, 1276, 1278, 1278, 1278,
3456      2691, 1274, 1264, 1281, 1281, 1281, 1282, 1282, 1282, 1275,
3457      1282, 2675, 1276, 1282, 2676, 1278, 1288, 1288, 1288, 2692,
3458      1281, 1289, 1289, 1289, 1291, 1291, 1291, 1294, 1294, 1294,
3459      1295, 1295, 1295, 1272, 1288, 1296, 1296, 1296, 2693, 1289,
3460
3461      2695, 2696, 1291, 2697, 1294, 1299, 1299, 1299, 1295, 1298,
3462      1298, 1298, 2698, 1296, 1300, 1300, 1300, 2671, 1300, 2675,
3463      2699, 1300, 1299, 1278, 1303, 1303, 1303, 1298, 1303, 2700,
3464      2671, 1303, 1306, 1306, 1306, 1307, 1307, 1307, 1309, 1309,
3465      1309, 1314, 1314, 1314, 2701, 1314, 2702, 2704, 1314, 1291,
3466      1306, 2705, 2706, 1307, 2707, 2708, 1309, 1317, 1317, 1317,
3467      1318, 1318, 1318, 2709, 1318, 2710, 2711, 1318, 1321, 1321,
3468      1321, 1322, 1322, 1322, 1317, 1322, 1298, 2712, 1322, 1332,
3469      1332, 1332, 1333, 1333, 1333, 1321, 1335, 1335, 1335, 1336,
3470      1336, 1336, 2567, 1336, 2713, 2714, 1336, 1332, 2715, 2716,
3471
3472      1333, 2722, 2567, 1309, 1335, 1339, 1339, 1339, 2567, 1339,
3473      2726, 2727, 1339, 1342, 1342, 1342, 1343, 1343, 1343, 2735,
3474      1343, 2736, 2753, 1343, 1348, 1348, 1348, 1349, 1349, 1349,
3475      1342, 1351, 1351, 1351, 1356, 1356, 1356, 2754, 1356, 2755,
3476      2756, 1356, 1348, 2757, 2758, 1349, 1359, 1359, 1359, 1351,
3477      1360, 1360, 1360, 1335, 1360, 2761, 2762, 1360, 1363, 1363,
3478      1363, 2763, 2764, 1359, 1364, 1364, 1364, 1366, 1366, 1366,
3479      1368, 1368, 1368, 2748, 1368, 2765, 1363, 1368, 2773, 1351,
3480      2774, 2775, 1364, 2748, 2776, 1366, 1371, 1371, 1371, 1372,
3481      1372, 1372, 1374, 1374, 1374, 1376, 1376, 1376, 2749, 1376,
3482
3483      2777, 2778, 1376, 2779, 1371, 2780, 2783, 1372, 2749, 2765,
3484      1374, 1380, 1380, 1380, 1381, 1381, 1381, 2784, 1366, 1383,
3485      1383, 1383, 2786, 1385, 1385, 1385, 2751, 1385, 2787, 1380,
3486      1385, 2752, 1381, 1391, 1391, 1391, 2751, 1383, 1392, 1392,
3487      1392, 2752, 1394, 1394, 1394, 1395, 1395, 1395, 1396, 1396,
3488      1396, 1391, 1396, 2788, 2790, 1396, 1392, 2792, 2793, 1374,
3489      1394, 2794, 1395, 1397, 1397, 1397, 2797, 2798, 1383, 1398,
3490      1398, 1398, 2799, 1398, 2800, 2803, 1398, 1400, 1400, 1400,
3491      1397, 1401, 1401, 1401, 2810, 1403, 1403, 1403, 1405, 1405,
3492      1405, 2811, 1409, 1409, 1409, 1400, 1720, 1720, 1720, 1401,
3493
3494      2812, 2820, 1394, 1403, 2826, 1405, 1406, 1406, 1406, 1409,
3495      1406, 2827, 2828, 1406, 1410, 1410, 1410, 2829, 1410, 2830,
3496      2831, 1410, 1412, 1412, 1412, 1413, 1413, 1413, 1415, 1415,
3497      1415, 1417, 1417, 1417, 2832, 1417, 2833, 2834, 1417, 2835,
3498      1412, 2837, 1720, 1413, 2838, 2843, 1415, 1420, 1420, 1420,
3499      2844, 2845, 1403, 1421, 1421, 1421, 1423, 1423, 1423, 1424,
3500      1424, 1424, 1425, 1425, 1425, 1420, 1425, 2846, 2856, 1425,
3501      2857, 1421, 2847, 2858, 1423, 2859, 1424, 1426, 1426, 1426,
3502      1427, 1427, 1427, 2860, 1427, 2861, 2862, 1427, 1428, 1428,
3503      1428, 2863, 1415, 2867, 1426, 1429, 1429, 1429, 2868, 1431,
3504
3505      1431, 1431, 1432, 1432, 1432, 2869, 1428, 1433, 1433, 1433,
3506      2870, 1433, 2871, 1429, 1433, 2847, 1423, 1431, 2872, 1432,
3507      1436, 1436, 1436, 1437, 1437, 1437, 2874, 1437, 2875, 2877,
3508      1437, 1438, 1438, 1438, 1439, 1439, 1439, 1436, 1441, 1441,
3509      1441, 1443, 1443, 1443, 1447, 1447, 1447, 2878, 2879, 1438,
3510      2881, 2885, 1439, 1448, 1448, 1448, 1441, 2886, 1443, 2887,
3511      2890, 1431, 1447, 1450, 1450, 1450, 1453, 1453, 1453, 2895,
3512      2896, 1448, 1454, 1454, 1454, 1456, 1456, 1456, 1457, 1457,
3513      1457, 1450, 1457, 2897, 1453, 1457, 1460, 1460, 1460, 2898,
3514      1454, 2899, 2900, 1456, 1461, 1461, 1461, 1463, 1463, 1463,
3515
3516      1441, 1464, 1464, 1464, 1460, 1464, 2901, 2902, 1464, 1468,
3517      1468, 1468, 1461, 2903, 2904, 1463, 1469, 1469, 1469, 1471,
3518      1471, 1471, 2905, 2906, 1450, 2908, 2909, 1468, 1456, 1473,
3519      1473, 1473, 2910, 2911, 1469, 2918, 2921, 1471, 1480, 1480,
3520      1480, 1510, 1510, 1510, 1512, 1512, 1512, 1473, 1473, 2912,
3521      1513, 1513, 1513, 1538, 1538, 1538, 1480, 1463, 1510, 1511,
3522      1511, 1511, 1512, 1511, 2922, 2914, 1511, 1513, 1514, 1514,
3523      1514, 1538, 1514, 2915, 2925, 1514, 1517, 1517, 1517, 2914,
3524      1471, 1519, 1519, 1519, 2915, 1519, 2927, 2928, 1519, 1522,
3525      1522, 1522, 2930, 2931, 1517, 2912, 1523, 1523, 1523, 2934,
3526
3527      1523, 2935, 1512, 1523, 1480, 2936, 1522, 1524, 1524, 1524,
3528      2937, 1524, 2938, 2939, 1524, 1528, 1528, 1528, 2940, 1529,
3529      1529, 1529, 2941, 1529, 2942, 1517, 1529, 1531, 1531, 1531,
3530      2944, 2946, 1528, 1533, 1533, 1533, 1534, 1534, 1534, 2954,
3531      1534, 2956, 2944, 1534, 2958, 1531, 1535, 1535, 1535, 2960,
3532      1533, 1536, 1536, 1536, 1554, 1554, 1554, 1555, 1555, 1555,
3533      1556, 1556, 1556, 1535, 1556, 2968, 2970, 1556, 2974, 1536,
3534      2971, 1554, 2973, 2973, 1555, 2976, 2972, 1531, 1557, 1557,
3535      1557, 1560, 1560, 1560, 1561, 1561, 1561, 1562, 1562, 1562,
3536      2972, 1562, 2978, 2979, 1562, 2980, 1557, 2981, 2990, 1560,
3537
3538      1536, 1561, 1563, 1563, 1563, 1564, 1564, 1564, 1565, 1565,
3539      1565, 2971, 1565, 2990, 2996, 1565, 1567, 1567, 1567, 2945,
3540      1563, 2987, 1564, 1570, 1570, 1570, 1571, 1571, 1571, 2951,
3541      1571, 2945, 2952, 1571, 1567, 1572, 1572, 1572, 2998, 2987,
3542      1570, 2951, 1557, 3001, 2952, 1560, 1574, 1574, 1574, 1575,
3543      1575, 1575, 1572, 1578, 1578, 1578, 3003, 1579, 1579, 1579,
3544      3008, 1579, 1563, 1574, 1579, 2995, 3009, 1575, 3011, 3012,
3545      1578, 1580, 1580, 1580, 1581, 1581, 1581, 1567, 1582, 1582,
3546      1582, 3013, 1582, 2997, 2995, 1582, 1583, 1583, 1583, 1580,
3547      3015, 1581, 1574, 1585, 1585, 1585, 1588, 1588, 1588, 1589,
3548
3549      1589, 1589, 2997, 1589, 1583, 3016, 1589, 1590, 1590, 1590,
3550      1585, 1590, 3017, 1588, 1590, 1575, 1595, 1595, 1595, 1602,
3551      1602, 1602, 1603, 1603, 1603, 3018, 1603, 3020, 3022, 1603,
3552      1606, 1606, 1606, 1595, 1607, 1607, 1607, 1602, 1608, 1608,
3553      1608, 1609, 1609, 1609, 1610, 1610, 1610, 1606, 1612, 1612,
3554      1612, 1607, 1583, 2975, 3029, 1608, 3030, 3031, 1609, 1615,
3555      1615, 1615, 1610, 1615, 2975, 1612, 1615, 3032, 3033, 1618,
3556      1618, 1618, 1620, 1620, 1620, 1622, 1622, 1622, 1625, 1625,
3557      1625, 1629, 1629, 1629, 1602, 1608, 1618, 1630, 1630, 1630,
3558      1620, 3034, 3037, 1622, 3038, 3039, 1625, 3040, 1629, 1610,
3559
3560      3041, 1638, 1638, 1638, 1607, 1630, 1631, 1631, 1631, 3000,
3561      1631, 1609, 3042, 1631, 1634, 1634, 1634, 3043, 1634, 1638,
3562      3044, 1634, 1640, 1640, 1640, 3046, 1640, 1629, 3000, 1640,
3563      1645, 1645, 1645, 3048, 1645, 1625, 1620, 1645, 1649, 1649,
3564      1649, 1622, 3050, 3002, 1630, 1651, 1651, 1651, 1652, 1652,
3565      1652, 3051, 1652, 3052, 3060, 1652, 1649, 1655, 1655, 1655,
3566      3062, 1655, 3002, 1651, 1655, 3061, 3060, 1638, 1658, 1658,
3567      1658, 1659, 1659, 1659, 3063, 1659, 3064, 3061, 1659, 3065,
3568      1664, 1664, 1664, 3066, 1664, 3067, 1658, 1664, 1667, 1667,
3569      1667, 1669, 1669, 1669, 1670, 1670, 1670, 3071, 1670, 1649,
3570
3571      3072, 1670, 1651, 1674, 1674, 1674, 1667, 3073, 1669, 1676,
3572      1676, 1676, 1677, 1677, 1677, 1658, 1678, 1678, 1678, 3074,
3573      3075, 1674, 1679, 1679, 1679, 3076, 1676, 1680, 1680, 1680,
3574      1677, 1683, 1683, 1683, 1678, 1667, 1690, 1690, 1690, 1679,
3575      1721, 1721, 1721, 3077, 1721, 1680, 3078, 1721, 3081, 1683,
3576      3082, 3083, 1674, 3084, 1690, 1724, 1724, 1724, 1725, 1725,
3577      1725, 3079, 1725, 3085, 3086, 1725, 3087, 3088, 1678, 1730,
3578      1730, 1730, 3089, 1724, 1732, 1732, 1732, 3090, 1732, 1677,
3579      3091, 1732, 1683, 1740, 1740, 1740, 3079, 1730, 1690, 1680,
3580      1736, 1736, 1736, 3092, 1736, 3093, 3094, 1736, 3095, 1683,
3581
3582      3096, 1740, 1742, 1742, 1742, 3097, 1742, 3098, 3099, 1742,
3583      1745, 1745, 1745, 3100, 1746, 1746, 1746, 3106, 1746, 3107,
3584      1730, 1746, 1724, 1747, 1747, 1747, 3108, 1745, 1756, 1756,
3585      1756, 1760, 1760, 1760, 1761, 1761, 1761, 1763, 1763, 1763,
3586      3109, 1747, 3103, 3110, 1740, 1764, 1764, 1764, 3111, 1764,
3587      3112, 3113, 1764, 3114, 1763, 1765, 1765, 1765, 3115, 1765,
3588      3116, 3103, 1765, 1768, 1768, 1768, 1770, 1770, 1770, 1771,
3589      1771, 1771, 3117, 3118, 1747, 1772, 1772, 1772, 3119, 1772,
3590      3120, 1768, 1772, 1770, 1775, 1775, 1775, 1771, 3121, 1776,
3591      1776, 1776, 1756, 1776, 3122, 1760, 1776, 3123, 1761, 1780,
3592
3593      1780, 1780, 1775, 1779, 1779, 1779, 3125, 1783, 1783, 1783,
3594      1768, 1783, 3126, 3127, 1783, 3128, 1771, 1780, 3129, 3130,
3595      1779, 1786, 1786, 1786, 1787, 1787, 1787, 3124, 1787, 3131,
3596      3132, 1787, 1788, 1788, 1788, 1789, 1789, 1789, 1786, 1790,
3597      1790, 1790, 3133, 1790, 3134, 3135, 1790, 3124, 3136, 1788,
3598      1775, 3137, 1789, 1792, 1792, 1792, 1793, 1793, 1793, 3138,
3599      1795, 1795, 1795, 1780, 1795, 3139, 3140, 1795, 1798, 1798,
3600      1798, 1792, 1800, 1800, 1800, 3141, 1800, 3142, 3146, 1800,
3601      1803, 1803, 1803, 1805, 1805, 1805, 1798, 1806, 1806, 1806,
3602      3147, 1806, 3148, 3143, 1806, 1807, 1807, 1807, 1803, 3143,
3603
3604      1805, 1809, 1809, 1809, 3149, 1809, 3150, 3151, 1809, 1892,
3605      1892, 1892, 1807, 1814, 1814, 1814, 1815, 1815, 1815, 3153,
3606      1815, 3154, 3156, 1815, 3157, 3159, 1803, 1816, 1816, 1816,
3607      1814, 1821, 1821, 1821, 1822, 1822, 1822, 1823, 1823, 1823,
3608      1825, 1825, 1825, 3160, 1816, 1826, 1826, 1826, 1821, 1824,
3609      1824, 1824, 1822, 1824, 1823, 3163, 1824, 1825, 1827, 1827,
3610      1827, 3164, 1826, 1828, 1828, 1828, 1830, 1830, 1830, 1831,
3611      1831, 1831, 3165, 1831, 3166, 1827, 1831, 1832, 1832, 1832,
3612      3168, 1828, 3170, 1830, 1834, 1834, 1834, 3172, 1835, 1835,
3613      1835, 3174, 1835, 3162, 1832, 1835, 1837, 1837, 1837, 3176,
3614
3615      1822, 1834, 3177, 1826, 1839, 1839, 1839, 3162, 1842, 1842,
3616      1842, 1846, 1846, 1846, 1837, 3178, 3179, 1847, 1847, 1847,
3617      3180, 1847, 1839, 1828, 1847, 3181, 1842, 3182, 1846, 1849,
3618      1849, 1849, 1851, 1851, 1851, 1853, 1853, 1853, 3183, 3185,
3619      1854, 1854, 1854, 1855, 1855, 1855, 3187, 1849, 3189, 3190,
3620      1851, 3191, 1853, 3192, 3207, 1839, 1842, 1854, 3207, 1515,
3621      1855, 1856, 1856, 1856, 1858, 1858, 1858, 1859, 1859, 1859,
3622      1860, 1860, 1860, 1861, 1861, 1861, 1862, 1862, 1862, 1856,
3623      3208, 3209, 1858, 1851, 3208, 1859, 1509, 1860, 3193, 3209,
3624      1861, 1864, 1864, 1864, 1862, 1864, 3201, 3245, 1864, 1870,
3625
3626      1870, 1870, 1872, 1872, 1872, 2285, 2285, 1855, 2285, 3194,
3627      1858, 1873, 1873, 1873, 1508, 1873, 2285, 1870, 1873, 1872,
3628      1874, 1874, 1874, 2285, 3193, 1875, 1875, 1875, 1856, 1876,
3629      1876, 1876, 1859, 1877, 1877, 1877, 1506, 1877, 1874, 3245,
3630      1877, 1862, 1505, 1875, 3201, 3194, 1876, 1878, 1878, 1878,
3631      1870, 1884, 1884, 1884, 1885, 1885, 1885, 1896, 1896, 1896,
3632      1900, 1900, 1900, 3213, 1504, 1878, 3202, 1503, 1884, 1901,
3633      1901, 1901, 1885, 1902, 1902, 1902, 1904, 1904, 1904, 1874,
3634      1875, 1906, 1906, 1906, 1907, 1907, 1907, 1912, 1912, 1912,
3635      1914, 1914, 1914, 1917, 1917, 1917, 1919, 1919, 1919, 1921,
3636
3637      1921, 1921, 1922, 1922, 1922, 1931, 1931, 1931, 1914, 1931,
3638      3213, 1917, 1931, 1919, 3202, 1885, 3217, 1921, 3205, 1922,
3639      1934, 1934, 1934, 3283, 1935, 1935, 1935, 1940, 1940, 1940,
3640      1941, 1941, 1941, 1945, 1945, 1945, 3284, 3283, 1934, 3203,
3641      1914, 1935, 1946, 1946, 1946, 3206, 1946, 3284, 3204, 1946,
3642      1945, 1949, 1949, 1949, 1950, 1950, 1950, 3217, 1921, 1951,
3643      1951, 1951, 3205, 1952, 1952, 1952, 1934, 1952, 3219, 1949,
3644      1952, 1950, 1953, 1953, 1953, 3210, 1951, 1954, 1954, 1954,
3645      1955, 1955, 1955, 3210, 1956, 1956, 1956, 3203, 1956, 3206,
3646      1953, 1956, 1957, 1957, 1957, 1954, 3204, 1955, 1960, 1960,
3647
3648      1960, 3211, 1960, 3219, 1949, 1960, 1963, 1963, 1963, 3211,
3649      1957, 1964, 1964, 1964, 3214, 1964, 1502, 3218, 1964, 3215,
3650      1965, 1965, 1965, 1963, 1965, 1953, 1501, 1965, 1969, 1969,
3651      1969, 1971, 1971, 1971, 1973, 1973, 1973, 3212, 1500, 1957,
3652      1975, 1975, 1975, 3220, 1975, 3212, 1969, 1975, 1978, 1978,
3653      1978, 3216, 1973, 1979, 1979, 1979, 3215, 1979, 3218, 3227,
3654      1979, 3214, 1983, 1983, 1983, 1978, 1983, 3225, 3227, 1983,
3655      1986, 1986, 1986, 1987, 1987, 1987, 3221, 1987, 3220, 3223,
3656      1987, 1988, 1988, 1988, 1992, 1992, 1992, 1986, 3216, 1993,
3657      1993, 1993, 1973, 1993, 3222, 3239, 1993, 3226, 1988, 3225,
3658
3659      3224, 1992, 1994, 1994, 1994, 1995, 1995, 1995, 3265, 1995,
3660      3235, 1499, 1995, 1998, 1998, 1998, 3223, 1999, 1999, 1999,
3661      1994, 1999, 3221, 1498, 1999, 2000, 2000, 2000, 3239, 3226,
3662      1998, 2001, 2001, 2001, 2002, 2002, 2002, 3224, 2002, 3251,
3663      3222, 2002, 2000, 2003, 2003, 2003, 3228, 1496, 2001, 3265,
3664      2005, 2005, 2005, 1994, 2005, 3228, 3235, 2005, 2008, 2008,
3665      2008, 2003, 2009, 2009, 2009, 3229, 2009, 1495, 3251, 2009,
3666      2011, 2011, 2011, 3230, 2011, 2008, 3236, 2011, 2015, 2015,
3667      2015, 2018, 2018, 2018, 2020, 2020, 2020, 2021, 2021, 2021,
3668      2023, 2023, 2023, 3231, 2003, 3232, 2015, 3240, 3279, 2018,
3669
3670      3229, 2020, 2025, 2025, 2025, 2021, 2025, 2023, 3230, 2025,
3671      2029, 2029, 2029, 2032, 2032, 2032, 2034, 2034, 2034, 2035,
3672      2035, 2035, 3236, 2035, 3252, 1493, 2035, 3231, 2029, 3232,
3673      3240, 2032, 3233, 2034, 3234, 3237, 2023, 2036, 2036, 2036,
3674      2037, 2037, 2037, 3246, 2037, 2018, 3279, 2037, 2021, 2039,
3675      2039, 2039, 3238, 3252, 2036, 2041, 2041, 2041, 2042, 2042,
3676      2042, 2043, 2043, 2043, 2044, 2044, 2044, 2039, 2044, 3243,
3677      3237, 2044, 3244, 2041, 1492, 3233, 2042, 3234, 2043, 2045,
3678      2045, 2045, 2046, 2046, 2046, 3246, 2046, 3238, 3241, 2046,
3679      2047, 2047, 2047, 2052, 2052, 2052, 2045, 3241, 2054, 2054,
3680
3681      2054, 3242, 2054, 3266, 2041, 2054, 3243, 3247, 2047, 3244,
3682      3242, 2052, 2057, 2057, 2057, 2039, 2058, 2058, 2058, 3249,
3683      2059, 2059, 2059, 2042, 2059, 3250, 1490, 2059, 1487, 1486,
3684      2057, 2062, 2062, 2062, 2058, 2068, 2068, 2068, 2069, 2069,
3685      2069, 3253, 2069, 3259, 3266, 2069, 2070, 2070, 2070, 2062,
3686      3253, 3259, 2068, 3247, 1485, 2047, 3249, 1484, 2052, 2071,
3687      2071, 2071, 3250, 2057, 2070, 2076, 2076, 2076, 1483, 2058,
3688      2077, 2077, 2077, 2078, 2078, 2078, 2080, 2080, 2080, 2084,
3689      2084, 2084, 2085, 2085, 2085, 2086, 2086, 2086, 2087, 2087,
3690      2087, 2089, 2089, 2089, 2090, 2090, 2090, 2091, 2091, 2091,
3691
3692      2092, 2092, 2092, 2093, 2093, 2093, 2094, 2094, 2094, 3248,
3693      2070, 2096, 2096, 2096, 2099, 2099, 2099, 3254, 2102, 2102,
3694      2102, 2103, 2103, 2103, 3275, 2103, 3254, 3255, 2103, 2096,
3695      1482, 3267, 2099, 3275, 2087, 2102, 2105, 2105, 2105, 2106,
3696      2106, 2106, 2107, 2107, 2107, 1481, 2107, 1479, 1478, 2107,
3697      2118, 2118, 2118, 3256, 2105, 3248, 2106, 2119, 2119, 2119,
3698      3257, 3255, 2096, 2120, 2120, 2120, 3267, 2120, 2118, 3261,
3699      2120, 2121, 2121, 2121, 2119, 2126, 2126, 2126, 2127, 2127,
3700      2127, 2128, 2128, 2128, 2129, 2129, 2129, 3256, 2129, 3258,
3701      3262, 2129, 2130, 2130, 2130, 2131, 2131, 2131, 2128, 2118,
3702
3703      2132, 2132, 2132, 3260, 2132, 1477, 3257, 2132, 1476, 1467,
3704      2130, 3260, 2131, 2133, 2133, 2133, 3261, 2133, 3269, 3263,
3705      2133, 2136, 2136, 2136, 2127, 3264, 2137, 2137, 2137, 2139,
3706      2139, 2139, 3270, 2139, 1452, 3258, 2139, 3262, 1451, 2136,
3707      2142, 2142, 2142, 2130, 2137, 2145, 2145, 2145, 3280, 2145,
3708      3271, 3268, 2145, 2152, 2152, 2152, 3263, 3273, 2142, 2154,
3709      2154, 2154, 3264, 2154, 3269, 1446, 2154, 2163, 2163, 2163,
3710      3272, 2152, 2136, 2160, 2160, 2160, 1445, 2160, 3270, 1444,
3711      2160, 2164, 2164, 2164, 2163, 2164, 3268, 3271, 2164, 3273,
3712      2168, 2168, 2168, 2142, 2168, 1442, 3280, 2168, 2171, 2171,
3713
3714      2171, 1435, 2172, 2172, 2172, 3274, 2172, 3272, 2152, 2172,
3715      2175, 2175, 2175, 2176, 2176, 2176, 2171, 2176, 1434, 3277,
3716      2176, 2177, 2177, 2177, 3278, 2177, 3276, 2175, 2177, 2180,
3717      2180, 2180, 2182, 2182, 2182, 3276, 2182, 3274, 1416, 2182,
3718      2188, 2188, 2188, 2190, 2190, 2190, 1411, 2180, 2191, 2191,
3719      2191, 3277, 2191, 1408, 1407, 2191, 3278, 3281, 2188, 1404,
3720      2190, 1399, 2171, 2192, 2192, 2192, 2194, 2194, 2194, 2195,
3721      2195, 2195, 1390, 2195, 1389, 1388, 2195, 3282, 2202, 2202,
3722      2202, 2192, 1384, 2194, 2205, 2205, 2205, 1379, 2205, 3281,
3723      1375, 2205, 2212, 2212, 2212, 2180, 2202, 2208, 2208, 2208,
3724
3725      1367, 2208, 1362, 1361, 2208, 1355, 2214, 2214, 2214, 3282,
3726      2212, 2215, 2215, 2215, 2216, 2216, 2216, 1354, 2216, 1353,
3727      1352, 2216, 1347, 2192, 2214, 1346, 2219, 2219, 2219, 2215,
3728      2219, 1345, 1344, 2219, 2222, 2222, 2222, 1331, 2223, 2223,
3729      2223, 1330, 1329, 2212, 2224, 2224, 2224, 2215, 2225, 2225,
3730      2225, 1328, 2222, 1327, 2222, 2223, 2226, 2226, 2226, 1326,
3731      1325, 2224, 2227, 2227, 2227, 2225, 2229, 2229, 2229, 2230,
3732      2230, 2230, 2214, 2226, 2231, 2231, 2231, 2234, 2234, 2234,
3733      2227, 2235, 2235, 2235, 2229, 2235, 1324, 2230, 2235, 2238,
3734      2238, 2238, 2231, 1323, 1313, 2224, 2239, 2239, 2239, 2240,
3735
3736      2240, 2240, 2241, 2241, 2241, 1312, 1311, 2238, 2244, 2244,
3737      2244, 1310, 2225, 1293, 1292, 2226, 2245, 2245, 2245, 2247,
3738      2247, 2247, 2248, 2248, 2248, 1287, 2229, 2227, 2249, 2249,
3739      2249, 2250, 2250, 2250, 2251, 2251, 2251, 2252, 2252, 2252,
3740      2255, 2255, 2255, 2256, 2256, 2256, 1286, 1285, 2238, 2257,
3741      2257, 2257, 2258, 2258, 2258, 2260, 2260, 2260, 2263, 2263,
3742      2263, 2264, 2264, 2264, 1280, 2264, 1279, 1260, 2264, 2267,
3743      2267, 2267, 1256, 2260, 1250, 2263, 2268, 2268, 2268, 1246,
3744      2270, 2270, 2270, 1245, 2270, 1244, 2267, 2270, 2283, 2283,
3745      2283, 2284, 2284, 2284, 2268, 2284, 2286, 2286, 2284, 2286,
3746
3747      2287, 2287, 2287, 2288, 2288, 2288, 2283, 2286, 2292, 2292,
3748      2292, 2294, 2294, 2294, 2286, 2294, 1243, 1242, 2294, 2297,
3749      2297, 2297, 2298, 2298, 2298, 1241, 2298, 1240, 1238, 2298,
3750      2301, 2301, 2301, 1237, 1235, 2267, 1234, 2297, 2302, 2302,
3751      2302, 2310, 2310, 2310, 2311, 2311, 2311, 1233, 2301, 2283,
3752      2316, 2316, 2316, 1228, 2316, 1220, 2302, 2316, 2319, 2319,
3753      2319, 1218, 2311, 1213, 1211, 2297, 2322, 2322, 2322, 2323,
3754      2323, 2323, 1202, 2323, 1197, 2319, 2323, 2326, 2326, 2326,
3755      2331, 2331, 2331, 1186, 2322, 2333, 2333, 2333, 1184, 2302,
3756      2334, 2334, 2334, 1183, 2334, 2326, 1182, 2334, 2331, 2337,
3757
3758      2337, 2337, 2333, 1181, 2311, 2338, 2338, 2338, 2339, 2339,
3759      2339, 1179, 2339, 1178, 1177, 2339, 1176, 2337, 2342, 2342,
3760      2342, 1175, 2338, 2343, 2343, 2343, 2348, 2348, 2348, 2350,
3761      2350, 2350, 2353, 2353, 2353, 2342, 2352, 2352, 2352, 1174,
3762      2343, 1172, 1171, 2348, 2354, 2354, 2354, 1170, 1169, 2353,
3763      2337, 2338, 1168, 1167, 2352, 1166, 2355, 2355, 2355, 2357,
3764      2357, 2357, 2354, 2356, 2356, 2356, 1164, 1163, 2358, 2358,
3765      2358, 1162, 2358, 2342, 2355, 2358, 2357, 2348, 2359, 2359,
3766      2359, 2356, 1161, 1160, 2343, 2360, 2360, 2360, 2361, 2361,
3767      2361, 2362, 2362, 2362, 1159, 2359, 2363, 2363, 2363, 1158,
3768
3769      2356, 1152, 2360, 1151, 2354, 2361, 2364, 2364, 2364, 2362,
3770      2365, 2365, 2365, 2367, 2367, 2367, 1150, 2355, 2370, 2370,
3771      2370, 2372, 2372, 2372, 2364, 2371, 2371, 2371, 2365, 1147,
3772      1146, 2367, 2373, 2373, 2373, 1145, 2360, 1143, 1139, 2361,
3773      2376, 2376, 2376, 2371, 2377, 2377, 2377, 2378, 2378, 2378,
3774      2379, 2379, 2379, 2383, 2383, 2383, 2386, 2386, 2386, 2387,
3775      2387, 2387, 1136, 2387, 1127, 1126, 2387, 2399, 2399, 2399,
3776      1123, 2383, 2364, 2386, 1122, 2367, 2410, 2410, 2410, 2413,
3777      2413, 2413, 2415, 2415, 2415, 2399, 2416, 2416, 2416, 2418,
3778      2418, 2418, 2425, 2425, 2425, 2426, 2426, 2426, 1121, 1120,
3779
3780      2415, 2427, 2427, 2427, 2416, 1119, 1105, 2418, 1098, 2425,
3781      1090, 2433, 2433, 2433, 2434, 2434, 2434, 1089, 2434, 2427,
3782      1088, 2434, 2436, 2436, 2436, 1085, 1082, 2399, 2433, 2437,
3783      2437, 2437, 2439, 2439, 2439, 2443, 2443, 2443, 1079, 2436,
3784      2445, 2445, 2445, 1074, 2447, 2447, 2447, 2437, 2415, 1071,
3785      2439, 1070, 2443, 2448, 2448, 2448, 1066, 2445, 2427, 2446,
3786      2446, 2446, 2447, 2446, 1064, 1050, 2446, 2449, 2449, 2449,
3787      2448, 2449, 1049, 1048, 2449, 2450, 2450, 2450, 2451, 2451,
3788      2451, 2452, 2452, 2452, 2457, 2457, 2457, 2459, 2459, 2459,
3789      1047, 1046, 2450, 1045, 1044, 2451, 1043, 1042, 2452, 1038,
3790
3791      1034, 2457, 2461, 2461, 2461, 2463, 2463, 2463, 2464, 2464,
3792      2464, 1027, 2464, 1024, 1023, 2464, 2465, 2465, 2465, 1022,
3793      2461, 1019, 2463, 2466, 2466, 2466, 1018, 2450, 2467, 2467,
3794      2467, 2468, 2468, 2468, 2465, 2468, 2451, 1017, 2468, 2452,
3795      1014, 2466, 2471, 2471, 2471, 1013, 2467, 2472, 2472, 2472,
3796      1012, 2472, 1009, 1008, 2472, 2473, 2473, 2473, 1005, 2471,
3797      2474, 2474, 2474, 2475, 2475, 2475, 2477, 2477, 2477, 2478,
3798      2478, 2478, 2473, 2482, 2482, 2482, 1000, 2474, 2486, 2486,
3799      2486, 2475, 2490, 2490, 2490,  997,  994, 2478,  993,  990,
3800      2466, 2482, 2467, 2491, 2491, 2491,  989, 2491,  988, 2490,
3801
3802      2491, 2505, 2505, 2505, 2520, 2520, 2520, 2522, 2522, 2522,
3803      2523, 2523, 2523, 2526, 2526, 2526, 2529, 2529, 2529, 2505,
3804      2530, 2530, 2530,  987, 2530, 2522,  986, 2530, 2523,  984,
3805      2526,  983,  982, 2529, 2531, 2531, 2531, 2535, 2535, 2535,
3806      2537, 2537, 2537,  981, 2537,  980,  979, 2537, 2541, 2541,
3807      2541,  978, 2531,  977, 2535, 2542, 2542, 2542,  973, 2542,
3808       968, 2505, 2542,  967,  966, 2541, 2544, 2544, 2544, 2545,
3809      2545, 2545, 2546, 2546, 2546,  963, 2546,  962, 2522, 2546,
3810      2547, 2547, 2547, 2544,  961,  959, 2545, 2548, 2548, 2548,
3811       955, 2548,  951,  950, 2548,  947,  944, 2547, 2551, 2551,
3812
3813      2551, 2553, 2553, 2553,  943, 2553,  942,  941, 2553, 2556,
3814      2556, 2556, 2557, 2557, 2557,  940, 2551, 2558, 2558, 2558,
3815      2561, 2561, 2561, 2562, 2562, 2562, 2556, 2562,  939, 2557,
3816      2562, 2563, 2563, 2563, 2558,  938,  936, 2561, 2564, 2564,
3817      2564,  935, 2565, 2565, 2565,  934, 2565,  933, 2563, 2565,
3818      2568, 2568, 2568,  932,  931, 2564, 2570, 2570, 2570, 2571,
3819      2571, 2571,  930, 2557, 2556, 2575, 2575, 2575, 2568, 2572,
3820      2572, 2572, 2558, 2572, 2570,  929, 2572, 2571,  928, 2576,
3821      2576, 2576, 2575, 2576,  927,  926, 2576, 2577, 2577, 2577,
3822      2578, 2578, 2578,  925, 2578,  924,  923, 2578, 2579, 2579,
3823
3824      2579, 2585, 2585, 2585, 2577,  922, 2589, 2589, 2589,  921,
3825      2590, 2590, 2590,  920, 2590,  919, 2579, 2590,  918,  917,
3826      2571,  916, 2570, 2589, 2608, 2608, 2608, 2622, 2622, 2622,
3827      2624, 2624, 2624, 2625, 2625, 2625, 2626, 2626, 2626, 2627,
3828      2627, 2627, 2608, 2627,  912,  911, 2627,  909, 2624,  908,
3829      2625,  907,  906, 2626, 2628, 2628, 2628,  905, 2628,  901,
3830       899, 2628, 2631, 2631, 2631, 2635, 2635, 2635, 2636, 2636,
3831      2636,  898, 2638, 2638, 2638, 2608, 2679, 2679, 2679, 2625,
3832      2631,  897, 2635,  896,  892, 2636, 2637, 2637, 2637, 2638,
3833      2637,  888, 2624, 2637, 2640, 2640, 2640,  887, 2640,  884,
3834
3835       883, 2640, 2644, 2644, 2644, 2645, 2645, 2645,  882, 2645,
3836       881,  880, 2645, 2646, 2646, 2646,  879, 2646,  878, 2644,
3837      2646, 2649, 2649, 2649, 2650, 2650, 2650,  875, 2650,  874,
3838       873, 2650, 2651, 2651, 2651, 2652, 2652, 2652, 2649, 2653,
3839      2653, 2653,  872, 2654, 2654, 2654,  869, 2654,  868, 2651,
3840      2654,  867, 2652, 2657, 2657, 2657, 2653, 2658, 2658, 2658,
3841       864, 2658,  862,  859, 2658, 2659, 2659, 2659,  858,  857,
3842      2657, 2660, 2660, 2660,  856, 2660,  855,  852, 2660, 2667,
3843      2667, 2667, 2659, 2668, 2668, 2668,  851,  850, 2653,  849,
3844      2651, 2669, 2669, 2669,  848, 2669,  845, 2667, 2669,  844,
3845
3846       843, 2668, 2672, 2672, 2672,  842, 2672,  840,  837, 2672,
3847      2677, 2677, 2677, 2680, 2680, 2680, 2683, 2683, 2683,  836,
3848      2683,  834,  831, 2683, 2694, 2694, 2694, 2677, 2677,  829,
3849      2667, 2703, 2703, 2703, 2717, 2717, 2717, 2718, 2718, 2718,
3850       826, 2694, 2719, 2719, 2719, 2720, 2720, 2720,  825, 2703,
3851      2668, 2721, 2721, 2721,  824, 2721,  823,  821, 2721,  820,
3852      2719,  819, 2720, 2723, 2723, 2723,  816, 2723,  815,  814,
3853      2723, 2728, 2728, 2728, 2729, 2729, 2729,  813, 2729,  812,
3854      2703, 2729, 2730, 2730, 2730,  811, 2730,  806, 2728, 2730,
3855      2733, 2733, 2733, 2719, 2734, 2734, 2734,  805, 2734,  804,
3856
3857       803, 2734, 2737, 2737, 2737,  802, 2737, 2733,  801, 2737,
3858      2740, 2740, 2740,  800, 2740,  799,  798, 2740, 2743, 2743,
3859      2743, 2744, 2744, 2744, 2745, 2745, 2745,  797, 2745,  796,
3860       794, 2745, 2746, 2746, 2746, 2743,  792,  791, 2744, 2747,
3861      2747, 2747,  788, 2747,  785,  782, 2747,  781,  777, 2746,
3862      2750, 2750, 2750,  776, 2750,  775,  774, 2750, 2759, 2759,
3863      2759, 2760, 2760, 2760, 2766, 2766, 2766,  771,  768, 2743,
3864      2767, 2767, 2767, 2768, 2768, 2768, 2759, 2768,  767, 2760,
3865      2768, 2766, 2766, 2769, 2769, 2769,  766, 2767, 2767,  763,
3866       762, 2768, 2770, 2770, 2770, 2771, 2771, 2771, 2772, 2772,
3867
3868      2772,  758,  757, 2746, 2781, 2781, 2781, 2782, 2782, 2782,
3869       755, 2782,  752,  751, 2782, 2791, 2791, 2791, 2804, 2804,
3870      2804, 2781, 2805, 2805, 2805,  750,  748, 2760, 2806, 2806,
3871      2806,  737,  735, 2791, 2807, 2807, 2807,  732, 2807,  731,
3872       730, 2807,  728, 2813, 2813, 2813, 2806, 2813,  727,  726,
3873      2813, 2816, 2816, 2816,  722, 2816,  721,  720, 2816, 2819,
3874      2819, 2819, 2821, 2821, 2821, 2822, 2822, 2822,  719, 2822,
3875       716,  715, 2822, 2825, 2825, 2825, 2819,  714,  713, 2821,
3876       712, 2791, 2840, 2840, 2840, 2842, 2842, 2842,  711,  710,
3877      2825, 2848, 2848, 2848, 2849, 2849, 2849,  708, 2849,  705,
3878
3879      2840, 2849,  704, 2842, 2853, 2853, 2853,  702, 2848, 2848,
3880       700,  697, 2849, 2850, 2850, 2850,  696, 2850,  690,  688,
3881      2850, 2854, 2854, 2854, 2855, 2855, 2855,  686, 2864, 2864,
3882      2864, 2850, 2864,  683,  682, 2864, 2842, 2851, 2851, 2851,
3883      2851, 2851, 2851, 2851, 2851, 2851,  678,  677, 2851, 2873,
3884      2873, 2873,  676, 2851, 2851, 2851, 2851, 2851, 2882, 2882,
3885      2882, 2883, 2883, 2883, 2888, 2888, 2888, 2873, 2889, 2889,
3886      2889,  675, 2889,  672,  671, 2889, 2891, 2891, 2891, 2883,
3887       670, 2888, 2851, 2851, 2852, 2852, 2852, 2852, 2852, 2852,
3888      2852, 2852, 2852, 2891,  669, 2852, 2893, 2893, 2893,  666,
3889
3890      2852, 2852, 2852, 2852, 2852, 2892, 2892, 2892,  665, 2892,
3891       664,  663, 2892, 2893, 2894, 2894, 2894,  662, 2894,  656,
3892       655, 2894, 2907, 2907, 2907, 2932, 2932, 2932,  653, 2852,
3893      2852, 2913, 2913, 2913,  647, 2913,  646,  642, 2913,  635,
3894      2907,  631,  625, 2932, 2965, 2965, 2965,  621,  613, 2913,
3895      2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916,  612,
3896       611, 2916, 2965,  610,  609,  605, 2916, 2916, 2916, 2916,
3897      2916, 2943, 2943, 2943,  598, 2943,  597,  596, 2943, 2947,
3898      2947, 2947,  592, 2947,  585,  584, 2947, 2950, 2950, 2950,
3899       580, 2950,  574,  573, 2950, 2916, 2916, 2917, 2917, 2917,
3900
3901      2917, 2917, 2917, 2917, 2917, 2917,  569,  561, 2917, 2977,
3902      2977, 2977,  560, 2917, 2917, 2917, 2917, 2917, 2992, 2992,
3903      2992, 2993, 2993, 2993, 2994, 2994, 2994, 2977, 2977, 2999,
3904      2999, 2999, 3010, 3010, 3010, 2992,  556,  547, 2993,  543,
3905       535, 2994, 2917, 2917,  534,  533, 2999, 3014, 3014, 3014,
3906      3010, 3023, 3023, 3023, 3024, 3024, 3024,  529, 3024,  523,
3907       522, 3024, 3025, 3025, 3025, 3014,  521,  517, 3023, 3026,
3908      3026, 3026,  511, 3026,  510,  506, 3026,  500,  499, 3025,
3909      3027, 3027, 3027, 3028, 3028, 3028,  498, 3028,  497,  496,
3910      3028, 3035, 3035, 3035, 3045, 3045, 3045, 3027, 3014, 3036,
3911
3912      3036, 3036,  495, 3036,  494,  490, 3036,  484, 3035, 3053,
3913      3053, 3053, 3045, 3053,  483,  481, 3053, 3056, 3056, 3056,
3914       480, 3056,  479,  475, 3056, 3059, 3059, 3059,  465, 3059,
3915       464, 3045, 3059, 3068, 3068, 3068,  462, 3068,  458,  452,
3916      3068, 3175, 3175, 3175, 3184, 3184, 3184,  451, 3184,  450,
3917       446, 3184, 3285, 3285, 3285, 3286, 3286, 3286,  440, 3175,
3918       436,  428, 3184,  426,  425,  424,  420,  414,  413,  409,
3919      3285,  403,  402, 3286, 3289, 3289, 3289, 3289, 3289, 3289,
3920      3289, 3289, 3289, 3290, 3290, 3290, 3290, 3290, 3290, 3290,
3921      3290, 3290, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3922
3923      3291, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
3924      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3294,
3925      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3295, 3295,
3926      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3296, 3296, 3296,
3927      3296, 3296, 3296, 3296, 3296, 3296, 3297, 3297, 3297, 3297,
3928      3297, 3297, 3297, 3297, 3297, 3298, 3298, 3298, 3298, 3298,
3929      3298, 3298, 3298, 3298, 3299, 3299, 3299, 3299, 3299, 3299,
3930      3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300, 3300, 3300,
3931      3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301,
3932      3301, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
3933
3934      3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3304,
3935      3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3305, 3305,
3936      3305, 3305, 3305, 3305, 3305, 3305, 3305, 3306, 3306, 3306,
3937      3306, 3306, 3306, 3306, 3306, 3306, 3307, 3307, 3307, 3307,
3938      3307, 3307, 3307, 3307, 3307, 3308, 3308, 3308, 3308, 3308,
3939      3308, 3308, 3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309,
3940      3309, 3309, 3309, 3310, 3310, 3310, 3310, 3310, 3310, 3310,
3941      3310, 3310, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
3942      3311, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
3943      3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3314,
3944
3945      3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3315, 3315,
3946      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316, 3316, 3316,
3947      3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317, 3317, 3317,
3948      3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318, 3318, 3318,
3949      3318, 3318, 3318, 3318, 3319, 3319, 3319, 3319, 3319, 3319,
3950      3319, 3319, 3319, 3320, 3320, 3320, 3320, 3320, 3320, 3320,
3951      3320, 3320, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321,
3952      3321, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3953      3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3324,
3954      3324, 3324, 3324, 3324, 3324, 3324, 3324, 3324, 3325, 3325,
3955
3956      3325, 3325, 3325, 3325, 3325, 3325, 3325, 3326, 3326, 3326,
3957      3326, 3326, 3326, 3326, 3326, 3326, 3327, 3327, 3327, 3327,
3958      3327, 3327, 3327, 3327, 3327, 3328, 3328, 3328, 3328, 3328,
3959      3328, 3328, 3328, 3328, 3329, 3329, 3329, 3329, 3329, 3329,
3960      3329, 3329, 3329, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
3961      3330, 3330, 3331, 3331, 3331, 3331, 3331, 3331, 3331, 3331,
3962      3331, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
3963      3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3334,
3964      3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3335, 3335,
3965      3335, 3335, 3335, 3335, 3335, 3335, 3335, 3336, 3336, 3336,
3966
3967      3336, 3336, 3336, 3336, 3336, 3336, 3337, 3337, 3337, 3337,
3968      3337, 3337, 3337, 3337, 3337, 3338, 3338, 3338, 3338, 3338,
3969      3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339, 3339, 3339,
3970      3339, 3339, 3339, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
3971      3340, 3340, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
3972      3341, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
3973      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3344,
3974      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3345, 3345,
3975      3345, 3345, 3345, 3345, 3345, 3345, 3345, 3346, 3346, 3346,
3976      3346, 3346, 3346, 3346, 3346, 3346, 3347, 3347, 3347, 3347,
3977
3978      3347, 3347, 3347, 3347, 3347, 3348, 3348, 3348, 3348, 3348,
3979      3348, 3348, 3348, 3348, 3349, 3349, 3349, 3349, 3349, 3349,
3980      3349, 3349, 3349, 3350, 3350, 3350,  398,  391,  390, 3350,
3981      3351, 3351, 3351,  389,  385,  378, 3351, 3352, 3352, 3352,
3982       377,  376,  375, 3352, 3353, 3353, 3353,  371,  362,  356,
3983      3353, 3354, 3354, 3354,  352,  351,  347, 3354, 3355, 3355,
3984      3355,  341,  340,  339, 3355, 3356, 3356, 3356,  335,  328,
3985       326, 3356, 3357, 3357, 3357,  325,  321,  318, 3357, 3358,
3986      3358, 3358,  316,  315,  314, 3358, 3359, 3359, 3359,  310,
3987       306,  303, 3359, 3360, 3360, 3360,  299,  296,  295, 3360,
3988
3989      3361, 3361, 3361,  287,  283,  279, 3361, 3362, 3362, 3362,
3990       278,  277,  271, 3362, 3363, 3363, 3363,  270,  268,  265,
3991      3363, 3364, 3364, 3364,  253,    0,    0, 3364, 3365, 3365,
3992      3365,    0,    0,    0, 3365, 3366, 3366, 3366,    0,    0,
3993         0, 3366, 3367, 3367, 3367,    0,    0,    0, 3367, 3368,
3994      3368, 3368,    0,    0,    0, 3368, 3369, 3369, 3369,    0,
3995         0,    0, 3369, 3370, 3370, 3370,    0,    0,    0, 3370,
3996      3371, 3371, 3371,    0,    0,    0, 3371, 3372, 3372, 3372,
3997         0,    0,    0, 3372, 3373, 3373, 3373,    0,    0,    0,
3998      3373, 3374, 3374, 3374,    0,    0,    0, 3374, 3375, 3375,
3999
4000      3375,    0,    0,    0, 3375, 3376, 3376, 3376,    0,    0,
4001         0, 3376, 3377, 3377, 3377,    0,    0,    0, 3377, 3378,
4002      3378, 3378, 3378, 3378, 3378, 3378,    0, 3378, 3379, 3379,
4003      3379,    0,    0,    0, 3379, 3380,    0,    0,    0, 3380,
4004      3381, 3381, 3381,    0,    0,    0, 3381, 3382,    0,    0,
4005         0, 3382, 3383, 3383, 3383,    0,    0,    0, 3383, 3384,
4006         0,    0,    0, 3384, 3385, 3385, 3385,    0,    0,    0,
4007      3385, 3386,    0,    0,    0, 3386, 3387, 3387, 3387,    0,
4008         0,    0, 3387, 3388,    0,    0,    0, 3388, 3389, 3389,
4009      3389,    0,    0,    0, 3389, 3390,    0,    0,    0, 3390,
4010
4011      3391, 3391, 3391,    0,    0,    0, 3391, 3392,    0,    0,
4012         0, 3392, 3393, 3393, 3393,    0,    0,    0, 3393, 3394,
4013         0,    0,    0, 3394, 3395, 3395, 3395,    0,    0,    0,
4014      3395, 3396,    0,    0,    0, 3396, 3397, 3397, 3397,    0,
4015         0,    0, 3397, 3398,    0,    0,    0, 3398, 3399, 3399,
4016      3399,    0,    0,    0, 3399, 3400,    0,    0,    0, 3400,
4017      3401, 3401, 3401,    0,    0,    0, 3401, 3402,    0,    0,
4018         0, 3402, 3403, 3403, 3403,    0,    0,    0, 3403, 3404,
4019         0,    0,    0, 3404, 3405, 3405, 3405,    0,    0,    0,
4020      3405, 3406,    0,    0,    0, 3406, 3407, 3407, 3407,    0,
4021
4022         0,    0, 3407, 3408,    0,    0,    0, 3408, 3409, 3409,
4023      3409,    0,    0,    0, 3409, 3410,    0,    0,    0, 3410,
4024      3411, 3411, 3411,    0,    0,    0, 3411, 3412,    0,    0,
4025         0, 3412, 3413, 3413, 3413,    0,    0,    0, 3413, 3414,
4026         0,    0,    0, 3414, 3415, 3415, 3415,    0,    0,    0,
4027      3415, 3416,    0,    0,    0, 3416, 3417, 3417, 3417,    0,
4028         0,    0, 3417, 3418,    0,    0,    0, 3418, 3419, 3419,
4029      3419,    0,    0,    0, 3419, 3420,    0,    0,    0, 3420,
4030      3421, 3421, 3421,    0,    0,    0, 3421, 3422,    0,    0,
4031         0, 3422, 3423, 3423, 3423,    0,    0,    0, 3423, 3424,
4032
4033         0,    0,    0, 3424, 3425, 3425, 3425,    0,    0,    0,
4034      3425, 3426,    0,    0,    0, 3426, 3427, 3427, 3427,    0,
4035         0,    0, 3427, 3428,    0,    0,    0, 3428, 3429, 3429,
4036      3429,    0,    0,    0, 3429, 3430,    0,    0,    0, 3430,
4037      3431, 3431, 3431,    0,    0,    0, 3431, 3432,    0,    0,
4038         0, 3432, 3433, 3433, 3433,    0,    0,    0, 3433, 3434,
4039         0,    0,    0, 3434, 3435, 3435, 3435, 3435, 3435, 3435,
4040      3435, 3435, 3435, 3436,    0,    0,    0,    0, 3436, 3437,
4041      3437, 3437,    0,    0,    0, 3437, 3438, 3438, 3438, 3438,
4042         0,    0, 3438, 3438, 3439, 3439, 3439,    0,    0,    0,
4043
4044      3439, 3440, 3440, 3440, 3440,    0,    0, 3440, 3440, 3441,
4045      3441, 3441,    0,    0,    0, 3441, 3442, 3442, 3442, 3442,
4046         0,    0, 3442, 3442, 3443, 3443, 3443,    0,    0,    0,
4047      3443, 3444, 3444, 3444, 3444,    0,    0, 3444, 3444, 3445,
4048      3445, 3445,    0,    0,    0, 3445, 3446, 3446, 3446, 3446,
4049         0,    0, 3446, 3446, 3447, 3447, 3447,    0,    0,    0,
4050      3447, 3448, 3448, 3448, 3448,    0,    0, 3448, 3448, 3449,
4051      3449, 3449,    0,    0,    0, 3449, 3450, 3450, 3450, 3450,
4052         0,    0, 3450, 3450, 3451, 3451, 3451,    0,    0,    0,
4053      3451, 3452, 3452, 3452, 3452,    0,    0, 3452, 3452, 3453,
4054
4055      3453, 3453,    0,    0,    0, 3453, 3454, 3454, 3454, 3454,
4056         0,    0, 3454, 3454, 3455, 3455, 3455,    0,    0,    0,
4057      3455, 3456, 3456, 3456, 3456,    0,    0, 3456, 3456, 3457,
4058      3457, 3457,    0,    0,    0, 3457, 3458, 3458, 3458, 3458,
4059         0,    0, 3458, 3458, 3459, 3459, 3459,    0,    0,    0,
4060      3459, 3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461,
4061      3461, 3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,
4062         0,    0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0,
4063      3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465,
4064      3465, 3465, 3465,    0, 3465,    0, 3465, 3466, 3466, 3466,
4065
4066      3466,    0,    0, 3466, 3466, 3467, 3467, 3467,    0,    0,
4067         0, 3467, 3468, 3468, 3468, 3468,    0,    0, 3468, 3468,
4068      3469, 3469, 3469,    0,    0,    0, 3469, 3470, 3470, 3470,
4069      3470,    0,    0, 3470, 3470, 3471, 3471, 3471,    0,    0,
4070         0, 3471, 3472, 3472, 3472, 3472,    0,    0, 3472, 3472,
4071      3473, 3473, 3473,    0,    0,    0, 3473, 3474, 3474, 3474,
4072      3474,    0,    0, 3474, 3474, 3475, 3475, 3475, 3475,    0,
4073      3475,    0, 3475, 3476, 3476, 3476, 3476,    0,    0, 3476,
4074      3476, 3477, 3477, 3477, 3477,    0, 3477,    0, 3477, 3478,
4075      3478, 3478, 3478,    0,    0, 3478, 3478, 3479, 3479, 3479,
4076
4077         0,    0,    0, 3479, 3480, 3480, 3480, 3480,    0,    0,
4078      3480, 3480, 3481, 3481, 3481, 3481,    0, 3481,    0, 3481,
4079      3482, 3482, 3482, 3482,    0,    0, 3482, 3482, 3483, 3483,
4080      3483, 3483,    0, 3483,    0, 3483, 3484, 3484, 3484, 3484,
4081         0,    0, 3484, 3484, 3485, 3485, 3485,    0,    0,    0,
4082      3485, 3486, 3486, 3486, 3486,    0,    0, 3486, 3486, 3487,
4083      3487, 3487,    0,    0,    0, 3487, 3488, 3488, 3488, 3488,
4084         0,    0, 3488, 3488, 3489, 3489, 3489, 3489,    0,    0,
4085      3489, 3489, 3490, 3490, 3490,    0,    0,    0, 3490, 3491,
4086      3491, 3491, 3491,    0,    0, 3491, 3491, 3492, 3492, 3492,
4087
4088      3492, 3492, 3492, 3492, 3492, 3492, 3493,    0, 3493,    0,
4089         0, 3493, 3494, 3494, 3494,    0,    0,    0, 3494, 3495,
4090      3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496, 3496,
4091      3496,    0, 3496,    0, 3496, 3497, 3497, 3497, 3497,    0,
4092         0, 3497, 3497, 3498, 3498, 3498, 3498,    0, 3498,    0,
4093      3498, 3499, 3499, 3499, 3499,    0,    0, 3499, 3499, 3500,
4094      3500, 3500,    0,    0,    0, 3500, 3501, 3501, 3501, 3501,
4095         0,    0, 3501, 3501, 3502, 3502, 3502,    0,    0,    0,
4096      3502, 3503, 3503, 3503, 3503,    0,    0, 3503, 3503, 3504,
4097      3504, 3504,    0,    0,    0, 3504, 3505, 3505, 3505, 3505,
4098
4099         0,    0, 3505, 3505, 3506, 3506, 3506,    0,    0,    0,
4100      3506, 3507, 3507, 3507, 3507,    0,    0, 3507, 3507, 3508,
4101      3508, 3508,    0,    0,    0, 3508, 3509, 3509, 3509, 3509,
4102         0,    0, 3509, 3509, 3510, 3510, 3510, 3510,    0, 3510,
4103         0, 3510, 3511, 3511, 3511, 3511,    0,    0, 3511, 3511,
4104      3512, 3512, 3512, 3512,    0, 3512,    0, 3512, 3513, 3513,
4105      3513, 3513,    0,    0, 3513, 3513, 3514, 3514, 3514,    0,
4106         0,    0, 3514, 3515, 3515, 3515, 3515,    0,    0, 3515,
4107      3515, 3516, 3516, 3516, 3516,    0, 3516,    0, 3516, 3517,
4108      3517, 3517, 3517,    0,    0, 3517, 3517, 3518, 3518, 3518,
4109
4110      3518,    0, 3518,    0, 3518, 3519, 3519, 3519, 3519,    0,
4111         0, 3519, 3519, 3520, 3520, 3520,    0,    0,    0, 3520,
4112      3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522, 3522,
4113      3522,    0,    0,    0, 3522, 3523, 3523, 3523, 3523,    0,
4114         0, 3523, 3523, 3524, 3524, 3524,    0,    0,    0, 3524,
4115      3525, 3525, 3525, 3525,    0,    0, 3525, 3525, 3526, 3526,
4116      3526,    0,    0,    0, 3526, 3527, 3527, 3527, 3527,    0,
4117         0, 3527, 3527, 3528, 3528, 3528,    0,    0,    0, 3528,
4118      3529, 3529, 3529, 3529,    0,    0, 3529, 3529, 3530, 3530,
4119      3530,    0,    0,    0, 3530, 3531, 3531, 3531, 3531,    0,
4120
4121         0, 3531, 3531, 3532, 3532, 3532,    0,    0,    0, 3532,
4122      3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534, 3534,
4123      3534,    0,    0,    0, 3534, 3535, 3535, 3535, 3535,    0,
4124         0, 3535, 3535, 3536, 3536, 3536,    0,    0,    0, 3536,
4125      3537, 3537, 3537, 3537,    0,    0, 3537, 3537, 3538, 3538,
4126      3538, 3538,    0,    0, 3538, 3538, 3539, 3539, 3539,    0,
4127         0,    0, 3539, 3540, 3540, 3540, 3540,    0,    0, 3540,
4128      3540, 3541, 3541, 3541,    0,    0,    0, 3541, 3542, 3542,
4129      3542, 3542,    0,    0, 3542, 3542, 3543, 3543, 3543,    0,
4130         0,    0, 3543, 3544, 3544, 3544, 3544,    0,    0, 3544,
4131
4132      3544, 3545, 3545, 3545, 3545,    0,    0, 3545, 3545, 3546,
4133      3546, 3546,    0,    0,    0, 3546, 3547, 3547, 3547, 3547,
4134         0,    0, 3547, 3547, 3548, 3548, 3548, 3548, 3548, 3548,
4135      3548, 3548, 3548, 3549, 3549, 3549, 3549, 3549, 3549, 3549,
4136      3549, 3549, 3550, 3550, 3550,    0,    0,    0, 3550, 3551,
4137      3551, 3551, 3551,    0,    0, 3551, 3551, 3552, 3552, 3552,
4138      3552,    0,    0, 3552, 3552, 3553, 3553, 3553,    0,    0,
4139         0, 3553, 3554, 3554, 3554, 3554,    0,    0, 3554, 3554,
4140      3555, 3555, 3555,    0,    0,    0, 3555, 3556, 3556, 3556,
4141      3556,    0,    0, 3556, 3556, 3557, 3557, 3557,    0,    0,
4142
4143         0, 3557, 3558, 3558, 3558, 3558,    0,    0, 3558, 3558,
4144      3559, 3559, 3559,    0,    0,    0, 3559, 3560, 3560, 3560,
4145         0,    0,    0, 3560, 3561, 3561, 3561, 3561,    0,    0,
4146      3561, 3561, 3562, 3562, 3562,    0,    0,    0, 3562, 3563,
4147      3563, 3563, 3563,    0,    0, 3563, 3563, 3564, 3564, 3564,
4148      3564,    0,    0, 3564, 3564, 3565, 3565, 3565,    0,    0,
4149         0, 3565, 3566, 3566, 3566, 3566,    0,    0, 3566, 3566,
4150      3567, 3567, 3567,    0,    0,    0, 3567, 3568, 3568, 3568,
4151      3568,    0,    0, 3568, 3568, 3569, 3569, 3569, 3569,    0,
4152         0, 3569, 3569, 3570, 3570, 3570, 3570,    0,    0, 3570,
4153
4154      3570, 3571, 3571, 3571,    0,    0,    0, 3571, 3572, 3572,
4155      3572, 3572,    0,    0, 3572, 3572, 3573, 3573, 3573, 3573,
4156         0, 3573,    0, 3573, 3574, 3574, 3574, 3574,    0,    0,
4157      3574, 3574, 3575, 3575, 3575,    0,    0,    0, 3575, 3576,
4158      3576, 3576, 3576,    0,    0, 3576, 3576, 3577, 3577, 3577,
4159         0,    0,    0, 3577, 3578, 3578, 3578, 3578,    0,    0,
4160      3578, 3578, 3579, 3579, 3579,    0,    0,    0, 3579, 3580,
4161      3580, 3580, 3580,    0,    0, 3580, 3580, 3581, 3581, 3581,
4162         0,    0,    0, 3581, 3582, 3582, 3582, 3582,    0,    0,
4163      3582, 3582, 3583, 3583, 3583,    0,    0,    0, 3583, 3584,
4164
4165      3584, 3584, 3584,    0,    0, 3584, 3584, 3585, 3585, 3585,
4166         0,    0,    0, 3585, 3586, 3586, 3586, 3586,    0,    0,
4167      3586, 3586, 3587, 3587, 3587,    0,    0,    0, 3587, 3588,
4168      3588, 3588, 3588,    0,    0, 3588, 3588, 3589, 3589, 3589,
4169      3589,    0,    0, 3589, 3589, 3590, 3590, 3590,    0,    0,
4170         0, 3590, 3591, 3591, 3591, 3591,    0,    0, 3591, 3591,
4171      3592, 3592, 3592,    0,    0,    0, 3592, 3593, 3593, 3593,
4172      3593,    0,    0, 3593, 3593, 3594, 3594, 3594, 3594,    0,
4173      3594,    0, 3594, 3595, 3595, 3595, 3595,    0,    0, 3595,
4174      3595, 3596, 3596, 3596, 3596,    0,    0, 3596, 3596, 3597,
4175
4176      3597, 3597, 3597,    0, 3597,    0, 3597, 3598, 3598, 3598,
4177      3598,    0,    0, 3598, 3598, 3599, 3599, 3599, 3599, 3599,
4178      3599, 3599, 3599, 3599, 3600, 3600, 3600, 3600, 3600, 3600,
4179      3600, 3600, 3600, 3601, 3601, 3601,    0,    0,    0, 3601,
4180      3602, 3602, 3602, 3602,    0,    0, 3602, 3602, 3603, 3603,
4181      3603, 3603,    0,    0, 3603, 3603, 3604, 3604, 3604,    0,
4182         0,    0, 3604, 3605, 3605, 3605, 3605,    0,    0, 3605,
4183      3605, 3606, 3606, 3606,    0,    0,    0, 3606, 3607, 3607,
4184      3607, 3607,    0,    0, 3607, 3607, 3608, 3608, 3608,    0,
4185         0,    0, 3608, 3609, 3609, 3609, 3609,    0,    0, 3609,
4186
4187      3609, 3610, 3610, 3610,    0,    0,    0, 3610, 3611, 3611,
4188      3611,    0,    0,    0, 3611, 3612, 3612, 3612, 3612,    0,
4189         0, 3612, 3612, 3613, 3613, 3613,    0,    0,    0, 3613,
4190      3614, 3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615,
4191      3615, 3615,    0,    0, 3615, 3615, 3616, 3616, 3616, 3616,
4192         0, 3616,    0, 3616, 3617, 3617, 3617, 3617,    0,    0,
4193      3617, 3617, 3618, 3618, 3618,    0,    0,    0, 3618, 3619,
4194      3619, 3619, 3619,    0,    0, 3619, 3619, 3620, 3620, 3620,
4195      3620,    0,    0, 3620, 3620, 3621, 3621, 3621,    0,    0,
4196         0, 3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622,
4197
4198      3623, 3623, 3623, 3623,    0, 3623,    0, 3623, 3624, 3624,
4199      3624, 3624,    0,    0, 3624, 3624, 3625, 3625, 3625,    0,
4200         0,    0, 3625, 3626, 3626, 3626, 3626,    0,    0, 3626,
4201      3626, 3627, 3627, 3627,    0,    0,    0, 3627, 3628, 3628,
4202      3628, 3628,    0,    0, 3628, 3628, 3629, 3629, 3629,    0,
4203         0,    0, 3629, 3630, 3630, 3630, 3630,    0,    0, 3630,
4204      3630, 3631, 3631, 3631,    0,    0,    0, 3631, 3632, 3632,
4205      3632, 3632,    0,    0, 3632, 3632, 3633, 3633, 3633,    0,
4206         0,    0, 3633, 3634, 3634, 3634, 3634,    0,    0, 3634,
4207      3634, 3635, 3635, 3635, 3635,    0, 3635,    0, 3635, 3636,
4208
4209      3636, 3636, 3636,    0,    0, 3636, 3636, 3637, 3637, 3637,
4210         0,    0,    0, 3637, 3638, 3638, 3638, 3638,    0,    0,
4211      3638, 3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639,
4212      3640, 3640, 3640, 3640,    0, 3640,    0, 3640, 3641, 3641,
4213      3641, 3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,
4214         0,    0, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643,
4215      3643, 3644, 3644, 3644, 3644,    0,    0, 3644, 3644, 3645,
4216      3645, 3645, 3645,    0,    0, 3645, 3645, 3646, 3646, 3646,
4217      3646,    0,    0, 3646, 3646, 3647, 3647, 3647, 3647, 3647,
4218      3647, 3647, 3647, 3647, 3648, 3648, 3648, 3648, 3648, 3648,
4219
4220      3648, 3648, 3648, 3649, 3649, 3649, 3649,    0, 3649,    0,
4221      3649, 3650, 3650, 3650, 3650,    0,    0, 3650, 3650, 3651,
4222      3651, 3651, 3651,    0,    0, 3651, 3651, 3652, 3652, 3652,
4223         0,    0,    0, 3652, 3653, 3653, 3653, 3653,    0,    0,
4224      3653, 3653, 3654, 3654, 3654,    0,    0,    0, 3654, 3655,
4225      3655, 3655, 3655,    0,    0, 3655, 3655, 3656, 3656, 3656,
4226      3656,    0, 3656,    0, 3656, 3657, 3657, 3657, 3657,    0,
4227         0, 3657, 3657, 3658, 3658, 3658, 3658,    0, 3658,    0,
4228      3658, 3659, 3659, 3659, 3659,    0, 3659,    0, 3659, 3660,
4229      3660, 3660, 3660,    0,    0, 3660, 3660, 3661, 3661, 3661,
4230
4231      3661,    0, 3661,    0, 3661, 3662, 3662, 3662, 3662,    0,
4232         0, 3662, 3662, 3663, 3663, 3663, 3663,    0,    0, 3663,
4233      3663, 3664, 3664, 3664, 3664,    0,    0, 3664, 3664, 3665,
4234      3665, 3665,    0,    0,    0, 3665, 3666, 3666, 3666, 3666,
4235         0,    0, 3666, 3666, 3667, 3667, 3667,    0,    0,    0,
4236      3667, 3668, 3668, 3668, 3668,    0,    0, 3668, 3668, 3669,
4237      3669, 3669, 3669,    0, 3669,    0, 3669, 3670, 3670, 3670,
4238      3670,    0,    0, 3670, 3670, 3671, 3671, 3671,    0,    0,
4239         0, 3671, 3672, 3672, 3672,    0,    0,    0, 3672, 3673,
4240      3673, 3673, 3673,    0,    0, 3673, 3673, 3674, 3674, 3674,
4241
4242         0,    0,    0, 3674, 3675, 3675, 3675, 3675,    0,    0,
4243      3675, 3675, 3676, 3676, 3676,    0,    0,    0, 3676, 3677,
4244      3677, 3677,    0,    0,    0, 3677, 3678, 3678, 3678, 3678,
4245         0,    0, 3678, 3678, 3679, 3679, 3679,    0,    0,    0,
4246      3679, 3680, 3680, 3680, 3680,    0,    0, 3680, 3680, 3681,
4247      3681, 3681,    0,    0,    0, 3681, 3682, 3682, 3682, 3682,
4248         0,    0, 3682, 3682, 3683, 3683, 3683, 3683,    0,    0,
4249      3683, 3683, 3684, 3684, 3684, 3684,    0,    0, 3684, 3684,
4250      3685, 3685, 3685,    0,    0,    0, 3685, 3686, 3686, 3686,
4251      3686,    0,    0, 3686, 3686, 3687, 3687, 3687, 3687,    0,
4252
4253         0, 3687, 3687, 3688, 3688, 3688, 3688,    0,    0, 3688,
4254      3688, 3689, 3689, 3689, 3689, 3689, 3689, 3689, 3689, 3689,
4255      3690, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3691,
4256      3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692, 3692,
4257      3692,    0,    0, 3692, 3692, 3693, 3693, 3693,    0,    0,
4258         0, 3693, 3694, 3694, 3694,    0,    0,    0, 3694, 3695,
4259      3695, 3695, 3695,    0,    0, 3695, 3695, 3696, 3696, 3696,
4260      3696,    0,    0, 3696, 3696, 3697, 3697, 3697, 3697,    0,
4261         0, 3697, 3697, 3698, 3698, 3698, 3698,    0,    0, 3698,
4262      3698, 3699, 3699, 3699, 3699,    0,    0, 3699, 3699, 3700,
4263
4264      3700, 3700,    0,    0,    0, 3700, 3701, 3701, 3701, 3701,
4265         0,    0, 3701, 3701, 3702, 3702, 3702,    0,    0,    0,
4266      3702, 3703, 3703, 3703, 3703,    0,    0, 3703, 3703, 3704,
4267      3704, 3704, 3704,    0,    0, 3704, 3704, 3705, 3705, 3705,
4268         0,    0,    0, 3705, 3706, 3706, 3706,    0,    0,    0,
4269      3706, 3707, 3707, 3707, 3707,    0,    0, 3707, 3707, 3708,
4270      3708, 3708,    0,    0,    0, 3708, 3709, 3709, 3709, 3709,
4271         0,    0, 3709, 3709, 3710, 3710, 3710,    0,    0,    0,
4272      3710, 3711, 3711, 3711,    0,    0,    0, 3711, 3712, 3712,
4273      3712,    0,    0,    0, 3712, 3713, 3713, 3713, 3713,    0,
4274
4275         0, 3713, 3713, 3714, 3714, 3714,    0,    0,    0, 3714,
4276      3715, 3715, 3715, 3715,    0,    0, 3715, 3715, 3716, 3716,
4277      3716, 3716,    0,    0, 3716, 3716, 3717, 3717, 3717, 3717,
4278         0,    0, 3717, 3717, 3718, 3718, 3718, 3718,    0, 3718,
4279         0, 3718, 3719, 3719, 3719, 3719,    0,    0, 3719, 3719,
4280      3720, 3720, 3720, 3720,    0,    0, 3720, 3720, 3721, 3721,
4281      3721, 3721,    0,    0, 3721, 3721, 3722, 3722, 3722, 3722,
4282      3722, 3722, 3722, 3722, 3722, 3723, 3723, 3723, 3723, 3723,
4283      3723, 3723, 3723, 3723, 3724, 3724, 3724, 3724,    0,    0,
4284      3724, 3724, 3725, 3725, 3725, 3725,    0,    0, 3725, 3725,
4285
4286      3726, 3726, 3726,    0,    0,    0, 3726, 3727, 3727, 3727,
4287      3727,    0, 3727,    0, 3727, 3728, 3728, 3728, 3728,    0,
4288         0, 3728, 3728, 3729, 3729, 3729, 3729,    0,    0, 3729,
4289      3729, 3730, 3730, 3730, 3730,    0,    0, 3730, 3730, 3731,
4290      3731, 3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,
4291         0,    0,    0, 3732, 3733, 3733, 3733, 3733,    0,    0,
4292      3733, 3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735,
4293      3735, 3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736,
4294      3736,    0,    0, 3736, 3736, 3737, 3737, 3737,    0,    0,
4295         0, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
4296
4297      3739, 3739, 3739,    0, 3739,    0, 3739, 3740, 3740, 3740,
4298      3740,    0,    0, 3740, 3740, 3741, 3741, 3741, 3741,    0,
4299      3741,    0, 3741, 3742, 3742, 3742,    0,    0,    0, 3742,
4300      3743, 3743, 3743,    0,    0,    0, 3743, 3744, 3744, 3744,
4301      3744,    0,    0, 3744, 3744, 3745, 3745, 3745, 3745,    0,
4302      3745,    0, 3745, 3746, 3746, 3746, 3746,    0,    0, 3746,
4303      3746, 3747, 3747, 3747, 3747,    0,    0, 3747, 3747, 3748,
4304      3748, 3748, 3748,    0,    0, 3748, 3748, 3749, 3749, 3749,
4305      3749,    0, 3749,    0, 3749, 3750, 3750, 3750, 3750,    0,
4306         0, 3750, 3750, 3751, 3751, 3751, 3751,    0,    0, 3751,
4307
4308      3751, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
4309      3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3754,
4310      3754, 3754, 3754,    0,    0, 3754, 3754, 3755, 3755, 3755,
4311         0,    0,    0, 3755, 3756, 3756, 3756,    0,    0,    0,
4312      3756, 3757, 3757, 3757, 3757,    0,    0, 3757, 3757, 3758,
4313      3758, 3758, 3758,    0,    0, 3758, 3758, 3759, 3759, 3759,
4314      3759,    0,    0, 3759, 3759, 3760, 3760, 3760,    0,    0,
4315         0, 3760, 3761, 3761, 3761, 3761,    0,    0, 3761, 3761,
4316      3762, 3762, 3762,    0,    0,    0, 3762, 3763, 3763, 3763,
4317      3763, 3763, 3763, 3763, 3763, 3763, 3764, 3764, 3764, 3764,
4318
4319      3764, 3764, 3764, 3764, 3764, 3765, 3765, 3765, 3765, 3765,
4320      3765, 3765, 3765, 3765, 3766, 3766, 3766, 3766, 3766, 3766,
4321      3766, 3766, 3766, 3767, 3767, 3767, 3767, 3767, 3767, 3767,
4322      3767, 3767, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768,
4323      3768, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4324      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4325      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4326      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4327      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4328      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4329
4330      3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
4331      3288, 3288, 3288, 3288, 3288, 3288
4332     } ;
4333
4334 /* Table of booleans, true if rule could match eol. */
4335 static yyconst flex_int32_t yy_rule_can_match_eol[565] =
4336     {   0,
4337 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4338     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4339     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4340     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4341     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4342     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4343     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4344     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4345     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4346     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4347     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4348     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4349     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4350     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4351     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4352     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4353     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4354     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4355     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4356     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4357     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4358     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4359     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4360     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4361     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4362     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4363     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4364     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4365     0, 0, 0, 1, 0,     };
4366
4367 static yy_state_type yy_last_accepting_state;
4368 static char *yy_last_accepting_cpos;
4369
4370 extern int surf_parse__flex_debug;
4371 int surf_parse__flex_debug = 0;
4372
4373 /* The intent behind this definition is that it'll catch
4374  * any uses of REJECT which flex missed.
4375  */
4376 #define REJECT reject_used_but_not_detected
4377 #define yymore() yymore_used_but_not_detected
4378 #define YY_MORE_ADJ 0
4379 #define YY_RESTORE_YY_MORE_OFFSET
4380 char *surf_parse_text;
4381 /* Validating XML processor for src/surf/simgrid.dtd.
4382  *
4383  * This program was generated with the FleXML XML processor generator.
4384  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4385  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4386  * (1.9.6).
4387  * 
4388  * There are two, intertwined parts to this program, part A and part B.
4389  *
4390  * Part A
4391  * ------
4392  * 
4393  * Some parts, here collectively called "Part A", are found in the 
4394  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4395  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4396  *
4397  * You can redistribute, use, perform, display and/or modify "Part A"
4398  * provided the following two conditions hold:
4399  *
4400  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4401  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4402  *    FITNESS FOR A PARTICULAR PURPOSE.
4403  *
4404  * 2. The program distribution conditions do not in any way affect the
4405  *    distribution conditions of the FleXML system used to generate this
4406  *    file or any version of FleXML derived from that system.
4407  *
4408  * Notice that these are explicit rights granted to you for files
4409  * generated by the FleXML system.  For your rights in connection with
4410  * the FleXML system itself please consult the GNU General Public License.
4411  * 
4412  * Part B
4413  * ------
4414  * 
4415  * The other parts, here collectively called "Part B", and which came 
4416  * from the DTD used by FleXML to generate this program, can be 
4417  * distributed (or not, as the case may be) under the terms of whoever
4418  * wrote them, provided these terms respect and obey the two conditions 
4419  * above under the heading "Part A".
4420  *
4421  * The author of and contributors to FleXML specifically disclaim
4422  * any copyright interest in "Part B", unless "Part B" was written 
4423  * by the author of or contributors to FleXML.
4424  * 
4425  */
4426
4427 /* Version strings. */
4428 const char surfxml_flexml_version[] = "1.9.6";
4429
4430 /* ANSI headers. */
4431 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4432 #include <stdio.h>
4433 #include <string.h>
4434 #include <assert.h>
4435 #include <stdarg.h>
4436 #include <ctype.h>
4437      
4438 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4439 # ifndef __STRICT_ANSI__
4440 #  include <io.h>
4441 #  include <process.h>
4442 # endif
4443 #else
4444 # include <unistd.h>
4445 #endif
4446      
4447 #ifndef FLEXML_INDEXSTACKSIZE
4448 #define FLEXML_INDEXSTACKSIZE 1000
4449 #endif
4450
4451 /* Generated definitions. */
4452 #define FLEXML_yylineno
4453 #ifndef FLEXML_BUFFERSTACKSIZE
4454 #define FLEXML_BUFFERSTACKSIZE 1000000
4455 #endif
4456 #define FLEXML_NEED_BUFFERLIT
4457
4458 /* XML processor api. */
4459 /* FleXML-provided data. */
4460 int surfxml_pcdata_ix;
4461 extern char *surfxml_bufferstack;
4462 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4463 AT_surfxml_mount_name AX_surfxml_mount_name;
4464 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4465 short int surfxml_mount_name_isset;
4466 AT_surfxml_random_generator AX_surfxml_random_generator;
4467 #define A_surfxml_random_generator AX_surfxml_random_generator
4468 short int surfxml_random_generator_isset;
4469 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4470 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4471 short int surfxml_ASroute_gw___dst_isset;
4472 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4473 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4474 short int surfxml_trace___connect_element_isset;
4475 AT_surfxml_prop_id AX_surfxml_prop_id;
4476 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4477 short int surfxml_prop_id_isset;
4478 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4479 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4480 short int surfxml_host___link_up_isset;
4481 AT_surfxml_host_id AX_surfxml_host_id;
4482 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4483 short int surfxml_host_id_isset;
4484 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4485 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4486 short int surfxml_ASroute_symmetrical_isset;
4487 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4488 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4489 short int surfxml_peer_lat_isset;
4490 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4491 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4492 short int surfxml_process_on___failure_isset;
4493 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4494 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4495 short int surfxml_link_latency___file_isset;
4496 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4497 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4498 short int surfxml_peer_availability___file_isset;
4499 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4500 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4501 short int surfxml_link___ctn_direction_isset;
4502 AT_surfxml_host_state AX_surfxml_host_state;
4503 #define A_surfxml_host_state AX_surfxml_host_state
4504 short int surfxml_host_state_isset;
4505 AT_surfxml_AS_id AX_surfxml_AS_id;
4506 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4507 short int surfxml_AS_id_isset;
4508 AT_surfxml_host_power AX_surfxml_host_power;
4509 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4510 short int surfxml_host_power_isset;
4511 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4512 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4513 short int surfxml_cabinet_suffix_isset;
4514 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4515 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4516 short int surfxml_gpu_name_isset;
4517 AT_surfxml_router_id AX_surfxml_router_id;
4518 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4519 short int surfxml_router_id_isset;
4520 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4521 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4522 short int surfxml_storage___type_id_isset;
4523 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4524 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4525 short int surfxml_process_start___time_isset;
4526 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4527 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4528 short int surfxml_cabinet_bw_isset;
4529 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4530 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4531 short int surfxml_cluster_suffix_isset;
4532 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4533 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4534 short int surfxml_bypassASroute_dst_isset;
4535 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4536 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4537 short int surfxml_host___link_id_isset;
4538 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4539 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4540 short int surfxml_ASroute_src_isset;
4541 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4542 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4543 short int surfxml_cluster_prefix_isset;
4544 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4545 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4546 short int surfxml_cabinet_prefix_isset;
4547 AT_surfxml_trace_file AX_surfxml_trace_file;
4548 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4549 short int surfxml_trace_file_isset;
4550 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4551 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4552 short int surfxml_link_sharing___policy_isset;
4553 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4554 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4555 short int surfxml_storage_typeId_isset;
4556 AT_surfxml_random_min AX_surfxml_random_min;
4557 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4558 short int surfxml_random_min_isset;
4559 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4560 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4561 short int surfxml_link___ctn_id_isset;
4562 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4563 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4564 short int surfxml_peer_bw___out_isset;
4565 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4566 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4567 short int surfxml_cluster_availability___file_isset;
4568 AT_surfxml_storage_content AX_surfxml_storage_content;
4569 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4570 short int surfxml_storage_content_isset;
4571 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4572 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4573 short int surfxml_process_kill___time_isset;
4574 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4575 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4576 short int surfxml_cluster_bb___bw_isset;
4577 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4578 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4579 short int surfxml_host_pstate_isset;
4580 AT_surfxml_argument_value AX_surfxml_argument_value;
4581 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4582 short int surfxml_argument_value_isset;
4583 AT_surfxml_link_state AX_surfxml_link_state;
4584 #define A_surfxml_link_state AX_surfxml_link_state
4585 short int surfxml_link_state_isset;
4586 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4587 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4588 short int surfxml_cluster_loopback___bw_isset;
4589 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4590 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4591 short int surfxml_ASroute_gw___src_isset;
4592 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4593 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4594 short int surfxml_AS_routing_isset;
4595 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4596 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4597 short int surfxml_link_bandwidth_isset;
4598 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4599 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4600 short int surfxml_cluster_id_isset;
4601 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4602 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4603 short int surfxml_peer_bw___in_isset;
4604 AT_surfxml_random_mean AX_surfxml_random_mean;
4605 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4606 short int surfxml_random_mean_isset;
4607 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4608 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4609 short int surfxml_storage___type_size_isset;
4610 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4611 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4612 short int surfxml_cluster_bb___lat_isset;
4613 AT_surfxml_link_latency AX_surfxml_link_latency;
4614 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4615 short int surfxml_link_latency_isset;
4616 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4617 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4618 short int surfxml_backbone_bandwidth_isset;
4619 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4620 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4621 short int surfxml_backbone_id_isset;
4622 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4623 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4624 short int surfxml_trace___connect_kind_isset;
4625 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4626 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4627 short int surfxml_cabinet_lat_isset;
4628 AT_surfxml_random_seed AX_surfxml_random_seed;
4629 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4630 short int surfxml_random_seed_isset;
4631 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4632 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4633 short int surfxml_cluster_state___file_isset;
4634 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4635 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4636 short int surfxml_link_bandwidth___file_isset;
4637 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4638 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4639 short int surfxml_storage___type_content_isset;
4640 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4641 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4642 short int surfxml_route_symmetrical_isset;
4643 AT_surfxml_random_id AX_surfxml_random_id;
4644 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4645 short int surfxml_random_id_isset;
4646 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4647 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4648 short int surfxml_mstorage_name_isset;
4649 AT_surfxml_random_max AX_surfxml_random_max;
4650 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4651 short int surfxml_random_max_isset;
4652 AT_surfxml_link_id AX_surfxml_link_id;
4653 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4654 short int surfxml_link_id_isset;
4655 AT_surfxml_process_host AX_surfxml_process_host;
4656 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4657 short int surfxml_process_host_isset;
4658 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4659 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4660 short int surfxml_cabinet_id_isset;
4661 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4662 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4663 short int surfxml_host_availability___file_isset;
4664 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4665 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4666 short int surfxml_cluster_lat_isset;
4667 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4668 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4669 short int surfxml_router_coordinates_isset;
4670 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4671 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4672 short int surfxml_trace_periodicity_isset;
4673 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4674 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4675 short int surfxml_cluster_bb___sharing___policy_isset;
4676 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4677 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4678 short int surfxml_peer_state___file_isset;
4679 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4680 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4681 short int surfxml_peer_coordinates_isset;
4682 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4683 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4684 short int surfxml_bypassASroute_src_isset;
4685 AT_surfxml_prop_value AX_surfxml_prop_value;
4686 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4687 short int surfxml_prop_value_isset;
4688 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4689 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4690 short int surfxml_mstorage_typeId_isset;
4691 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4692 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4693 short int surfxml_ASroute_dst_isset;
4694 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4695 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4696 short int surfxml_link_state___file_isset;
4697 AT_surfxml_random_radical AX_surfxml_random_radical;
4698 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4699 short int surfxml_random_radical_isset;
4700 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4701 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4702 short int surfxml_bypassASroute_gw___src_isset;
4703 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4704 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4705 short int surfxml_trace___connect_trace_isset;
4706 AT_surfxml_mount_id AX_surfxml_mount_id;
4707 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4708 short int surfxml_mount_id_isset;
4709 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4710 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4711 short int surfxml_cluster_power_isset;
4712 AT_surfxml_process_function AX_surfxml_process_function;
4713 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4714 short int surfxml_process_function_isset;
4715 AT_surfxml_peer_id AX_surfxml_peer_id;
4716 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4717 short int surfxml_peer_id_isset;
4718 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4719 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4720 short int surfxml_cluster_router___id_isset;
4721 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4722 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4723 short int surfxml_cluster_loopback___lat_isset;
4724 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4725 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4726 short int surfxml_cabinet_radical_isset;
4727 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4728 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4729 short int surfxml_cluster_sharing___policy_isset;
4730 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4731 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4732 short int surfxml_bypassRoute_dst_isset;
4733 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4734 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4735 short int surfxml_cabinet_power_isset;
4736 AT_surfxml_host_core AX_surfxml_host_core;
4737 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4738 short int surfxml_host_core_isset;
4739 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4740 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4741 short int surfxml_storage___type_model_isset;
4742 AT_surfxml_host_availability AX_surfxml_host_availability;
4743 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4744 short int surfxml_host_availability_isset;
4745 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4746 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4747 short int surfxml_bypassRoute_src_isset;
4748 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4749 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4750 short int surfxml_backbone_latency_isset;
4751 AT_surfxml_route_src AX_surfxml_route_src;
4752 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4753 short int surfxml_route_src_isset;
4754 AT_surfxml_storage_id AX_surfxml_storage_id;
4755 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4756 short int surfxml_storage_id_isset;
4757 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4758 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4759 short int surfxml_host_coordinates_isset;
4760 AT_surfxml_trace_id AX_surfxml_trace_id;
4761 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4762 short int surfxml_trace_id_isset;
4763 AT_surfxml_peer_power AX_surfxml_peer_power;
4764 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4765 short int surfxml_peer_power_isset;
4766 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4767 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4768 short int surfxml_cluster_radical_isset;
4769 AT_surfxml_config_id AX_surfxml_config_id;
4770 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4771 short int surfxml_config_id_isset;
4772 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4773 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4774 short int surfxml_bypassASroute_gw___dst_isset;
4775 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4776 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4777 short int surfxml_host___link_down_isset;
4778 AT_surfxml_include_file AX_surfxml_include_file;
4779 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4780 short int surfxml_include_file_isset;
4781 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4782 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4783 short int surfxml_random_std___deviation_isset;
4784 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4785 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4786 short int surfxml_cluster_core_isset;
4787 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4788 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4789 short int surfxml_cluster_limiter___link_isset;
4790 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4791 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4792 short int surfxml_host_state___file_isset;
4793 AT_surfxml_route_dst AX_surfxml_route_dst;
4794 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4795 short int surfxml_route_dst_isset;
4796 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4797 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4798 short int surfxml_cluster_bw_isset;
4799 AT_surfxml_platform_version AX_surfxml_platform_version;
4800 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4801 short int surfxml_platform_version_isset;
4802
4803 /* XML state. */
4804 #ifdef FLEX_DEBUG
4805 # define ENTER(state)   debug_enter(state,#state)
4806 # define LEAVE          debug_leave()
4807 # define SET(state)     debug_set(state,#state)
4808   static void debug_enter(int, const char*);
4809   static void debug_leave(void);
4810   static void debug_set(int, const char*);
4811 #else
4812 # define ENTER(state)   (yy_push_state(state))
4813 # define LEAVE          (yy_pop_state())
4814 # define SET(state)     BEGIN(state)
4815 #endif
4816
4817 /* Generic actions. */
4818 #define SKIP    /*skip*/
4819 #define SUCCEED        CLEANUP; return 0
4820
4821 #define FAIL    return fail
4822 static int fail(const char*, ...);
4823
4824 enum {flexml_max_err_msg_size = 512};
4825 static char flexml_err_msg[flexml_max_err_msg_size];
4826 const char * surfxml_parse_err_msg()
4827 {
4828     return flexml_err_msg;
4829 }
4830 static void reset_surfxml_parse_err_msg()
4831 {
4832     flexml_err_msg[0] = '\0';
4833 }
4834
4835 /* Cleanup */
4836 static void cleanup(void);
4837 #define CLEANUP  cleanup()
4838
4839 /* Text buffer stack handling. */
4840 char *surfxml_bufferstack = NULL;
4841 static int blimit = FLEXML_BUFFERSTACKSIZE;
4842 static int bnext = 1;
4843
4844 static int *indexstack = NULL;
4845 static int ilimit = FLEXML_INDEXSTACKSIZE;
4846 static int inext = 1;
4847
4848 #define BUFFERSET(P)  (P = bnext)
4849 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4850 #define BUFFERDONE    (BUFFERPUTC('\0'))
4851
4852 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4853
4854 /* after this is called, there are at least 2 slots left in the stack */
4855 static int ck_blimit()
4856 {
4857      if (bnext >= blimit) {
4858          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4859          {
4860              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4861              assert(temp);
4862              surfxml_bufferstack = temp;
4863          }
4864      }
4865      return 0;
4866 }
4867
4868 /* after this is called, there are at least 2 slots left in the stack */
4869 static int ck_ilimit()
4870 {
4871      if (inext >= ilimit) {
4872          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4873          {
4874              int *temp = (int *) realloc(indexstack, ilimit);
4875              assert(temp);
4876              indexstack = temp;
4877          }
4878      }
4879      return 0;
4880 }
4881
4882 #ifdef FLEXML_NEED_BUFFERLIT
4883 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4884 {
4885    BUFFERSET(*pp);
4886    if (c) {
4887       const char *s = strchr(text, c), *e = strrchr(text, c);
4888       assert(s && e && s <= e);
4889       ++s;
4890       while (s < e) {
4891          if (isspace(*s)) {
4892             BUFFERPUTC(' ');
4893             do ++s; while (s < e && isspace(*s));
4894          } else
4895            BUFFERPUTC(*s++);
4896       }
4897    } else {
4898       const char *s = text;
4899       while (*s)
4900         BUFFERPUTC(*s++);
4901    }
4902    BUFFERDONE;
4903 }
4904 #endif
4905
4906 static void pushbuffer(int p)
4907 {
4908     ck_ilimit();
4909     indexstack[inext++] = p;
4910     indexstack[inext++] = bnext;    
4911 }
4912
4913 static int popbuffer(void)
4914 {
4915     assert(inext >= 2);
4916     bnext = indexstack[--inext];
4917     return indexstack[--inext];
4918 }
4919
4920 /* General internal entities are `unput' back onto the input stream... */
4921 #define ENTITYTEXT(T) \
4922   { char *s = (T), *e = s+strlen(s);\
4923     while (--e >= s) { unput(*e); }}
4924
4925 /* Flex standard options. */
4926 #define YY_NO_INPUT 1
4927 /* Flex user-requested options. */
4928 /* XML character classes (currently restricted to ASCII). */
4929 /* "Common syntactic structures." */
4930 /* "Names and Tokens." */
4931 /* Miscellaneous. */
4932 /* Parser states (flex `exclusive start conditions'):
4933  *
4934  * PROLOG       the XML prolog of the document before <?xml...>
4935  * DOCTYPE      the XML prolog of the document after <?xml...>
4936  * EPILOG       after the root element
4937  * INCOMMENT    inside an XML comment <!--....-->
4938  * INPI         inside an XML PI <?...?>
4939  * VALUE1       inside a '...'-delimited literal
4940  * VALUE2       inside a "..."-delimited literal
4941  * CDATA        inside a <![CDATA[...] ]> section.
4942  * ROOT_<tag>   expect root element <tag>
4943  * AL_<tag>     inside the attribute list for <tag>
4944  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4945  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4946  */
4947
4948 /* State names. */
4949 const char* *surfxml_statenames=NULL;
4950
4951 #define INITIAL 0
4952 #define PROLOG 1
4953 #define DOCTYPE 2
4954 #define EPILOG 3
4955 #define INCOMMENT 4
4956 #define INPI 5
4957 #define VALUE1 6
4958 #define VALUE2 7
4959 #define CDATA 8
4960 #define ROOT_surfxml_platform 9
4961 #define AL_surfxml_platform 10
4962 #define S_surfxml_platform 11
4963 #define S_surfxml_platform_1 12
4964 #define S_surfxml_platform_2 13
4965 #define S_surfxml_platform_3 14
4966 #define S_surfxml_platform_4 15
4967 #define S_surfxml_platform_5 16
4968 #define S_surfxml_platform_6 17
4969 #define S_surfxml_platform_7 18
4970 #define S_surfxml_platform_8 19
4971 #define E_surfxml_platform 20
4972 #define AL_surfxml_include 21
4973 #define S_surfxml_include 22
4974 #define S_surfxml_include_1 23
4975 #define S_surfxml_include_2 24
4976 #define E_surfxml_include 25
4977 #define AL_surfxml_trace 26
4978 #define IN_trace 27
4979 #define AL_surfxml_random 28
4980 #define E_surfxml_random 29
4981 #define AL_surfxml_trace___connect 30
4982 #define E_surfxml_trace___connect 31
4983 #define AL_surfxml_AS 32
4984 #define S_surfxml_AS 33
4985 #define S_surfxml_AS_1 34
4986 #define S_surfxml_AS_2 35
4987 #define S_surfxml_AS_3 36
4988 #define S_surfxml_AS_4 37
4989 #define S_surfxml_AS_5 38
4990 #define S_surfxml_AS_6 39
4991 #define S_surfxml_AS_7 40
4992 #define S_surfxml_AS_8 41
4993 #define S_surfxml_AS_9 42
4994 #define S_surfxml_AS_10 43
4995 #define S_surfxml_AS_11 44
4996 #define S_surfxml_AS_12 45
4997 #define S_surfxml_AS_13 46
4998 #define S_surfxml_AS_14 47
4999 #define S_surfxml_AS_15 48
5000 #define S_surfxml_AS_16 49
5001 #define E_surfxml_AS 50
5002 #define AL_surfxml_storage___type 51
5003 #define S_surfxml_storage___type 52
5004 #define S_surfxml_storage___type_1 53
5005 #define S_surfxml_storage___type_2 54
5006 #define E_surfxml_storage___type 55
5007 #define AL_surfxml_storage 56
5008 #define S_surfxml_storage 57
5009 #define S_surfxml_storage_1 58
5010 #define S_surfxml_storage_2 59
5011 #define E_surfxml_storage 60
5012 #define AL_surfxml_mount 61
5013 #define E_surfxml_mount 62
5014 #define AL_surfxml_mstorage 63
5015 #define E_surfxml_mstorage 64
5016 #define AL_surfxml_host 65
5017 #define S_surfxml_host 66
5018 #define S_surfxml_host_1 67
5019 #define S_surfxml_host_2 68
5020 #define E_surfxml_host 69
5021 #define AL_surfxml_gpu 70
5022 #define E_surfxml_gpu 71
5023 #define AL_surfxml_host___link 72
5024 #define E_surfxml_host___link 73
5025 #define AL_surfxml_cluster 74
5026 #define E_surfxml_cluster 75
5027 #define AL_surfxml_cabinet 76
5028 #define E_surfxml_cabinet 77
5029 #define AL_surfxml_peer 78
5030 #define E_surfxml_peer 79
5031 #define AL_surfxml_router 80
5032 #define E_surfxml_router 81
5033 #define AL_surfxml_backbone 82
5034 #define E_surfxml_backbone 83
5035 #define AL_surfxml_link 84
5036 #define S_surfxml_link 85
5037 #define S_surfxml_link_1 86
5038 #define S_surfxml_link_2 87
5039 #define E_surfxml_link 88
5040 #define AL_surfxml_route 89
5041 #define S_surfxml_route 90
5042 #define S_surfxml_route_1 91
5043 #define S_surfxml_route_2 92
5044 #define E_surfxml_route 93
5045 #define AL_surfxml_ASroute 94
5046 #define S_surfxml_ASroute 95
5047 #define S_surfxml_ASroute_1 96
5048 #define S_surfxml_ASroute_2 97
5049 #define E_surfxml_ASroute 98
5050 #define AL_surfxml_link___ctn 99
5051 #define E_surfxml_link___ctn 100
5052 #define AL_surfxml_bypassRoute 101
5053 #define S_surfxml_bypassRoute 102
5054 #define S_surfxml_bypassRoute_1 103
5055 #define S_surfxml_bypassRoute_2 104
5056 #define E_surfxml_bypassRoute 105
5057 #define AL_surfxml_bypassASroute 106
5058 #define S_surfxml_bypassASroute 107
5059 #define S_surfxml_bypassASroute_1 108
5060 #define S_surfxml_bypassASroute_2 109
5061 #define E_surfxml_bypassASroute 110
5062 #define AL_surfxml_process 111
5063 #define S_surfxml_process 112
5064 #define S_surfxml_process_1 113
5065 #define S_surfxml_process_2 114
5066 #define E_surfxml_process 115
5067 #define AL_surfxml_argument 116
5068 #define E_surfxml_argument 117
5069 #define AL_surfxml_config 118
5070 #define S_surfxml_config 119
5071 #define S_surfxml_config_1 120
5072 #define S_surfxml_config_2 121
5073 #define E_surfxml_config 122
5074 #define AL_surfxml_prop 123
5075 #define E_surfxml_prop 124
5076 #define IMPOSSIBLE 125
5077
5078 #ifndef YY_NO_UNISTD_H
5079 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5080  * down here because we want the user's section 1 to have been scanned first.
5081  * The user has a chance to override it with an option.
5082  */
5083 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5084 #  ifndef __STRICT_ANSI__
5085 #    include <io.h>
5086 #    include <process.h>
5087 #  endif
5088 #else
5089 #  include <unistd.h>
5090 #endif
5091 #endif
5092
5093 #ifndef YY_EXTRA_TYPE
5094 #define YY_EXTRA_TYPE void *
5095 #endif
5096
5097 static int yy_init_globals (void );
5098
5099 /* Accessor methods to globals.
5100    These are made visible to non-reentrant scanners for convenience. */
5101
5102 int surf_parse_lex_destroy (void );
5103
5104 int surf_parse_get_debug (void );
5105
5106 void surf_parse_set_debug (int debug_flag  );
5107
5108 YY_EXTRA_TYPE surf_parse_get_extra (void );
5109
5110 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5111
5112 FILE *surf_parse_get_in (void );
5113
5114 void surf_parse_set_in  (FILE * in_str  );
5115
5116 FILE *surf_parse_get_out (void );
5117
5118 void surf_parse_set_out  (FILE * out_str  );
5119
5120 int surf_parse_get_leng (void );
5121
5122 char *surf_parse_get_text (void );
5123
5124 int surf_parse_get_lineno (void );
5125
5126 void surf_parse_set_lineno (int line_number  );
5127
5128 /* Macros after this point can all be overridden by user definitions in
5129  * section 1.
5130  */
5131
5132 #ifndef YY_SKIP_YYWRAP
5133 #ifdef __cplusplus
5134 extern "C" int surf_parse_wrap (void );
5135 #else
5136 extern int surf_parse_wrap (void );
5137 #endif
5138 #endif
5139
5140 #ifndef yytext_ptr
5141 static void yy_flex_strncpy (char *,yyconst char *,int );
5142 #endif
5143
5144 #ifdef YY_NEED_STRLEN
5145 static int yy_flex_strlen (yyconst char * );
5146 #endif
5147
5148 #ifndef YY_NO_INPUT
5149
5150 #ifdef __cplusplus
5151 static int yyinput (void );
5152 #else
5153 static int input (void );
5154 #endif
5155
5156 #endif
5157
5158         static int yy_start_stack_ptr = 0;
5159         static int yy_start_stack_depth = 0;
5160         static int *yy_start_stack = NULL;
5161     
5162     static void yy_push_state (int new_state );
5163     
5164     static void yy_pop_state (void );
5165     
5166 /* Amount of stuff to slurp up with each read. */
5167 #ifndef YY_READ_BUF_SIZE
5168 #ifdef __ia64__
5169 /* On IA-64, the buffer size is 16k, not 8k */
5170 #define YY_READ_BUF_SIZE 16384
5171 #else
5172 #define YY_READ_BUF_SIZE 8192
5173 #endif /* __ia64__ */
5174 #endif
5175
5176 /* Copy whatever the last rule matched to the standard output. */
5177 #ifndef ECHO
5178 /* This used to be an fputs(), but since the string might contain NUL's,
5179  * we now use fwrite().
5180  */
5181 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5182 #endif
5183
5184 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5185  * is returned in "result".
5186  */
5187 #ifndef YY_INPUT
5188 #define YY_INPUT(buf,result,max_size) \
5189         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5190                 { \
5191                 int c = '*'; \
5192                 size_t n; \
5193                 for ( n = 0; n < max_size && \
5194                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5195                         buf[n] = (char) c; \
5196                 if ( c == '\n' ) \
5197                         buf[n++] = (char) c; \
5198                 if ( c == EOF && ferror( surf_parse_in ) ) \
5199                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5200                 result = n; \
5201                 } \
5202         else \
5203                 { \
5204                 errno=0; \
5205                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5206                         { \
5207                         if( errno != EINTR) \
5208                                 { \
5209                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5210                                 break; \
5211                                 } \
5212                         errno=0; \
5213                         clearerr(surf_parse_in); \
5214                         } \
5215                 }\
5216 \
5217
5218 #endif
5219
5220 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5221  * we don't want an extra ';' after the "return" because that will cause
5222  * some compilers to complain about unreachable statements.
5223  */
5224 #ifndef yyterminate
5225 #define yyterminate() return YY_NULL
5226 #endif
5227
5228 /* Number of entries by which start-condition stack grows. */
5229 #ifndef YY_START_STACK_INCR
5230 #define YY_START_STACK_INCR 25
5231 #endif
5232
5233 /* Report a fatal error. */
5234 #ifndef YY_FATAL_ERROR
5235 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5236 #endif
5237
5238 /* end tables serialization structures and prototypes */
5239
5240 /* Default declaration of generated scanner - a define so the user can
5241  * easily add parameters.
5242  */
5243 #ifndef YY_DECL
5244 #define YY_DECL_IS_OURS 1
5245
5246 extern int surf_parse_lex (void);
5247
5248 #define YY_DECL int surf_parse_lex (void)
5249 #endif /* !YY_DECL */
5250
5251 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5252  * have been set up.
5253  */
5254 #ifndef YY_USER_ACTION
5255 #define YY_USER_ACTION
5256 #endif
5257
5258 /* Code executed at the end of each rule. */
5259 #ifndef YY_BREAK
5260 #define YY_BREAK break;
5261 #endif
5262
5263 #define YY_RULE_SETUP \
5264         YY_USER_ACTION
5265
5266 /** The main scanner function which does all the work.
5267  */
5268 YY_DECL
5269 {
5270         register yy_state_type yy_current_state;
5271         register char *yy_cp, *yy_bp;
5272         register int yy_act;
5273     
5274  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5275  SET(PROLOG);
5276  reset_surfxml_parse_err_msg();
5277  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5278  assert(surfxml_bufferstack);
5279  #ifdef FLEX_DEBUG
5280  {
5281      int i;
5282      for (i = 0; i < blimit; i++) {
5283          surfxml_bufferstack[i] = '\377';
5284      }
5285  }
5286  #endif
5287  surfxml_bufferstack[0] = '\0';
5288  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5289  assert(indexstack);
5290  indexstack[0] = 0;
5291
5292   /* FleXML_init */
5293   bnext = inext = 1;
5294   surfxml_bufferliteral('\0', &bnext, "0.0");
5295   surfxml_bufferliteral('\0', &bnext, "2147483647");
5296   surfxml_bufferliteral('\0', &bnext, "1");
5297   surfxml_bufferliteral('\0', &bnext, "1.0");
5298   surfxml_bufferliteral('\0', &bnext, "0.0");
5299   surfxml_bufferliteral('\0', &bnext, "1");
5300   surfxml_bufferliteral('\0', &bnext, "0.0");
5301   surfxml_bufferliteral('\0', &bnext, "-1.0");
5302   surfxml_bufferliteral('\0', &bnext, "-1.0");
5303   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5304   surfxml_statenames[PROLOG] = NULL;
5305   surfxml_statenames[DOCTYPE] = NULL;
5306   surfxml_statenames[EPILOG] = NULL;
5307   surfxml_statenames[INCOMMENT] = NULL;
5308   surfxml_statenames[INPI] = NULL;
5309   surfxml_statenames[VALUE1] = NULL;
5310   surfxml_statenames[VALUE2] = NULL;
5311   surfxml_statenames[CDATA] = NULL;
5312   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5313   surfxml_statenames[AL_surfxml_platform] = NULL;
5314   surfxml_statenames[S_surfxml_platform] = "platform";
5315   surfxml_statenames[S_surfxml_platform_1] = "platform";
5316   surfxml_statenames[S_surfxml_platform_2] = "platform";
5317   surfxml_statenames[S_surfxml_platform_3] = "platform";
5318   surfxml_statenames[S_surfxml_platform_4] = "platform";
5319   surfxml_statenames[S_surfxml_platform_5] = "platform";
5320   surfxml_statenames[S_surfxml_platform_6] = "platform";
5321   surfxml_statenames[S_surfxml_platform_7] = "platform";
5322   surfxml_statenames[S_surfxml_platform_8] = "platform";
5323   surfxml_statenames[E_surfxml_platform] = "platform";
5324   surfxml_statenames[AL_surfxml_include] = NULL;
5325   surfxml_statenames[S_surfxml_include] = "include";
5326   surfxml_statenames[S_surfxml_include_1] = "include";
5327   surfxml_statenames[S_surfxml_include_2] = "include";
5328   surfxml_statenames[E_surfxml_include] = "include";
5329   surfxml_statenames[AL_surfxml_trace] = NULL;
5330   surfxml_statenames[IN_trace] = "trace";
5331   surfxml_statenames[AL_surfxml_random] = NULL;
5332   surfxml_statenames[E_surfxml_random] = "random";
5333   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5334   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5335   surfxml_statenames[AL_surfxml_AS] = NULL;
5336   surfxml_statenames[S_surfxml_AS] = "AS";
5337   surfxml_statenames[S_surfxml_AS_1] = "AS";
5338   surfxml_statenames[S_surfxml_AS_2] = "AS";
5339   surfxml_statenames[S_surfxml_AS_3] = "AS";
5340   surfxml_statenames[S_surfxml_AS_4] = "AS";
5341   surfxml_statenames[S_surfxml_AS_5] = "AS";
5342   surfxml_statenames[S_surfxml_AS_6] = "AS";
5343   surfxml_statenames[S_surfxml_AS_7] = "AS";
5344   surfxml_statenames[S_surfxml_AS_8] = "AS";
5345   surfxml_statenames[S_surfxml_AS_9] = "AS";
5346   surfxml_statenames[S_surfxml_AS_10] = "AS";
5347   surfxml_statenames[S_surfxml_AS_11] = "AS";
5348   surfxml_statenames[S_surfxml_AS_12] = "AS";
5349   surfxml_statenames[S_surfxml_AS_13] = "AS";
5350   surfxml_statenames[S_surfxml_AS_14] = "AS";
5351   surfxml_statenames[S_surfxml_AS_15] = "AS";
5352   surfxml_statenames[S_surfxml_AS_16] = "AS";
5353   surfxml_statenames[E_surfxml_AS] = "AS";
5354   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5355   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5356   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5357   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5358   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5359   surfxml_statenames[AL_surfxml_storage] = NULL;
5360   surfxml_statenames[S_surfxml_storage] = "storage";
5361   surfxml_statenames[S_surfxml_storage_1] = "storage";
5362   surfxml_statenames[S_surfxml_storage_2] = "storage";
5363   surfxml_statenames[E_surfxml_storage] = "storage";
5364   surfxml_statenames[AL_surfxml_mount] = NULL;
5365   surfxml_statenames[E_surfxml_mount] = "mount";
5366   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5367   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5368   surfxml_statenames[AL_surfxml_host] = NULL;
5369   surfxml_statenames[S_surfxml_host] = "host";
5370   surfxml_statenames[S_surfxml_host_1] = "host";
5371   surfxml_statenames[S_surfxml_host_2] = "host";
5372   surfxml_statenames[E_surfxml_host] = "host";
5373   surfxml_statenames[AL_surfxml_gpu] = NULL;
5374   surfxml_statenames[E_surfxml_gpu] = "gpu";
5375   surfxml_statenames[AL_surfxml_host___link] = NULL;
5376   surfxml_statenames[E_surfxml_host___link] = "host_link";
5377   surfxml_statenames[AL_surfxml_cluster] = NULL;
5378   surfxml_statenames[E_surfxml_cluster] = "cluster";
5379   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5380   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5381   surfxml_statenames[AL_surfxml_peer] = NULL;
5382   surfxml_statenames[E_surfxml_peer] = "peer";
5383   surfxml_statenames[AL_surfxml_router] = NULL;
5384   surfxml_statenames[E_surfxml_router] = "router";
5385   surfxml_statenames[AL_surfxml_backbone] = NULL;
5386   surfxml_statenames[E_surfxml_backbone] = "backbone";
5387   surfxml_statenames[AL_surfxml_link] = NULL;
5388   surfxml_statenames[S_surfxml_link] = "link";
5389   surfxml_statenames[S_surfxml_link_1] = "link";
5390   surfxml_statenames[S_surfxml_link_2] = "link";
5391   surfxml_statenames[E_surfxml_link] = "link";
5392   surfxml_statenames[AL_surfxml_route] = NULL;
5393   surfxml_statenames[S_surfxml_route] = "route";
5394   surfxml_statenames[S_surfxml_route_1] = "route";
5395   surfxml_statenames[S_surfxml_route_2] = "route";
5396   surfxml_statenames[E_surfxml_route] = "route";
5397   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5398   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5399   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5400   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5401   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5402   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5403   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5404   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5405   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5406   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5407   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5408   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5409   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5410   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5411   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5412   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5413   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5414   surfxml_statenames[AL_surfxml_process] = NULL;
5415   surfxml_statenames[S_surfxml_process] = "process";
5416   surfxml_statenames[S_surfxml_process_1] = "process";
5417   surfxml_statenames[S_surfxml_process_2] = "process";
5418   surfxml_statenames[E_surfxml_process] = "process";
5419   surfxml_statenames[AL_surfxml_argument] = NULL;
5420   surfxml_statenames[E_surfxml_argument] = "argument";
5421   surfxml_statenames[AL_surfxml_config] = NULL;
5422   surfxml_statenames[S_surfxml_config] = "config";
5423   surfxml_statenames[S_surfxml_config_1] = "config";
5424   surfxml_statenames[S_surfxml_config_2] = "config";
5425   surfxml_statenames[E_surfxml_config] = "config";
5426   surfxml_statenames[AL_surfxml_prop] = NULL;
5427   surfxml_statenames[E_surfxml_prop] = "prop";
5428   }
5429
5430  /* COMMENTS and PIs: handled uniformly for efficiency. */
5431
5432         if ( !(yy_init) )
5433                 {
5434                 (yy_init) = 1;
5435
5436 #ifdef YY_USER_INIT
5437                 YY_USER_INIT;
5438 #endif
5439
5440                 if ( ! (yy_start) )
5441                         (yy_start) = 1; /* first start state */
5442
5443                 if ( ! surf_parse_in )
5444                         surf_parse_in = stdin;
5445
5446                 if ( ! surf_parse_out )
5447                         surf_parse_out = stdout;
5448
5449                 if ( ! YY_CURRENT_BUFFER ) {
5450                         surf_parse_ensure_buffer_stack ();
5451                         YY_CURRENT_BUFFER_LVALUE =
5452                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5453                 }
5454
5455                 surf_parse__load_buffer_state( );
5456                 }
5457
5458         while ( 1 )             /* loops until end-of-file is reached */
5459                 {
5460                 yy_cp = (yy_c_buf_p);
5461
5462                 /* Support of surf_parse_text. */
5463                 *yy_cp = (yy_hold_char);
5464
5465                 /* yy_bp points to the position in yy_ch_buf of the start of
5466                  * the current run.
5467                  */
5468                 yy_bp = yy_cp;
5469
5470                 yy_current_state = (yy_start);
5471 yy_match:
5472                 do
5473                         {
5474                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5475                         if ( yy_accept[yy_current_state] )
5476                                 {
5477                                 (yy_last_accepting_state) = yy_current_state;
5478                                 (yy_last_accepting_cpos) = yy_cp;
5479                                 }
5480                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5481                                 {
5482                                 yy_current_state = (int) yy_def[yy_current_state];
5483                                 if ( yy_current_state >= 3289 )
5484                                         yy_c = yy_meta[(unsigned int) yy_c];
5485                                 }
5486                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5487                         ++yy_cp;
5488                         }
5489                 while ( yy_base[yy_current_state] != 12042 );
5490
5491 yy_find_action:
5492                 yy_act = yy_accept[yy_current_state];
5493                 if ( yy_act == 0 )
5494                         { /* have to back up */
5495                         yy_cp = (yy_last_accepting_cpos);
5496                         yy_current_state = (yy_last_accepting_state);
5497                         yy_act = yy_accept[yy_current_state];
5498                         }
5499
5500                 YY_DO_BEFORE_ACTION;
5501
5502                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5503                         {
5504                         int yyl;
5505                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5506                                 if ( surf_parse_text[yyl] == '\n' )
5507                                            
5508     surf_parse_lineno++;
5509 ;
5510                         }
5511
5512 do_action:      /* This label is used only to access EOF actions. */
5513
5514                 switch ( yy_act )
5515         { /* beginning of action switch */
5516                         case 0: /* must back up */
5517                         /* undo the effects of YY_DO_BEFORE_ACTION */
5518                         *yy_cp = (yy_hold_char);
5519                         yy_cp = (yy_last_accepting_cpos);
5520                         yy_current_state = (yy_last_accepting_state);
5521                         goto yy_find_action;
5522
5523 case 1:
5524 YY_RULE_SETUP
5525 ENTER(INCOMMENT);
5526         YY_BREAK
5527 case 2:
5528 YY_RULE_SETUP
5529 ENTER(INPI);
5530         YY_BREAK
5531
5532 case 3:
5533 YY_RULE_SETUP
5534 LEAVE;
5535         YY_BREAK
5536 case 4:
5537 case 5:
5538 case 6:
5539 /* rule 6 can match eol */
5540 YY_RULE_SETUP
5541 SKIP;
5542         YY_BREAK
5543 case YY_STATE_EOF(INCOMMENT):
5544 FAIL("EOF in comment.");
5545         YY_BREAK
5546
5547 case 7:
5548 YY_RULE_SETUP
5549 LEAVE;
5550         YY_BREAK
5551 case 8:
5552 case 9:
5553 /* rule 9 can match eol */
5554 YY_RULE_SETUP
5555 SKIP;
5556         YY_BREAK
5557 case YY_STATE_EOF(INPI):
5558 FAIL("EOF in PI (processing instruction).");
5559         YY_BREAK
5560
5561 /* SPACES: skipped uniformly */
5562 case 10:
5563 /* rule 10 can match eol */
5564 YY_RULE_SETUP
5565 SKIP;
5566         YY_BREAK
5567 /* PROLOG: determine root element and process it. */
5568
5569 case 11:
5570 /* rule 11 can match eol */
5571 YY_RULE_SETUP
5572 SET(DOCTYPE); 
5573         YY_BREAK
5574 case 12:
5575 /* rule 12 can match eol */
5576 YY_RULE_SETUP
5577 FAIL("Bad declaration %s.",surf_parse_text);
5578         YY_BREAK
5579
5580 case 13:
5581 /* rule 13 can match eol */
5582 YY_RULE_SETUP
5583 SET(ROOT_surfxml_platform);
5584         YY_BREAK
5585 case 14:
5586 /* rule 14 can match eol */
5587 YY_RULE_SETUP
5588 FAIL("Bad declaration %s.",surf_parse_text);
5589         YY_BREAK
5590 case 15:
5591 YY_RULE_SETUP
5592 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5593         YY_BREAK
5594 case YY_STATE_EOF(PROLOG):
5595 case YY_STATE_EOF(DOCTYPE):
5596 FAIL("EOF in prolog.");
5597         YY_BREAK
5598
5599 /* RULES DERIVED FROM DTD. */
5600 /* <!-- Small DTD for SURF based tools. -->  */
5601 case 16:
5602 /* rule 16 can match eol */
5603 YY_RULE_SETUP
5604 FAIL("Starting tag <platform> is not allowed here.");
5605         YY_BREAK
5606 case 17:
5607 /* rule 17 can match eol */
5608 YY_RULE_SETUP
5609 {
5610   AX_surfxml_platform_version = 1;
5611   surfxml_platform_version_isset = 0;
5612   ENTER(AL_surfxml_platform); pushbuffer(0);
5613   }
5614         YY_BREAK
5615
5616 case 18:
5617 /* rule 18 can match eol */
5618 YY_RULE_SETUP
5619 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);
5620         YY_BREAK
5621 case 19:
5622 /* rule 19 can match eol */
5623 YY_RULE_SETUP
5624 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);
5625         YY_BREAK
5626 case 20:
5627 YY_RULE_SETUP
5628 {
5629   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5630  }
5631         YY_BREAK
5632 case 21:
5633 YY_RULE_SETUP
5634 {
5635   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5636   switch (YY_START) {
5637    case ROOT_surfxml_platform: SET(EPILOG); break;
5638   }
5639  }
5640         YY_BREAK
5641 case 22:
5642 YY_RULE_SETUP
5643 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5644         YY_BREAK
5645 case 23:
5646 YY_RULE_SETUP
5647 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5648         YY_BREAK
5649 case YY_STATE_EOF(AL_surfxml_platform):
5650 FAIL("EOF in attribute list of `platform' element.");
5651         YY_BREAK
5652
5653 case 24:
5654 /* rule 24 can match eol */
5655 YY_RULE_SETUP
5656 {
5657   LEAVE;
5658   ETag_surfxml_platform();
5659   popbuffer(); /* attribute */
5660   switch (YY_START) {
5661    case ROOT_surfxml_platform: SET(EPILOG); break;
5662   }
5663  }
5664         YY_BREAK
5665 case 25:
5666 /* rule 25 can match eol */
5667 YY_RULE_SETUP
5668 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5669         YY_BREAK
5670 case 26:
5671 YY_RULE_SETUP
5672 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5673         YY_BREAK
5674 case YY_STATE_EOF(S_surfxml_platform_8):
5675 case YY_STATE_EOF(S_surfxml_platform_1):
5676 case YY_STATE_EOF(S_surfxml_platform_3):
5677 case YY_STATE_EOF(S_surfxml_platform):
5678 case YY_STATE_EOF(S_surfxml_platform_4):
5679 case YY_STATE_EOF(S_surfxml_platform_6):
5680 case YY_STATE_EOF(E_surfxml_platform):
5681 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5682         YY_BREAK
5683
5684 case 27:
5685 /* rule 27 can match eol */
5686 YY_RULE_SETUP
5687 FAIL("Starting tag <include> is not allowed here.");
5688         YY_BREAK
5689 case 28:
5690 /* rule 28 can match eol */
5691 YY_RULE_SETUP
5692 {
5693   AX_surfxml_include_file = 0;
5694   surfxml_include_file_isset = 0;
5695   ENTER(AL_surfxml_include); pushbuffer(0);
5696   }
5697         YY_BREAK
5698
5699 case 29:
5700 /* rule 29 can match eol */
5701 YY_RULE_SETUP
5702 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);
5703         YY_BREAK
5704 case 30:
5705 /* rule 30 can match eol */
5706 YY_RULE_SETUP
5707 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);
5708         YY_BREAK
5709 case 31:
5710 YY_RULE_SETUP
5711 {
5712   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5713   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5714  }
5715         YY_BREAK
5716 case 32:
5717 YY_RULE_SETUP
5718 {
5719   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5720   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5721   switch (YY_START) {
5722    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5723    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;
5724    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5725    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5726   }
5727  }
5728         YY_BREAK
5729 case 33:
5730 YY_RULE_SETUP
5731 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5732         YY_BREAK
5733 case 34:
5734 YY_RULE_SETUP
5735 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5736         YY_BREAK
5737 case YY_STATE_EOF(AL_surfxml_include):
5738 FAIL("EOF in attribute list of `include' element.");
5739         YY_BREAK
5740
5741 case 35:
5742 /* rule 35 can match eol */
5743 YY_RULE_SETUP
5744 {
5745   LEAVE;
5746   ETag_surfxml_include();
5747   popbuffer(); /* attribute */
5748   switch (YY_START) {
5749    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5750    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;
5751    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5752    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5753   }
5754  }
5755         YY_BREAK
5756 case 36:
5757 /* rule 36 can match eol */
5758 YY_RULE_SETUP
5759 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5760         YY_BREAK
5761 case 37:
5762 YY_RULE_SETUP
5763 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5764         YY_BREAK
5765 case YY_STATE_EOF(E_surfxml_include):
5766 case YY_STATE_EOF(S_surfxml_include):
5767 case YY_STATE_EOF(S_surfxml_include_2):
5768 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5769         YY_BREAK
5770
5771 case 38:
5772 /* rule 38 can match eol */
5773 YY_RULE_SETUP
5774 FAIL("Starting tag <trace> is not allowed here.");
5775         YY_BREAK
5776 case 39:
5777 /* rule 39 can match eol */
5778 YY_RULE_SETUP
5779 {
5780   AX_surfxml_trace_id = 0;
5781   surfxml_trace_id_isset = 0;
5782   AX_surfxml_trace_file = 0;
5783   surfxml_trace_file_isset = 0;
5784   AX_surfxml_trace_periodicity = 0;
5785   surfxml_trace_periodicity_isset = 0;
5786   ENTER(AL_surfxml_trace); pushbuffer(0);
5787   }
5788         YY_BREAK
5789
5790 case 40:
5791 /* rule 40 can match eol */
5792 YY_RULE_SETUP
5793 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);
5794         YY_BREAK
5795 case 41:
5796 /* rule 41 can match eol */
5797 YY_RULE_SETUP
5798 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);
5799         YY_BREAK
5800 case 42:
5801 /* rule 42 can match eol */
5802 YY_RULE_SETUP
5803 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);
5804         YY_BREAK
5805 case 43:
5806 /* rule 43 can match eol */
5807 YY_RULE_SETUP
5808 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);
5809         YY_BREAK
5810 case 44:
5811 /* rule 44 can match eol */
5812 YY_RULE_SETUP
5813 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);
5814         YY_BREAK
5815 case 45:
5816 /* rule 45 can match eol */
5817 YY_RULE_SETUP
5818 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);
5819         YY_BREAK
5820 case 46:
5821 YY_RULE_SETUP
5822 {
5823   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5824   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5825   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5826  }
5827         YY_BREAK
5828 case 47:
5829 YY_RULE_SETUP
5830 {
5831   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5832   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5833   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5834   switch (YY_START) {
5835    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5836    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5837    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5838    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;
5839    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5840    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5841    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5842   }
5843  }
5844         YY_BREAK
5845 case 48:
5846 YY_RULE_SETUP
5847 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5848         YY_BREAK
5849 case 49:
5850 YY_RULE_SETUP
5851 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5852         YY_BREAK
5853 case YY_STATE_EOF(AL_surfxml_trace):
5854 FAIL("EOF in attribute list of `trace' element.");
5855         YY_BREAK
5856
5857 case 50:
5858 /* rule 50 can match eol */
5859 YY_RULE_SETUP
5860 {
5861   LEAVE;
5862   BUFFERDONE;
5863   ETag_surfxml_trace();
5864   surfxml_pcdata_ix = popbuffer();
5865   popbuffer(); /* attribute */
5866   switch (YY_START) {
5867    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5868    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5869    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5870    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;
5871    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5872    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5873    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5874   }
5875  }
5876         YY_BREAK
5877 case 51:
5878 /* rule 51 can match eol */
5879 YY_RULE_SETUP
5880 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5881         YY_BREAK
5882 case YY_STATE_EOF(IN_trace):
5883 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5884         YY_BREAK
5885
5886 case 52:
5887 /* rule 52 can match eol */
5888 YY_RULE_SETUP
5889 FAIL("Starting tag <random> is not allowed here.");
5890         YY_BREAK
5891 case 53:
5892 /* rule 53 can match eol */
5893 YY_RULE_SETUP
5894 {
5895   AX_surfxml_random_id = 0;
5896   surfxml_random_id_isset = 0;
5897   AX_surfxml_random_min = 0;
5898   surfxml_random_min_isset = 0;
5899   AX_surfxml_random_max = 0;
5900   surfxml_random_max_isset = 0;
5901   AX_surfxml_random_mean = 0;
5902   surfxml_random_mean_isset = 0;
5903   AX_surfxml_random_std___deviation = 0;
5904   surfxml_random_std___deviation_isset = 0;
5905   AX_surfxml_random_seed = 5;
5906   surfxml_random_seed_isset = 0;
5907   AX_surfxml_random_radical = 0;
5908   surfxml_random_radical_isset = 0;
5909   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5910   surfxml_random_generator_isset = 0;
5911   ENTER(AL_surfxml_random); pushbuffer(0);
5912   }
5913         YY_BREAK
5914
5915 case 54:
5916 /* rule 54 can match eol */
5917 YY_RULE_SETUP
5918 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);
5919         YY_BREAK
5920 case 55:
5921 /* rule 55 can match eol */
5922 YY_RULE_SETUP
5923 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);
5924         YY_BREAK
5925 case 56:
5926 /* rule 56 can match eol */
5927 YY_RULE_SETUP
5928 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);
5929         YY_BREAK
5930 case 57:
5931 /* rule 57 can match eol */
5932 YY_RULE_SETUP
5933 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);
5934         YY_BREAK
5935 case 58:
5936 /* rule 58 can match eol */
5937 YY_RULE_SETUP
5938 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);
5939         YY_BREAK
5940 case 59:
5941 /* rule 59 can match eol */
5942 YY_RULE_SETUP
5943 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);
5944         YY_BREAK
5945 case 60:
5946 /* rule 60 can match eol */
5947 YY_RULE_SETUP
5948 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);
5949         YY_BREAK
5950 case 61:
5951 /* rule 61 can match eol */
5952 YY_RULE_SETUP
5953 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);
5954         YY_BREAK
5955 case 62:
5956 /* rule 62 can match eol */
5957 YY_RULE_SETUP
5958 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);
5959         YY_BREAK
5960 case 63:
5961 /* rule 63 can match eol */
5962 YY_RULE_SETUP
5963 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);
5964         YY_BREAK
5965 case 64:
5966 /* rule 64 can match eol */
5967 YY_RULE_SETUP
5968 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);
5969         YY_BREAK
5970 case 65:
5971 /* rule 65 can match eol */
5972 YY_RULE_SETUP
5973 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);
5974         YY_BREAK
5975 case 66:
5976 /* rule 66 can match eol */
5977 YY_RULE_SETUP
5978 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);
5979         YY_BREAK
5980 case 67:
5981 /* rule 67 can match eol */
5982 YY_RULE_SETUP
5983 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);
5984         YY_BREAK
5985 case 68:
5986 /* rule 68 can match eol */
5987 case 69:
5988 /* rule 69 can match eol */
5989 YY_RULE_SETUP
5990 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5991         YY_BREAK
5992 case 70:
5993 /* rule 70 can match eol */
5994 case 71:
5995 /* rule 71 can match eol */
5996 YY_RULE_SETUP
5997 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5998         YY_BREAK
5999 case 72:
6000 /* rule 72 can match eol */
6001 case 73:
6002 /* rule 73 can match eol */
6003 YY_RULE_SETUP
6004 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6005         YY_BREAK
6006 case 74:
6007 /* rule 74 can match eol */
6008 case 75:
6009 /* rule 75 can match eol */
6010 YY_RULE_SETUP
6011 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6012         YY_BREAK
6013 case 76:
6014 YY_RULE_SETUP
6015 {
6016   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6017   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6018   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6019   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6020   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6021   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6022  }
6023         YY_BREAK
6024 case 77:
6025 YY_RULE_SETUP
6026 {
6027   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6028   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6029   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6030   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6031   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6032   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6033   switch (YY_START) {
6034    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6035   }
6036  }
6037         YY_BREAK
6038 case 78:
6039 YY_RULE_SETUP
6040 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6041         YY_BREAK
6042 case 79:
6043 YY_RULE_SETUP
6044 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6045         YY_BREAK
6046 case YY_STATE_EOF(AL_surfxml_random):
6047 FAIL("EOF in attribute list of `random' element.");
6048         YY_BREAK
6049
6050 case 80:
6051 /* rule 80 can match eol */
6052 YY_RULE_SETUP
6053 {
6054   LEAVE;
6055   ETag_surfxml_random();
6056   popbuffer(); /* attribute */
6057   switch (YY_START) {
6058    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6059   }
6060  }
6061         YY_BREAK
6062 case 81:
6063 /* rule 81 can match eol */
6064 YY_RULE_SETUP
6065 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6066         YY_BREAK
6067 case 82:
6068 YY_RULE_SETUP
6069 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6070         YY_BREAK
6071 case YY_STATE_EOF(E_surfxml_random):
6072 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6073         YY_BREAK
6074
6075 case 83:
6076 /* rule 83 can match eol */
6077 YY_RULE_SETUP
6078 FAIL("Starting tag <trace_connect> is not allowed here.");
6079         YY_BREAK
6080 case 84:
6081 /* rule 84 can match eol */
6082 YY_RULE_SETUP
6083 {
6084   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6085   surfxml_trace___connect_kind_isset = 0;
6086   AX_surfxml_trace___connect_trace = 0;
6087   surfxml_trace___connect_trace_isset = 0;
6088   AX_surfxml_trace___connect_element = 0;
6089   surfxml_trace___connect_element_isset = 0;
6090   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6091   }
6092         YY_BREAK
6093
6094 case 85:
6095 /* rule 85 can match eol */
6096 case 86:
6097 /* rule 86 can match eol */
6098 YY_RULE_SETUP
6099 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6100         YY_BREAK
6101 case 87:
6102 /* rule 87 can match eol */
6103 case 88:
6104 /* rule 88 can match eol */
6105 YY_RULE_SETUP
6106 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6107         YY_BREAK
6108 case 89:
6109 /* rule 89 can match eol */
6110 case 90:
6111 /* rule 90 can match eol */
6112 YY_RULE_SETUP
6113 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6114         YY_BREAK
6115 case 91:
6116 /* rule 91 can match eol */
6117 case 92:
6118 /* rule 92 can match eol */
6119 YY_RULE_SETUP
6120 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6121         YY_BREAK
6122 case 93:
6123 /* rule 93 can match eol */
6124 case 94:
6125 /* rule 94 can match eol */
6126 YY_RULE_SETUP
6127 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6128         YY_BREAK
6129 case 95:
6130 /* rule 95 can match eol */
6131 YY_RULE_SETUP
6132 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);
6133         YY_BREAK
6134 case 96:
6135 /* rule 96 can match eol */
6136 YY_RULE_SETUP
6137 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);
6138         YY_BREAK
6139 case 97:
6140 /* rule 97 can match eol */
6141 YY_RULE_SETUP
6142 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);
6143         YY_BREAK
6144 case 98:
6145 /* rule 98 can match eol */
6146 YY_RULE_SETUP
6147 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);
6148         YY_BREAK
6149 case 99:
6150 YY_RULE_SETUP
6151 {
6152   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6153   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6154   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6155  }
6156         YY_BREAK
6157 case 100:
6158 YY_RULE_SETUP
6159 {
6160   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6161   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6162   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6163   switch (YY_START) {
6164    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6165    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6166    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6167    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;
6168    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6169    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6170    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6171   }
6172  }
6173         YY_BREAK
6174 case 101:
6175 YY_RULE_SETUP
6176 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6177         YY_BREAK
6178 case 102:
6179 YY_RULE_SETUP
6180 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6181         YY_BREAK
6182 case YY_STATE_EOF(AL_surfxml_trace___connect):
6183 FAIL("EOF in attribute list of `trace_connect' element.");
6184         YY_BREAK
6185
6186 case 103:
6187 /* rule 103 can match eol */
6188 YY_RULE_SETUP
6189 {
6190   LEAVE;
6191   ETag_surfxml_trace___connect();
6192   popbuffer(); /* attribute */
6193   switch (YY_START) {
6194    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6195    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6196    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6197    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;
6198    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6199    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6200    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6201   }
6202  }
6203         YY_BREAK
6204 case 104:
6205 /* rule 104 can match eol */
6206 YY_RULE_SETUP
6207 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6208         YY_BREAK
6209 case 105:
6210 YY_RULE_SETUP
6211 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6212         YY_BREAK
6213 case YY_STATE_EOF(E_surfxml_trace___connect):
6214 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6215         YY_BREAK
6216
6217 case 106:
6218 /* rule 106 can match eol */
6219 YY_RULE_SETUP
6220 FAIL("Starting tag <AS> is not allowed here.");
6221         YY_BREAK
6222 case 107:
6223 /* rule 107 can match eol */
6224 YY_RULE_SETUP
6225 {
6226   AX_surfxml_AS_id = 0;
6227   surfxml_AS_id_isset = 0;
6228   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6229   surfxml_AS_routing_isset = 0;
6230   ENTER(AL_surfxml_AS); pushbuffer(0);
6231   }
6232         YY_BREAK
6233
6234 case 108:
6235 /* rule 108 can match eol */
6236 YY_RULE_SETUP
6237 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);
6238         YY_BREAK
6239 case 109:
6240 /* rule 109 can match eol */
6241 YY_RULE_SETUP
6242 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);
6243         YY_BREAK
6244 case 110:
6245 /* rule 110 can match eol */
6246 case 111:
6247 /* rule 111 can match eol */
6248 YY_RULE_SETUP
6249 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6250         YY_BREAK
6251 case 112:
6252 /* rule 112 can match eol */
6253 case 113:
6254 /* rule 113 can match eol */
6255 YY_RULE_SETUP
6256 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6257         YY_BREAK
6258 case 114:
6259 /* rule 114 can match eol */
6260 case 115:
6261 /* rule 115 can match eol */
6262 YY_RULE_SETUP
6263 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6264         YY_BREAK
6265 case 116:
6266 /* rule 116 can match eol */
6267 case 117:
6268 /* rule 117 can match eol */
6269 YY_RULE_SETUP
6270 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6271         YY_BREAK
6272 case 118:
6273 /* rule 118 can match eol */
6274 case 119:
6275 /* rule 119 can match eol */
6276 YY_RULE_SETUP
6277 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6278         YY_BREAK
6279 case 120:
6280 /* rule 120 can match eol */
6281 case 121:
6282 /* rule 121 can match eol */
6283 YY_RULE_SETUP
6284 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6285         YY_BREAK
6286 case 122:
6287 /* rule 122 can match eol */
6288 case 123:
6289 /* rule 123 can match eol */
6290 YY_RULE_SETUP
6291 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6292         YY_BREAK
6293 case 124:
6294 YY_RULE_SETUP
6295 {
6296   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6297   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6298  }
6299         YY_BREAK
6300 case 125:
6301 YY_RULE_SETUP
6302 {
6303   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6304   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6305   switch (YY_START) {
6306    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;
6307    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;
6308    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6309   }
6310  }
6311         YY_BREAK
6312 case 126:
6313 YY_RULE_SETUP
6314 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6315         YY_BREAK
6316 case 127:
6317 YY_RULE_SETUP
6318 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6319         YY_BREAK
6320 case YY_STATE_EOF(AL_surfxml_AS):
6321 FAIL("EOF in attribute list of `AS' element.");
6322         YY_BREAK
6323
6324 case 128:
6325 /* rule 128 can match eol */
6326 YY_RULE_SETUP
6327 {
6328   LEAVE;
6329   ETag_surfxml_AS();
6330   popbuffer(); /* attribute */
6331   switch (YY_START) {
6332    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;
6333    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;
6334    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6335   }
6336  }
6337         YY_BREAK
6338 case 129:
6339 /* rule 129 can match eol */
6340 YY_RULE_SETUP
6341 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6342         YY_BREAK
6343 case 130:
6344 YY_RULE_SETUP
6345 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6346         YY_BREAK
6347 case YY_STATE_EOF(S_surfxml_AS_12):
6348 case YY_STATE_EOF(S_surfxml_AS_9):
6349 case YY_STATE_EOF(S_surfxml_AS_1):
6350 case YY_STATE_EOF(S_surfxml_AS_7):
6351 case YY_STATE_EOF(S_surfxml_AS_11):
6352 case YY_STATE_EOF(S_surfxml_AS_14):
6353 case YY_STATE_EOF(S_surfxml_AS_6):
6354 case YY_STATE_EOF(E_surfxml_AS):
6355 case YY_STATE_EOF(S_surfxml_AS_16):
6356 case YY_STATE_EOF(S_surfxml_AS_3):
6357 case YY_STATE_EOF(S_surfxml_AS):
6358 case YY_STATE_EOF(S_surfxml_AS_4):
6359 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6360         YY_BREAK
6361
6362 case 131:
6363 /* rule 131 can match eol */
6364 YY_RULE_SETUP
6365 FAIL("Starting tag <storage_type> is not allowed here.");
6366         YY_BREAK
6367 case 132:
6368 /* rule 132 can match eol */
6369 YY_RULE_SETUP
6370 {
6371   AX_surfxml_storage___type_id = 0;
6372   surfxml_storage___type_id_isset = 0;
6373   AX_surfxml_storage___type_model = 0;
6374   surfxml_storage___type_model_isset = 0;
6375   AX_surfxml_storage___type_size = 0;
6376   surfxml_storage___type_size_isset = 0;
6377   AX_surfxml_storage___type_content = 0;
6378   surfxml_storage___type_content_isset = 0;
6379   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6380   }
6381         YY_BREAK
6382
6383 case 133:
6384 /* rule 133 can match eol */
6385 YY_RULE_SETUP
6386 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);
6387         YY_BREAK
6388 case 134:
6389 /* rule 134 can match eol */
6390 YY_RULE_SETUP
6391 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);
6392         YY_BREAK
6393 case 135:
6394 /* rule 135 can match eol */
6395 YY_RULE_SETUP
6396 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);
6397         YY_BREAK
6398 case 136:
6399 /* rule 136 can match eol */
6400 YY_RULE_SETUP
6401 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);
6402         YY_BREAK
6403 case 137:
6404 /* rule 137 can match eol */
6405 YY_RULE_SETUP
6406 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);
6407         YY_BREAK
6408 case 138:
6409 /* rule 138 can match eol */
6410 YY_RULE_SETUP
6411 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);
6412         YY_BREAK
6413 case 139:
6414 /* rule 139 can match eol */
6415 YY_RULE_SETUP
6416 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);
6417         YY_BREAK
6418 case 140:
6419 /* rule 140 can match eol */
6420 YY_RULE_SETUP
6421 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);
6422         YY_BREAK
6423 case 141:
6424 YY_RULE_SETUP
6425 {
6426   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6427   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6428   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6429   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6430  }
6431         YY_BREAK
6432 case 142:
6433 YY_RULE_SETUP
6434 {
6435   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6436   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6437   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6438   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6439   switch (YY_START) {
6440    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6441    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6442   }
6443  }
6444         YY_BREAK
6445 case 143:
6446 YY_RULE_SETUP
6447 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6448         YY_BREAK
6449 case 144:
6450 YY_RULE_SETUP
6451 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6452         YY_BREAK
6453 case YY_STATE_EOF(AL_surfxml_storage___type):
6454 FAIL("EOF in attribute list of `storage_type' element.");
6455         YY_BREAK
6456
6457 case 145:
6458 /* rule 145 can match eol */
6459 YY_RULE_SETUP
6460 {
6461   LEAVE;
6462   ETag_surfxml_storage___type();
6463   popbuffer(); /* attribute */
6464   switch (YY_START) {
6465    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6466    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6467   }
6468  }
6469         YY_BREAK
6470 case 146:
6471 /* rule 146 can match eol */
6472 YY_RULE_SETUP
6473 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6474         YY_BREAK
6475 case 147:
6476 YY_RULE_SETUP
6477 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6478         YY_BREAK
6479 case YY_STATE_EOF(E_surfxml_storage___type):
6480 case YY_STATE_EOF(S_surfxml_storage___type):
6481 case YY_STATE_EOF(S_surfxml_storage___type_2):
6482 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6483         YY_BREAK
6484
6485 case 148:
6486 /* rule 148 can match eol */
6487 YY_RULE_SETUP
6488 FAIL("Starting tag <storage> is not allowed here.");
6489         YY_BREAK
6490 case 149:
6491 /* rule 149 can match eol */
6492 YY_RULE_SETUP
6493 {
6494   AX_surfxml_storage_id = 0;
6495   surfxml_storage_id_isset = 0;
6496   AX_surfxml_storage_typeId = 0;
6497   surfxml_storage_typeId_isset = 0;
6498   AX_surfxml_storage_content = 0;
6499   surfxml_storage_content_isset = 0;
6500   ENTER(AL_surfxml_storage); pushbuffer(0);
6501   }
6502         YY_BREAK
6503
6504 case 150:
6505 /* rule 150 can match eol */
6506 YY_RULE_SETUP
6507 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);
6508         YY_BREAK
6509 case 151:
6510 /* rule 151 can match eol */
6511 YY_RULE_SETUP
6512 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);
6513         YY_BREAK
6514 case 152:
6515 /* rule 152 can match eol */
6516 YY_RULE_SETUP
6517 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);
6518         YY_BREAK
6519 case 153:
6520 /* rule 153 can match eol */
6521 YY_RULE_SETUP
6522 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);
6523         YY_BREAK
6524 case 154:
6525 /* rule 154 can match eol */
6526 YY_RULE_SETUP
6527 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);
6528         YY_BREAK
6529 case 155:
6530 /* rule 155 can match eol */
6531 YY_RULE_SETUP
6532 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);
6533         YY_BREAK
6534 case 156:
6535 YY_RULE_SETUP
6536 {
6537   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6538   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6539   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6540  }
6541         YY_BREAK
6542 case 157:
6543 YY_RULE_SETUP
6544 {
6545   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6546   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6547   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6548   switch (YY_START) {
6549    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6550    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6551   }
6552  }
6553         YY_BREAK
6554 case 158:
6555 YY_RULE_SETUP
6556 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6557         YY_BREAK
6558 case 159:
6559 YY_RULE_SETUP
6560 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6561         YY_BREAK
6562 case YY_STATE_EOF(AL_surfxml_storage):
6563 FAIL("EOF in attribute list of `storage' element.");
6564         YY_BREAK
6565
6566 case 160:
6567 /* rule 160 can match eol */
6568 YY_RULE_SETUP
6569 {
6570   LEAVE;
6571   ETag_surfxml_storage();
6572   popbuffer(); /* attribute */
6573   switch (YY_START) {
6574    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6575    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6576   }
6577  }
6578         YY_BREAK
6579 case 161:
6580 /* rule 161 can match eol */
6581 YY_RULE_SETUP
6582 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6583         YY_BREAK
6584 case 162:
6585 YY_RULE_SETUP
6586 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6587         YY_BREAK
6588 case YY_STATE_EOF(E_surfxml_storage):
6589 case YY_STATE_EOF(S_surfxml_storage):
6590 case YY_STATE_EOF(S_surfxml_storage_2):
6591 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6592         YY_BREAK
6593
6594 case 163:
6595 /* rule 163 can match eol */
6596 YY_RULE_SETUP
6597 FAIL("Starting tag <mount> is not allowed here.");
6598         YY_BREAK
6599 case 164:
6600 /* rule 164 can match eol */
6601 YY_RULE_SETUP
6602 {
6603   AX_surfxml_mount_id = 0;
6604   surfxml_mount_id_isset = 0;
6605   AX_surfxml_mount_name = 0;
6606   surfxml_mount_name_isset = 0;
6607   ENTER(AL_surfxml_mount); pushbuffer(0);
6608   }
6609         YY_BREAK
6610
6611 case 165:
6612 /* rule 165 can match eol */
6613 YY_RULE_SETUP
6614 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);
6615         YY_BREAK
6616 case 166:
6617 /* rule 166 can match eol */
6618 YY_RULE_SETUP
6619 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);
6620         YY_BREAK
6621 case 167:
6622 /* rule 167 can match eol */
6623 YY_RULE_SETUP
6624 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);
6625         YY_BREAK
6626 case 168:
6627 /* rule 168 can match eol */
6628 YY_RULE_SETUP
6629 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);
6630         YY_BREAK
6631 case 169:
6632 YY_RULE_SETUP
6633 {
6634   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6635   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6636   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6637  }
6638         YY_BREAK
6639 case 170:
6640 YY_RULE_SETUP
6641 {
6642   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6643   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6644   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6645   switch (YY_START) {
6646    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6647   }
6648  }
6649         YY_BREAK
6650 case 171:
6651 YY_RULE_SETUP
6652 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6653         YY_BREAK
6654 case 172:
6655 YY_RULE_SETUP
6656 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6657         YY_BREAK
6658 case YY_STATE_EOF(AL_surfxml_mount):
6659 FAIL("EOF in attribute list of `mount' element.");
6660         YY_BREAK
6661
6662 case 173:
6663 /* rule 173 can match eol */
6664 YY_RULE_SETUP
6665 {
6666   LEAVE;
6667   ETag_surfxml_mount();
6668   popbuffer(); /* attribute */
6669   switch (YY_START) {
6670    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6671   }
6672  }
6673         YY_BREAK
6674 case 174:
6675 /* rule 174 can match eol */
6676 YY_RULE_SETUP
6677 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6678         YY_BREAK
6679 case 175:
6680 YY_RULE_SETUP
6681 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6682         YY_BREAK
6683 case YY_STATE_EOF(E_surfxml_mount):
6684 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6685         YY_BREAK
6686
6687 case 176:
6688 /* rule 176 can match eol */
6689 YY_RULE_SETUP
6690 FAIL("Starting tag <mstorage> is not allowed here.");
6691         YY_BREAK
6692 case 177:
6693 /* rule 177 can match eol */
6694 YY_RULE_SETUP
6695 {
6696   AX_surfxml_mstorage_typeId = 0;
6697   surfxml_mstorage_typeId_isset = 0;
6698   AX_surfxml_mstorage_name = 0;
6699   surfxml_mstorage_name_isset = 0;
6700   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6701   }
6702         YY_BREAK
6703
6704 case 178:
6705 /* rule 178 can match eol */
6706 YY_RULE_SETUP
6707 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);
6708         YY_BREAK
6709 case 179:
6710 /* rule 179 can match eol */
6711 YY_RULE_SETUP
6712 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);
6713         YY_BREAK
6714 case 180:
6715 /* rule 180 can match eol */
6716 YY_RULE_SETUP
6717 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);
6718         YY_BREAK
6719 case 181:
6720 /* rule 181 can match eol */
6721 YY_RULE_SETUP
6722 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);
6723         YY_BREAK
6724 case 182:
6725 YY_RULE_SETUP
6726 {
6727   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6728   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6729   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6730  }
6731         YY_BREAK
6732 case 183:
6733 YY_RULE_SETUP
6734 {
6735   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6736   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6737   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6738   switch (YY_START) {
6739    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6740   }
6741  }
6742         YY_BREAK
6743 case 184:
6744 YY_RULE_SETUP
6745 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6746         YY_BREAK
6747 case 185:
6748 YY_RULE_SETUP
6749 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6750         YY_BREAK
6751 case YY_STATE_EOF(AL_surfxml_mstorage):
6752 FAIL("EOF in attribute list of `mstorage' element.");
6753         YY_BREAK
6754
6755 case 186:
6756 /* rule 186 can match eol */
6757 YY_RULE_SETUP
6758 {
6759   LEAVE;
6760   ETag_surfxml_mstorage();
6761   popbuffer(); /* attribute */
6762   switch (YY_START) {
6763    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6764   }
6765  }
6766         YY_BREAK
6767 case 187:
6768 /* rule 187 can match eol */
6769 YY_RULE_SETUP
6770 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6771         YY_BREAK
6772 case 188:
6773 YY_RULE_SETUP
6774 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6775         YY_BREAK
6776 case YY_STATE_EOF(E_surfxml_mstorage):
6777 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6778         YY_BREAK
6779
6780 case 189:
6781 /* rule 189 can match eol */
6782 YY_RULE_SETUP
6783 FAIL("Starting tag <host> is not allowed here.");
6784         YY_BREAK
6785 case 190:
6786 /* rule 190 can match eol */
6787 YY_RULE_SETUP
6788 {
6789   AX_surfxml_host_id = 0;
6790   surfxml_host_id_isset = 0;
6791   AX_surfxml_host_power = 0;
6792   surfxml_host_power_isset = 0;
6793   AX_surfxml_host_core = 16;
6794   surfxml_host_core_isset = 0;
6795   AX_surfxml_host_availability = 18;
6796   surfxml_host_availability_isset = 0;
6797   AX_surfxml_host_availability___file = 0;
6798   surfxml_host_availability___file_isset = 0;
6799   AX_surfxml_host_state = A_surfxml_host_state_ON;
6800   surfxml_host_state_isset = 0;
6801   AX_surfxml_host_state___file = 0;
6802   surfxml_host_state___file_isset = 0;
6803   AX_surfxml_host_coordinates = 0;
6804   surfxml_host_coordinates_isset = 0;
6805   AX_surfxml_host_pstate = 22;
6806   surfxml_host_pstate_isset = 0;
6807   ENTER(AL_surfxml_host); pushbuffer(0);
6808   }
6809         YY_BREAK
6810
6811 case 191:
6812 /* rule 191 can match eol */
6813 YY_RULE_SETUP
6814 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);
6815         YY_BREAK
6816 case 192:
6817 /* rule 192 can match eol */
6818 YY_RULE_SETUP
6819 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);
6820         YY_BREAK
6821 case 193:
6822 /* rule 193 can match eol */
6823 YY_RULE_SETUP
6824 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);
6825         YY_BREAK
6826 case 194:
6827 /* rule 194 can match eol */
6828 YY_RULE_SETUP
6829 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);
6830         YY_BREAK
6831 case 195:
6832 /* rule 195 can match eol */
6833 YY_RULE_SETUP
6834 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);
6835         YY_BREAK
6836 case 196:
6837 /* rule 196 can match eol */
6838 YY_RULE_SETUP
6839 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);
6840         YY_BREAK
6841 case 197:
6842 /* rule 197 can match eol */
6843 YY_RULE_SETUP
6844 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);
6845         YY_BREAK
6846 case 198:
6847 /* rule 198 can match eol */
6848 YY_RULE_SETUP
6849 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);
6850         YY_BREAK
6851 case 199:
6852 /* rule 199 can match eol */
6853 YY_RULE_SETUP
6854 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);
6855         YY_BREAK
6856 case 200:
6857 /* rule 200 can match eol */
6858 YY_RULE_SETUP
6859 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);
6860         YY_BREAK
6861 case 201:
6862 /* rule 201 can match eol */
6863 case 202:
6864 /* rule 202 can match eol */
6865 YY_RULE_SETUP
6866 A_surfxml_host_state = A_surfxml_host_state_ON;
6867         YY_BREAK
6868 case 203:
6869 /* rule 203 can match eol */
6870 case 204:
6871 /* rule 204 can match eol */
6872 YY_RULE_SETUP
6873 A_surfxml_host_state = A_surfxml_host_state_OFF;
6874         YY_BREAK
6875 case 205:
6876 /* rule 205 can match eol */
6877 YY_RULE_SETUP
6878 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);
6879         YY_BREAK
6880 case 206:
6881 /* rule 206 can match eol */
6882 YY_RULE_SETUP
6883 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);
6884         YY_BREAK
6885 case 207:
6886 /* rule 207 can match eol */
6887 YY_RULE_SETUP
6888 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);
6889         YY_BREAK
6890 case 208:
6891 /* rule 208 can match eol */
6892 YY_RULE_SETUP
6893 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);
6894         YY_BREAK
6895 case 209:
6896 /* rule 209 can match eol */
6897 YY_RULE_SETUP
6898 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
6899         YY_BREAK
6900 case 210:
6901 /* rule 210 can match eol */
6902 YY_RULE_SETUP
6903 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
6904         YY_BREAK
6905 case 211:
6906 YY_RULE_SETUP
6907 {
6908   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6909   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6910   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6911  }
6912         YY_BREAK
6913 case 212:
6914 YY_RULE_SETUP
6915 {
6916   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6917   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6918   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6919   switch (YY_START) {
6920    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6921   }
6922  }
6923         YY_BREAK
6924 case 213:
6925 YY_RULE_SETUP
6926 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6927         YY_BREAK
6928 case 214:
6929 YY_RULE_SETUP
6930 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6931         YY_BREAK
6932 case YY_STATE_EOF(AL_surfxml_host):
6933 FAIL("EOF in attribute list of `host' element.");
6934         YY_BREAK
6935
6936 case 215:
6937 /* rule 215 can match eol */
6938 YY_RULE_SETUP
6939 {
6940   LEAVE;
6941   ETag_surfxml_host();
6942   popbuffer(); /* attribute */
6943   switch (YY_START) {
6944    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6945   }
6946  }
6947         YY_BREAK
6948 case 216:
6949 /* rule 216 can match eol */
6950 YY_RULE_SETUP
6951 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6952         YY_BREAK
6953 case 217:
6954 YY_RULE_SETUP
6955 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6956         YY_BREAK
6957 case YY_STATE_EOF(S_surfxml_host):
6958 case YY_STATE_EOF(E_surfxml_host):
6959 case YY_STATE_EOF(S_surfxml_host_2):
6960 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6961         YY_BREAK
6962
6963 case 218:
6964 /* rule 218 can match eol */
6965 YY_RULE_SETUP
6966 FAIL("Starting tag <gpu> is not allowed here.");
6967         YY_BREAK
6968 case 219:
6969 /* rule 219 can match eol */
6970 YY_RULE_SETUP
6971 {
6972   AX_surfxml_gpu_name = 0;
6973   surfxml_gpu_name_isset = 0;
6974   ENTER(AL_surfxml_gpu); pushbuffer(0);
6975   }
6976         YY_BREAK
6977
6978 case 220:
6979 /* rule 220 can match eol */
6980 YY_RULE_SETUP
6981 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
6982         YY_BREAK
6983 case 221:
6984 /* rule 221 can match eol */
6985 YY_RULE_SETUP
6986 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
6987         YY_BREAK
6988 case 222:
6989 YY_RULE_SETUP
6990 {
6991   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6992   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6993  }
6994         YY_BREAK
6995 case 223:
6996 YY_RULE_SETUP
6997 {
6998   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6999   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7000   switch (YY_START) {
7001    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7002   }
7003  }
7004         YY_BREAK
7005 case 224:
7006 YY_RULE_SETUP
7007 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7008         YY_BREAK
7009 case 225:
7010 YY_RULE_SETUP
7011 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7012         YY_BREAK
7013 case YY_STATE_EOF(AL_surfxml_gpu):
7014 FAIL("EOF in attribute list of `gpu' element.");
7015         YY_BREAK
7016
7017 case 226:
7018 /* rule 226 can match eol */
7019 YY_RULE_SETUP
7020 {
7021   LEAVE;
7022   ETag_surfxml_gpu();
7023   popbuffer(); /* attribute */
7024   switch (YY_START) {
7025    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7026   }
7027  }
7028         YY_BREAK
7029 case 227:
7030 /* rule 227 can match eol */
7031 YY_RULE_SETUP
7032 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7033         YY_BREAK
7034 case 228:
7035 YY_RULE_SETUP
7036 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7037         YY_BREAK
7038 case YY_STATE_EOF(E_surfxml_gpu):
7039 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7040         YY_BREAK
7041
7042 case 229:
7043 /* rule 229 can match eol */
7044 YY_RULE_SETUP
7045 FAIL("Starting tag <host_link> is not allowed here.");
7046         YY_BREAK
7047 case 230:
7048 /* rule 230 can match eol */
7049 YY_RULE_SETUP
7050 {
7051   AX_surfxml_host___link_id = 0;
7052   surfxml_host___link_id_isset = 0;
7053   AX_surfxml_host___link_up = 0;
7054   surfxml_host___link_up_isset = 0;
7055   AX_surfxml_host___link_down = 0;
7056   surfxml_host___link_down_isset = 0;
7057   ENTER(AL_surfxml_host___link); pushbuffer(0);
7058   }
7059         YY_BREAK
7060
7061 case 231:
7062 /* rule 231 can match eol */
7063 YY_RULE_SETUP
7064 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7065         YY_BREAK
7066 case 232:
7067 /* rule 232 can match eol */
7068 YY_RULE_SETUP
7069 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7070         YY_BREAK
7071 case 233:
7072 /* rule 233 can match eol */
7073 YY_RULE_SETUP
7074 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7075         YY_BREAK
7076 case 234:
7077 /* rule 234 can match eol */
7078 YY_RULE_SETUP
7079 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7080         YY_BREAK
7081 case 235:
7082 /* rule 235 can match eol */
7083 YY_RULE_SETUP
7084 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7085         YY_BREAK
7086 case 236:
7087 /* rule 236 can match eol */
7088 YY_RULE_SETUP
7089 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7090         YY_BREAK
7091 case 237:
7092 YY_RULE_SETUP
7093 {
7094   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7095   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7096   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7097   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7098  }
7099         YY_BREAK
7100 case 238:
7101 YY_RULE_SETUP
7102 {
7103   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7104   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7105   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7106   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7107   switch (YY_START) {
7108    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7109   }
7110  }
7111         YY_BREAK
7112 case 239:
7113 YY_RULE_SETUP
7114 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7115         YY_BREAK
7116 case 240:
7117 YY_RULE_SETUP
7118 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7119         YY_BREAK
7120 case YY_STATE_EOF(AL_surfxml_host___link):
7121 FAIL("EOF in attribute list of `host_link' element.");
7122         YY_BREAK
7123
7124 case 241:
7125 /* rule 241 can match eol */
7126 YY_RULE_SETUP
7127 {
7128   LEAVE;
7129   ETag_surfxml_host___link();
7130   popbuffer(); /* attribute */
7131   switch (YY_START) {
7132    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7133   }
7134  }
7135         YY_BREAK
7136 case 242:
7137 /* rule 242 can match eol */
7138 YY_RULE_SETUP
7139 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7140         YY_BREAK
7141 case 243:
7142 YY_RULE_SETUP
7143 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7144         YY_BREAK
7145 case YY_STATE_EOF(E_surfxml_host___link):
7146 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7147         YY_BREAK
7148
7149 case 244:
7150 /* rule 244 can match eol */
7151 YY_RULE_SETUP
7152 FAIL("Starting tag <cluster> is not allowed here.");
7153         YY_BREAK
7154 case 245:
7155 /* rule 245 can match eol */
7156 YY_RULE_SETUP
7157 {
7158   AX_surfxml_cluster_id = 0;
7159   surfxml_cluster_id_isset = 0;
7160   AX_surfxml_cluster_prefix = 0;
7161   surfxml_cluster_prefix_isset = 0;
7162   AX_surfxml_cluster_suffix = 0;
7163   surfxml_cluster_suffix_isset = 0;
7164   AX_surfxml_cluster_radical = 0;
7165   surfxml_cluster_radical_isset = 0;
7166   AX_surfxml_cluster_power = 0;
7167   surfxml_cluster_power_isset = 0;
7168   AX_surfxml_cluster_core = 26;
7169   surfxml_cluster_core_isset = 0;
7170   AX_surfxml_cluster_bw = 0;
7171   surfxml_cluster_bw_isset = 0;
7172   AX_surfxml_cluster_lat = 0;
7173   surfxml_cluster_lat_isset = 0;
7174   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7175   surfxml_cluster_sharing___policy_isset = 0;
7176   AX_surfxml_cluster_bb___bw = 0;
7177   surfxml_cluster_bb___bw_isset = 0;
7178   AX_surfxml_cluster_bb___lat = 0;
7179   surfxml_cluster_bb___lat_isset = 0;
7180   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7181   surfxml_cluster_bb___sharing___policy_isset = 0;
7182   AX_surfxml_cluster_availability___file = 0;
7183   surfxml_cluster_availability___file_isset = 0;
7184   AX_surfxml_cluster_state___file = 0;
7185   surfxml_cluster_state___file_isset = 0;
7186   AX_surfxml_cluster_router___id = 0;
7187   surfxml_cluster_router___id_isset = 0;
7188   AX_surfxml_cluster_limiter___link = 0;
7189   surfxml_cluster_limiter___link_isset = 0;
7190   AX_surfxml_cluster_loopback___bw = 0;
7191   surfxml_cluster_loopback___bw_isset = 0;
7192   AX_surfxml_cluster_loopback___lat = 0;
7193   surfxml_cluster_loopback___lat_isset = 0;
7194   ENTER(AL_surfxml_cluster); pushbuffer(0);
7195   }
7196         YY_BREAK
7197
7198 case 246:
7199 /* rule 246 can match eol */
7200 YY_RULE_SETUP
7201 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);
7202         YY_BREAK
7203 case 247:
7204 /* rule 247 can match eol */
7205 YY_RULE_SETUP
7206 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);
7207         YY_BREAK
7208 case 248:
7209 /* rule 248 can match eol */
7210 YY_RULE_SETUP
7211 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);
7212         YY_BREAK
7213 case 249:
7214 /* rule 249 can match eol */
7215 YY_RULE_SETUP
7216 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);
7217         YY_BREAK
7218 case 250:
7219 /* rule 250 can match eol */
7220 YY_RULE_SETUP
7221 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);
7222         YY_BREAK
7223 case 251:
7224 /* rule 251 can match eol */
7225 YY_RULE_SETUP
7226 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);
7227         YY_BREAK
7228 case 252:
7229 /* rule 252 can match eol */
7230 YY_RULE_SETUP
7231 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);
7232         YY_BREAK
7233 case 253:
7234 /* rule 253 can match eol */
7235 YY_RULE_SETUP
7236 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);
7237         YY_BREAK
7238 case 254:
7239 /* rule 254 can match eol */
7240 YY_RULE_SETUP
7241 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);
7242         YY_BREAK
7243 case 255:
7244 /* rule 255 can match eol */
7245 YY_RULE_SETUP
7246 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);
7247         YY_BREAK
7248 case 256:
7249 /* rule 256 can match eol */
7250 YY_RULE_SETUP
7251 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);
7252         YY_BREAK
7253 case 257:
7254 /* rule 257 can match eol */
7255 YY_RULE_SETUP
7256 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);
7257         YY_BREAK
7258 case 258:
7259 /* rule 258 can match eol */
7260 YY_RULE_SETUP
7261 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);
7262         YY_BREAK
7263 case 259:
7264 /* rule 259 can match eol */
7265 YY_RULE_SETUP
7266 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);
7267         YY_BREAK
7268 case 260:
7269 /* rule 260 can match eol */
7270 YY_RULE_SETUP
7271 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);
7272         YY_BREAK
7273 case 261:
7274 /* rule 261 can match eol */
7275 YY_RULE_SETUP
7276 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);
7277         YY_BREAK
7278 case 262:
7279 /* rule 262 can match eol */
7280 case 263:
7281 /* rule 263 can match eol */
7282 YY_RULE_SETUP
7283 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7284         YY_BREAK
7285 case 264:
7286 /* rule 264 can match eol */
7287 case 265:
7288 /* rule 265 can match eol */
7289 YY_RULE_SETUP
7290 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7291         YY_BREAK
7292 case 266:
7293 /* rule 266 can match eol */
7294 case 267:
7295 /* rule 267 can match eol */
7296 YY_RULE_SETUP
7297 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7298         YY_BREAK
7299 case 268:
7300 /* rule 268 can match eol */
7301 YY_RULE_SETUP
7302 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);
7303         YY_BREAK
7304 case 269:
7305 /* rule 269 can match eol */
7306 YY_RULE_SETUP
7307 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);
7308         YY_BREAK
7309 case 270:
7310 /* rule 270 can match eol */
7311 YY_RULE_SETUP
7312 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);
7313         YY_BREAK
7314 case 271:
7315 /* rule 271 can match eol */
7316 YY_RULE_SETUP
7317 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);
7318         YY_BREAK
7319 case 272:
7320 /* rule 272 can match eol */
7321 case 273:
7322 /* rule 273 can match eol */
7323 YY_RULE_SETUP
7324 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7325         YY_BREAK
7326 case 274:
7327 /* rule 274 can match eol */
7328 case 275:
7329 /* rule 275 can match eol */
7330 YY_RULE_SETUP
7331 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7332         YY_BREAK
7333 case 276:
7334 /* rule 276 can match eol */
7335 YY_RULE_SETUP
7336 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);
7337         YY_BREAK
7338 case 277:
7339 /* rule 277 can match eol */
7340 YY_RULE_SETUP
7341 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);
7342         YY_BREAK
7343 case 278:
7344 /* rule 278 can match eol */
7345 YY_RULE_SETUP
7346 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);
7347         YY_BREAK
7348 case 279:
7349 /* rule 279 can match eol */
7350 YY_RULE_SETUP
7351 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);
7352         YY_BREAK
7353 case 280:
7354 /* rule 280 can match eol */
7355 YY_RULE_SETUP
7356 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);
7357         YY_BREAK
7358 case 281:
7359 /* rule 281 can match eol */
7360 YY_RULE_SETUP
7361 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);
7362         YY_BREAK
7363 case 282:
7364 /* rule 282 can match eol */
7365 YY_RULE_SETUP
7366 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7367         YY_BREAK
7368 case 283:
7369 /* rule 283 can match eol */
7370 YY_RULE_SETUP
7371 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7372         YY_BREAK
7373 case 284:
7374 /* rule 284 can match eol */
7375 YY_RULE_SETUP
7376 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7377         YY_BREAK
7378 case 285:
7379 /* rule 285 can match eol */
7380 YY_RULE_SETUP
7381 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7382         YY_BREAK
7383 case 286:
7384 /* rule 286 can match eol */
7385 YY_RULE_SETUP
7386 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7387         YY_BREAK
7388 case 287:
7389 /* rule 287 can match eol */
7390 YY_RULE_SETUP
7391 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7392         YY_BREAK
7393 case 288:
7394 YY_RULE_SETUP
7395 {
7396   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7397   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7398   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7399   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7400   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7401   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7402   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7403   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7404  }
7405         YY_BREAK
7406 case 289:
7407 YY_RULE_SETUP
7408 {
7409   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7410   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7411   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7412   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7413   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7414   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7415   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7416   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7417   switch (YY_START) {
7418    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;
7419    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;
7420    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7421   }
7422  }
7423         YY_BREAK
7424 case 290:
7425 YY_RULE_SETUP
7426 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7427         YY_BREAK
7428 case 291:
7429 YY_RULE_SETUP
7430 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7431         YY_BREAK
7432 case YY_STATE_EOF(AL_surfxml_cluster):
7433 FAIL("EOF in attribute list of `cluster' element.");
7434         YY_BREAK
7435
7436 case 292:
7437 /* rule 292 can match eol */
7438 YY_RULE_SETUP
7439 {
7440   LEAVE;
7441   ETag_surfxml_cluster();
7442   popbuffer(); /* attribute */
7443   switch (YY_START) {
7444    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;
7445    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;
7446    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7447   }
7448  }
7449         YY_BREAK
7450 case 293:
7451 /* rule 293 can match eol */
7452 YY_RULE_SETUP
7453 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7454         YY_BREAK
7455 case 294:
7456 YY_RULE_SETUP
7457 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7458         YY_BREAK
7459 case YY_STATE_EOF(E_surfxml_cluster):
7460 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7461         YY_BREAK
7462
7463 case 295:
7464 /* rule 295 can match eol */
7465 YY_RULE_SETUP
7466 FAIL("Starting tag <cabinet> is not allowed here.");
7467         YY_BREAK
7468 case 296:
7469 /* rule 296 can match eol */
7470 YY_RULE_SETUP
7471 {
7472   AX_surfxml_cabinet_id = 0;
7473   surfxml_cabinet_id_isset = 0;
7474   AX_surfxml_cabinet_prefix = 0;
7475   surfxml_cabinet_prefix_isset = 0;
7476   AX_surfxml_cabinet_suffix = 0;
7477   surfxml_cabinet_suffix_isset = 0;
7478   AX_surfxml_cabinet_radical = 0;
7479   surfxml_cabinet_radical_isset = 0;
7480   AX_surfxml_cabinet_power = 0;
7481   surfxml_cabinet_power_isset = 0;
7482   AX_surfxml_cabinet_bw = 0;
7483   surfxml_cabinet_bw_isset = 0;
7484   AX_surfxml_cabinet_lat = 0;
7485   surfxml_cabinet_lat_isset = 0;
7486   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7487   }
7488         YY_BREAK
7489
7490 case 297:
7491 /* rule 297 can match eol */
7492 YY_RULE_SETUP
7493 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7494         YY_BREAK
7495 case 298:
7496 /* rule 298 can match eol */
7497 YY_RULE_SETUP
7498 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7499         YY_BREAK
7500 case 299:
7501 /* rule 299 can match eol */
7502 YY_RULE_SETUP
7503 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7504         YY_BREAK
7505 case 300:
7506 /* rule 300 can match eol */
7507 YY_RULE_SETUP
7508 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7509         YY_BREAK
7510 case 301:
7511 /* rule 301 can match eol */
7512 YY_RULE_SETUP
7513 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7514         YY_BREAK
7515 case 302:
7516 /* rule 302 can match eol */
7517 YY_RULE_SETUP
7518 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7519         YY_BREAK
7520 case 303:
7521 /* rule 303 can match eol */
7522 YY_RULE_SETUP
7523 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7524         YY_BREAK
7525 case 304:
7526 /* rule 304 can match eol */
7527 YY_RULE_SETUP
7528 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7529         YY_BREAK
7530 case 305:
7531 /* rule 305 can match eol */
7532 YY_RULE_SETUP
7533 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7534         YY_BREAK
7535 case 306:
7536 /* rule 306 can match eol */
7537 YY_RULE_SETUP
7538 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7539         YY_BREAK
7540 case 307:
7541 /* rule 307 can match eol */
7542 YY_RULE_SETUP
7543 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7544         YY_BREAK
7545 case 308:
7546 /* rule 308 can match eol */
7547 YY_RULE_SETUP
7548 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7549         YY_BREAK
7550 case 309:
7551 /* rule 309 can match eol */
7552 YY_RULE_SETUP
7553 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7554         YY_BREAK
7555 case 310:
7556 /* rule 310 can match eol */
7557 YY_RULE_SETUP
7558 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7559         YY_BREAK
7560 case 311:
7561 YY_RULE_SETUP
7562 {
7563   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7564   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7565   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7566   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7567   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7568   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7569   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7570   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7571  }
7572         YY_BREAK
7573 case 312:
7574 YY_RULE_SETUP
7575 {
7576   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7577   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7578   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7579   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7580   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7581   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7582   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7583   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7584   switch (YY_START) {
7585    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7586    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;
7587    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7588    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7589   }
7590  }
7591         YY_BREAK
7592 case 313:
7593 YY_RULE_SETUP
7594 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7595         YY_BREAK
7596 case 314:
7597 YY_RULE_SETUP
7598 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7599         YY_BREAK
7600 case YY_STATE_EOF(AL_surfxml_cabinet):
7601 FAIL("EOF in attribute list of `cabinet' element.");
7602         YY_BREAK
7603
7604 case 315:
7605 /* rule 315 can match eol */
7606 YY_RULE_SETUP
7607 {
7608   LEAVE;
7609   ETag_surfxml_cabinet();
7610   popbuffer(); /* attribute */
7611   switch (YY_START) {
7612    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7613    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;
7614    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7615    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7616   }
7617  }
7618         YY_BREAK
7619 case 316:
7620 /* rule 316 can match eol */
7621 YY_RULE_SETUP
7622 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7623         YY_BREAK
7624 case 317:
7625 YY_RULE_SETUP
7626 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7627         YY_BREAK
7628 case YY_STATE_EOF(E_surfxml_cabinet):
7629 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7630         YY_BREAK
7631
7632 case 318:
7633 /* rule 318 can match eol */
7634 YY_RULE_SETUP
7635 FAIL("Starting tag <peer> is not allowed here.");
7636         YY_BREAK
7637 case 319:
7638 /* rule 319 can match eol */
7639 YY_RULE_SETUP
7640 {
7641   AX_surfxml_peer_id = 0;
7642   surfxml_peer_id_isset = 0;
7643   AX_surfxml_peer_power = 0;
7644   surfxml_peer_power_isset = 0;
7645   AX_surfxml_peer_bw___in = 0;
7646   surfxml_peer_bw___in_isset = 0;
7647   AX_surfxml_peer_bw___out = 0;
7648   surfxml_peer_bw___out_isset = 0;
7649   AX_surfxml_peer_lat = 0;
7650   surfxml_peer_lat_isset = 0;
7651   AX_surfxml_peer_coordinates = 0;
7652   surfxml_peer_coordinates_isset = 0;
7653   AX_surfxml_peer_availability___file = 0;
7654   surfxml_peer_availability___file_isset = 0;
7655   AX_surfxml_peer_state___file = 0;
7656   surfxml_peer_state___file_isset = 0;
7657   ENTER(AL_surfxml_peer); pushbuffer(0);
7658   }
7659         YY_BREAK
7660
7661 case 320:
7662 /* rule 320 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 321:
7667 /* rule 321 can match eol */
7668 YY_RULE_SETUP
7669 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);
7670         YY_BREAK
7671 case 322:
7672 /* rule 322 can match eol */
7673 YY_RULE_SETUP
7674 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);
7675         YY_BREAK
7676 case 323:
7677 /* rule 323 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 324:
7682 /* rule 324 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 325:
7687 /* rule 325 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 326:
7692 /* rule 326 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 327:
7697 /* rule 327 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 328:
7702 /* rule 328 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 329:
7707 /* rule 329 can match eol */
7708 YY_RULE_SETUP
7709 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);
7710         YY_BREAK
7711 case 330:
7712 /* rule 330 can match eol */
7713 YY_RULE_SETUP
7714 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);
7715         YY_BREAK
7716 case 331:
7717 /* rule 331 can match eol */
7718 YY_RULE_SETUP
7719 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);
7720         YY_BREAK
7721 case 332:
7722 /* rule 332 can match eol */
7723 YY_RULE_SETUP
7724 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);
7725         YY_BREAK
7726 case 333:
7727 /* rule 333 can match eol */
7728 YY_RULE_SETUP
7729 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);
7730         YY_BREAK
7731 case 334:
7732 /* rule 334 can match eol */
7733 YY_RULE_SETUP
7734 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);
7735         YY_BREAK
7736 case 335:
7737 /* rule 335 can match eol */
7738 YY_RULE_SETUP
7739 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);
7740         YY_BREAK
7741 case 336:
7742 YY_RULE_SETUP
7743 {
7744   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7745   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7746   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7747   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7748   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7749   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7750  }
7751         YY_BREAK
7752 case 337:
7753 YY_RULE_SETUP
7754 {
7755   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7756   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7757   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7758   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7759   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7760   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7761   switch (YY_START) {
7762    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;
7763    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;
7764    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7765   }
7766  }
7767         YY_BREAK
7768 case 338:
7769 YY_RULE_SETUP
7770 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7771         YY_BREAK
7772 case 339:
7773 YY_RULE_SETUP
7774 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7775         YY_BREAK
7776 case YY_STATE_EOF(AL_surfxml_peer):
7777 FAIL("EOF in attribute list of `peer' element.");
7778         YY_BREAK
7779
7780 case 340:
7781 /* rule 340 can match eol */
7782 YY_RULE_SETUP
7783 {
7784   LEAVE;
7785   ETag_surfxml_peer();
7786   popbuffer(); /* attribute */
7787   switch (YY_START) {
7788    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;
7789    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;
7790    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7791   }
7792  }
7793         YY_BREAK
7794 case 341:
7795 /* rule 341 can match eol */
7796 YY_RULE_SETUP
7797 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7798         YY_BREAK
7799 case 342:
7800 YY_RULE_SETUP
7801 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7802         YY_BREAK
7803 case YY_STATE_EOF(E_surfxml_peer):
7804 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7805         YY_BREAK
7806
7807 case 343:
7808 /* rule 343 can match eol */
7809 YY_RULE_SETUP
7810 FAIL("Starting tag <router> is not allowed here.");
7811         YY_BREAK
7812 case 344:
7813 /* rule 344 can match eol */
7814 YY_RULE_SETUP
7815 {
7816   AX_surfxml_router_id = 0;
7817   surfxml_router_id_isset = 0;
7818   AX_surfxml_router_coordinates = 0;
7819   surfxml_router_coordinates_isset = 0;
7820   ENTER(AL_surfxml_router); pushbuffer(0);
7821   }
7822         YY_BREAK
7823
7824 case 345:
7825 /* rule 345 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 346:
7830 /* rule 346 can match eol */
7831 YY_RULE_SETUP
7832 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);
7833         YY_BREAK
7834 case 347:
7835 /* rule 347 can match eol */
7836 YY_RULE_SETUP
7837 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);
7838         YY_BREAK
7839 case 348:
7840 /* rule 348 can match eol */
7841 YY_RULE_SETUP
7842 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);
7843         YY_BREAK
7844 case 349:
7845 YY_RULE_SETUP
7846 {
7847   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7848   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7849  }
7850         YY_BREAK
7851 case 350:
7852 YY_RULE_SETUP
7853 {
7854   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7855   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7856   switch (YY_START) {
7857    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7858   }
7859  }
7860         YY_BREAK
7861 case 351:
7862 YY_RULE_SETUP
7863 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7864         YY_BREAK
7865 case 352:
7866 YY_RULE_SETUP
7867 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7868         YY_BREAK
7869 case YY_STATE_EOF(AL_surfxml_router):
7870 FAIL("EOF in attribute list of `router' element.");
7871         YY_BREAK
7872
7873 case 353:
7874 /* rule 353 can match eol */
7875 YY_RULE_SETUP
7876 {
7877   LEAVE;
7878   ETag_surfxml_router();
7879   popbuffer(); /* attribute */
7880   switch (YY_START) {
7881    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7882   }
7883  }
7884         YY_BREAK
7885 case 354:
7886 /* rule 354 can match eol */
7887 YY_RULE_SETUP
7888 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7889         YY_BREAK
7890 case 355:
7891 YY_RULE_SETUP
7892 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7893         YY_BREAK
7894 case YY_STATE_EOF(E_surfxml_router):
7895 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7896         YY_BREAK
7897
7898 case 356:
7899 /* rule 356 can match eol */
7900 YY_RULE_SETUP
7901 FAIL("Starting tag <backbone> is not allowed here.");
7902         YY_BREAK
7903 case 357:
7904 /* rule 357 can match eol */
7905 YY_RULE_SETUP
7906 {
7907   AX_surfxml_backbone_id = 0;
7908   surfxml_backbone_id_isset = 0;
7909   AX_surfxml_backbone_bandwidth = 0;
7910   surfxml_backbone_bandwidth_isset = 0;
7911   AX_surfxml_backbone_latency = 0;
7912   surfxml_backbone_latency_isset = 0;
7913   ENTER(AL_surfxml_backbone); pushbuffer(0);
7914   }
7915         YY_BREAK
7916
7917 case 358:
7918 /* rule 358 can match eol */
7919 YY_RULE_SETUP
7920 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7921         YY_BREAK
7922 case 359:
7923 /* rule 359 can match eol */
7924 YY_RULE_SETUP
7925 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7926         YY_BREAK
7927 case 360:
7928 /* rule 360 can match eol */
7929 YY_RULE_SETUP
7930 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7931         YY_BREAK
7932 case 361:
7933 /* rule 361 can match eol */
7934 YY_RULE_SETUP
7935 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7936         YY_BREAK
7937 case 362:
7938 /* rule 362 can match eol */
7939 YY_RULE_SETUP
7940 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7941         YY_BREAK
7942 case 363:
7943 /* rule 363 can match eol */
7944 YY_RULE_SETUP
7945 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7946         YY_BREAK
7947 case 364:
7948 YY_RULE_SETUP
7949 {
7950   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7951   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7952   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7953   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7954  }
7955         YY_BREAK
7956 case 365:
7957 YY_RULE_SETUP
7958 {
7959   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7960   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7961   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7962   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7963   switch (YY_START) {
7964    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7965    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7966   }
7967  }
7968         YY_BREAK
7969 case 366:
7970 YY_RULE_SETUP
7971 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7972         YY_BREAK
7973 case 367:
7974 YY_RULE_SETUP
7975 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7976         YY_BREAK
7977 case YY_STATE_EOF(AL_surfxml_backbone):
7978 FAIL("EOF in attribute list of `backbone' element.");
7979         YY_BREAK
7980
7981 case 368:
7982 /* rule 368 can match eol */
7983 YY_RULE_SETUP
7984 {
7985   LEAVE;
7986   ETag_surfxml_backbone();
7987   popbuffer(); /* attribute */
7988   switch (YY_START) {
7989    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7990    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7991   }
7992  }
7993         YY_BREAK
7994 case 369:
7995 /* rule 369 can match eol */
7996 YY_RULE_SETUP
7997 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7998         YY_BREAK
7999 case 370:
8000 YY_RULE_SETUP
8001 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8002         YY_BREAK
8003 case YY_STATE_EOF(E_surfxml_backbone):
8004 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8005         YY_BREAK
8006
8007 case 371:
8008 /* rule 371 can match eol */
8009 YY_RULE_SETUP
8010 FAIL("Starting tag <link> is not allowed here.");
8011         YY_BREAK
8012 case 372:
8013 /* rule 372 can match eol */
8014 YY_RULE_SETUP
8015 {
8016   AX_surfxml_link_id = 0;
8017   surfxml_link_id_isset = 0;
8018   AX_surfxml_link_bandwidth = 0;
8019   surfxml_link_bandwidth_isset = 0;
8020   AX_surfxml_link_bandwidth___file = 0;
8021   surfxml_link_bandwidth___file_isset = 0;
8022   AX_surfxml_link_latency = 28;
8023   surfxml_link_latency_isset = 0;
8024   AX_surfxml_link_latency___file = 0;
8025   surfxml_link_latency___file_isset = 0;
8026   AX_surfxml_link_state = A_surfxml_link_state_ON;
8027   surfxml_link_state_isset = 0;
8028   AX_surfxml_link_state___file = 0;
8029   surfxml_link_state___file_isset = 0;
8030   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8031   surfxml_link_sharing___policy_isset = 0;
8032   ENTER(AL_surfxml_link); pushbuffer(0);
8033   }
8034         YY_BREAK
8035
8036 case 373:
8037 /* rule 373 can match eol */
8038 YY_RULE_SETUP
8039 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);
8040         YY_BREAK
8041 case 374:
8042 /* rule 374 can match eol */
8043 YY_RULE_SETUP
8044 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);
8045         YY_BREAK
8046 case 375:
8047 /* rule 375 can match eol */
8048 YY_RULE_SETUP
8049 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);
8050         YY_BREAK
8051 case 376:
8052 /* rule 376 can match eol */
8053 YY_RULE_SETUP
8054 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);
8055         YY_BREAK
8056 case 377:
8057 /* rule 377 can match eol */
8058 YY_RULE_SETUP
8059 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);
8060         YY_BREAK
8061 case 378:
8062 /* rule 378 can match eol */
8063 YY_RULE_SETUP
8064 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);
8065         YY_BREAK
8066 case 379:
8067 /* rule 379 can match eol */
8068 YY_RULE_SETUP
8069 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);
8070         YY_BREAK
8071 case 380:
8072 /* rule 380 can match eol */
8073 YY_RULE_SETUP
8074 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);
8075         YY_BREAK
8076 case 381:
8077 /* rule 381 can match eol */
8078 YY_RULE_SETUP
8079 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);
8080         YY_BREAK
8081 case 382:
8082 /* rule 382 can match eol */
8083 YY_RULE_SETUP
8084 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);
8085         YY_BREAK
8086 case 383:
8087 /* rule 383 can match eol */
8088 case 384:
8089 /* rule 384 can match eol */
8090 YY_RULE_SETUP
8091 A_surfxml_link_state = A_surfxml_link_state_ON;
8092         YY_BREAK
8093 case 385:
8094 /* rule 385 can match eol */
8095 case 386:
8096 /* rule 386 can match eol */
8097 YY_RULE_SETUP
8098 A_surfxml_link_state = A_surfxml_link_state_OFF;
8099         YY_BREAK
8100 case 387:
8101 /* rule 387 can match eol */
8102 YY_RULE_SETUP
8103 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);
8104         YY_BREAK
8105 case 388:
8106 /* rule 388 can match eol */
8107 YY_RULE_SETUP
8108 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);
8109         YY_BREAK
8110 case 389:
8111 /* rule 389 can match eol */
8112 case 390:
8113 /* rule 390 can match eol */
8114 YY_RULE_SETUP
8115 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8116         YY_BREAK
8117 case 391:
8118 /* rule 391 can match eol */
8119 case 392:
8120 /* rule 392 can match eol */
8121 YY_RULE_SETUP
8122 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8123         YY_BREAK
8124 case 393:
8125 /* rule 393 can match eol */
8126 case 394:
8127 /* rule 394 can match eol */
8128 YY_RULE_SETUP
8129 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8130         YY_BREAK
8131 case 395:
8132 YY_RULE_SETUP
8133 {
8134   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8135   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8136   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8137  }
8138         YY_BREAK
8139 case 396:
8140 YY_RULE_SETUP
8141 {
8142   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8143   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8144   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8145   switch (YY_START) {
8146    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8147    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8148   }
8149  }
8150         YY_BREAK
8151 case 397:
8152 YY_RULE_SETUP
8153 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8154         YY_BREAK
8155 case 398:
8156 YY_RULE_SETUP
8157 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8158         YY_BREAK
8159 case YY_STATE_EOF(AL_surfxml_link):
8160 FAIL("EOF in attribute list of `link' element.");
8161         YY_BREAK
8162
8163 case 399:
8164 /* rule 399 can match eol */
8165 YY_RULE_SETUP
8166 {
8167   LEAVE;
8168   ETag_surfxml_link();
8169   popbuffer(); /* attribute */
8170   switch (YY_START) {
8171    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8172    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8173   }
8174  }
8175         YY_BREAK
8176 case 400:
8177 /* rule 400 can match eol */
8178 YY_RULE_SETUP
8179 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8180         YY_BREAK
8181 case 401:
8182 YY_RULE_SETUP
8183 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8184         YY_BREAK
8185 case YY_STATE_EOF(E_surfxml_link):
8186 case YY_STATE_EOF(S_surfxml_link_2):
8187 case YY_STATE_EOF(S_surfxml_link):
8188 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8189         YY_BREAK
8190
8191 case 402:
8192 /* rule 402 can match eol */
8193 YY_RULE_SETUP
8194 FAIL("Starting tag <route> is not allowed here.");
8195         YY_BREAK
8196 case 403:
8197 /* rule 403 can match eol */
8198 YY_RULE_SETUP
8199 {
8200   AX_surfxml_route_src = 0;
8201   surfxml_route_src_isset = 0;
8202   AX_surfxml_route_dst = 0;
8203   surfxml_route_dst_isset = 0;
8204   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8205   surfxml_route_symmetrical_isset = 0;
8206   ENTER(AL_surfxml_route); pushbuffer(0);
8207   }
8208         YY_BREAK
8209
8210 case 404:
8211 /* rule 404 can match eol */
8212 YY_RULE_SETUP
8213 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);
8214         YY_BREAK
8215 case 405:
8216 /* rule 405 can match eol */
8217 YY_RULE_SETUP
8218 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);
8219         YY_BREAK
8220 case 406:
8221 /* rule 406 can match eol */
8222 YY_RULE_SETUP
8223 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);
8224         YY_BREAK
8225 case 407:
8226 /* rule 407 can match eol */
8227 YY_RULE_SETUP
8228 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);
8229         YY_BREAK
8230 case 408:
8231 /* rule 408 can match eol */
8232 case 409:
8233 /* rule 409 can match eol */
8234 YY_RULE_SETUP
8235 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8236         YY_BREAK
8237 case 410:
8238 /* rule 410 can match eol */
8239 case 411:
8240 /* rule 411 can match eol */
8241 YY_RULE_SETUP
8242 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8243         YY_BREAK
8244 case 412:
8245 YY_RULE_SETUP
8246 {
8247   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8248   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8249   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8250  }
8251         YY_BREAK
8252 case 413:
8253 YY_RULE_SETUP
8254 {
8255   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8256   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8257   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8258   switch (YY_START) {
8259    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8260   }
8261  }
8262         YY_BREAK
8263 case 414:
8264 YY_RULE_SETUP
8265 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8266         YY_BREAK
8267 case 415:
8268 YY_RULE_SETUP
8269 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8270         YY_BREAK
8271 case YY_STATE_EOF(AL_surfxml_route):
8272 FAIL("EOF in attribute list of `route' element.");
8273         YY_BREAK
8274
8275 case 416:
8276 /* rule 416 can match eol */
8277 YY_RULE_SETUP
8278 {
8279   LEAVE;
8280   ETag_surfxml_route();
8281   popbuffer(); /* attribute */
8282   switch (YY_START) {
8283    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8284   }
8285  }
8286         YY_BREAK
8287 case 417:
8288 /* rule 417 can match eol */
8289 YY_RULE_SETUP
8290 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8291         YY_BREAK
8292 case 418:
8293 YY_RULE_SETUP
8294 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8295         YY_BREAK
8296 case YY_STATE_EOF(S_surfxml_route):
8297 case YY_STATE_EOF(S_surfxml_route_2):
8298 case YY_STATE_EOF(E_surfxml_route):
8299 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8300         YY_BREAK
8301
8302 case 419:
8303 /* rule 419 can match eol */
8304 YY_RULE_SETUP
8305 FAIL("Starting tag <ASroute> is not allowed here.");
8306         YY_BREAK
8307 case 420:
8308 /* rule 420 can match eol */
8309 YY_RULE_SETUP
8310 {
8311   AX_surfxml_ASroute_src = 0;
8312   surfxml_ASroute_src_isset = 0;
8313   AX_surfxml_ASroute_dst = 0;
8314   surfxml_ASroute_dst_isset = 0;
8315   AX_surfxml_ASroute_gw___src = 0;
8316   surfxml_ASroute_gw___src_isset = 0;
8317   AX_surfxml_ASroute_gw___dst = 0;
8318   surfxml_ASroute_gw___dst_isset = 0;
8319   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8320   surfxml_ASroute_symmetrical_isset = 0;
8321   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8322   }
8323         YY_BREAK
8324
8325 case 421:
8326 /* rule 421 can match eol */
8327 YY_RULE_SETUP
8328 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);
8329         YY_BREAK
8330 case 422:
8331 /* rule 422 can match eol */
8332 YY_RULE_SETUP
8333 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);
8334         YY_BREAK
8335 case 423:
8336 /* rule 423 can match eol */
8337 YY_RULE_SETUP
8338 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);
8339         YY_BREAK
8340 case 424:
8341 /* rule 424 can match eol */
8342 YY_RULE_SETUP
8343 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);
8344         YY_BREAK
8345 case 425:
8346 /* rule 425 can match eol */
8347 YY_RULE_SETUP
8348 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);
8349         YY_BREAK
8350 case 426:
8351 /* rule 426 can match eol */
8352 YY_RULE_SETUP
8353 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);
8354         YY_BREAK
8355 case 427:
8356 /* rule 427 can match eol */
8357 YY_RULE_SETUP
8358 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);
8359         YY_BREAK
8360 case 428:
8361 /* rule 428 can match eol */
8362 YY_RULE_SETUP
8363 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);
8364         YY_BREAK
8365 case 429:
8366 /* rule 429 can match eol */
8367 case 430:
8368 /* rule 430 can match eol */
8369 YY_RULE_SETUP
8370 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8371         YY_BREAK
8372 case 431:
8373 /* rule 431 can match eol */
8374 case 432:
8375 /* rule 432 can match eol */
8376 YY_RULE_SETUP
8377 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8378         YY_BREAK
8379 case 433:
8380 YY_RULE_SETUP
8381 {
8382   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8383   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8384   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8385   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8386   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8387  }
8388         YY_BREAK
8389 case 434:
8390 YY_RULE_SETUP
8391 {
8392   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8393   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8394   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8395   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8396   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8397   switch (YY_START) {
8398    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8399   }
8400  }
8401         YY_BREAK
8402 case 435:
8403 YY_RULE_SETUP
8404 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8405         YY_BREAK
8406 case 436:
8407 YY_RULE_SETUP
8408 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8409         YY_BREAK
8410 case YY_STATE_EOF(AL_surfxml_ASroute):
8411 FAIL("EOF in attribute list of `ASroute' element.");
8412         YY_BREAK
8413
8414 case 437:
8415 /* rule 437 can match eol */
8416 YY_RULE_SETUP
8417 {
8418   LEAVE;
8419   ETag_surfxml_ASroute();
8420   popbuffer(); /* attribute */
8421   switch (YY_START) {
8422    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8423   }
8424  }
8425         YY_BREAK
8426 case 438:
8427 /* rule 438 can match eol */
8428 YY_RULE_SETUP
8429 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8430         YY_BREAK
8431 case 439:
8432 YY_RULE_SETUP
8433 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8434         YY_BREAK
8435 case YY_STATE_EOF(E_surfxml_ASroute):
8436 case YY_STATE_EOF(S_surfxml_ASroute):
8437 case YY_STATE_EOF(S_surfxml_ASroute_2):
8438 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8439         YY_BREAK
8440
8441 case 440:
8442 /* rule 440 can match eol */
8443 YY_RULE_SETUP
8444 FAIL("Starting tag <link_ctn> is not allowed here.");
8445         YY_BREAK
8446 case 441:
8447 /* rule 441 can match eol */
8448 YY_RULE_SETUP
8449 {
8450   AX_surfxml_link___ctn_id = 0;
8451   surfxml_link___ctn_id_isset = 0;
8452   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8453   surfxml_link___ctn_direction_isset = 0;
8454   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8455   }
8456         YY_BREAK
8457
8458 case 442:
8459 /* rule 442 can match eol */
8460 YY_RULE_SETUP
8461 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);
8462         YY_BREAK
8463 case 443:
8464 /* rule 443 can match eol */
8465 YY_RULE_SETUP
8466 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);
8467         YY_BREAK
8468 case 444:
8469 /* rule 444 can match eol */
8470 case 445:
8471 /* rule 445 can match eol */
8472 YY_RULE_SETUP
8473 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8474         YY_BREAK
8475 case 446:
8476 /* rule 446 can match eol */
8477 case 447:
8478 /* rule 447 can match eol */
8479 YY_RULE_SETUP
8480 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8481         YY_BREAK
8482 case 448:
8483 /* rule 448 can match eol */
8484 case 449:
8485 /* rule 449 can match eol */
8486 YY_RULE_SETUP
8487 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8488         YY_BREAK
8489 case 450:
8490 YY_RULE_SETUP
8491 {
8492   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8493   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8494  }
8495         YY_BREAK
8496 case 451:
8497 YY_RULE_SETUP
8498 {
8499   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8500   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8501   switch (YY_START) {
8502    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8503    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8504    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8505    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8506   }
8507  }
8508         YY_BREAK
8509 case 452:
8510 YY_RULE_SETUP
8511 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8512         YY_BREAK
8513 case 453:
8514 YY_RULE_SETUP
8515 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8516         YY_BREAK
8517 case YY_STATE_EOF(AL_surfxml_link___ctn):
8518 FAIL("EOF in attribute list of `link_ctn' element.");
8519         YY_BREAK
8520
8521 case 454:
8522 /* rule 454 can match eol */
8523 YY_RULE_SETUP
8524 {
8525   LEAVE;
8526   ETag_surfxml_link___ctn();
8527   popbuffer(); /* attribute */
8528   switch (YY_START) {
8529    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8530    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8531    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8532    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8533   }
8534  }
8535         YY_BREAK
8536 case 455:
8537 /* rule 455 can match eol */
8538 YY_RULE_SETUP
8539 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8540         YY_BREAK
8541 case 456:
8542 YY_RULE_SETUP
8543 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8544         YY_BREAK
8545 case YY_STATE_EOF(E_surfxml_link___ctn):
8546 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8547         YY_BREAK
8548
8549 case 457:
8550 /* rule 457 can match eol */
8551 YY_RULE_SETUP
8552 FAIL("Starting tag <bypassRoute> is not allowed here.");
8553         YY_BREAK
8554 case 458:
8555 /* rule 458 can match eol */
8556 YY_RULE_SETUP
8557 {
8558   AX_surfxml_bypassRoute_src = 0;
8559   surfxml_bypassRoute_src_isset = 0;
8560   AX_surfxml_bypassRoute_dst = 0;
8561   surfxml_bypassRoute_dst_isset = 0;
8562   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8563   }
8564         YY_BREAK
8565
8566 case 459:
8567 /* rule 459 can match eol */
8568 YY_RULE_SETUP
8569 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);
8570         YY_BREAK
8571 case 460:
8572 /* rule 460 can match eol */
8573 YY_RULE_SETUP
8574 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);
8575         YY_BREAK
8576 case 461:
8577 /* rule 461 can match eol */
8578 YY_RULE_SETUP
8579 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);
8580         YY_BREAK
8581 case 462:
8582 /* rule 462 can match eol */
8583 YY_RULE_SETUP
8584 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);
8585         YY_BREAK
8586 case 463:
8587 YY_RULE_SETUP
8588 {
8589   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8590   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8591   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8592  }
8593         YY_BREAK
8594 case 464:
8595 YY_RULE_SETUP
8596 {
8597   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8598   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8599   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8600   switch (YY_START) {
8601    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8602   }
8603  }
8604         YY_BREAK
8605 case 465:
8606 YY_RULE_SETUP
8607 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8608         YY_BREAK
8609 case 466:
8610 YY_RULE_SETUP
8611 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8612         YY_BREAK
8613 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8614 FAIL("EOF in attribute list of `bypassRoute' element.");
8615         YY_BREAK
8616
8617 case 467:
8618 /* rule 467 can match eol */
8619 YY_RULE_SETUP
8620 {
8621   LEAVE;
8622   ETag_surfxml_bypassRoute();
8623   popbuffer(); /* attribute */
8624   switch (YY_START) {
8625    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8626   }
8627  }
8628         YY_BREAK
8629 case 468:
8630 /* rule 468 can match eol */
8631 YY_RULE_SETUP
8632 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8633         YY_BREAK
8634 case 469:
8635 YY_RULE_SETUP
8636 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8637         YY_BREAK
8638 case YY_STATE_EOF(S_surfxml_bypassRoute):
8639 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8640 case YY_STATE_EOF(E_surfxml_bypassRoute):
8641 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8642         YY_BREAK
8643
8644 case 470:
8645 /* rule 470 can match eol */
8646 YY_RULE_SETUP
8647 FAIL("Starting tag <bypassASroute> is not allowed here.");
8648         YY_BREAK
8649 case 471:
8650 /* rule 471 can match eol */
8651 YY_RULE_SETUP
8652 {
8653   AX_surfxml_bypassASroute_src = 0;
8654   surfxml_bypassASroute_src_isset = 0;
8655   AX_surfxml_bypassASroute_dst = 0;
8656   surfxml_bypassASroute_dst_isset = 0;
8657   AX_surfxml_bypassASroute_gw___src = 0;
8658   surfxml_bypassASroute_gw___src_isset = 0;
8659   AX_surfxml_bypassASroute_gw___dst = 0;
8660   surfxml_bypassASroute_gw___dst_isset = 0;
8661   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8662   }
8663         YY_BREAK
8664
8665 case 472:
8666 /* rule 472 can match eol */
8667 YY_RULE_SETUP
8668 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);
8669         YY_BREAK
8670 case 473:
8671 /* rule 473 can match eol */
8672 YY_RULE_SETUP
8673 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);
8674         YY_BREAK
8675 case 474:
8676 /* rule 474 can match eol */
8677 YY_RULE_SETUP
8678 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);
8679         YY_BREAK
8680 case 475:
8681 /* rule 475 can match eol */
8682 YY_RULE_SETUP
8683 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);
8684         YY_BREAK
8685 case 476:
8686 /* rule 476 can match eol */
8687 YY_RULE_SETUP
8688 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);
8689         YY_BREAK
8690 case 477:
8691 /* rule 477 can match eol */
8692 YY_RULE_SETUP
8693 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);
8694         YY_BREAK
8695 case 478:
8696 /* rule 478 can match eol */
8697 YY_RULE_SETUP
8698 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);
8699         YY_BREAK
8700 case 479:
8701 /* rule 479 can match eol */
8702 YY_RULE_SETUP
8703 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);
8704         YY_BREAK
8705 case 480:
8706 YY_RULE_SETUP
8707 {
8708   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8709   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8710   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8711   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8712   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8713  }
8714         YY_BREAK
8715 case 481:
8716 YY_RULE_SETUP
8717 {
8718   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8719   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8720   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8721   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8722   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8723   switch (YY_START) {
8724    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8725   }
8726  }
8727         YY_BREAK
8728 case 482:
8729 YY_RULE_SETUP
8730 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8731         YY_BREAK
8732 case 483:
8733 YY_RULE_SETUP
8734 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8735         YY_BREAK
8736 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8737 FAIL("EOF in attribute list of `bypassASroute' element.");
8738         YY_BREAK
8739
8740 case 484:
8741 /* rule 484 can match eol */
8742 YY_RULE_SETUP
8743 {
8744   LEAVE;
8745   ETag_surfxml_bypassASroute();
8746   popbuffer(); /* attribute */
8747   switch (YY_START) {
8748    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8749   }
8750  }
8751         YY_BREAK
8752 case 485:
8753 /* rule 485 can match eol */
8754 YY_RULE_SETUP
8755 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8756         YY_BREAK
8757 case 486:
8758 YY_RULE_SETUP
8759 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8760         YY_BREAK
8761 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8762 case YY_STATE_EOF(E_surfxml_bypassASroute):
8763 case YY_STATE_EOF(S_surfxml_bypassASroute):
8764 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8765         YY_BREAK
8766
8767 case 487:
8768 /* rule 487 can match eol */
8769 YY_RULE_SETUP
8770 FAIL("Starting tag <process> is not allowed here.");
8771         YY_BREAK
8772 case 488:
8773 /* rule 488 can match eol */
8774 YY_RULE_SETUP
8775 {
8776   AX_surfxml_process_host = 0;
8777   surfxml_process_host_isset = 0;
8778   AX_surfxml_process_function = 0;
8779   surfxml_process_function_isset = 0;
8780   AX_surfxml_process_start___time = 32;
8781   surfxml_process_start___time_isset = 0;
8782   AX_surfxml_process_kill___time = 37;
8783   surfxml_process_kill___time_isset = 0;
8784   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8785   surfxml_process_on___failure_isset = 0;
8786   ENTER(AL_surfxml_process); pushbuffer(0);
8787   }
8788         YY_BREAK
8789
8790 case 489:
8791 /* rule 489 can match eol */
8792 YY_RULE_SETUP
8793 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);
8794         YY_BREAK
8795 case 490:
8796 /* rule 490 can match eol */
8797 YY_RULE_SETUP
8798 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);
8799         YY_BREAK
8800 case 491:
8801 /* rule 491 can match eol */
8802 YY_RULE_SETUP
8803 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);
8804         YY_BREAK
8805 case 492:
8806 /* rule 492 can match eol */
8807 YY_RULE_SETUP
8808 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);
8809         YY_BREAK
8810 case 493:
8811 /* rule 493 can match eol */
8812 YY_RULE_SETUP
8813 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);
8814         YY_BREAK
8815 case 494:
8816 /* rule 494 can match eol */
8817 YY_RULE_SETUP
8818 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);
8819         YY_BREAK
8820 case 495:
8821 /* rule 495 can match eol */
8822 YY_RULE_SETUP
8823 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);
8824         YY_BREAK
8825 case 496:
8826 /* rule 496 can match eol */
8827 YY_RULE_SETUP
8828 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);
8829         YY_BREAK
8830 case 497:
8831 /* rule 497 can match eol */
8832 case 498:
8833 /* rule 498 can match eol */
8834 YY_RULE_SETUP
8835 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8836         YY_BREAK
8837 case 499:
8838 /* rule 499 can match eol */
8839 case 500:
8840 /* rule 500 can match eol */
8841 YY_RULE_SETUP
8842 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8843         YY_BREAK
8844 case 501:
8845 YY_RULE_SETUP
8846 {
8847   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8848   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8849   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8850  }
8851         YY_BREAK
8852 case 502:
8853 YY_RULE_SETUP
8854 {
8855   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8856   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8857   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8858   switch (YY_START) {
8859    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;
8860   }
8861  }
8862         YY_BREAK
8863 case 503:
8864 YY_RULE_SETUP
8865 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8866         YY_BREAK
8867 case 504:
8868 YY_RULE_SETUP
8869 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8870         YY_BREAK
8871 case YY_STATE_EOF(AL_surfxml_process):
8872 FAIL("EOF in attribute list of `process' element.");
8873         YY_BREAK
8874
8875 case 505:
8876 /* rule 505 can match eol */
8877 YY_RULE_SETUP
8878 {
8879   LEAVE;
8880   ETag_surfxml_process();
8881   popbuffer(); /* attribute */
8882   switch (YY_START) {
8883    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;
8884   }
8885  }
8886         YY_BREAK
8887 case 506:
8888 /* rule 506 can match eol */
8889 YY_RULE_SETUP
8890 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8891         YY_BREAK
8892 case 507:
8893 YY_RULE_SETUP
8894 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8895         YY_BREAK
8896 case YY_STATE_EOF(E_surfxml_process):
8897 case YY_STATE_EOF(S_surfxml_process):
8898 case YY_STATE_EOF(S_surfxml_process_2):
8899 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8900         YY_BREAK
8901
8902 case 508:
8903 /* rule 508 can match eol */
8904 YY_RULE_SETUP
8905 FAIL("Starting tag <argument> is not allowed here.");
8906         YY_BREAK
8907 case 509:
8908 /* rule 509 can match eol */
8909 YY_RULE_SETUP
8910 {
8911   AX_surfxml_argument_value = 0;
8912   surfxml_argument_value_isset = 0;
8913   ENTER(AL_surfxml_argument); pushbuffer(0);
8914   }
8915         YY_BREAK
8916
8917 case 510:
8918 /* rule 510 can match eol */
8919 YY_RULE_SETUP
8920 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);
8921         YY_BREAK
8922 case 511:
8923 /* rule 511 can match eol */
8924 YY_RULE_SETUP
8925 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);
8926         YY_BREAK
8927 case 512:
8928 YY_RULE_SETUP
8929 {
8930   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8931   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8932  }
8933         YY_BREAK
8934 case 513:
8935 YY_RULE_SETUP
8936 {
8937   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8938   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8939   switch (YY_START) {
8940    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8941   }
8942  }
8943         YY_BREAK
8944 case 514:
8945 YY_RULE_SETUP
8946 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8947         YY_BREAK
8948 case 515:
8949 YY_RULE_SETUP
8950 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8951         YY_BREAK
8952 case YY_STATE_EOF(AL_surfxml_argument):
8953 FAIL("EOF in attribute list of `argument' element.");
8954         YY_BREAK
8955
8956 case 516:
8957 /* rule 516 can match eol */
8958 YY_RULE_SETUP
8959 {
8960   LEAVE;
8961   ETag_surfxml_argument();
8962   popbuffer(); /* attribute */
8963   switch (YY_START) {
8964    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8965   }
8966  }
8967         YY_BREAK
8968 case 517:
8969 /* rule 517 can match eol */
8970 YY_RULE_SETUP
8971 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8972         YY_BREAK
8973 case 518:
8974 YY_RULE_SETUP
8975 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8976         YY_BREAK
8977 case YY_STATE_EOF(E_surfxml_argument):
8978 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8979         YY_BREAK
8980
8981 case 519:
8982 /* rule 519 can match eol */
8983 YY_RULE_SETUP
8984 FAIL("Starting tag <config> is not allowed here.");
8985         YY_BREAK
8986 case 520:
8987 /* rule 520 can match eol */
8988 YY_RULE_SETUP
8989 {
8990   AX_surfxml_config_id = 0;
8991   surfxml_config_id_isset = 0;
8992   ENTER(AL_surfxml_config); pushbuffer(0);
8993   }
8994         YY_BREAK
8995
8996 case 521:
8997 /* rule 521 can match eol */
8998 YY_RULE_SETUP
8999 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);
9000         YY_BREAK
9001 case 522:
9002 /* rule 522 can match eol */
9003 YY_RULE_SETUP
9004 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);
9005         YY_BREAK
9006 case 523:
9007 YY_RULE_SETUP
9008 {
9009   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9010  }
9011         YY_BREAK
9012 case 524:
9013 YY_RULE_SETUP
9014 {
9015   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9016   switch (YY_START) {
9017    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9018   }
9019  }
9020         YY_BREAK
9021 case 525:
9022 YY_RULE_SETUP
9023 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9024         YY_BREAK
9025 case 526:
9026 YY_RULE_SETUP
9027 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9028         YY_BREAK
9029 case YY_STATE_EOF(AL_surfxml_config):
9030 FAIL("EOF in attribute list of `config' element.");
9031         YY_BREAK
9032
9033 case 527:
9034 /* rule 527 can match eol */
9035 YY_RULE_SETUP
9036 {
9037   LEAVE;
9038   ETag_surfxml_config();
9039   popbuffer(); /* attribute */
9040   switch (YY_START) {
9041    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9042   }
9043  }
9044         YY_BREAK
9045 case 528:
9046 /* rule 528 can match eol */
9047 YY_RULE_SETUP
9048 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9049         YY_BREAK
9050 case 529:
9051 YY_RULE_SETUP
9052 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9053         YY_BREAK
9054 case YY_STATE_EOF(S_surfxml_config):
9055 case YY_STATE_EOF(S_surfxml_config_2):
9056 case YY_STATE_EOF(E_surfxml_config):
9057 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9058         YY_BREAK
9059
9060 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9061   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9062 case 530:
9063 /* rule 530 can match eol */
9064 YY_RULE_SETUP
9065 FAIL("Starting tag <prop> is not allowed here.");
9066         YY_BREAK
9067 case 531:
9068 /* rule 531 can match eol */
9069 YY_RULE_SETUP
9070 {
9071   AX_surfxml_prop_id = 0;
9072   surfxml_prop_id_isset = 0;
9073   AX_surfxml_prop_value = 0;
9074   surfxml_prop_value_isset = 0;
9075   ENTER(AL_surfxml_prop); pushbuffer(0);
9076   }
9077         YY_BREAK
9078
9079 case 532:
9080 /* rule 532 can match eol */
9081 YY_RULE_SETUP
9082 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);
9083         YY_BREAK
9084 case 533:
9085 /* rule 533 can match eol */
9086 YY_RULE_SETUP
9087 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);
9088         YY_BREAK
9089 case 534:
9090 /* rule 534 can match eol */
9091 YY_RULE_SETUP
9092 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);
9093         YY_BREAK
9094 case 535:
9095 /* rule 535 can match eol */
9096 YY_RULE_SETUP
9097 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);
9098         YY_BREAK
9099 case 536:
9100 YY_RULE_SETUP
9101 {
9102   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9103   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9104   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9105  }
9106         YY_BREAK
9107 case 537:
9108 YY_RULE_SETUP
9109 {
9110   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9111   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9112   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9113   switch (YY_START) {
9114    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9115    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9116    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9117    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9118    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9119    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9120    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9121   }
9122  }
9123         YY_BREAK
9124 case 538:
9125 YY_RULE_SETUP
9126 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9127         YY_BREAK
9128 case 539:
9129 YY_RULE_SETUP
9130 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9131         YY_BREAK
9132 case YY_STATE_EOF(AL_surfxml_prop):
9133 FAIL("EOF in attribute list of `prop' element.");
9134         YY_BREAK
9135
9136 case 540:
9137 /* rule 540 can match eol */
9138 YY_RULE_SETUP
9139 {
9140   LEAVE;
9141   ETag_surfxml_prop();
9142   popbuffer(); /* attribute */
9143   switch (YY_START) {
9144    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9145    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9146    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9147    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9148    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9149    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9150    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9151   }
9152  }
9153         YY_BREAK
9154 case 541:
9155 /* rule 541 can match eol */
9156 YY_RULE_SETUP
9157 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9158         YY_BREAK
9159 case 542:
9160 YY_RULE_SETUP
9161 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9162         YY_BREAK
9163 case YY_STATE_EOF(E_surfxml_prop):
9164 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9165         YY_BREAK
9166
9167 /* EPILOG: after the root element. */
9168
9169 case 543:
9170 YY_RULE_SETUP
9171 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9172         YY_BREAK
9173 case YY_STATE_EOF(EPILOG):
9174 SUCCEED;
9175         YY_BREAK
9176
9177 /* CHARACTER DATA. */
9178
9179 /* Non-defined standard entities... */
9180 case 544:
9181 YY_RULE_SETUP
9182 BUFFERPUTC('&');
9183         YY_BREAK
9184 case 545:
9185 YY_RULE_SETUP
9186 BUFFERPUTC('<');
9187         YY_BREAK
9188 case 546:
9189 YY_RULE_SETUP
9190 BUFFERPUTC('>');
9191         YY_BREAK
9192 case 547:
9193 YY_RULE_SETUP
9194 BUFFERPUTC('\'');
9195         YY_BREAK
9196 case 548:
9197 YY_RULE_SETUP
9198 BUFFERPUTC('"');
9199         YY_BREAK
9200 /* Character entities. */
9201 case 549:
9202 YY_RULE_SETUP
9203 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9204         YY_BREAK
9205 case 550:
9206 YY_RULE_SETUP
9207 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9208         YY_BREAK
9209
9210 case 551:
9211 /* rule 551 can match eol */
9212 case 552:
9213 /* rule 552 can match eol */
9214 case 553:
9215 /* rule 553 can match eol */
9216 case 554:
9217 /* rule 554 can match eol */
9218 YY_RULE_SETUP
9219 BUFFERPUTC('\n');
9220         YY_BREAK
9221
9222 case 555:
9223 YY_RULE_SETUP
9224 ENTER(CDATA);
9225         YY_BREAK
9226 case 556:
9227 YY_RULE_SETUP
9228 FAIL("Unexpected `]""]>' in character data.");
9229         YY_BREAK
9230
9231 case 557:
9232 YY_RULE_SETUP
9233 BUFFERDONE; LEAVE;
9234         YY_BREAK
9235 case YY_STATE_EOF(VALUE1):
9236 FAIL("EOF in literal (\"'\" expected).");
9237         YY_BREAK
9238
9239 case 558:
9240 YY_RULE_SETUP
9241 BUFFERDONE; LEAVE;
9242         YY_BREAK
9243 case YY_STATE_EOF(VALUE2):
9244 FAIL("EOF in literal (`\"' expected).");
9245         YY_BREAK
9246
9247 case 559:
9248 /* rule 559 can match eol */
9249 YY_RULE_SETUP
9250 BUFFERPUTC(surf_parse_text[0]);
9251         YY_BREAK
9252 case 560:
9253 YY_RULE_SETUP
9254 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9255         YY_BREAK
9256
9257 case 561:
9258 YY_RULE_SETUP
9259 LEAVE;
9260         YY_BREAK
9261 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9262 case 562:
9263 YY_RULE_SETUP
9264 BUFFERPUTC(surf_parse_text[0]);
9265         YY_BREAK
9266 case YY_STATE_EOF(CDATA):
9267 FAIL("EOF in CDATA section.");
9268         YY_BREAK
9269
9270 /* Impossible rules to avoid warnings from flex(1). */
9271 /* Ideally, this should be replaced by code in flexml.pl that
9272     generates just the states not covered by other rules. */
9273
9274 case 563:
9275 /* rule 563 can match eol */
9276 YY_RULE_SETUP
9277 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9278         YY_BREAK
9279
9280 case 564:
9281 YY_RULE_SETUP
9282 ECHO;
9283         YY_BREAK
9284 case YY_STATE_EOF(INITIAL):
9285 case YY_STATE_EOF(ROOT_surfxml_platform):
9286 case YY_STATE_EOF(S_surfxml_platform_2):
9287 case YY_STATE_EOF(S_surfxml_platform_5):
9288 case YY_STATE_EOF(S_surfxml_platform_7):
9289 case YY_STATE_EOF(S_surfxml_include_1):
9290 case YY_STATE_EOF(S_surfxml_AS_2):
9291 case YY_STATE_EOF(S_surfxml_AS_5):
9292 case YY_STATE_EOF(S_surfxml_AS_8):
9293 case YY_STATE_EOF(S_surfxml_AS_10):
9294 case YY_STATE_EOF(S_surfxml_AS_13):
9295 case YY_STATE_EOF(S_surfxml_AS_15):
9296 case YY_STATE_EOF(S_surfxml_storage___type_1):
9297 case YY_STATE_EOF(S_surfxml_storage_1):
9298 case YY_STATE_EOF(S_surfxml_host_1):
9299 case YY_STATE_EOF(S_surfxml_link_1):
9300 case YY_STATE_EOF(S_surfxml_route_1):
9301 case YY_STATE_EOF(S_surfxml_ASroute_1):
9302 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9303 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9304 case YY_STATE_EOF(S_surfxml_process_1):
9305 case YY_STATE_EOF(S_surfxml_config_1):
9306 case YY_STATE_EOF(IMPOSSIBLE):
9307         yyterminate();
9308
9309         case YY_END_OF_BUFFER:
9310                 {
9311                 /* Amount of text matched not including the EOB char. */
9312                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9313
9314                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9315                 *yy_cp = (yy_hold_char);
9316                 YY_RESTORE_YY_MORE_OFFSET
9317
9318                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9319                         {
9320                         /* We're scanning a new file or input source.  It's
9321                          * possible that this happened because the user
9322                          * just pointed surf_parse_in at a new source and called
9323                          * surf_parse_lex().  If so, then we have to assure
9324                          * consistency between YY_CURRENT_BUFFER and our
9325                          * globals.  Here is the right place to do so, because
9326                          * this is the first action (other than possibly a
9327                          * back-up) that will match for the new input source.
9328                          */
9329                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9330                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9331                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9332                         }
9333
9334                 /* Note that here we test for yy_c_buf_p "<=" to the position
9335                  * of the first EOB in the buffer, since yy_c_buf_p will
9336                  * already have been incremented past the NUL character
9337                  * (since all states make transitions on EOB to the
9338                  * end-of-buffer state).  Contrast this with the test
9339                  * in input().
9340                  */
9341                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9342                         { /* This was really a NUL. */
9343                         yy_state_type yy_next_state;
9344
9345                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9346
9347                         yy_current_state = yy_get_previous_state(  );
9348
9349                         /* Okay, we're now positioned to make the NUL
9350                          * transition.  We couldn't have
9351                          * yy_get_previous_state() go ahead and do it
9352                          * for us because it doesn't know how to deal
9353                          * with the possibility of jamming (and we don't
9354                          * want to build jamming into it because then it
9355                          * will run more slowly).
9356                          */
9357
9358                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9359
9360                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9361
9362                         if ( yy_next_state )
9363                                 {
9364                                 /* Consume the NUL. */
9365                                 yy_cp = ++(yy_c_buf_p);
9366                                 yy_current_state = yy_next_state;
9367                                 goto yy_match;
9368                                 }
9369
9370                         else
9371                                 {
9372                                 yy_cp = (yy_c_buf_p);
9373                                 goto yy_find_action;
9374                                 }
9375                         }
9376
9377                 else switch ( yy_get_next_buffer(  ) )
9378                         {
9379                         case EOB_ACT_END_OF_FILE:
9380                                 {
9381                                 (yy_did_buffer_switch_on_eof) = 0;
9382
9383                                 if ( surf_parse_wrap( ) )
9384                                         {
9385                                         /* Note: because we've taken care in
9386                                          * yy_get_next_buffer() to have set up
9387                                          * surf_parse_text, we can now set up
9388                                          * yy_c_buf_p so that if some total
9389                                          * hoser (like flex itself) wants to
9390                                          * call the scanner after we return the
9391                                          * YY_NULL, it'll still work - another
9392                                          * YY_NULL will get returned.
9393                                          */
9394                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9395
9396                                         yy_act = YY_STATE_EOF(YY_START);
9397                                         goto do_action;
9398                                         }
9399
9400                                 else
9401                                         {
9402                                         if ( ! (yy_did_buffer_switch_on_eof) )
9403                                                 YY_NEW_FILE;
9404                                         }
9405                                 break;
9406                                 }
9407
9408                         case EOB_ACT_CONTINUE_SCAN:
9409                                 (yy_c_buf_p) =
9410                                         (yytext_ptr) + yy_amount_of_matched_text;
9411
9412                                 yy_current_state = yy_get_previous_state(  );
9413
9414                                 yy_cp = (yy_c_buf_p);
9415                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9416                                 goto yy_match;
9417
9418                         case EOB_ACT_LAST_MATCH:
9419                                 (yy_c_buf_p) =
9420                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9421
9422                                 yy_current_state = yy_get_previous_state(  );
9423
9424                                 yy_cp = (yy_c_buf_p);
9425                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9426                                 goto yy_find_action;
9427                         }
9428                 break;
9429                 }
9430
9431         default:
9432                 YY_FATAL_ERROR(
9433                         "fatal flex scanner internal error--no action found" );
9434         } /* end of action switch */
9435                 } /* end of scanning one token */
9436 } /* end of surf_parse_lex */
9437
9438 /* yy_get_next_buffer - try to read in a new buffer
9439  *
9440  * Returns a code representing an action:
9441  *      EOB_ACT_LAST_MATCH -
9442  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9443  *      EOB_ACT_END_OF_FILE - end of file
9444  */
9445 static int yy_get_next_buffer (void)
9446 {
9447         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9448         register char *source = (yytext_ptr);
9449         register int number_to_move, i;
9450         int ret_val;
9451
9452         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9453                 YY_FATAL_ERROR(
9454                 "fatal flex scanner internal error--end of buffer missed" );
9455
9456         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9457                 { /* Don't try to fill the buffer, so this is an EOF. */
9458                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9459                         {
9460                         /* We matched a single character, the EOB, so
9461                          * treat this as a final EOF.
9462                          */
9463                         return EOB_ACT_END_OF_FILE;
9464                         }
9465
9466                 else
9467                         {
9468                         /* We matched some text prior to the EOB, first
9469                          * process it.
9470                          */
9471                         return EOB_ACT_LAST_MATCH;
9472                         }
9473                 }
9474
9475         /* Try to read more data. */
9476
9477         /* First move last chars to start of buffer. */
9478         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9479
9480         for ( i = 0; i < number_to_move; ++i )
9481                 *(dest++) = *(source++);
9482
9483         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9484                 /* don't do the read, it's not guaranteed to return an EOF,
9485                  * just force an EOF
9486                  */
9487                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9488
9489         else
9490                 {
9491                         int num_to_read =
9492                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9493
9494                 while ( num_to_read <= 0 )
9495                         { /* Not enough room in the buffer - grow it. */
9496
9497                         /* just a shorter name for the current buffer */
9498                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9499
9500                         int yy_c_buf_p_offset =
9501                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9502
9503                         if ( b->yy_is_our_buffer )
9504                                 {
9505                                 int new_size = b->yy_buf_size * 2;
9506
9507                                 if ( new_size <= 0 )
9508                                         b->yy_buf_size += b->yy_buf_size / 8;
9509                                 else
9510                                         b->yy_buf_size *= 2;
9511
9512                                 b->yy_ch_buf = (char *)
9513                                         /* Include room in for 2 EOB chars. */
9514                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9515                                 }
9516                         else
9517                                 /* Can't grow it, we don't own it. */
9518                                 b->yy_ch_buf = 0;
9519
9520                         if ( ! b->yy_ch_buf )
9521                                 YY_FATAL_ERROR(
9522                                 "fatal error - scanner input buffer overflow" );
9523
9524                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9525
9526                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9527                                                 number_to_move - 1;
9528
9529                         }
9530
9531                 if ( num_to_read > YY_READ_BUF_SIZE )
9532                         num_to_read = YY_READ_BUF_SIZE;
9533
9534                 /* Read in more data. */
9535                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9536                         (yy_n_chars), (size_t) num_to_read );
9537
9538                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9539                 }
9540
9541         if ( (yy_n_chars) == 0 )
9542                 {
9543                 if ( number_to_move == YY_MORE_ADJ )
9544                         {
9545                         ret_val = EOB_ACT_END_OF_FILE;
9546                         surf_parse_restart(surf_parse_in  );
9547                         }
9548
9549                 else
9550                         {
9551                         ret_val = EOB_ACT_LAST_MATCH;
9552                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9553                                 YY_BUFFER_EOF_PENDING;
9554                         }
9555                 }
9556
9557         else
9558                 ret_val = EOB_ACT_CONTINUE_SCAN;
9559
9560         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9561                 /* Extend the array by 50%, plus the number we really need. */
9562                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9563                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9564                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9565                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9566         }
9567
9568         (yy_n_chars) += number_to_move;
9569         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9570         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9571
9572         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9573
9574         return ret_val;
9575 }
9576
9577 /* yy_get_previous_state - get the state just before the EOB char was reached */
9578
9579     static yy_state_type yy_get_previous_state (void)
9580 {
9581         register yy_state_type yy_current_state;
9582         register char *yy_cp;
9583     
9584         yy_current_state = (yy_start);
9585
9586         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9587                 {
9588                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9589                 if ( yy_accept[yy_current_state] )
9590                         {
9591                         (yy_last_accepting_state) = yy_current_state;
9592                         (yy_last_accepting_cpos) = yy_cp;
9593                         }
9594                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9595                         {
9596                         yy_current_state = (int) yy_def[yy_current_state];
9597                         if ( yy_current_state >= 3289 )
9598                                 yy_c = yy_meta[(unsigned int) yy_c];
9599                         }
9600                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9601                 }
9602
9603         return yy_current_state;
9604 }
9605
9606 /* yy_try_NUL_trans - try to make a transition on the NUL character
9607  *
9608  * synopsis
9609  *      next_state = yy_try_NUL_trans( current_state );
9610  */
9611     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9612 {
9613         register int yy_is_jam;
9614         register char *yy_cp = (yy_c_buf_p);
9615
9616         register YY_CHAR yy_c = 1;
9617         if ( yy_accept[yy_current_state] )
9618                 {
9619                 (yy_last_accepting_state) = yy_current_state;
9620                 (yy_last_accepting_cpos) = yy_cp;
9621                 }
9622         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9623                 {
9624                 yy_current_state = (int) yy_def[yy_current_state];
9625                 if ( yy_current_state >= 3289 )
9626                         yy_c = yy_meta[(unsigned int) yy_c];
9627                 }
9628         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9629         yy_is_jam = (yy_current_state == 3288);
9630
9631         return yy_is_jam ? 0 : yy_current_state;
9632 }
9633
9634 #ifndef YY_NO_INPUT
9635 #ifdef __cplusplus
9636     static int yyinput (void)
9637 #else
9638     static int input  (void)
9639 #endif
9640
9641 {
9642         int c;
9643     
9644         *(yy_c_buf_p) = (yy_hold_char);
9645
9646         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9647                 {
9648                 /* yy_c_buf_p now points to the character we want to return.
9649                  * If this occurs *before* the EOB characters, then it's a
9650                  * valid NUL; if not, then we've hit the end of the buffer.
9651                  */
9652                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9653                         /* This was really a NUL. */
9654                         *(yy_c_buf_p) = '\0';
9655
9656                 else
9657                         { /* need more input */
9658                         int offset = (yy_c_buf_p) - (yytext_ptr);
9659                         ++(yy_c_buf_p);
9660
9661                         switch ( yy_get_next_buffer(  ) )
9662                                 {
9663                                 case EOB_ACT_LAST_MATCH:
9664                                         /* This happens because yy_g_n_b()
9665                                          * sees that we've accumulated a
9666                                          * token and flags that we need to
9667                                          * try matching the token before
9668                                          * proceeding.  But for input(),
9669                                          * there's no matching to consider.
9670                                          * So convert the EOB_ACT_LAST_MATCH
9671                                          * to EOB_ACT_END_OF_FILE.
9672                                          */
9673
9674                                         /* Reset buffer status. */
9675                                         surf_parse_restart(surf_parse_in );
9676
9677                                         /*FALLTHROUGH*/
9678
9679                                 case EOB_ACT_END_OF_FILE:
9680                                         {
9681                                         if ( surf_parse_wrap( ) )
9682                                                 return EOF;
9683
9684                                         if ( ! (yy_did_buffer_switch_on_eof) )
9685                                                 YY_NEW_FILE;
9686 #ifdef __cplusplus
9687                                         return yyinput();
9688 #else
9689                                         return input();
9690 #endif
9691                                         }
9692
9693                                 case EOB_ACT_CONTINUE_SCAN:
9694                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9695                                         break;
9696                                 }
9697                         }
9698                 }
9699
9700         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9701         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9702         (yy_hold_char) = *++(yy_c_buf_p);
9703
9704         if ( c == '\n' )
9705                    
9706     surf_parse_lineno++;
9707 ;
9708
9709         return c;
9710 }
9711 #endif  /* ifndef YY_NO_INPUT */
9712
9713 /** Immediately switch to a different input stream.
9714  * @param input_file A readable stream.
9715  * 
9716  * @note This function does not reset the start condition to @c INITIAL .
9717  */
9718     void surf_parse_restart  (FILE * input_file )
9719 {
9720     
9721         if ( ! YY_CURRENT_BUFFER ){
9722         surf_parse_ensure_buffer_stack ();
9723                 YY_CURRENT_BUFFER_LVALUE =
9724             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9725         }
9726
9727         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9728         surf_parse__load_buffer_state( );
9729 }
9730
9731 /** Switch to a different input buffer.
9732  * @param new_buffer The new input buffer.
9733  * 
9734  */
9735     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9736 {
9737     
9738         /* TODO. We should be able to replace this entire function body
9739          * with
9740          *              surf_parse_pop_buffer_state();
9741          *              surf_parse_push_buffer_state(new_buffer);
9742      */
9743         surf_parse_ensure_buffer_stack ();
9744         if ( YY_CURRENT_BUFFER == new_buffer )
9745                 return;
9746
9747         if ( YY_CURRENT_BUFFER )
9748                 {
9749                 /* Flush out information for old buffer. */
9750                 *(yy_c_buf_p) = (yy_hold_char);
9751                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9752                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9753                 }
9754
9755         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9756         surf_parse__load_buffer_state( );
9757
9758         /* We don't actually know whether we did this switch during
9759          * EOF (surf_parse_wrap()) processing, but the only time this flag
9760          * is looked at is after surf_parse_wrap() is called, so it's safe
9761          * to go ahead and always set it.
9762          */
9763         (yy_did_buffer_switch_on_eof) = 1;
9764 }
9765
9766 static void surf_parse__load_buffer_state  (void)
9767 {
9768         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9769         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9770         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9771         (yy_hold_char) = *(yy_c_buf_p);
9772 }
9773
9774 /** Allocate and initialize an input buffer state.
9775  * @param file A readable stream.
9776  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9777  * 
9778  * @return the allocated buffer state.
9779  */
9780     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9781 {
9782         YY_BUFFER_STATE b;
9783     
9784         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9785         if ( ! b )
9786                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9787
9788         b->yy_buf_size = size;
9789
9790         /* yy_ch_buf has to be 2 characters longer than the size given because
9791          * we need to put in 2 end-of-buffer characters.
9792          */
9793         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9794         if ( ! b->yy_ch_buf )
9795                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9796
9797         b->yy_is_our_buffer = 1;
9798
9799         surf_parse__init_buffer(b,file );
9800
9801         return b;
9802 }
9803
9804 /** Destroy the buffer.
9805  * @param b a buffer created with surf_parse__create_buffer()
9806  * 
9807  */
9808     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9809 {
9810     
9811         if ( ! b )
9812                 return;
9813
9814         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9815                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9816
9817         if ( b->yy_is_our_buffer )
9818                 surf_parse_free((void *) b->yy_ch_buf  );
9819
9820         surf_parse_free((void *) b  );
9821 }
9822
9823 #ifndef __cplusplus
9824 extern int isatty (int );
9825 #endif /* __cplusplus */
9826     
9827 /* Initializes or reinitializes a buffer.
9828  * This function is sometimes called more than once on the same buffer,
9829  * such as during a surf_parse_restart() or at EOF.
9830  */
9831     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9832
9833 {
9834         int oerrno = errno;
9835     
9836         surf_parse__flush_buffer(b );
9837
9838         b->yy_input_file = file;
9839         b->yy_fill_buffer = 1;
9840
9841     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9842      * called from surf_parse_restart() or through yy_get_next_buffer.
9843      * In that case, we don't want to reset the lineno or column.
9844      */
9845     if (b != YY_CURRENT_BUFFER){
9846         b->yy_bs_lineno = 1;
9847         b->yy_bs_column = 0;
9848     }
9849
9850         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9851     
9852         errno = oerrno;
9853 }
9854
9855 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9856  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9857  * 
9858  */
9859     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9860 {
9861         if ( ! b )
9862                 return;
9863
9864         b->yy_n_chars = 0;
9865
9866         /* We always need two end-of-buffer characters.  The first causes
9867          * a transition to the end-of-buffer state.  The second causes
9868          * a jam in that state.
9869          */
9870         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9871         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9872
9873         b->yy_buf_pos = &b->yy_ch_buf[0];
9874
9875         b->yy_at_bol = 1;
9876         b->yy_buffer_status = YY_BUFFER_NEW;
9877
9878         if ( b == YY_CURRENT_BUFFER )
9879                 surf_parse__load_buffer_state( );
9880 }
9881
9882 /** Pushes the new state onto the stack. The new state becomes
9883  *  the current state. This function will allocate the stack
9884  *  if necessary.
9885  *  @param new_buffer The new state.
9886  *  
9887  */
9888 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9889 {
9890         if (new_buffer == NULL)
9891                 return;
9892
9893         surf_parse_ensure_buffer_stack();
9894
9895         /* This block is copied from surf_parse__switch_to_buffer. */
9896         if ( YY_CURRENT_BUFFER )
9897                 {
9898                 /* Flush out information for old buffer. */
9899                 *(yy_c_buf_p) = (yy_hold_char);
9900                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9901                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9902                 }
9903
9904         /* Only push if top exists. Otherwise, replace top. */
9905         if (YY_CURRENT_BUFFER)
9906                 (yy_buffer_stack_top)++;
9907         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9908
9909         /* copied from surf_parse__switch_to_buffer. */
9910         surf_parse__load_buffer_state( );
9911         (yy_did_buffer_switch_on_eof) = 1;
9912 }
9913
9914 /** Removes and deletes the top of the stack, if present.
9915  *  The next element becomes the new top.
9916  *  
9917  */
9918 void surf_parse_pop_buffer_state (void)
9919 {
9920         if (!YY_CURRENT_BUFFER)
9921                 return;
9922
9923         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9924         YY_CURRENT_BUFFER_LVALUE = NULL;
9925         if ((yy_buffer_stack_top) > 0)
9926                 --(yy_buffer_stack_top);
9927
9928         if (YY_CURRENT_BUFFER) {
9929                 surf_parse__load_buffer_state( );
9930                 (yy_did_buffer_switch_on_eof) = 1;
9931         }
9932 }
9933
9934 /* Allocates the stack if it does not exist.
9935  *  Guarantees space for at least one push.
9936  */
9937 static void surf_parse_ensure_buffer_stack (void)
9938 {
9939         int num_to_alloc;
9940     
9941         if (!(yy_buffer_stack)) {
9942
9943                 /* First allocation is just for 2 elements, since we don't know if this
9944                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9945                  * immediate realloc on the next call.
9946          */
9947                 num_to_alloc = 1;
9948                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9949                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9950                                                                 );
9951                 if ( ! (yy_buffer_stack) )
9952                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9953                                                                   
9954                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9955                                 
9956                 (yy_buffer_stack_max) = num_to_alloc;
9957                 (yy_buffer_stack_top) = 0;
9958                 return;
9959         }
9960
9961         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9962
9963                 /* Increase the buffer to prepare for a possible push. */
9964                 int grow_size = 8 /* arbitrary grow size */;
9965
9966                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9967                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9968                                                                 ((yy_buffer_stack),
9969                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9970                                                                 );
9971                 if ( ! (yy_buffer_stack) )
9972                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9973
9974                 /* zero only the new slots.*/
9975                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9976                 (yy_buffer_stack_max) = num_to_alloc;
9977         }
9978 }
9979
9980 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9981  * @param base the character buffer
9982  * @param size the size in bytes of the character buffer
9983  * 
9984  * @return the newly allocated buffer state object. 
9985  */
9986 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9987 {
9988         YY_BUFFER_STATE b;
9989     
9990         if ( size < 2 ||
9991              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9992              base[size-1] != YY_END_OF_BUFFER_CHAR )
9993                 /* They forgot to leave room for the EOB's. */
9994                 return 0;
9995
9996         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9997         if ( ! b )
9998                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9999
10000         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10001         b->yy_buf_pos = b->yy_ch_buf = base;
10002         b->yy_is_our_buffer = 0;
10003         b->yy_input_file = 0;
10004         b->yy_n_chars = b->yy_buf_size;
10005         b->yy_is_interactive = 0;
10006         b->yy_at_bol = 1;
10007         b->yy_fill_buffer = 0;
10008         b->yy_buffer_status = YY_BUFFER_NEW;
10009
10010         surf_parse__switch_to_buffer(b  );
10011
10012         return b;
10013 }
10014
10015 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10016  * scan from a @e copy of @a str.
10017  * @param yystr a NUL-terminated string to scan
10018  * 
10019  * @return the newly allocated buffer state object.
10020  * @note If you want to scan bytes that may contain NUL values, then use
10021  *       surf_parse__scan_bytes() instead.
10022  */
10023 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10024 {
10025     
10026         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10027 }
10028
10029 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10030  * scan from a @e copy of @a bytes.
10031  * @param yybytes the byte buffer to scan
10032  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10033  * 
10034  * @return the newly allocated buffer state object.
10035  */
10036 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10037 {
10038         YY_BUFFER_STATE b;
10039         char *buf;
10040         yy_size_t n;
10041         int i;
10042     
10043         /* Get memory for full buffer, including space for trailing EOB's. */
10044         n = _yybytes_len + 2;
10045         buf = (char *) surf_parse_alloc(n  );
10046         if ( ! buf )
10047                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10048
10049         for ( i = 0; i < _yybytes_len; ++i )
10050                 buf[i] = yybytes[i];
10051
10052         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10053
10054         b = surf_parse__scan_buffer(buf,n );
10055         if ( ! b )
10056                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10057
10058         /* It's okay to grow etc. this buffer, and we should throw it
10059          * away when we're done.
10060          */
10061         b->yy_is_our_buffer = 1;
10062
10063         return b;
10064 }
10065
10066     static void yy_push_state (int  new_state )
10067 {
10068         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10069                 {
10070                 yy_size_t new_size;
10071
10072                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10073                 new_size = (yy_start_stack_depth) * sizeof( int );
10074
10075                 if ( ! (yy_start_stack) )
10076                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10077
10078                 else
10079                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10080
10081                 if ( ! (yy_start_stack) )
10082                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10083                 }
10084
10085         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10086
10087         BEGIN(new_state);
10088 }
10089
10090     static void yy_pop_state  (void)
10091 {
10092         if ( --(yy_start_stack_ptr) < 0 )
10093                 YY_FATAL_ERROR( "start-condition stack underflow" );
10094
10095         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10096 }
10097
10098 #ifndef YY_EXIT_FAILURE
10099 #define YY_EXIT_FAILURE 2
10100 #endif
10101
10102 static void yy_fatal_error (yyconst char* msg )
10103 {
10104         (void) fprintf( stderr, "%s\n", msg );
10105         exit( YY_EXIT_FAILURE );
10106 }
10107
10108 /* Redefine yyless() so it works in section 3 code. */
10109
10110 #undef yyless
10111 #define yyless(n) \
10112         do \
10113                 { \
10114                 /* Undo effects of setting up surf_parse_text. */ \
10115         int yyless_macro_arg = (n); \
10116         YY_LESS_LINENO(yyless_macro_arg);\
10117                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10118                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10119                 (yy_hold_char) = *(yy_c_buf_p); \
10120                 *(yy_c_buf_p) = '\0'; \
10121                 surf_parse_leng = yyless_macro_arg; \
10122                 } \
10123         while ( 0 )
10124
10125 /* Accessor  methods (get/set functions) to struct members. */
10126
10127 /** Get the current line number.
10128  * 
10129  */
10130 int surf_parse_get_lineno  (void)
10131 {
10132         
10133     return surf_parse_lineno;
10134 }
10135
10136 /** Get the input stream.
10137  * 
10138  */
10139 FILE *surf_parse_get_in  (void)
10140 {
10141         return surf_parse_in;
10142 }
10143
10144 /** Get the output stream.
10145  * 
10146  */
10147 FILE *surf_parse_get_out  (void)
10148 {
10149         return surf_parse_out;
10150 }
10151
10152 /** Get the length of the current token.
10153  * 
10154  */
10155 int surf_parse_get_leng  (void)
10156 {
10157         return surf_parse_leng;
10158 }
10159
10160 /** Get the current token.
10161  * 
10162  */
10163
10164 char *surf_parse_get_text  (void)
10165 {
10166         return surf_parse_text;
10167 }
10168
10169 /** Set the current line number.
10170  * @param line_number
10171  * 
10172  */
10173 void surf_parse_set_lineno (int  line_number )
10174 {
10175     
10176     surf_parse_lineno = line_number;
10177 }
10178
10179 /** Set the input stream. This does not discard the current
10180  * input buffer.
10181  * @param in_str A readable stream.
10182  * 
10183  * @see surf_parse__switch_to_buffer
10184  */
10185 void surf_parse_set_in (FILE *  in_str )
10186 {
10187         surf_parse_in = in_str ;
10188 }
10189
10190 void surf_parse_set_out (FILE *  out_str )
10191 {
10192         surf_parse_out = out_str ;
10193 }
10194
10195 int surf_parse_get_debug  (void)
10196 {
10197         return surf_parse__flex_debug;
10198 }
10199
10200 void surf_parse_set_debug (int  bdebug )
10201 {
10202         surf_parse__flex_debug = bdebug ;
10203 }
10204
10205 static int yy_init_globals (void)
10206 {
10207         /* Initialization is the same as for the non-reentrant scanner.
10208      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10209      */
10210
10211     /* We do not touch surf_parse_lineno unless the option is enabled. */
10212     surf_parse_lineno =  1;
10213     
10214     (yy_buffer_stack) = 0;
10215     (yy_buffer_stack_top) = 0;
10216     (yy_buffer_stack_max) = 0;
10217     (yy_c_buf_p) = (char *) 0;
10218     (yy_init) = 0;
10219     (yy_start) = 0;
10220
10221     (yy_start_stack_ptr) = 0;
10222     (yy_start_stack_depth) = 0;
10223     (yy_start_stack) =  NULL;
10224
10225 /* Defined in main.c */
10226 #ifdef YY_STDINIT
10227     surf_parse_in = stdin;
10228     surf_parse_out = stdout;
10229 #else
10230     surf_parse_in = (FILE *) 0;
10231     surf_parse_out = (FILE *) 0;
10232 #endif
10233
10234     /* For future reference: Set errno on error, since we are called by
10235      * surf_parse_lex_init()
10236      */
10237     return 0;
10238 }
10239
10240 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10241 int surf_parse_lex_destroy  (void)
10242 {
10243     
10244     /* Pop the buffer stack, destroying each element. */
10245         while(YY_CURRENT_BUFFER){
10246                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10247                 YY_CURRENT_BUFFER_LVALUE = NULL;
10248                 surf_parse_pop_buffer_state();
10249         }
10250
10251         /* Destroy the stack itself. */
10252         surf_parse_free((yy_buffer_stack) );
10253         (yy_buffer_stack) = NULL;
10254
10255     /* Destroy the start condition stack. */
10256         surf_parse_free((yy_start_stack)  );
10257         (yy_start_stack) = NULL;
10258
10259     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10260      * surf_parse_lex() is called, initialization will occur. */
10261     yy_init_globals( );
10262
10263     return 0;
10264 }
10265
10266 /*
10267  * Internal utility routines.
10268  */
10269
10270 #ifndef yytext_ptr
10271 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10272 {
10273         register int i;
10274         for ( i = 0; i < n; ++i )
10275                 s1[i] = s2[i];
10276 }
10277 #endif
10278
10279 #ifdef YY_NEED_STRLEN
10280 static int yy_flex_strlen (yyconst char * s )
10281 {
10282         register int n;
10283         for ( n = 0; s[n]; ++n )
10284                 ;
10285
10286         return n;
10287 }
10288 #endif
10289
10290 void *surf_parse_alloc (yy_size_t  size )
10291 {
10292         return (void *) malloc( size );
10293 }
10294
10295 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10296 {
10297         /* The cast to (char *) in the following accommodates both
10298          * implementations that use char* generic pointers, and those
10299          * that use void* generic pointers.  It works with the latter
10300          * because both ANSI C and C++ allow castless assignment from
10301          * any pointer type to void*, and deal with argument conversions
10302          * as though doing an assignment.
10303          */
10304         return (void *) realloc( (char *) ptr, size );
10305 }
10306
10307 void surf_parse_free (void * ptr )
10308 {
10309         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10310 }
10311
10312 #define YYTABLES_NAME "yytables"
10313
10314 /* Element context stack lookup. */
10315 int surfxml_element_context(int i)
10316 {
10317   return (0<i && i<yy_start_stack_depth
10318           ? yy_start_stack[yy_start_stack_ptr - i]
10319           : 0);
10320 }
10321
10322 #ifdef FLEX_DEBUG
10323 void print_yy_stack(char* fmt, ...)
10324 {
10325   int i = 0; va_list ap; va_start(ap, fmt);
10326   vfprintf(stderr, fmt, ap);
10327   if (surfxml_statenames) {
10328       for (i=1; i<yy_start_stack_ptr; i++) {
10329           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10330       }
10331       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10332   }
10333   va_end(ap);
10334 }
10335
10336 void print_surfxml_bufferstack()
10337 {
10338     int i;
10339     fputs("Buffer: ", stderr);
10340     for (i = 0; i < blimit; i++) {
10341        if ( surfxml_bufferstack[i] == '\377' ) break;
10342          putc(surfxml_bufferstack[i], stderr);
10343     }
10344     putc('\n', stderr);
10345 }
10346
10347 static void debug_enter(int state, const char* statename) {
10348   yy_push_state(state);
10349   if (surf_parse__flex_debug) {
10350        print_yy_stack("--ENTER(%s) : ",statename);
10351        print_surfxml_bufferstack();
10352   }
10353 }
10354
10355 static void debug_leave(void) {
10356     if (surf_parse__flex_debug) {
10357         print_yy_stack("--LEAVE : ");
10358         print_surfxml_bufferstack();
10359     }
10360   yy_pop_state();
10361 }
10362
10363 static void debug_set(int state, const char* statename) {
10364   BEGIN(state);
10365   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10366 }
10367 #endif
10368
10369 static void cleanup(void)
10370 {
10371     if (surfxml_statenames) {
10372         free(surfxml_statenames);
10373         surfxml_statenames = NULL;
10374     }
10375     free(surfxml_bufferstack);
10376     surfxml_bufferstack = NULL;
10377
10378     free(indexstack);
10379     indexstack = NULL;
10380 }
10381
10382 static int fail(const char* fmt, ...)
10383 {
10384     int chars_left, used;
10385     va_list ap; va_start(ap, fmt);
10386 #ifdef FLEXML_yylineno
10387     used = sprintf(flexml_err_msg,
10388                    "Invalid XML (XML input line %d, state %d): ",
10389                    surf_parse_lineno, YY_START);
10390 #else
10391     used = sprintf(flexml_err_msg,
10392                    "Invalid XML (state %d): ",
10393                    YY_START);
10394 #endif
10395     chars_left = flexml_max_err_msg_size - used - 1;
10396     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10397     va_end(ap);
10398
10399 #ifndef FLEXML_quiet_parser
10400     /* print directly to sdterr */
10401     fprintf(stderr, "%s\n", flexml_err_msg);
10402     flexml_err_msg[0] = '\0';
10403 #endif
10404
10405     cleanup();
10406
10407     return 1;
10408 }
10409