Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove useless length modifier 'l' in %l[efg] for printf.
[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 576
407 #define YY_END_OF_BUFFER 577
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[3388] =
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,    0,    0,    0,    0,    0,    0,  577,  575,
445        15,   10,   10,   15,   15,  555,   10,  555,    5,    6,
446         5,    8,    9,    8,  571,  563,  564,  572,  569,  572,
447       570,  574,  563,  564,  574,  575,   22,   10,   22,   22,
448        22,   20,   22,   26,   10,   26,   26,  575,   26,  575,
449
450       575,   26,   33,   10,   33,   33,   33,   31,   33,   37,
451        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
452        48,   48,  572,  571,   78,   10,   78,   78,   78,   76,
453        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
454       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
455       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
456       132,  132,  575,  132,  575,  132,  132,  575,  575,  132,
457       575,  132,  575,  132,  147,   10,  147,  147,  147,  145,
458       147,  147,  147,  147,  151,   10,  151,  151,  164,   10,
459       164,  164,  164,  162,  164,  164,  164,  168,   10,  168,
460
461       168,  177,   10,  177,  177,  177,  175,  177,  177,  181,
462        10,  181,  190,   10,  190,  190,  190,  188,  190,  190,
463       194,   10,  194,  219,   10,  219,  219,  219,  217,  219,
464       219,  219,  219,  219,  223,   10,  223,  575,  223,  230,
465        10,  230,  230,  230,  228,  230,  234,   10,  234,  245,
466        10,  245,  245,  245,  243,  245,  245,  245,  249,   10,
467       249,  302,   10,  302,  302,  302,  300,  302,  302,  302,
468       302,  302,  302,  302,  302,  302,  306,   10,  306,  306,
469       325,   10,  325,  325,  325,  323,  325,  325,  325,  325,
470       325,  325,  329,   10,  329,  350,   10,  350,  350,  350,
471
472       348,  350,  350,  350,  350,  350,  350,  350,  354,   10,
473       354,  363,   10,  363,  363,  363,  361,  363,  363,  367,
474        10,  367,  378,   10,  378,  378,  378,  376,  378,  378,
475       378,  382,   10,  382,  409,   10,  409,  409,  409,  407,
476       409,  409,  409,  409,  413,   10,  413,  413,  426,   10,
477       426,  426,  426,  424,  426,  426,  430,   10,  430,  575,
478       430,  447,   10,  447,  447,  447,  445,  447,  447,  447,
479       451,   10,  451,  451,  464,   10,  464,  464,  464,  462,
480       464,  464,  468,   10,  468,  477,   10,  477,  477,  477,
481       475,  477,  477,  481,   10,  481,  481,  494,   10,  494,
482
483       494,  494,  492,  494,  494,  494,  498,   10,  498,  498,
484       515,   10,  515,  515,  515,  513,  515,  515,  515,  515,
485       515,  519,   10,  519,  575,  519,  526,   10,  526,  526,
486       526,  524,  526,  530,   10,  530,  537,   10,  537,  537,
487       537,  535,  537,  541,   10,  541,  541,  550,   10,  550,
488       550,  550,  548,  550,  550,  554,   10,  554,   10,    0,
489         2,    2,    0,    4,    7,  566,  565,    0,    0,    0,
490         0,    0,    0,    0,   21,   23,   23,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493
494         0,   32,   34,   34,    0,   47,   49,   49,   49,   49,
495         0,    0,    0,   77,   79,   79,   79,   79,   79,   79,
496        79,   79,   79,    0,  100,  102,  102,  102,  102,    0,
497       127,  129,  129,  129,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,  146,  148,  148,  148,  148,  148,    0,
500       163,  165,  165,  165,  165,    0,  176,  178,  178,  178,
501         0,  189,  191,  191,  191,    0,  218,  220,  220,  220,
502       220,  220,  220,  220,    0,    0,  229,  231,  231,    0,
503       244,  246,  246,  246,  246,    0,  301,  303,  303,  303,
504
505       303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
506       303,  303,  303,  303,    0,  324,  326,  326,  326,  326,
507       326,  326,  326,  326,    0,  349,  351,  351,  351,  351,
508       351,  351,  351,  351,    0,  362,  364,  364,  364,    0,
509       377,  379,  379,  379,  379,    0,  408,  410,  410,  410,
510       410,  410,  410,    0,  425,  427,  427,  427,  427,    0,
511         0,  446,  448,  448,  448,  448,  448,    0,  463,  465,
512       465,  465,    0,  476,  478,  478,  478,    0,  493,  495,
513       495,  495,  495,    0,  514,  516,  516,  516,  516,  516,
514       516,    0,    0,  525,  527,  527,    0,  536,  538,  538,
515
516         0,  549,  551,  551,  551,    0,    0,    0,    0,    0,
517         3,    0,    0,    0,    0,    0,    0,    0,  573,    0,
518        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
521         0,    0,   34,    0,    0,   49,    0,    0,   49,    0,
522         0,    0,  568,   79,    0,    0,   79,   79,   79,   79,
523        79,   79,    0,    0,  102,  102,  102,    0,    0,    0,
524         0,  129,    0,    0,  107,    0,    0,    0,    0,    0,
525         0,    0,    0,  106,    0,    0,    0,    0,  148,    0,
526
527         0,  148,  148,    0,    0,  165,    0,    0,  165,    0,
528         0,  178,  178,    0,    0,  191,  191,    0,    0,  220,
529       220,  220,    0,    0,  220,  220,  220,    0,    0,    0,
530         0,  231,    0,    0,  246,    0,    0,    0,    0,    0,
531         0,  303,  303,    0,    0,  303,    0,    0,  303,  303,
532       303,  303,  303,  303,  303,  303,  303,  303,  303,    0,
533         0,    0,    0,    0,    0,  326,  326,  326,  326,  326,
534         0,    0,  351,  351,  351,    0,    0,  351,  351,  351,
535         0,    0,  364,    0,    0,    0,    0,  379,    0,    0,
536       379,    0,    0,  410,    0,    0,  410,  410,  410,    0,
537
538         0,  427,  427,  427,    0,    0,    0,  448,  448,  448,
539       448,    0,    0,  465,    0,    0,    0,    0,  478,  478,
540         0,    0,  495,  495,  495,    0,    0,  516,  516,  516,
541       516,  516,    0,    0,    0,  527,    0,    0,    0,    0,
542         0,    0,    0,    0,  551,    0,    0,    0,   14,    1,
543         0,    0,  561,    0,    0,    0,  558,  557,    0,    0,
544        23,    0,    0,   25,    0,  107,    0,    0,    0,    0,
545         0,    0,    0,  224,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
547         0,    0,    0,    0,    0,   34,    0,    0,   36,    0,
548
549        49,    0,   41,   40,   49,    0,    0,    0,   51,    0,
550        79,    0,   55,   54,    0,    0,   79,    0,    0,   79,
551        79,   79,    0,    0,   81,    0,  102,  102,  102,    0,
552         0,  104,    0,    0,  109,  108,  129,    0,    0,  131,
553         0,    0,    0,    0,  225,    0,    0,    0,    0,    0,
554         0,    0,    0,    0,  148,    0,  136,  135,  148,  148,
555         0,    0,  150,    0,  165,    0,  155,  154,  165,    0,
556         0,  167,    0,  178,  178,    0,    0,  180,    0,  191,
557       191,    0,    0,  193,    0,  220,  220,  220,    0,  198,
558       197,  220,  220,  220,    0,    0,  222,    0,    0,    0,
559
560       231,    0,    0,  233,    0,  246,    0,  238,  237,    0,
561       240,  239,    0,    0,  248,    0,  303,  303,  303,  303,
562         0,  265,  264,  303,    0,  253,  252,    0,    0,  303,
563       303,  303,  303,  303,  303,  303,  303,  303,  303,    0,
564         0,  305,    0,    0,  320,  319,    0,  310,  309,    0,
565         0,  326,  326,  326,  326,    0,    0,  328,    0,  351,
566       351,  351,  351,    0,  333,  332,    0,    0,  351,  351,
567         0,    0,  353,    0,  364,    0,  358,  357,    0,    0,
568       366,    0,  379,    0,  371,  370,  379,    0,    0,  381,
569         0,  410,    0,  386,  385,  410,  410,  410,    0,    0,
570
571       412,    0,    0,    0,    0,    0,  427,    0,    0,  429,
572         0,    0,    0,    0,  448,  448,    0,    0,  448,    0,
573         0,  450,    0,  465,    0,  455,  454,    0,    0,  467,
574         0,    0,    0,    0,    0,    0,    0,  480,    0,    0,
575         0,  495,  495,    0,    0,    0,    0,  497,    0,  516,
576       516,  516,  516,  516,    0,    0,  518,    0,    0,  527,
577         0,    0,  529,    0,    0,  534,  533,    0,    0,  540,
578         0,    0,  545,  544,  551,    0,    0,  553,    0,    0,
579         0,  562,  556,    0,    0,    0,   23,    0,    0,    0,
580         0,    0,    0,    0,    0,  224,  195,    0,  383,    0,
581
582         0,  331,    0,    0,  542,    0,    0,    0,    0,    0,
583         0,    0,    0,    0,  330,    0,    0,    0,    0,    0,
584         0,    0,   49,    0,    0,   79,    0,   59,   58,    0,
585         0,    0,   57,   56,   79,    0,    0,   79,    0,  102,
586         0,    0,  102,    0,  129,    0,  130,    0,    0,    0,
587       225,  196,  384,  543,    0,    0,    0,    0,    0,    0,
588       148,  148,    0,    0,    0,  165,  165,    0,    0,    0,
589       178,    0,    0,    0,  191,    0,  220,  220,    0,    0,
590       220,  220,  220,    0,    0,    0,    0,    0,    0,    0,
591         0,    0,  303,  303,  303,  303,    0,    0,    0,  267,
592
593       266,  303,  303,  303,  303,  303,  303,  303,  303,  303,
594       303,  303,    0,    0,  322,  321,  326,  326,  326,  326,
595         0,  351,  351,  351,  351,    0,  341,  340,  351,  351,
596         0,  364,    0,  379,  379,    0,  410,  410,  410,  410,
597         0,    0,  419,  418,    0,  417,  416,  427,    0,  383,
598         0,  436,  435,  448,  448,    0,  434,  433,  448,    0,
599       465,    0,    0,  474,  473,    0,  472,  471,    0,    0,
600       487,  486,  495,  495,    0,  485,  484,    0,  516,    0,
601         0,  516,  516,  516,    0,    0,  527,    0,    0,  551,
602         0,    0,    0,    0,   12,    0,  559,  560,    0,   23,
603
604         0,    0,    0,    0,    0,    0,    0,    0,  195,    0,
605         0,  383,    0,  169,    0,  331,    0,    0,  542,    0,
606       414,    0,   39,    0,    0,    0,    0,    0,  330,    0,
607        38,    0,   30,   29,    0,    0,   43,   42,   49,    0,
608         0,   79,    0,   61,   60,   79,    0,   65,   64,   79,
609         0,  102,    0,    0,    0,    0,    0,    0,  129,    0,
610         0,    0,  196,    0,  384,  543,  415,    0,    0,    0,
611       415,  414,  148,    0,    0,    0,  140,  139,    0,  165,
612       165,    0,    0,  174,  173,  178,    0,    0,  187,  186,
613       191,    0,  220,  220,    0,  202,  201,    0,    0,  220,
614
615         0,    0,  220,    0,  170,    0,    0,  227,  226,    0,
616       232,    0,  242,  241,    0,  303,    0,    0,  303,  303,
617         0,  263,  262,  303,  303,    0,    0,  303,  303,  303,
618       303,  303,  303,  303,  303,    0,    0,    0,  326,  326,
619       326,    0,  351,    0,    0,  351,  351,    0,    0,  351,
620         0,  364,    0,  379,  379,    0,  410,  410,  410,    0,
621         0,  410,    0,  427,    0,    0,  448,  448,  448,    0,
622       465,    0,    0,  495,  495,    0,  516,    0,  502,  501,
623       516,  516,  516,    0,    0,    0,    0,    0,    0,    0,
624         0,    0,    0,    0,    0,   11,    0,   23,    0,    0,
625
626         0,    0,    0,    0,    0,  532,    0,    0,    0,  169,
627         0,    0,    0,   53,  414,  355,    0,   39,    0,  531,
628        52,    0,    0,    0,    0,   38,    0,    0,   49,    0,
629         0,   79,   79,   79,    0,  102,    0,    0,    0,    0,
630         0,    0,    0,    0,    0,   96,   95,    0,  129,    0,
631         0,    0,    0,  415,  356,    0,    0,    0,  148,    0,
632       138,  137,    0,  165,    0,    0,    0,  178,    0,    0,
633         0,    0,  220,  220,    0,  200,  199,    0,    0,    0,
634         0,    0,  220,    0,  221,  170,    0,    0,  303,    0,
635       281,  280,    0,    0,  303,  303,  303,    0,  261,  260,
636
637         0,    0,  303,  303,  303,  303,    0,    0,  303,  303,
638         0,    0,  318,  317,    0,    0,  326,    0,    0,    0,
639       351,    0,  337,  336,    0,    0,  351,    0,  335,  334,
640       351,    0,  352,  364,    0,  379,  379,    0,  410,  410,
641       410,    0,    0,    0,  410,    0,  411,  427,    0,    0,
642         0,    0,    0,    0,  448,    0,  465,    0,    0,    0,
643         0,    0,    0,    0,  516,  516,  516,  516,    0,    0,
644         0,  523,  522,    0,    0,    0,  547,  546,    0,  552,
645         0,    0,    0,    0,    0,    0,    0,  431,    0,    0,
646         0,    0,  308,  251,  532,    0,   28,    0,    0,    0,
647
648       500,   53,  355,  152,    0,  531,   52,  307,  250,   27,
649       499,    0,    0,   49,    0,    0,   50,   79,    0,    0,
650        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,  432,    0,    0,
652         0,    0,  356,  153,    0,    0,  148,    0,    0,    0,
653       165,    0,  157,  156,    0,  178,    0,  179,    0,  185,
654       184,    0,  220,  220,    0,  216,  215,    0,    0,  220,
655         0,    0,  303,    0,  283,  282,  303,  303,  303,    0,
656       255,  254,    0,    0,  303,  303,  303,    0,  257,  256,
657       303,  303,    0,    0,  312,  311,    0,    0,    0,  314,
658
659       313,    0,  351,    0,  339,  338,  351,  351,  364,    0,
660       379,    0,    0,    0,  410,    0,    0,  410,  410,    0,
661         0,  410,  427,    0,  428,    0,    0,  440,  439,    0,
662       438,  437,  448,    0,  465,    0,    0,    0,  491,  490,
663         0,  489,  488,    0,  516,  516,  516,  516,    0,    0,
664         0,    0,    0,    0,    0,   17,    0,   19,   18,    0,
665       431,  520,  368,    0,    0,  308,  251,    0,   28,  452,
666       182,   16,  500,  152,    0,    0,  307,  250,   27,  499,
667         0,    0,   49,  567,   79,    0,   67,   66,   79,    0,
668        80,    0,   98,   97,    0,    0,    0,    0,    0,    0,
669
670         0,    0,    0,    0,    0,    0,    0,    0,  432,  369,
671         0,    0,    0,  153,    0,    0,  142,  141,  148,    0,
672         0,  159,  158,  165,    0,  178,    0,  220,  220,    0,
673         0,    0,    0,  220,  183,    0,  303,  303,  303,  303,
674         0,  259,  258,  303,  303,  303,  303,    0,    0,    0,
675         0,  316,  315,    0,  351,  351,  351,  364,    0,  365,
676       379,    0,  375,  374,    0,  410,    0,  392,  391,  410,
677       410,    0,    0,    0,    0,  410,  427,  453,  448,    0,
678       465,    0,    0,    0,    0,    0,  516,  516,  516,    0,
679       521,    0,    0,  539,    0,    0,    0,   17,    0,  520,
680
681       368,    0,    0,  235,  452,  182,   16,    0,    0,    0,
682         0,   35,   49,    0,    0,   79,    0,    0,    0,    0,
683         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,  369,    0,    0,
685       236,    0,  148,    0,  165,    0,  166,    0,    0,    0,
686       220,  220,    0,  208,    0,  207,  220,  183,    0,  303,
687       303,  303,  303,  303,    0,    0,  303,  303,  303,    0,
688         0,    0,    0,  304,    0,  327,  351,  351,  351,  364,
689         0,    0,    0,    0,    0,  410,  410,  410,    0,  396,
690         0,  395,  410,  427,  453,  448,    0,  449,    0,    0,
691
692         0,    0,    0,    0,  504,  503,    0,    0,  516,  516,
693         0,  517,  521,    0,    0,    0,    0,    0,   24,    0,
694         0,  235,    0,    0,    0,   49,    0,    0,    0,   79,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,  236,    0,  148,    0,  165,
698         0,  172,  171,    0,  192,  220,  220,  210,  209,    0,
699         0,    0,  303,  303,  303,  303,  303,    0,  293,  292,
700       303,    0,    0,  303,    0,    0,    0,    0,  351,  351,
701         0,    0,  364,    0,  373,  372,    0,  380,    0,  388,
702
703       387,  410,  410,  410,  398,  397,    0,    0,  427,  448,
704         0,    0,    0,    0,  466,    0,    0,    0,  508,  507,
705         0,    0,    0,    0,    0,  528,    0,    0,    0,    0,
706       469,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,   79,    0,    0,    0,    0,   88,    0,    0,
708         0,    0,   87,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,  470,    0,  148,
710         0,  165,  220,    0,    0,    0,  212,  211,    0,  247,
711       303,  303,  303,    0,    0,  303,  303,    0,  291,  290,
712       303,    0,    0,    0,    0,  351,    0,    0,    0,  347,
713
714       346,    0,    0,  410,  410,  410,    0,  400,  399,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,  506,  505,    0,    0,    0,
717         0,  469,  133,    0,    0,    0,   45,   44,    0,    0,
718         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,  470,
721       134,    0,    0,    0,    0,    0,    0,    0,  220,    0,
722       214,  213,  303,  303,    0,    0,    0,  297,  296,    0,
723         0,  303,  303,    0,    0,    0,    0,  351,    0,  343,
724
725       342,    0,  360,  359,  410,    0,    0,  410,    0,    0,
726         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728       482,  133,   84,   83,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
730        93,    0,    0,    0,    0,    0,  111,  119,    0,    0,
731         0,    0,  110,  118,    0,  483,  134,    0,  144,  143,
732         0,    0,  161,  160,    0,  204,  203,  220,  303,  303,
733         0,  295,  294,    0,  299,  298,  303,  303,    0,    0,
734         0,    0,  351,  410,    0,  394,  393,  410,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,  457,    0,
737         0,  456,    0,  479,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,  482,   84,   83,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,   63,   62,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
741         0,    0,  112,    0,  483,    0,  149,  220,  303,  303,
742         0,    0,  303,  275,    0,  274,    0,  351,    0,    0,
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,   75,   71,    0,    0,
746
747        74,   70,    0,   92,    0,    0,   91,    0,    0,    0,
748       103,    0,    0,    0,    0,    0,    0,  220,  303,  303,
749         0,    0,    0,    0,    0,  277,  276,  351,    0,  390,
750       389,    0,    0,    0,  423,    0,  422,    0,  444,    0,
751       443,    0,  459,  461,  458,  460,    0,  496,  510,    0,
752       509,    0,    0,    0,    0,   12,    0,   12,    0,    0,
753         0,    0,    0,   86,   90,   85,   89,  123,    0,    0,
754       121,  122,    0,    0,  120,  220,  303,  303,    0,    0,
755         0,    0,    0,  279,  278,  351,    0,    0,    0,    0,
756       421,  420,  442,  441,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,  115,    0,    0,  114,
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,   69,    0,   68,    0,    0,
762         0,    0,    0,    0,  206,  205,    0,  289,  288,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,  345,
764       344,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,  512,  511,    0,   73,   72,    0,    0,
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       125,  117,  124,  116,    0,    0,    0,    0,    0,    0,
774       269,    0,    0,  268,    0,    0,  402,    0,    0,  401,
775         0,    0,    0,    0,    0,  273,    0,  272,    0,  404,
776         0,  403,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,  285,    0,  284,    0,    0,    0,
778         0,    0,    0,  287,  286,  271,  270,  406,  405,    0,
779
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,   13,    0
789     } ;
790
791 static yyconst flex_int32_t yy_ec[256] =
792     {   0,
793         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
794         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
797         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
798        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
799        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
800        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
801        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
802        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
803
804        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
805        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
806        73,   74,    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,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
813         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
814
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
820         1,    1,    1,    1,    1
821     } ;
822
823 static yyconst flex_int32_t yy_meta[75] =
824     {   0,
825         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
826         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
827         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
828         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
829         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
830         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
831         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
832         5,    5,    5,    5
833     } ;
834
835 static yyconst flex_int16_t yy_base[3881] =
836     {   0,
837         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
838        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
839       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
840       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
841       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
842       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
843       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
844       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
845       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
846       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
847
848       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
849      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
850      1149, 1153, 1191, 1258, 1211, 1214, 1325, 1393, 1217, 1221,
851      1461, 1528, 1224, 1278, 1281, 1284, 1288, 1291, 1345, 1348,
852      1595, 1657, 1351, 1355, 1719, 1788, 1358, 1413, 1857,    0,
853      1416, 1419, 1423, 1426, 1481, 1484, 1487, 1491, 1931, 1998,
854      1548, 1551, 2065, 2132, 1554, 1558, 2199, 2256, 1615, 1618,
855      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
856      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
857      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
858
859      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
860      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
861      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
862      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
863      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
864      2523, 2526, 3605, 3675, 2530, 2533,    0,    0, 9163,12335,
865     12335,   95,  100,   29,   41,12335,  103,   51,12335,12335,
866      9148,12335,12335, 9137,12335, 9152, 9148,  202,12335,12335,
867     12335,12335, 9146, 9146, 9097,  153,12335,  161, 9123,    0,
868       145,12335, 9089,12335,  165, 3741,   73, 2540,  315,  357,
869
870      9125, 9072,12335,  168, 9115,    0,  152,12335, 9073,12335,
871       261, 9117,   31,12335,  266, 9108,    0,  245,12335, 8517,
872      8521, 8518,  421, 8523,12335,  269, 8549,    0,  340,12335,
873      8515, 8515,  271, 8517,  238,12335,  441,  484,12335,  504,
874      8545,    0,  401,12335, 8503, 8505, 8494,12335,  561,  548,
875     12335,  571, 8532,    0,  481,12335, 8499, 8486,12335,  628,
876      3805, 8477,  163, 2542,  567,  206,   38, 8527,  954, 2533,
877       639,  907,  437,   79,12335,  634, 8518,    0,  546,12335,
878      8473, 8479, 8467, 8471,12335,  638,  313,  368,12335,  697,
879      8502,    0,  549,12335, 8457, 8464, 8441,12335,  704,  426,
880
881       497,12335,  707, 8493,    0,  747,12335, 8454, 8424,12335,
882       767,  753,12335,  773, 8471,    0,  757,12335, 8432, 8407,
883     12335,  831,  818,12335,  838, 8458,    0,  758,12335, 8400,
884      8405, 8413,  251, 8395,12335,  841,  559,  825,  530,12335,
885       906, 8438,    0,  815,12335, 8408,12335,  914,  891,12335,
886       977, 8426,    0,  953,12335, 8382, 8387, 8369,12335,  981,
887       965,12335, 1021, 8407,    0,  966,12335, 8356,  203, 8355,
888      8365,  378,   85,  311,  972, 8352,12335, 1040,  564,  814,
889     12335, 1044, 8390,    0, 1032,12335, 8338, 8355, 8349,  157,
890      8346, 8323,12335, 1048, 1086,12335, 1106, 8353,    0, 1033,
891
892     12335, 8302, 8299, 8302, 8311, 8313, 8297, 8278,12335, 1111,
893      1099,12335, 1114, 8325,    0, 1100,12335, 8271, 8281,12335,
894      1156, 1160,12335, 1173, 8309,    0, 1157,12335, 8278, 8274,
895      8276,12335, 1180, 1228,12335, 1183, 8303,    0, 1158,12335,
896      8273, 8268, 8264,   15,12335, 1186,  899,  963,12335, 1241,
897      8288,    0, 1225,12335, 8240,  181,12335, 1248, 1243,  432,
898       303,12335, 1308, 8285,    0, 1226,12335, 8229, 8224,  299,
899     12335, 1311, 1229,  350,12335, 1314, 8273,    0, 1303,12335,
900      8227, 8227,12335, 1319, 1362,12335, 1375, 8245,    0, 1359,
901     12335, 8192, 8192,12335, 1382, 1378,  676,12335, 1445, 8236,
902
903         0, 1360,12335, 8170, 8161, 8165,12335, 1448, 1446,  685,
904     12335, 1494, 8200,    0, 1370,12335, 8150, 8154, 8159, 8152,
905      8141,12335, 1513, 1514,  560, 1007,12335, 1517, 8178,    0,
906      1438,12335, 8146,12335, 1520, 1559,12335, 1579, 8169,    0,
907      1506,12335, 8135,12335, 1584, 1210, 1236,12335, 1587, 8164,
908         0, 1563,12335, 8130, 8129,12335, 1645, 1632, 1648,  677,
909      8104,12335, 8155, 8144,12335,12335,12335, 1641,  375, 8090,
910      8089, 8075, 8123, 8081,12335,    0, 8070, 8071, 8094, 8061,
911       104, 1037, 8061, 8058, 8057, 8061,  889, 1646, 1105, 8048,
912      8042, 1393, 1307, 8066, 1510, 8038, 1649, 8033, 1647, 1708,
913
914      1709,12335,    0, 8027, 8029,12335,    0, 8024, 2098, 8010,
915       666, 8007, 8044,12335,    0, 8001, 2165, 7988, 8003, 7980,
916      7989, 7977, 7977, 7961,12335,    0, 7969, 7959, 7970, 7950,
917     12335,    0, 2232, 7947, 7989, 7971,  172, 7940, 7940, 7944,
918      1719, 1319, 7922, 1720, 7950,  707,  724,  814,  841, 1577,
919      1651, 1701,  888,12335,    0, 7925, 2289, 7929, 7905, 7907,
920     12335,    0, 7911, 2592, 7907, 7896,12335,    0, 7899, 7891,
921      7892,12335,    0, 7890, 7879, 7881,12335,    0, 7891,  758,
922      2598, 7864, 7865, 7883, 7874,  897,12335,    0, 7863, 7867,
923     12335,    0, 7846, 2654, 2657, 7860,12335,    0, 7865, 7854,
924
925      2660, 7834, 2663, 7828, 7833, 7829, 7819, 7836, 7820, 7799,
926      7818, 7816, 7797, 7786, 7797,12335,    0, 2666, 2721, 7775,
927      7771, 7786, 7785, 7778, 7779,12335,    0, 7780, 7772, 7756,
928      2724, 7749, 7741, 7762, 7742,12335,    0, 7742, 2727, 7737,
929     12335,    0, 7732, 2730, 7723, 7739,12335,    0, 7723, 2733,
930      7705, 7723, 7721, 7701,12335,    0, 7691, 7703, 7692, 7677,
931      7685,12335,    0, 7672, 7684, 7680, 7668, 7706,12335,    0,
932      7660, 2788, 7662,12335,    0, 7652, 7665, 7655,12335,    0,
933      7636, 7654, 7645, 7645,12335,    0, 7630, 7617, 7620, 7615,
934      7613, 7595, 7591,12335,    0, 7590, 7600,12335,    0, 2791,
935
936      7587,12335,    0, 2794, 7577, 7569, 7611, 7620, 1807, 7559,
937     12335, 1833,    0, 7555, 7554, 7592, 7591, 7543,12335, 7556,
938      7532, 2797, 2801, 1981, 7542, 7544, 7525, 7538, 7514, 7520,
939      7507, 7508, 7522, 7500, 7492, 7491, 7505, 7506, 7486, 7472,
940      7464, 7468, 7473, 7459, 7457, 1990, 7464, 7444, 7456, 7453,
941      7441, 7447, 7442, 2855, 2860, 7437, 2864, 2048, 7432, 7463,
942      2868, 2912,12335, 7433, 2915, 2117, 2921, 7422, 2924, 7421,
943      7420, 7423, 2927, 2983, 7408, 7405, 7403, 2969, 2972, 2978,
944      2184, 7385, 3037, 3040, 2363, 7400, 7371, 7365, 7365, 7355,
945      7353, 7345, 7346, 2423, 7344, 7337, 7331, 7326, 7322, 2996,
946
947      2618, 7336, 7334, 3044, 3047, 7301, 3050, 2685, 7315, 3103,
948      3106, 7313, 7291, 3114, 3117, 7302, 7300, 3129, 3173, 7293,
949      7282, 7291, 3109, 2755, 7278, 7279, 7252, 3179, 3183, 7250,
950      7249, 7263, 3186, 3245, 7245, 3239, 2822, 3248, 3002, 3252,
951      3257, 7239, 1920, 3304, 3068, 7241, 3308, 3137, 3313, 7232,
952      7224, 7233, 7221, 7217, 7200, 7198, 7194, 7198, 7187, 3322,
953      3383, 3331, 3205, 3371, 3374, 3389, 3392, 3397, 3450, 3459,
954      3444, 3468, 7192,   37, 7177, 3454, 3403, 3512, 7189, 7172,
955      3516, 3519, 7166, 3522, 3411, 3525, 3571, 7178, 3574, 3473,
956      7176, 3577, 3580, 7174, 3583, 3481, 7167, 7139, 7130, 3628,
957
958      3634, 3637, 3640, 3695, 3643, 3698, 7135, 3701, 3705, 3708,
959      3732, 3713, 3727, 7142, 3735, 3662, 3738, 3765, 3746, 3775,
960      3779, 3784, 3809, 3812, 3816, 3821, 3830, 7123, 7102, 7105,
961      7110, 7096, 3843, 3872, 7083, 7068, 3878, 3881, 3834, 3884,
962      3892, 3902, 3840, 3905, 7066, 3913, 3916, 7110,12335,12335,
963      1070, 7069,12335, 7099, 7086, 7034,12335,12335, 7031, 7026,
964      7026, 3921, 3924,12335, 3928, 1714, 7019, 7002, 7008, 7017,
965      6998, 6986, 6998, 1779, 6980, 6987, 6983, 6979, 6976, 6955,
966      6948,  446, 6962, 6945, 6945, 6953, 6948, 6945, 1849, 6937,
967      6925, 6924, 6917, 1381, 6923, 3947, 3950, 3953,12335, 3956,
968
969      3959, 3965,12335,12335, 3977, 6948, 3981, 3984,12335, 3988,
970      6905, 3991,12335,12335, 4007, 4010, 4019, 4025, 4030, 6915,
971      4039, 6913, 4043, 4046,12335, 4049, 6910, 4052, 6909, 4057,
972      4070,12335, 4076, 4079,12335,12335, 6899, 4089, 4095,12335,
973      4098, 6892, 6894, 6893, 1852, 6873, 6880, 1449, 6869, 6870,
974      6880, 6879, 6854, 6843, 6856, 4101,12335,12335, 6848, 4110,
975      4117, 4120,12335, 4124, 6850, 4129,12335,12335, 6872, 4139,
976      4143,12335, 4146, 4149, 4152, 4158, 4170,12335, 4173, 4177,
977      4180, 4200, 4203,12335, 4209, 6840, 6840, 4212, 4215,12335,
978     12335, 6825, 6792, 6805, 4223, 4230,12335, 4233, 6792, 6786,
979
980      4236, 4242, 4245,12335, 4254, 4257, 4264,12335,12335, 4276,
981     12335,12335, 4284, 4287,12335, 4290, 6787, 6771, 6792, 6783,
982      4293,12335,12335, 4309, 4312,12335,12335, 4322, 4327, 6754,
983      6771, 6734, 6732, 6737, 6733, 6724, 6727, 6712,  707, 4335,
984      4340,12335, 4343, 4347,12335,12335, 4362,12335,12335, 4370,
985      4373, 6702, 6704, 6684, 6677, 4381, 4384,12335, 4388, 6668,
986      6664, 6648, 6664, 4391,12335,12335, 4403, 4407, 6640, 6647,
987      4415, 4421,12335, 4424, 6645, 4427,12335,12335, 4443, 4446,
988     12335, 4449, 6624, 4452,12335,12335, 6632, 4468, 4471,12335,
989      4476, 6621, 4480,12335,12335, 6622, 6621, 6624, 4490, 4495,
990
991     12335, 4499, 4502, 4505, 4520, 4526, 6604, 4534, 4538,12335,
992      4542, 6596, 4545, 4563, 6582, 6581, 4549, 4571, 6583, 4579,
993      4582,12335, 4585, 6578, 4588,12335,12335, 4604, 4610,12335,
994      4613, 4616, 4619, 4634, 4637, 4645, 4652,12335, 4656, 4659,
995      4664, 6544, 6537, 4677, 4680, 4688, 4691,12335, 4695, 6512,
996      4698, 6525, 6490, 6466, 4701, 4710,12335, 4720, 6448, 6450,
997      4723, 4729,12335, 4732, 4735,12335,12335, 4743, 4751,12335,
998      4754, 4758,12335,12335, 6424, 4766, 4773,12335, 4776, 1099,
999      4786,12335,12335, 6458, 6418, 6363, 6353, 4795, 6333, 6338,
1000      6346, 6259, 6263, 6230, 6215, 2057, 2250, 6146, 2307, 6126,
1001
1002      6070, 2483, 6064, 6055, 2492, 5962, 5904, 5903, 5877, 5846,
1003      5812, 5803,   21,  125, 2495,  264,  329, 4798, 4816, 4801,
1004      4807, 4825,  347,  383, 4833,  397, 4838,12335,12335, 4846,
1005      4853, 4864,12335,12335,  429, 4872, 4876,  446, 4884,  465,
1006      4890, 4893, 4903, 4908,  488, 4810,12335,  487,  568,  576,
1007      2626, 2629, 2693, 2696,  631,  636,  662,  745,  778,  793,
1008       830, 4911, 4914, 4917, 4935,  835,  850, 4938, 4941, 4944,
1009       865, 4959, 4962, 4965,  978, 4973,  982,  976, 4980, 4983,
1010      4992, 1039, 5003, 5006, 1027, 1056, 5010, 5014, 5028, 5031,
1011      5035, 5043, 1117, 5050, 1105, 1158, 5053, 5056, 5064,12335,
1012
1013     12335, 1181, 1187, 5073, 1182, 1207, 1191, 1236, 1253, 1247,
1014      1277, 1325, 5076, 5079,12335,12335, 5087, 5091, 5095, 5098,
1015      5101, 1340, 5105, 1324, 1352, 5116,12335,12335, 5126, 1376,
1016      5129, 1376, 5132, 1378, 1385, 5135, 1397, 1406, 1398, 5138,
1017      5144, 5163,12335,12335, 5171,12335,12335, 1409, 5158, 2763,
1018      5179,12335,12335, 1424, 1450, 5187,12335,12335, 1435, 5195,
1019      1436, 5202, 5205,12335,12335, 5214,12335,12335, 5225, 5228,
1020     12335,12335, 1476, 1514, 5237,12335,12335, 5245, 1510, 5248,
1021      5251, 1525, 1537, 1563, 5260, 1573, 5266, 5269, 5273, 5279,
1022      5284, 1739, 1615, 5288,12335, 1618,12335,12335, 1582, 1611,
1023
1024      5293, 1620, 1644, 1672, 1691, 1724, 1725, 1732, 2830, 1744,
1025      1767, 2874, 1777, 2882, 1781, 2887, 1768, 1766, 2933, 1776,
1026      3010, 1783, 3266, 1786, 1781, 1791, 1796, 1895, 3078, 1895,
1027      3540, 5297,12335,12335, 5312, 5315,12335,12335, 1914, 1933,
1028      5326, 1906, 5331,12335,12335, 1916, 5347,12335,12335, 1916,
1029      5340, 1921, 5359, 2516, 2779, 5367, 5371, 5380, 1935, 1928,
1030      1951, 1962, 3279, 1977, 3342, 3530, 5385, 1983, 1973, 1974,
1031      5388, 5391, 1975, 5394, 5402, 5412,12335,12335, 5420, 1985,
1032      5423, 5426, 5432,12335,12335, 2010, 5441, 5446,12335,12335,
1033      5460, 5456, 2031, 2034, 5464,12335,12335, 5478, 5481, 5489,
1034
1035      5492, 5496, 2050, 5510, 3670, 2056, 5514,12335,12335, 5522,
1036     12335, 5525,12335,12335, 5533, 2057, 5536, 5541, 5554, 2042,
1037      5557,12335,12335, 2044, 2067, 5565, 5568, 5576, 2064, 2079,
1038      2073, 2076, 5583, 2082, 2093, 5586, 5589, 5594, 5607, 5610,
1039      5613, 5616, 2113, 5619, 5631, 5639, 2109, 5642, 5646, 2118,
1040      5660, 2112, 5663, 2123, 2104, 5669, 2133, 2118, 2139, 5672,
1041      5684, 2141, 5692, 2131, 5695, 2147, 5698, 5701, 5704, 5707,
1042      2158, 5726, 5722, 5730, 5733, 5736, 2167, 5741,12335,12335,
1043      2181, 2179, 2173, 5751, 2189, 5756, 5759, 5775, 5778, 5781,
1044      5784, 5803, 2235, 2267, 2336,12335, 2178, 5806, 5809, 2195,
1045
1046      2187, 2233, 2274, 2231, 2235, 3771, 2248, 2253, 2276, 4553,
1047      2297, 2287, 2291, 5812, 5815, 5818, 2309, 5824, 2317, 5828,
1048      5835, 2301, 2305, 2319, 2337, 5838, 2361, 5841, 2362, 2393,
1049      5844, 2353, 5847, 2361, 5850, 5854, 2400, 2392, 2442, 2395,
1050      2410, 2413, 2536, 2437, 5865,12335,12335, 5874, 5877, 2422,
1051      2414, 2518, 2421, 5880, 5883, 2429, 2521, 2567, 5886, 5895,
1052     12335,12335, 5904, 5910, 5913, 5917, 5933, 2458, 5936, 5941,
1053      5945, 5959, 2434, 2443, 5962,12335,12335, 5970, 5974, 5988,
1054      2480, 2495, 2485, 5982,12335, 5996, 2506, 6001, 2506, 6007,
1055     12335,12335, 6015, 6020, 2508, 2542, 2534, 6029,12335,12335,
1056
1057      6037, 6040, 6048, 2541, 2555, 2550, 6051, 6056, 2543, 2539,
1058      6069, 6072,12335,12335, 6080, 6084, 6092, 6098, 6101, 6110,
1059      2558, 6117,12335,12335, 6125, 6129, 2567, 6137,12335,12335,
1060      2561, 6145,12335, 2574, 6148, 2557, 6151, 6154, 2558, 6157,
1061      2602, 6169, 2635, 2636, 2617, 6177,12335, 2618, 6180, 2610,
1062      6183, 6186, 6204, 6207, 2626, 6216, 2621, 6222, 6225, 6228,
1063      6231, 6246, 6249, 6257, 2628, 2631, 2624, 2660, 6260, 2676,
1064      6265,12335,12335, 6279, 6283, 6287,12335,12335, 6298,12335,
1065      2719, 2809, 2740, 2681, 6302, 6305, 6313, 6326, 2676, 2697,
1066      2712, 2691, 6332, 6337, 6340, 2693, 6343, 2700, 2710, 2723,
1067
1068      6346, 6349, 6352, 6355, 2746, 6358, 6361, 6364, 6367, 6370,
1069      6373, 2755, 6378, 2762, 2776, 6381,12335, 2761, 6385, 6388,
1070      2781, 6403, 6406, 6409, 2816, 2826, 2829, 2838, 2831, 2844,
1071      2869, 2880, 2886, 2890, 6417, 6424, 6430, 6438, 2888, 2903,
1072      2882, 2884, 6442, 6445, 6448, 6451, 2880, 6459, 6462, 6467,
1073      2897, 6480,12335,12335, 6488, 2925, 6493,12335, 6496,12335,
1074     12335, 6507, 2919, 2915, 6512,12335,12335, 2967, 3031, 2924,
1075      2935, 6520, 2930, 6526,12335,12335, 2929, 2933, 2959, 6540,
1076     12335,12335, 6534, 6548, 2957, 2946, 2985, 6557,12335,12335,
1077      3006, 6565, 6568, 6572,12335,12335, 6583, 6587, 6595,12335,
1078
1079     12335, 6603, 2996, 6606,12335,12335, 2991, 3001, 2997, 6615,
1080      3017, 6618, 6622, 6636, 3019, 6639, 6642, 3024, 3035, 3087,
1081      3109, 3064, 3074, 6650,12335, 3065, 6657,12335,12335, 6670,
1082     12335,12335, 3091, 6665, 3083, 6679, 6684, 6687,12335,12335,
1083      6699,12335,12335, 6707, 6711, 6717, 6721, 6729, 6735, 3079,
1084      6739, 6742, 6747, 3128, 3146, 6750, 6754,12335,12335, 6762,
1085      6769, 6772, 6775, 3106, 3104, 6781, 6789, 3119, 6792, 6795,
1086      6801, 6804, 6807, 6810, 3111, 3122, 6813, 6816, 6822, 6825,
1087      3130, 6828, 3126,12335, 6831, 6834,12335,12335, 6842, 6849,
1088     12335, 6853,12335,12335, 3170, 3158, 3174, 3169, 3178, 3185,
1089
1090      3172, 3189, 3184, 3207, 6861, 6864, 3294, 6847, 6873, 6876,
1091      3173, 3175, 3186, 6881, 3185, 6884,12335,12335, 3184, 6892,
1092      6895,12335,12335, 3189, 6903, 6911, 6914, 3209, 3221, 3248,
1093      3272, 3252, 3291, 3260, 6917, 6923, 3265, 3273, 3280, 3289,
1094      6929,12335,12335, 6942, 3278, 3295, 3306, 6945, 6948, 6956,
1095      6966,12335,12335, 6975, 3322, 3328, 3329, 3331, 6978,12335,
1096      6984, 6987,12335,12335, 6997, 7003, 7006,12335,12335, 7016,
1097      7021, 3361, 3383, 3375, 3395, 7024, 3361, 7027, 3369, 7034,
1098      7030, 7042, 7054, 7061, 7057, 7066, 7076, 7083, 7086, 7089,
1099      7094, 7104, 7108,12335, 7111, 3429, 3417, 7116, 7123, 7119,
1100
1101      7130, 3356, 3376, 7138, 7142, 7145, 7148, 3377, 3393, 3397,
1102      7151,12335, 3387, 7154, 7157, 3408, 3423, 3432, 3451, 3441,
1103      3492, 3492, 3492, 3511, 3499, 3526, 7165, 3510, 3514, 3529,
1104      3527, 3535, 3536, 3542, 3589, 3538, 3546, 7174, 3541, 3553,
1105      7177, 3554, 3564, 7180, 3569, 7184,12335, 7187, 7190, 7199,
1106      3567, 3583, 3647,12335, 3646,12335, 7205, 7208, 7211, 3589,
1107      3612, 3599, 3596, 3620, 7214, 7219, 3610, 7232, 3653, 7235,
1108      3686, 3744, 7243,12335, 7251,12335, 3651, 3656, 7254, 3658,
1109      7257, 7263, 7275, 7278, 7281, 7289, 7296, 7299, 3722,12335,
1110      3734,12335, 7302, 3684, 7307, 3692, 7310,12335, 7320, 7323,
1111
1112      7331, 7334, 7338, 7343,12335,12335, 7358, 7361, 7369, 7372,
1113      7376,12335, 7379, 7382, 3735, 3783, 3786, 7390,12335, 3690,
1114      3707, 7395, 3700, 3717, 3723, 7403, 7409, 3864, 3875, 3717,
1115      3759, 3778, 3797, 3807, 3824, 3809, 3826, 3827, 3830, 3849,
1116      7417, 3798, 3810, 3807, 3817, 3816, 3821, 3828, 3863, 3866,
1117      3874, 3873, 3867, 3870, 3887, 7421, 3878, 3890, 7424, 3892,
1118      7427,12335,12335, 7436,12335, 3873, 7439,12335,12335, 7443,
1119      7446, 7457, 3891, 3908, 3916, 7461, 3921, 7464,12335,12335,
1120      3941, 7472, 7479, 3931, 3969, 3967, 3972, 3970, 3942, 7490,
1121      7496, 7499, 7508, 7514,12335,12335, 7522,12335, 7526,12335,
1122
1123     12335, 7534, 7537, 7541,12335,12335, 7544, 7548, 7562, 7565,
1124      7568, 4535, 4568, 7576,12335, 7583, 7590, 7598,12335,12335,
1125      7609, 7612, 7620, 7623, 7632,12335, 4015, 4000, 4005, 3949,
1126      7638, 3965, 3973, 3979, 7641, 7652, 3993, 4021, 4054, 4027,
1127      4032, 4073, 4008, 4050, 4042, 4041, 4045,12335, 4069, 4064,
1128      4071, 4075,12335, 7644, 4063, 4075, 4063, 4079, 4104, 4109,
1129      4097, 4106, 4094, 4109, 4117, 4136, 4118, 7663, 4135, 7666,
1130      7669, 7672, 7675, 7679, 7684, 7697,12335,12335, 7705,12335,
1131      4141, 4128, 7708, 7711, 7715, 7732, 4141, 7735,12335,12335,
1132      4141, 4173, 4159, 4176, 4162, 4160, 7743, 7746, 7754,12335,
1133
1134     12335, 7762, 7765, 7773, 7776, 7780, 7784,12335,12335, 7794,
1135      7798, 7806, 7812, 4186, 4192, 4193, 4205, 4215, 4215, 7820,
1136      7824, 7832, 4246, 4281, 7843,12335,12335, 4249, 4243, 7851,
1137      4201, 7854, 7857, 4196, 4204, 7860,12335,12335, 4253, 4246,
1138      4248, 4273, 4281, 4270, 4273, 4281, 7872, 4280, 4300, 4321,
1139      4310, 4294, 4313, 4331, 4326, 7875, 4284, 4287, 4306, 4353,
1140      4355, 4302, 4299, 4302, 4318, 4369, 4371, 4321, 4343, 7878,
1141      7881, 7884, 7895, 7903, 7906, 7909, 7917, 7925, 4344, 7935,
1142     12335,12335, 4345, 4342, 7943, 7946, 7955,12335,12335, 7963,
1143      7966, 4330, 4348, 4375, 4379, 4381, 4391, 4380, 7974,12335,
1144
1145     12335, 7982,12335,12335, 7990, 7993, 7996, 8004, 8011, 4422,
1146      4450, 8022, 4455, 4481, 4394, 4404, 4434, 4399, 4408, 4450,
1147      8030, 8033, 4430, 4436, 4434, 4439, 4505, 8036, 8042, 8045,
1148      8055, 8064, 8067, 8070, 4433, 4450, 4456, 4448, 4477, 4487,
1149      4492, 4481, 8076, 8079, 4502, 4503,12335, 4504, 4514, 4520,
1150     12335, 4533, 8087, 4518, 4510, 4573,12335,12335, 4543, 4543,
1151      4530, 4591,12335,12335, 4549, 8090, 8094, 8100,12335,12335,
1152      8108, 8111,12335,12335, 8120,12335,12335, 4547, 4553, 4569,
1153      8128,12335,12335, 8136,12335,12335, 8144, 4560, 4623, 4592,
1154      4623, 4595, 4585, 8147, 8150,12335,12335, 8158, 4608, 4619,
1155
1156      4614, 4626, 4621, 4638, 4633, 4645, 4639, 4651,12335, 4650,
1157      4661,12335, 8165,12335, 8168, 4662, 4667, 4681, 4670, 4709,
1158      8171, 8177, 8190, 8221, 8268, 8198, 8201, 8204, 4685, 4710,
1159      4712, 4679, 4703, 4733, 4739, 4710, 8209,12335,12335, 4745,
1160      4732, 4733, 4764, 4748, 4749, 8232, 4718, 4719,12335, 4734,
1161      4726, 4728,12335, 4738, 8241, 8244,12335, 4748, 4763, 4773,
1162      8247, 8251, 8259,12335, 4826,12335, 4824, 4778, 8279, 8288,
1163      8297, 8300, 4837, 4806, 4837, 4812, 4846, 4815, 4849, 4821,
1164      4858, 4863, 4862, 4863, 8308, 4871, 4841, 4874, 4849, 4883,
1165      8315, 4950, 4881, 8335, 8382, 4884,12335,12335, 4862, 4894,
1166
1167     12335,12335, 4886,12335, 4919, 4921,12335, 4920, 4922, 8328,
1168     12335, 4967, 4883, 4928, 4942, 4886, 4943, 4901, 4904, 4899,
1169      8355, 4961, 4964, 8347, 8365,12335,12335, 4925, 8402,12335,
1170     12335, 8410, 5001, 5022,12335, 4974,12335, 4988,12335, 4992,
1171     12335, 4993,12335,12335,12335,12335, 8373,12335,12335, 4997,
1172     12335, 5002, 5023, 5106, 5066, 5019, 5107, 5018, 8376, 5027,
1173      5038, 5056, 5087,12335,12335,12335,12335,12335, 5047, 5144,
1174     12335,12335, 5055, 5147,12335, 8418, 8421, 8428, 5180, 5122,
1175      5197, 5124, 8432,12335,12335, 8440, 5203, 5125, 5237, 5130,
1176     12335,12335,12335,12335, 5138, 5141, 8446, 5178, 5166, 5183,
1177
1178      8449, 5195, 5188, 5203, 5191, 5161,12335, 5184, 5172,12335,
1179      5187, 8452, 8458, 8470, 8473, 8481, 8484, 5202, 5223, 5244,
1180      5239, 5251, 5280, 8492, 8495, 5265, 5274, 5287, 5270, 5279,
1181      5298, 5282, 5283, 8503, 5305,12335, 5292,12335, 5297, 5270,
1182      5288, 5279, 5301, 8506,12335,12335, 8515,12335,12335, 8523,
1183      5327, 5328, 5320, 5326, 5326, 5335, 5343, 5340, 8531,12335,
1184     12335, 5348, 5366, 5363, 5365, 5374, 5371, 5404, 5403, 5411,
1185     12335, 5411, 5410, 5351, 5376, 5368, 5383, 5425, 5424, 5443,
1186      5442, 5442, 5449, 5451, 5448, 5461, 5462, 5459, 5476, 5477,
1187      5474, 5481, 5481,12335,12335, 5512,12335,12335, 5443, 5462,
1188
1189      5452, 5468, 5493, 5519, 5506, 5526, 5512, 5511, 5529, 5525,
1190      5523, 5540, 5538, 5535, 5557, 5546, 5553, 5574, 5584, 5595,
1191      5599, 5598, 5616, 5590, 5590, 5593, 5593, 5613, 5610, 5645,
1192      5627, 5619, 5648, 5633, 5623, 5662, 5643, 5640, 5670, 5731,
1193     12335,12335,12335,12335, 5651, 5656, 5654, 5659, 5686, 5680,
1194     12335, 5705, 5685,12335, 5715, 5689,12335, 5722, 5708,12335,
1195      5875, 5727, 5741, 5730, 5744,12335, 5746,12335, 5747,12335,
1196      5765,12335, 5766, 8541, 5768, 5790, 5771, 5790, 5757, 5758,
1197      5780, 5789, 8544, 5828,12335, 5846,12335, 5853, 5851, 5856,
1198      5854, 5871, 5872,12335,12335,12335,12335,12335,12335, 5882,
1199
1200      5913, 5947, 5962, 5905, 5911, 5926, 6048, 5898, 5975, 5981,
1201      5994, 6025, 6049, 5950, 6000, 5880, 5935, 5992, 6008, 6059,
1202      6071, 6028, 6077, 6046, 6057, 6016, 6095, 6122, 6144, 6142,
1203      6147, 6017, 6149, 6125, 6173, 6183, 6201, 6223, 6226, 6246,
1204      6277, 6184, 6255, 6104, 6258, 6178, 6358, 6274, 6373, 6380,
1205      6436, 6299, 6302, 6418, 6511, 6438, 6454, 6402, 6468, 6439,
1206      6458, 6499, 6525, 6234, 6487, 6559, 6572, 6467, 6481, 6538,
1207      6593, 6474, 6580, 6375, 6544, 6610, 6613, 6202, 6596, 6655,
1208      6660, 6317, 6574, 8552, 8555,12335,12335, 8575, 8584, 8593,
1209      8602, 8611, 8620, 8629, 8638, 8647, 8656, 8665, 8674, 8683,
1210
1211      8692, 8701, 8710, 8719, 8728, 8737, 8746, 8755, 8764, 8773,
1212      8782, 8791, 8800, 8809, 8818, 8827, 8836, 8845, 8854, 8863,
1213      8872, 8881, 8890, 8899, 8908, 8917, 8926, 8935, 8944, 8953,
1214      8962, 8971, 8980, 8989, 8998, 9007, 9016, 9025, 9034, 9043,
1215      9052, 9061, 9070, 9079, 9088, 9097, 9106, 9115, 9122, 9129,
1216      9136, 9143, 9150, 9157, 9164, 9171, 9178, 9185, 9192, 9199,
1217      9206, 9213, 9220, 9227, 9234, 9241, 9248, 9255, 9262, 9269,
1218      9276, 9283, 9290, 9297, 9304, 9311, 9320, 9327, 9332, 9339,
1219      9344, 9351, 9356, 9363, 9368, 9375, 9380, 9387, 9392, 9399,
1220      9404, 9411, 9416, 9423, 9428, 9435, 9440, 9447, 9452, 9459,
1221
1222      9464, 9471, 9476, 9483, 9488, 9495, 9500, 9507, 9512, 9519,
1223      9524, 9531, 9536, 9543, 9548, 9555, 9560, 9567, 9572, 9579,
1224      9584, 9591, 9596, 9603, 9608, 9615, 9620, 9627, 9632, 9639,
1225      9644, 9651, 9656, 9665, 9671, 9678, 9686, 9693, 9701, 9708,
1226      9716, 9723, 9731, 9738, 9746, 9753, 9761, 9768, 9776, 9783,
1227      9791, 9798, 9806, 9813, 9821, 9828, 9836, 9843, 9851, 9858,
1228      9866, 9873, 9881, 9889, 9897, 9904, 9912, 9919, 9927, 9934,
1229      9942, 9949, 9957, 9965, 9973, 9981, 9989, 9996,10004,10012,
1230     10020,10028,10036,10043,10051,10058,10066,10074,10081,10089,
1231     10098,10104,10111,10119,10127,10135,10143,10151,10158,10166,
1232
1233     10173,10181,10188,10196,10203,10211,10218,10226,10234,10242,
1234     10250,10258,10265,10273,10281,10289,10297,10305,10312,10320,
1235     10327,10335,10342,10350,10357,10365,10372,10380,10387,10395,
1236     10402,10410,10417,10425,10432,10440,10448,10455,10463,10470,
1237     10478,10485,10493,10501,10508,10516,10525,10534,10541,10549,
1238     10557,10564,10572,10579,10587,10594,10602,10609,10616,10624,
1239     10631,10639,10646,10654,10661,10669,10676,10684,10692,10700,
1240     10707,10715,10723,10731,10738,10746,10753,10761,10768,10776,
1241     10783,10791,10798,10806,10813,10821,10828,10836,10844,10851,
1242     10859,10866,10874,10882,10890,10898,10906,10914,10923,10932,
1243
1244     10939,10947,10955,10962,10970,10977,10985,10992,11000,11007,
1245     11014,11022,11029,11037,11044,11052,11060,11068,11075,11083,
1246     11091,11098,11106,11114,11122,11129,11137,11144,11152,11159,
1247     11167,11174,11182,11189,11197,11205,11213,11220,11228,11236,
1248     11244,11252,11259,11267,11275,11283,11291,11300,11309,11317,
1249     11325,11333,11340,11348,11355,11363,11371,11379,11387,11395,
1250     11403,11411,11419,11426,11434,11442,11449,11457,11464,11472,
1251     11480,11488,11495,11502,11510,11517,11525,11532,11539,11547,
1252     11554,11562,11569,11577,11585,11593,11600,11608,11616,11624,
1253     11633,11642,11650,11658,11665,11672,11680,11688,11695,11703,
1254
1255     11710,11718,11725,11733,11740,11748,11755,11763,11771,11778,
1256     11785,11793,11800,11808,11815,11822,11829,11837,11844,11852,
1257     11860,11868,11876,11884,11892,11900,11909,11918,11926,11934,
1258     11941,11949,11957,11964,11972,11979,11987,11995,12003,12010,
1259     12018,12025,12033,12041,12048,12055,12063,12071,12079,12086,
1260     12093,12101,12109,12117,12125,12133,12141,12149,12157,12166,
1261     12175,12183,12190,12197,12205,12212,12220,12227,12235,12242,
1262     12250,12257,12264,12271,12280,12289,12298,12307,12316,12325
1263     } ;
1264
1265 static yyconst flex_int16_t yy_def[3881] =
1266     {   0,
1267      3388, 3388, 3389, 3389, 3389, 3389, 3390, 3390, 3391, 3391,
1268      3392, 3392, 3393, 3393, 3393, 3393, 3394, 3394, 3388, 3388,
1269      3395, 3395, 3396, 3396, 3396, 3396, 3388, 3388, 3396, 3396,
1270      3396, 3396, 3388, 3388, 3396, 3396, 3388, 3388, 3396, 3396,
1271      3396, 3396, 3397, 3397, 3398, 3398, 3388, 3388, 3398, 3398,
1272      3398, 3398, 3399, 3399, 3393, 3393, 3400, 3400, 3401, 3401,
1273      3402, 3402, 3403, 3403, 3404, 3404, 3405, 3405, 3405, 3405,
1274      3388, 3388, 3405, 3405, 3405, 3405, 3388, 3388, 3405, 3405,
1275      3405, 3405, 3388, 3388, 3405, 3405, 3388, 3388, 3405, 3405,
1276      3405, 3405, 3388, 3388, 3405, 3405, 3388, 3388, 3405, 3405,
1277
1278      3405, 3405, 3406, 3406, 3407, 3407, 3388, 3388, 3407, 3407,
1279      3407, 3407, 3408, 3408, 3409, 3409, 3388, 3388, 3409, 3409,
1280      3409, 3409, 3410, 3410, 3411, 3411, 3412, 3412, 3413, 3413,
1281      3414, 3414, 3415, 3415, 3388, 3388, 3415, 3415, 3415, 3415,
1282      3416, 3416, 3417, 3417, 3418, 3418, 3419, 3419, 3387,  149,
1283      3420, 3420, 3388, 3388, 3420, 3420, 3420, 3420, 3421, 3421,
1284      3422, 3422, 3423, 3423, 3424, 3424, 3425, 3425, 3426, 3426,
1285      3427, 3427, 3428, 3428, 3429, 3429, 3430, 3430, 3388, 3388,
1286      3430, 3430, 3430, 3430, 3431, 3431, 3432, 3432, 3388, 3388,
1287      3432, 3432, 3432, 3432, 3433, 3433, 3434, 3434, 3388, 3388,
1288
1289      3434, 3434, 3434, 3434, 3435, 3435, 3436, 3436, 3437, 3437,
1290      3438, 3438, 3388, 3388, 3438, 3438, 3438, 3438, 3439, 3439,
1291      3440, 3440, 3388, 3388, 3440, 3440, 3440, 3440, 3441, 3441,
1292      3442, 3442, 3388, 3388, 3442, 3442, 3442, 3442, 3443, 3443,
1293      3444, 3444, 3445, 3445, 3446, 3446, 3388, 3388, 3446, 3446,
1294      3446, 3446, 3447, 3447, 3448, 3448, 3388, 3388, 3387, 3387,
1295      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1296      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1297      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3449,
1298      3387, 3387, 3449, 3387, 3387, 3387,  296,  296,  298,  296,
1299
1300       299,  299, 3387, 3387, 3387, 3450, 3387, 3387, 3450, 3387,
1301      3387,  300,  299, 3387, 3387, 3387, 3451, 3387, 3387, 3451,
1302      3451, 3451, 3387, 3387, 3387, 3387, 3387, 3452, 3387, 3387,
1303      3452, 3452, 3452, 3452, 3452, 3387, 3387, 3387, 3387, 3387,
1304      3387, 3453, 3387, 3387, 3453, 3453, 3453, 3387, 3387, 3387,
1305      3387, 3387, 3387, 3454, 3387, 3387, 3454, 3454, 3387, 3387,
1306      3387,  361,  299,  299,  300,  365,  364,  364,  364,  364,
1307       365,  371,  369,  369, 3387, 3387, 3387, 3455, 3387, 3387,
1308      3455, 3455, 3455, 3455, 3387, 3387,  299,  299, 3387, 3387,
1309      3387, 3456, 3387, 3387, 3456, 3456, 3456, 3387, 3387,  299,
1310
1311       299, 3387, 3387, 3387, 3457, 3387, 3387, 3457, 3457, 3387,
1312      3387, 3387, 3387, 3387, 3387, 3458, 3387, 3387, 3458, 3458,
1313      3387, 3387, 3387, 3387, 3387, 3387, 3459, 3387, 3387, 3459,
1314      3459, 3459, 3459, 3459, 3387, 3387,  299,  299,  299, 3387,
1315      3387, 3387, 3460, 3387, 3387, 3460, 3387, 3387, 3387, 3387,
1316      3387, 3387, 3461, 3387, 3387, 3461, 3461, 3461, 3387, 3387,
1317      3387, 3387, 3387, 3387, 3462, 3387, 3387, 3462, 3462, 3462,
1318      3462, 3462, 3462, 3462, 3462, 3462, 3387, 3387,  299,  299,
1319      3387, 3387, 3387, 3463, 3387, 3387, 3463, 3463, 3463, 3463,
1320      3463, 3463, 3387, 3387, 3387, 3387, 3387, 3387, 3464, 3387,
1321
1322      3387, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3387, 3387,
1323      3387, 3387, 3387, 3387, 3465, 3387, 3387, 3465, 3465, 3387,
1324      3387, 3387, 3387, 3387, 3387, 3466, 3387, 3387, 3466, 3466,
1325      3466, 3387, 3387, 3387, 3387, 3387, 3387, 3467, 3387, 3387,
1326      3467, 3467, 3467, 3467, 3387, 3387,  299,  299, 3387, 3387,
1327      3387, 3468, 3387, 3387, 3468, 3468, 3387, 3387,  299,  369,
1328       369, 3387, 3387, 3387, 3469, 3387, 3387, 3469, 3469, 3469,
1329      3387, 3387,  369,  369, 3387, 3387, 3387, 3470, 3387, 3387,
1330      3470, 3470, 3387, 3387, 3387, 3387, 3387, 3387, 3471, 3387,
1331      3387, 3471, 3471, 3387, 3387,  369,  369, 3387, 3387, 3387,
1332
1333      3472, 3387, 3387, 3472, 3472, 3472, 3387, 3387,  369,  369,
1334      3387, 3387, 3387, 3473, 3387, 3387, 3473, 3473, 3473, 3473,
1335      3473, 3387, 3387,  299,  438,  299, 3387, 3387, 3387, 3474,
1336      3387, 3387, 3474, 3387, 3387, 3387, 3387, 3387, 3387, 3475,
1337      3387, 3387, 3475, 3387, 3387,  299,  299, 3387, 3387, 3387,
1338      3476, 3387, 3387, 3476, 3476, 3387, 3387, 3387, 3387, 3477,
1339      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1340      3387, 3387, 3387, 3387, 3387, 3478, 3478, 3479, 3387, 3387,
1341      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1342      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1343
1344      3387, 3387, 3480, 3480, 3481, 3387, 3482, 3482, 3482, 3482,
1345      3387, 3483, 3387, 3387, 3484, 3484, 3484, 3484, 3484, 3484,
1346      3484, 3484, 3484, 3485, 3387, 3486, 3486, 3486, 3486, 3487,
1347      3387, 3488, 3488, 3488, 3489, 3387, 3387, 3387, 3387, 3387,
1348      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1349      3387, 3387, 3387, 3387, 3490, 3490, 3490, 3490, 3490, 3491,
1350      3387, 3492, 3492, 3492, 3492, 3493, 3387, 3494, 3494, 3494,
1351      3495, 3387, 3496, 3496, 3496, 3497, 3387, 3498, 3498, 3498,
1352      3498, 3498, 3498, 3498, 3499, 3387, 3387, 3500, 3500, 3501,
1353      3387, 3502, 3502, 3502, 3502, 3503, 3387, 3504, 3504, 3504,
1354
1355      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
1356      3504, 3504, 3504, 3504, 3505, 3387, 3506, 3506, 3506, 3506,
1357      3506, 3506, 3506, 3506, 3507, 3387, 3508, 3508, 3508, 3508,
1358      3508, 3508, 3508, 3508, 3509, 3387, 3510, 3510, 3510, 3511,
1359      3387, 3512, 3512, 3512, 3512, 3513, 3387, 3514, 3514, 3514,
1360      3514, 3514, 3514, 3515, 3387, 3516, 3516, 3516, 3516, 3517,
1361      3387, 3387, 3518, 3518, 3518, 3518, 3518, 3519, 3387, 3520,
1362      3520, 3520, 3521, 3387, 3522, 3522, 3522, 3523, 3387, 3524,
1363      3524, 3524, 3524, 3525, 3387, 3526, 3526, 3526, 3526, 3526,
1364      3526, 3527, 3387, 3387, 3528, 3528, 3529, 3387, 3530, 3530,
1365
1366      3531, 3387, 3532, 3532, 3532, 3533, 3534, 3387, 3534, 3387,
1367      3387, 3387, 3535, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1368      3536, 3537, 3537, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1369      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1370      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1371      3387, 3387, 3538, 3539, 3539, 3540, 3387, 3387, 3540, 3387,
1372      3541, 3541, 3387, 3542, 3387, 3387, 3542, 3542, 3542, 3542,
1373      3542, 3542, 3543, 3543, 3544, 3544, 3544, 3545, 3545, 3387,
1374      3387, 3546, 3547, 3547, 3387, 3387, 3387, 3387, 3387, 3387,
1375      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3548, 3387,
1376
1377      3387, 3548, 3548, 3549, 3549, 3550, 3387, 3387, 3550, 3551,
1378      3551, 3552, 3552, 3553, 3553, 3554, 3554, 3555, 3555, 3556,
1379      3556, 3556, 3387, 3387, 3556, 3556, 3556, 3557, 3557, 3387,
1380      3387, 3558, 3559, 3559, 3560, 3387, 3387, 3387, 3387, 3561,
1381      3561, 3562, 3562, 3387, 3387, 3562, 3387, 3387, 3562, 3562,
1382      3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3563,
1383      3563, 3387, 3387, 3387, 3387, 3564, 3564, 3564, 3564, 3564,
1384      3565, 3565, 3566, 3566, 3566, 3387, 3387, 3566, 3566, 3566,
1385      3567, 3567, 3568, 3387, 3387, 3569, 3569, 3570, 3387, 3387,
1386      3570, 3571, 3571, 3572, 3387, 3387, 3572, 3572, 3572, 3573,
1387
1388      3573, 3574, 3574, 3574, 3575, 3575, 3387, 3576, 3576, 3576,
1389      3576, 3577, 3577, 3578, 3387, 3387, 3579, 3579, 3580, 3580,
1390      3581, 3581, 3582, 3582, 3582, 3583, 3583, 3584, 3584, 3584,
1391      3584, 3584, 3585, 3585, 3387, 3586, 3587, 3587, 3387, 3387,
1392      3588, 3588, 3387, 3387, 3589, 3590, 3590, 3591, 3387, 3387,
1393      3591, 3387, 3387, 3592, 3387, 3387, 3387, 3387, 3387, 3387,
1394      3593, 3387, 3594, 3387, 3594, 3387, 3387, 3387, 3387, 3387,
1395      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1396      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1397      3387, 3387, 3387, 3387, 3387, 3595, 3387, 3596, 3387, 3596,
1398
1399      3597, 3387, 3387, 3387, 3597, 3387, 3387, 3598, 3387, 3598,
1400      3599, 3387, 3387, 3387, 3387, 3387, 3599, 3387, 3387, 3599,
1401      3599, 3599, 3387, 3600, 3387, 3600, 3601, 3601, 3601, 3387,
1402      3602, 3387, 3602, 3387, 3387, 3387, 3603, 3387, 3604, 3387,
1403      3604, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1404      3387, 3387, 3387, 3387, 3605, 3387, 3387, 3387, 3605, 3605,
1405      3387, 3606, 3387, 3606, 3607, 3387, 3387, 3387, 3607, 3387,
1406      3608, 3387, 3608, 3609, 3609, 3387, 3610, 3387, 3610, 3611,
1407      3611, 3387, 3612, 3387, 3612, 3613, 3613, 3613, 3387, 3387,
1408      3387, 3613, 3613, 3613, 3387, 3614, 3387, 3614, 3387, 3387,
1409
1410      3615, 3387, 3616, 3387, 3616, 3617, 3387, 3387, 3387, 3387,
1411      3387, 3387, 3387, 3618, 3387, 3618, 3619, 3619, 3619, 3619,
1412      3387, 3387, 3387, 3619, 3387, 3387, 3387, 3387, 3387, 3619,
1413      3619, 3619, 3619, 3619, 3619, 3619, 3619, 3619, 3619, 3387,
1414      3620, 3387, 3620, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1415      3387, 3621, 3621, 3621, 3621, 3387, 3622, 3387, 3622, 3623,
1416      3623, 3623, 3623, 3387, 3387, 3387, 3387, 3387, 3623, 3623,
1417      3387, 3624, 3387, 3624, 3625, 3387, 3387, 3387, 3387, 3626,
1418      3387, 3626, 3627, 3387, 3387, 3387, 3627, 3387, 3628, 3387,
1419      3628, 3629, 3387, 3387, 3387, 3629, 3629, 3629, 3387, 3630,
1420
1421      3387, 3630, 3387, 3387, 3387, 3387, 3631, 3387, 3632, 3387,
1422      3632, 3387, 3387, 3387, 3633, 3633, 3387, 3387, 3633, 3387,
1423      3634, 3387, 3634, 3635, 3387, 3387, 3387, 3387, 3636, 3387,
1424      3636, 3387, 3387, 3387, 3387, 3387, 3637, 3387, 3637, 3387,
1425      3387, 3638, 3638, 3387, 3387, 3387, 3639, 3387, 3639, 3640,
1426      3640, 3640, 3640, 3640, 3387, 3641, 3387, 3641, 3387, 3642,
1427      3387, 3643, 3387, 3643, 3387, 3387, 3387, 3387, 3644, 3387,
1428      3644, 3387, 3387, 3387, 3645, 3387, 3646, 3387, 3646, 3647,
1429      3648, 3387, 3387, 3387, 3387, 3387, 3649, 3650, 3387, 3387,
1430      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1431
1432      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1433      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3651,
1434      3387, 3387, 3652, 3387, 3653, 3654, 3387, 3387, 3387, 3387,
1435      3387, 3387, 3387, 3387, 3654, 3387, 3387, 3654, 3655, 3656,
1436      3387, 3387, 3656, 3657, 3658, 3387, 3387, 3387, 3387, 3387,
1437      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1438      3659, 3659, 3387, 3387, 3660, 3661, 3661, 3662, 3387, 3387,
1439      3663, 3664, 3387, 3387, 3665, 3666, 3667, 3667, 3387, 3387,
1440      3667, 3667, 3667, 3668, 3387, 3387, 3387, 3387, 3669, 3387,
1441      3387, 3670, 3671, 3671, 3671, 3671, 3387, 3387, 3387, 3387,
1442
1443      3387, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1444      3671, 3671, 3672, 3387, 3387, 3387, 3673, 3673, 3673, 3673,
1445      3674, 3675, 3675, 3675, 3675, 3387, 3387, 3387, 3675, 3675,
1446      3676, 3677, 3678, 3679, 3679, 3680, 3681, 3681, 3681, 3681,
1447      3682, 3387, 3387, 3387, 3387, 3387, 3387, 3683, 3684, 3387,
1448      3387, 3387, 3387, 3685, 3685, 3387, 3387, 3387, 3685, 3686,
1449      3687, 3688, 3387, 3387, 3387, 3387, 3387, 3387, 3689, 3387,
1450      3387, 3387, 3690, 3690, 3387, 3387, 3387, 3691, 3692, 3387,
1451      3387, 3692, 3692, 3692, 3693, 3387, 3694, 3695, 3696, 3697,
1452      3698, 3699, 3700, 3700, 3387, 3700, 3387, 3387, 3387, 3701,
1453
1454      3702, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1455      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1456      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1457      3387, 3387, 3387, 3387, 3703, 3387, 3387, 3387, 3704, 3387,
1458      3705, 3706, 3387, 3387, 3387, 3706, 3387, 3387, 3387, 3706,
1459      3707, 3708, 3387, 3387, 3387, 3387, 3387, 3709, 3710, 3387,
1460      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1461      3387, 3387, 3711, 3387, 3387, 3387, 3387, 3387, 3712, 3713,
1462      3713, 3714, 3387, 3387, 3387, 3715, 3716, 3387, 3387, 3387,
1463      3717, 3718, 3719, 3719, 3387, 3387, 3387, 3387, 3387, 3719,
1464
1465      3387, 3387, 3719, 3720, 3387, 3387, 3387, 3387, 3387, 3387,
1466      3387, 3387, 3387, 3387, 3721, 3722, 3387, 3387, 3722, 3722,
1467      3387, 3387, 3387, 3722, 3722, 3387, 3387, 3722, 3722, 3722,
1468      3722, 3722, 3722, 3722, 3722, 3723, 3387, 3387, 3724, 3724,
1469      3724, 3725, 3726, 3387, 3387, 3726, 3726, 3387, 3387, 3726,
1470      3727, 3728, 3729, 3730, 3730, 3731, 3732, 3732, 3732, 3387,
1471      3387, 3732, 3733, 3734, 3735, 3387, 3736, 3736, 3736, 3737,
1472      3738, 3739, 3740, 3741, 3741, 3742, 3743, 3387, 3387, 3387,
1473      3743, 3743, 3743, 3744, 3387, 3387, 3387, 3745, 3746, 3387,
1474      3387, 3747, 3748, 3749, 3749, 3387, 3387, 3750, 3751, 3387,
1475
1476      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1477      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1478      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3752, 3753, 3387,
1479      3754, 3755, 3755, 3755, 3756, 3757, 3387, 3387, 3387, 3387,
1480      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3758, 3759, 3387,
1481      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3760, 3387,
1482      3387, 3387, 3761, 3762, 3387, 3387, 3763, 3764, 3765, 3387,
1483      3387, 3766, 3767, 3767, 3387, 3387, 3387, 3387, 3387, 3387,
1484      3387, 3387, 3767, 3387, 3387, 3387, 3387, 3768, 3769, 3387,
1485      3387, 3387, 3387, 3387, 3769, 3769, 3769, 3387, 3387, 3387,
1486
1487      3387, 3387, 3769, 3769, 3769, 3769, 3387, 3387, 3769, 3769,
1488      3770, 3387, 3387, 3387, 3387, 3387, 3771, 3387, 3387, 3772,
1489      3773, 3387, 3387, 3387, 3387, 3387, 3773, 3387, 3387, 3387,
1490      3773, 3387, 3387, 3774, 3775, 3776, 3776, 3777, 3778, 3778,
1491      3778, 3387, 3387, 3387, 3778, 3387, 3387, 3779, 3780, 3387,
1492      3387, 3387, 3387, 3387, 3781, 3782, 3783, 3784, 3785, 3387,
1493      3387, 3387, 3387, 3786, 3787, 3787, 3787, 3787, 3788, 3387,
1494      3387, 3387, 3387, 3789, 3790, 3387, 3387, 3387, 3387, 3387,
1495      3791, 3792, 3792, 3387, 3387, 3387, 3793, 3387, 3387, 3387,
1496      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1497
1498      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1499      3387, 3387, 3794, 3795, 3387, 3387, 3387, 3796, 3387, 3387,
1500      3796, 3797, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1501      3387, 3387, 3387, 3387, 3798, 3387, 3387, 3387, 3387, 3387,
1502      3387, 3387, 3387, 3387, 3387, 3387, 3799, 3800, 3387, 3387,
1503      3801, 3387, 3387, 3387, 3802, 3803, 3387, 3387, 3387, 3387,
1504      3387, 3804, 3805, 3805, 3387, 3387, 3387, 3387, 3387, 3805,
1505      3387, 3806, 3807, 3387, 3387, 3387, 3807, 3807, 3807, 3387,
1506      3387, 3387, 3387, 3387, 3807, 3807, 3807, 3387, 3387, 3387,
1507      3807, 3807, 3808, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1508
1509      3387, 3809, 3810, 3387, 3387, 3387, 3810, 3810, 3811, 3812,
1510      3813, 3387, 3387, 3814, 3815, 3387, 3387, 3815, 3815, 3387,
1511      3387, 3815, 3816, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1512      3387, 3387, 3817, 3818, 3819, 3820, 3821, 3387, 3387, 3387,
1513      3387, 3387, 3387, 3822, 3823, 3823, 3823, 3823, 3824, 3387,
1514      3825, 3826, 3827, 3828, 3828, 3387, 3387, 3387, 3387, 3829,
1515      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1516      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1517      3387, 3830, 3831, 3387, 3832, 3387, 3387, 3387, 3832, 3387,
1518      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1519
1520      3387, 3387, 3387, 3387, 3833, 3387, 3387, 3387, 3387, 3387,
1521      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3834, 3835,
1522      3387, 3387, 3387, 3836, 3837, 3838, 3839, 3840, 3840, 3387,
1523      3387, 3387, 3387, 3840, 3387, 3841, 3842, 3842, 3842, 3842,
1524      3387, 3387, 3387, 3842, 3842, 3842, 3842, 3387, 3387, 3843,
1525      3387, 3387, 3387, 3844, 3845, 3845, 3845, 3846, 3387, 3387,
1526      3847, 3387, 3387, 3387, 3848, 3849, 3387, 3387, 3387, 3849,
1527      3849, 3387, 3387, 3387, 3387, 3849, 3850, 3387, 3851, 3852,
1528      3853, 3854, 3855, 3856, 3387, 3387, 3857, 3857, 3857, 3858,
1529      3387, 3859, 3387, 3387, 3860, 3861, 3861, 3387, 3862, 3387,
1530
1531      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1532      3387, 3387, 3863, 3387, 3387, 3864, 3387, 3387, 3387, 3387,
1533      3387, 3387, 3387, 3387, 3387, 3387, 3865, 3387, 3387, 3387,
1534      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1535      3387, 3387, 3866, 3867, 3868, 3387, 3387, 3387, 3387, 3869,
1536      3870, 3870, 3387, 3387, 3387, 3387, 3870, 3387, 3871, 3872,
1537      3872, 3872, 3872, 3872, 3387, 3387, 3872, 3872, 3872, 3387,
1538      3387, 3387, 3387, 3387, 3387, 3387, 3873, 3873, 3873, 3874,
1539      3387, 3387, 3848, 3387, 3387, 3849, 3849, 3849, 3387, 3387,
1540      3387, 3387, 3849, 3850, 3387, 3851, 3387, 3387, 3387, 3387,
1541
1542      3854, 3855, 3856, 3387, 3387, 3387, 3387, 3387, 3857, 3857,
1543      3387, 3387, 3387, 3859, 3860, 3861, 3861, 3387, 3387, 3387,
1544      3387, 3387, 3387, 3387, 3387, 3863, 3387, 3387, 3387, 3864,
1545      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1546      3865, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1547      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3866, 3867, 3868,
1548      3387, 3387, 3387, 3387, 3387, 3870, 3870, 3387, 3387, 3387,
1549      3387, 3871, 3872, 3872, 3872, 3872, 3872, 3387, 3387, 3387,
1550      3872, 3387, 3387, 3872, 3387, 3387, 3387, 3387, 3873, 3873,
1551      3387, 3387, 3874, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1552
1553      3387, 3849, 3849, 3849, 3387, 3387, 3387, 3387, 3850, 3851,
1554      3387, 3387, 3387, 3387, 3387, 3855, 3856, 3387, 3387, 3387,
1555      3387, 3387, 3387, 3387, 3387, 3387, 3860, 3861, 3861, 3387,
1556      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1557      3387, 3387, 3864, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1558      3387, 3387, 3387, 3865, 3387, 3387, 3387, 3387, 3387, 3387,
1559      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3866,
1560      3867, 3868, 3870, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1561      3872, 3872, 3872, 3387, 3387, 3872, 3872, 3387, 3387, 3387,
1562      3872, 3387, 3387, 3387, 3387, 3873, 3387, 3387, 3387, 3387,
1563
1564      3387, 3387, 3387, 3849, 3849, 3849, 3387, 3387, 3387, 3387,
1565      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3855,
1566      3856, 3387, 3387, 3387, 3387, 3387, 3387, 3860, 3861, 3861,
1567      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1568      3387, 3387, 3387, 3387, 3387, 3387, 3864, 3387, 3387, 3387,
1569      3387, 3387, 3387, 3387, 3387, 3865, 3387, 3387, 3387, 3387,
1570      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1571      3387, 3387, 3387, 3867, 3387, 3387, 3387, 3387, 3870, 3387,
1572      3387, 3387, 3872, 3872, 3387, 3387, 3387, 3387, 3387, 3387,
1573      3387, 3872, 3872, 3387, 3387, 3387, 3387, 3873, 3387, 3387,
1574
1575      3387, 3387, 3387, 3387, 3849, 3387, 3387, 3849, 3387, 3387,
1576      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1577      3855, 3856, 3387, 3387, 3387, 3387, 3860, 3861, 3861, 3861,
1578      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1579      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1580      3387, 3387, 3865, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1581      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1582      3867, 3387, 3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872,
1583      3387, 3387, 3387, 3387, 3387, 3387, 3872, 3872, 3387, 3387,
1584      3387, 3387, 3873, 3849, 3387, 3387, 3387, 3849, 3387, 3387,
1585
1586      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1587      3387, 3387, 3387, 3387, 3856, 3387, 3387, 3387, 3387, 3860,
1588      3861, 3861, 3861, 3875, 3876, 3387, 3387, 3387, 3387, 3387,
1589      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1590      3387, 3387, 3387, 3387, 3387, 3865, 3387, 3387, 3387, 3387,
1591      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872,
1592      3387, 3387, 3872, 3387, 3387, 3387, 3387, 3873, 3387, 3387,
1593      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1594      3387, 3387, 3387, 3387, 3856, 3387, 3387, 3387, 3387, 3860,
1595      3861, 3877, 3878, 3875, 3876, 3387, 3387, 3387, 3387, 3387,
1596
1597      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1598      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872,
1599      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3873, 3387, 3387,
1600      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1601      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1602      3387, 3387, 3860, 3877, 3861, 3879, 3878, 3880, 3861, 3387,
1603      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1604      3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872, 3387, 3387,
1605      3387, 3387, 3387, 3387, 3387, 3873, 3387, 3387, 3387, 3387,
1606      3387, 3387, 3387, 3387, 3387, 3387, 3860, 3879, 3387, 3880,
1607
1608      3861, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1609      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1610      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1611      3387, 3387, 3387, 3860, 3387, 3387, 3387, 3387, 3387, 3387,
1612      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1613      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1614      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3860,
1615      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1616      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1617      3387, 3387, 3387, 3387, 3387, 3860, 3387, 3387, 3387, 3387,
1618
1619      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1620      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3860, 3387,
1621      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1622      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3860,
1623      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1624      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1625      3860, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1626      3387, 3387, 3387, 3860, 3387, 3387, 3387, 3387, 3387, 3387,
1627      3387, 3387, 3860, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1628      3387, 3860, 3860, 3387, 3387, 3387, 3387, 3387, 3387, 3860,
1629
1630      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1631      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1632      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1633      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1634      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1635      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1636      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1637      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1638      3860, 3860, 3860, 3860, 3860, 3387,    0, 3387, 3387, 3387,
1639      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1640
1641      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1642      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1643      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1644      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1645      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1646      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1647      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1648      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1649      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1650      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1651
1652      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1653      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1654      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1655      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1656      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1657      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1658      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1659      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1660      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1661      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1662
1663      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1664      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1665      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1666      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1667      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1668      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1669      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1670      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1671      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1672      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1673
1674      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1675      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1676      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1677      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1678      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1679      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1680      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1681      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1682      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1683      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1684
1685      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1686      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1687      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1688      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1689      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1690      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1691      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1692      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387
1693     } ;
1694
1695 static yyconst flex_int16_t yy_nxt[12410] =
1696     {   0,
1697      3387,  262,  263,  262,  262,  263,  262,  262,  263,  262,
1698       262,  263,  262,  267,  263,  267,  273,  264,  270,  273,
1699       264,  270, 3387,  265, 3387,  271,  265, 3387,  271,  268,
1700       267,  263,  267,  660,  274,  276,  277,  274,  276,  277,
1701       278,  279,  705,  278,  279,  660,  268,  283,  284,  661,
1702       280,  276,  277,  280,  281,  663,  278,  276,  277,  694,
1703       281,  662,  278,  283,  284, 3387,  280,  263,  263,  263,
1704       852,  662,  280,  263,  263,  263,  295,  263,  295,  295,
1705       263,  295,  853,  286,  295,  263,  295,  681, 1727,  286,
1706       735,  285,  296, 1361,  697,  296,  659,  659,  659, 1362,
1707
1708       297,  659,  659,  659,  659,  659,  659,  285,  287,  288,
1709       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1710       287,  287,  287,  692,  287,  291,  287,  292,  287,  295,
1711       263,  295,  263,  263,  263,  263,  263,  263,  693,  295,
1712       263,  295,  295,  263,  295,  297,  698,  807,  298,  663,
1713       808,  298,  926,  287,  287,  296,  663,  663,  296,  295,
1714       263,  295,  659,  659,  659,  662,  659,  659,  659,  659,
1715       659,  659,  662,  662, 3387,  299,  927,  293,  287,  288,
1716       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1717       287,  287,  287, 1728,  287,  291,  287,  292,  287,  295,
1718
1719       263,  295,  263,  263,  263,  263,  263,  263,  668,  295,
1720       263,  295,  295,  263,  295,  299,  674,  735,  300,  821,
1721       986,  300,  822,  287,  287,  297,  744,  736,  297,  263,
1722       263,  263,  263,  263,  263,  295,  263,  295,  295,  263,
1723       295,  295,  263,  295,  987,  301,  858,  293,  301,  663,
1724       669,  299,  800,  859,  299,  748,  670,  302,  295,  263,
1725       295,  671,  659,  659,  659,  662,  672,  659,  659,  659,
1726       659,  659,  659,  801,  302,  303,  304,  263,  304,  303,
1727       303,  303,  303,  303,  303,  303,  305,  303,  303,  303,
1728       722,  303,  307,  303,  308,  303,  311,  263,  311,  311,
1729
1730       263,  311,  263,  263,  263,  723,  263,  263,  263,  311,
1731       263,  311,  312,  782,  860,  312, 1730,  783,  300,  718,
1732       303,  303,  300,  719,  760,  312,  678,  720,  309,  303,
1733       304,  263,  304,  303,  303,  303,  303,  303,  303,  303,
1734       305,  303,  303,  303,  663,  303,  307,  303,  308,  303,
1735       311,  263,  311,  311,  263,  311,  311,  263,  311,  809,
1736       662,  868,  276,  277,  866,  699,  312,  278, 3387,  313,
1737       698,  867,  313,  810,  303,  303,  744,  323,  700,  760,
1738       693, 1731,  309,  314,  315,  263,  315,  314,  314,  314,
1739       314,  314,  314,  314,  316,  314,  314,  314, 1739,  314,
1740
1741       318,  314,  319,  314, 1740,  663,  324,  692,  337,  263,
1742       337,  337,  263,  337,  349,  263,  349,  698,  276,  277,
1743       701,  662,  693,  278,  338,  711,  804,  338,  314,  314,
1744       350,  697,  712,  323,  805,  914,  320,  766,  915,  321,
1745       806,  662,  659,  659,  659, 1742,  322,  314,  315,  263,
1746       315,  314,  314,  314,  314,  314,  314,  314,  316,  314,
1747       314,  314,  324,  314,  318,  314,  319,  314,  349,  263,
1748       349,  360,  263,  360,  360,  263,  360, 1746,  360,  263,
1749       360,  360,  263,  360,  350,  663,  749,  361,  663,  744,
1750       361,  861,  314,  314,  362,  724, 1504,  362, 1750,  698,
1751
1752       320,  662,  750,  321,  662,  659,  659,  659,  766, 1505,
1753       322,  325,  326,  263,  326,  325,  325,  325,  325,  325,
1754       325,  325,  327,  325,  325,  325, 1752,  325,  329,  325,
1755       330,  325,  263,  263,  263,  263,  263,  263,  360,  263,
1756       360,  785,  360,  263,  360,  360,  263,  360,  363, 1759,
1757       663,  363,  663,  663,  361, 1760,  325,  325,  361,  730,
1758       697,  364,  659,  659,  659,  331,  662,  332,  662,  662,
1759       785,  333,  659,  659,  659,  815,  334,  335,  325,  326,
1760       263,  326,  325,  325,  325,  325,  325,  325,  325,  327,
1761       325,  325,  325,  697,  325,  329,  325,  330,  325,  360,
1762
1763       263,  360,  263,  263,  263,  263,  263,  263,  893,  360,
1764       263,  360,  360,  263,  360,  364,  747, 1761,  365,  786,
1765       687,  365,  744,  325,  325,  366,  740,  744,  366,  659,
1766       659,  659,  331,  743,  332,  659,  659,  659,  333,  659,
1767       659,  659, 1762,  334,  335,  339,  340,  263,  340,  339,
1768       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1769       694,  339,  343,  339,  344,  339,  360,  263,  360,  360,
1770       263,  360,  263,  263,  263,  908,  263,  263,  263,  360,
1771       263,  360,  367, 1767, 1768,  367,  908,  878,  368,  751,
1772       339,  339,  368,  738,  739,  364,  884,  345,  659,  659,
1773
1774       659,  909,  697,  346,  752,  659,  659,  659,  659,  659,
1775       659,  960,  347,  339,  340,  263,  340,  339,  339,  339,
1776       339,  339,  339,  339,  341,  339,  339,  339, 1769,  339,
1777       343,  339,  344,  339,  360,  263,  360,  263,  263,  263,
1778       263,  263,  263,  698,  360,  263,  360,  360,  263,  360,
1779       364,  663,  698,  369, 1611,  926,  369,  663,  339,  339,
1780       367,  663,  663,  367,  771,  345, 1612,  662,  659,  659,
1781       659,  346,  986,  662,  659,  659,  659,  662,  662,  995,
1782       347,  351,  352,  263,  352,  351,  351,  351,  351,  351,
1783       351,  351,  353,  351,  351,  351,  927,  351,  355,  351,
1784
1785       356,  351,  360,  263,  360,  360,  263,  360,  263,  263,
1786       263, 1770,  263,  263,  263,  360,  263,  360,  370,  663,
1787      1021,  370,  663, 1022,  371,  815,  351,  351,  371,  776,
1788      1771,  372,  659,  659,  659,  662, 3387,  357,  662,  659,
1789       659,  659,  659,  659,  659, 1772,  358,  351,  352,  263,
1790       352,  351,  351,  351,  351,  351,  351,  351,  353,  351,
1791       351,  351,  986,  351,  355,  351,  356,  351,  360,  263,
1792       360,  263,  263,  263,  263,  263,  263,  697,  360,  263,
1793       360,  360,  263,  360,  372,  786,  995,  373,  744,  926,
1794       373, 1773,  351,  351,  370,  663, 1780,  370,  360,  263,
1795
1796       360, 1781,  790,  357,  360,  263,  360,  659,  659,  659,
1797       854,  662,  358,  996,  374,  659,  659,  659,  735, 1786,
1798       374,  375,  376,  263,  376,  375,  375,  375,  375,  375,
1799       375,  375,  377,  375,  375,  375,  986,  375,  379,  375,
1800       380,  375,  386,  263,  386,  386,  263,  386,  263,  263,
1801       263,  935,  263,  263,  263,  936,  753,  663,  387, 1030,
1802       996,  387,  744, 1031,  363, 3387,  375,  375,  363,  663,
1803       663,  381,  742,  662,  854,  694,  796,  382,  659,  659,
1804       659,  383,  659,  659,  659,  662,  662,  384,  375,  376,
1805       263,  376,  375,  375,  375,  375,  375,  375,  375,  377,
1806
1807       375,  375,  375,  681,  375,  379,  375,  380,  375,  386,
1808       263,  386,  386,  263,  386,  386,  263,  386,  892,  386,
1809       263,  386,  659,  659,  659,  387,  697,  811,  387, 1791,
1810      1793,  388, 1794,  375,  375,  388,  663,  663,  381,  812,
1811       813,  659,  659,  659,  382,  659,  659,  659,  383,  659,
1812       659,  659,  662,  662,  384,  389,  390,  263,  390,  389,
1813       389,  389,  389,  389,  389,  389,  391,  389,  389,  389,
1814       697,  389,  393,  389,  394,  389,  399,  263,  399,  399,
1815       263,  399,  263,  263,  263,  928,  263,  263,  263, 1149,
1816       663, 1800,  400, 1480, 1805,  400,  929,  825,  363,  930,
1817
1818       389,  389,  363,  663,  663,  395,  662,  659,  659,  659,
1819       835,  396,  659,  659,  659,  659,  659,  659, 1149,  662,
1820       662, 1806,  397,  389,  390,  263,  390,  389,  389,  389,
1821       389,  389,  389,  389,  391,  389,  389,  389, 1692,  389,
1822       393,  389,  394,  389,  399,  263,  399,  399,  263,  399,
1823       399,  263,  399,  940,  399,  263,  399,  659,  659,  659,
1824       400,  663,  663,  400,  663, 1816,  401,  941,  389,  389,
1825       401,  840, 1819,  395,  659,  659,  659,  662,  662,  396,
1826       662,  659,  659,  659,  659,  659,  659,  659,  659,  659,
1827       397,  402,  403,  263,  403,  402,  402,  402,  402,  402,
1828
1829       402,  402,  404,  402,  402,  402, 1820,  402,  406,  402,
1830       407,  402,  411,  263,  411,  411,  263,  411,  422,  263,
1831       422,  901,  422,  263,  422,  436,  263,  436,  412,  663,
1832       663,  412,  663, 1824,  423, 1825,  402,  402,  423,  846,
1833       868,  437,  659,  659,  659,  662,  662,  901,  662,  659,
1834       659,  659,  408, 1828,  860, 1829, 1830,  409,  402,  403,
1835       263,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1836       402,  402,  402,  744,  402,  406,  402,  407,  402,  436,
1837       263,  436,  263,  263,  263,  263,  263,  263,  861,  436,
1838       263,  436,  436,  263,  436,  437,  698, 1831,  438,  697,
1839
1840      1832,  438,  861,  402,  402,  437,  697,  663,  437,  659,
1841       659,  659,  659,  659,  659,  659,  659,  659, 1833,  408,
1842       659,  659,  659,  662,  409,  413,  414,  263,  414,  413,
1843       413,  413,  413,  413,  413,  413,  415,  413,  413,  413,
1844      1834,  413,  417,  413,  418,  413,  436,  263,  436,  436,
1845       263,  436,  448,  263,  448,  945,  448,  263,  448,  460,
1846       263,  460,  439,  663,  663,  439,  663,  945,  449,  941,
1847       413,  413,  449,  873,  663,  461,  659,  659,  659,  662,
1848       662,  992,  662,  659,  659,  659,  419, 1835, 1843,  878,
1849       662, 1846,  420,  413,  414,  263,  414,  413,  413,  413,
1850
1851       413,  413,  413,  413,  415,  413,  413,  413, 1847,  413,
1852       417,  413,  418,  413,  460,  263,  460,  478,  263,  478,
1853       478,  263,  478, 1850,  263,  263,  263,  263,  263,  263,
1854       461, 1516, 1852,  479, 1854, 1855,  479,  861,  413,  413,
1855       363,  928,  663,  363, 1505,  698,  659,  659,  659,  659,
1856       659,  659,  929, 1857,  419,  944, 1858,  884,  662, 1859,
1857       420,  424,  425,  263,  425,  424,  424,  424,  424,  424,
1858       424,  424,  426,  424,  424,  424, 1864,  424,  428,  424,
1859       429,  424,  478,  263,  478,  478,  263,  478,  478,  263,
1860       478, 1867,  478,  263,  478,  659,  659,  659,  479, 1516,
1861
1862      1868,  479, 1869, 1871,  480,  861,  424,  424,  480,  430,
1863       663,  431, 1554,  698,  659,  659,  659,  432,  659,  659,
1864       659,  659,  659,  659,  433,  892,  662,  434,  424,  425,
1865       263,  425,  424,  424,  424,  424,  424,  424,  424,  426,
1866       424,  424,  424, 1874,  424,  428,  424,  429,  424,  494,
1867       263,  494,  494,  263,  494,  510,  263,  510,  947,  510,
1868       263,  510,  893,  663, 1875,  495, 1877,  663,  495,  948,
1869       897,  511,  930,  424,  424,  511,  430,  744,  431,  662,
1870       659,  659,  659,  662,  432,  659,  659,  659,  659,  659,
1871       659,  433, 1881, 1882,  434,  440,  441,  263,  441,  440,
1872
1873       440,  440,  440,  440,  440,  440,  442,  440,  440,  440,
1874      1883,  440,  444,  440,  445,  440,  521,  263,  521,  521,
1875       263,  521,  533,  263,  533,  945,  533,  263,  533,  546,
1876       263,  546,  522, 1885, 1695,  522,  663, 1896,  534,  997,
1877       440,  440,  534,  906, 1897,  547,  659,  659,  659,  659,
1878       659,  659,  662,  912,  912,  912,  446,  440,  441,  263,
1879       441,  440,  440,  440,  440,  440,  440,  440,  442,  440,
1880       440,  440, 1898,  440,  444,  440,  445,  440,  546,  263,
1881       546,  263,  263,  263,  263,  263,  263, 1900,  546,  263,
1882       546,  546,  263,  546,  547,  947, 1901,  363,  937,  928,
1883
1884       363,  950,  440,  440,  547,  938,  948,  547,  938,  944,
1885       948,  939,  913,  944,  951, 1166, 1166, 1166,  446,  450,
1886       451,  263,  451,  450,  450,  450,  450,  450,  450,  450,
1887       452,  450,  450,  450, 1902,  450,  454,  450,  455,  450,
1888       546,  263,  546,  546,  263,  546,  558,  263,  558,  945,
1889       558,  263,  558,  263,  263,  263,  548, 1903, 1149,  548,
1890       950,  937,  559,  998,  450,  450,  559,  938,  938,  560,
1891       456,  937,  950,  939,  951,  457, 1904, 1905,  938,  938,
1892      1496, 1496, 1496, 1893,  991,  991, 1906,  458,  450,  451,
1893       263,  451,  450,  450,  450,  450,  450,  450,  450,  452,
1894
1895       450,  450,  450, 1907,  450,  454,  450,  455,  450,  263,
1896       263,  263,  558,  263,  558,  558,  263,  558, 1908,  558,
1897       263,  558,  558,  263,  558,  560, 1149, 1909,  559, 1911,
1898      1912,  559, 1913,  450,  450,  561, 1914, 1917,  561,  456,
1899      1920, 1921, 1151, 1922,  457,  912,  912,  912, 1923, 1153,
1900      1189, 1189, 1189, 1551, 1551, 1551,  458,  462,  463,  263,
1901       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1902       462,  462,  465,  462,  466,  462,  467,  462,  465,  465,
1903       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1904       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1905
1906       465,  465,  462,  462,  465,  468,  469,  470,  465,  465,
1907       465,  465,  465,  471,  465,  465,  472,  465,  465,  465,
1908       473,  465,  474,  475,  476,  465,  465,  465,  465,  465,
1909       465,  481,  482,  263,  482,  481,  481,  481,  481,  481,
1910       481,  481,  483,  481,  481,  481, 1924,  481,  485,  481,
1911       486,  481,  572,  263,  572,  572,  263,  572,  263,  263,
1912       263, 1925,  263,  263,  263,  572,  263,  572,  573, 1318,
1913      1929,  573, 1930, 1932,  560, 1933,  481,  481,  560, 1319,
1914       487,  573, 1166, 1166, 1166, 1934, 1320,  488, 1936, 1949,
1915       489, 1189, 1189, 1189,  490, 1950,  491,  492,  481,  482,
1916
1917       263,  482,  481,  481,  481,  481,  481,  481,  481,  483,
1918       481,  481,  481, 1951,  481,  485,  481,  486,  481,  572,
1919       263,  572,  572,  263,  572,  572,  263,  572, 1952,  584,
1920       263,  584,  584,  263,  584,  573, 1953, 1956,  574, 1957,
1921      1958,  574, 1959,  481,  481,  585, 1167,  487,  585, 1202,
1922      1202, 1202, 1964, 1203,  488, 1167, 1204,  489, 1496, 1496,
1923      1496,  490, 1968,  491,  492,  496,  497,  263,  497,  496,
1924       496,  496,  496,  496,  496,  496,  498,  496,  496,  496,
1925      1973,  496,  500,  496,  501,  496,  595,  263,  595,  595,
1926       263,  595,  263,  263,  263, 1974,  263,  263,  263,  957,
1927
1928       957,  957,  596, 1983, 1987,  596, 1989, 1995,  560, 1996,
1929       496,  496,  560,  502,  503,  504,  958, 1997, 1212, 1212,
1930      1212,  505, 1213, 2003,  506, 1214, 2004, 2005,  507, 2006,
1931      2009,  508,  496,  497,  263,  497,  496,  496,  496,  496,
1932       496,  496,  496,  498,  496,  496,  496, 2010,  496,  500,
1933       496,  501,  496,  595,  263,  595,  595,  263,  595,  595,
1934       263,  595, 2021,  595,  263,  595,  965,  965,  965,  596,
1935      2027, 2031,  596, 2034, 2036,  597, 2037,  496,  496,  597,
1936       502,  503,  504,  966, 2039, 1234, 1234, 1234,  505, 1235,
1937      2040,  506, 1236, 2041, 2045,  507, 2048, 2050,  508,  512,
1938
1939       513,  263,  513,  512,  512,  512,  512,  512,  512,  512,
1940       514,  512,  512,  512, 2057,  512,  516,  512,  517,  512,
1941       608,  263,  608,  608,  263,  608,  263,  263,  263, 2065,
1942       263,  263,  263,  980,  980,  980,  609, 2066, 2067,  609,
1943      2068, 2070,  560, 2084,  512,  512,  560, 2088, 2089,  518,
1944       981, 1709, 1709, 1709, 1149,  519,  512,  513,  263,  513,
1945       512,  512,  512,  512,  512,  512,  512,  514,  512,  512,
1946       512, 2081,  512,  516,  512,  517,  512,  608,  263,  608,
1947       608,  263,  608,  608,  263,  608, 1695,  608,  263,  608,
1948      1000, 1000, 1000,  609, 2090, 2091,  609, 1710, 2093,  610,
1949
1950      2094,  512,  512,  610, 2096, 2097,  518, 1001, 1712, 1712,
1951      1712, 2092,  519,  523,  524,  263,  524,  523,  523,  523,
1952       523,  523,  523,  523,  525,  523,  523,  523, 2082,  523,
1953       527,  523,  528,  523,  623,  263,  623,  623,  263,  623,
1954       263,  263,  263, 2098,  263,  263,  263,  623,  263,  623,
1955       624, 2099, 2100,  624, 1713, 1695,  625, 2101,  523,  523,
1956       625, 2104,  529,  624, 1166, 1166, 1166, 2105, 2108,  530,
1957      2109, 2110,  531,  523,  524,  263,  524,  523,  523,  523,
1958       523,  523,  523,  523,  525,  523,  523,  523, 2083,  523,
1959       527,  523,  528,  523,  623,  263,  623,  623,  263,  623,
1960
1961       623,  263,  623, 2111,  635,  263,  635,  635,  263,  635,
1962       624, 2112, 2114,  626, 2115, 2118,  626, 2121,  523,  523,
1963       636, 2125,  529,  636, 1189, 1189, 1189, 2126, 1242,  530,
1964      2129, 2130,  531,  535,  536,  263,  536,  535,  535,  535,
1965       535,  535,  535,  535,  537,  535,  535,  535, 2131,  535,
1966       539,  535,  540,  535,  645,  263,  645,  645,  263,  645,
1967       263,  263,  263, 2127,  263,  263,  263,  645,  263,  645,
1968       646, 2128, 2134,  646, 2138, 2139,  363, 2142,  535,  535,
1969       363, 2144,  541,  646, 1716, 1716, 1716, 2156, 1242,  542,
1970      2163, 2164,  543, 1719, 1719, 1719, 1729, 1729, 1729,  544,
1971
1972       535,  536,  263,  536,  535,  535,  535,  535,  535,  535,
1973       535,  537,  535,  535,  535, 2168,  535,  539,  535,  540,
1974       535,  645,  263,  645,  645,  263,  645,  645,  263,  645,
1975      2169,  657,  263,  657,  657,  263,  657,  646, 1937, 2140,
1976       647, 2170, 2140,  647, 1938,  535,  535,  658, 1939,  541,
1977       658, 3387, 1940,  735,  694, 2141,  542, 2132, 2092,  543,
1978      2171,  694, 2173,  745, 2177, 2133,  544,  549,  550,  263,
1979       550,  549,  549,  549,  549,  549,  549,  549,  551,  549,
1980       549,  549,  749,  549,  553,  549,  554,  549, 2091, 2178,
1981       695,  746, 2179, 1007, 1007, 1007,  696, 2185,  750, 1023,
1982
1983      1023, 1023, 2186,  697, 2141,  697, 2187,  698, 2191,  691,
1984      1008, 2192,  549,  549, 2203, 2207, 1024, 2208,  555, 1256,
1985      1256, 1256, 2209, 1257, 2211, 2215, 1258, 1551, 1551, 1551,
1986      1763, 1763, 1763,  556,  549,  550,  263,  550,  549,  549,
1987       549,  549,  549,  549,  549,  551,  549,  549,  549, 2219,
1988       549,  553,  549,  554,  549, 1036, 1036, 1036, 1038, 1038,
1989      1038, 1044, 1044, 1044, 1047, 1047, 1047, 1062, 1062, 1062,
1990      2220, 2221, 1037, 2222, 2223, 1039, 1764, 2226, 1045,  549,
1991       549, 1048, 2233, 2235, 1063,  555, 1266, 1266, 1266, 2245,
1992      1267, 2246, 2247, 1268, 1765, 1765, 1765, 1766, 1766, 1766,
1993
1994       556,  562,  563,  263,  563,  562,  562,  562,  562,  562,
1995       562,  562,  564,  562,  562,  562, 2248,  562,  566,  562,
1996       567,  562, 1064, 1064, 1064, 1076, 1076, 1076, 1084, 1084,
1997      1084, 1089, 1089, 1089, 1095, 1095, 1095, 2250, 1149, 1065,
1998      1713, 2256, 1077, 2262, 2253, 1085,  562,  562, 1090, 2263,
1999      2264, 1096,  568, 2265, 2268,  569, 1289, 1289, 1289, 1695,
2000      1290, 2270, 2271, 1291, 1712, 1712, 1712,  570,  562,  563,
2001       263,  563,  562,  562,  562,  562,  562,  562,  562,  564,
2002       562,  562,  562, 2272,  562,  566,  562,  567,  562, 1115,
2003      1115, 1115, 1139, 1139, 1139, 1143, 1143, 1143, 1162, 1162,
2004
2005      1162, 1941, 1162, 1162, 1162, 2255, 1116, 1942, 2276, 1140,
2006      1866, 1943, 1144,  562,  562, 1944, 1164, 2281, 2283,  568,
2007      1164, 2284,  569, 1307, 1307, 1307, 2285, 1308, 1695, 2289,
2008      1309, 1709, 1709, 1709,  570,  575,  576,  263,  576,  575,
2009       575,  575,  575,  575,  575,  575,  577,  575,  575,  575,
2010      2295,  575,  579,  575,  580,  575, 1197, 1197, 1197, 2254,
2011      1165, 1197, 1197, 1197, 2296,  957,  957,  957, 2297, 1207,
2012      1207, 1207, 2298, 2299, 1199, 1712, 1712, 1712, 2300, 1199,
2013       575,  575,  958, 1910, 1910, 1910,  581, 1209, 1716, 1716,
2014      1716,  582,  575,  576,  263,  576,  575,  575,  575,  575,
2015
2016       575,  575,  575,  577,  575,  575,  575, 2301,  575,  579,
2017       575,  580,  575, 1207, 1207, 1207,  965,  965,  965, 2302,
2018      2303, 1200, 1215, 1215, 1215, 1218, 1218, 1218, 1223, 1223,
2019      1223, 1209, 2304,  966, 1719, 1719, 1719,  575,  575, 1216,
2020      2310, 2311, 1219,  581, 2312, 2313, 1225, 2319,  582,  586,
2021       587,  263,  587,  586,  586,  586,  586,  586,  586,  586,
2022       588,  586,  586,  586, 2324,  586,  590,  586,  591,  586,
2023      1230, 1230, 1230, 1230, 1230, 1230, 2326, 1210, 2328,  980,
2024       980,  980, 2329, 2334, 1223, 1223, 1223, 2335, 1232, 2337,
2025      2338, 1232, 2339, 2330,  586,  586,  981, 1000, 1000, 1000,
2026
2027       592, 2331, 1225, 1310, 1310, 1310, 2340, 1311, 2344, 2345,
2028      1312, 1915, 1915, 1915, 1001,  593,  586,  587,  263,  587,
2029       586,  586,  586,  586,  586,  586,  586,  588,  586,  586,
2030       586, 1226,  586,  590,  586,  591,  586, 1233, 1238, 1238,
2031      1238, 1238, 1238, 1238, 2346, 1261, 1261, 1261, 1261, 1261,
2032      1261, 1007, 1007, 1007, 2347, 2355, 1240, 2332, 2356, 1240,
2033      2357,  586,  586, 1263, 2358, 2333, 1263,  592, 1008, 1321,
2034      1321, 1321, 2361, 1322, 2366, 1916, 1323, 2370, 1241, 1729,
2035      1729, 1729,  593,  598,  599,  263,  599,  598,  598,  598,
2036       598,  598,  598,  598,  600,  598,  598,  598, 2371,  598,
2037
2038       602,  598,  603,  598, 1270, 1270, 1270, 1270, 1270, 1270,
2039      1023, 1023, 1023, 2372, 1264, 1276, 1276, 1276, 1276, 1276,
2040      1276, 2373, 1272, 2376, 2377, 1272, 2378, 1024,  598,  598,
2041      1282, 1282, 1282, 1278,  604, 2374, 1278,  605, 1325, 1325,
2042      1325, 2379, 1326, 2375, 2381, 1327, 2391, 1695, 1284,  606,
2043       598,  599,  263,  599,  598,  598,  598,  598,  598,  598,
2044       598,  600,  598,  598,  598, 1695,  598,  602,  598,  603,
2045       598, 2402, 2403, 1273, 1282, 1282, 1282, 2404, 2408, 1279,
2046      1295, 1295, 1295, 2409, 1295, 1295, 1295, 1302, 1302, 1302,
2047      2396, 2410, 1284, 2413, 2417,  598,  598, 2418, 1297, 2419,
2048
2049      2420,  604, 1297, 2421,  605, 1304, 1344, 1344, 1344, 2422,
2050      1345, 2423, 2397, 1346, 2424, 2425,  606,  611,  612,  263,
2051       612,  611,  611,  611,  611,  611,  611,  611,  613,  611,
2052       611,  611, 2426,  611,  615,  611,  616,  611, 2439, 1285,
2053      1036, 1036, 1036, 2440, 2441, 1298, 1302, 1302, 1302, 1038,
2054      1038, 1038, 2442, 1313, 1313, 1313, 2443, 1037, 1313, 1313,
2055      1313, 2445,  611,  611, 1304, 2451, 1039, 1918, 1918, 1918,
2056       617, 1315,  618, 2452, 2453,  619, 1315, 2454, 2455,  620,
2057      1763, 1763, 1763,  621,  611,  612,  263,  612,  611,  611,
2058       611,  611,  611,  611,  611,  613,  611,  611,  611, 2456,
2059
2060       611,  615,  611,  616,  611, 1044, 1044, 1044, 1305, 1047,
2061      1047, 1047, 2457, 1919, 1328, 1328, 1328, 2428, 2429, 1316,
2062      2430, 2460, 1045, 1340, 1340, 1340, 1048, 2461, 2431,  611,
2063       611, 1329, 1062, 1062, 1062, 2432, 2462,  617, 2463,  618,
2064      2467, 1342,  619, 1765, 1765, 1765,  620, 2468, 2464, 1063,
2065       621,  627,  628,  263,  628,  627,  627,  627,  627,  627,
2066       627,  627,  629,  627,  627,  627, 2469,  627,  631,  627,
2067       632,  627, 1064, 1064, 1064, 1347, 1347, 1347, 2477, 1348,
2068      2478, 2479, 1349, 2480, 1340, 1340, 1340, 2489, 2490, 1065,
2069      1350, 1350, 1350, 3387, 3387, 3387,  627,  627, 3387, 3387,
2070
2071      3387, 2491, 1342, 2492, 1364, 1364, 1364, 1351, 1365, 2494,
2072      3387, 1366, 1376, 1376, 1376, 3387, 1377, 2496, 2520, 1378,
2073       633,  627,  628,  263,  628,  627,  627,  627,  627,  627,
2074       627,  627,  629,  627,  627,  627, 1695,  627,  631,  627,
2075       632,  627, 1343, 2521, 1352, 1356, 1356, 1356, 1695, 2523,
2076      1353, 3387, 3387, 3387, 2524, 1076, 1076, 1076, 2525, 2526,
2077      3387, 3387, 3387, 1358, 2530, 2531,  627,  627, 3387, 1356,
2078      1356, 1356, 1077, 2517, 1384, 1384, 1384, 3387, 1385, 2532,
2079      2516, 1386, 1393, 1393, 1393, 2533, 1394, 1358, 2534, 1395,
2080       633,  637,  638,  263,  638,  637,  637,  637,  637,  637,
2081
2082       637,  637,  639,  637,  637,  637, 1354,  637,  641,  637,
2083       642,  637, 1355, 1367, 1367, 1367, 1359, 1371, 1371, 1371,
2084      1371, 1371, 1371, 1084, 1084, 1084, 1379, 1379, 1379, 2535,
2085      1368, 1766, 1766, 1766, 2536, 1373,  637,  637, 1373, 2537,
2086      1085, 1926, 1926, 1926, 1381, 2538, 2539,  643,  637,  638,
2087       263,  638,  637,  637,  637,  637,  637,  637,  637,  639,
2088       637,  637,  637, 2540,  637,  641,  637,  642,  637, 2542,
2089      2543, 1374, 1379, 1379, 1379, 1089, 1089, 1089, 1388, 1388,
2090      1388, 1388, 1388, 1388, 1095, 1095, 1095, 1927, 2544, 2546,
2091      1381, 2547, 1090,  637,  637, 2548, 1390, 2545, 2549, 1390,
2092
2093      2552, 1096, 2553, 2554,  643,  648,  649,  263,  649,  648,
2094       648,  648,  648,  648,  648,  648,  650,  648,  648,  648,
2095      2555,  648,  652,  648,  653,  648, 2557, 2558, 1391, 1399,
2096      1399, 1399, 2560, 1382, 2566, 1399, 1399, 1399, 1403, 1403,
2097      1403, 1405, 1405, 1405, 1408, 1408, 1408, 1401, 2550, 2567,
2098       648,  648, 2568, 1401, 2569, 1404, 2573, 2551, 1406, 2574,
2099      2575,  654, 1410, 1425, 1425, 1425, 2576, 1426, 2577, 2581,
2100      1427, 1986, 1986, 1986,  655,  648,  649,  263,  649,  648,
2101       648,  648,  648,  648,  648,  648,  650,  648,  648,  648,
2102      1402,  648,  652,  648,  653,  648, 3387, 3387, 3387, 1408,
2103
2104      1408, 1408, 1413, 1413, 1413, 2584, 3387, 3387, 3387, 1417,
2105      1417, 1417, 2585, 3387, 1420, 1420, 1420, 1410, 2589, 1414,
2106       648,  648, 2590, 3387, 2593, 2586, 1418, 2605, 1420, 1420,
2107      1420,  654, 1422, 3387, 3387, 3387, 1115, 1115, 1115, 1428,
2108      1428, 1428, 2606, 2609,  655,  663, 1422, 1432, 1432, 1432,
2109      3387, 2610,  678, 1116, 1149, 1407, 1415, 1430, 2630, 2631,
2110      1411,  662,  679, 2632, 1433, 1423, 1428, 1428, 1428, 2633,
2111      2587, 1416, 2095, 2095, 2095, 2634, 1434, 1434, 1434, 2643,
2112      1436, 1436, 1436, 2588, 1430, 1436, 1436, 1436, 2644,  680,
2113       681,  682, 1419, 1435, 2627,  683,  684,  685, 1438, 2645,
2114
2115       686,  687, 1695, 1438,  688, 1695,  689,  690,  691,  663,
2116      1440, 1440, 1440, 3387, 3387, 3387,  735, 1444, 1444, 1444,
2117      2646, 1431, 1446, 1446, 1446,  662,  736, 1441, 2647, 2648,
2118      3387, 1446, 1446, 1446, 1445, 1139, 1139, 1139, 2649, 2628,
2119      1448, 1143, 1143, 1143, 1455, 1455, 1455, 2650, 2629, 1448,
2120      2651, 2652, 1140,  680,  737,  692, 1439, 2653, 1144,  738,
2121       739,  685, 1457, 1442,  740,  687, 2655, 2656,  741, 2657,
2122       742,  743,  691, 1455, 1455, 1455, 2658, 2659, 1443, 1461,
2123      1461, 1461, 1461, 1461, 1461, 1465, 1465, 1465, 2637, 1466,
2124      2660, 1457, 1467, 1468, 1468, 1468, 2661, 1463, 2638, 2640,
2125
2126      1463, 2639, 1449, 1468, 1468, 1468, 1472, 1472, 1472, 2641,
2127      1473, 1470, 2642, 1474, 1476, 1476, 1476, 1476, 1476, 1476,
2128      2662, 1470, 1162, 1162, 1162, 1162, 1162, 1162, 2663, 1162,
2129      1162, 1162, 1478, 2664, 2665, 1478, 2666, 1458, 2667, 2668,
2130      1164, 2669, 2670, 1164, 2672, 2673, 1464, 1164, 1518, 1518,
2131      1518, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
2132      1521, 1521, 1521, 2681, 1471, 1519, 1202, 1202, 1202, 1199,
2133      1203, 2682, 1199, 1204, 2683, 1199, 1488, 1522, 3387, 3387,
2134      3387, 1479, 1207, 1207, 1207, 1207, 1207, 1207, 2686, 1207,
2135      1207, 1207, 1212, 1212, 1212, 3387, 1213, 2687, 2691, 1214,
2136
2137      1209, 2692, 2693, 1209, 2694, 2695, 1520, 1209, 1215, 1215,
2138      1215, 1527, 1527, 1527, 2696, 1528, 2731, 2733, 1529, 1695,
2139      1530, 1530, 1530, 2734, 1695, 1216, 1218, 1218, 1218, 2735,
2140      2739, 1532, 1532, 1532, 1149, 1533, 1525, 1531, 1534, 1523,
2141      1536, 1536, 1536, 1219, 1223, 1223, 1223, 1223, 1223, 1223,
2142      1223, 1223, 1223, 1541, 1541, 1541, 2740, 1537, 1230, 1230,
2143      1230, 2729, 1225, 2728, 2743, 1225, 2730, 2744, 1225, 2747,
2144      1542, 1230, 1230, 1230, 2748, 2741, 1232, 1230, 1230, 1230,
2145      1234, 1234, 1234, 2749, 1235, 2750, 2751, 1236, 2742, 1232,
2146      1238, 1238, 1238, 2752, 2745, 1232, 1238, 1238, 1238, 1546,
2147
2148      1546, 1546, 1256, 1256, 1256, 2753, 1257, 2746, 1240, 1258,
2149      1539, 1563, 1563, 1563, 1240, 2754, 2755, 1547, 1261, 1261,
2150      1261, 1261, 1261, 1261, 1544, 1261, 1261, 1261, 1564, 2757,
2151      1266, 1266, 1266, 2758, 1267, 2759, 1263, 1268, 2760, 1263,
2152      1270, 1270, 1270, 1263, 1270, 1270, 1270, 1270, 1270, 1270,
2153      1569, 1569, 1569, 3387, 3387, 3387, 2761, 2762, 1272, 1276,
2154      1276, 1276, 1272, 2763, 2764, 1272, 2765, 1570, 2766, 2767,
2155      3387, 1276, 1276, 1276, 1276, 1276, 1276, 1278, 1573, 1573,
2156      1573, 3387, 3387, 3387, 2768, 2769, 1565, 2771, 2783, 1278,
2157      2784, 2792, 1278, 2793, 2794, 1574, 2795, 2796, 3387, 2797,
2158
2159      1571, 1282, 1282, 1282, 1282, 1282, 1282, 2798, 1568, 1575,
2160      1282, 1282, 1282, 1579, 1579, 1579, 1289, 1289, 1289, 1284,
2161      1290, 2815, 1284, 1291, 1295, 1295, 1295, 2816, 1284, 2817,
2162      1580, 1295, 1295, 1295, 1295, 1295, 1295, 1587, 1587, 1587,
2163      2818, 1572, 1297, 1302, 1302, 1302, 1302, 1302, 1302, 1297,
2164      2819, 2820, 1297, 2831, 1588, 1302, 1302, 1302, 1590, 1590,
2165      1590, 1304, 1695, 2833, 1304, 1307, 1307, 1307, 1149, 1308,
2166      2823, 2834, 1309, 1304, 2835, 1591, 1576, 1310, 1310, 1310,
2167      2836, 1311, 2837, 2824, 1312, 1313, 1313, 1313, 1313, 1313,
2168      1313, 1313, 1313, 1313, 1321, 1321, 1321, 2828, 1322, 1584,
2169
2170      2838, 1323, 2839, 1315, 2840, 2825, 1315, 2841, 2842, 1315,
2171      1597, 1597, 1597, 1325, 1325, 1325, 2827, 1326, 2826, 2845,
2172      1327, 2846, 1589, 1328, 1328, 1328, 2847, 1598, 1599, 1599,
2173      1599, 2848, 1600, 2849, 2850, 1601, 1340, 1340, 1340, 2851,
2174      1329, 1340, 1340, 1340, 1340, 1340, 1340, 2852, 1344, 1344,
2175      1344, 2854, 1345, 2855, 1342, 1346, 1592, 2856, 2857, 1342,
2176      2858, 2859, 1342, 1347, 1347, 1347, 2860, 1348, 2861, 2862,
2177      1349, 1350, 1350, 1350, 1614, 1614, 1614, 2863, 1615, 2864,
2178      2865, 1616, 1356, 1356, 1356, 1356, 1356, 1356, 1351, 1356,
2179      1356, 1356, 1364, 1364, 1364, 2866, 1365, 2878, 2879, 1366,
2180
2181      1358, 2880, 2887, 1358, 1367, 1367, 1367, 1358, 1626, 1626,
2182      1626, 1613, 1627, 2888, 2889, 1628, 1371, 1371, 1371, 2890,
2183      2891, 1368, 1371, 1371, 1371, 1371, 1371, 1371, 1376, 1376,
2184      1376, 2892, 1377, 2893, 1373, 1378, 2907, 1621, 2908, 2909,
2185      1373, 2910, 2911, 1373, 1379, 1379, 1379, 1379, 1379, 1379,
2186      1379, 1379, 1379, 1384, 1384, 1384, 2899, 1385, 2912, 2916,
2187      1386, 2917, 1381, 2918, 2919, 1381, 2900, 2929, 1381, 1388,
2188      1388, 1388, 1388, 1388, 1388, 2930, 1631, 1388, 1388, 1388,
2189      2931, 1393, 1393, 1393, 2901, 1394, 2932, 1390, 1395, 2903,
2190      1390, 1399, 1399, 1399, 2902, 1390, 1399, 1399, 1399, 2904,
2191
2192      1399, 1399, 1399, 1403, 1403, 1403, 1642, 1642, 1642, 1401,
2193      1643, 2933, 2934, 1644, 1401, 2905, 2935, 1633, 1401, 2936,
2194      1404, 1405, 1405, 1405, 1149, 2906, 1636, 1645, 1645, 1645,
2195      2940, 1646, 2941, 2942, 1647, 1408, 1408, 1408, 1406, 1408,
2196      1408, 1408, 2943, 1408, 1408, 1408, 1413, 1413, 1413, 2944,
2197      1417, 1417, 1417, 1410, 1910, 1910, 1910, 1410, 2920, 2714,
2198      1641, 1410, 2945, 1414, 1651, 1651, 1651, 1418, 1652, 2715,
2199      2947, 1653, 1656, 1656, 1656, 2716, 1657, 2948, 2949, 1658,
2200      1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1425,
2201      1425, 1425, 2717, 1426, 2950, 2951, 1427, 2952, 1422, 2953,
2202
2203      2954, 1422, 2718, 2958, 1422, 1428, 1428, 1428, 2719, 2959,
2204      1649, 1428, 1428, 1428, 1428, 1428, 1428, 1432, 1432, 1432,
2205      1663, 1663, 1663, 1430, 1664, 2960, 2963, 1665, 2964, 1430,
2206      2965, 2966, 1430, 2967, 1433, 1434, 1434, 1434, 1666, 1666,
2207      1666, 2968, 1667, 2973, 2974, 1668, 1436, 1436, 1436, 2975,
2208      1660, 2976, 1435, 1436, 1436, 1436, 2977, 1436, 1436, 1436,
2209      1440, 1440, 1440, 2978, 1438, 1670, 1670, 1670, 2979, 1671,
2210      2980, 1438, 1672, 2981, 1662, 1438, 2982, 1441, 1444, 1444,
2211      1444, 1675, 1675, 1675, 2983, 1676, 2984, 2986, 1677, 1446,
2212      1446, 1446, 1446, 1446, 1446, 1445, 1446, 1446, 1446, 1680,
2213
2214      1680, 1680, 1455, 1455, 1455, 2987, 2988, 1448, 2989, 2996,
2215      1448, 1455, 1455, 1455, 1448, 2997, 1681, 2998, 2999, 1669,
2216      1457, 1455, 1455, 1455, 1461, 1461, 1461, 3000, 1149, 1457,
2217      1461, 1461, 1461, 1461, 1461, 1461, 1465, 1465, 1465, 1457,
2218      1466, 3001, 1463, 1467, 1468, 1468, 1468, 3002, 1463, 3003,
2219      3004, 1463, 1468, 1468, 1468, 1468, 1468, 1468, 1678, 1472,
2220      1472, 1472, 1470, 1473, 3005, 3006, 1474, 1476, 1476, 1476,
2221      1470, 2990, 3007, 1470, 1476, 1476, 1476, 1476, 1476, 1476,
2222      3008, 3009, 1685, 3012, 3013, 1478, 1688, 1694, 1694, 1694,
2223      3014, 3015, 1478, 3016, 3017, 1478, 1162, 1162, 1162, 1518,
2224
2225      1518, 1518, 1197, 1197, 1197, 1695, 1696, 3018, 1521, 1521,
2226      1521, 1546, 1546, 1546, 1164, 1689, 1519, 1732, 1732, 1732,
2227      1199, 1733, 3019, 3020, 1734, 1522, 1736, 1736, 1736, 1547,
2228      1737, 3026, 3027, 1738, 1207, 1207, 1207, 3028, 1691, 1527,
2229      1527, 1527, 3035, 1528, 3036, 3037, 1529, 1530, 1530, 1530,
2230      3038, 3039, 1209, 3040, 1743, 1743, 1743, 3041, 1744, 3042,
2231      1735, 1745, 1701, 3043, 1531, 1532, 1532, 1532, 3044, 1533,
2232      3045, 3046, 1534, 1536, 1536, 1536, 3049, 1747, 1747, 1747,
2233      3050, 1748, 3051, 1741, 1749, 1223, 1223, 1223, 3052, 3055,
2234      1537, 1541, 1541, 1541, 1753, 1753, 1753, 3060, 1754, 3061,
2235
2236      3058, 1755, 1149, 1225, 1756, 1756, 1756, 3062, 1542, 1230,
2237      1230, 1230, 1774, 1774, 1774, 1563, 1563, 1563, 1776, 1776,
2238      1776, 1757, 1777, 3063, 3064, 1778, 3065, 1232, 3066, 1775,
2239      3067, 3070, 1564, 3071, 3074, 1751, 1261, 1261, 1261, 1270,
2240      1270, 1270, 1569, 1569, 1569, 1783, 1783, 1783, 3053, 1784,
2241      3072, 3075, 1785, 3076, 1263, 3055, 3077, 1272, 1758, 1570,
2242      1276, 1276, 1276, 1573, 1573, 1573, 1788, 1788, 1788, 3056,
2243      1789, 3078, 3068, 1790, 1282, 1282, 1282, 3086, 1278, 3091,
2244      1574, 1579, 1579, 1579, 1795, 1795, 1795, 3079, 1796, 3073,
2245      3081, 1797, 1284, 1798, 1798, 1798, 3092, 3093, 1580, 3080,
2246
2247      1779, 3094, 3082, 1782, 1801, 1801, 1801, 1295, 1295, 1295,
2248      1799, 1587, 1587, 1587, 3069, 1807, 1807, 1807, 3095, 1808,
2249      1787, 1802, 1809, 3096, 3099, 1297, 3099, 3087, 1588, 1810,
2250      1810, 1810, 1590, 1590, 1590, 1792, 1812, 1812, 1812, 3088,
2251      1813, 3102, 1149, 1814, 1313, 1313, 1313, 1811, 3089, 1591,
2252      1803, 1817, 1817, 1817, 1597, 1597, 1597, 1821, 1821, 1821,
2253      3090, 1822, 1315, 3103, 1823, 1599, 1599, 1599, 1818, 1600,
2254      3104, 1598, 1601, 1804, 1826, 1826, 1826, 1340, 1340, 1340,
2255      1614, 1614, 1614, 3097, 1615, 1695, 1696, 1616, 1837, 1837,
2256      1837, 1827, 3387, 3387, 3387, 1342, 3387, 3387, 3387, 3387,
2257
2258      3387, 3387, 1356, 1356, 1356, 1838, 1844, 1844, 1844, 3387,
2259      1815, 3055, 3105, 3387, 3106, 3055, 3387, 1626, 1626, 1626,
2260      1358, 1627, 3109, 1845, 1628, 3056, 3058, 1848, 1848, 1848,
2261      1371, 1371, 1371, 1379, 1379, 1379, 1388, 1388, 1388, 1860,
2262      1860, 1860, 1836, 1840, 1849, 1399, 1399, 1399, 1373, 3107,
2263      3120, 1381, 3123, 3128, 1390, 3110, 1861, 1842, 3131, 1408,
2264      1408, 1408, 1839, 1401, 1642, 1642, 1642, 3108, 1643, 1841,
2265      3111, 1644, 1645, 1645, 1645, 3132, 1646, 1410, 3133, 1647,
2266      1651, 1651, 1651, 3099, 1652, 1862, 3135, 1653, 1656, 1656,
2267      1656, 3099, 1657, 1856, 1851, 1658, 1420, 1420, 1420, 1853,
2268
2269      3136, 3118, 1863, 1428, 1428, 1428, 1663, 1663, 1663, 3137,
2270      1664, 3138, 3139, 1665, 1422, 1666, 1666, 1666, 3121, 1667,
2271      3119, 1430, 1668, 3140, 3126, 1865, 1436, 1436, 1436, 1670,
2272      1670, 1670, 3141, 1671, 3142, 3143, 1672, 3122, 1675, 1675,
2273      1675, 3153, 1676, 3127, 1438, 1677, 1446, 1446, 1446, 1680,
2274      1680, 1680, 1878, 1878, 1878, 3154, 1879, 1870, 3129, 1880,
2275      1872, 1455, 1455, 1455, 1448, 3155, 1681, 1886, 1886, 1886,
2276      1461, 1461, 1461, 1873, 1468, 1468, 1468, 3130, 3156, 1457,
2277      1890, 1890, 1890, 3157, 1887, 1476, 1476, 1476, 1463, 1694,
2278      1694, 1694, 1470, 1876, 1162, 1162, 1162, 1891, 1732, 1732,
2279
2280      1732, 3158, 1733, 1478, 3162, 1734, 3163, 1695, 3164, 3165,
2281      1884, 3166, 1164, 1197, 1197, 1197, 1736, 1736, 1736, 3167,
2282      1737, 3168, 3169, 1738, 3171, 3172, 1889, 1207, 1207, 1207,
2283      3173, 1199, 1743, 1743, 1743, 3174, 1744, 1888, 3175, 1745,
2284      1894, 1223, 1223, 1223, 3176, 1209, 1899, 1892, 1747, 1747,
2285      1747, 3177, 1748, 3178, 3180, 1749, 3182, 1895, 3183, 1225,
2286      1753, 1753, 1753, 3184, 1754, 3179, 3181, 1755, 1756, 1756,
2287      1756, 3185, 1945, 1945, 1945, 3186, 1946, 3187, 1931, 1947,
2288      1928, 1230, 1230, 1230, 3188, 1757, 1954, 1954, 1954, 1954,
2289      1954, 1954, 1915, 1915, 1915, 1774, 1774, 1774, 3189, 1232,
2290
2291      3190, 3191, 1935, 1960, 1960, 1960, 3192, 1961, 3193, 3194,
2292      1962, 3195, 1775, 1776, 1776, 1776, 3197, 1777, 3198, 3199,
2293      1778, 1261, 1261, 1261, 1965, 1965, 1965, 1270, 1270, 1270,
2294      1149, 3200, 1948, 1783, 1783, 1783, 3201, 1784, 3202, 1263,
2295      1785, 1966, 1276, 1276, 1276, 1272, 3203, 1788, 1788, 1788,
2296      1955, 1789, 3204, 1916, 1790, 3196, 1955, 1282, 1282, 1282,
2297      1278, 1970, 1970, 1970, 3205, 1795, 1795, 1795, 1963, 1796,
2298      3206, 3207, 1797, 3208, 1967, 1284, 3209, 3210, 1971, 1798,
2299      1798, 1798, 1975, 1975, 1975, 3211, 1976, 3212, 3213, 1977,
2300      1978, 1978, 1978, 1801, 1801, 1801, 1799, 1980, 1980, 1980,
2301
2302      3214, 1981, 3215, 3216, 1982, 3217, 3218, 1979, 1969, 3220,
2303      1802, 1984, 1984, 1984, 3221, 1807, 1807, 1807, 3222, 1808,
2304      3223, 1972, 1809, 1810, 1810, 1810, 1812, 1812, 1812, 1985,
2305      1813, 1149, 3224, 1814, 1313, 1313, 1313, 1817, 1817, 1817,
2306      3225, 1811, 1990, 1990, 1990, 3226, 1991, 3227, 3228, 1992,
2307      3219, 3229, 1315, 3230, 1818, 1993, 1993, 1993, 1821, 1821,
2308      1821, 3231, 1822, 3232, 3233, 1823, 1826, 1826, 1826, 1998,
2309      1998, 1998, 1994, 1999, 3234, 3235, 2000, 2001, 2001, 2001,
2310      1988, 3236, 3237, 1827, 2007, 2007, 2007, 1340, 1340, 1340,
2311      1837, 1837, 1837, 3238, 2002, 2012, 2012, 2012, 3239, 2013,
2312
2313      3241, 2008, 2014, 1149, 3242, 1342, 3243, 1838, 2015, 2015,
2314      2015, 3387, 3387, 3387, 2018, 2018, 2018, 1356, 1356, 1356,
2315      1844, 1844, 1844, 3240, 3244, 2016, 3245, 3246, 3387, 3247,
2316      3248, 2019, 2022, 2022, 2022, 1358, 2023, 1845, 3249, 2024,
2317      2025, 2025, 2025, 1848, 1848, 1848, 3250, 2028, 2028, 2028,
2318      3251, 2029, 3252, 2011, 2030, 3253, 3254, 2026, 3255, 3256,
2319      1849, 2032, 2032, 2032, 1379, 1379, 1379, 3257, 3258, 2017,
2320      1388, 1388, 1388, 1860, 1860, 1860, 3259, 2020, 3260, 2033,
2321      3262, 3263, 1381, 3264, 3265, 2042, 2042, 2042, 1390, 2043,
2322      1861, 3266, 2044, 2046, 2046, 2046, 1408, 1408, 1408, 2051,
2323
2324      2051, 2051, 2053, 2053, 2053, 3387, 3387, 3387, 1420, 1420,
2325      1420, 2047, 3267, 3268, 1410, 2035, 2052, 3269, 2038, 2054,
2326      3270, 3271, 3387, 1436, 1436, 1436, 1422, 1428, 1428, 1428,
2327      3272, 2060, 2060, 2060, 2062, 2062, 2062, 1446, 1446, 1446,
2328      3273, 1438, 1878, 1878, 1878, 1430, 1879, 2049, 2061, 1880,
2329      1149, 2063, 1455, 1455, 1455, 1448, 3261, 1886, 1886, 1886,
2330      2071, 2071, 2071, 3275, 2072, 3276, 3277, 2073, 3278, 2055,
2331      1457, 3279, 3280, 2058, 1887, 2056, 1461, 1461, 1461, 1468,
2332      1468, 1468, 1890, 1890, 1890, 2076, 2076, 2076, 2059, 2077,
2333      3281, 3282, 2078, 3284, 1463, 3285, 3286, 1470, 3287, 1891,
2334
2335      3288, 3289, 2064, 2069, 2079, 2079, 2079, 2085, 2085, 2085,
2336      1162, 1162, 1162, 2102, 2102, 2102, 1915, 1915, 1915, 2103,
2337      2103, 2103, 2080, 3290, 2086, 1918, 1918, 1918, 1164, 2106,
2338      2106, 2106, 3291, 3294, 2075, 2074, 2107, 2107, 2107, 1926,
2339      1926, 1926, 1197, 1197, 1197, 2116, 2116, 2116, 2119, 2119,
2340      2119, 1223, 1223, 1223, 3295, 2123, 2123, 2123, 3296, 3297,
2341      1199, 3298, 3299, 2117, 1726, 2120, 1945, 1945, 1945, 1225,
2342      1946, 2087, 2124, 1947, 1725, 1230, 1230, 1230, 2136, 2136,
2343      2136, 1954, 1954, 1954, 2143, 2143, 2143, 2145, 2145, 2145,
2344      1149, 1149, 2113, 1232, 1149, 2137, 1960, 1960, 1960, 1149,
2345
2346      1961, 1149, 1724, 1962, 2146, 1261, 1261, 1261, 3274, 3310,
2347      2122, 2149, 2149, 2149, 1965, 1965, 1965, 1149, 2152, 2152,
2348      2152, 2135, 2153, 1263, 1149, 2154, 3300, 3301, 2150, 1723,
2349      1149, 1966, 1149, 2147, 1270, 1270, 1270, 2157, 2157, 2157,
2350      3318, 3308, 1970, 1970, 1970, 1149, 2159, 2159, 2159, 3302,
2351      2160, 1722, 1272, 2161, 1149, 2158, 1721, 2151, 2148, 1971,
2352      1282, 1282, 1282, 1975, 1975, 1975, 1149, 1976, 3306, 1149,
2353      1977, 1978, 1978, 1978, 3307, 2165, 2165, 2165, 1284, 2166,
2354      3303, 1149, 2167, 1984, 1984, 1984, 3311, 2155, 1979, 1980,
2355      1980, 1980, 3312, 1981, 1149, 3319, 1982, 1986, 1986, 1986,
2356
2357      1149, 1985, 1313, 1313, 1313, 3313, 3316, 2162, 1990, 1990,
2358      1990, 1149, 1991, 1149, 3304, 1992, 1993, 1993, 1993, 1149,
2359      1315, 2174, 2174, 2174, 1720, 2175, 3328, 1149, 2176, 3305,
2360      1998, 1998, 1998, 1994, 1999, 1149, 1149, 2000, 2001, 2001,
2361      2001, 2180, 2180, 2180, 1149, 2181, 3320, 1149, 2182, 2183,
2362      2183, 2183, 2007, 2007, 2007, 2002, 3317, 2188, 2188, 2188,
2363      2172, 2189, 3321, 3309, 2190, 1149, 2184, 1149, 1149, 2008,
2364      1340, 1340, 1340, 2012, 2012, 2012, 1149, 2013, 1149, 3334,
2365      2014, 2015, 2015, 2015, 3324, 2194, 2194, 2194, 1342, 2195,
2366      1149, 3314, 2196, 2197, 2197, 2197, 1149, 3326, 2016, 2018,
2367
2368      2018, 2018, 2199, 2199, 2199, 3329, 2200, 1718, 3327, 2201,
2369      2198, 1356, 1356, 1356, 1149, 3315, 2019, 1717, 2022, 2022,
2370      2022, 2193, 2023, 1149, 3322, 2024, 2025, 2025, 2025, 1358,
2371      2204, 2204, 2204, 3325, 2205, 1715, 3323, 2206, 2028, 2028,
2372      2028, 1149, 2029, 2026, 1149, 2030, 2032, 2032, 2032, 1379,
2373      1379, 1379, 2212, 2212, 2212, 1388, 1388, 1388, 2216, 2216,
2374      2216, 1149, 2202, 1149, 2033, 3346, 1149, 1381, 1149, 2213,
2375      2042, 2042, 2042, 1390, 2043, 2217, 3330, 2044, 2046, 2046,
2376      2046, 2224, 2224, 2224, 2051, 2051, 2051, 2227, 2227, 2227,
2377      3336, 2228, 1149, 1714, 2229, 3332, 2047, 1149, 3331, 2225,
2378
2379      3333, 2052, 1149, 1149, 2218, 2053, 2053, 2053, 2230, 2230,
2380      2230, 3335, 2231, 2210, 1711, 2232, 2214, 1420, 1420, 1420,
2381      1149, 1149, 2054, 1428, 1428, 1428, 1436, 1436, 1436, 2060,
2382      2060, 2060, 2238, 2238, 2238, 1422, 2239, 3338, 3337, 2240,
2383      3344, 1430, 1149, 3348, 1438, 1149, 2061, 2062, 2062, 2062,
2384      2241, 2241, 2241, 1149, 2242, 3339, 3342, 2243, 1446, 1446,
2385      1446, 1455, 1455, 1455, 2063, 1149, 2071, 2071, 2071, 3380,
2386      2072, 1708, 2236, 2073, 1149, 3340, 1448, 1149, 3341, 1457,
2387      1461, 1461, 1461, 2234, 1468, 1468, 1468, 3343, 2076, 2076,
2388      2076, 2237, 2077, 1149, 3366, 2078, 1149, 1707, 1463, 2079,
2389
2390      2079, 2079, 1470, 2085, 2085, 2085, 2257, 2257, 2257, 3354,
2391      2258, 3345, 3355, 2259, 1162, 1162, 1162, 2080, 1149, 3347,
2392      2086, 1149, 3384, 2244, 1706, 1705, 2249, 2261, 2261, 2261,
2393      3350, 2251, 1164, 2266, 2266, 2266, 1149, 2252, 2267, 2267,
2394      2267, 2095, 2095, 2095, 2269, 2269, 2269, 2273, 2273, 2273,
2395      2102, 2102, 2102, 2103, 2103, 2103, 2274, 2274, 2274, 2106,
2396      2106, 2106, 2107, 2107, 2107, 2277, 2277, 2277, 2278, 2278,
2397      2278, 2279, 2279, 2279, 2280, 2280, 2280, 1149, 2260, 1197,
2398      1197, 1197, 2116, 2116, 2116, 3376, 2119, 2119, 2119, 2286,
2399      2286, 2286, 1149, 2287, 1149, 1704, 2288, 1199, 1703, 1149,
2400
2401      2117, 1702, 2275, 2120, 2290, 2290, 2290, 2123, 2123, 2123,
2402      2292, 2292, 2292, 3360, 2293, 1700, 1699, 2294, 1230, 1230,
2403      1230, 1149, 2291, 3349, 2124, 2136, 2136, 2136, 3352, 3351,
2404      2282, 2306, 2306, 2306, 1698, 2307, 1232, 1149, 2308, 2309,
2405      2309, 2309, 2137, 2143, 2143, 2143, 2314, 2314, 2314, 2145,
2406      2145, 2145, 2316, 2316, 2316, 1149, 2317, 1149, 1149, 2318,
2407      1261, 1261, 1261, 2149, 2149, 2149, 2146, 2305, 2321, 2321,
2408      2321, 3356, 2322, 1149, 1697, 2323, 1690, 1149, 1263, 3361,
2409      2150, 2152, 2152, 2152, 3353, 2153, 1149, 1149, 2154, 1270,
2410      1270, 1270, 2315, 1149, 2157, 2157, 2157, 2159, 2159, 2159,
2411
2412      1149, 2160, 1687, 3358, 2161, 3362, 1149, 1272, 1282, 1282,
2413      1282, 2320, 2158, 2165, 2165, 2165, 1686, 2166, 1149, 3359,
2414      2167, 1313, 1313, 1313, 3363, 3374, 1284, 2174, 2174, 2174,
2415      1149, 2175, 3370, 1684, 2176, 2183, 2183, 2183, 1683, 1315,
2416      2325, 2180, 2180, 2180, 1149, 2181, 3371, 3367, 2182, 2341,
2417      2341, 2341, 2184, 2342, 3377, 3364, 2343, 1149, 2188, 2188,
2418      2188, 2327, 2189, 1149, 3357, 2190, 2348, 2348, 2348, 1340,
2419      1340, 1340, 1682, 2194, 2194, 2194, 2336, 2195, 1149, 1679,
2420      2196, 3365, 3384, 2349, 2197, 2197, 2197, 1342, 2351, 2351,
2421      2351, 1149, 2352, 1149, 3372, 2353, 2199, 2199, 2199, 1149,
2422
2423      2200, 2198, 1674, 2201, 1356, 1356, 1356, 2204, 2204, 2204,
2424      1673, 2205, 1149, 3368, 2206, 1149, 2359, 2359, 2359, 2212,
2425      2212, 2212, 1358, 2362, 2362, 2362, 3369, 2363, 1661, 1149,
2426      2364, 3375, 1149, 2350, 2360, 1659, 2213, 1388, 1388, 1388,
2427      2216, 2216, 2216, 2367, 2367, 2367, 1655, 2368, 1654, 3373,
2428      2369, 2224, 2224, 2224, 1650, 1390, 1648, 2217, 2227, 2227,
2429      2227, 3378, 2228, 3381, 3379, 2229, 1420, 1420, 1420, 2225,
2430      2354, 2230, 2230, 2230, 1149, 2231, 1640, 1639, 2232, 1149,
2431      1428, 1428, 1428, 1638, 1422, 1436, 1436, 1436, 2238, 2238,
2432      2238, 1637, 2239, 1635, 1634, 2240, 1632, 2365, 1430, 1630,
2433
2434      2241, 2241, 2241, 1438, 2242, 1629, 3382, 2243, 1446, 1446,
2435      1446, 3383, 2385, 2385, 2385, 1625, 1624, 2380, 3387, 3387,
2436      3387, 2383, 3387, 3387, 3387, 1623, 1448, 1622, 2384, 2386,
2437      3387, 3387, 3387, 1620, 1619, 3387, 1455, 1455, 1455, 3387,
2438      1461, 1461, 1461, 2393, 2393, 2393, 2382, 3387, 2395, 2395,
2439      2395, 2398, 2398, 2398, 1457, 2257, 2257, 2257, 1463, 2258,
2440      1618, 2394, 2259, 1162, 1162, 1162, 1149, 1617, 1610, 2387,
2441      2261, 2261, 2261, 2400, 2400, 2400, 2401, 2401, 2401, 1609,
2442      1608, 1164, 2266, 2266, 2266, 1607, 2388, 1606, 1605, 2389,
2443      2267, 2267, 2267, 2269, 2269, 2269, 2405, 2405, 2405, 1604,
2444
2445      2392, 2390, 2406, 2406, 2406, 2407, 2407, 2407, 2273, 2273,
2446      2273, 2274, 2274, 2274, 2277, 2277, 2277, 2278, 2278, 2278,
2447      1603, 1602, 2399, 2279, 2279, 2279, 2280, 2280, 2280, 2411,
2448      2411, 2411, 2414, 2414, 2414, 2286, 2286, 2286, 1596, 2287,
2449      1595, 1594, 2288, 3387, 3387, 3387, 1593, 2412, 1586, 2415,
2450      2290, 2290, 2290, 1585, 2292, 2292, 2292, 1583, 2293, 1582,
2451      3387, 2294, 1230, 1230, 1230, 2306, 2306, 2306, 2291, 2307,
2452      2433, 2434, 2308, 2435, 2309, 2309, 2309, 2438, 2438, 2438,
2453      1232, 2436, 2314, 2314, 2314, 2316, 2316, 2316, 2437, 2317,
2454      1581, 1578, 2318, 1261, 1261, 1261, 2321, 2321, 2321, 1577,
2455
2456      2322, 1567, 1566, 2323, 2446, 2446, 2446, 1562, 1561, 2416,
2457      1560, 1263, 2448, 2448, 2448, 1282, 1282, 1282, 2458, 2458,
2458      2458, 1559, 2447, 2427, 1313, 1313, 1313, 1558, 1557, 2449,
2459      2341, 2341, 2341, 1284, 2342, 1556, 1555, 2343, 1553, 2444,
2460      1552, 1550, 1315, 2465, 2465, 2465, 2348, 2348, 2348, 2470,
2461      2470, 2470, 1549, 2471, 1548, 1545, 2472, 2473, 2473, 2473,
2462      2466, 1543, 1540, 2349, 1538, 1535, 2450, 2351, 2351, 2351,
2463      1526, 2352, 1524, 1517, 2353, 2474, 2475, 2475, 2475, 2359,
2464      2359, 2359, 1515, 1514, 2459, 2481, 2481, 2481, 2362, 2362,
2465      2362, 1513, 2363, 1512, 2476, 2364, 1511, 2360, 1388, 1388,
2466
2467      1388, 1510, 2482, 1509, 2484, 2484, 2484, 2367, 2367, 2367,
2468      1508, 2368, 1507, 1506, 2369, 1503, 1390, 3387, 3387, 3387,
2469      1502, 2485, 3387, 3387, 3387, 3387, 3387, 3387, 2495, 2495,
2470      2495, 2499, 2499, 2499, 3387, 2497, 2497, 2497, 1501, 3387,
2471      1500, 1499, 3387, 1428, 1428, 1428, 1498, 1497, 2500, 2483,
2472      2486, 1495, 1494, 2498, 1493, 1436, 1436, 1436, 2385, 2385,
2473      2385, 1430, 1446, 1446, 1446, 1492, 1491, 2504, 2504, 2504,
2474      1490, 2505, 2487, 1438, 2506, 2386, 2493, 2507, 2507, 2507,
2475      1448, 1489, 1487, 2488, 3387, 3387, 3387, 3387, 3387, 3387,
2476      2511, 2511, 2511, 1486, 2508, 2513, 2513, 2513, 1485, 2503,
2477
2478      1484, 3387, 1483, 2501, 3387, 1461, 1461, 1461, 2512, 2393,
2479      2393, 2393, 2395, 2395, 2395, 1482, 2502, 2398, 2398, 2398,
2480      2400, 2400, 2400, 1463, 2518, 2518, 2518, 2394, 1481, 1149,
2481      1149, 2401, 2401, 2401, 1475, 2509, 1460, 1459, 2510, 2522,
2482      2522, 2522, 2519, 2405, 2405, 2405, 2406, 2406, 2406, 2407,
2483      2407, 2407, 2411, 2411, 2411, 2414, 2414, 2414, 2527, 2527,
2484      2527, 1454, 2528, 1453, 1452, 2529, 1230, 1230, 1230, 1451,
2485      2412, 2514, 2415, 1450, 2515, 2438, 2438, 2438, 2556, 2556,
2486      2556, 1261, 1261, 1261, 1232, 2446, 2446, 2446, 2448, 2448,
2487      2448, 2561, 2561, 2561, 1424, 2562, 1412, 1398, 2563, 1263,
2488
2489      2564, 2564, 2564, 2447, 1397, 2449, 2570, 2570, 2570, 2458,
2490      2458, 2458, 1313, 1313, 1313, 2465, 2465, 2465, 2565, 1396,
2491      2578, 2578, 2578, 2571, 2579, 1392, 2541, 2580, 1387, 1383,
2492      1315, 1375, 2466, 2582, 2582, 2582, 2470, 2470, 2470, 1370,
2493      2471, 1369, 1363, 2472, 2473, 2473, 2473, 2559, 1360, 1339,
2494      2583, 1338, 2475, 2475, 2475, 2591, 2591, 2591, 2481, 2481,
2495      2481, 1337, 2474, 1336, 2594, 2594, 2594, 1335, 2595, 2572,
2496      2476, 2596, 2592, 1334, 1333, 2482, 2597, 2597, 2597, 2484,
2497      2484, 2484, 2599, 2599, 2599, 1332, 2600, 1331, 1330, 2601,
2498      3387, 3387, 3387, 1324, 2598, 1317, 2485, 3387, 3387, 3387,
2499
2500      3387, 3387, 3387, 2607, 2607, 2607, 1306, 3387, 2495, 2495,
2501      2495, 2497, 2497, 2497, 3387, 1301, 1300, 3387, 1299, 1294,
2502      2608, 2499, 2499, 2499, 2611, 2611, 2611, 1293, 2612, 2498,
2503      1292, 2613, 2614, 2614, 2614, 1436, 1436, 1436, 2500, 1446,
2504      1446, 1446, 2602, 1288, 2504, 2504, 2504, 1287, 2505, 1286,
2505      2615, 2506, 1281, 1438, 1280, 2603, 1275, 1448, 2604, 2507,
2506      2507, 2507, 2618, 2618, 2618, 1274, 2619, 1269, 1265, 2620,
2507      2621, 2621, 2621, 2623, 2623, 2623, 2508, 2511, 2511, 2511,
2508      2513, 2513, 2513, 2625, 2625, 2625, 1260, 2622, 1259, 1255,
2509      2624, 2518, 2518, 2518, 1254, 2512, 2522, 2522, 2522, 1253,
2510
2511      1252, 2626, 2616, 2617, 2635, 2635, 2635, 1251, 1250, 2519,
2512      2527, 2527, 2527, 1249, 2528, 1248, 1247, 2529, 1230, 1230,
2513      1230, 2636, 2556, 2556, 2556, 1261, 1261, 1261, 2561, 2561,
2514      2561, 1246, 2562, 1245, 1244, 2563, 1232, 2564, 2564, 2564,
2515      2674, 2674, 2674, 1263, 2570, 2570, 2570, 2676, 2676, 2676,
2516      1243, 2677, 1237, 1229, 2678, 2565, 1228, 2675, 2679, 2679,
2517      2679, 2571, 2684, 2684, 2684, 2578, 2578, 2578, 1227, 2579,
2518      1222, 1221, 2580, 2582, 2582, 2582, 2680, 1220, 2654, 2685,
2519      2688, 2688, 2688, 1217, 2689, 1211, 1206, 2690, 1205, 1201,
2520      2583, 2697, 2697, 2697, 1196, 1195, 2671, 2591, 2591, 2591,
2521
2522      2699, 2699, 2699, 1194, 2700, 1193, 1192, 2701, 2698, 2702,
2523      2702, 2702, 1191, 1190, 2592, 2594, 2594, 2594, 1188, 2595,
2524      1187, 1186, 2596, 2597, 2597, 2597, 2703, 2599, 2599, 2599,
2525      1185, 2600, 1184, 1183, 2601, 3387, 3387, 3387, 3387, 3387,
2526      3387, 2598, 3387, 3387, 3387, 2607, 2607, 2607, 1182, 2707,
2527      2707, 2707, 3387, 2708, 1181, 3387, 2709, 1180, 1179, 3387,
2528      1178, 1177, 2608, 2710, 2710, 2710, 2712, 2712, 2712, 2611,
2529      2611, 2611, 1176, 2612, 1175, 1174, 2613, 2614, 2614, 2614,
2530      2711, 1173, 1172, 2713, 1436, 1436, 1436, 1171, 1170, 2705,
2531      2704, 1446, 1446, 1446, 1169, 2615, 1168, 2706, 1161, 2618,
2532
2533      2618, 2618, 1438, 2619, 1160, 1159, 2620, 1158, 1157, 1448,
2534      2621, 2621, 2621, 2722, 2722, 2722, 1156, 2723, 1155, 1152,
2535      2724, 2623, 2623, 2623, 2725, 2725, 2725, 2622, 2726, 1150,
2536      1149, 2727, 1147, 2625, 2625, 2625, 1145, 1142, 2624, 2732,
2537      2732, 2732, 2635, 2635, 2635, 1230, 1230, 1230, 1138, 1136,
2538      2720, 2626, 2721, 2736, 2736, 2736, 1135, 2737, 1134, 2636,
2539      2738, 1132, 1131, 1232, 2770, 2770, 2770, 2772, 2772, 2772,
2540      1261, 1261, 1261, 2775, 2775, 2775, 2777, 2777, 2777, 1130,
2541      2674, 2674, 2674, 1129, 2773, 2780, 2780, 2780, 1263, 2781,
2542      2776, 1128, 2782, 2778, 1127, 1125, 2756, 2675, 2676, 2676,
2543
2544      2676, 1124, 2677, 1123, 1122, 2678, 2679, 2679, 2679, 2785,
2545      2785, 2785, 2684, 2684, 2684, 1120, 2787, 2787, 2787, 1119,
2546      2788, 1118, 2779, 2789, 2680, 1114, 2786, 1113, 1111, 2685,
2547      1110, 1109, 2774, 2790, 2790, 2790, 2688, 2688, 2688, 1108,
2548      2689, 1107, 1106, 2690, 2697, 2697, 2697, 2799, 2799, 2799,
2549      2791, 2800, 1104, 1103, 2801, 2699, 2699, 2699, 1102, 2700,
2550      1101, 2698, 2701, 2702, 2702, 2702, 2802, 2802, 2802, 1099,
2551      2803, 1098, 1097, 2804, 3387, 3387, 3387, 2806, 2806, 2806,
2552      2703, 3387, 3387, 3387, 1094, 2707, 2707, 2707, 1093, 2708,
2553      1091, 3387, 2709, 1088, 2807, 2710, 2710, 2710, 3387, 2809,
2554
2555      2809, 2809, 1087, 2810, 1083, 1082, 2811, 2712, 2712, 2712,
2556      1080, 1079, 2711, 2812, 2812, 2812, 1078, 2813, 1075, 1074,
2557      2814, 1436, 1436, 1436, 2713, 1446, 1446, 1446, 1073, 1072,
2558      2808, 1070, 2805, 2722, 2722, 2722, 1069, 2723, 1068, 1438,
2559      2724, 1067, 1066, 1448, 2725, 2725, 2725, 1061, 2726, 1059,
2560      1058, 2727, 2829, 2829, 2829, 2732, 2732, 2732, 2832, 2832,
2561      2832, 2736, 2736, 2736, 1057, 2737, 1056, 1055, 2738, 2830,
2562      1695, 1054, 2821, 2843, 2843, 2843, 1230, 1230, 1230, 2770,
2563      2770, 2770, 2867, 2867, 2867, 2772, 2772, 2772, 1053, 1052,
2564      2844, 1051, 2822, 1050, 1232, 1049, 2868, 2868, 2868, 1046,
2565
2566      2869, 1043, 2773, 2870, 1261, 1261, 1261, 2775, 2775, 2775,
2567      2872, 2872, 2872, 1042, 2873, 1041, 1035, 2874, 2777, 2777,
2568      2777, 1034, 1263, 1032, 2776, 2853, 2875, 2875, 2875, 1029,
2569      2876, 1027, 1026, 2877, 1025, 2778, 2780, 2780, 2780, 1020,
2570      2781, 1019, 1017, 2782, 2785, 2785, 2785, 2881, 2881, 2881,
2571      1016, 2882, 1015, 1013, 2883, 2871, 2787, 2787, 2787, 1012,
2572      2788, 2786, 1011, 2789, 2790, 2790, 2790, 2884, 2884, 2884,
2573      1009, 2885, 1006, 1005, 2886, 2799, 2799, 2799, 1003, 2800,
2574      1002, 2791, 2801, 2802, 2802, 2802,  999, 2803,  994,  993,
2575      2804, 3387, 3387, 3387, 2806, 2806, 2806, 2895, 2895, 2895,
2576
2577       990, 2896,  989,  988, 2897, 3387, 3387, 3387, 3387,  985,
2578       984, 2807, 2809, 2809, 2809,  982, 2810,  979,  977, 2811,
2579       976,  975, 3387, 2812, 2812, 2812,  974, 2813,  972,  971,
2580      2814, 2913, 2913, 2913, 1446, 1446, 1446, 2921, 2921, 2921,
2581       970,  969, 2894, 2829, 2829, 2829, 2923, 2923, 2923, 2914,
2582      2924,  968, 1448, 2925, 2922, 1695, 2926, 2926, 2926,  967,
2583      2830, 1695,  964,  963, 1695, 2832, 2832, 2832, 2927, 2927,
2584      2927, 2928, 2928, 2928,  962,  959, 2898, 2843, 2843, 2843,
2585      2937, 2937, 2937,  956, 2938,  955,  953, 2939, 1230, 1230,
2586      1230, 2955, 2955, 2955, 2844, 2867, 2867, 2867,  952,  949,
2587
2588      2915, 2868, 2868, 2868,  946, 2869, 1232,  943, 2870, 2956,
2589      2956, 2956, 2872, 2872, 2872,  942, 2873,  934,  933, 2874,
2590       932, 2875, 2875, 2875,  931, 2876,  925, 2957, 2877, 2881,
2591      2881, 2881,  924, 2882,  923,  921, 2883, 2884, 2884, 2884,
2592       920, 2885,  919,  918, 2886, 2961, 2961, 2961, 2969, 2969,
2593      2969, 2895, 2895, 2895, 2946, 2896,  917,  916, 2897, 2971,
2594      2971, 2971, 2962,  911,  908, 2970, 2913, 2913, 2913, 1446,
2595      1446, 1446, 2921, 2921, 2921,  910, 2972,  905, 2991, 2991,
2596      2991,  904, 2992,  902, 2914, 2993,  900, 1448,  898, 2922,
2597      1695, 2923, 2923, 2923,  896, 2924, 1695,  894, 2925, 2926,
2598
2599      2926, 2926, 2927, 2927, 2927, 2928, 2928, 2928,  891, 1695,
2600      2937, 2937, 2937,  890, 2938,  889,  888, 2939,  887,  885,
2601      2985, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2602       883,  882, 1693, 3010, 3010, 3010,  881, 1693, 1693, 1693,
2603      1695, 1693, 2955, 2955, 2955, 2956, 2956, 2956, 2961, 2961,
2604      2961, 3011, 3021, 3021, 3021,  879, 3022,  877,  876, 3023,
2605      3024, 3024, 3024, 2957,  874, 2962, 1693, 1693, 1693, 1693,
2606      1693, 1693, 1693, 1693, 1693, 1693, 1693, 3025,  872, 1693,
2607      2969, 2969, 2969,  871, 1693, 1693, 1693, 1695, 1693, 3029,
2608      3029, 3029,  869, 3030,  865,  864, 3031, 2970, 2971, 2971,
2609
2610      2971, 3032, 3032, 3032,  862, 3033,  857,  855, 3034, 3047,
2611      3047, 3047,  851, 1693, 1693, 2972, 2991, 2991, 2991,  850,
2612      2992,  849,  847, 2993,  845,  844,  843, 3048,  841, 3010,
2613      3010, 3010,  839,  838, 1695, 1693, 1693, 1693, 1693, 1693,
2614      3059, 1693, 1693, 1693,  836,  834, 1693, 3011, 3024, 3024,
2615      3024, 1693, 1693, 1693, 1695, 1693, 3021, 3021, 3021,  833,
2616      3022,  832,  831, 3023,  830, 3025, 3083, 3083, 3083,  829,
2617      3084,  828,  826, 3085, 3047, 3047, 3047, 3101, 3101, 3101,
2618      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2619      3059,  824, 3048, 1693,  823, 1695, 1696,  820, 1693, 1693,
2620
2621      1693, 1695, 1693, 3029, 3029, 3029,  819, 3030,  818,  816,
2622      3031, 3032, 3032, 3032,  814, 3033,  803,  802, 3034, 3112,
2623      3112, 3112, 3114, 3114, 3114,  799,  797, 1693, 1693, 3116,
2624      3116, 3116,  795, 3083, 3083, 3083, 3113, 3084,  794, 3115,
2625      3085, 3124, 3124, 3124,  793,  791, 3117, 3134, 3134, 3134,
2626      3101, 3101, 3101, 3112, 3112, 3112,  789,  787, 3125, 3144,
2627      3144, 3144,  784, 3145,  781, 1149, 3146,  780, 1695,  779,
2628      3113, 3114, 3114, 3114, 3147, 3147, 3147,  777, 3148,  775,
2629       774, 3149, 3116, 3116, 3116, 3150, 3150, 3150, 3115, 3151,
2630       772,  770, 3152, 3124, 3124, 3124, 3159, 3159, 3159, 3117,
2631
2632      3160, 1894,  769, 3161, 3134, 3134, 3134, 3144, 3144, 3144,
2633      3125, 3145,  767,  765, 3146,  764, 3147, 3147, 3147,  763,
2634      3148,  761, 1149, 3149, 3150, 3150, 3150,  759, 3151,  758,
2635       757, 3152, 3159, 3159, 3159,  756, 3160,  754, 3387, 3161,
2636       701, 3170, 3283, 3283, 3283, 3283, 3283, 3283,  734, 3292,
2637       733,  731, 3293, 3385, 3385, 3385, 3385, 3385, 3385,  729,
2638      1149,  728,  727, 1149,  725,  721,  717,  716,  714,  713,
2639       710, 3386,  709,  708, 3386,  260,  260,  260,  260,  260,
2640       260,  260,  260,  260,  261,  261,  261,  261,  261,  261,
2641       261,  261,  261,  266,  266,  266,  266,  266,  266,  266,
2642
2643       266,  266,  269,  269,  269,  269,  269,  269,  269,  269,
2644       269,  272,  272,  272,  272,  272,  272,  272,  272,  272,
2645       275,  275,  275,  275,  275,  275,  275,  275,  275,  282,
2646       282,  282,  282,  282,  282,  282,  282,  282,  290,  290,
2647       290,  290,  290,  290,  290,  290,  290,  294,  294,  294,
2648       294,  294,  294,  294,  294,  294,  306,  306,  306,  306,
2649       306,  306,  306,  306,  306,  310,  310,  310,  310,  310,
2650       310,  310,  310,  310,  317,  317,  317,  317,  317,  317,
2651       317,  317,  317,  328,  328,  328,  328,  328,  328,  328,
2652       328,  328,  336,  336,  336,  336,  336,  336,  336,  336,
2653
2654       336,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2655       348,  348,  348,  348,  348,  348,  348,  348,  348,  354,
2656       354,  354,  354,  354,  354,  354,  354,  354,  359,  359,
2657       359,  359,  359,  359,  359,  359,  359,  378,  378,  378,
2658       378,  378,  378,  378,  378,  378,  385,  385,  385,  385,
2659       385,  385,  385,  385,  385,  392,  392,  392,  392,  392,
2660       392,  392,  392,  392,  398,  398,  398,  398,  398,  398,
2661       398,  398,  398,  405,  405,  405,  405,  405,  405,  405,
2662       405,  405,  410,  410,  410,  410,  410,  410,  410,  410,
2663       410,  416,  416,  416,  416,  416,  416,  416,  416,  416,
2664
2665       421,  421,  421,  421,  421,  421,  421,  421,  421,  427,
2666       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2667       435,  435,  435,  435,  435,  435,  435,  443,  443,  443,
2668       443,  443,  443,  443,  443,  443,  447,  447,  447,  447,
2669       447,  447,  447,  447,  447,  453,  453,  453,  453,  453,
2670       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2671       459,  459,  459,  477,  477,  477,  477,  477,  477,  477,
2672       477,  477,  484,  484,  484,  484,  484,  484,  484,  484,
2673       484,  493,  493,  493,  493,  493,  493,  493,  493,  493,
2674       499,  499,  499,  499,  499,  499,  499,  499,  499,  509,
2675
2676       509,  509,  509,  509,  509,  509,  509,  509,  515,  515,
2677       515,  515,  515,  515,  515,  515,  515,  520,  520,  520,
2678       520,  520,  520,  520,  520,  520,  526,  526,  526,  526,
2679       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2680       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2681       538,  538,  538,  545,  545,  545,  545,  545,  545,  545,
2682       545,  545,  552,  552,  552,  552,  552,  552,  552,  552,
2683       552,  557,  557,  557,  557,  557,  557,  557,  557,  557,
2684       565,  565,  565,  565,  565,  565,  565,  565,  565,  571,
2685       571,  571,  571,  571,  571,  571,  571,  571,  578,  578,
2686
2687       578,  578,  578,  578,  578,  578,  578,  583,  583,  583,
2688       583,  583,  583,  583,  583,  583,  589,  589,  589,  589,
2689       589,  589,  589,  589,  589,  594,  594,  594,  594,  594,
2690       594,  594,  594,  594,  601,  601,  601,  601,  601,  601,
2691       601,  601,  601,  607,  607,  607,  607,  607,  607,  607,
2692       607,  607,  614,  614,  614,  614,  614,  614,  614,  614,
2693       614,  622,  622,  622,  622,  622,  622,  622,  622,  622,
2694       630,  630,  630,  630,  630,  630,  630,  630,  630,  634,
2695       634,  634,  634,  634,  634,  634,  634,  634,  640,  640,
2696       640,  640,  640,  640,  640,  640,  640,  644,  644,  644,
2697
2698       644,  644,  644,  644,  644,  644,  651,  651,  651,  651,
2699       651,  651,  651,  651,  651,  656,  656,  656,  656,  656,
2700       656,  656,  656,  656,  676,  676,  676,  706,  705,  704,
2701       676,  703,  703,  703,  702,  697, 3387,  703,  707,  707,
2702       707,  677,  675,  673,  707,  715,  715,  715,  667,  666,
2703       667,  715,  726,  726,  726,  666,  665,  664,  726,  732,
2704       732,  732, 3387, 3387, 3387,  732,  755,  755,  755, 3387,
2705      3387, 3387,  755,  762,  762,  762, 3387, 3387, 3387,  762,
2706       768,  768,  768, 3387, 3387, 3387,  768,  773,  773,  773,
2707      3387, 3387, 3387,  773,  778,  778,  778, 3387, 3387, 3387,
2708
2709       778,  788,  788,  788, 3387, 3387, 3387,  788,  792,  792,
2710       792, 3387, 3387, 3387,  792,  798,  798,  798, 3387, 3387,
2711      3387,  798,  817,  817,  817, 3387, 3387, 3387,  817,  827,
2712       827,  827, 3387, 3387, 3387,  827,  837,  837,  837, 3387,
2713      3387, 3387,  837,  842,  842,  842, 3387, 3387, 3387,  842,
2714       848,  848,  848, 3387, 3387, 3387,  848,  856,  856,  856,
2715      3387, 3387, 3387,  856,  863,  863,  863, 3387, 3387, 3387,
2716       863,  870,  870,  870, 3387, 3387, 3387,  870,  875,  875,
2717       875, 3387, 3387, 3387,  875,  880,  880,  880, 3387, 3387,
2718      3387,  880,  886,  886,  886, 3387, 3387, 3387,  886,  895,
2719
2720       895,  895, 3387, 3387, 3387,  895,  899,  899,  899, 3387,
2721      3387, 3387,  899,  903,  903,  903, 3387, 3387, 3387,  903,
2722       907,  907,  907,  907,  907,  907,  907, 3387,  907,  676,
2723       676,  676, 3387, 3387, 3387,  676,  922, 3387, 3387, 3387,
2724       922,  703,  703,  703, 3387, 3387, 3387,  703,  954, 3387,
2725      3387, 3387,  954,  707,  707,  707, 3387, 3387, 3387,  707,
2726       961, 3387, 3387, 3387,  961,  715,  715,  715, 3387, 3387,
2727      3387,  715,  973, 3387, 3387, 3387,  973,  726,  726,  726,
2728      3387, 3387, 3387,  726,  978, 3387, 3387, 3387,  978,  732,
2729       732,  732, 3387, 3387, 3387,  732,  983, 3387, 3387, 3387,
2730
2731       983,  755,  755,  755, 3387, 3387, 3387,  755, 1004, 3387,
2732      3387, 3387, 1004,  762,  762,  762, 3387, 3387, 3387,  762,
2733      1010, 3387, 3387, 3387, 1010,  768,  768,  768, 3387, 3387,
2734      3387,  768, 1014, 3387, 3387, 3387, 1014,  773,  773,  773,
2735      3387, 3387, 3387,  773, 1018, 3387, 3387, 3387, 1018,  778,
2736       778,  778, 3387, 3387, 3387,  778, 1028, 3387, 3387, 3387,
2737      1028,  788,  788,  788, 3387, 3387, 3387,  788, 1033, 3387,
2738      3387, 3387, 1033,  792,  792,  792, 3387, 3387, 3387,  792,
2739      1040, 3387, 3387, 3387, 1040,  798,  798,  798, 3387, 3387,
2740      3387,  798, 1060, 3387, 3387, 3387, 1060,  817,  817,  817,
2741
2742      3387, 3387, 3387,  817, 1071, 3387, 3387, 3387, 1071,  827,
2743       827,  827, 3387, 3387, 3387,  827, 1081, 3387, 3387, 3387,
2744      1081,  837,  837,  837, 3387, 3387, 3387,  837, 1086, 3387,
2745      3387, 3387, 1086,  842,  842,  842, 3387, 3387, 3387,  842,
2746      1092, 3387, 3387, 3387, 1092,  848,  848,  848, 3387, 3387,
2747      3387,  848, 1100, 3387, 3387, 3387, 1100,  856,  856,  856,
2748      3387, 3387, 3387,  856, 1105, 3387, 3387, 3387, 1105,  863,
2749       863,  863, 3387, 3387, 3387,  863, 1112, 3387, 3387, 3387,
2750      1112,  870,  870,  870, 3387, 3387, 3387,  870, 1117, 3387,
2751      3387, 3387, 1117,  875,  875,  875, 3387, 3387, 3387,  875,
2752
2753      1121, 3387, 3387, 3387, 1121,  880,  880,  880, 3387, 3387,
2754      3387,  880, 1126, 3387, 3387, 3387, 1126,  886,  886,  886,
2755      3387, 3387, 3387,  886, 1133, 3387, 3387, 3387, 1133,  895,
2756       895,  895, 3387, 3387, 3387,  895, 1137, 3387, 3387, 3387,
2757      1137,  899,  899,  899, 3387, 3387, 3387,  899, 1141, 3387,
2758      3387, 3387, 1141,  903,  903,  903, 3387, 3387, 3387,  903,
2759      1146, 3387, 3387, 3387, 1146, 1148, 1148, 1148, 1148, 1148,
2760      1148, 1148, 1148, 1148, 1154, 3387, 3387, 3387, 3387, 1154,
2761       676,  676,  676, 3387, 3387, 3387,  676, 1163, 1163, 1163,
2762      1163, 3387, 3387, 1163, 1163,  703,  703,  703, 3387, 3387,
2763
2764      3387,  703, 1198, 1198, 1198, 1198, 3387, 3387, 1198, 1198,
2765       707,  707,  707, 3387, 3387, 3387,  707, 1208, 1208, 1208,
2766      1208, 3387, 3387, 1208, 1208,  715,  715,  715, 3387, 3387,
2767      3387,  715, 1224, 1224, 1224, 1224, 3387, 3387, 1224, 1224,
2768       726,  726,  726, 3387, 3387, 3387,  726, 1231, 1231, 1231,
2769      1231, 3387, 3387, 1231, 1231,  732,  732,  732, 3387, 3387,
2770      3387,  732, 1239, 1239, 1239, 1239, 3387, 3387, 1239, 1239,
2771       755,  755,  755, 3387, 3387, 3387,  755, 1262, 1262, 1262,
2772      1262, 3387, 3387, 1262, 1262,  762,  762,  762, 3387, 3387,
2773      3387,  762, 1271, 1271, 1271, 1271, 3387, 3387, 1271, 1271,
2774
2775       768,  768,  768, 3387, 3387, 3387,  768, 1277, 1277, 1277,
2776      1277, 3387, 3387, 1277, 1277,  773,  773,  773, 3387, 3387,
2777      3387,  773, 1283, 1283, 1283, 1283, 3387, 3387, 1283, 1283,
2778       778,  778,  778, 3387, 3387, 3387,  778, 1296, 1296, 1296,
2779      1296, 3387, 3387, 1296, 1296,  788,  788,  788, 3387, 3387,
2780      3387,  788, 1303, 1303, 1303, 1303, 3387, 3387, 1303, 1303,
2781       792,  792,  792, 3387, 3387, 3387,  792, 1314, 1314, 1314,
2782      1314, 3387, 3387, 1314, 1314,  798,  798,  798, 3387, 3387,
2783      3387,  798, 1341, 1341, 1341, 1341, 3387, 3387, 1341, 1341,
2784       817,  817,  817,  817, 3387,  817, 3387,  817, 1357, 1357,
2785
2786      1357, 1357, 3387, 3387, 1357, 1357,  827,  827,  827, 3387,
2787      3387, 3387,  827, 1372, 1372, 1372, 1372, 3387, 3387, 1372,
2788      1372,  837,  837,  837, 3387, 3387, 3387,  837, 1380, 1380,
2789      1380, 1380, 3387, 3387, 1380, 1380,  842,  842,  842, 3387,
2790      3387, 3387,  842, 1389, 1389, 1389, 1389, 3387, 3387, 1389,
2791      1389,  848,  848,  848, 3387, 3387, 3387,  848, 1400, 1400,
2792      1400, 1400, 3387, 3387, 1400, 1400,  856,  856,  856,  856,
2793      3387,  856, 3387,  856, 1409, 1409, 1409, 1409, 3387, 3387,
2794      1409, 1409,  863,  863,  863,  863, 3387,  863, 3387,  863,
2795      1421, 1421, 1421, 1421, 3387, 3387, 1421, 1421,  870,  870,
2796
2797       870, 3387, 3387, 3387,  870, 1429, 1429, 1429, 1429, 3387,
2798      3387, 1429, 1429,  875,  875,  875,  875, 3387,  875, 3387,
2799       875, 1437, 1437, 1437, 1437, 3387, 3387, 1437, 1437,  880,
2800       880,  880,  880, 3387,  880, 3387,  880, 1447, 1447, 1447,
2801      1447, 3387, 3387, 1447, 1447,  886,  886,  886, 3387, 3387,
2802      3387,  886, 1456, 1456, 1456, 1456, 3387, 3387, 1456, 1456,
2803       895,  895,  895, 3387, 3387, 3387,  895, 1462, 1462, 1462,
2804      1462, 3387, 3387, 1462, 1462, 1469, 1469, 1469, 1469, 3387,
2805      3387, 1469, 1469,  903,  903,  903, 3387, 3387, 3387,  903,
2806      1477, 1477, 1477, 1477, 3387, 3387, 1477, 1477, 1148, 1148,
2807
2808      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1154, 3387, 1154,
2809      3387, 3387, 1154,  676,  676,  676, 3387, 3387, 3387,  676,
2810      1163, 1163, 1163, 1163, 3387, 3387, 1163, 1163,  703,  703,
2811       703,  703, 3387,  703, 3387,  703, 1198, 1198, 1198, 1198,
2812      3387, 3387, 1198, 1198,  707,  707,  707,  707, 3387,  707,
2813      3387,  707, 1208, 1208, 1208, 1208, 3387, 3387, 1208, 1208,
2814       715,  715,  715, 3387, 3387, 3387,  715, 1224, 1224, 1224,
2815      1224, 3387, 3387, 1224, 1224,  726,  726,  726, 3387, 3387,
2816      3387,  726, 1231, 1231, 1231, 1231, 3387, 3387, 1231, 1231,
2817       732,  732,  732, 3387, 3387, 3387,  732, 1239, 1239, 1239,
2818
2819      1239, 3387, 3387, 1239, 1239,  755,  755,  755, 3387, 3387,
2820      3387,  755, 1262, 1262, 1262, 1262, 3387, 3387, 1262, 1262,
2821       762,  762,  762, 3387, 3387, 3387,  762, 1271, 1271, 1271,
2822      1271, 3387, 3387, 1271, 1271,  768,  768,  768,  768, 3387,
2823       768, 3387,  768, 1277, 1277, 1277, 1277, 3387, 3387, 1277,
2824      1277,  773,  773,  773,  773, 3387,  773, 3387,  773, 1283,
2825      1283, 1283, 1283, 3387, 3387, 1283, 1283,  778,  778,  778,
2826      3387, 3387, 3387,  778, 1296, 1296, 1296, 1296, 3387, 3387,
2827      1296, 1296,  788,  788,  788,  788, 3387,  788, 3387,  788,
2828      1303, 1303, 1303, 1303, 3387, 3387, 1303, 1303,  792,  792,
2829
2830       792,  792, 3387,  792, 3387,  792, 1314, 1314, 1314, 1314,
2831      3387, 3387, 1314, 1314,  798,  798,  798, 3387, 3387, 3387,
2832       798, 1341, 1341, 1341, 1341, 3387, 3387, 1341, 1341,  817,
2833       817,  817, 3387, 3387, 3387,  817, 1357, 1357, 1357, 1357,
2834      3387, 3387, 1357, 1357,  827,  827,  827, 3387, 3387, 3387,
2835       827, 1372, 1372, 1372, 1372, 3387, 3387, 1372, 1372,  837,
2836       837,  837, 3387, 3387, 3387,  837, 1380, 1380, 1380, 1380,
2837      3387, 3387, 1380, 1380,  842,  842,  842, 3387, 3387, 3387,
2838       842, 1389, 1389, 1389, 1389, 3387, 3387, 1389, 1389,  848,
2839       848,  848, 3387, 3387, 3387,  848, 1400, 1400, 1400, 1400,
2840
2841      3387, 3387, 1400, 1400,  856,  856,  856, 3387, 3387, 3387,
2842       856, 1409, 1409, 1409, 1409, 3387, 3387, 1409, 1409,  863,
2843       863,  863, 3387, 3387, 3387,  863, 1421, 1421, 1421, 1421,
2844      3387, 3387, 1421, 1421,  870,  870,  870, 3387, 3387, 3387,
2845       870, 1429, 1429, 1429, 1429, 3387, 3387, 1429, 1429, 1437,
2846      1437, 1437, 1437, 3387, 3387, 1437, 1437,  880,  880,  880,
2847      3387, 3387, 3387,  880, 1447, 1447, 1447, 1447, 3387, 3387,
2848      1447, 1447,  886,  886,  886, 3387, 3387, 3387,  886, 1456,
2849      1456, 1456, 1456, 3387, 3387, 1456, 1456,  895,  895,  895,
2850      3387, 3387, 3387,  895, 1462, 1462, 1462, 1462, 3387, 3387,
2851
2852      1462, 1462, 1469, 1469, 1469, 1469, 3387, 3387, 1469, 1469,
2853       903,  903,  903, 3387, 3387, 3387,  903, 1477, 1477, 1477,
2854      1477, 3387, 3387, 1477, 1477, 1148, 1148, 1148, 1148, 1148,
2855      1148, 1148, 1148, 1148, 1693, 1693, 1693, 1693, 1693, 1693,
2856      1693, 1693, 1693,  676,  676,  676, 3387, 3387, 3387,  676,
2857      1163, 1163, 1163, 1163, 3387, 3387, 1163, 1163, 1198, 1198,
2858      1198, 1198, 3387, 3387, 1198, 1198,  707,  707,  707, 3387,
2859      3387, 3387,  707, 1208, 1208, 1208, 1208, 3387, 3387, 1208,
2860      1208,  715,  715,  715, 3387, 3387, 3387,  715, 1224, 1224,
2861      1224, 1224, 3387, 3387, 1224, 1224,  726,  726,  726, 3387,
2862
2863      3387, 3387,  726, 1231, 1231, 1231, 1231, 3387, 3387, 1231,
2864      1231,  732,  732,  732, 3387, 3387, 3387,  732,  755,  755,
2865       755, 3387, 3387, 3387,  755, 1262, 1262, 1262, 1262, 3387,
2866      3387, 1262, 1262,  762,  762,  762, 3387, 3387, 3387,  762,
2867      1271, 1271, 1271, 1271, 3387, 3387, 1271, 1271,  768,  768,
2868       768, 3387, 3387, 3387,  768, 1277, 1277, 1277, 1277, 3387,
2869      3387, 1277, 1277,  773,  773,  773, 3387, 3387, 3387,  773,
2870      1283, 1283, 1283, 1283, 3387, 3387, 1283, 1283,  778,  778,
2871       778, 3387, 3387, 3387,  778, 1296, 1296, 1296, 1296, 3387,
2872      3387, 1296, 1296, 1303, 1303, 1303, 1303, 3387, 3387, 1303,
2873
2874      1303, 1314, 1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,
2875       798,  798, 3387, 3387, 3387,  798, 1341, 1341, 1341, 1341,
2876      3387, 3387, 1341, 1341,  817,  817,  817,  817, 3387,  817,
2877      3387,  817, 1357, 1357, 1357, 1357, 3387, 3387, 1357, 1357,
2878       827,  827,  827, 3387, 3387, 3387,  827, 1372, 1372, 1372,
2879      1372, 3387, 3387, 1372, 1372,  837,  837,  837, 3387, 3387,
2880      3387,  837, 1380, 1380, 1380, 1380, 3387, 3387, 1380, 1380,
2881       842,  842,  842, 3387, 3387, 3387,  842, 1389, 1389, 1389,
2882      1389, 3387, 3387, 1389, 1389,  848,  848,  848, 3387, 3387,
2883      3387,  848, 1400, 1400, 1400, 1400, 3387, 3387, 1400, 1400,
2884
2885       856,  856,  856, 3387, 3387, 3387,  856, 1409, 1409, 1409,
2886      1409, 3387, 3387, 1409, 1409,  863,  863,  863, 3387, 3387,
2887      3387,  863, 1421, 1421, 1421, 1421, 3387, 3387, 1421, 1421,
2888       870,  870,  870, 3387, 3387, 3387,  870, 1429, 1429, 1429,
2889      1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437, 1437, 3387,
2890      3387, 1437, 1437,  880,  880,  880, 3387, 3387, 3387,  880,
2891      1447, 1447, 1447, 1447, 3387, 3387, 1447, 1447,  886,  886,
2892       886, 3387, 3387, 3387,  886, 1456, 1456, 1456, 1456, 3387,
2893      3387, 1456, 1456,  895,  895,  895,  895, 3387,  895, 3387,
2894       895, 1462, 1462, 1462, 1462, 3387, 3387, 1462, 1462, 1469,
2895
2896      1469, 1469, 1469, 3387, 3387, 1469, 1469,  903,  903,  903,
2897       903, 3387,  903, 3387,  903, 1477, 1477, 1477, 1477, 3387,
2898      3387, 1477, 1477, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2899      1148, 1148, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2900      1693,  676,  676,  676, 3387, 3387, 3387,  676, 1163, 1163,
2901      1163, 1163, 3387, 3387, 1163, 1163, 1198, 1198, 1198, 1198,
2902      3387, 3387, 1198, 1198,  707,  707,  707, 3387, 3387, 3387,
2903       707, 1208, 1208, 1208, 1208, 3387, 3387, 1208, 1208,  715,
2904       715,  715, 3387, 3387, 3387,  715, 1224, 1224, 1224, 1224,
2905      3387, 3387, 1224, 1224,  726,  726,  726, 3387, 3387, 3387,
2906
2907       726, 1231, 1231, 1231, 1231, 3387, 3387, 1231, 1231,  732,
2908       732,  732, 3387, 3387, 3387,  732,  755,  755,  755, 3387,
2909      3387, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387, 1262,
2910      1262,  762,  762,  762, 3387, 3387, 3387,  762, 1271, 1271,
2911      1271, 1271, 3387, 3387, 1271, 1271,  768,  768,  768, 3387,
2912      3387, 3387,  768, 1277, 1277, 1277, 1277, 3387, 3387, 1277,
2913      1277,  773,  773,  773,  773, 3387,  773, 3387,  773, 1283,
2914      1283, 1283, 1283, 3387, 3387, 1283, 1283,  778,  778,  778,
2915      3387, 3387, 3387,  778, 1296, 1296, 1296, 1296, 3387, 3387,
2916      1296, 1296, 1314, 1314, 1314, 1314, 3387, 3387, 1314, 1314,
2917
2918       798,  798,  798, 3387, 3387, 3387,  798, 1341, 1341, 1341,
2919      1341, 3387, 3387, 1341, 1341,  817,  817,  817,  817, 3387,
2920       817, 3387,  817, 1357, 1357, 1357, 1357, 3387, 3387, 1357,
2921      1357,  827,  827,  827, 3387, 3387, 3387,  827, 1372, 1372,
2922      1372, 1372, 3387, 3387, 1372, 1372,  837,  837,  837, 3387,
2923      3387, 3387,  837, 1380, 1380, 1380, 1380, 3387, 3387, 1380,
2924      1380,  842,  842,  842, 3387, 3387, 3387,  842, 1389, 1389,
2925      1389, 1389, 3387, 3387, 1389, 1389,  848,  848,  848, 3387,
2926      3387, 3387,  848, 1400, 1400, 1400, 1400, 3387, 3387, 1400,
2927      1400,  856,  856,  856, 3387, 3387, 3387,  856, 1409, 1409,
2928
2929      1409, 1409, 3387, 3387, 1409, 1409,  863,  863,  863,  863,
2930      3387,  863, 3387,  863, 1421, 1421, 1421, 1421, 3387, 3387,
2931      1421, 1421,  870,  870,  870, 3387, 3387, 3387,  870, 1429,
2932      1429, 1429, 1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437,
2933      1437, 3387, 3387, 1437, 1437,  880,  880,  880,  880, 3387,
2934       880, 3387,  880, 1447, 1447, 1447, 1447, 3387, 3387, 1447,
2935      1447,  886,  886,  886, 3387, 3387, 3387,  886, 1456, 1456,
2936      1456, 1456, 3387, 3387, 1456, 1456, 1462, 1462, 1462, 1462,
2937      3387, 3387, 1462, 1462, 1469, 1469, 1469, 1469, 3387, 3387,
2938      1469, 1469, 1477, 1477, 1477, 1477, 3387, 3387, 1477, 1477,
2939
2940      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1693,
2941      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,  676,  676,
2942       676,  676, 3387,  676, 3387,  676, 1163, 1163, 1163, 1163,
2943      3387, 3387, 1163, 1163, 1198, 1198, 1198, 1198, 3387, 3387,
2944      1198, 1198,  707,  707,  707, 3387, 3387, 3387,  707, 1208,
2945      1208, 1208, 1208, 3387, 3387, 1208, 1208,  715,  715,  715,
2946      3387, 3387, 3387,  715, 1224, 1224, 1224, 1224, 3387, 3387,
2947      1224, 1224,  726,  726,  726,  726, 3387,  726, 3387,  726,
2948      1231, 1231, 1231, 1231, 3387, 3387, 1231, 1231,  732,  732,
2949       732,  732, 3387,  732, 3387,  732,  755,  755,  755,  755,
2950
2951      3387,  755, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387,
2952      1262, 1262,  762,  762,  762,  762, 3387,  762, 3387,  762,
2953      1271, 1271, 1271, 1271, 3387, 3387, 1271, 1271,  768,  768,
2954       768, 3387, 3387, 3387,  768, 1277, 1277, 1277, 1277, 3387,
2955      3387, 1277, 1277, 1283, 1283, 1283, 1283, 3387, 3387, 1283,
2956      1283,  778,  778,  778, 3387, 3387, 3387,  778, 1314, 1314,
2957      1314, 1314, 3387, 3387, 1314, 1314,  798,  798,  798, 3387,
2958      3387, 3387,  798, 1341, 1341, 1341, 1341, 3387, 3387, 1341,
2959      1341,  817,  817,  817,  817, 3387,  817, 3387,  817, 1357,
2960      1357, 1357, 1357, 3387, 3387, 1357, 1357,  827,  827,  827,
2961
2962      3387, 3387, 3387,  827,  837,  837,  837, 3387, 3387, 3387,
2963       837, 1380, 1380, 1380, 1380, 3387, 3387, 1380, 1380,  842,
2964       842,  842, 3387, 3387, 3387,  842, 1389, 1389, 1389, 1389,
2965      3387, 3387, 1389, 1389,  848,  848,  848, 3387, 3387, 3387,
2966       848,  856,  856,  856, 3387, 3387, 3387,  856, 1409, 1409,
2967      1409, 1409, 3387, 3387, 1409, 1409,  863,  863,  863, 3387,
2968      3387, 3387,  863, 1421, 1421, 1421, 1421, 3387, 3387, 1421,
2969      1421,  870,  870,  870, 3387, 3387, 3387,  870, 1429, 1429,
2970      1429, 1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437, 1437,
2971      3387, 3387, 1437, 1437, 1447, 1447, 1447, 1447, 3387, 3387,
2972
2973      1447, 1447,  886,  886,  886, 3387, 3387, 3387,  886, 1456,
2974      1456, 1456, 1456, 3387, 3387, 1456, 1456, 1462, 1462, 1462,
2975      1462, 3387, 3387, 1462, 1462, 1469, 1469, 1469, 1469, 3387,
2976      3387, 1469, 1469, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2977      1148, 1148, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2978      1693, 1163, 1163, 1163, 1163, 3387, 3387, 1163, 1163, 1198,
2979      1198, 1198, 1198, 3387, 3387, 1198, 1198,  707,  707,  707,
2980      3387, 3387, 3387,  707,  715,  715,  715, 3387, 3387, 3387,
2981       715, 1224, 1224, 1224, 1224, 3387, 3387, 1224, 1224, 1231,
2982      1231, 1231, 1231, 3387, 3387, 1231, 1231,  755,  755,  755,
2983
2984      3387, 3387, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387,
2985      1262, 1262,  762,  762,  762, 3387, 3387, 3387,  762, 1271,
2986      1271, 1271, 1271, 3387, 3387, 1271, 1271,  768,  768,  768,
2987      3387, 3387, 3387,  768, 1283, 1283, 1283, 1283, 3387, 3387,
2988      1283, 1283,  778,  778,  778, 3387, 3387, 3387,  778, 1314,
2989      1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,  798,  798,
2990      3387, 3387, 3387,  798, 1341, 1341, 1341, 1341, 3387, 3387,
2991      1341, 1341, 1357, 1357, 1357, 1357, 3387, 3387, 1357, 1357,
2992       827,  827,  827, 3387, 3387, 3387,  827,  837,  837,  837,
2993      3387, 3387, 3387,  837, 1380, 1380, 1380, 1380, 3387, 3387,
2994
2995      1380, 1380,  842,  842,  842, 3387, 3387, 3387,  842, 1389,
2996      1389, 1389, 1389, 3387, 3387, 1389, 1389,  848,  848,  848,
2997      3387, 3387, 3387,  848,  856,  856,  856, 3387, 3387, 3387,
2998       856,  863,  863,  863, 3387, 3387, 3387,  863, 1421, 1421,
2999      1421, 1421, 3387, 3387, 1421, 1421,  870,  870,  870, 3387,
3000      3387, 3387,  870, 1429, 1429, 1429, 1429, 3387, 3387, 1429,
3001      1429, 1437, 1437, 1437, 1437, 3387, 3387, 1437, 1437, 1447,
3002      1447, 1447, 1447, 3387, 3387, 1447, 1447,  886,  886,  886,
3003       886, 3387,  886, 3387,  886, 1456, 1456, 1456, 1456, 3387,
3004      3387, 1456, 1456, 1462, 1462, 1462, 1462, 3387, 3387, 1462,
3005
3006      1462, 1469, 1469, 1469, 1469, 3387, 3387, 1469, 1469, 1148,
3007      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1693, 1693,
3008      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1163, 1163, 1163,
3009      1163, 3387, 3387, 1163, 1163, 1198, 1198, 1198, 1198, 3387,
3010      3387, 1198, 1198,  707,  707,  707, 3387, 3387, 3387,  707,
3011       715,  715,  715,  715, 3387,  715, 3387,  715, 1231, 1231,
3012      1231, 1231, 3387, 3387, 1231, 1231,  755,  755,  755, 3387,
3013      3387, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387, 1262,
3014      1262,  762,  762,  762, 3387, 3387, 3387,  762, 1271, 1271,
3015      1271, 1271, 3387, 3387, 1271, 1271,  768,  768,  768,  768,
3016
3017      3387,  768, 3387,  768, 1283, 1283, 1283, 1283, 3387, 3387,
3018      1283, 1283,  778,  778,  778, 3387, 3387, 3387,  778, 1314,
3019      1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,  798,  798,
3020      3387, 3387, 3387,  798, 1341, 1341, 1341, 1341, 3387, 3387,
3021      1341, 1341, 1357, 1357, 1357, 1357, 3387, 3387, 1357, 1357,
3022       827,  827,  827, 3387, 3387, 3387,  827,  837,  837,  837,
3023      3387, 3387, 3387,  837,  842,  842,  842,  842, 3387,  842,
3024      3387,  842, 1389, 1389, 1389, 1389, 3387, 3387, 1389, 1389,
3025       848,  848,  848,  848, 3387,  848, 3387,  848,  856,  856,
3026       856, 3387, 3387, 3387,  856,  863,  863,  863, 3387, 3387,
3027
3028      3387,  863, 1421, 1421, 1421, 1421, 3387, 3387, 1421, 1421,
3029       870,  870,  870,  870, 3387,  870, 3387,  870, 1429, 1429,
3030      1429, 1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437, 1437,
3031      3387, 3387, 1437, 1437, 1447, 1447, 1447, 1447, 3387, 3387,
3032      1447, 1447,  886,  886,  886,  886, 3387,  886, 3387,  886,
3033      1456, 1456, 1456, 1456, 3387, 3387, 1456, 1456, 1462, 1462,
3034      1462, 1462, 3387, 3387, 1462, 1462, 1148, 1148, 1148, 1148,
3035      1148, 1148, 1148, 1148, 1148, 1693, 1693, 1693, 1693, 1693,
3036      1693, 1693, 1693, 1693, 1163, 1163, 1163, 1163, 3387, 3387,
3037      1163, 1163,  707,  707,  707, 3387, 3387, 3387,  707,  715,
3038
3039       715,  715, 3387, 3387, 3387,  715, 1231, 1231, 1231, 1231,
3040      3387, 3387, 1231, 1231,  755,  755,  755, 3387, 3387, 3387,
3041       755, 1262, 1262, 1262, 1262, 3387, 3387, 1262, 1262,  762,
3042       762,  762, 3387, 3387, 3387,  762, 1283, 1283, 1283, 1283,
3043      3387, 3387, 1283, 1283,  778,  778,  778, 3387, 3387, 3387,
3044       778, 1314, 1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,
3045       798,  798, 3387, 3387, 3387,  798,  827,  827,  827, 3387,
3046      3387, 3387,  827,  837,  837,  837, 3387, 3387, 3387,  837,
3047      2994, 2994, 2994, 2994, 2994, 2994, 2994, 2994, 2994, 2995,
3048      2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 3054, 3054,
3049
3050      3054, 3054, 3054, 3054, 3054, 3054, 3054, 3057, 3057, 3057,
3051      3057, 3057, 3057, 3057, 3057, 3057, 3098, 3098, 3098, 3098,
3052      3098, 3098, 3098, 3098, 3098, 3100, 3100, 3100, 3100, 3100,
3053      3100, 3100, 3100, 3100,  259, 3387, 3387, 3387, 3387, 3387,
3054      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3055      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3056      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3057      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3058      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3059      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3060
3061      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387
3062     } ;
3063
3064 static yyconst flex_int16_t yy_chk[12410] =
3065     {   0,
3066         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3067         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3068         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3069         8,    8,    8,  264,   11,   13,   13,   12,   14,   14,
3070        13,   13,  313,   14,   14,  265,    8,   17,   17,  264,
3071        13,   15,   15,   14,   15,  268,   15,   16,   16,  367,
3072        16,  265,   16,   18,   18,    0,   15,   19,   19,   19,
3073       544,  268,   16,   20,   20,   20,   23,   23,   23,   24,
3074        24,   24,  544,   19,   25,   25,   25,  367, 1513,   20,
3075       374,   17,   23, 1074,  313,   24,  262,  262,  262, 1074,
3076
3077        25,  263,  263,  263,  267,  267,  267,   18,   21,   21,
3078        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3079        21,   21,   21,  297,   21,   21,   21,   21,   21,   26,
3080        26,   26,   27,   27,   27,   28,   28,   28,  297,   29,
3081        29,   29,   30,   30,   30,   26,  374,  473,   27,  291,
3082       473,   28,  681,   21,   21,   29,  307,  286,   30,   31,
3083        31,   31,  288,  288,  288,  291,  295,  295,  295,  304,
3084       304,  304,  307,  286,  363,   31,  681,   21,   22,   22,
3085        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3086        22,   22,   22, 1514,   22,   22,   22,   22,   22,   32,
3087
3088        32,   32,   33,   33,   33,   34,   34,   34,  278,   35,
3089        35,   35,   36,   36,   36,   32,  286,  366,   33,  490,
3090       737,   34,  490,   22,   22,   35,  363,  366,   36,   37,
3091        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3092        40,   41,   41,   41,  737,   37,  556,   22,   38,  318,
3093       278,   39,  469,  556,   40,  366,  278,   41,   42,   42,
3094        42,  278,  311,  311,  311,  318,  278,  315,  315,  315,
3095       326,  326,  326,  469,   42,   43,   43,   43,   43,   43,
3096        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3097       335,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3098
3099        46,   46,   47,   47,   47,  335,   48,   48,   48,   49,
3100        49,   49,   45,  433,  561,   46, 1516,  433,   47,  333,
3101        43,   43,   48,  333,  387,   49,  299,  333,   43,   44,
3102        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3103        44,   44,   44,   44,  329,   44,   44,   44,   44,   44,
3104        50,   50,   50,   51,   51,   51,   52,   52,   52,  474,
3105       329,  574,   55,   55,  570,  299,   50,   55,  300,   51,
3106       561,  570,   52,  474,   44,   44,  387,   55,  299,  388,
3107       299, 1517,   44,   53,   53,   53,   53,   53,   53,   53,
3108        53,   53,   53,   53,   53,   53,   53,   53, 1523,   53,
3109
3110        53,   53,   53,   53, 1524,  343,   55,  300,   59,   59,
3111        59,   60,   60,   60,   63,   63,   63,  574,   56,   56,
3112       300,  343,  300,   56,   59,  323,  472,   60,   53,   53,
3113        63,  388,  323,   56,  472,  669,   53,  400,  669,   53,
3114       472,  323,  337,  337,  337, 1526,   53,   54,   54,   54,
3115        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3116        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3117        64,   67,   67,   67,   68,   68,   68, 1535,   69,   69,
3118        69,   70,   70,   70,   64,  355,  373,   67,  338,  400,
3119        68,  560,   54,   54,   69,  338, 1182,   70, 1538,  560,
3120
3121        54,  355,  373,   54,  338,  340,  340,  340,  401, 1182,
3122        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3123        57,   57,   57,   57,   57,   57, 1540,   57,   57,   57,
3124        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3125        73,  439,   74,   74,   74,   75,   75,   75,   71, 1545,
3126       379,   72,  350,  393,   73, 1548,   57,   57,   74,  350,
3127       401,   75,  349,  349,  349,   57,  379,   57,  350,  393,
3128       437,   57,  352,  352,  352,  479,   57,   57,   58,   58,
3129        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3130        58,   58,   58,  439,   58,   58,   58,   58,   58,   76,
3131
3132        76,   76,   77,   77,   77,   78,   78,   78,  625,   79,
3133        79,   79,   80,   80,   80,   76,  365, 1549,   77,  437,
3134       625,   78,  437,   58,   58,   79,  365,  479,   80,  360,
3135       360,  360,   58,  365,   58,  376,  376,  376,   58,  386,
3136       386,  386, 1550,   58,   58,   61,   61,   61,   61,   61,
3137        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3138       371,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3139        82,   82,   83,   83,   83,  711,   84,   84,   84,   85,
3140        85,   85,   81, 1555, 1556,   82,  660,  597,   83,  371,
3141        61,   61,   84,  371,  371,   85,  610,   61,  390,  390,
3142
3143       390,  660,  371,   61,  371,  399,  399,  399,  403,  403,
3144       403,  711,   61,   62,   62,   62,   62,   62,   62,   62,
3145        62,   62,   62,   62,   62,   62,   62,   62, 1557,   62,
3146        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3147        88,   88,   88,  597,   89,   89,   89,   90,   90,   90,
3148        86,  406,  610,   87, 1339,  746,   88,  412,   62,   62,
3149        89,  417,  428,   90,  412,   62, 1339,  406,  411,  411,
3150       411,   62,  747,  412,  414,  414,  414,  417,  428,  746,
3151        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3152        65,   65,   65,   65,   65,   65,  747,   65,   65,   65,
3153
3154        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3155        93, 1558,   94,   94,   94,   95,   95,   95,   91,  444,
3156       780,   92,  423,  780,   93,  480,   65,   65,   94,  423,
3157      1559,   95,  422,  422,  422,  444,  438,   65,  423,  425,
3158       425,  425,  436,  436,  436, 1560,   65,   66,   66,   66,
3159        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3160        66,   66,  748,   66,   66,   66,   66,   66,   96,   96,
3161        96,   97,   97,   97,   98,   98,   98,  480,   99,   99,
3162        99,  100,  100,  100,   96,  438,  748,   97,  438,  749,
3163        98, 1561,   66,   66,   99,  449, 1566,  100,  101,  101,
3164
3165       101, 1567,  449,   66,  102,  102,  102,  441,  441,  441,
3166       547,  449,   66,  749,  101,  448,  448,  448,  372, 1571,
3167       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3168       103,  103,  103,  103,  103,  103,  753,  103,  103,  103,
3169       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3170       107,  687,  108,  108,  108,  687,  372,  454,  105,  786,
3171       753,  106,  547,  786,  107,  369,  103,  103,  108,  461,
3172       466,  103,  372,  454,  548,  369,  461,  103,  451,  451,
3173       451,  103,  460,  460,  460,  461,  466,  103,  104,  104,
3174       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3175
3176       104,  104,  104,  369,  104,  104,  104,  104,  104,  109,
3177       109,  109,  110,  110,  110,  111,  111,  111,  626,  112,
3178       112,  112,  463,  463,  463,  109,  548,  475,  110, 1575,
3179      1577,  111, 1578,  104,  104,  112,  485,  500,  104,  475,
3180       475,  478,  478,  478,  104,  482,  482,  482,  104,  494,
3181       494,  494,  485,  500,  104,  113,  113,  113,  113,  113,
3182       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3183       626,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3184       116,  116,  117,  117,  117,  682,  118,  118,  118, 1151,
3185       495, 1582,  115, 1151, 1585,  116,  682,  495,  117,  682,
3186
3187       113,  113,  118,  511,  516,  113,  495,  497,  497,  497,
3188       511,  113,  510,  510,  510,  513,  513,  513, 1480,  511,
3189       516, 1586,  113,  114,  114,  114,  114,  114,  114,  114,
3190       114,  114,  114,  114,  114,  114,  114,  114, 1480,  114,
3191       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3192       121,  121,  121,  689,  122,  122,  122,  521,  521,  521,
3193       119,  527,  539,  120,  522, 1593,  121,  689,  114,  114,
3194       122,  522, 1595,  114,  524,  524,  524,  527,  539,  114,
3195       522,  533,  533,  533,  536,  536,  536,  546,  546,  546,
3196       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3197
3198       123,  123,  123,  123,  123,  123, 1596,  123,  123,  123,
3199       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3200       129,  646,  130,  130,  130,  133,  133,  133,  125,  553,
3201       566,  126,  534, 1602,  129, 1603,  123,  123,  130,  534,
3202       573,  133,  550,  550,  550,  553,  566,  647,  534,  558,
3203       558,  558,  123, 1605,  559, 1606, 1607,  123,  124,  124,
3204       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
3205       124,  124,  124,  646,  124,  124,  124,  124,  124,  134,
3206       134,  134,  135,  135,  135,  136,  136,  136,  573,  137,
3207       137,  137,  138,  138,  138,  134,  573, 1608,  135,  647,
3208
3209      1609,  136,  559,  124,  124,  137,  559,  579,  138,  563,
3210       563,  563,  572,  572,  572,  576,  576,  576, 1610,  124,
3211       584,  584,  584,  579,  124,  127,  127,  127,  127,  127,
3212       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3213      1611,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3214       140,  140,  143,  143,  143,  693,  144,  144,  144,  147,
3215       147,  147,  139,  590,  602,  140,  585,  742,  143,  693,
3216       127,  127,  144,  585,  615,  147,  587,  587,  587,  590,
3217       602,  742,  585,  595,  595,  595,  127, 1612, 1622,  596,
3218       615, 1624,  127,  128,  128,  128,  128,  128,  128,  128,
3219
3220       128,  128,  128,  128,  128,  128,  128,  128, 1625,  128,
3221       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3222       152,  152,  152, 1630,  153,  153,  153,  154,  154,  154,
3223       148, 1194, 1632,  151, 1634, 1635,  152,  596,  128,  128,
3224       153,  692,  631,  154, 1194,  596,  599,  599,  599,  608,
3225       608,  608,  692, 1637,  128,  692, 1638,  609,  631, 1639,
3226       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3227       131,  131,  131,  131,  131,  131, 1648,  131,  131,  131,
3228       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3229       157, 1654,  158,  158,  158,  612,  612,  612,  155, 1248,
3230
3231      1655,  156, 1659, 1661,  157,  609,  131,  131,  158,  131,
3232       641,  131, 1248,  609,  623,  623,  623,  131,  628,  628,
3233       628,  635,  635,  635,  131,  624,  641,  131,  132,  132,
3234       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3235       132,  132,  132, 1673,  132,  132,  132,  132,  132,  161,
3236       161,  161,  162,  162,  162,  165,  165,  165,  695,  166,
3237       166,  166,  624,  636, 1674,  161, 1679,  652,  162,  695,
3238       636,  165,  695,  132,  132,  166,  132,  624,  132,  636,
3239       638,  638,  638,  652,  132,  645,  645,  645,  649,  649,
3240       649,  132, 1682, 1683,  132,  141,  141,  141,  141,  141,
3241
3242       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3243      1684,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3244       170,  170,  173,  173,  173,  750,  174,  174,  174,  177,
3245       177,  177,  169, 1686, 1693,  170,  658, 1696,  173,  750,
3246       141,  141,  174,  658, 1699,  177,  657,  657,  657,  659,
3247       659,  659,  658,  668,  668,  668,  141,  142,  142,  142,
3248       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3249       142,  142, 1700,  142,  142,  142,  142,  142,  178,  178,
3250       178,  179,  179,  179,  180,  180,  180, 1702,  181,  181,
3251       181,  182,  182,  182,  178,  699, 1703,  179,  688,  751,
3252
3253       180,  697,  142,  142,  181,  688,  699,  182,  697,  699,
3254       751,  688,  668,  751,  697, 1166, 1166, 1166,  142,  145,
3255       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3256       145,  145,  145,  145, 1704,  145,  145,  145,  145,  145,
3257       183,  183,  183,  184,  184,  184,  187,  187,  187,  752,
3258       188,  188,  188,  189,  189,  189,  183, 1705, 1692,  184,
3259       700,  701,  187,  752,  145,  145,  188,  700,  701,  189,
3260       145,  741,  744,  700,  701,  145, 1706, 1707,  741,  744,
3261      1174, 1174, 1174, 1692,  741,  744, 1708,  145,  146,  146,
3262       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3263
3264       146,  146,  146, 1710,  146,  146,  146,  146,  146,  190,
3265       190,  190,  191,  191,  191,  192,  192,  192, 1711,  193,
3266       193,  193,  194,  194,  194,  190,  909, 1713,  191, 1715,
3267      1717,  192, 1718,  146,  146,  193, 1720, 1722,  194,  146,
3268      1724, 1725,  909, 1726,  146,  912,  912,  912, 1727,  912,
3269      1189, 1189, 1189, 1245, 1245, 1245,  146,  149,  149,  149,
3270       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3271       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3272       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3273       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3274
3275       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3276       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3277       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3278       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3279       159,  159,  159,  159,  159,  159, 1728,  159,  159,  159,
3280       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3281       199, 1730,  200,  200,  200,  201,  201,  201,  197, 1043,
3282      1739,  198, 1740, 1742,  199, 1746,  159,  159,  200, 1043,
3283       159,  201,  924,  924,  924, 1750, 1043,  159, 1752, 1759,
3284       159,  946,  946,  946,  159, 1760,  159,  159,  160,  160,
3285
3286       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3287       160,  160,  160, 1761,  160,  160,  160,  160,  160,  202,
3288       202,  202,  203,  203,  203,  204,  204,  204, 1762,  207,
3289       207,  207,  208,  208,  208,  202, 1764, 1768,  203, 1769,
3290      1770,  204, 1773,  160,  160,  207,  924,  160,  208,  958,
3291       958,  958, 1780,  958,  160,  946,  958,  160, 1496, 1496,
3292      1496,  160, 1786,  160,  160,  163,  163,  163,  163,  163,
3293       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3294      1793,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3295       212,  212,  213,  213,  213, 1794,  214,  214,  214,  709,
3296
3297       709,  709,  211, 1803, 1806,  212, 1816, 1820,  213, 1824,
3298       163,  163,  214,  163,  163,  163,  709, 1825,  966,  966,
3299       966,  163,  966, 1829,  163,  966, 1830, 1831,  163, 1832,
3300      1834,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3301       164,  164,  164,  164,  164,  164,  164, 1835,  164,  164,
3302       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3303       217,  217, 1843,  218,  218,  218,  717,  717,  717,  215,
3304      1847, 1850,  216, 1852, 1854,  217, 1855,  164,  164,  218,
3305       164,  164,  164,  717, 1857,  981,  981,  981,  164,  981,
3306      1858,  164,  981, 1859, 1862,  164, 1864, 1866,  164,  167,
3307
3308       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3309       167,  167,  167,  167, 1871,  167,  167,  167,  167,  167,
3310       221,  221,  221,  222,  222,  222,  223,  223,  223, 1877,
3311       224,  224,  224,  733,  733,  733,  221, 1881, 1882,  222,
3312      1883, 1885,  223, 1897,  167,  167,  224, 1900, 1901,  167,
3313       733, 1497, 1497, 1497, 1893,  167,  168,  168,  168,  168,
3314       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3315       168, 1893,  168,  168,  168,  168,  168,  225,  225,  225,
3316       226,  226,  226,  227,  227,  227, 1894,  228,  228,  228,
3317       757,  757,  757,  225, 1902, 1903,  226, 1497, 1904,  227,
3318
3319      1905,  168,  168,  228, 1907, 1908,  168,  757, 1499, 1499,
3320      1499, 1903,  168,  171,  171,  171,  171,  171,  171,  171,
3321       171,  171,  171,  171,  171,  171,  171,  171, 1894,  171,
3322       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3323       233,  233,  233, 1909,  234,  234,  234,  235,  235,  235,
3324       231, 1911, 1912,  232, 1499, 1895,  233, 1913,  171,  171,
3325       234, 1917,  171,  235,  985,  985,  985, 1919, 1922,  171,
3326      1923, 1924,  171,  172,  172,  172,  172,  172,  172,  172,
3327       172,  172,  172,  172,  172,  172,  172,  172, 1895,  172,
3328       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3329
3330       238,  238,  238, 1925,  241,  241,  241,  242,  242,  242,
3331       236, 1927, 1929,  237, 1930, 1932,  238, 1934,  172,  172,
3332       241, 1937,  172,  242,  994,  994,  994, 1938,  985,  172,
3333      1940, 1941,  172,  175,  175,  175,  175,  175,  175,  175,
3334       175,  175,  175,  175,  175,  175,  175,  175, 1942,  175,
3335       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3336       247,  247,  247, 1939,  248,  248,  248,  249,  249,  249,
3337       245, 1939, 1944,  246, 1950, 1951,  247, 1953,  175,  175,
3338       248, 1956,  175,  249, 1502, 1502, 1502, 1968,  994,  175,
3339      1973, 1974,  175, 1505, 1505, 1505, 1515, 1515, 1515,  175,
3340
3341       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3342       176,  176,  176,  176,  176, 1981,  176,  176,  176,  176,
3343       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3344      1982,  255,  255,  255,  256,  256,  256,  250, 1754, 1952,
3345       251, 1983, 1957,  252, 1754,  176,  176,  255, 1754,  176,
3346       256,  298, 1754,  364,  370, 1952,  176, 1943, 1957,  176,
3347      1987,  298, 1989,  364, 1995, 1943,  176,  185,  185,  185,
3348       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3349       185,  185,  370,  185,  185,  185,  185,  185, 1958, 1996,
3350       298,  364, 1997,  764,  764,  764,  298, 2004,  370,  781,
3351
3352       781,  781, 2005,  298, 1958,  364, 2006,  298, 2009,  364,
3353       764, 2010,  185,  185, 2021, 2027,  781, 2031,  185, 1001,
3354      1001, 1001, 2034, 1001, 2036, 2039, 1001, 1551, 1551, 1551,
3355      1552, 1552, 1552,  185,  186,  186,  186,  186,  186,  186,
3356       186,  186,  186,  186,  186,  186,  186,  186,  186, 2041,
3357       186,  186,  186,  186,  186,  794,  794,  794,  795,  795,
3358       795,  801,  801,  801,  803,  803,  803,  818,  818,  818,
3359      2043, 2044,  794, 2045, 2048,  795, 1552, 2050,  801,  186,
3360       186,  803, 2055, 2057,  818,  186, 1008, 1008, 1008, 2065,
3361      1008, 2066, 2067, 1008, 1553, 1553, 1553, 1554, 1554, 1554,
3362
3363       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3364       195,  195,  195,  195,  195,  195, 2068,  195,  195,  195,
3365       195,  195,  819,  819,  819,  831,  831,  831,  839,  839,
3366       839,  844,  844,  844,  850,  850,  850, 2070, 2081,  819,
3367      1553, 2084,  831, 2089, 2081,  839,  195,  195,  844, 2090,
3368      2091,  850,  195, 2092, 2096,  195, 1024, 1024, 1024, 2083,
3369      1024, 2098, 2099, 1024, 1650, 1650, 1650,  195,  196,  196,
3370       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3371       196,  196,  196, 2100,  196,  196,  196,  196,  196,  872,
3372       872,  872,  900,  900,  900,  904,  904,  904,  922,  922,
3373
3374       922, 1755,  923,  923,  923, 2083,  872, 1755, 2105,  900,
3375      1650, 1755,  904,  196,  196, 1755,  922, 2112, 2114,  196,
3376       923, 2115,  196, 1037, 1037, 1037, 2118, 1037, 2082, 2121,
3377      1037, 1709, 1709, 1709,  196,  205,  205,  205,  205,  205,
3378       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3379      2125,  205,  205,  205,  205,  205,  954,  954,  954, 2082,
3380       923,  955,  955,  955, 2126,  957,  957,  957, 2127,  961,
3381       961,  961, 2128, 2129,  954, 1712, 1712, 1712, 2130,  955,
3382       205,  205,  957, 1714, 1714, 1714,  205,  961, 1716, 1716,
3383      1716,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3384
3385       206,  206,  206,  206,  206,  206,  206, 2131,  206,  206,
3386       206,  206,  206,  962,  962,  962,  965,  965,  965, 2132,
3387      2133,  955,  967,  967,  967,  969,  969,  969,  973,  973,
3388       973,  962, 2134,  965, 1719, 1719, 1719,  206,  206,  967,
3389      2139, 2140,  969,  206, 2141, 2142,  973, 2147,  206,  209,
3390       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3391       209,  209,  209,  209, 2151,  209,  209,  209,  209,  209,
3392       978,  978,  978,  979,  979,  979, 2156,  962, 2163,  980,
3393       980,  980, 2164, 2170,  974,  974,  974, 2171,  978, 2173,
3394      2177,  979, 2178, 2168,  209,  209,  980, 1000, 1000, 1000,
3395
3396       209, 2168,  974, 1039, 1039, 1039, 2179, 1039, 2185, 2186,
3397      1039, 1721, 1721, 1721, 1000,  209,  210,  210,  210,  210,
3398       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3399       210,  974,  210,  210,  210,  210,  210,  979,  983,  983,
3400       983,  984,  984,  984, 2187, 1004, 1004, 1004, 1005, 1005,
3401      1005, 1007, 1007, 1007, 2191, 2203,  983, 2169, 2207,  984,
3402      2208,  210,  210, 1004, 2209, 2169, 1005,  210, 1007, 1045,
3403      1045, 1045, 2211, 1045, 2215, 1721, 1045, 2218,  984, 1729,
3404      1729, 1729,  210,  219,  219,  219,  219,  219,  219,  219,
3405       219,  219,  219,  219,  219,  219,  219,  219, 2219,  219,
3406
3407       219,  219,  219,  219, 1010, 1010, 1010, 1011, 1011, 1011,
3408      1023, 1023, 1023, 2220, 1005, 1014, 1014, 1014, 1015, 1015,
3409      1015, 2220, 1010, 2222, 2223, 1011, 2226, 1023,  219,  219,
3410      1018, 1018, 1018, 1014,  219, 2221, 1015,  219, 1048, 1048,
3411      1048, 2233, 1048, 2221, 2235, 1048, 2250, 2254, 1018,  219,
3412       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3413       220,  220,  220,  220,  220, 2255,  220,  220,  220,  220,
3414       220, 2264, 2265, 1011, 1019, 1019, 1019, 2268, 2275, 1015,
3415      1028, 1028, 1028, 2276, 1029, 1029, 1029, 1033, 1033, 1033,
3416      2254, 2281, 1019, 2283, 2295,  220,  220, 2296, 1028, 2297,
3417
3418      2298,  220, 1029, 2299,  220, 1033, 1063, 1063, 1063, 2300,
3419      1063, 2301, 2255, 1063, 2302, 2303,  220,  229,  229,  229,
3420       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3421       229,  229, 2304,  229,  229,  229,  229,  229, 2311, 1019,
3422      1036, 1036, 1036, 2312, 2313, 1029, 1034, 1034, 1034, 1038,
3423      1038, 1038, 2315, 1040, 1040, 1040, 2319, 1036, 1041, 1041,
3424      1041, 2324,  229,  229, 1034, 2328, 1038, 1723, 1723, 1723,
3425       229, 1040,  229, 2329, 2330,  229, 1041, 2331, 2332,  229,
3426      1763, 1763, 1763,  229,  230,  230,  230,  230,  230,  230,
3427       230,  230,  230,  230,  230,  230,  230,  230,  230, 2333,
3428
3429       230,  230,  230,  230,  230, 1044, 1044, 1044, 1034, 1047,
3430      1047, 1047, 2334, 1723, 1049, 1049, 1049, 2307, 2307, 1041,
3431      2307, 2337, 1044, 1060, 1060, 1060, 1047, 2338, 2307,  230,
3432       230, 1049, 1062, 1062, 1062, 2307, 2339,  230, 2340,  230,
3433      2345, 1060,  230, 1765, 1765, 1765,  230, 2346, 2340, 1062,
3434       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3435       239,  239,  239,  239,  239,  239, 2347,  239,  239,  239,
3436       239,  239, 1064, 1064, 1064, 1065, 1065, 1065, 2355, 1065,
3437      2356, 2357, 1065, 2358, 1061, 1061, 1061, 2372, 2373, 1064,
3438      1066, 1066, 1066, 1067, 1067, 1067,  239,  239, 1068, 1068,
3439
3440      1068, 2374, 1061, 2375, 1077, 1077, 1077, 1066, 1077, 2377,
3441      1067, 1077, 1085, 1085, 1085, 1068, 1085, 2379, 2402, 1085,
3442       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3443       240,  240,  240,  240,  240,  240, 2397,  240,  240,  240,
3444       240,  240, 1061, 2403, 1067, 1071, 1071, 1071, 2396, 2408,
3445      1068, 1069, 1069, 1069, 2409, 1076, 1076, 1076, 2410, 2413,
3446      1070, 1070, 1070, 1071, 2416, 2417,  240,  240, 1069, 1072,
3447      1072, 1072, 1076, 2397, 1090, 1090, 1090, 1070, 1090, 2418,
3448      2396, 1090, 1096, 1096, 1096, 2419, 1096, 1072, 2420, 1096,
3449       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3450
3451       243,  243,  243,  243,  243,  243, 1069,  243,  243,  243,
3452       243,  243, 1070, 1078, 1078, 1078, 1072, 1081, 1081, 1081,
3453      1082, 1082, 1082, 1084, 1084, 1084, 1086, 1086, 1086, 2421,
3454      1078, 1766, 1766, 1766, 2422, 1081,  243,  243, 1082, 2423,
3455      1084, 1731, 1731, 1731, 1086, 2424, 2425,  243,  244,  244,
3456       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3457       244,  244,  244, 2426,  244,  244,  244,  244,  244, 2428,
3458      2429, 1082, 1087, 1087, 1087, 1089, 1089, 1089, 1092, 1092,
3459      1092, 1093, 1093, 1093, 1095, 1095, 1095, 1731, 2430, 2431,
3460      1087, 2432, 1089,  244,  244, 2433, 1092, 2430, 2434, 1093,
3461
3462      2436, 1095, 2437, 2439,  244,  253,  253,  253,  253,  253,
3463       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3464      2440,  253,  253,  253,  253,  253, 2442, 2443, 1093, 1100,
3465      1100, 1100, 2445, 1087, 2451, 1101, 1101, 1101, 1102, 1102,
3466      1102, 1103, 1103, 1103, 1105, 1105, 1105, 1100, 2435, 2452,
3467       253,  253, 2453, 1101, 2455, 1102, 2460, 2435, 1103, 2461,
3468      2462,  253, 1105, 1116, 1116, 1116, 2463, 1116, 2464, 2467,
3469      1116, 1805, 1805, 1805,  253,  254,  254,  254,  254,  254,
3470       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3471      1101,  254,  254,  254,  254,  254, 1104, 1104, 1104, 1106,
3472
3473      1106, 1106, 1108, 1108, 1108, 2469, 1109, 1109, 1109, 1110,
3474      1110, 1110, 2471, 1104, 1112, 1112, 1112, 1106, 2477, 1108,
3475       254,  254, 2478, 1109, 2480, 2471, 1110, 2489, 1113, 1113,
3476      1113,  254, 1112, 1111, 1111, 1111, 1115, 1115, 1115, 1117,
3477      1117, 1117, 2491, 2494,  254,  296, 1113, 1119, 1119, 1119,
3478      1111, 2496,  296, 1115, 2515, 1104, 1109, 1117, 2520, 2521,
3479      1106,  296,  296, 2523, 1119, 1113, 1118, 1118, 1118, 2524,
3480      2472, 1109, 1906, 1906, 1906, 2525, 1120, 1120, 1120, 2530,
3481      1121, 1121, 1121, 2472, 1118, 1122, 1122, 1122, 2531,  296,
3482       296,  296, 1111, 1120, 2515,  296,  296,  296, 1121, 2532,
3483
3484       296,  296, 2516, 1122,  296, 2517,  296,  296,  296,  361,
3485      1123, 1123, 1123, 1124, 1124, 1124,  361, 1125, 1125, 1125,
3486      2533, 1118, 1126, 1126, 1126,  361,  361, 1123, 2534, 2535,
3487      1124, 1127, 1127, 1127, 1125, 1139, 1139, 1139, 2536, 2516,
3488      1126, 1143, 1143, 1143, 1133, 1133, 1133, 2537, 2517, 1127,
3489      2538, 2539, 1139,  361,  361,  361, 1122, 2540, 1143,  361,
3490       361,  361, 1133, 1124,  361,  361, 2542, 2543,  361, 2544,
3491       361,  361,  361, 1134, 1134, 1134, 2545, 2546, 1124, 1137,
3492      1137, 1137, 1138, 1138, 1138, 1140, 1140, 1140, 2528, 1140,
3493      2547, 1134, 1140, 1141, 1141, 1141, 2548, 1137, 2528, 2529,
3494
3495      1138, 2528, 1127, 1142, 1142, 1142, 1144, 1144, 1144, 2529,
3496      1144, 1141, 2529, 1144, 1146, 1146, 1146, 1147, 1147, 1147,
3497      2549, 1142, 1162, 1162, 1162, 1163, 1163, 1163, 2550, 1165,
3498      1165, 1165, 1146, 2551, 2552, 1147, 2553, 1134, 2554, 2555,
3499      1162, 2557, 2558, 1163, 2560, 2566, 1138, 1165, 1196, 1196,
3500      1196, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1200, 1200,
3501      1201, 1201, 1201, 2573, 1142, 1196, 1202, 1202, 1202, 1197,
3502      1202, 2574, 1198, 1202, 2575, 1200, 1165, 1201, 1205, 1205,
3503      1205, 1147, 1207, 1207, 1207, 1208, 1208, 1208, 2577, 1210,
3504      1210, 1210, 1212, 1212, 1212, 1205, 1212, 2581, 2584, 1212,
3505
3506      1207, 2585, 2586, 1208, 2587, 2588, 1200, 1210, 1215, 1215,
3507      1215, 1216, 1216, 1216, 2589, 1216, 2630, 2632, 1216, 2628,
3508      1217, 1217, 1217, 2633, 2629, 1215, 1218, 1218, 1218, 2634,
3509      2637, 1219, 1219, 1219, 2627, 1219, 1210, 1217, 1219, 1205,
3510      1221, 1221, 1221, 1218, 1223, 1223, 1223, 1224, 1224, 1224,
3511      1226, 1226, 1226, 1228, 1228, 1228, 2638, 1221, 1230, 1230,
3512      1230, 2628, 1223, 2627, 2640, 1224, 2629, 2641, 1226, 2643,
3513      1228, 1231, 1231, 1231, 2644, 2639, 1230, 1233, 1233, 1233,
3514      1234, 1234, 1234, 2645, 1234, 2646, 2647, 1234, 2639, 1231,
3515      1238, 1238, 1238, 2649, 2642, 1233, 1239, 1239, 1239, 1241,
3516
3517      1241, 1241, 1256, 1256, 1256, 2650, 1256, 2642, 1238, 1256,
3518      1226, 1260, 1260, 1260, 1239, 2651, 2652, 1241, 1261, 1261,
3519      1261, 1262, 1262, 1262, 1233, 1264, 1264, 1264, 1260, 2655,
3520      1266, 1266, 1266, 2656, 1266, 2657, 1261, 1266, 2658, 1262,
3521      1270, 1270, 1270, 1264, 1271, 1271, 1271, 1273, 1273, 1273,
3522      1274, 1274, 1274, 1275, 1275, 1275, 2659, 2660, 1270, 1276,
3523      1276, 1276, 1271, 2661, 2662, 1273, 2663, 1274, 2664, 2665,
3524      1275, 1277, 1277, 1277, 1279, 1279, 1279, 1276, 1280, 1280,
3525      1280, 1281, 1281, 1281, 2666, 2667, 1264, 2669, 2681, 1277,
3526      2682, 2687, 1279, 2691, 2692, 1280, 2693, 2694, 1281, 2695,
3527
3528      1275, 1282, 1282, 1282, 1283, 1283, 1283, 2696, 1273, 1281,
3529      1285, 1285, 1285, 1288, 1288, 1288, 1289, 1289, 1289, 1282,
3530      1289, 2714, 1283, 1289, 1295, 1295, 1295, 2715, 1285, 2716,
3531      1288, 1296, 1296, 1296, 1298, 1298, 1298, 1301, 1301, 1301,
3532      2717, 1279, 1295, 1302, 1302, 1302, 1303, 1303, 1303, 1296,
3533      2718, 2719, 1298, 2731, 1301, 1305, 1305, 1305, 1306, 1306,
3534      1306, 1302, 2729, 2734, 1303, 1307, 1307, 1307, 2728, 1307,
3535      2723, 2735, 1307, 1305, 2739, 1306, 1285, 1310, 1310, 1310,
3536      2740, 1310, 2741, 2723, 1310, 1313, 1313, 1313, 1314, 1314,
3537      1314, 1316, 1316, 1316, 1321, 1321, 1321, 2729, 1321, 1298,
3538
3539      2742, 1321, 2743, 1313, 2744, 2724, 1314, 2745, 2746, 1316,
3540      1324, 1324, 1324, 1325, 1325, 1325, 2728, 1325, 2724, 2748,
3541      1325, 2749, 1305, 1328, 1328, 1328, 2750, 1324, 1329, 1329,
3542      1329, 2751, 1329, 2752, 2753, 1329, 1340, 1340, 1340, 2754,
3543      1328, 1341, 1341, 1341, 1343, 1343, 1343, 2755, 1344, 1344,
3544      1344, 2757, 1344, 2758, 1340, 1344, 1316, 2759, 2760, 1341,
3545      2761, 2762, 1343, 1347, 1347, 1347, 2763, 1347, 2764, 2765,
3546      1347, 1350, 1350, 1350, 1351, 1351, 1351, 2766, 1351, 2767,
3547      2768, 1351, 1356, 1356, 1356, 1357, 1357, 1357, 1350, 1359,
3548      1359, 1359, 1364, 1364, 1364, 2769, 1364, 2779, 2783, 1364,
3549
3550      1356, 2784, 2792, 1357, 1367, 1367, 1367, 1359, 1368, 1368,
3551      1368, 1343, 1368, 2793, 2794, 1368, 1371, 1371, 1371, 2795,
3552      2796, 1367, 1372, 1372, 1372, 1374, 1374, 1374, 1376, 1376,
3553      1376, 2797, 1376, 2798, 1371, 1376, 2815, 1359, 2816, 2817,
3554      1372, 2818, 2819, 1374, 1379, 1379, 1379, 1380, 1380, 1380,
3555      1382, 1382, 1382, 1384, 1384, 1384, 2810, 1384, 2820, 2823,
3556      1384, 2824, 1379, 2825, 2826, 1380, 2810, 2835, 1382, 1388,
3557      1388, 1388, 1389, 1389, 1389, 2836, 1374, 1391, 1391, 1391,
3558      2837, 1393, 1393, 1393, 2811, 1393, 2838, 1388, 1393, 2813,
3559      1389, 1399, 1399, 1399, 2811, 1391, 1400, 1400, 1400, 2813,
3560
3561      1402, 1402, 1402, 1403, 1403, 1403, 1404, 1404, 1404, 1399,
3562      1404, 2839, 2840, 1404, 1400, 2814, 2841, 1382, 1402, 2842,
3563      1403, 1405, 1405, 1405, 2827, 2814, 1391, 1406, 1406, 1406,
3564      2845, 1406, 2846, 2848, 1406, 1408, 1408, 1408, 1405, 1409,
3565      1409, 1409, 2849, 1411, 1411, 1411, 1413, 1413, 1413, 2850,
3566      1417, 1417, 1417, 1408, 1910, 1910, 1910, 1409, 2827, 2612,
3567      1402, 1411, 2852, 1413, 1414, 1414, 1414, 1417, 1414, 2612,
3568      2854, 1414, 1418, 1418, 1418, 2612, 1418, 2855, 2856, 1418,
3569      1420, 1420, 1420, 1421, 1421, 1421, 1423, 1423, 1423, 1425,
3570      1425, 1425, 2613, 1425, 2859, 2860, 1425, 2861, 1420, 2862,
3571
3572      2865, 1421, 2613, 2878, 1423, 1428, 1428, 1428, 2613, 2879,
3573      1411, 1429, 1429, 1429, 1431, 1431, 1431, 1432, 1432, 1432,
3574      1433, 1433, 1433, 1428, 1433, 2880, 2888, 1433, 2889, 1429,
3575      2890, 2891, 1431, 2892, 1432, 1434, 1434, 1434, 1435, 1435,
3576      1435, 2893, 1435, 2899, 2900, 1435, 1436, 1436, 1436, 2901,
3577      1423, 2902, 1434, 1437, 1437, 1437, 2903, 1439, 1439, 1439,
3578      1440, 1440, 1440, 2904, 1436, 1441, 1441, 1441, 2905, 1441,
3579      2906, 1437, 1441, 2907, 1431, 1439, 2908, 1440, 1444, 1444,
3580      1444, 1445, 1445, 1445, 2910, 1445, 2911, 2916, 1445, 1446,
3581      1446, 1446, 1447, 1447, 1447, 1444, 1449, 1449, 1449, 1451,
3582
3583      1451, 1451, 1455, 1455, 1455, 2917, 2918, 1446, 2919, 2929,
3584      1447, 1456, 1456, 1456, 1449, 2930, 1451, 2931, 2932, 1439,
3585      1455, 1458, 1458, 1458, 1461, 1461, 1461, 2933, 2920, 1456,
3586      1462, 1462, 1462, 1464, 1464, 1464, 1465, 1465, 1465, 1458,
3587      1465, 2934, 1461, 1465, 1468, 1468, 1468, 2935, 1462, 2936,
3588      2940, 1464, 1469, 1469, 1469, 1471, 1471, 1471, 1449, 1472,
3589      1472, 1472, 1468, 1472, 2941, 2942, 1472, 1476, 1476, 1476,
3590      1469, 2920, 2943, 1471, 1477, 1477, 1477, 1479, 1479, 1479,
3591      2944, 2945, 1458, 2947, 2948, 1476, 1464, 1481, 1481, 1481,
3592      2950, 2951, 1477, 2952, 2954, 1479, 1488, 1488, 1488, 1518,
3593
3594      1518, 1518, 1520, 1520, 1520, 1481, 1481, 2958, 1521, 1521,
3595      1521, 1546, 1546, 1546, 1488, 1471, 1518, 1519, 1519, 1519,
3596      1520, 1519, 2959, 2960, 1519, 1521, 1522, 1522, 1522, 1546,
3597      1522, 2965, 2967, 1522, 1525, 1525, 1525, 2968, 1479, 1527,
3598      1527, 1527, 2973, 1527, 2974, 2975, 1527, 1530, 1530, 1530,
3599      2976, 2977, 1525, 2978, 1531, 1531, 1531, 2979, 1531, 2980,
3600      1520, 1531, 1488, 2981, 1530, 1532, 1532, 1532, 2982, 1532,
3601      2983, 2984, 1532, 1536, 1536, 1536, 2986, 1537, 1537, 1537,
3602      2987, 1537, 2988, 1525, 1537, 1539, 1539, 1539, 2989, 2993,
3603      1536, 1541, 1541, 1541, 1542, 1542, 1542, 2996, 1542, 2999,
3604
3605      2993, 1542, 2990, 1539, 1543, 1543, 1543, 3000, 1541, 1544,
3606      1544, 1544, 1562, 1562, 1562, 1563, 1563, 1563, 1564, 1564,
3607      1564, 1543, 1564, 3003, 3005, 1564, 3006, 1544, 3008, 1562,
3608      3009, 3013, 1563, 3014, 3016, 1539, 1565, 1565, 1565, 1568,
3609      1568, 1568, 1569, 1569, 1569, 1570, 1570, 1570, 2990, 1570,
3610      3015, 3017, 1570, 3018, 1565, 2992, 3019, 1568, 1544, 1569,
3611      1572, 1572, 1572, 1573, 1573, 1573, 1574, 1574, 1574, 2992,
3612      1574, 3020, 3012, 1574, 1576, 1576, 1576, 3028, 1572, 3036,
3613      1573, 1579, 1579, 1579, 1580, 1580, 1580, 3022, 1580, 3015,
3614      3023, 1580, 1576, 1581, 1581, 1581, 3038, 3040, 1579, 3022,
3615
3616      1565, 3042, 3023, 1568, 1583, 1583, 1583, 1584, 1584, 1584,
3617      1581, 1587, 1587, 1587, 3012, 1588, 1588, 1588, 3050, 1588,
3618      1572, 1583, 1588, 3052, 3056, 1584, 3058, 3033, 1587, 1589,
3619      1589, 1589, 1590, 1590, 1590, 1576, 1591, 1591, 1591, 3033,
3620      1591, 3060, 3053, 1591, 1592, 1592, 1592, 1589, 3034, 1590,
3621      1583, 1594, 1594, 1594, 1597, 1597, 1597, 1598, 1598, 1598,
3622      3034, 1598, 1592, 3061, 1598, 1599, 1599, 1599, 1594, 1599,
3623      3062, 1597, 1599, 1584, 1604, 1604, 1604, 1613, 1613, 1613,
3624      1614, 1614, 1614, 3053, 1614, 3055, 3055, 1614, 1617, 1617,
3625      1617, 1604, 1618, 1618, 1618, 1613, 1619, 1619, 1619, 1620,
3626
3627      1620, 1620, 1621, 1621, 1621, 1617, 1623, 1623, 1623, 1618,
3628      1592, 3054, 3063, 1619, 3069, 3057, 1620, 1626, 1626, 1626,
3629      1621, 1626, 3073, 1623, 1626, 3054, 3057, 1629, 1629, 1629,
3630      1631, 1631, 1631, 1633, 1633, 1633, 1636, 1636, 1636, 1640,
3631      1640, 1640, 1613, 1619, 1629, 1641, 1641, 1641, 1631, 3070,
3632      3080, 1633, 3082, 3088, 1636, 3074, 1640, 1621, 3090, 1649,
3633      1649, 1649, 1618, 1641, 1642, 1642, 1642, 3070, 1642, 1620,
3634      3074, 1642, 1645, 1645, 1645, 3095, 1645, 1649, 3096, 1645,
3635      1651, 1651, 1651, 3098, 1651, 1640, 3099, 1651, 1656, 1656,
3636      1656, 3100, 1656, 1636, 1631, 1656, 1660, 1660, 1660, 1633,
3637
3638      3102, 3079, 1641, 1662, 1662, 1662, 1663, 1663, 1663, 3103,
3639      1663, 3104, 3105, 1663, 1660, 1666, 1666, 1666, 3081, 1666,
3640      3079, 1662, 1666, 3106, 3087, 1649, 1669, 1669, 1669, 1670,
3641      1670, 1670, 3108, 1670, 3109, 3111, 1670, 3081, 1675, 1675,
3642      1675, 3118, 1675, 3087, 1669, 1675, 1678, 1678, 1678, 1680,
3643      1680, 1680, 1681, 1681, 1681, 3119, 1681, 1660, 3089, 1681,
3644      1662, 1685, 1685, 1685, 1678, 3120, 1680, 1687, 1687, 1687,
3645      1688, 1688, 1688, 1669, 1689, 1689, 1689, 3089, 3121, 1685,
3646      1690, 1690, 1690, 3122, 1687, 1691, 1691, 1691, 1688, 1694,
3647      1694, 1694, 1689, 1678, 1701, 1701, 1701, 1690, 1732, 1732,
3648
3649      1732, 3123, 1732, 1691, 3126, 1732, 3127, 1694, 3128, 3129,
3650      1685, 3130, 1701, 1735, 1735, 1735, 1736, 1736, 1736, 3131,
3651      1736, 3132, 3133, 1736, 3135, 3137, 1689, 1741, 1741, 1741,
3652      3139, 1735, 1743, 1743, 1743, 3140, 1743, 1688, 3141, 1743,
3653      1694, 1751, 1751, 1751, 3142, 1741, 1701, 1691, 1747, 1747,
3654      1747, 3143, 1747, 3151, 3152, 1747, 3153, 1694, 3154, 1751,
3655      1753, 1753, 1753, 3155, 1753, 3151, 3152, 1753, 1756, 1756,
3656      1756, 3156, 1757, 1757, 1757, 3157, 1757, 3158, 1741, 1757,
3657      1735, 1758, 1758, 1758, 3162, 1756, 1767, 1767, 1767, 1771,
3658      1771, 1771, 1772, 1772, 1772, 1774, 1774, 1774, 3163, 1758,
3659
3660      3164, 3165, 1751, 1775, 1775, 1775, 3166, 1775, 3167, 3168,
3661      1775, 3169, 1774, 1776, 1776, 1776, 3172, 1776, 3173, 3174,
3662      1776, 1779, 1779, 1779, 1781, 1781, 1781, 1782, 1782, 1782,
3663      3170, 3175, 1758, 1783, 1783, 1783, 3176, 1783, 3177, 1779,
3664      1783, 1781, 1787, 1787, 1787, 1782, 3178, 1788, 1788, 1788,
3665      1767, 1788, 3179, 1771, 1788, 3170, 1772, 1792, 1792, 1792,
3666      1787, 1791, 1791, 1791, 3180, 1795, 1795, 1795, 1779, 1795,
3667      3181, 3182, 1795, 3183, 1782, 1792, 3184, 3185, 1791, 1798,
3668      1798, 1798, 1799, 1799, 1799, 3186, 1799, 3187, 3188, 1799,
3669      1800, 1800, 1800, 1801, 1801, 1801, 1798, 1802, 1802, 1802,
3670
3671      3189, 1802, 3190, 3191, 1802, 3192, 3193, 1800, 1787, 3199,
3672      1801, 1804, 1804, 1804, 3200, 1807, 1807, 1807, 3201, 1807,
3673      3202, 1792, 1807, 1810, 1810, 1810, 1812, 1812, 1812, 1804,
3674      1812, 3196, 3203, 1812, 1815, 1815, 1815, 1817, 1817, 1817,
3675      3204, 1810, 1818, 1818, 1818, 3205, 1818, 3206, 3207, 1818,
3676      3196, 3208, 1815, 3209, 1817, 1819, 1819, 1819, 1821, 1821,
3677      1821, 3210, 1821, 3211, 3212, 1821, 1826, 1826, 1826, 1827,
3678      1827, 1827, 1819, 1827, 3213, 3214, 1827, 1828, 1828, 1828,
3679      1815, 3215, 3216, 1826, 1833, 1833, 1833, 1836, 1836, 1836,
3680      1837, 1837, 1837, 3217, 1828, 1838, 1838, 1838, 3218, 1838,
3681
3682      3220, 1833, 1838, 3219, 3221, 1836, 3222, 1837, 1839, 1839,
3683      1839, 1840, 1840, 1840, 1841, 1841, 1841, 1842, 1842, 1842,
3684      1844, 1844, 1844, 3219, 3223, 1839, 3224, 3225, 1840, 3226,
3685      3227, 1841, 1845, 1845, 1845, 1842, 1845, 1844, 3228, 1845,
3686      1846, 1846, 1846, 1848, 1848, 1848, 3229, 1849, 1849, 1849,
3687      3230, 1849, 3231, 1836, 1849, 3232, 3233, 1846, 3234, 3235,
3688      1848, 1851, 1851, 1851, 1853, 1853, 1853, 3236, 3237, 1840,
3689      1856, 1856, 1856, 1860, 1860, 1860, 3238, 1842, 3239, 1851,
3690      3245, 3246, 1853, 3247, 3248, 1861, 1861, 1861, 1856, 1861,
3691      1860, 3249, 1861, 1863, 1863, 1863, 1865, 1865, 1865, 1867,
3692
3693      1867, 1867, 1868, 1868, 1868, 1869, 1869, 1869, 1870, 1870,
3694      1870, 1863, 3250, 3252, 1865, 1853, 1867, 3253, 1856, 1868,
3695      3255, 3256, 1869, 1873, 1873, 1873, 1870, 1872, 1872, 1872,
3696      3258, 1874, 1874, 1874, 1875, 1875, 1875, 1876, 1876, 1876,
3697      3259, 1873, 1878, 1878, 1878, 1872, 1878, 1865, 1874, 1878,
3698      3240, 1875, 1884, 1884, 1884, 1876, 3240, 1886, 1886, 1886,
3699      1887, 1887, 1887, 3262, 1887, 3263, 3264, 1887, 3265, 1869,
3700      1884, 3267, 3269, 1872, 1886, 1870, 1888, 1888, 1888, 1889,
3701      1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891, 1873, 1891,
3702      3271, 3273, 1891, 3275, 1888, 3276, 3277, 1889, 3278, 1890,
3703
3704      3279, 3280, 1876, 1884, 1892, 1892, 1892, 1898, 1898, 1898,
3705      1899, 1899, 1899, 1914, 1914, 1914, 1915, 1915, 1915, 1916,
3706      1916, 1916, 1892, 3281, 1898, 1918, 1918, 1918, 1899, 1920,
3707      1920, 1920, 3282, 3284, 1889, 1888, 1921, 1921, 1921, 1926,
3708      1926, 1926, 1928, 1928, 1928, 1931, 1931, 1931, 1933, 1933,
3709      1933, 1935, 1935, 1935, 3286, 1936, 1936, 1936, 3288, 3289,
3710      1928, 3290, 3291, 1931, 1512, 1933, 1945, 1945, 1945, 1935,
3711      1945, 1899, 1936, 1945, 1511, 1948, 1948, 1948, 1949, 1949,
3712      1949, 1954, 1954, 1954, 1955, 1955, 1955, 1959, 1959, 1959,
3713      3292, 3293, 1928, 1948, 3261, 1949, 1960, 1960, 1960, 3316,
3714
3715      1960, 3300, 1510, 1960, 1959, 1963, 1963, 1963, 3261, 3308,
3716      1935, 1964, 1964, 1964, 1965, 1965, 1965, 3308, 1966, 1966,
3717      1966, 1948, 1966, 1963, 3304, 1966, 3292, 3293, 1964, 1509,
3718      3305, 1965, 3301, 1959, 1967, 1967, 1967, 1969, 1969, 1969,
3719      3316, 3306, 1970, 1970, 1970, 3306, 1971, 1971, 1971, 3300,
3720      1971, 1508, 1967, 1971, 3317, 1969, 1507, 1964, 1963, 1970,
3721      1972, 1972, 1972, 1975, 1975, 1975, 3302, 1975, 3304, 3314,
3722      1975, 1978, 1978, 1978, 3305, 1979, 1979, 1979, 1972, 1979,
3723      3301, 3303, 1979, 1984, 1984, 1984, 3309, 1967, 1978, 1980,
3724      1980, 1980, 3310, 1980, 3309, 3317, 1980, 1986, 1986, 1986,
3725
3726      3310, 1984, 1988, 1988, 1988, 3311, 3314, 1972, 1990, 1990,
3727      1990, 3318, 1990, 3311, 3302, 1990, 1993, 1993, 1993, 3315,
3728      1988, 1994, 1994, 1994, 1506, 1994, 3326, 3319, 1994, 3303,
3729      1998, 1998, 1998, 1993, 1998, 3326, 3332, 1998, 2001, 2001,
3730      2001, 2002, 2002, 2002, 3312, 2002, 3318, 3322, 2002, 2003,
3731      2003, 2003, 2007, 2007, 2007, 2001, 3315, 2008, 2008, 2008,
3732      1988, 2008, 3319, 3307, 2008, 3324, 2003, 3307, 3313, 2007,
3733      2011, 2011, 2011, 2012, 2012, 2012, 3325, 2012, 3320, 3332,
3734      2012, 2015, 2015, 2015, 3322, 2016, 2016, 2016, 2011, 2016,
3735      3321, 3312, 2016, 2017, 2017, 2017, 3323, 3324, 2015, 2018,
3736
3737      2018, 2018, 2019, 2019, 2019, 3327, 2019, 1504, 3325, 2019,
3738      2017, 2020, 2020, 2020, 3327, 3313, 2018, 1503, 2022, 2022,
3739      2022, 2011, 2022, 3344, 3320, 2022, 2025, 2025, 2025, 2020,
3740      2026, 2026, 2026, 3323, 2026, 1501, 3321, 2026, 2028, 2028,
3741      2028, 3328, 2028, 2025, 3334, 2028, 2032, 2032, 2032, 2035,
3742      2035, 2035, 2037, 2037, 2037, 2038, 2038, 2038, 2040, 2040,
3743      2040, 3330, 2020, 3329, 2032, 3344, 3331, 2035, 3333, 2037,
3744      2042, 2042, 2042, 2038, 2042, 2040, 3328, 2042, 2046, 2046,
3745      2046, 2049, 2049, 2049, 2051, 2051, 2051, 2052, 2052, 2052,
3746      3334, 2052, 3335, 1500, 2052, 3330, 2046, 3346, 3329, 2049,
3747
3748      3331, 2051, 3336, 3342, 2040, 2053, 2053, 2053, 2054, 2054,
3749      2054, 3333, 2054, 2035, 1498, 2054, 2038, 2056, 2056, 2056,
3750      3337, 3378, 2053, 2058, 2058, 2058, 2059, 2059, 2059, 2060,
3751      2060, 2060, 2061, 2061, 2061, 2056, 2061, 3336, 3335, 2061,
3752      3342, 2058, 3338, 3346, 2059, 3339, 2060, 2062, 2062, 2062,
3753      2063, 2063, 2063, 3364, 2063, 3337, 3340, 2063, 2064, 2064,
3754      2064, 2069, 2069, 2069, 2062, 3340, 2071, 2071, 2071, 3378,
3755      2071, 1495, 2058, 2071, 3343, 3338, 2064, 3345, 3339, 2069,
3756      2074, 2074, 2074, 2056, 2075, 2075, 2075, 3341, 2076, 2076,
3757      2076, 2059, 2076, 3348, 3364, 2076, 3341, 1494, 2074, 2079,
3758
3759      2079, 2079, 2075, 2085, 2085, 2085, 2086, 2086, 2086, 3352,
3760      2086, 3343, 3353, 2086, 2087, 2087, 2087, 2079, 3352, 3345,
3761      2085, 3353, 3382, 2064, 1493, 1492, 2069, 2088, 2088, 2088,
3762      3348, 2074, 2087, 2093, 2093, 2093, 3382, 2075, 2094, 2094,
3763      2094, 2095, 2095, 2095, 2097, 2097, 2097, 2101, 2101, 2101,
3764      2102, 2102, 2102, 2103, 2103, 2103, 2104, 2104, 2104, 2106,
3765      2106, 2106, 2107, 2107, 2107, 2108, 2108, 2108, 2109, 2109,
3766      2109, 2110, 2110, 2110, 2111, 2111, 2111, 3347, 2087, 2113,
3767      2113, 2113, 2116, 2116, 2116, 3374, 2119, 2119, 2119, 2120,
3768      2120, 2120, 3349, 2120, 3374, 1491, 2120, 2113, 1490, 3350,
3769
3770      2116, 1489, 2104, 2119, 2122, 2122, 2122, 2123, 2123, 2123,
3771      2124, 2124, 2124, 3358, 2124, 1487, 1486, 2124, 2135, 2135,
3772      2135, 3358, 2122, 3347, 2123, 2136, 2136, 2136, 3350, 3349,
3773      2113, 2137, 2137, 2137, 1485, 2137, 2135, 3354, 2137, 2138,
3774      2138, 2138, 2136, 2143, 2143, 2143, 2144, 2144, 2144, 2145,
3775      2145, 2145, 2146, 2146, 2146, 3351, 2146, 3356, 3360, 2146,
3776      2148, 2148, 2148, 2149, 2149, 2149, 2145, 2135, 2150, 2150,
3777      2150, 3354, 2150, 3357, 1484, 2150, 1475, 3361, 2148, 3359,
3778      2149, 2152, 2152, 2152, 3351, 2152, 3368, 3359, 2152, 2155,
3779      2155, 2155, 2144, 3372, 2157, 2157, 2157, 2159, 2159, 2159,
3780
3781      3369, 2159, 1460, 3356, 2159, 3360, 3365, 2155, 2162, 2162,
3782      2162, 2148, 2157, 2165, 2165, 2165, 1459, 2165, 3362, 3357,
3783      2165, 2172, 2172, 2172, 3361, 3372, 2162, 2174, 2174, 2174,
3784      3355, 2174, 3368, 1454, 2174, 2183, 2183, 2183, 1453, 2172,
3785      2155, 2180, 2180, 2180, 3363, 2180, 3369, 3365, 2180, 2184,
3786      2184, 2184, 2183, 2184, 3375, 3362, 2184, 3370, 2188, 2188,
3787      2188, 2162, 2188, 3375, 3355, 2188, 2192, 2192, 2192, 2193,
3788      2193, 2193, 1452, 2194, 2194, 2194, 2172, 2194, 3366, 1450,
3789      2194, 3363, 3383, 2192, 2197, 2197, 2197, 2193, 2198, 2198,
3790      2198, 3367, 2198, 3383, 3370, 2198, 2199, 2199, 2199, 3373,
3791
3792      2199, 2197, 1443, 2199, 2202, 2202, 2202, 2204, 2204, 2204,
3793      1442, 2204, 3371, 3366, 2204, 3379, 2210, 2210, 2210, 2212,
3794      2212, 2212, 2202, 2213, 2213, 2213, 3367, 2213, 1424, 3376,
3795      2213, 3373, 3377, 2193, 2210, 1419, 2212, 2214, 2214, 2214,
3796      2216, 2216, 2216, 2217, 2217, 2217, 1416, 2217, 1415, 3371,
3797      2217, 2224, 2224, 2224, 1412, 2214, 1407, 2216, 2227, 2227,
3798      2227, 3376, 2227, 3379, 3377, 2227, 2234, 2234, 2234, 2224,
3799      2202, 2230, 2230, 2230, 3380, 2230, 1398, 1397, 2230, 3381,
3800      2236, 2236, 2236, 1396, 2234, 2237, 2237, 2237, 2238, 2238,
3801      2238, 1392, 2238, 1387, 1383, 2238, 1375, 2214, 2236, 1370,
3802
3803      2241, 2241, 2241, 2237, 2241, 1369, 3380, 2241, 2244, 2244,
3804      2244, 3381, 2245, 2245, 2245, 1363, 1362, 2234, 2246, 2246,
3805      2246, 2237, 2247, 2247, 2247, 1361, 2244, 1360, 2244, 2245,
3806      2248, 2248, 2248, 1355, 1354, 2246, 2249, 2249, 2249, 2247,
3807      2251, 2251, 2251, 2252, 2252, 2252, 2236, 2248, 2253, 2253,
3808      2253, 2256, 2256, 2256, 2249, 2257, 2257, 2257, 2251, 2257,
3809      1353, 2252, 2257, 2260, 2260, 2260, 2253, 1352, 1338, 2246,
3810      2261, 2261, 2261, 2262, 2262, 2262, 2263, 2263, 2263, 1337,
3811      1336, 2260, 2266, 2266, 2266, 1335, 2247, 1334, 1333, 2248,
3812      2267, 2267, 2267, 2269, 2269, 2269, 2270, 2270, 2270, 1332,
3813
3814      2251, 2249, 2271, 2271, 2271, 2272, 2272, 2272, 2273, 2273,
3815      2273, 2274, 2274, 2274, 2277, 2277, 2277, 2278, 2278, 2278,
3816      1331, 1330, 2260, 2279, 2279, 2279, 2280, 2280, 2280, 2282,
3817      2282, 2282, 2285, 2285, 2285, 2286, 2286, 2286, 1320, 2286,
3818      1319, 1318, 2286, 2289, 2289, 2289, 1317, 2282, 1300, 2285,
3819      2290, 2290, 2290, 1299, 2292, 2292, 2292, 1294, 2292, 1293,
3820      2289, 2292, 2305, 2305, 2305, 2306, 2306, 2306, 2290, 2306,
3821      2308, 2308, 2306, 2308, 2309, 2309, 2309, 2310, 2310, 2310,
3822      2305, 2308, 2314, 2314, 2314, 2316, 2316, 2316, 2308, 2316,
3823      1292, 1287, 2316, 2320, 2320, 2320, 2321, 2321, 2321, 1286,
3824
3825      2321, 1269, 1265, 2321, 2325, 2325, 2325, 1259, 1255, 2289,
3826      1254, 2320, 2326, 2326, 2326, 2327, 2327, 2327, 2335, 2335,
3827      2335, 1253, 2325, 2305, 2336, 2336, 2336, 1252, 1251, 2326,
3828      2341, 2341, 2341, 2327, 2341, 1250, 1249, 2341, 1247, 2320,
3829      1246, 1244, 2336, 2344, 2344, 2344, 2348, 2348, 2348, 2349,
3830      2349, 2349, 1243, 2349, 1242, 1237, 2349, 2350, 2350, 2350,
3831      2344, 1229, 1227, 2348, 1222, 1220, 2327, 2351, 2351, 2351,
3832      1211, 2351, 1206, 1195, 2351, 2350, 2354, 2354, 2354, 2359,
3833      2359, 2359, 1193, 1192, 2336, 2361, 2361, 2361, 2362, 2362,
3834      2362, 1191, 2362, 1190, 2354, 2362, 1188, 2359, 2365, 2365,
3835
3836      2365, 1187, 2361, 1186, 2366, 2366, 2366, 2367, 2367, 2367,
3837      1185, 2367, 1184, 1183, 2367, 1181, 2365, 2370, 2370, 2370,
3838      1180, 2366, 2371, 2371, 2371, 2376, 2376, 2376, 2378, 2378,
3839      2378, 2381, 2381, 2381, 2370, 2380, 2380, 2380, 1179, 2371,
3840      1178, 1177, 2376, 2382, 2382, 2382, 1176, 1175, 2381, 2365,
3841      2366, 1173, 1172, 2380, 1171, 2383, 2383, 2383, 2385, 2385,
3842      2385, 2382, 2384, 2384, 2384, 1170, 1169, 2386, 2386, 2386,
3843      1168, 2386, 2370, 2383, 2386, 2385, 2376, 2387, 2387, 2387,
3844      2384, 1167, 1161, 2371, 2388, 2388, 2388, 2389, 2389, 2389,
3845      2390, 2390, 2390, 1160, 2387, 2391, 2391, 2391, 1159, 2384,
3846
3847      1156, 2388, 1155, 2382, 2389, 2392, 2392, 2392, 2390, 2393,
3848      2393, 2393, 2395, 2395, 2395, 1154, 2383, 2398, 2398, 2398,
3849      2400, 2400, 2400, 2392, 2399, 2399, 2399, 2393, 1152, 1148,
3850      2395, 2401, 2401, 2401, 1145, 2388, 1136, 1135, 2389, 2404,
3851      2404, 2404, 2399, 2405, 2405, 2405, 2406, 2406, 2406, 2407,
3852      2407, 2407, 2411, 2411, 2411, 2414, 2414, 2414, 2415, 2415,
3853      2415, 1132, 2415, 1131, 1130, 2415, 2427, 2427, 2427, 1129,
3854      2411, 2392, 2414, 1128, 2395, 2438, 2438, 2438, 2441, 2441,
3855      2441, 2444, 2444, 2444, 2427, 2446, 2446, 2446, 2448, 2448,
3856      2448, 2449, 2449, 2449, 1114, 2449, 1107, 1099, 2449, 2444,
3857
3858      2450, 2450, 2450, 2446, 1098, 2448, 2457, 2457, 2457, 2458,
3859      2458, 2458, 2459, 2459, 2459, 2465, 2465, 2465, 2450, 1097,
3860      2466, 2466, 2466, 2457, 2466, 1094, 2427, 2466, 1091, 1088,
3861      2459, 1083, 2465, 2468, 2468, 2468, 2470, 2470, 2470, 1080,
3862      2470, 1079, 1075, 2470, 2473, 2473, 2473, 2444, 1073, 1059,
3863      2468, 1058, 2475, 2475, 2475, 2479, 2479, 2479, 2481, 2481,
3864      2481, 1057, 2473, 1056, 2482, 2482, 2482, 1055, 2482, 2459,
3865      2475, 2482, 2479, 1054, 1053, 2481, 2483, 2483, 2483, 2484,
3866      2484, 2484, 2485, 2485, 2485, 1052, 2485, 1051, 1050, 2485,
3867      2486, 2486, 2486, 1046, 2483, 1042, 2484, 2487, 2487, 2487,
3868
3869      2488, 2488, 2488, 2493, 2493, 2493, 1035, 2486, 2495, 2495,
3870      2495, 2497, 2497, 2497, 2487, 1032, 1031, 2488, 1030, 1027,
3871      2493, 2499, 2499, 2499, 2500, 2500, 2500, 1026, 2500, 2497,
3872      1025, 2500, 2501, 2501, 2501, 2502, 2502, 2502, 2499, 2503,
3873      2503, 2503, 2486, 1022, 2504, 2504, 2504, 1021, 2504, 1020,
3874      2501, 2504, 1017, 2502, 1016, 2487, 1013, 2503, 2488, 2507,
3875      2507, 2507, 2508, 2508, 2508, 1012, 2508, 1009, 1006, 2508,
3876      2509, 2509, 2509, 2510, 2510, 2510, 2507, 2511, 2511, 2511,
3877      2513, 2513, 2513, 2514, 2514, 2514, 1003, 2509, 1002,  999,
3878      2510, 2518, 2518, 2518,  998, 2511, 2522, 2522, 2522,  997,
3879
3880       996, 2514, 2502, 2503, 2526, 2526, 2526,  995,  993, 2518,
3881      2527, 2527, 2527,  992, 2527,  991,  990, 2527, 2541, 2541,
3882      2541, 2526, 2556, 2556, 2556, 2559, 2559, 2559, 2561, 2561,
3883      2561,  989, 2561,  988,  987, 2561, 2541, 2564, 2564, 2564,
3884      2567, 2567, 2567, 2559, 2570, 2570, 2570, 2571, 2571, 2571,
3885       986, 2571,  982,  977, 2571, 2564,  976, 2567, 2572, 2572,
3886      2572, 2570, 2576, 2576, 2576, 2578, 2578, 2578,  975, 2578,
3887       972,  971, 2578, 2582, 2582, 2582, 2572,  970, 2541, 2576,
3888      2583, 2583, 2583,  968, 2583,  964,  960, 2583,  959,  956,
3889      2582, 2590, 2590, 2590,  953,  952, 2559, 2591, 2591, 2591,
3890
3891      2592, 2592, 2592,  951, 2592,  950,  949, 2592, 2590, 2593,
3892      2593, 2593,  948,  947, 2591, 2594, 2594, 2594,  945, 2594,
3893       944,  943, 2594, 2597, 2597, 2597, 2593, 2599, 2599, 2599,
3894       942, 2599,  941,  940, 2599, 2602, 2602, 2602, 2603, 2603,
3895      2603, 2597, 2604, 2604, 2604, 2607, 2607, 2607,  939, 2608,
3896      2608, 2608, 2602, 2608,  938, 2603, 2608,  937,  936, 2604,
3897       935,  934, 2607, 2609, 2609, 2609, 2610, 2610, 2610, 2611,
3898      2611, 2611,  933, 2611,  932,  931, 2611, 2614, 2614, 2614,
3899      2609,  930,  929, 2610, 2616, 2616, 2616,  928,  927, 2603,
3900      2602, 2617, 2617, 2617,  926, 2614,  925, 2604,  921, 2618,
3901
3902      2618, 2618, 2616, 2618,  920,  918, 2618,  917,  916, 2617,
3903      2621, 2621, 2621, 2622, 2622, 2622,  915, 2622,  914,  910,
3904      2622, 2623, 2623, 2623, 2624, 2624, 2624, 2621, 2624,  908,
3905       907, 2624,  906, 2625, 2625, 2625,  905,  901, 2623, 2631,
3906      2631, 2631, 2635, 2635, 2635, 2654, 2654, 2654,  897,  896,
3907      2616, 2625, 2617, 2636, 2636, 2636,  893, 2636,  892, 2635,
3908      2636,  891,  890, 2654, 2668, 2668, 2668, 2670, 2670, 2670,
3909      2671, 2671, 2671, 2672, 2672, 2672, 2673, 2673, 2673,  889,
3910      2674, 2674, 2674,  888, 2670, 2675, 2675, 2675, 2671, 2675,
3911      2672,  887, 2675, 2673,  884,  883, 2654, 2674, 2676, 2676,
3912
3913      2676,  882, 2676,  881,  878, 2676, 2679, 2679, 2679, 2683,
3914      2683, 2683, 2684, 2684, 2684,  877, 2685, 2685, 2685,  876,
3915      2685,  873, 2673, 2685, 2679,  871, 2683,  868,  867, 2684,
3916       866,  865, 2671, 2686, 2686, 2686, 2688, 2688, 2688,  864,
3917      2688,  861,  860, 2688, 2697, 2697, 2697, 2698, 2698, 2698,
3918      2686, 2698,  859,  858, 2698, 2699, 2699, 2699,  857, 2699,
3919       854, 2697, 2699, 2702, 2702, 2702, 2703, 2703, 2703,  853,
3920      2703,  852,  851, 2703, 2704, 2704, 2704, 2705, 2705, 2705,
3921      2702, 2706, 2706, 2706,  849, 2707, 2707, 2707,  846, 2707,
3922       845, 2704, 2707,  843, 2705, 2710, 2710, 2710, 2706, 2711,
3923
3924      2711, 2711,  840, 2711,  838,  835, 2711, 2712, 2712, 2712,
3925       834,  833, 2710, 2713, 2713, 2713,  832, 2713,  830,  829,
3926      2713, 2720, 2720, 2720, 2712, 2721, 2721, 2721,  828,  825,
3927      2706,  824, 2704, 2722, 2722, 2722,  823, 2722,  822, 2720,
3928      2722,  821,  820, 2721, 2725, 2725, 2725,  815, 2725,  814,
3929       813, 2725, 2730, 2730, 2730, 2732, 2732, 2732, 2733, 2733,
3930      2733, 2736, 2736, 2736,  812, 2736,  811,  810, 2736, 2730,
3931      2730,  809, 2720, 2747, 2747, 2747, 2756, 2756, 2756, 2770,
3932      2770, 2770, 2771, 2771, 2771, 2772, 2772, 2772,  808,  807,
3933      2747,  806, 2721,  805, 2756,  804, 2773, 2773, 2773,  802,
3934
3935      2773,  800, 2772, 2773, 2774, 2774, 2774, 2775, 2775, 2775,
3936      2776, 2776, 2776,  799, 2776,  796,  793, 2776, 2777, 2777,
3937      2777,  790, 2774,  789, 2775, 2756, 2778, 2778, 2778,  785,
3938      2778,  784,  783, 2778,  782, 2777, 2780, 2780, 2780,  779,
3939      2780,  776,  775, 2780, 2785, 2785, 2785, 2786, 2786, 2786,
3940       774, 2786,  771,  770, 2786, 2774, 2787, 2787, 2787,  769,
3941      2787, 2785,  766, 2787, 2790, 2790, 2790, 2791, 2791, 2791,
3942       765, 2791,  763,  760, 2791, 2799, 2799, 2799,  759, 2799,
3943       758, 2790, 2799, 2802, 2802, 2802,  756, 2802,  745,  743,
3944      2802, 2805, 2805, 2805, 2806, 2806, 2806, 2807, 2807, 2807,
3945
3946       740, 2807,  739,  738, 2807, 2808, 2808, 2808, 2805,  736,
3947       735, 2806, 2809, 2809, 2809,  734, 2809,  730,  729, 2809,
3948       728,  727, 2808, 2812, 2812, 2812,  724, 2812,  723,  722,
3949      2812, 2821, 2821, 2821, 2822, 2822, 2822, 2828, 2828, 2828,
3950       721,  720, 2805, 2829, 2829, 2829, 2830, 2830, 2830, 2821,
3951      2830,  719, 2822, 2830, 2828, 2828, 2831, 2831, 2831,  718,
3952      2829, 2829,  716,  713, 2830, 2832, 2832, 2832, 2833, 2833,
3953      2833, 2834, 2834, 2834,  712,  710, 2808, 2843, 2843, 2843,
3954      2844, 2844, 2844,  708, 2844,  705,  704, 2844, 2853, 2853,
3955      2853, 2866, 2866, 2866, 2843, 2867, 2867, 2867,  698,  696,
3956
3957      2822, 2868, 2868, 2868,  694, 2868, 2853,  691, 2868, 2871,
3958      2871, 2871, 2872, 2872, 2872,  690, 2872,  686,  685, 2872,
3959       684, 2875, 2875, 2875,  683, 2875,  680, 2871, 2875, 2881,
3960      2881, 2881,  679, 2881,  678,  677, 2881, 2884, 2884, 2884,
3961       674, 2884,  673,  672, 2884, 2887, 2887, 2887, 2894, 2894,
3962      2894, 2895, 2895, 2895, 2853, 2895,  671,  670, 2895, 2898,
3963      2898, 2898, 2887,  664,  663, 2894, 2913, 2913, 2913, 2915,
3964      2915, 2915, 2921, 2921, 2921,  661, 2898,  655, 2922, 2922,
3965      2922,  654, 2922,  650, 2913, 2922,  643, 2915,  639, 2921,
3966      2921, 2923, 2923, 2923,  633, 2923, 2922,  629, 2923, 2926,
3967
3968      2926, 2926, 2927, 2927, 2927, 2928, 2928, 2928,  621, 2923,
3969      2937, 2937, 2937,  620, 2937,  619,  618, 2937,  617,  613,
3970      2915, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924,
3971       606,  605, 2924, 2946, 2946, 2946,  604, 2924, 2924, 2924,
3972      2924, 2924, 2955, 2955, 2955, 2956, 2956, 2956, 2961, 2961,
3973      2961, 2946, 2962, 2962, 2962,  600, 2962,  593,  592, 2962,
3974      2963, 2963, 2963, 2956,  588, 2961, 2924, 2924, 2925, 2925,
3975      2925, 2925, 2925, 2925, 2925, 2925, 2925, 2963,  582, 2925,
3976      2969, 2969, 2969,  581, 2925, 2925, 2925, 2925, 2925, 2970,
3977      2970, 2970,  577, 2970,  569,  568, 2970, 2969, 2971, 2971,
3978
3979      2971, 2972, 2972, 2972,  564, 2972,  555,  551, 2972, 2985,
3980      2985, 2985,  543, 2925, 2925, 2971, 2991, 2991, 2991,  542,
3981      2991,  541,  537, 2991,  531,  530,  529, 2985,  525, 3010,
3982      3010, 3010,  519,  518, 2991, 2994, 2994, 2994, 2994, 2994,
3983      2994, 2994, 2994, 2994,  514,  508, 2994, 3010, 3024, 3024,
3984      3024, 2994, 2994, 2994, 2994, 2994, 3021, 3021, 3021,  507,
3985      3021,  506,  505, 3021,  504, 3024, 3025, 3025, 3025,  503,
3986      3025,  502,  498, 3025, 3047, 3047, 3047, 3059, 3059, 3059,
3987      2994, 2994, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995,
3988      2995,  492, 3047, 2995,  491, 3059, 3059,  489, 2995, 2995,
3989
3990      2995, 2995, 2995, 3029, 3029, 3029,  488, 3029,  487,  483,
3991      3029, 3032, 3032, 3032,  476, 3032,  471,  470, 3032, 3076,
3992      3076, 3076, 3077, 3077, 3077,  468,  464, 2995, 2995, 3078,
3993      3078, 3078,  458, 3083, 3083, 3083, 3076, 3083,  457, 3077,
3994      3083, 3086, 3086, 3086,  456,  452, 3078, 3097, 3097, 3097,
3995      3101, 3101, 3101, 3112, 3112, 3112,  446,  442, 3086, 3113,
3996      3113, 3113,  434, 3113,  432, 3097, 3113,  431, 3101,  430,
3997      3112, 3114, 3114, 3114, 3115, 3115, 3115,  426, 3115,  420,
3998       419, 3115, 3116, 3116, 3116, 3117, 3117, 3117, 3114, 3117,
3999       415,  409, 3117, 3124, 3124, 3124, 3125, 3125, 3125, 3116,
4000
4001      3125, 3101,  408, 3125, 3134, 3134, 3134, 3144, 3144, 3144,
4002      3124, 3144,  404,  397, 3144,  396, 3147, 3147, 3147,  395,
4003      3147,  391, 3134, 3147, 3150, 3150, 3150,  384, 3150,  383,
4004       382, 3150, 3159, 3159, 3159,  381, 3159,  377,  368, 3159,
4005       362, 3134, 3274, 3274, 3274, 3283, 3283, 3283,  358, 3283,
4006       357,  353, 3283, 3384, 3384, 3384, 3385, 3385, 3385,  347,
4007      3274,  346,  345, 3283,  341,  334,  332,  331,  327,  324,
4008       322, 3384,  321,  320, 3385, 3388, 3388, 3388, 3388, 3388,
4009      3388, 3388, 3388, 3388, 3389, 3389, 3389, 3389, 3389, 3389,
4010      3389, 3389, 3389, 3390, 3390, 3390, 3390, 3390, 3390, 3390,
4011
4012      3390, 3390, 3391, 3391, 3391, 3391, 3391, 3391, 3391, 3391,
4013      3391, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
4014      3393, 3393, 3393, 3393, 3393, 3393, 3393, 3393, 3393, 3394,
4015      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3395, 3395,
4016      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3396, 3396, 3396,
4017      3396, 3396, 3396, 3396, 3396, 3396, 3397, 3397, 3397, 3397,
4018      3397, 3397, 3397, 3397, 3397, 3398, 3398, 3398, 3398, 3398,
4019      3398, 3398, 3398, 3398, 3399, 3399, 3399, 3399, 3399, 3399,
4020      3399, 3399, 3399, 3400, 3400, 3400, 3400, 3400, 3400, 3400,
4021      3400, 3400, 3401, 3401, 3401, 3401, 3401, 3401, 3401, 3401,
4022
4023      3401, 3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402,
4024      3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3404,
4025      3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3405, 3405,
4026      3405, 3405, 3405, 3405, 3405, 3405, 3405, 3406, 3406, 3406,
4027      3406, 3406, 3406, 3406, 3406, 3406, 3407, 3407, 3407, 3407,
4028      3407, 3407, 3407, 3407, 3407, 3408, 3408, 3408, 3408, 3408,
4029      3408, 3408, 3408, 3408, 3409, 3409, 3409, 3409, 3409, 3409,
4030      3409, 3409, 3409, 3410, 3410, 3410, 3410, 3410, 3410, 3410,
4031      3410, 3410, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
4032      3411, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
4033
4034      3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3414,
4035      3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414, 3415, 3415,
4036      3415, 3415, 3415, 3415, 3415, 3415, 3415, 3416, 3416, 3416,
4037      3416, 3416, 3416, 3416, 3416, 3416, 3417, 3417, 3417, 3417,
4038      3417, 3417, 3417, 3417, 3417, 3418, 3418, 3418, 3418, 3418,
4039      3418, 3418, 3418, 3418, 3419, 3419, 3419, 3419, 3419, 3419,
4040      3419, 3419, 3419, 3420, 3420, 3420, 3420, 3420, 3420, 3420,
4041      3420, 3420, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421,
4042      3421, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422,
4043      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3424,
4044
4045      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3425, 3425,
4046      3425, 3425, 3425, 3425, 3425, 3425, 3425, 3426, 3426, 3426,
4047      3426, 3426, 3426, 3426, 3426, 3426, 3427, 3427, 3427, 3427,
4048      3427, 3427, 3427, 3427, 3427, 3428, 3428, 3428, 3428, 3428,
4049      3428, 3428, 3428, 3428, 3429, 3429, 3429, 3429, 3429, 3429,
4050      3429, 3429, 3429, 3430, 3430, 3430, 3430, 3430, 3430, 3430,
4051      3430, 3430, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431,
4052      3431, 3432, 3432, 3432, 3432, 3432, 3432, 3432, 3432, 3432,
4053      3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3434,
4054      3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 3435, 3435,
4055
4056      3435, 3435, 3435, 3435, 3435, 3435, 3435, 3436, 3436, 3436,
4057      3436, 3436, 3436, 3436, 3436, 3436, 3437, 3437, 3437, 3437,
4058      3437, 3437, 3437, 3437, 3437, 3438, 3438, 3438, 3438, 3438,
4059      3438, 3438, 3438, 3438, 3439, 3439, 3439, 3439, 3439, 3439,
4060      3439, 3439, 3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
4061      3440, 3440, 3441, 3441, 3441, 3441, 3441, 3441, 3441, 3441,
4062      3441, 3442, 3442, 3442, 3442, 3442, 3442, 3442, 3442, 3442,
4063      3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3444,
4064      3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3445, 3445,
4065      3445, 3445, 3445, 3445, 3445, 3445, 3445, 3446, 3446, 3446,
4066
4067      3446, 3446, 3446, 3446, 3446, 3446, 3447, 3447, 3447, 3447,
4068      3447, 3447, 3447, 3447, 3447, 3448, 3448, 3448, 3448, 3448,
4069      3448, 3448, 3448, 3448, 3449, 3449, 3449,  316,  312,  309,
4070      3449, 3450, 3450, 3450,  305,  302,  301, 3450, 3451, 3451,
4071      3451,  293,  289,  285, 3451, 3452, 3452, 3452,  284,  283,
4072       277, 3452, 3453, 3453, 3453,  276,  274,  271, 3453, 3454,
4073      3454, 3454,  259,    0,    0, 3454, 3455, 3455, 3455,    0,
4074         0,    0, 3455, 3456, 3456, 3456,    0,    0,    0, 3456,
4075      3457, 3457, 3457,    0,    0,    0, 3457, 3458, 3458, 3458,
4076         0,    0,    0, 3458, 3459, 3459, 3459,    0,    0,    0,
4077
4078      3459, 3460, 3460, 3460,    0,    0,    0, 3460, 3461, 3461,
4079      3461,    0,    0,    0, 3461, 3462, 3462, 3462,    0,    0,
4080         0, 3462, 3463, 3463, 3463,    0,    0,    0, 3463, 3464,
4081      3464, 3464,    0,    0,    0, 3464, 3465, 3465, 3465,    0,
4082         0,    0, 3465, 3466, 3466, 3466,    0,    0,    0, 3466,
4083      3467, 3467, 3467,    0,    0,    0, 3467, 3468, 3468, 3468,
4084         0,    0,    0, 3468, 3469, 3469, 3469,    0,    0,    0,
4085      3469, 3470, 3470, 3470,    0,    0,    0, 3470, 3471, 3471,
4086      3471,    0,    0,    0, 3471, 3472, 3472, 3472,    0,    0,
4087         0, 3472, 3473, 3473, 3473,    0,    0,    0, 3473, 3474,
4088
4089      3474, 3474,    0,    0,    0, 3474, 3475, 3475, 3475,    0,
4090         0,    0, 3475, 3476, 3476, 3476,    0,    0,    0, 3476,
4091      3477, 3477, 3477, 3477, 3477, 3477, 3477,    0, 3477, 3478,
4092      3478, 3478,    0,    0,    0, 3478, 3479,    0,    0,    0,
4093      3479, 3480, 3480, 3480,    0,    0,    0, 3480, 3481,    0,
4094         0,    0, 3481, 3482, 3482, 3482,    0,    0,    0, 3482,
4095      3483,    0,    0,    0, 3483, 3484, 3484, 3484,    0,    0,
4096         0, 3484, 3485,    0,    0,    0, 3485, 3486, 3486, 3486,
4097         0,    0,    0, 3486, 3487,    0,    0,    0, 3487, 3488,
4098      3488, 3488,    0,    0,    0, 3488, 3489,    0,    0,    0,
4099
4100      3489, 3490, 3490, 3490,    0,    0,    0, 3490, 3491,    0,
4101         0,    0, 3491, 3492, 3492, 3492,    0,    0,    0, 3492,
4102      3493,    0,    0,    0, 3493, 3494, 3494, 3494,    0,    0,
4103         0, 3494, 3495,    0,    0,    0, 3495, 3496, 3496, 3496,
4104         0,    0,    0, 3496, 3497,    0,    0,    0, 3497, 3498,
4105      3498, 3498,    0,    0,    0, 3498, 3499,    0,    0,    0,
4106      3499, 3500, 3500, 3500,    0,    0,    0, 3500, 3501,    0,
4107         0,    0, 3501, 3502, 3502, 3502,    0,    0,    0, 3502,
4108      3503,    0,    0,    0, 3503, 3504, 3504, 3504,    0,    0,
4109         0, 3504, 3505,    0,    0,    0, 3505, 3506, 3506, 3506,
4110
4111         0,    0,    0, 3506, 3507,    0,    0,    0, 3507, 3508,
4112      3508, 3508,    0,    0,    0, 3508, 3509,    0,    0,    0,
4113      3509, 3510, 3510, 3510,    0,    0,    0, 3510, 3511,    0,
4114         0,    0, 3511, 3512, 3512, 3512,    0,    0,    0, 3512,
4115      3513,    0,    0,    0, 3513, 3514, 3514, 3514,    0,    0,
4116         0, 3514, 3515,    0,    0,    0, 3515, 3516, 3516, 3516,
4117         0,    0,    0, 3516, 3517,    0,    0,    0, 3517, 3518,
4118      3518, 3518,    0,    0,    0, 3518, 3519,    0,    0,    0,
4119      3519, 3520, 3520, 3520,    0,    0,    0, 3520, 3521,    0,
4120         0,    0, 3521, 3522, 3522, 3522,    0,    0,    0, 3522,
4121
4122      3523,    0,    0,    0, 3523, 3524, 3524, 3524,    0,    0,
4123         0, 3524, 3525,    0,    0,    0, 3525, 3526, 3526, 3526,
4124         0,    0,    0, 3526, 3527,    0,    0,    0, 3527, 3528,
4125      3528, 3528,    0,    0,    0, 3528, 3529,    0,    0,    0,
4126      3529, 3530, 3530, 3530,    0,    0,    0, 3530, 3531,    0,
4127         0,    0, 3531, 3532, 3532, 3532,    0,    0,    0, 3532,
4128      3533,    0,    0,    0, 3533, 3534, 3534, 3534, 3534, 3534,
4129      3534, 3534, 3534, 3534, 3535,    0,    0,    0,    0, 3535,
4130      3536, 3536, 3536,    0,    0,    0, 3536, 3537, 3537, 3537,
4131      3537,    0,    0, 3537, 3537, 3538, 3538, 3538,    0,    0,
4132
4133         0, 3538, 3539, 3539, 3539, 3539,    0,    0, 3539, 3539,
4134      3540, 3540, 3540,    0,    0,    0, 3540, 3541, 3541, 3541,
4135      3541,    0,    0, 3541, 3541, 3542, 3542, 3542,    0,    0,
4136         0, 3542, 3543, 3543, 3543, 3543,    0,    0, 3543, 3543,
4137      3544, 3544, 3544,    0,    0,    0, 3544, 3545, 3545, 3545,
4138      3545,    0,    0, 3545, 3545, 3546, 3546, 3546,    0,    0,
4139         0, 3546, 3547, 3547, 3547, 3547,    0,    0, 3547, 3547,
4140      3548, 3548, 3548,    0,    0,    0, 3548, 3549, 3549, 3549,
4141      3549,    0,    0, 3549, 3549, 3550, 3550, 3550,    0,    0,
4142         0, 3550, 3551, 3551, 3551, 3551,    0,    0, 3551, 3551,
4143
4144      3552, 3552, 3552,    0,    0,    0, 3552, 3553, 3553, 3553,
4145      3553,    0,    0, 3553, 3553, 3554, 3554, 3554,    0,    0,
4146         0, 3554, 3555, 3555, 3555, 3555,    0,    0, 3555, 3555,
4147      3556, 3556, 3556,    0,    0,    0, 3556, 3557, 3557, 3557,
4148      3557,    0,    0, 3557, 3557, 3558, 3558, 3558,    0,    0,
4149         0, 3558, 3559, 3559, 3559, 3559,    0,    0, 3559, 3559,
4150      3560, 3560, 3560,    0,    0,    0, 3560, 3561, 3561, 3561,
4151      3561,    0,    0, 3561, 3561, 3562, 3562, 3562,    0,    0,
4152         0, 3562, 3563, 3563, 3563, 3563,    0,    0, 3563, 3563,
4153      3564, 3564, 3564, 3564,    0, 3564,    0, 3564, 3565, 3565,
4154
4155      3565, 3565,    0,    0, 3565, 3565, 3566, 3566, 3566,    0,
4156         0,    0, 3566, 3567, 3567, 3567, 3567,    0,    0, 3567,
4157      3567, 3568, 3568, 3568,    0,    0,    0, 3568, 3569, 3569,
4158      3569, 3569,    0,    0, 3569, 3569, 3570, 3570, 3570,    0,
4159         0,    0, 3570, 3571, 3571, 3571, 3571,    0,    0, 3571,
4160      3571, 3572, 3572, 3572,    0,    0,    0, 3572, 3573, 3573,
4161      3573, 3573,    0,    0, 3573, 3573, 3574, 3574, 3574, 3574,
4162         0, 3574,    0, 3574, 3575, 3575, 3575, 3575,    0,    0,
4163      3575, 3575, 3576, 3576, 3576, 3576,    0, 3576,    0, 3576,
4164      3577, 3577, 3577, 3577,    0,    0, 3577, 3577, 3578, 3578,
4165
4166      3578,    0,    0,    0, 3578, 3579, 3579, 3579, 3579,    0,
4167         0, 3579, 3579, 3580, 3580, 3580, 3580,    0, 3580,    0,
4168      3580, 3581, 3581, 3581, 3581,    0,    0, 3581, 3581, 3582,
4169      3582, 3582, 3582,    0, 3582,    0, 3582, 3583, 3583, 3583,
4170      3583,    0,    0, 3583, 3583, 3584, 3584, 3584,    0,    0,
4171         0, 3584, 3585, 3585, 3585, 3585,    0,    0, 3585, 3585,
4172      3586, 3586, 3586,    0,    0,    0, 3586, 3587, 3587, 3587,
4173      3587,    0,    0, 3587, 3587, 3588, 3588, 3588, 3588,    0,
4174         0, 3588, 3588, 3589, 3589, 3589,    0,    0,    0, 3589,
4175      3590, 3590, 3590, 3590,    0,    0, 3590, 3590, 3591, 3591,
4176
4177      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3592,    0, 3592,
4178         0,    0, 3592, 3593, 3593, 3593,    0,    0,    0, 3593,
4179      3594, 3594, 3594, 3594,    0,    0, 3594, 3594, 3595, 3595,
4180      3595, 3595,    0, 3595,    0, 3595, 3596, 3596, 3596, 3596,
4181         0,    0, 3596, 3596, 3597, 3597, 3597, 3597,    0, 3597,
4182         0, 3597, 3598, 3598, 3598, 3598,    0,    0, 3598, 3598,
4183      3599, 3599, 3599,    0,    0,    0, 3599, 3600, 3600, 3600,
4184      3600,    0,    0, 3600, 3600, 3601, 3601, 3601,    0,    0,
4185         0, 3601, 3602, 3602, 3602, 3602,    0,    0, 3602, 3602,
4186      3603, 3603, 3603,    0,    0,    0, 3603, 3604, 3604, 3604,
4187
4188      3604,    0,    0, 3604, 3604, 3605, 3605, 3605,    0,    0,
4189         0, 3605, 3606, 3606, 3606, 3606,    0,    0, 3606, 3606,
4190      3607, 3607, 3607,    0,    0,    0, 3607, 3608, 3608, 3608,
4191      3608,    0,    0, 3608, 3608, 3609, 3609, 3609, 3609,    0,
4192      3609,    0, 3609, 3610, 3610, 3610, 3610,    0,    0, 3610,
4193      3610, 3611, 3611, 3611, 3611,    0, 3611,    0, 3611, 3612,
4194      3612, 3612, 3612,    0,    0, 3612, 3612, 3613, 3613, 3613,
4195         0,    0,    0, 3613, 3614, 3614, 3614, 3614,    0,    0,
4196      3614, 3614, 3615, 3615, 3615, 3615,    0, 3615,    0, 3615,
4197      3616, 3616, 3616, 3616,    0,    0, 3616, 3616, 3617, 3617,
4198
4199      3617, 3617,    0, 3617,    0, 3617, 3618, 3618, 3618, 3618,
4200         0,    0, 3618, 3618, 3619, 3619, 3619,    0,    0,    0,
4201      3619, 3620, 3620, 3620, 3620,    0,    0, 3620, 3620, 3621,
4202      3621, 3621,    0,    0,    0, 3621, 3622, 3622, 3622, 3622,
4203         0,    0, 3622, 3622, 3623, 3623, 3623,    0,    0,    0,
4204      3623, 3624, 3624, 3624, 3624,    0,    0, 3624, 3624, 3625,
4205      3625, 3625,    0,    0,    0, 3625, 3626, 3626, 3626, 3626,
4206         0,    0, 3626, 3626, 3627, 3627, 3627,    0,    0,    0,
4207      3627, 3628, 3628, 3628, 3628,    0,    0, 3628, 3628, 3629,
4208      3629, 3629,    0,    0,    0, 3629, 3630, 3630, 3630, 3630,
4209
4210         0,    0, 3630, 3630, 3631, 3631, 3631,    0,    0,    0,
4211      3631, 3632, 3632, 3632, 3632,    0,    0, 3632, 3632, 3633,
4212      3633, 3633,    0,    0,    0, 3633, 3634, 3634, 3634, 3634,
4213         0,    0, 3634, 3634, 3635, 3635, 3635,    0,    0,    0,
4214      3635, 3636, 3636, 3636, 3636,    0,    0, 3636, 3636, 3637,
4215      3637, 3637, 3637,    0,    0, 3637, 3637, 3638, 3638, 3638,
4216         0,    0,    0, 3638, 3639, 3639, 3639, 3639,    0,    0,
4217      3639, 3639, 3640, 3640, 3640,    0,    0,    0, 3640, 3641,
4218      3641, 3641, 3641,    0,    0, 3641, 3641, 3642, 3642, 3642,
4219         0,    0,    0, 3642, 3643, 3643, 3643, 3643,    0,    0,
4220
4221      3643, 3643, 3644, 3644, 3644, 3644,    0,    0, 3644, 3644,
4222      3645, 3645, 3645,    0,    0,    0, 3645, 3646, 3646, 3646,
4223      3646,    0,    0, 3646, 3646, 3647, 3647, 3647, 3647, 3647,
4224      3647, 3647, 3647, 3647, 3648, 3648, 3648, 3648, 3648, 3648,
4225      3648, 3648, 3648, 3649, 3649, 3649,    0,    0,    0, 3649,
4226      3650, 3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651,
4227      3651, 3651,    0,    0, 3651, 3651, 3652, 3652, 3652,    0,
4228         0,    0, 3652, 3653, 3653, 3653, 3653,    0,    0, 3653,
4229      3653, 3654, 3654, 3654,    0,    0,    0, 3654, 3655, 3655,
4230      3655, 3655,    0,    0, 3655, 3655, 3656, 3656, 3656,    0,
4231
4232         0,    0, 3656, 3657, 3657, 3657, 3657,    0,    0, 3657,
4233      3657, 3658, 3658, 3658,    0,    0,    0, 3658, 3659, 3659,
4234      3659,    0,    0,    0, 3659, 3660, 3660, 3660, 3660,    0,
4235         0, 3660, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4236      3662, 3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663,
4237      3663,    0,    0,    0, 3663, 3664, 3664, 3664, 3664,    0,
4238         0, 3664, 3664, 3665, 3665, 3665,    0,    0,    0, 3665,
4239      3666, 3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667,
4240      3667,    0,    0,    0, 3667, 3668, 3668, 3668, 3668,    0,
4241         0, 3668, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4242
4243      3669, 3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671,
4244      3671, 3671,    0,    0,    0, 3671, 3672, 3672, 3672, 3672,
4245         0,    0, 3672, 3672, 3673, 3673, 3673, 3673,    0, 3673,
4246         0, 3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674,
4247      3675, 3675, 3675,    0,    0,    0, 3675, 3676, 3676, 3676,
4248      3676,    0,    0, 3676, 3676, 3677, 3677, 3677,    0,    0,
4249         0, 3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678,
4250      3679, 3679, 3679,    0,    0,    0, 3679, 3680, 3680, 3680,
4251      3680,    0,    0, 3680, 3680, 3681, 3681, 3681,    0,    0,
4252         0, 3681, 3682, 3682, 3682, 3682,    0,    0, 3682, 3682,
4253
4254      3683, 3683, 3683,    0,    0,    0, 3683, 3684, 3684, 3684,
4255      3684,    0,    0, 3684, 3684, 3685, 3685, 3685,    0,    0,
4256         0, 3685, 3686, 3686, 3686, 3686,    0,    0, 3686, 3686,
4257      3687, 3687, 3687,    0,    0,    0, 3687, 3688, 3688, 3688,
4258      3688,    0,    0, 3688, 3688, 3689, 3689, 3689, 3689,    0,
4259         0, 3689, 3689, 3690, 3690, 3690,    0,    0,    0, 3690,
4260      3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692,
4261      3692,    0,    0,    0, 3692, 3693, 3693, 3693, 3693,    0,
4262         0, 3693, 3693, 3694, 3694, 3694, 3694,    0, 3694,    0,
4263      3694, 3695, 3695, 3695, 3695,    0,    0, 3695, 3695, 3696,
4264
4265      3696, 3696, 3696,    0,    0, 3696, 3696, 3697, 3697, 3697,
4266      3697,    0, 3697,    0, 3697, 3698, 3698, 3698, 3698,    0,
4267         0, 3698, 3698, 3699, 3699, 3699, 3699, 3699, 3699, 3699,
4268      3699, 3699, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700,
4269      3700, 3701, 3701, 3701,    0,    0,    0, 3701, 3702, 3702,
4270      3702, 3702,    0,    0, 3702, 3702, 3703, 3703, 3703, 3703,
4271         0,    0, 3703, 3703, 3704, 3704, 3704,    0,    0,    0,
4272      3704, 3705, 3705, 3705, 3705,    0,    0, 3705, 3705, 3706,
4273      3706, 3706,    0,    0,    0, 3706, 3707, 3707, 3707, 3707,
4274         0,    0, 3707, 3707, 3708, 3708, 3708,    0,    0,    0,
4275
4276      3708, 3709, 3709, 3709, 3709,    0,    0, 3709, 3709, 3710,
4277      3710, 3710,    0,    0,    0, 3710, 3711, 3711, 3711,    0,
4278         0,    0, 3711, 3712, 3712, 3712, 3712,    0,    0, 3712,
4279      3712, 3713, 3713, 3713,    0,    0,    0, 3713, 3714, 3714,
4280      3714, 3714,    0,    0, 3714, 3714, 3715, 3715, 3715,    0,
4281         0,    0, 3715, 3716, 3716, 3716, 3716,    0,    0, 3716,
4282      3716, 3717, 3717, 3717, 3717,    0, 3717,    0, 3717, 3718,
4283      3718, 3718, 3718,    0,    0, 3718, 3718, 3719, 3719, 3719,
4284         0,    0,    0, 3719, 3720, 3720, 3720, 3720,    0,    0,
4285      3720, 3720, 3721, 3721, 3721, 3721,    0,    0, 3721, 3721,
4286
4287      3722, 3722, 3722,    0,    0,    0, 3722, 3723, 3723, 3723,
4288      3723,    0,    0, 3723, 3723, 3724, 3724, 3724, 3724,    0,
4289      3724,    0, 3724, 3725, 3725, 3725, 3725,    0,    0, 3725,
4290      3725, 3726, 3726, 3726,    0,    0,    0, 3726, 3727, 3727,
4291      3727, 3727,    0,    0, 3727, 3727, 3728, 3728, 3728,    0,
4292         0,    0, 3728, 3729, 3729, 3729, 3729,    0,    0, 3729,
4293      3729, 3730, 3730, 3730,    0,    0,    0, 3730, 3731, 3731,
4294      3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,    0,
4295         0,    0, 3732, 3733, 3733, 3733, 3733,    0,    0, 3733,
4296      3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735, 3735,
4297
4298      3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736, 3736,
4299         0, 3736,    0, 3736, 3737, 3737, 3737, 3737,    0,    0,
4300      3737, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
4301      3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
4302      3740,    0,    0, 3740, 3740, 3741, 3741, 3741, 3741,    0,
4303      3741,    0, 3741, 3742, 3742, 3742, 3742,    0,    0, 3742,
4304      3742, 3743, 3743, 3743,    0,    0,    0, 3743, 3744, 3744,
4305      3744, 3744,    0,    0, 3744, 3744, 3745, 3745, 3745, 3745,
4306         0,    0, 3745, 3745, 3746, 3746, 3746, 3746,    0,    0,
4307      3746, 3746, 3747, 3747, 3747, 3747,    0,    0, 3747, 3747,
4308
4309      3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3749,
4310      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3750, 3750,
4311      3750, 3750,    0, 3750,    0, 3750, 3751, 3751, 3751, 3751,
4312         0,    0, 3751, 3751, 3752, 3752, 3752, 3752,    0,    0,
4313      3752, 3752, 3753, 3753, 3753,    0,    0,    0, 3753, 3754,
4314      3754, 3754, 3754,    0,    0, 3754, 3754, 3755, 3755, 3755,
4315         0,    0,    0, 3755, 3756, 3756, 3756, 3756,    0,    0,
4316      3756, 3756, 3757, 3757, 3757, 3757,    0, 3757,    0, 3757,
4317      3758, 3758, 3758, 3758,    0,    0, 3758, 3758, 3759, 3759,
4318      3759, 3759,    0, 3759,    0, 3759, 3760, 3760, 3760, 3760,
4319
4320         0, 3760,    0, 3760, 3761, 3761, 3761, 3761,    0,    0,
4321      3761, 3761, 3762, 3762, 3762, 3762,    0, 3762,    0, 3762,
4322      3763, 3763, 3763, 3763,    0,    0, 3763, 3763, 3764, 3764,
4323      3764,    0,    0,    0, 3764, 3765, 3765, 3765, 3765,    0,
4324         0, 3765, 3765, 3766, 3766, 3766, 3766,    0,    0, 3766,
4325      3766, 3767, 3767, 3767,    0,    0,    0, 3767, 3768, 3768,
4326      3768, 3768,    0,    0, 3768, 3768, 3769, 3769, 3769,    0,
4327         0,    0, 3769, 3770, 3770, 3770, 3770,    0,    0, 3770,
4328      3770, 3771, 3771, 3771, 3771,    0, 3771,    0, 3771, 3772,
4329      3772, 3772, 3772,    0,    0, 3772, 3772, 3773, 3773, 3773,
4330
4331         0,    0,    0, 3773, 3774, 3774, 3774,    0,    0,    0,
4332      3774, 3775, 3775, 3775, 3775,    0,    0, 3775, 3775, 3776,
4333      3776, 3776,    0,    0,    0, 3776, 3777, 3777, 3777, 3777,
4334         0,    0, 3777, 3777, 3778, 3778, 3778,    0,    0,    0,
4335      3778, 3779, 3779, 3779,    0,    0,    0, 3779, 3780, 3780,
4336      3780, 3780,    0,    0, 3780, 3780, 3781, 3781, 3781,    0,
4337         0,    0, 3781, 3782, 3782, 3782, 3782,    0,    0, 3782,
4338      3782, 3783, 3783, 3783,    0,    0,    0, 3783, 3784, 3784,
4339      3784, 3784,    0,    0, 3784, 3784, 3785, 3785, 3785, 3785,
4340         0,    0, 3785, 3785, 3786, 3786, 3786, 3786,    0,    0,
4341
4342      3786, 3786, 3787, 3787, 3787,    0,    0,    0, 3787, 3788,
4343      3788, 3788, 3788,    0,    0, 3788, 3788, 3789, 3789, 3789,
4344      3789,    0,    0, 3789, 3789, 3790, 3790, 3790, 3790,    0,
4345         0, 3790, 3790, 3791, 3791, 3791, 3791, 3791, 3791, 3791,
4346      3791, 3791, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792,
4347      3792, 3793, 3793, 3793, 3793,    0,    0, 3793, 3793, 3794,
4348      3794, 3794, 3794,    0,    0, 3794, 3794, 3795, 3795, 3795,
4349         0,    0,    0, 3795, 3796, 3796, 3796,    0,    0,    0,
4350      3796, 3797, 3797, 3797, 3797,    0,    0, 3797, 3797, 3798,
4351      3798, 3798, 3798,    0,    0, 3798, 3798, 3799, 3799, 3799,
4352
4353         0,    0,    0, 3799, 3800, 3800, 3800, 3800,    0,    0,
4354      3800, 3800, 3801, 3801, 3801,    0,    0,    0, 3801, 3802,
4355      3802, 3802, 3802,    0,    0, 3802, 3802, 3803, 3803, 3803,
4356         0,    0,    0, 3803, 3804, 3804, 3804, 3804,    0,    0,
4357      3804, 3804, 3805, 3805, 3805,    0,    0,    0, 3805, 3806,
4358      3806, 3806, 3806,    0,    0, 3806, 3806, 3807, 3807, 3807,
4359         0,    0,    0, 3807, 3808, 3808, 3808, 3808,    0,    0,
4360      3808, 3808, 3809, 3809, 3809, 3809,    0,    0, 3809, 3809,
4361      3810, 3810, 3810,    0,    0,    0, 3810, 3811, 3811, 3811,
4362         0,    0,    0, 3811, 3812, 3812, 3812, 3812,    0,    0,
4363
4364      3812, 3812, 3813, 3813, 3813,    0,    0,    0, 3813, 3814,
4365      3814, 3814, 3814,    0,    0, 3814, 3814, 3815, 3815, 3815,
4366         0,    0,    0, 3815, 3816, 3816, 3816,    0,    0,    0,
4367      3816, 3817, 3817, 3817,    0,    0,    0, 3817, 3818, 3818,
4368      3818, 3818,    0,    0, 3818, 3818, 3819, 3819, 3819,    0,
4369         0,    0, 3819, 3820, 3820, 3820, 3820,    0,    0, 3820,
4370      3820, 3821, 3821, 3821, 3821,    0,    0, 3821, 3821, 3822,
4371      3822, 3822, 3822,    0,    0, 3822, 3822, 3823, 3823, 3823,
4372      3823,    0, 3823,    0, 3823, 3824, 3824, 3824, 3824,    0,
4373         0, 3824, 3824, 3825, 3825, 3825, 3825,    0,    0, 3825,
4374
4375      3825, 3826, 3826, 3826, 3826,    0,    0, 3826, 3826, 3827,
4376      3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3828, 3828,
4377      3828, 3828, 3828, 3828, 3828, 3828, 3828, 3829, 3829, 3829,
4378      3829,    0,    0, 3829, 3829, 3830, 3830, 3830, 3830,    0,
4379         0, 3830, 3830, 3831, 3831, 3831,    0,    0,    0, 3831,
4380      3832, 3832, 3832, 3832,    0, 3832,    0, 3832, 3833, 3833,
4381      3833, 3833,    0,    0, 3833, 3833, 3834, 3834, 3834,    0,
4382         0,    0, 3834, 3835, 3835, 3835, 3835,    0,    0, 3835,
4383      3835, 3836, 3836, 3836,    0,    0,    0, 3836, 3837, 3837,
4384      3837, 3837,    0,    0, 3837, 3837, 3838, 3838, 3838, 3838,
4385
4386         0, 3838,    0, 3838, 3839, 3839, 3839, 3839,    0,    0,
4387      3839, 3839, 3840, 3840, 3840,    0,    0,    0, 3840, 3841,
4388      3841, 3841, 3841,    0,    0, 3841, 3841, 3842, 3842, 3842,
4389         0,    0,    0, 3842, 3843, 3843, 3843, 3843,    0,    0,
4390      3843, 3843, 3844, 3844, 3844, 3844,    0,    0, 3844, 3844,
4391      3845, 3845, 3845,    0,    0,    0, 3845, 3846, 3846, 3846,
4392         0,    0,    0, 3846, 3847, 3847, 3847, 3847,    0, 3847,
4393         0, 3847, 3848, 3848, 3848, 3848,    0,    0, 3848, 3848,
4394      3849, 3849, 3849, 3849,    0, 3849,    0, 3849, 3850, 3850,
4395      3850,    0,    0,    0, 3850, 3851, 3851, 3851,    0,    0,
4396
4397         0, 3851, 3852, 3852, 3852, 3852,    0,    0, 3852, 3852,
4398      3853, 3853, 3853, 3853,    0, 3853,    0, 3853, 3854, 3854,
4399      3854, 3854,    0,    0, 3854, 3854, 3855, 3855, 3855, 3855,
4400         0,    0, 3855, 3855, 3856, 3856, 3856, 3856,    0,    0,
4401      3856, 3856, 3857, 3857, 3857, 3857,    0, 3857,    0, 3857,
4402      3858, 3858, 3858, 3858,    0,    0, 3858, 3858, 3859, 3859,
4403      3859, 3859,    0,    0, 3859, 3859, 3860, 3860, 3860, 3860,
4404      3860, 3860, 3860, 3860, 3860, 3861, 3861, 3861, 3861, 3861,
4405      3861, 3861, 3861, 3861, 3862, 3862, 3862, 3862,    0,    0,
4406      3862, 3862, 3863, 3863, 3863,    0,    0,    0, 3863, 3864,
4407
4408      3864, 3864,    0,    0,    0, 3864, 3865, 3865, 3865, 3865,
4409         0,    0, 3865, 3865, 3866, 3866, 3866,    0,    0,    0,
4410      3866, 3867, 3867, 3867, 3867,    0,    0, 3867, 3867, 3868,
4411      3868, 3868,    0,    0,    0, 3868, 3869, 3869, 3869, 3869,
4412         0,    0, 3869, 3869, 3870, 3870, 3870,    0,    0,    0,
4413      3870, 3871, 3871, 3871, 3871,    0,    0, 3871, 3871, 3872,
4414      3872, 3872,    0,    0,    0, 3872, 3873, 3873, 3873,    0,
4415         0,    0, 3873, 3874, 3874, 3874,    0,    0,    0, 3874,
4416      3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3876,
4417      3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3877, 3877,
4418
4419      3877, 3877, 3877, 3877, 3877, 3877, 3877, 3878, 3878, 3878,
4420      3878, 3878, 3878, 3878, 3878, 3878, 3879, 3879, 3879, 3879,
4421      3879, 3879, 3879, 3879, 3879, 3880, 3880, 3880, 3880, 3880,
4422      3880, 3880, 3880, 3880, 3387, 3387, 3387, 3387, 3387, 3387,
4423      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4424      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4425      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4426      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4427      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4428      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4429
4430      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387
4431     } ;
4432
4433 /* Table of booleans, true if rule could match eol. */
4434 static yyconst flex_int32_t yy_rule_can_match_eol[577] =
4435     {   0,
4436 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4437     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4438     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4439     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4440     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4441     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4442     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4443     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4444     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4445     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4446     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4447     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4448     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4449     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4450     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4451     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4452     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4453     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4454     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4455     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4456     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4457     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4458     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4459     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4460     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4461     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4462     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4463     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 
4464     0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4465
4466 static yy_state_type yy_last_accepting_state;
4467 static char *yy_last_accepting_cpos;
4468
4469 extern int surf_parse__flex_debug;
4470 int surf_parse__flex_debug = 0;
4471
4472 /* The intent behind this definition is that it'll catch
4473  * any uses of REJECT which flex missed.
4474  */
4475 #define REJECT reject_used_but_not_detected
4476 #define yymore() yymore_used_but_not_detected
4477 #define YY_MORE_ADJ 0
4478 #define YY_RESTORE_YY_MORE_OFFSET
4479 char *surf_parse_text;
4480 /* Validating XML processor for src/surf/simgrid.dtd.
4481  *
4482  * This program was generated with the FleXML XML processor generator.
4483  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4484  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4485  * (1.9.6).
4486  * 
4487  * There are two, intertwined parts to this program, part A and part B.
4488  *
4489  * Part A
4490  * ------
4491  * 
4492  * Some parts, here collectively called "Part A", are found in the 
4493  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4494  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4495  *
4496  * You can redistribute, use, perform, display and/or modify "Part A"
4497  * provided the following two conditions hold:
4498  *
4499  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4500  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4501  *    FITNESS FOR A PARTICULAR PURPOSE.
4502  *
4503  * 2. The program distribution conditions do not in any way affect the
4504  *    distribution conditions of the FleXML system used to generate this
4505  *    file or any version of FleXML derived from that system.
4506  *
4507  * Notice that these are explicit rights granted to you for files
4508  * generated by the FleXML system.  For your rights in connection with
4509  * the FleXML system itself please consult the GNU General Public License.
4510  * 
4511  * Part B
4512  * ------
4513  * 
4514  * The other parts, here collectively called "Part B", and which came 
4515  * from the DTD used by FleXML to generate this program, can be 
4516  * distributed (or not, as the case may be) under the terms of whoever
4517  * wrote them, provided these terms respect and obey the two conditions 
4518  * above under the heading "Part A".
4519  *
4520  * The author of and contributors to FleXML specifically disclaim
4521  * any copyright interest in "Part B", unless "Part B" was written 
4522  * by the author of or contributors to FleXML.
4523  * 
4524  */
4525
4526 /* Version strings. */
4527 const char surfxml_flexml_version[] = "1.9.6";
4528
4529 /* ANSI headers. */
4530 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4531 #include <stdio.h>
4532 #include <string.h>
4533 #include <assert.h>
4534 #include <stdarg.h>
4535 #include <ctype.h>
4536      
4537 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4538 # ifndef __STRICT_ANSI__
4539 #  include <io.h>
4540 #  include <process.h>
4541 # endif
4542 #else
4543 # include <unistd.h>
4544 #endif
4545      
4546 #ifndef FLEXML_INDEXSTACKSIZE
4547 #define FLEXML_INDEXSTACKSIZE 1000
4548 #endif
4549
4550 /* Generated definitions. */
4551 #define FLEXML_yylineno
4552 #ifndef FLEXML_BUFFERSTACKSIZE
4553 #define FLEXML_BUFFERSTACKSIZE 1000000
4554 #endif
4555 #define FLEXML_NEED_BUFFERLIT
4556
4557 /* XML processor api. */
4558 /* FleXML-provided data. */
4559 int surfxml_pcdata_ix;
4560 extern char *surfxml_bufferstack;
4561 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4562 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4563 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4564 short int surfxml_cabinet_power_isset;
4565 AT_surfxml_host_state AX_surfxml_host_state;
4566 #define A_surfxml_host_state AX_surfxml_host_state
4567 short int surfxml_host_state_isset;
4568 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4569 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4570 short int surfxml_bypassASroute_src_isset;
4571 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4572 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4573 short int surfxml_cluster_topo___parameters_isset;
4574 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4575 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4576 short int surfxml_link_sharing___policy_isset;
4577 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4578 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4579 short int surfxml_storage_typeId_isset;
4580 AT_surfxml_storage_id AX_surfxml_storage_id;
4581 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4582 short int surfxml_storage_id_isset;
4583 AT_surfxml_peer_power AX_surfxml_peer_power;
4584 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4585 short int surfxml_peer_power_isset;
4586 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4587 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4588 short int surfxml_bypassRoute_src_isset;
4589 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4590 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4591 short int surfxml_trace___connect_kind_isset;
4592 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4593 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4594 short int surfxml_backbone_id_isset;
4595 AT_surfxml_config_id AX_surfxml_config_id;
4596 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4597 short int surfxml_config_id_isset;
4598 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4599 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4600 short int surfxml_cabinet_bw_isset;
4601 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4602 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4603 short int surfxml_cabinet_id_isset;
4604 AT_surfxml_trace_id AX_surfxml_trace_id;
4605 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4606 short int surfxml_trace_id_isset;
4607 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4608 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4609 short int surfxml_gpu_name_isset;
4610 AT_surfxml_random_generator AX_surfxml_random_generator;
4611 #define A_surfxml_random_generator AX_surfxml_random_generator
4612 short int surfxml_random_generator_isset;
4613 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4614 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4615 short int surfxml_ASroute_src_isset;
4616 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4617 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4618 short int surfxml_backbone_latency_isset;
4619 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4620 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4621 short int surfxml_storage___type_content_isset;
4622 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4623 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4624 short int surfxml_trace___connect_element_isset;
4625 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4626 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4627 short int surfxml_cluster_topology_isset;
4628 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4629 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4630 short int surfxml_host_state___file_isset;
4631 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4632 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4633 short int surfxml_cluster_suffix_isset;
4634 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4635 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4636 short int surfxml_random_std___deviation_isset;
4637 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4638 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4639 short int surfxml_AS_routing_isset;
4640 AT_surfxml_argument_value AX_surfxml_argument_value;
4641 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4642 short int surfxml_argument_value_isset;
4643 AT_surfxml_platform_version AX_surfxml_platform_version;
4644 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4645 short int surfxml_platform_version_isset;
4646 AT_surfxml_link_latency AX_surfxml_link_latency;
4647 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4648 short int surfxml_link_latency_isset;
4649 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4650 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4651 short int surfxml_cluster_core_isset;
4652 AT_surfxml_storage_content AX_surfxml_storage_content;
4653 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4654 short int surfxml_storage_content_isset;
4655 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4656 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4657 short int surfxml_router_coordinates_isset;
4658 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4659 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4660 short int surfxml_host___link_id_isset;
4661 AT_surfxml_link_id AX_surfxml_link_id;
4662 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4663 short int surfxml_link_id_isset;
4664 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4665 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4666 short int surfxml_ASroute_gw___src_isset;
4667 AT_surfxml_prop_id AX_surfxml_prop_id;
4668 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4669 short int surfxml_prop_id_isset;
4670 AT_surfxml_include_file AX_surfxml_include_file;
4671 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4672 short int surfxml_include_file_isset;
4673 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4674 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4675 short int surfxml_storage___type_size_isset;
4676 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4677 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4678 short int surfxml_link_latency___file_isset;
4679 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4680 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4681 short int surfxml_ASroute_gw___dst_isset;
4682 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4683 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4684 short int surfxml_storage___type_model_isset;
4685 AT_surfxml_host_availability AX_surfxml_host_availability;
4686 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4687 short int surfxml_host_availability_isset;
4688 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4689 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4690 short int surfxml_cabinet_lat_isset;
4691 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4692 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4693 short int surfxml_storage___type_content___type_isset;
4694 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4695 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4696 short int surfxml_process_kill___time_isset;
4697 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4698 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4699 short int surfxml_mstorage_name_isset;
4700 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4701 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4702 short int surfxml_link___ctn_direction_isset;
4703 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4704 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4705 short int surfxml_cluster_router___id_isset;
4706 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4707 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4708 short int surfxml_host_pstate_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_cabinet_prefix AX_surfxml_cabinet_prefix;
4713 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4714 short int surfxml_cabinet_prefix_isset;
4715 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4716 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4717 short int surfxml_trace_periodicity_isset;
4718 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4719 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4720 short int surfxml_cluster_radical_isset;
4721 AT_surfxml_random_radical AX_surfxml_random_radical;
4722 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4723 short int surfxml_random_radical_isset;
4724 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4725 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4726 short int surfxml_link_bandwidth___file_isset;
4727 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4728 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4729 short int surfxml_peer_bw___out_isset;
4730 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4731 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4732 short int surfxml_mstorage_typeId_isset;
4733 AT_surfxml_random_seed AX_surfxml_random_seed;
4734 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4735 short int surfxml_random_seed_isset;
4736 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4737 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4738 short int surfxml_cluster_state___file_isset;
4739 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4740 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4741 short int surfxml_storage___type_id_isset;
4742 AT_surfxml_trace_file AX_surfxml_trace_file;
4743 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4744 short int surfxml_trace_file_isset;
4745 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4746 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4747 short int surfxml_peer_lat_isset;
4748 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4749 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4750 short int surfxml_cluster_bw_isset;
4751 AT_surfxml_random_max AX_surfxml_random_max;
4752 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4753 short int surfxml_random_max_isset;
4754 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4755 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4756 short int surfxml_cluster_lat_isset;
4757 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4758 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4759 short int surfxml_link_bandwidth_isset;
4760 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4761 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4762 short int surfxml_bypassRoute_dst_isset;
4763 AT_surfxml_route_dst AX_surfxml_route_dst;
4764 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4765 short int surfxml_route_dst_isset;
4766 AT_surfxml_random_id AX_surfxml_random_id;
4767 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4768 short int surfxml_random_id_isset;
4769 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4770 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4771 short int surfxml_ASroute_dst_isset;
4772 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4773 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4774 short int surfxml_link_state___file_isset;
4775 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4776 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4777 short int surfxml_backbone_bandwidth_isset;
4778 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4779 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4780 short int surfxml_bypassASroute_gw___dst_isset;
4781 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4782 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4783 short int surfxml_process_start___time_isset;
4784 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4785 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4786 short int surfxml_trace___connect_trace_isset;
4787 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4788 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4789 short int surfxml_host_coordinates_isset;
4790 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4791 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4792 short int surfxml_cluster_bb___bw_isset;
4793 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4794 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4795 short int surfxml_cluster_bb___lat_isset;
4796 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4797 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4798 short int surfxml_cabinet_suffix_isset;
4799 AT_surfxml_link_state AX_surfxml_link_state;
4800 #define A_surfxml_link_state AX_surfxml_link_state
4801 short int surfxml_link_state_isset;
4802 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4803 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4804 short int surfxml_cabinet_radical_isset;
4805 AT_surfxml_process_function AX_surfxml_process_function;
4806 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4807 short int surfxml_process_function_isset;
4808 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4809 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4810 short int surfxml_cluster_loopback___lat_isset;
4811 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4812 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4813 short int surfxml_cluster_loopback___bw_isset;
4814 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4815 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4816 short int surfxml_process_on___failure_isset;
4817 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4818 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4819 short int surfxml_storage_content___type_isset;
4820 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4821 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4822 short int surfxml_host___link_up_isset;
4823 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4824 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4825 short int surfxml_cluster_limiter___link_isset;
4826 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4827 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4828 short int surfxml_peer_availability___file_isset;
4829 AT_surfxml_host_power AX_surfxml_host_power;
4830 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4831 short int surfxml_host_power_isset;
4832 AT_surfxml_process_host AX_surfxml_process_host;
4833 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4834 short int surfxml_process_host_isset;
4835 AT_surfxml_route_src AX_surfxml_route_src;
4836 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4837 short int surfxml_route_src_isset;
4838 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4839 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4840 short int surfxml_host___link_down_isset;
4841 AT_surfxml_prop_value AX_surfxml_prop_value;
4842 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4843 short int surfxml_prop_value_isset;
4844 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4845 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4846 short int surfxml_peer_coordinates_isset;
4847 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4848 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4849 short int surfxml_route_symmetrical_isset;
4850 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4851 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4852 short int surfxml_cluster_prefix_isset;
4853 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4854 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4855 short int surfxml_bypassASroute_dst_isset;
4856 AT_surfxml_random_mean AX_surfxml_random_mean;
4857 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4858 short int surfxml_random_mean_isset;
4859 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4860 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4861 short int surfxml_cluster_sharing___policy_isset;
4862 AT_surfxml_mount_name AX_surfxml_mount_name;
4863 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4864 short int surfxml_mount_name_isset;
4865 AT_surfxml_host_core AX_surfxml_host_core;
4866 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4867 short int surfxml_host_core_isset;
4868 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4869 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4870 short int surfxml_cluster_bb___sharing___policy_isset;
4871 AT_surfxml_peer_id AX_surfxml_peer_id;
4872 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4873 short int surfxml_peer_id_isset;
4874 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4875 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4876 short int surfxml_mount_storageId_isset;
4877 AT_surfxml_AS_id AX_surfxml_AS_id;
4878 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4879 short int surfxml_AS_id_isset;
4880 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4881 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4882 short int surfxml_cluster_availability___file_isset;
4883 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4884 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4885 short int surfxml_link___ctn_id_isset;
4886 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4887 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4888 short int surfxml_ASroute_symmetrical_isset;
4889 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4890 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4891 short int surfxml_cluster_id_isset;
4892 AT_surfxml_router_id AX_surfxml_router_id;
4893 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4894 short int surfxml_router_id_isset;
4895 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4896 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4897 short int surfxml_bypassASroute_gw___src_isset;
4898 AT_surfxml_host_id AX_surfxml_host_id;
4899 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4900 short int surfxml_host_id_isset;
4901 AT_surfxml_random_min AX_surfxml_random_min;
4902 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4903 short int surfxml_random_min_isset;
4904 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4905 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4906 short int surfxml_peer_bw___in_isset;
4907 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4908 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4909 short int surfxml_peer_state___file_isset;
4910 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4911 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4912 short int surfxml_host_availability___file_isset;
4913
4914 /* XML state. */
4915 #ifdef FLEX_DEBUG
4916 # define ENTER(state)   debug_enter(state,#state)
4917 # define LEAVE          debug_leave()
4918 # define SET(state)     debug_set(state,#state)
4919   static void debug_enter(int, const char*);
4920   static void debug_leave(void);
4921   static void debug_set(int, const char*);
4922 #else
4923 # define ENTER(state)   (yy_push_state(state))
4924 # define LEAVE          (yy_pop_state())
4925 # define SET(state)     BEGIN(state)
4926 #endif
4927
4928 /* Generic actions. */
4929 #define SKIP    /*skip*/
4930 #define SUCCEED        CLEANUP; return 0
4931
4932 #define FAIL    return fail
4933 static int fail(const char*, ...);
4934
4935 enum {flexml_max_err_msg_size = 512};
4936 static char flexml_err_msg[flexml_max_err_msg_size];
4937 const char * surfxml_parse_err_msg()
4938 {
4939     return flexml_err_msg;
4940 }
4941 static void reset_surfxml_parse_err_msg()
4942 {
4943     flexml_err_msg[0] = '\0';
4944 }
4945
4946 /* Cleanup */
4947 static void cleanup(void);
4948 #define CLEANUP  cleanup()
4949
4950 /* Text buffer stack handling. */
4951 char *surfxml_bufferstack = NULL;
4952 static int blimit = FLEXML_BUFFERSTACKSIZE;
4953 static int bnext = 1;
4954
4955 static int *indexstack = NULL;
4956 static int ilimit = FLEXML_INDEXSTACKSIZE;
4957 static int inext = 1;
4958
4959 #define BUFFERSET(P)  (P = bnext)
4960 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4961 #define BUFFERDONE    (BUFFERPUTC('\0'))
4962
4963 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4964
4965 /* after this is called, there are at least 2 slots left in the stack */
4966 static int ck_blimit()
4967 {
4968      if (bnext >= blimit) {
4969          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4970          {
4971              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4972              assert(temp);
4973              surfxml_bufferstack = temp;
4974          }
4975      }
4976      return 0;
4977 }
4978
4979 /* after this is called, there are at least 2 slots left in the stack */
4980 static int ck_ilimit()
4981 {
4982      if (inext >= ilimit) {
4983          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4984          {
4985              int *temp = (int *) realloc(indexstack, ilimit);
4986              assert(temp);
4987              indexstack = temp;
4988          }
4989      }
4990      return 0;
4991 }
4992
4993 #ifdef FLEXML_NEED_BUFFERLIT
4994 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4995 {
4996    BUFFERSET(*pp);
4997    if (c) {
4998       const char *s = strchr(text, c), *e = strrchr(text, c);
4999       assert(s && e && s <= e);
5000       ++s;
5001       while (s < e) {
5002          if (isspace(*s)) {
5003             BUFFERPUTC(' ');
5004             do ++s; while (s < e && isspace(*s));
5005          } else
5006            BUFFERPUTC(*s++);
5007       }
5008    } else {
5009       const char *s = text;
5010       while (*s)
5011         BUFFERPUTC(*s++);
5012    }
5013    BUFFERDONE;
5014 }
5015 #endif
5016
5017 static void pushbuffer(int p)
5018 {
5019     ck_ilimit();
5020     indexstack[inext++] = p;
5021     indexstack[inext++] = bnext;    
5022 }
5023
5024 static int popbuffer(void)
5025 {
5026     assert(inext >= 2);
5027     bnext = indexstack[--inext];
5028     return indexstack[--inext];
5029 }
5030
5031 /* General internal entities are `unput' back onto the input stream... */
5032 #define ENTITYTEXT(T) \
5033   { char *s = (T), *e = s+strlen(s);\
5034     while (--e >= s) { unput(*e); }}
5035
5036 /* Flex standard options. */
5037 #define YY_NO_INPUT 1
5038 /* Flex user-requested options. */
5039 /* XML character classes (currently restricted to ASCII). */
5040 /* "Common syntactic structures." */
5041 /* "Names and Tokens." */
5042 /* Miscellaneous. */
5043 /* Parser states (flex `exclusive start conditions'):
5044  *
5045  * PROLOG       the XML prolog of the document before <?xml...>
5046  * DOCTYPE      the XML prolog of the document after <?xml...>
5047  * EPILOG       after the root element
5048  * INCOMMENT    inside an XML comment <!--....-->
5049  * INPI         inside an XML PI <?...?>
5050  * VALUE1       inside a '...'-delimited literal
5051  * VALUE2       inside a "..."-delimited literal
5052  * CDATA        inside a <![CDATA[...] ]> section.
5053  * ROOT_<tag>   expect root element <tag>
5054  * AL_<tag>     inside the attribute list for <tag>
5055  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5056  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5057  */
5058
5059 /* State names. */
5060 const char* *surfxml_statenames=NULL;
5061
5062 #define INITIAL 0
5063 #define PROLOG 1
5064 #define DOCTYPE 2
5065 #define EPILOG 3
5066 #define INCOMMENT 4
5067 #define INPI 5
5068 #define VALUE1 6
5069 #define VALUE2 7
5070 #define CDATA 8
5071 #define ROOT_surfxml_platform 9
5072 #define AL_surfxml_platform 10
5073 #define S_surfxml_platform 11
5074 #define S_surfxml_platform_1 12
5075 #define S_surfxml_platform_2 13
5076 #define S_surfxml_platform_3 14
5077 #define S_surfxml_platform_4 15
5078 #define S_surfxml_platform_5 16
5079 #define S_surfxml_platform_6 17
5080 #define S_surfxml_platform_7 18
5081 #define S_surfxml_platform_8 19
5082 #define E_surfxml_platform 20
5083 #define AL_surfxml_include 21
5084 #define S_surfxml_include 22
5085 #define S_surfxml_include_1 23
5086 #define S_surfxml_include_2 24
5087 #define E_surfxml_include 25
5088 #define AL_surfxml_trace 26
5089 #define IN_trace 27
5090 #define AL_surfxml_random 28
5091 #define E_surfxml_random 29
5092 #define AL_surfxml_trace___connect 30
5093 #define E_surfxml_trace___connect 31
5094 #define AL_surfxml_AS 32
5095 #define S_surfxml_AS 33
5096 #define S_surfxml_AS_1 34
5097 #define S_surfxml_AS_2 35
5098 #define S_surfxml_AS_3 36
5099 #define S_surfxml_AS_4 37
5100 #define S_surfxml_AS_5 38
5101 #define S_surfxml_AS_6 39
5102 #define S_surfxml_AS_7 40
5103 #define S_surfxml_AS_8 41
5104 #define S_surfxml_AS_9 42
5105 #define S_surfxml_AS_10 43
5106 #define S_surfxml_AS_11 44
5107 #define S_surfxml_AS_12 45
5108 #define S_surfxml_AS_13 46
5109 #define S_surfxml_AS_14 47
5110 #define S_surfxml_AS_15 48
5111 #define S_surfxml_AS_16 49
5112 #define E_surfxml_AS 50
5113 #define AL_surfxml_storage___type 51
5114 #define S_surfxml_storage___type 52
5115 #define S_surfxml_storage___type_1 53
5116 #define S_surfxml_storage___type_2 54
5117 #define E_surfxml_storage___type 55
5118 #define AL_surfxml_storage 56
5119 #define S_surfxml_storage 57
5120 #define S_surfxml_storage_1 58
5121 #define S_surfxml_storage_2 59
5122 #define E_surfxml_storage 60
5123 #define AL_surfxml_mount 61
5124 #define E_surfxml_mount 62
5125 #define AL_surfxml_mstorage 63
5126 #define E_surfxml_mstorage 64
5127 #define AL_surfxml_host 65
5128 #define S_surfxml_host 66
5129 #define S_surfxml_host_1 67
5130 #define S_surfxml_host_2 68
5131 #define E_surfxml_host 69
5132 #define AL_surfxml_gpu 70
5133 #define E_surfxml_gpu 71
5134 #define AL_surfxml_host___link 72
5135 #define E_surfxml_host___link 73
5136 #define AL_surfxml_cluster 74
5137 #define S_surfxml_cluster 75
5138 #define S_surfxml_cluster_1 76
5139 #define S_surfxml_cluster_2 77
5140 #define E_surfxml_cluster 78
5141 #define AL_surfxml_cabinet 79
5142 #define E_surfxml_cabinet 80
5143 #define AL_surfxml_peer 81
5144 #define E_surfxml_peer 82
5145 #define AL_surfxml_router 83
5146 #define E_surfxml_router 84
5147 #define AL_surfxml_backbone 85
5148 #define E_surfxml_backbone 86
5149 #define AL_surfxml_link 87
5150 #define S_surfxml_link 88
5151 #define S_surfxml_link_1 89
5152 #define S_surfxml_link_2 90
5153 #define E_surfxml_link 91
5154 #define AL_surfxml_route 92
5155 #define S_surfxml_route 93
5156 #define S_surfxml_route_1 94
5157 #define S_surfxml_route_2 95
5158 #define E_surfxml_route 96
5159 #define AL_surfxml_ASroute 97
5160 #define S_surfxml_ASroute 98
5161 #define S_surfxml_ASroute_1 99
5162 #define S_surfxml_ASroute_2 100
5163 #define E_surfxml_ASroute 101
5164 #define AL_surfxml_link___ctn 102
5165 #define E_surfxml_link___ctn 103
5166 #define AL_surfxml_bypassRoute 104
5167 #define S_surfxml_bypassRoute 105
5168 #define S_surfxml_bypassRoute_1 106
5169 #define S_surfxml_bypassRoute_2 107
5170 #define E_surfxml_bypassRoute 108
5171 #define AL_surfxml_bypassASroute 109
5172 #define S_surfxml_bypassASroute 110
5173 #define S_surfxml_bypassASroute_1 111
5174 #define S_surfxml_bypassASroute_2 112
5175 #define E_surfxml_bypassASroute 113
5176 #define AL_surfxml_process 114
5177 #define S_surfxml_process 115
5178 #define S_surfxml_process_1 116
5179 #define S_surfxml_process_2 117
5180 #define E_surfxml_process 118
5181 #define AL_surfxml_argument 119
5182 #define E_surfxml_argument 120
5183 #define AL_surfxml_config 121
5184 #define S_surfxml_config 122
5185 #define S_surfxml_config_1 123
5186 #define S_surfxml_config_2 124
5187 #define E_surfxml_config 125
5188 #define AL_surfxml_prop 126
5189 #define E_surfxml_prop 127
5190 #define IMPOSSIBLE 128
5191
5192 #ifndef YY_NO_UNISTD_H
5193 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5194  * down here because we want the user's section 1 to have been scanned first.
5195  * The user has a chance to override it with an option.
5196  */
5197 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5198 #  ifndef __STRICT_ANSI__
5199 #    include <io.h>
5200 #    include <process.h>
5201 #  endif
5202 #else
5203 #  include <unistd.h>
5204 #endif
5205 #endif
5206
5207 #ifndef YY_EXTRA_TYPE
5208 #define YY_EXTRA_TYPE void *
5209 #endif
5210
5211 static int yy_init_globals (void );
5212
5213 /* Accessor methods to globals.
5214    These are made visible to non-reentrant scanners for convenience. */
5215
5216 int surf_parse_lex_destroy (void );
5217
5218 int surf_parse_get_debug (void );
5219
5220 void surf_parse_set_debug (int debug_flag  );
5221
5222 YY_EXTRA_TYPE surf_parse_get_extra (void );
5223
5224 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5225
5226 FILE *surf_parse_get_in (void );
5227
5228 void surf_parse_set_in  (FILE * in_str  );
5229
5230 FILE *surf_parse_get_out (void );
5231
5232 void surf_parse_set_out  (FILE * out_str  );
5233
5234 int surf_parse_get_leng (void );
5235
5236 char *surf_parse_get_text (void );
5237
5238 int surf_parse_get_lineno (void );
5239
5240 void surf_parse_set_lineno (int line_number  );
5241
5242 /* Macros after this point can all be overridden by user definitions in
5243  * section 1.
5244  */
5245
5246 #ifndef YY_SKIP_YYWRAP
5247 #ifdef __cplusplus
5248 extern "C" int surf_parse_wrap (void );
5249 #else
5250 extern int surf_parse_wrap (void );
5251 #endif
5252 #endif
5253
5254 #ifndef yytext_ptr
5255 static void yy_flex_strncpy (char *,yyconst char *,int );
5256 #endif
5257
5258 #ifdef YY_NEED_STRLEN
5259 static int yy_flex_strlen (yyconst char * );
5260 #endif
5261
5262 #ifndef YY_NO_INPUT
5263
5264 #ifdef __cplusplus
5265 static int yyinput (void );
5266 #else
5267 static int input (void );
5268 #endif
5269
5270 #endif
5271
5272         static int yy_start_stack_ptr = 0;
5273         static int yy_start_stack_depth = 0;
5274         static int *yy_start_stack = NULL;
5275     
5276     static void yy_push_state (int new_state );
5277     
5278     static void yy_pop_state (void );
5279     
5280 /* Amount of stuff to slurp up with each read. */
5281 #ifndef YY_READ_BUF_SIZE
5282 #ifdef __ia64__
5283 /* On IA-64, the buffer size is 16k, not 8k */
5284 #define YY_READ_BUF_SIZE 16384
5285 #else
5286 #define YY_READ_BUF_SIZE 8192
5287 #endif /* __ia64__ */
5288 #endif
5289
5290 /* Copy whatever the last rule matched to the standard output. */
5291 #ifndef ECHO
5292 /* This used to be an fputs(), but since the string might contain NUL's,
5293  * we now use fwrite().
5294  */
5295 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5296 #endif
5297
5298 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5299  * is returned in "result".
5300  */
5301 #ifndef YY_INPUT
5302 #define YY_INPUT(buf,result,max_size) \
5303         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5304                 { \
5305                 int c = '*'; \
5306                 size_t n; \
5307                 for ( n = 0; n < max_size && \
5308                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5309                         buf[n] = (char) c; \
5310                 if ( c == '\n' ) \
5311                         buf[n++] = (char) c; \
5312                 if ( c == EOF && ferror( surf_parse_in ) ) \
5313                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5314                 result = n; \
5315                 } \
5316         else \
5317                 { \
5318                 errno=0; \
5319                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5320                         { \
5321                         if( errno != EINTR) \
5322                                 { \
5323                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5324                                 break; \
5325                                 } \
5326                         errno=0; \
5327                         clearerr(surf_parse_in); \
5328                         } \
5329                 }\
5330 \
5331
5332 #endif
5333
5334 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5335  * we don't want an extra ';' after the "return" because that will cause
5336  * some compilers to complain about unreachable statements.
5337  */
5338 #ifndef yyterminate
5339 #define yyterminate() return YY_NULL
5340 #endif
5341
5342 /* Number of entries by which start-condition stack grows. */
5343 #ifndef YY_START_STACK_INCR
5344 #define YY_START_STACK_INCR 25
5345 #endif
5346
5347 /* Report a fatal error. */
5348 #ifndef YY_FATAL_ERROR
5349 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5350 #endif
5351
5352 /* end tables serialization structures and prototypes */
5353
5354 /* Default declaration of generated scanner - a define so the user can
5355  * easily add parameters.
5356  */
5357 #ifndef YY_DECL
5358 #define YY_DECL_IS_OURS 1
5359
5360 extern int surf_parse_lex (void);
5361
5362 #define YY_DECL int surf_parse_lex (void)
5363 #endif /* !YY_DECL */
5364
5365 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5366  * have been set up.
5367  */
5368 #ifndef YY_USER_ACTION
5369 #define YY_USER_ACTION
5370 #endif
5371
5372 /* Code executed at the end of each rule. */
5373 #ifndef YY_BREAK
5374 #define YY_BREAK break;
5375 #endif
5376
5377 #define YY_RULE_SETUP \
5378         YY_USER_ACTION
5379
5380 /** The main scanner function which does all the work.
5381  */
5382 YY_DECL
5383 {
5384         register yy_state_type yy_current_state;
5385         register char *yy_cp, *yy_bp;
5386         register int yy_act;
5387     
5388  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5389  SET(PROLOG);
5390  reset_surfxml_parse_err_msg();
5391  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5392  assert(surfxml_bufferstack);
5393  #ifdef FLEX_DEBUG
5394  {
5395      int i;
5396      for (i = 0; i < blimit; i++) {
5397          surfxml_bufferstack[i] = '\377';
5398      }
5399  }
5400  #endif
5401  surfxml_bufferstack[0] = '\0';
5402  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5403  assert(indexstack);
5404  indexstack[0] = 0;
5405
5406   /* FleXML_init */
5407   bnext = inext = 1;
5408   surfxml_bufferliteral('\0', &bnext, "0.0");
5409   surfxml_bufferliteral('\0', &bnext, "2147483647");
5410   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5411   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5412   surfxml_bufferliteral('\0', &bnext, "1");
5413   surfxml_bufferliteral('\0', &bnext, "1.0");
5414   surfxml_bufferliteral('\0', &bnext, "0.0");
5415   surfxml_bufferliteral('\0', &bnext, "1");
5416   surfxml_bufferliteral('\0', &bnext, "0.0");
5417   surfxml_bufferliteral('\0', &bnext, "-1.0");
5418   surfxml_bufferliteral('\0', &bnext, "-1.0");
5419   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5420   surfxml_statenames[PROLOG] = NULL;
5421   surfxml_statenames[DOCTYPE] = NULL;
5422   surfxml_statenames[EPILOG] = NULL;
5423   surfxml_statenames[INCOMMENT] = NULL;
5424   surfxml_statenames[INPI] = NULL;
5425   surfxml_statenames[VALUE1] = NULL;
5426   surfxml_statenames[VALUE2] = NULL;
5427   surfxml_statenames[CDATA] = NULL;
5428   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5429   surfxml_statenames[AL_surfxml_platform] = NULL;
5430   surfxml_statenames[S_surfxml_platform] = "platform";
5431   surfxml_statenames[S_surfxml_platform_1] = "platform";
5432   surfxml_statenames[S_surfxml_platform_2] = "platform";
5433   surfxml_statenames[S_surfxml_platform_3] = "platform";
5434   surfxml_statenames[S_surfxml_platform_4] = "platform";
5435   surfxml_statenames[S_surfxml_platform_5] = "platform";
5436   surfxml_statenames[S_surfxml_platform_6] = "platform";
5437   surfxml_statenames[S_surfxml_platform_7] = "platform";
5438   surfxml_statenames[S_surfxml_platform_8] = "platform";
5439   surfxml_statenames[E_surfxml_platform] = "platform";
5440   surfxml_statenames[AL_surfxml_include] = NULL;
5441   surfxml_statenames[S_surfxml_include] = "include";
5442   surfxml_statenames[S_surfxml_include_1] = "include";
5443   surfxml_statenames[S_surfxml_include_2] = "include";
5444   surfxml_statenames[E_surfxml_include] = "include";
5445   surfxml_statenames[AL_surfxml_trace] = NULL;
5446   surfxml_statenames[IN_trace] = "trace";
5447   surfxml_statenames[AL_surfxml_random] = NULL;
5448   surfxml_statenames[E_surfxml_random] = "random";
5449   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5450   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5451   surfxml_statenames[AL_surfxml_AS] = NULL;
5452   surfxml_statenames[S_surfxml_AS] = "AS";
5453   surfxml_statenames[S_surfxml_AS_1] = "AS";
5454   surfxml_statenames[S_surfxml_AS_2] = "AS";
5455   surfxml_statenames[S_surfxml_AS_3] = "AS";
5456   surfxml_statenames[S_surfxml_AS_4] = "AS";
5457   surfxml_statenames[S_surfxml_AS_5] = "AS";
5458   surfxml_statenames[S_surfxml_AS_6] = "AS";
5459   surfxml_statenames[S_surfxml_AS_7] = "AS";
5460   surfxml_statenames[S_surfxml_AS_8] = "AS";
5461   surfxml_statenames[S_surfxml_AS_9] = "AS";
5462   surfxml_statenames[S_surfxml_AS_10] = "AS";
5463   surfxml_statenames[S_surfxml_AS_11] = "AS";
5464   surfxml_statenames[S_surfxml_AS_12] = "AS";
5465   surfxml_statenames[S_surfxml_AS_13] = "AS";
5466   surfxml_statenames[S_surfxml_AS_14] = "AS";
5467   surfxml_statenames[S_surfxml_AS_15] = "AS";
5468   surfxml_statenames[S_surfxml_AS_16] = "AS";
5469   surfxml_statenames[E_surfxml_AS] = "AS";
5470   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5471   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5472   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5473   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5474   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5475   surfxml_statenames[AL_surfxml_storage] = NULL;
5476   surfxml_statenames[S_surfxml_storage] = "storage";
5477   surfxml_statenames[S_surfxml_storage_1] = "storage";
5478   surfxml_statenames[S_surfxml_storage_2] = "storage";
5479   surfxml_statenames[E_surfxml_storage] = "storage";
5480   surfxml_statenames[AL_surfxml_mount] = NULL;
5481   surfxml_statenames[E_surfxml_mount] = "mount";
5482   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5483   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5484   surfxml_statenames[AL_surfxml_host] = NULL;
5485   surfxml_statenames[S_surfxml_host] = "host";
5486   surfxml_statenames[S_surfxml_host_1] = "host";
5487   surfxml_statenames[S_surfxml_host_2] = "host";
5488   surfxml_statenames[E_surfxml_host] = "host";
5489   surfxml_statenames[AL_surfxml_gpu] = NULL;
5490   surfxml_statenames[E_surfxml_gpu] = "gpu";
5491   surfxml_statenames[AL_surfxml_host___link] = NULL;
5492   surfxml_statenames[E_surfxml_host___link] = "host_link";
5493   surfxml_statenames[AL_surfxml_cluster] = NULL;
5494   surfxml_statenames[S_surfxml_cluster] = "cluster";
5495   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5496   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5497   surfxml_statenames[E_surfxml_cluster] = "cluster";
5498   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5499   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5500   surfxml_statenames[AL_surfxml_peer] = NULL;
5501   surfxml_statenames[E_surfxml_peer] = "peer";
5502   surfxml_statenames[AL_surfxml_router] = NULL;
5503   surfxml_statenames[E_surfxml_router] = "router";
5504   surfxml_statenames[AL_surfxml_backbone] = NULL;
5505   surfxml_statenames[E_surfxml_backbone] = "backbone";
5506   surfxml_statenames[AL_surfxml_link] = NULL;
5507   surfxml_statenames[S_surfxml_link] = "link";
5508   surfxml_statenames[S_surfxml_link_1] = "link";
5509   surfxml_statenames[S_surfxml_link_2] = "link";
5510   surfxml_statenames[E_surfxml_link] = "link";
5511   surfxml_statenames[AL_surfxml_route] = NULL;
5512   surfxml_statenames[S_surfxml_route] = "route";
5513   surfxml_statenames[S_surfxml_route_1] = "route";
5514   surfxml_statenames[S_surfxml_route_2] = "route";
5515   surfxml_statenames[E_surfxml_route] = "route";
5516   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5517   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5518   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5519   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5520   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5521   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5522   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5523   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5524   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5525   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5526   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5527   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5528   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5529   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5530   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5531   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5532   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5533   surfxml_statenames[AL_surfxml_process] = NULL;
5534   surfxml_statenames[S_surfxml_process] = "process";
5535   surfxml_statenames[S_surfxml_process_1] = "process";
5536   surfxml_statenames[S_surfxml_process_2] = "process";
5537   surfxml_statenames[E_surfxml_process] = "process";
5538   surfxml_statenames[AL_surfxml_argument] = NULL;
5539   surfxml_statenames[E_surfxml_argument] = "argument";
5540   surfxml_statenames[AL_surfxml_config] = NULL;
5541   surfxml_statenames[S_surfxml_config] = "config";
5542   surfxml_statenames[S_surfxml_config_1] = "config";
5543   surfxml_statenames[S_surfxml_config_2] = "config";
5544   surfxml_statenames[E_surfxml_config] = "config";
5545   surfxml_statenames[AL_surfxml_prop] = NULL;
5546   surfxml_statenames[E_surfxml_prop] = "prop";
5547   }
5548
5549  /* COMMENTS and PIs: handled uniformly for efficiency. */
5550
5551         if ( !(yy_init) )
5552                 {
5553                 (yy_init) = 1;
5554
5555 #ifdef YY_USER_INIT
5556                 YY_USER_INIT;
5557 #endif
5558
5559                 if ( ! (yy_start) )
5560                         (yy_start) = 1; /* first start state */
5561
5562                 if ( ! surf_parse_in )
5563                         surf_parse_in = stdin;
5564
5565                 if ( ! surf_parse_out )
5566                         surf_parse_out = stdout;
5567
5568                 if ( ! YY_CURRENT_BUFFER ) {
5569                         surf_parse_ensure_buffer_stack ();
5570                         YY_CURRENT_BUFFER_LVALUE =
5571                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5572                 }
5573
5574                 surf_parse__load_buffer_state( );
5575                 }
5576
5577         while ( 1 )             /* loops until end-of-file is reached */
5578                 {
5579                 yy_cp = (yy_c_buf_p);
5580
5581                 /* Support of surf_parse_text. */
5582                 *yy_cp = (yy_hold_char);
5583
5584                 /* yy_bp points to the position in yy_ch_buf of the start of
5585                  * the current run.
5586                  */
5587                 yy_bp = yy_cp;
5588
5589                 yy_current_state = (yy_start);
5590 yy_match:
5591                 do
5592                         {
5593                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5594                         if ( yy_accept[yy_current_state] )
5595                                 {
5596                                 (yy_last_accepting_state) = yy_current_state;
5597                                 (yy_last_accepting_cpos) = yy_cp;
5598                                 }
5599                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5600                                 {
5601                                 yy_current_state = (int) yy_def[yy_current_state];
5602                                 if ( yy_current_state >= 3388 )
5603                                         yy_c = yy_meta[(unsigned int) yy_c];
5604                                 }
5605                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5606                         ++yy_cp;
5607                         }
5608                 while ( yy_base[yy_current_state] != 12335 );
5609
5610 yy_find_action:
5611                 yy_act = yy_accept[yy_current_state];
5612                 if ( yy_act == 0 )
5613                         { /* have to back up */
5614                         yy_cp = (yy_last_accepting_cpos);
5615                         yy_current_state = (yy_last_accepting_state);
5616                         yy_act = yy_accept[yy_current_state];
5617                         }
5618
5619                 YY_DO_BEFORE_ACTION;
5620
5621                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5622                         {
5623                         int yyl;
5624                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5625                                 if ( surf_parse_text[yyl] == '\n' )
5626                                            
5627     surf_parse_lineno++;
5628 ;
5629                         }
5630
5631 do_action:      /* This label is used only to access EOF actions. */
5632
5633                 switch ( yy_act )
5634         { /* beginning of action switch */
5635                         case 0: /* must back up */
5636                         /* undo the effects of YY_DO_BEFORE_ACTION */
5637                         *yy_cp = (yy_hold_char);
5638                         yy_cp = (yy_last_accepting_cpos);
5639                         yy_current_state = (yy_last_accepting_state);
5640                         goto yy_find_action;
5641
5642 case 1:
5643 YY_RULE_SETUP
5644 ENTER(INCOMMENT);
5645         YY_BREAK
5646 case 2:
5647 YY_RULE_SETUP
5648 ENTER(INPI);
5649         YY_BREAK
5650
5651 case 3:
5652 YY_RULE_SETUP
5653 LEAVE;
5654         YY_BREAK
5655 case 4:
5656 case 5:
5657 case 6:
5658 /* rule 6 can match eol */
5659 YY_RULE_SETUP
5660 SKIP;
5661         YY_BREAK
5662 case YY_STATE_EOF(INCOMMENT):
5663 FAIL("EOF in comment.");
5664         YY_BREAK
5665
5666 case 7:
5667 YY_RULE_SETUP
5668 LEAVE;
5669         YY_BREAK
5670 case 8:
5671 case 9:
5672 /* rule 9 can match eol */
5673 YY_RULE_SETUP
5674 SKIP;
5675         YY_BREAK
5676 case YY_STATE_EOF(INPI):
5677 FAIL("EOF in PI (processing instruction).");
5678         YY_BREAK
5679
5680 /* SPACES: skipped uniformly */
5681 case 10:
5682 /* rule 10 can match eol */
5683 YY_RULE_SETUP
5684 SKIP;
5685         YY_BREAK
5686 /* PROLOG: determine root element and process it. */
5687
5688 case 11:
5689 /* rule 11 can match eol */
5690 YY_RULE_SETUP
5691 SET(DOCTYPE); 
5692         YY_BREAK
5693 case 12:
5694 /* rule 12 can match eol */
5695 YY_RULE_SETUP
5696 FAIL("Bad declaration %s.",surf_parse_text);
5697         YY_BREAK
5698
5699 case 13:
5700 /* rule 13 can match eol */
5701 YY_RULE_SETUP
5702 SET(ROOT_surfxml_platform);
5703         YY_BREAK
5704 case 14:
5705 /* rule 14 can match eol */
5706 YY_RULE_SETUP
5707 FAIL("Bad declaration %s.",surf_parse_text);
5708         YY_BREAK
5709 case 15:
5710 YY_RULE_SETUP
5711 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5712         YY_BREAK
5713 case YY_STATE_EOF(PROLOG):
5714 case YY_STATE_EOF(DOCTYPE):
5715 FAIL("EOF in prolog.");
5716         YY_BREAK
5717
5718 /* RULES DERIVED FROM DTD. */
5719 /* <!-- Small DTD for SURF based tools. -->  */
5720 case 16:
5721 /* rule 16 can match eol */
5722 YY_RULE_SETUP
5723 FAIL("Starting tag <platform> is not allowed here.");
5724         YY_BREAK
5725 case 17:
5726 /* rule 17 can match eol */
5727 YY_RULE_SETUP
5728 {
5729   AX_surfxml_platform_version = 1;
5730   surfxml_platform_version_isset = 0;
5731   ENTER(AL_surfxml_platform); pushbuffer(0);
5732   }
5733         YY_BREAK
5734
5735 case 18:
5736 /* rule 18 can match eol */
5737 YY_RULE_SETUP
5738 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);
5739         YY_BREAK
5740 case 19:
5741 /* rule 19 can match eol */
5742 YY_RULE_SETUP
5743 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);
5744         YY_BREAK
5745 case 20:
5746 YY_RULE_SETUP
5747 {
5748   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5749  }
5750         YY_BREAK
5751 case 21:
5752 YY_RULE_SETUP
5753 {
5754   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5755   switch (YY_START) {
5756    case ROOT_surfxml_platform: SET(EPILOG); break;
5757   }
5758  }
5759         YY_BREAK
5760 case 22:
5761 YY_RULE_SETUP
5762 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5763         YY_BREAK
5764 case 23:
5765 YY_RULE_SETUP
5766 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5767         YY_BREAK
5768 case YY_STATE_EOF(AL_surfxml_platform):
5769 FAIL("EOF in attribute list of `platform' element.");
5770         YY_BREAK
5771
5772 case 24:
5773 /* rule 24 can match eol */
5774 YY_RULE_SETUP
5775 {
5776   LEAVE;
5777   ETag_surfxml_platform();
5778   popbuffer(); /* attribute */
5779   switch (YY_START) {
5780    case ROOT_surfxml_platform: SET(EPILOG); break;
5781   }
5782  }
5783         YY_BREAK
5784 case 25:
5785 /* rule 25 can match eol */
5786 YY_RULE_SETUP
5787 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5788         YY_BREAK
5789 case 26:
5790 YY_RULE_SETUP
5791 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5792         YY_BREAK
5793 case YY_STATE_EOF(S_surfxml_platform_4):
5794 case YY_STATE_EOF(S_surfxml_platform_8):
5795 case YY_STATE_EOF(S_surfxml_platform_3):
5796 case YY_STATE_EOF(E_surfxml_platform):
5797 case YY_STATE_EOF(S_surfxml_platform_6):
5798 case YY_STATE_EOF(S_surfxml_platform):
5799 case YY_STATE_EOF(S_surfxml_platform_1):
5800 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5801         YY_BREAK
5802
5803 case 27:
5804 /* rule 27 can match eol */
5805 YY_RULE_SETUP
5806 FAIL("Starting tag <include> is not allowed here.");
5807         YY_BREAK
5808 case 28:
5809 /* rule 28 can match eol */
5810 YY_RULE_SETUP
5811 {
5812   AX_surfxml_include_file = 0;
5813   surfxml_include_file_isset = 0;
5814   ENTER(AL_surfxml_include); pushbuffer(0);
5815   }
5816         YY_BREAK
5817
5818 case 29:
5819 /* rule 29 can match eol */
5820 YY_RULE_SETUP
5821 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);
5822         YY_BREAK
5823 case 30:
5824 /* rule 30 can match eol */
5825 YY_RULE_SETUP
5826 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);
5827         YY_BREAK
5828 case 31:
5829 YY_RULE_SETUP
5830 {
5831   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5832   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5833  }
5834         YY_BREAK
5835 case 32:
5836 YY_RULE_SETUP
5837 {
5838   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5839   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5840   switch (YY_START) {
5841    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
5842    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5843    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
5844    case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5845   }
5846  }
5847         YY_BREAK
5848 case 33:
5849 YY_RULE_SETUP
5850 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5851         YY_BREAK
5852 case 34:
5853 YY_RULE_SETUP
5854 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5855         YY_BREAK
5856 case YY_STATE_EOF(AL_surfxml_include):
5857 FAIL("EOF in attribute list of `include' element.");
5858         YY_BREAK
5859
5860 case 35:
5861 /* rule 35 can match eol */
5862 YY_RULE_SETUP
5863 {
5864   LEAVE;
5865   ETag_surfxml_include();
5866   popbuffer(); /* attribute */
5867   switch (YY_START) {
5868    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
5869    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5870    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
5871    case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5872   }
5873  }
5874         YY_BREAK
5875 case 36:
5876 /* rule 36 can match eol */
5877 YY_RULE_SETUP
5878 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5879         YY_BREAK
5880 case 37:
5881 YY_RULE_SETUP
5882 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5883         YY_BREAK
5884 case YY_STATE_EOF(S_surfxml_include):
5885 case YY_STATE_EOF(E_surfxml_include):
5886 case YY_STATE_EOF(S_surfxml_include_2):
5887 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5888         YY_BREAK
5889
5890 case 38:
5891 /* rule 38 can match eol */
5892 YY_RULE_SETUP
5893 FAIL("Starting tag <trace> is not allowed here.");
5894         YY_BREAK
5895 case 39:
5896 /* rule 39 can match eol */
5897 YY_RULE_SETUP
5898 {
5899   AX_surfxml_trace_id = 0;
5900   surfxml_trace_id_isset = 0;
5901   AX_surfxml_trace_file = 0;
5902   surfxml_trace_file_isset = 0;
5903   AX_surfxml_trace_periodicity = 0;
5904   surfxml_trace_periodicity_isset = 0;
5905   ENTER(AL_surfxml_trace); pushbuffer(0);
5906   }
5907         YY_BREAK
5908
5909 case 40:
5910 /* rule 40 can match eol */
5911 YY_RULE_SETUP
5912 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);
5913         YY_BREAK
5914 case 41:
5915 /* rule 41 can match eol */
5916 YY_RULE_SETUP
5917 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);
5918         YY_BREAK
5919 case 42:
5920 /* rule 42 can match eol */
5921 YY_RULE_SETUP
5922 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);
5923         YY_BREAK
5924 case 43:
5925 /* rule 43 can match eol */
5926 YY_RULE_SETUP
5927 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);
5928         YY_BREAK
5929 case 44:
5930 /* rule 44 can match eol */
5931 YY_RULE_SETUP
5932 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);
5933         YY_BREAK
5934 case 45:
5935 /* rule 45 can match eol */
5936 YY_RULE_SETUP
5937 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);
5938         YY_BREAK
5939 case 46:
5940 YY_RULE_SETUP
5941 {
5942   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5943   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5944   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5945  }
5946         YY_BREAK
5947 case 47:
5948 YY_RULE_SETUP
5949 {
5950   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5951   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5952   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5953   switch (YY_START) {
5954    case S_surfxml_AS_9: 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;
5955    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5956    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5957    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
5958    case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
5959    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5960    case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break;
5961   }
5962  }
5963         YY_BREAK
5964 case 48:
5965 YY_RULE_SETUP
5966 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5967         YY_BREAK
5968 case 49:
5969 YY_RULE_SETUP
5970 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5971         YY_BREAK
5972 case YY_STATE_EOF(AL_surfxml_trace):
5973 FAIL("EOF in attribute list of `trace' element.");
5974         YY_BREAK
5975
5976 case 50:
5977 /* rule 50 can match eol */
5978 YY_RULE_SETUP
5979 {
5980   LEAVE;
5981   BUFFERDONE;
5982   ETag_surfxml_trace();
5983   surfxml_pcdata_ix = popbuffer();
5984   popbuffer(); /* attribute */
5985   switch (YY_START) {
5986    case S_surfxml_AS_9: 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;
5987    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5988    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5989    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
5990    case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
5991    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5992    case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break;
5993   }
5994  }
5995         YY_BREAK
5996 case 51:
5997 /* rule 51 can match eol */
5998 YY_RULE_SETUP
5999 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6000         YY_BREAK
6001 case YY_STATE_EOF(IN_trace):
6002 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6003         YY_BREAK
6004
6005 case 52:
6006 /* rule 52 can match eol */
6007 YY_RULE_SETUP
6008 FAIL("Starting tag <random> is not allowed here.");
6009         YY_BREAK
6010 case 53:
6011 /* rule 53 can match eol */
6012 YY_RULE_SETUP
6013 {
6014   AX_surfxml_random_id = 0;
6015   surfxml_random_id_isset = 0;
6016   AX_surfxml_random_min = 0;
6017   surfxml_random_min_isset = 0;
6018   AX_surfxml_random_max = 0;
6019   surfxml_random_max_isset = 0;
6020   AX_surfxml_random_mean = 0;
6021   surfxml_random_mean_isset = 0;
6022   AX_surfxml_random_std___deviation = 0;
6023   surfxml_random_std___deviation_isset = 0;
6024   AX_surfxml_random_seed = 5;
6025   surfxml_random_seed_isset = 0;
6026   AX_surfxml_random_radical = 0;
6027   surfxml_random_radical_isset = 0;
6028   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6029   surfxml_random_generator_isset = 0;
6030   ENTER(AL_surfxml_random); pushbuffer(0);
6031   }
6032         YY_BREAK
6033
6034 case 54:
6035 /* rule 54 can match eol */
6036 YY_RULE_SETUP
6037 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);
6038         YY_BREAK
6039 case 55:
6040 /* rule 55 can match eol */
6041 YY_RULE_SETUP
6042 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);
6043         YY_BREAK
6044 case 56:
6045 /* rule 56 can match eol */
6046 YY_RULE_SETUP
6047 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);
6048         YY_BREAK
6049 case 57:
6050 /* rule 57 can match eol */
6051 YY_RULE_SETUP
6052 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);
6053         YY_BREAK
6054 case 58:
6055 /* rule 58 can match eol */
6056 YY_RULE_SETUP
6057 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);
6058         YY_BREAK
6059 case 59:
6060 /* rule 59 can match eol */
6061 YY_RULE_SETUP
6062 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);
6063         YY_BREAK
6064 case 60:
6065 /* rule 60 can match eol */
6066 YY_RULE_SETUP
6067 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);
6068         YY_BREAK
6069 case 61:
6070 /* rule 61 can match eol */
6071 YY_RULE_SETUP
6072 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);
6073         YY_BREAK
6074 case 62:
6075 /* rule 62 can match eol */
6076 YY_RULE_SETUP
6077 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);
6078         YY_BREAK
6079 case 63:
6080 /* rule 63 can match eol */
6081 YY_RULE_SETUP
6082 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);
6083         YY_BREAK
6084 case 64:
6085 /* rule 64 can match eol */
6086 YY_RULE_SETUP
6087 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);
6088         YY_BREAK
6089 case 65:
6090 /* rule 65 can match eol */
6091 YY_RULE_SETUP
6092 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);
6093         YY_BREAK
6094 case 66:
6095 /* rule 66 can match eol */
6096 YY_RULE_SETUP
6097 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);
6098         YY_BREAK
6099 case 67:
6100 /* rule 67 can match eol */
6101 YY_RULE_SETUP
6102 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);
6103         YY_BREAK
6104 case 68:
6105 /* rule 68 can match eol */
6106 case 69:
6107 /* rule 69 can match eol */
6108 YY_RULE_SETUP
6109 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6110         YY_BREAK
6111 case 70:
6112 /* rule 70 can match eol */
6113 case 71:
6114 /* rule 71 can match eol */
6115 YY_RULE_SETUP
6116 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6117         YY_BREAK
6118 case 72:
6119 /* rule 72 can match eol */
6120 case 73:
6121 /* rule 73 can match eol */
6122 YY_RULE_SETUP
6123 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6124         YY_BREAK
6125 case 74:
6126 /* rule 74 can match eol */
6127 case 75:
6128 /* rule 75 can match eol */
6129 YY_RULE_SETUP
6130 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6131         YY_BREAK
6132 case 76:
6133 YY_RULE_SETUP
6134 {
6135   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6136   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6137   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6138   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6139   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6140   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6141  }
6142         YY_BREAK
6143 case 77:
6144 YY_RULE_SETUP
6145 {
6146   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6147   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6148   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6149   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6150   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6151   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6152   switch (YY_START) {
6153    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6154   }
6155  }
6156         YY_BREAK
6157 case 78:
6158 YY_RULE_SETUP
6159 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6160         YY_BREAK
6161 case 79:
6162 YY_RULE_SETUP
6163 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6164         YY_BREAK
6165 case YY_STATE_EOF(AL_surfxml_random):
6166 FAIL("EOF in attribute list of `random' element.");
6167         YY_BREAK
6168
6169 case 80:
6170 /* rule 80 can match eol */
6171 YY_RULE_SETUP
6172 {
6173   LEAVE;
6174   ETag_surfxml_random();
6175   popbuffer(); /* attribute */
6176   switch (YY_START) {
6177    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6178   }
6179  }
6180         YY_BREAK
6181 case 81:
6182 /* rule 81 can match eol */
6183 YY_RULE_SETUP
6184 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6185         YY_BREAK
6186 case 82:
6187 YY_RULE_SETUP
6188 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6189         YY_BREAK
6190 case YY_STATE_EOF(E_surfxml_random):
6191 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6192         YY_BREAK
6193
6194 case 83:
6195 /* rule 83 can match eol */
6196 YY_RULE_SETUP
6197 FAIL("Starting tag <trace_connect> is not allowed here.");
6198         YY_BREAK
6199 case 84:
6200 /* rule 84 can match eol */
6201 YY_RULE_SETUP
6202 {
6203   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6204   surfxml_trace___connect_kind_isset = 0;
6205   AX_surfxml_trace___connect_trace = 0;
6206   surfxml_trace___connect_trace_isset = 0;
6207   AX_surfxml_trace___connect_element = 0;
6208   surfxml_trace___connect_element_isset = 0;
6209   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6210   }
6211         YY_BREAK
6212
6213 case 85:
6214 /* rule 85 can match eol */
6215 case 86:
6216 /* rule 86 can match eol */
6217 YY_RULE_SETUP
6218 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6219         YY_BREAK
6220 case 87:
6221 /* rule 87 can match eol */
6222 case 88:
6223 /* rule 88 can match eol */
6224 YY_RULE_SETUP
6225 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6226         YY_BREAK
6227 case 89:
6228 /* rule 89 can match eol */
6229 case 90:
6230 /* rule 90 can match eol */
6231 YY_RULE_SETUP
6232 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6233         YY_BREAK
6234 case 91:
6235 /* rule 91 can match eol */
6236 case 92:
6237 /* rule 92 can match eol */
6238 YY_RULE_SETUP
6239 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6240         YY_BREAK
6241 case 93:
6242 /* rule 93 can match eol */
6243 case 94:
6244 /* rule 94 can match eol */
6245 YY_RULE_SETUP
6246 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6247         YY_BREAK
6248 case 95:
6249 /* rule 95 can match eol */
6250 YY_RULE_SETUP
6251 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);
6252         YY_BREAK
6253 case 96:
6254 /* rule 96 can match eol */
6255 YY_RULE_SETUP
6256 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);
6257         YY_BREAK
6258 case 97:
6259 /* rule 97 can match eol */
6260 YY_RULE_SETUP
6261 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);
6262         YY_BREAK
6263 case 98:
6264 /* rule 98 can match eol */
6265 YY_RULE_SETUP
6266 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);
6267         YY_BREAK
6268 case 99:
6269 YY_RULE_SETUP
6270 {
6271   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6272   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6273   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6274  }
6275         YY_BREAK
6276 case 100:
6277 YY_RULE_SETUP
6278 {
6279   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6280   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6281   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6282   switch (YY_START) {
6283    case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6284    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6285    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6286    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6287    case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
6288    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6289    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_1: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6290   }
6291  }
6292         YY_BREAK
6293 case 101:
6294 YY_RULE_SETUP
6295 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6296         YY_BREAK
6297 case 102:
6298 YY_RULE_SETUP
6299 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6300         YY_BREAK
6301 case YY_STATE_EOF(AL_surfxml_trace___connect):
6302 FAIL("EOF in attribute list of `trace_connect' element.");
6303         YY_BREAK
6304
6305 case 103:
6306 /* rule 103 can match eol */
6307 YY_RULE_SETUP
6308 {
6309   LEAVE;
6310   ETag_surfxml_trace___connect();
6311   popbuffer(); /* attribute */
6312   switch (YY_START) {
6313    case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6314    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6315    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6316    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6317    case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
6318    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6319    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_1: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6320   }
6321  }
6322         YY_BREAK
6323 case 104:
6324 /* rule 104 can match eol */
6325 YY_RULE_SETUP
6326 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6327         YY_BREAK
6328 case 105:
6329 YY_RULE_SETUP
6330 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6331         YY_BREAK
6332 case YY_STATE_EOF(E_surfxml_trace___connect):
6333 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6334         YY_BREAK
6335
6336 case 106:
6337 /* rule 106 can match eol */
6338 YY_RULE_SETUP
6339 FAIL("Starting tag <AS> is not allowed here.");
6340         YY_BREAK
6341 case 107:
6342 /* rule 107 can match eol */
6343 YY_RULE_SETUP
6344 {
6345   AX_surfxml_AS_id = 0;
6346   surfxml_AS_id_isset = 0;
6347   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6348   surfxml_AS_routing_isset = 0;
6349   ENTER(AL_surfxml_AS); pushbuffer(0);
6350   }
6351         YY_BREAK
6352
6353 case 108:
6354 /* rule 108 can match eol */
6355 YY_RULE_SETUP
6356 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);
6357         YY_BREAK
6358 case 109:
6359 /* rule 109 can match eol */
6360 YY_RULE_SETUP
6361 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);
6362         YY_BREAK
6363 case 110:
6364 /* rule 110 can match eol */
6365 case 111:
6366 /* rule 111 can match eol */
6367 YY_RULE_SETUP
6368 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6369         YY_BREAK
6370 case 112:
6371 /* rule 112 can match eol */
6372 case 113:
6373 /* rule 113 can match eol */
6374 YY_RULE_SETUP
6375 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6376         YY_BREAK
6377 case 114:
6378 /* rule 114 can match eol */
6379 case 115:
6380 /* rule 115 can match eol */
6381 YY_RULE_SETUP
6382 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6383         YY_BREAK
6384 case 116:
6385 /* rule 116 can match eol */
6386 case 117:
6387 /* rule 117 can match eol */
6388 YY_RULE_SETUP
6389 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6390         YY_BREAK
6391 case 118:
6392 /* rule 118 can match eol */
6393 case 119:
6394 /* rule 119 can match eol */
6395 YY_RULE_SETUP
6396 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6397         YY_BREAK
6398 case 120:
6399 /* rule 120 can match eol */
6400 case 121:
6401 /* rule 121 can match eol */
6402 YY_RULE_SETUP
6403 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6404         YY_BREAK
6405 case 122:
6406 /* rule 122 can match eol */
6407 case 123:
6408 /* rule 123 can match eol */
6409 YY_RULE_SETUP
6410 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6411         YY_BREAK
6412 case 124:
6413 /* rule 124 can match eol */
6414 case 125:
6415 /* rule 125 can match eol */
6416 YY_RULE_SETUP
6417 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6418         YY_BREAK
6419 case 126:
6420 YY_RULE_SETUP
6421 {
6422   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6423   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6424   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6425  }
6426         YY_BREAK
6427 case 127:
6428 YY_RULE_SETUP
6429 {
6430   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6431   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6432   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6433   switch (YY_START) {
6434    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6435    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6436    case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6437   }
6438  }
6439         YY_BREAK
6440 case 128:
6441 YY_RULE_SETUP
6442 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6443         YY_BREAK
6444 case 129:
6445 YY_RULE_SETUP
6446 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6447         YY_BREAK
6448 case YY_STATE_EOF(AL_surfxml_AS):
6449 FAIL("EOF in attribute list of `AS' element.");
6450         YY_BREAK
6451
6452 case 130:
6453 /* rule 130 can match eol */
6454 YY_RULE_SETUP
6455 {
6456   LEAVE;
6457   ETag_surfxml_AS();
6458   popbuffer(); /* attribute */
6459   switch (YY_START) {
6460    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6461    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6462    case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6463   }
6464  }
6465         YY_BREAK
6466 case 131:
6467 /* rule 131 can match eol */
6468 YY_RULE_SETUP
6469 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6470         YY_BREAK
6471 case 132:
6472 YY_RULE_SETUP
6473 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6474         YY_BREAK
6475 case YY_STATE_EOF(S_surfxml_AS_1):
6476 case YY_STATE_EOF(S_surfxml_AS_12):
6477 case YY_STATE_EOF(S_surfxml_AS_7):
6478 case YY_STATE_EOF(S_surfxml_AS_16):
6479 case YY_STATE_EOF(E_surfxml_AS):
6480 case YY_STATE_EOF(S_surfxml_AS_3):
6481 case YY_STATE_EOF(S_surfxml_AS_6):
6482 case YY_STATE_EOF(S_surfxml_AS_9):
6483 case YY_STATE_EOF(S_surfxml_AS_4):
6484 case YY_STATE_EOF(S_surfxml_AS_14):
6485 case YY_STATE_EOF(S_surfxml_AS_11):
6486 case YY_STATE_EOF(S_surfxml_AS):
6487 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6488         YY_BREAK
6489
6490 case 133:
6491 /* rule 133 can match eol */
6492 YY_RULE_SETUP
6493 FAIL("Starting tag <storage_type> is not allowed here.");
6494         YY_BREAK
6495 case 134:
6496 /* rule 134 can match eol */
6497 YY_RULE_SETUP
6498 {
6499   AX_surfxml_storage___type_id = 0;
6500   surfxml_storage___type_id_isset = 0;
6501   AX_surfxml_storage___type_model = 0;
6502   surfxml_storage___type_model_isset = 0;
6503   AX_surfxml_storage___type_size = 0;
6504   surfxml_storage___type_size_isset = 0;
6505   AX_surfxml_storage___type_content = 0;
6506   surfxml_storage___type_content_isset = 0;
6507   AX_surfxml_storage___type_content___type = 16;
6508   surfxml_storage___type_content___type_isset = 0;
6509   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6510   }
6511         YY_BREAK
6512
6513 case 135:
6514 /* rule 135 can match eol */
6515 YY_RULE_SETUP
6516 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);
6517         YY_BREAK
6518 case 136:
6519 /* rule 136 can match eol */
6520 YY_RULE_SETUP
6521 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);
6522         YY_BREAK
6523 case 137:
6524 /* rule 137 can match eol */
6525 YY_RULE_SETUP
6526 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);
6527         YY_BREAK
6528 case 138:
6529 /* rule 138 can match eol */
6530 YY_RULE_SETUP
6531 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);
6532         YY_BREAK
6533 case 139:
6534 /* rule 139 can match eol */
6535 YY_RULE_SETUP
6536 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);
6537         YY_BREAK
6538 case 140:
6539 /* rule 140 can match eol */
6540 YY_RULE_SETUP
6541 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);
6542         YY_BREAK
6543 case 141:
6544 /* rule 141 can match eol */
6545 YY_RULE_SETUP
6546 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);
6547         YY_BREAK
6548 case 142:
6549 /* rule 142 can match eol */
6550 YY_RULE_SETUP
6551 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);
6552         YY_BREAK
6553 case 143:
6554 /* rule 143 can match eol */
6555 YY_RULE_SETUP
6556 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
6557         YY_BREAK
6558 case 144:
6559 /* rule 144 can match eol */
6560 YY_RULE_SETUP
6561 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
6562         YY_BREAK
6563 case 145:
6564 YY_RULE_SETUP
6565 {
6566   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6567   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6568   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6569   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6570  }
6571         YY_BREAK
6572 case 146:
6573 YY_RULE_SETUP
6574 {
6575   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6576   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6577   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6578   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6579   switch (YY_START) {
6580    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
6581    case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
6582   }
6583  }
6584         YY_BREAK
6585 case 147:
6586 YY_RULE_SETUP
6587 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6588         YY_BREAK
6589 case 148:
6590 YY_RULE_SETUP
6591 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6592         YY_BREAK
6593 case YY_STATE_EOF(AL_surfxml_storage___type):
6594 FAIL("EOF in attribute list of `storage_type' element.");
6595         YY_BREAK
6596
6597 case 149:
6598 /* rule 149 can match eol */
6599 YY_RULE_SETUP
6600 {
6601   LEAVE;
6602   ETag_surfxml_storage___type();
6603   popbuffer(); /* attribute */
6604   switch (YY_START) {
6605    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
6606    case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
6607   }
6608  }
6609         YY_BREAK
6610 case 150:
6611 /* rule 150 can match eol */
6612 YY_RULE_SETUP
6613 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6614         YY_BREAK
6615 case 151:
6616 YY_RULE_SETUP
6617 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6618         YY_BREAK
6619 case YY_STATE_EOF(S_surfxml_storage___type_2):
6620 case YY_STATE_EOF(E_surfxml_storage___type):
6621 case YY_STATE_EOF(S_surfxml_storage___type):
6622 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6623         YY_BREAK
6624
6625 case 152:
6626 /* rule 152 can match eol */
6627 YY_RULE_SETUP
6628 FAIL("Starting tag <storage> is not allowed here.");
6629         YY_BREAK
6630 case 153:
6631 /* rule 153 can match eol */
6632 YY_RULE_SETUP
6633 {
6634   AX_surfxml_storage_id = 0;
6635   surfxml_storage_id_isset = 0;
6636   AX_surfxml_storage_typeId = 0;
6637   surfxml_storage_typeId_isset = 0;
6638   AX_surfxml_storage_content = 0;
6639   surfxml_storage_content_isset = 0;
6640   AX_surfxml_storage_content___type = 25;
6641   surfxml_storage_content___type_isset = 0;
6642   ENTER(AL_surfxml_storage); pushbuffer(0);
6643   }
6644         YY_BREAK
6645
6646 case 154:
6647 /* rule 154 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 155:
6652 /* rule 155 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 156:
6657 /* rule 156 can match eol */
6658 YY_RULE_SETUP
6659 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);
6660         YY_BREAK
6661 case 157:
6662 /* rule 157 can match eol */
6663 YY_RULE_SETUP
6664 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);
6665         YY_BREAK
6666 case 158:
6667 /* rule 158 can match eol */
6668 YY_RULE_SETUP
6669 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);
6670         YY_BREAK
6671 case 159:
6672 /* rule 159 can match eol */
6673 YY_RULE_SETUP
6674 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);
6675         YY_BREAK
6676 case 160:
6677 /* rule 160 can match eol */
6678 YY_RULE_SETUP
6679 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
6680         YY_BREAK
6681 case 161:
6682 /* rule 161 can match eol */
6683 YY_RULE_SETUP
6684 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
6685         YY_BREAK
6686 case 162:
6687 YY_RULE_SETUP
6688 {
6689   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6690   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6691   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6692  }
6693         YY_BREAK
6694 case 163:
6695 YY_RULE_SETUP
6696 {
6697   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6698   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6699   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6700   switch (YY_START) {
6701    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6702    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6703   }
6704  }
6705         YY_BREAK
6706 case 164:
6707 YY_RULE_SETUP
6708 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6709         YY_BREAK
6710 case 165:
6711 YY_RULE_SETUP
6712 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6713         YY_BREAK
6714 case YY_STATE_EOF(AL_surfxml_storage):
6715 FAIL("EOF in attribute list of `storage' element.");
6716         YY_BREAK
6717
6718 case 166:
6719 /* rule 166 can match eol */
6720 YY_RULE_SETUP
6721 {
6722   LEAVE;
6723   ETag_surfxml_storage();
6724   popbuffer(); /* attribute */
6725   switch (YY_START) {
6726    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6727    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6728   }
6729  }
6730         YY_BREAK
6731 case 167:
6732 /* rule 167 can match eol */
6733 YY_RULE_SETUP
6734 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6735         YY_BREAK
6736 case 168:
6737 YY_RULE_SETUP
6738 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6739         YY_BREAK
6740 case YY_STATE_EOF(S_surfxml_storage_2):
6741 case YY_STATE_EOF(S_surfxml_storage):
6742 case YY_STATE_EOF(E_surfxml_storage):
6743 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6744         YY_BREAK
6745
6746 case 169:
6747 /* rule 169 can match eol */
6748 YY_RULE_SETUP
6749 FAIL("Starting tag <mount> is not allowed here.");
6750         YY_BREAK
6751 case 170:
6752 /* rule 170 can match eol */
6753 YY_RULE_SETUP
6754 {
6755   AX_surfxml_mount_storageId = 0;
6756   surfxml_mount_storageId_isset = 0;
6757   AX_surfxml_mount_name = 0;
6758   surfxml_mount_name_isset = 0;
6759   ENTER(AL_surfxml_mount); pushbuffer(0);
6760   }
6761         YY_BREAK
6762
6763 case 171:
6764 /* rule 171 can match eol */
6765 YY_RULE_SETUP
6766 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
6767         YY_BREAK
6768 case 172:
6769 /* rule 172 can match eol */
6770 YY_RULE_SETUP
6771 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
6772         YY_BREAK
6773 case 173:
6774 /* rule 173 can match eol */
6775 YY_RULE_SETUP
6776 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);
6777         YY_BREAK
6778 case 174:
6779 /* rule 174 can match eol */
6780 YY_RULE_SETUP
6781 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);
6782         YY_BREAK
6783 case 175:
6784 YY_RULE_SETUP
6785 {
6786   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6787   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6788   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6789  }
6790         YY_BREAK
6791 case 176:
6792 YY_RULE_SETUP
6793 {
6794   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6795   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6796   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6797   switch (YY_START) {
6798    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6799   }
6800  }
6801         YY_BREAK
6802 case 177:
6803 YY_RULE_SETUP
6804 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6805         YY_BREAK
6806 case 178:
6807 YY_RULE_SETUP
6808 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6809         YY_BREAK
6810 case YY_STATE_EOF(AL_surfxml_mount):
6811 FAIL("EOF in attribute list of `mount' element.");
6812         YY_BREAK
6813
6814 case 179:
6815 /* rule 179 can match eol */
6816 YY_RULE_SETUP
6817 {
6818   LEAVE;
6819   ETag_surfxml_mount();
6820   popbuffer(); /* attribute */
6821   switch (YY_START) {
6822    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6823   }
6824  }
6825         YY_BREAK
6826 case 180:
6827 /* rule 180 can match eol */
6828 YY_RULE_SETUP
6829 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6830         YY_BREAK
6831 case 181:
6832 YY_RULE_SETUP
6833 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6834         YY_BREAK
6835 case YY_STATE_EOF(E_surfxml_mount):
6836 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6837         YY_BREAK
6838
6839 case 182:
6840 /* rule 182 can match eol */
6841 YY_RULE_SETUP
6842 FAIL("Starting tag <mstorage> is not allowed here.");
6843         YY_BREAK
6844 case 183:
6845 /* rule 183 can match eol */
6846 YY_RULE_SETUP
6847 {
6848   AX_surfxml_mstorage_typeId = 0;
6849   surfxml_mstorage_typeId_isset = 0;
6850   AX_surfxml_mstorage_name = 0;
6851   surfxml_mstorage_name_isset = 0;
6852   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6853   }
6854         YY_BREAK
6855
6856 case 184:
6857 /* rule 184 can match eol */
6858 YY_RULE_SETUP
6859 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);
6860         YY_BREAK
6861 case 185:
6862 /* rule 185 can match eol */
6863 YY_RULE_SETUP
6864 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);
6865         YY_BREAK
6866 case 186:
6867 /* rule 186 can match eol */
6868 YY_RULE_SETUP
6869 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);
6870         YY_BREAK
6871 case 187:
6872 /* rule 187 can match eol */
6873 YY_RULE_SETUP
6874 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);
6875         YY_BREAK
6876 case 188:
6877 YY_RULE_SETUP
6878 {
6879   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6880   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6881   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6882  }
6883         YY_BREAK
6884 case 189:
6885 YY_RULE_SETUP
6886 {
6887   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6888   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6889   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6890   switch (YY_START) {
6891    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6892   }
6893  }
6894         YY_BREAK
6895 case 190:
6896 YY_RULE_SETUP
6897 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6898         YY_BREAK
6899 case 191:
6900 YY_RULE_SETUP
6901 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6902         YY_BREAK
6903 case YY_STATE_EOF(AL_surfxml_mstorage):
6904 FAIL("EOF in attribute list of `mstorage' element.");
6905         YY_BREAK
6906
6907 case 192:
6908 /* rule 192 can match eol */
6909 YY_RULE_SETUP
6910 {
6911   LEAVE;
6912   ETag_surfxml_mstorage();
6913   popbuffer(); /* attribute */
6914   switch (YY_START) {
6915    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6916   }
6917  }
6918         YY_BREAK
6919 case 193:
6920 /* rule 193 can match eol */
6921 YY_RULE_SETUP
6922 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6923         YY_BREAK
6924 case 194:
6925 YY_RULE_SETUP
6926 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6927         YY_BREAK
6928 case YY_STATE_EOF(E_surfxml_mstorage):
6929 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6930         YY_BREAK
6931
6932 case 195:
6933 /* rule 195 can match eol */
6934 YY_RULE_SETUP
6935 FAIL("Starting tag <host> is not allowed here.");
6936         YY_BREAK
6937 case 196:
6938 /* rule 196 can match eol */
6939 YY_RULE_SETUP
6940 {
6941   AX_surfxml_host_id = 0;
6942   surfxml_host_id_isset = 0;
6943   AX_surfxml_host_power = 0;
6944   surfxml_host_power_isset = 0;
6945   AX_surfxml_host_core = 34;
6946   surfxml_host_core_isset = 0;
6947   AX_surfxml_host_availability = 36;
6948   surfxml_host_availability_isset = 0;
6949   AX_surfxml_host_availability___file = 0;
6950   surfxml_host_availability___file_isset = 0;
6951   AX_surfxml_host_state = A_surfxml_host_state_ON;
6952   surfxml_host_state_isset = 0;
6953   AX_surfxml_host_state___file = 0;
6954   surfxml_host_state___file_isset = 0;
6955   AX_surfxml_host_coordinates = 0;
6956   surfxml_host_coordinates_isset = 0;
6957   AX_surfxml_host_pstate = 40;
6958   surfxml_host_pstate_isset = 0;
6959   ENTER(AL_surfxml_host); pushbuffer(0);
6960   }
6961         YY_BREAK
6962
6963 case 197:
6964 /* rule 197 can match eol */
6965 YY_RULE_SETUP
6966 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);
6967         YY_BREAK
6968 case 198:
6969 /* rule 198 can match eol */
6970 YY_RULE_SETUP
6971 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);
6972         YY_BREAK
6973 case 199:
6974 /* rule 199 can match eol */
6975 YY_RULE_SETUP
6976 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);
6977         YY_BREAK
6978 case 200:
6979 /* rule 200 can match eol */
6980 YY_RULE_SETUP
6981 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);
6982         YY_BREAK
6983 case 201:
6984 /* rule 201 can match eol */
6985 YY_RULE_SETUP
6986 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);
6987         YY_BREAK
6988 case 202:
6989 /* rule 202 can match eol */
6990 YY_RULE_SETUP
6991 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);
6992         YY_BREAK
6993 case 203:
6994 /* rule 203 can match eol */
6995 YY_RULE_SETUP
6996 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);
6997         YY_BREAK
6998 case 204:
6999 /* rule 204 can match eol */
7000 YY_RULE_SETUP
7001 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);
7002         YY_BREAK
7003 case 205:
7004 /* rule 205 can match eol */
7005 YY_RULE_SETUP
7006 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);
7007         YY_BREAK
7008 case 206:
7009 /* rule 206 can match eol */
7010 YY_RULE_SETUP
7011 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);
7012         YY_BREAK
7013 case 207:
7014 /* rule 207 can match eol */
7015 case 208:
7016 /* rule 208 can match eol */
7017 YY_RULE_SETUP
7018 A_surfxml_host_state = A_surfxml_host_state_ON;
7019         YY_BREAK
7020 case 209:
7021 /* rule 209 can match eol */
7022 case 210:
7023 /* rule 210 can match eol */
7024 YY_RULE_SETUP
7025 A_surfxml_host_state = A_surfxml_host_state_OFF;
7026         YY_BREAK
7027 case 211:
7028 /* rule 211 can match eol */
7029 YY_RULE_SETUP
7030 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);
7031         YY_BREAK
7032 case 212:
7033 /* rule 212 can match eol */
7034 YY_RULE_SETUP
7035 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);
7036         YY_BREAK
7037 case 213:
7038 /* rule 213 can match eol */
7039 YY_RULE_SETUP
7040 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);
7041         YY_BREAK
7042 case 214:
7043 /* rule 214 can match eol */
7044 YY_RULE_SETUP
7045 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);
7046         YY_BREAK
7047 case 215:
7048 /* rule 215 can match eol */
7049 YY_RULE_SETUP
7050 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);
7051         YY_BREAK
7052 case 216:
7053 /* rule 216 can match eol */
7054 YY_RULE_SETUP
7055 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);
7056         YY_BREAK
7057 case 217:
7058 YY_RULE_SETUP
7059 {
7060   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7061   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7062   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7063  }
7064         YY_BREAK
7065 case 218:
7066 YY_RULE_SETUP
7067 {
7068   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7069   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7070   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7071   switch (YY_START) {
7072    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7073   }
7074  }
7075         YY_BREAK
7076 case 219:
7077 YY_RULE_SETUP
7078 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7079         YY_BREAK
7080 case 220:
7081 YY_RULE_SETUP
7082 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7083         YY_BREAK
7084 case YY_STATE_EOF(AL_surfxml_host):
7085 FAIL("EOF in attribute list of `host' element.");
7086         YY_BREAK
7087
7088 case 221:
7089 /* rule 221 can match eol */
7090 YY_RULE_SETUP
7091 {
7092   LEAVE;
7093   ETag_surfxml_host();
7094   popbuffer(); /* attribute */
7095   switch (YY_START) {
7096    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7097   }
7098  }
7099         YY_BREAK
7100 case 222:
7101 /* rule 222 can match eol */
7102 YY_RULE_SETUP
7103 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7104         YY_BREAK
7105 case 223:
7106 YY_RULE_SETUP
7107 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7108         YY_BREAK
7109 case YY_STATE_EOF(S_surfxml_host):
7110 case YY_STATE_EOF(S_surfxml_host_2):
7111 case YY_STATE_EOF(E_surfxml_host):
7112 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7113         YY_BREAK
7114
7115 case 224:
7116 /* rule 224 can match eol */
7117 YY_RULE_SETUP
7118 FAIL("Starting tag <gpu> is not allowed here.");
7119         YY_BREAK
7120 case 225:
7121 /* rule 225 can match eol */
7122 YY_RULE_SETUP
7123 {
7124   AX_surfxml_gpu_name = 0;
7125   surfxml_gpu_name_isset = 0;
7126   ENTER(AL_surfxml_gpu); pushbuffer(0);
7127   }
7128         YY_BREAK
7129
7130 case 226:
7131 /* rule 226 can match eol */
7132 YY_RULE_SETUP
7133 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);
7134         YY_BREAK
7135 case 227:
7136 /* rule 227 can match eol */
7137 YY_RULE_SETUP
7138 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);
7139         YY_BREAK
7140 case 228:
7141 YY_RULE_SETUP
7142 {
7143   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7144   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7145  }
7146         YY_BREAK
7147 case 229:
7148 YY_RULE_SETUP
7149 {
7150   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7151   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7152   switch (YY_START) {
7153    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7154   }
7155  }
7156         YY_BREAK
7157 case 230:
7158 YY_RULE_SETUP
7159 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7160         YY_BREAK
7161 case 231:
7162 YY_RULE_SETUP
7163 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7164         YY_BREAK
7165 case YY_STATE_EOF(AL_surfxml_gpu):
7166 FAIL("EOF in attribute list of `gpu' element.");
7167         YY_BREAK
7168
7169 case 232:
7170 /* rule 232 can match eol */
7171 YY_RULE_SETUP
7172 {
7173   LEAVE;
7174   ETag_surfxml_gpu();
7175   popbuffer(); /* attribute */
7176   switch (YY_START) {
7177    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7178   }
7179  }
7180         YY_BREAK
7181 case 233:
7182 /* rule 233 can match eol */
7183 YY_RULE_SETUP
7184 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7185         YY_BREAK
7186 case 234:
7187 YY_RULE_SETUP
7188 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7189         YY_BREAK
7190 case YY_STATE_EOF(E_surfxml_gpu):
7191 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7192         YY_BREAK
7193
7194 case 235:
7195 /* rule 235 can match eol */
7196 YY_RULE_SETUP
7197 FAIL("Starting tag <host_link> is not allowed here.");
7198         YY_BREAK
7199 case 236:
7200 /* rule 236 can match eol */
7201 YY_RULE_SETUP
7202 {
7203   AX_surfxml_host___link_id = 0;
7204   surfxml_host___link_id_isset = 0;
7205   AX_surfxml_host___link_up = 0;
7206   surfxml_host___link_up_isset = 0;
7207   AX_surfxml_host___link_down = 0;
7208   surfxml_host___link_down_isset = 0;
7209   ENTER(AL_surfxml_host___link); pushbuffer(0);
7210   }
7211         YY_BREAK
7212
7213 case 237:
7214 /* rule 237 can match eol */
7215 YY_RULE_SETUP
7216 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);
7217         YY_BREAK
7218 case 238:
7219 /* rule 238 can match eol */
7220 YY_RULE_SETUP
7221 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);
7222         YY_BREAK
7223 case 239:
7224 /* rule 239 can match eol */
7225 YY_RULE_SETUP
7226 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);
7227         YY_BREAK
7228 case 240:
7229 /* rule 240 can match eol */
7230 YY_RULE_SETUP
7231 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);
7232         YY_BREAK
7233 case 241:
7234 /* rule 241 can match eol */
7235 YY_RULE_SETUP
7236 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);
7237         YY_BREAK
7238 case 242:
7239 /* rule 242 can match eol */
7240 YY_RULE_SETUP
7241 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);
7242         YY_BREAK
7243 case 243:
7244 YY_RULE_SETUP
7245 {
7246   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7247   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7248   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7249   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7250  }
7251         YY_BREAK
7252 case 244:
7253 YY_RULE_SETUP
7254 {
7255   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7256   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7257   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7258   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7259   switch (YY_START) {
7260    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7261   }
7262  }
7263         YY_BREAK
7264 case 245:
7265 YY_RULE_SETUP
7266 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7267         YY_BREAK
7268 case 246:
7269 YY_RULE_SETUP
7270 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7271         YY_BREAK
7272 case YY_STATE_EOF(AL_surfxml_host___link):
7273 FAIL("EOF in attribute list of `host_link' element.");
7274         YY_BREAK
7275
7276 case 247:
7277 /* rule 247 can match eol */
7278 YY_RULE_SETUP
7279 {
7280   LEAVE;
7281   ETag_surfxml_host___link();
7282   popbuffer(); /* attribute */
7283   switch (YY_START) {
7284    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7285   }
7286  }
7287         YY_BREAK
7288 case 248:
7289 /* rule 248 can match eol */
7290 YY_RULE_SETUP
7291 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7292         YY_BREAK
7293 case 249:
7294 YY_RULE_SETUP
7295 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7296         YY_BREAK
7297 case YY_STATE_EOF(E_surfxml_host___link):
7298 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7299         YY_BREAK
7300
7301 case 250:
7302 /* rule 250 can match eol */
7303 YY_RULE_SETUP
7304 FAIL("Starting tag <cluster> is not allowed here.");
7305         YY_BREAK
7306 case 251:
7307 /* rule 251 can match eol */
7308 YY_RULE_SETUP
7309 {
7310   AX_surfxml_cluster_id = 0;
7311   surfxml_cluster_id_isset = 0;
7312   AX_surfxml_cluster_prefix = 0;
7313   surfxml_cluster_prefix_isset = 0;
7314   AX_surfxml_cluster_suffix = 0;
7315   surfxml_cluster_suffix_isset = 0;
7316   AX_surfxml_cluster_radical = 0;
7317   surfxml_cluster_radical_isset = 0;
7318   AX_surfxml_cluster_power = 0;
7319   surfxml_cluster_power_isset = 0;
7320   AX_surfxml_cluster_core = 44;
7321   surfxml_cluster_core_isset = 0;
7322   AX_surfxml_cluster_bw = 0;
7323   surfxml_cluster_bw_isset = 0;
7324   AX_surfxml_cluster_lat = 0;
7325   surfxml_cluster_lat_isset = 0;
7326   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7327   surfxml_cluster_sharing___policy_isset = 0;
7328   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7329   surfxml_cluster_topology_isset = 0;
7330   AX_surfxml_cluster_topo___parameters = 0;
7331   surfxml_cluster_topo___parameters_isset = 0;
7332   AX_surfxml_cluster_bb___bw = 0;
7333   surfxml_cluster_bb___bw_isset = 0;
7334   AX_surfxml_cluster_bb___lat = 0;
7335   surfxml_cluster_bb___lat_isset = 0;
7336   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7337   surfxml_cluster_bb___sharing___policy_isset = 0;
7338   AX_surfxml_cluster_availability___file = 0;
7339   surfxml_cluster_availability___file_isset = 0;
7340   AX_surfxml_cluster_state___file = 0;
7341   surfxml_cluster_state___file_isset = 0;
7342   AX_surfxml_cluster_router___id = 0;
7343   surfxml_cluster_router___id_isset = 0;
7344   AX_surfxml_cluster_limiter___link = 0;
7345   surfxml_cluster_limiter___link_isset = 0;
7346   AX_surfxml_cluster_loopback___bw = 0;
7347   surfxml_cluster_loopback___bw_isset = 0;
7348   AX_surfxml_cluster_loopback___lat = 0;
7349   surfxml_cluster_loopback___lat_isset = 0;
7350   ENTER(AL_surfxml_cluster); pushbuffer(0);
7351   }
7352         YY_BREAK
7353
7354 case 252:
7355 /* rule 252 can match eol */
7356 YY_RULE_SETUP
7357 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);
7358         YY_BREAK
7359 case 253:
7360 /* rule 253 can match eol */
7361 YY_RULE_SETUP
7362 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);
7363         YY_BREAK
7364 case 254:
7365 /* rule 254 can match eol */
7366 YY_RULE_SETUP
7367 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);
7368         YY_BREAK
7369 case 255:
7370 /* rule 255 can match eol */
7371 YY_RULE_SETUP
7372 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);
7373         YY_BREAK
7374 case 256:
7375 /* rule 256 can match eol */
7376 YY_RULE_SETUP
7377 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);
7378         YY_BREAK
7379 case 257:
7380 /* rule 257 can match eol */
7381 YY_RULE_SETUP
7382 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);
7383         YY_BREAK
7384 case 258:
7385 /* rule 258 can match eol */
7386 YY_RULE_SETUP
7387 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);
7388         YY_BREAK
7389 case 259:
7390 /* rule 259 can match eol */
7391 YY_RULE_SETUP
7392 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);
7393         YY_BREAK
7394 case 260:
7395 /* rule 260 can match eol */
7396 YY_RULE_SETUP
7397 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);
7398         YY_BREAK
7399 case 261:
7400 /* rule 261 can match eol */
7401 YY_RULE_SETUP
7402 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);
7403         YY_BREAK
7404 case 262:
7405 /* rule 262 can match eol */
7406 YY_RULE_SETUP
7407 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);
7408         YY_BREAK
7409 case 263:
7410 /* rule 263 can match eol */
7411 YY_RULE_SETUP
7412 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);
7413         YY_BREAK
7414 case 264:
7415 /* rule 264 can match eol */
7416 YY_RULE_SETUP
7417 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);
7418         YY_BREAK
7419 case 265:
7420 /* rule 265 can match eol */
7421 YY_RULE_SETUP
7422 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);
7423         YY_BREAK
7424 case 266:
7425 /* rule 266 can match eol */
7426 YY_RULE_SETUP
7427 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);
7428         YY_BREAK
7429 case 267:
7430 /* rule 267 can match eol */
7431 YY_RULE_SETUP
7432 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);
7433         YY_BREAK
7434 case 268:
7435 /* rule 268 can match eol */
7436 case 269:
7437 /* rule 269 can match eol */
7438 YY_RULE_SETUP
7439 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7440         YY_BREAK
7441 case 270:
7442 /* rule 270 can match eol */
7443 case 271:
7444 /* rule 271 can match eol */
7445 YY_RULE_SETUP
7446 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7447         YY_BREAK
7448 case 272:
7449 /* rule 272 can match eol */
7450 case 273:
7451 /* rule 273 can match eol */
7452 YY_RULE_SETUP
7453 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7454         YY_BREAK
7455 case 274:
7456 /* rule 274 can match eol */
7457 case 275:
7458 /* rule 275 can match eol */
7459 YY_RULE_SETUP
7460 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7461         YY_BREAK
7462 case 276:
7463 /* rule 276 can match eol */
7464 case 277:
7465 /* rule 277 can match eol */
7466 YY_RULE_SETUP
7467 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7468         YY_BREAK
7469 case 278:
7470 /* rule 278 can match eol */
7471 YY_RULE_SETUP
7472 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7473         YY_BREAK
7474 case 279:
7475 /* rule 279 can match eol */
7476 YY_RULE_SETUP
7477 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7478         YY_BREAK
7479 case 280:
7480 /* rule 280 can match eol */
7481 YY_RULE_SETUP
7482 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);
7483         YY_BREAK
7484 case 281:
7485 /* rule 281 can match eol */
7486 YY_RULE_SETUP
7487 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);
7488         YY_BREAK
7489 case 282:
7490 /* rule 282 can match eol */
7491 YY_RULE_SETUP
7492 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);
7493         YY_BREAK
7494 case 283:
7495 /* rule 283 can match eol */
7496 YY_RULE_SETUP
7497 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);
7498         YY_BREAK
7499 case 284:
7500 /* rule 284 can match eol */
7501 case 285:
7502 /* rule 285 can match eol */
7503 YY_RULE_SETUP
7504 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7505         YY_BREAK
7506 case 286:
7507 /* rule 286 can match eol */
7508 case 287:
7509 /* rule 287 can match eol */
7510 YY_RULE_SETUP
7511 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7512         YY_BREAK
7513 case 288:
7514 /* rule 288 can match eol */
7515 YY_RULE_SETUP
7516 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);
7517         YY_BREAK
7518 case 289:
7519 /* rule 289 can match eol */
7520 YY_RULE_SETUP
7521 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);
7522         YY_BREAK
7523 case 290:
7524 /* rule 290 can match eol */
7525 YY_RULE_SETUP
7526 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);
7527         YY_BREAK
7528 case 291:
7529 /* rule 291 can match eol */
7530 YY_RULE_SETUP
7531 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);
7532         YY_BREAK
7533 case 292:
7534 /* rule 292 can match eol */
7535 YY_RULE_SETUP
7536 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);
7537         YY_BREAK
7538 case 293:
7539 /* rule 293 can match eol */
7540 YY_RULE_SETUP
7541 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);
7542         YY_BREAK
7543 case 294:
7544 /* rule 294 can match eol */
7545 YY_RULE_SETUP
7546 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);
7547         YY_BREAK
7548 case 295:
7549 /* rule 295 can match eol */
7550 YY_RULE_SETUP
7551 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);
7552         YY_BREAK
7553 case 296:
7554 /* rule 296 can match eol */
7555 YY_RULE_SETUP
7556 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);
7557         YY_BREAK
7558 case 297:
7559 /* rule 297 can match eol */
7560 YY_RULE_SETUP
7561 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);
7562         YY_BREAK
7563 case 298:
7564 /* rule 298 can match eol */
7565 YY_RULE_SETUP
7566 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);
7567         YY_BREAK
7568 case 299:
7569 /* rule 299 can match eol */
7570 YY_RULE_SETUP
7571 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);
7572         YY_BREAK
7573 case 300:
7574 YY_RULE_SETUP
7575 {
7576   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7577   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7578   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7579   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7580   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7581   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7582   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7583   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7584  }
7585         YY_BREAK
7586 case 301:
7587 YY_RULE_SETUP
7588 {
7589   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7590   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7591   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7592   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7593   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7594   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7595   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7596   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7597   switch (YY_START) {
7598    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7599    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7600    case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
7601   }
7602  }
7603         YY_BREAK
7604 case 302:
7605 YY_RULE_SETUP
7606 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7607         YY_BREAK
7608 case 303:
7609 YY_RULE_SETUP
7610 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7611         YY_BREAK
7612 case YY_STATE_EOF(AL_surfxml_cluster):
7613 FAIL("EOF in attribute list of `cluster' element.");
7614         YY_BREAK
7615
7616 case 304:
7617 /* rule 304 can match eol */
7618 YY_RULE_SETUP
7619 {
7620   LEAVE;
7621   ETag_surfxml_cluster();
7622   popbuffer(); /* attribute */
7623   switch (YY_START) {
7624    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7625    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7626    case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
7627   }
7628  }
7629         YY_BREAK
7630 case 305:
7631 /* rule 305 can match eol */
7632 YY_RULE_SETUP
7633 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7634         YY_BREAK
7635 case 306:
7636 YY_RULE_SETUP
7637 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7638         YY_BREAK
7639 case YY_STATE_EOF(S_surfxml_cluster_2):
7640 case YY_STATE_EOF(E_surfxml_cluster):
7641 case YY_STATE_EOF(S_surfxml_cluster):
7642 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7643         YY_BREAK
7644
7645 case 307:
7646 /* rule 307 can match eol */
7647 YY_RULE_SETUP
7648 FAIL("Starting tag <cabinet> is not allowed here.");
7649         YY_BREAK
7650 case 308:
7651 /* rule 308 can match eol */
7652 YY_RULE_SETUP
7653 {
7654   AX_surfxml_cabinet_id = 0;
7655   surfxml_cabinet_id_isset = 0;
7656   AX_surfxml_cabinet_prefix = 0;
7657   surfxml_cabinet_prefix_isset = 0;
7658   AX_surfxml_cabinet_suffix = 0;
7659   surfxml_cabinet_suffix_isset = 0;
7660   AX_surfxml_cabinet_radical = 0;
7661   surfxml_cabinet_radical_isset = 0;
7662   AX_surfxml_cabinet_power = 0;
7663   surfxml_cabinet_power_isset = 0;
7664   AX_surfxml_cabinet_bw = 0;
7665   surfxml_cabinet_bw_isset = 0;
7666   AX_surfxml_cabinet_lat = 0;
7667   surfxml_cabinet_lat_isset = 0;
7668   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7669   }
7670         YY_BREAK
7671
7672 case 309:
7673 /* rule 309 can match eol */
7674 YY_RULE_SETUP
7675 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);
7676         YY_BREAK
7677 case 310:
7678 /* rule 310 can match eol */
7679 YY_RULE_SETUP
7680 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);
7681         YY_BREAK
7682 case 311:
7683 /* rule 311 can match eol */
7684 YY_RULE_SETUP
7685 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);
7686         YY_BREAK
7687 case 312:
7688 /* rule 312 can match eol */
7689 YY_RULE_SETUP
7690 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);
7691         YY_BREAK
7692 case 313:
7693 /* rule 313 can match eol */
7694 YY_RULE_SETUP
7695 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);
7696         YY_BREAK
7697 case 314:
7698 /* rule 314 can match eol */
7699 YY_RULE_SETUP
7700 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);
7701         YY_BREAK
7702 case 315:
7703 /* rule 315 can match eol */
7704 YY_RULE_SETUP
7705 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);
7706         YY_BREAK
7707 case 316:
7708 /* rule 316 can match eol */
7709 YY_RULE_SETUP
7710 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);
7711         YY_BREAK
7712 case 317:
7713 /* rule 317 can match eol */
7714 YY_RULE_SETUP
7715 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);
7716         YY_BREAK
7717 case 318:
7718 /* rule 318 can match eol */
7719 YY_RULE_SETUP
7720 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);
7721         YY_BREAK
7722 case 319:
7723 /* rule 319 can match eol */
7724 YY_RULE_SETUP
7725 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);
7726         YY_BREAK
7727 case 320:
7728 /* rule 320 can match eol */
7729 YY_RULE_SETUP
7730 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);
7731         YY_BREAK
7732 case 321:
7733 /* rule 321 can match eol */
7734 YY_RULE_SETUP
7735 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7736         YY_BREAK
7737 case 322:
7738 /* rule 322 can match eol */
7739 YY_RULE_SETUP
7740 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7741         YY_BREAK
7742 case 323:
7743 YY_RULE_SETUP
7744 {
7745   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7746   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7747   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7748   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7749   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7750   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7751   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7752   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7753  }
7754         YY_BREAK
7755 case 324:
7756 YY_RULE_SETUP
7757 {
7758   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7759   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7760   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7761   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7762   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7763   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7764   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7765   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7766   switch (YY_START) {
7767    case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7768    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7769    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7770    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7771   }
7772  }
7773         YY_BREAK
7774 case 325:
7775 YY_RULE_SETUP
7776 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7777         YY_BREAK
7778 case 326:
7779 YY_RULE_SETUP
7780 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7781         YY_BREAK
7782 case YY_STATE_EOF(AL_surfxml_cabinet):
7783 FAIL("EOF in attribute list of `cabinet' element.");
7784         YY_BREAK
7785
7786 case 327:
7787 /* rule 327 can match eol */
7788 YY_RULE_SETUP
7789 {
7790   LEAVE;
7791   ETag_surfxml_cabinet();
7792   popbuffer(); /* attribute */
7793   switch (YY_START) {
7794    case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7795    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7796    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7797    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7798   }
7799  }
7800         YY_BREAK
7801 case 328:
7802 /* rule 328 can match eol */
7803 YY_RULE_SETUP
7804 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7805         YY_BREAK
7806 case 329:
7807 YY_RULE_SETUP
7808 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7809         YY_BREAK
7810 case YY_STATE_EOF(E_surfxml_cabinet):
7811 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7812         YY_BREAK
7813
7814 case 330:
7815 /* rule 330 can match eol */
7816 YY_RULE_SETUP
7817 FAIL("Starting tag <peer> is not allowed here.");
7818         YY_BREAK
7819 case 331:
7820 /* rule 331 can match eol */
7821 YY_RULE_SETUP
7822 {
7823   AX_surfxml_peer_id = 0;
7824   surfxml_peer_id_isset = 0;
7825   AX_surfxml_peer_power = 0;
7826   surfxml_peer_power_isset = 0;
7827   AX_surfxml_peer_bw___in = 0;
7828   surfxml_peer_bw___in_isset = 0;
7829   AX_surfxml_peer_bw___out = 0;
7830   surfxml_peer_bw___out_isset = 0;
7831   AX_surfxml_peer_lat = 0;
7832   surfxml_peer_lat_isset = 0;
7833   AX_surfxml_peer_coordinates = 0;
7834   surfxml_peer_coordinates_isset = 0;
7835   AX_surfxml_peer_availability___file = 0;
7836   surfxml_peer_availability___file_isset = 0;
7837   AX_surfxml_peer_state___file = 0;
7838   surfxml_peer_state___file_isset = 0;
7839   ENTER(AL_surfxml_peer); pushbuffer(0);
7840   }
7841         YY_BREAK
7842
7843 case 332:
7844 /* rule 332 can match eol */
7845 YY_RULE_SETUP
7846 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);
7847         YY_BREAK
7848 case 333:
7849 /* rule 333 can match eol */
7850 YY_RULE_SETUP
7851 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);
7852         YY_BREAK
7853 case 334:
7854 /* rule 334 can match eol */
7855 YY_RULE_SETUP
7856 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);
7857         YY_BREAK
7858 case 335:
7859 /* rule 335 can match eol */
7860 YY_RULE_SETUP
7861 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);
7862         YY_BREAK
7863 case 336:
7864 /* rule 336 can match eol */
7865 YY_RULE_SETUP
7866 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);
7867         YY_BREAK
7868 case 337:
7869 /* rule 337 can match eol */
7870 YY_RULE_SETUP
7871 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);
7872         YY_BREAK
7873 case 338:
7874 /* rule 338 can match eol */
7875 YY_RULE_SETUP
7876 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);
7877         YY_BREAK
7878 case 339:
7879 /* rule 339 can match eol */
7880 YY_RULE_SETUP
7881 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);
7882         YY_BREAK
7883 case 340:
7884 /* rule 340 can match eol */
7885 YY_RULE_SETUP
7886 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);
7887         YY_BREAK
7888 case 341:
7889 /* rule 341 can match eol */
7890 YY_RULE_SETUP
7891 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);
7892         YY_BREAK
7893 case 342:
7894 /* rule 342 can match eol */
7895 YY_RULE_SETUP
7896 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);
7897         YY_BREAK
7898 case 343:
7899 /* rule 343 can match eol */
7900 YY_RULE_SETUP
7901 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);
7902         YY_BREAK
7903 case 344:
7904 /* rule 344 can match eol */
7905 YY_RULE_SETUP
7906 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);
7907         YY_BREAK
7908 case 345:
7909 /* rule 345 can match eol */
7910 YY_RULE_SETUP
7911 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);
7912         YY_BREAK
7913 case 346:
7914 /* rule 346 can match eol */
7915 YY_RULE_SETUP
7916 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);
7917         YY_BREAK
7918 case 347:
7919 /* rule 347 can match eol */
7920 YY_RULE_SETUP
7921 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);
7922         YY_BREAK
7923 case 348:
7924 YY_RULE_SETUP
7925 {
7926   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7927   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7928   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7929   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7930   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7931   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7932  }
7933         YY_BREAK
7934 case 349:
7935 YY_RULE_SETUP
7936 {
7937   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7938   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7939   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7940   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7941   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7942   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7943   switch (YY_START) {
7944    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7945    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7946    case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
7947   }
7948  }
7949         YY_BREAK
7950 case 350:
7951 YY_RULE_SETUP
7952 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7953         YY_BREAK
7954 case 351:
7955 YY_RULE_SETUP
7956 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7957         YY_BREAK
7958 case YY_STATE_EOF(AL_surfxml_peer):
7959 FAIL("EOF in attribute list of `peer' element.");
7960         YY_BREAK
7961
7962 case 352:
7963 /* rule 352 can match eol */
7964 YY_RULE_SETUP
7965 {
7966   LEAVE;
7967   ETag_surfxml_peer();
7968   popbuffer(); /* attribute */
7969   switch (YY_START) {
7970    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7971    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7972    case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
7973   }
7974  }
7975         YY_BREAK
7976 case 353:
7977 /* rule 353 can match eol */
7978 YY_RULE_SETUP
7979 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7980         YY_BREAK
7981 case 354:
7982 YY_RULE_SETUP
7983 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7984         YY_BREAK
7985 case YY_STATE_EOF(E_surfxml_peer):
7986 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7987         YY_BREAK
7988
7989 case 355:
7990 /* rule 355 can match eol */
7991 YY_RULE_SETUP
7992 FAIL("Starting tag <router> is not allowed here.");
7993         YY_BREAK
7994 case 356:
7995 /* rule 356 can match eol */
7996 YY_RULE_SETUP
7997 {
7998   AX_surfxml_router_id = 0;
7999   surfxml_router_id_isset = 0;
8000   AX_surfxml_router_coordinates = 0;
8001   surfxml_router_coordinates_isset = 0;
8002   ENTER(AL_surfxml_router); pushbuffer(0);
8003   }
8004         YY_BREAK
8005
8006 case 357:
8007 /* rule 357 can match eol */
8008 YY_RULE_SETUP
8009 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);
8010         YY_BREAK
8011 case 358:
8012 /* rule 358 can match eol */
8013 YY_RULE_SETUP
8014 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);
8015         YY_BREAK
8016 case 359:
8017 /* rule 359 can match eol */
8018 YY_RULE_SETUP
8019 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);
8020         YY_BREAK
8021 case 360:
8022 /* rule 360 can match eol */
8023 YY_RULE_SETUP
8024 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);
8025         YY_BREAK
8026 case 361:
8027 YY_RULE_SETUP
8028 {
8029   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8030   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8031  }
8032         YY_BREAK
8033 case 362:
8034 YY_RULE_SETUP
8035 {
8036   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8037   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8038   switch (YY_START) {
8039    case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8040   }
8041  }
8042         YY_BREAK
8043 case 363:
8044 YY_RULE_SETUP
8045 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8046         YY_BREAK
8047 case 364:
8048 YY_RULE_SETUP
8049 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8050         YY_BREAK
8051 case YY_STATE_EOF(AL_surfxml_router):
8052 FAIL("EOF in attribute list of `router' element.");
8053         YY_BREAK
8054
8055 case 365:
8056 /* rule 365 can match eol */
8057 YY_RULE_SETUP
8058 {
8059   LEAVE;
8060   ETag_surfxml_router();
8061   popbuffer(); /* attribute */
8062   switch (YY_START) {
8063    case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8064   }
8065  }
8066         YY_BREAK
8067 case 366:
8068 /* rule 366 can match eol */
8069 YY_RULE_SETUP
8070 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8071         YY_BREAK
8072 case 367:
8073 YY_RULE_SETUP
8074 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8075         YY_BREAK
8076 case YY_STATE_EOF(E_surfxml_router):
8077 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8078         YY_BREAK
8079
8080 case 368:
8081 /* rule 368 can match eol */
8082 YY_RULE_SETUP
8083 FAIL("Starting tag <backbone> is not allowed here.");
8084         YY_BREAK
8085 case 369:
8086 /* rule 369 can match eol */
8087 YY_RULE_SETUP
8088 {
8089   AX_surfxml_backbone_id = 0;
8090   surfxml_backbone_id_isset = 0;
8091   AX_surfxml_backbone_bandwidth = 0;
8092   surfxml_backbone_bandwidth_isset = 0;
8093   AX_surfxml_backbone_latency = 0;
8094   surfxml_backbone_latency_isset = 0;
8095   ENTER(AL_surfxml_backbone); pushbuffer(0);
8096   }
8097         YY_BREAK
8098
8099 case 370:
8100 /* rule 370 can match eol */
8101 YY_RULE_SETUP
8102 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);
8103         YY_BREAK
8104 case 371:
8105 /* rule 371 can match eol */
8106 YY_RULE_SETUP
8107 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);
8108         YY_BREAK
8109 case 372:
8110 /* rule 372 can match eol */
8111 YY_RULE_SETUP
8112 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);
8113         YY_BREAK
8114 case 373:
8115 /* rule 373 can match eol */
8116 YY_RULE_SETUP
8117 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);
8118         YY_BREAK
8119 case 374:
8120 /* rule 374 can match eol */
8121 YY_RULE_SETUP
8122 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);
8123         YY_BREAK
8124 case 375:
8125 /* rule 375 can match eol */
8126 YY_RULE_SETUP
8127 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);
8128         YY_BREAK
8129 case 376:
8130 YY_RULE_SETUP
8131 {
8132   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8133   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8134   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8135   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8136  }
8137         YY_BREAK
8138 case 377:
8139 YY_RULE_SETUP
8140 {
8141   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8142   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8143   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8144   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8145   switch (YY_START) {
8146    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8147    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8148   }
8149  }
8150         YY_BREAK
8151 case 378:
8152 YY_RULE_SETUP
8153 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8154         YY_BREAK
8155 case 379:
8156 YY_RULE_SETUP
8157 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8158         YY_BREAK
8159 case YY_STATE_EOF(AL_surfxml_backbone):
8160 FAIL("EOF in attribute list of `backbone' element.");
8161         YY_BREAK
8162
8163 case 380:
8164 /* rule 380 can match eol */
8165 YY_RULE_SETUP
8166 {
8167   LEAVE;
8168   ETag_surfxml_backbone();
8169   popbuffer(); /* attribute */
8170   switch (YY_START) {
8171    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8172    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8173   }
8174  }
8175         YY_BREAK
8176 case 381:
8177 /* rule 381 can match eol */
8178 YY_RULE_SETUP
8179 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8180         YY_BREAK
8181 case 382:
8182 YY_RULE_SETUP
8183 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8184         YY_BREAK
8185 case YY_STATE_EOF(E_surfxml_backbone):
8186 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8187         YY_BREAK
8188
8189 case 383:
8190 /* rule 383 can match eol */
8191 YY_RULE_SETUP
8192 FAIL("Starting tag <link> is not allowed here.");
8193         YY_BREAK
8194 case 384:
8195 /* rule 384 can match eol */
8196 YY_RULE_SETUP
8197 {
8198   AX_surfxml_link_id = 0;
8199   surfxml_link_id_isset = 0;
8200   AX_surfxml_link_bandwidth = 0;
8201   surfxml_link_bandwidth_isset = 0;
8202   AX_surfxml_link_bandwidth___file = 0;
8203   surfxml_link_bandwidth___file_isset = 0;
8204   AX_surfxml_link_latency = 46;
8205   surfxml_link_latency_isset = 0;
8206   AX_surfxml_link_latency___file = 0;
8207   surfxml_link_latency___file_isset = 0;
8208   AX_surfxml_link_state = A_surfxml_link_state_ON;
8209   surfxml_link_state_isset = 0;
8210   AX_surfxml_link_state___file = 0;
8211   surfxml_link_state___file_isset = 0;
8212   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8213   surfxml_link_sharing___policy_isset = 0;
8214   ENTER(AL_surfxml_link); pushbuffer(0);
8215   }
8216         YY_BREAK
8217
8218 case 385:
8219 /* rule 385 can match eol */
8220 YY_RULE_SETUP
8221 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);
8222         YY_BREAK
8223 case 386:
8224 /* rule 386 can match eol */
8225 YY_RULE_SETUP
8226 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);
8227         YY_BREAK
8228 case 387:
8229 /* rule 387 can match eol */
8230 YY_RULE_SETUP
8231 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);
8232         YY_BREAK
8233 case 388:
8234 /* rule 388 can match eol */
8235 YY_RULE_SETUP
8236 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);
8237         YY_BREAK
8238 case 389:
8239 /* rule 389 can match eol */
8240 YY_RULE_SETUP
8241 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);
8242         YY_BREAK
8243 case 390:
8244 /* rule 390 can match eol */
8245 YY_RULE_SETUP
8246 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);
8247         YY_BREAK
8248 case 391:
8249 /* rule 391 can match eol */
8250 YY_RULE_SETUP
8251 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);
8252         YY_BREAK
8253 case 392:
8254 /* rule 392 can match eol */
8255 YY_RULE_SETUP
8256 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);
8257         YY_BREAK
8258 case 393:
8259 /* rule 393 can match eol */
8260 YY_RULE_SETUP
8261 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);
8262         YY_BREAK
8263 case 394:
8264 /* rule 394 can match eol */
8265 YY_RULE_SETUP
8266 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);
8267         YY_BREAK
8268 case 395:
8269 /* rule 395 can match eol */
8270 case 396:
8271 /* rule 396 can match eol */
8272 YY_RULE_SETUP
8273 A_surfxml_link_state = A_surfxml_link_state_ON;
8274         YY_BREAK
8275 case 397:
8276 /* rule 397 can match eol */
8277 case 398:
8278 /* rule 398 can match eol */
8279 YY_RULE_SETUP
8280 A_surfxml_link_state = A_surfxml_link_state_OFF;
8281         YY_BREAK
8282 case 399:
8283 /* rule 399 can match eol */
8284 YY_RULE_SETUP
8285 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);
8286         YY_BREAK
8287 case 400:
8288 /* rule 400 can match eol */
8289 YY_RULE_SETUP
8290 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);
8291         YY_BREAK
8292 case 401:
8293 /* rule 401 can match eol */
8294 case 402:
8295 /* rule 402 can match eol */
8296 YY_RULE_SETUP
8297 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8298         YY_BREAK
8299 case 403:
8300 /* rule 403 can match eol */
8301 case 404:
8302 /* rule 404 can match eol */
8303 YY_RULE_SETUP
8304 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8305         YY_BREAK
8306 case 405:
8307 /* rule 405 can match eol */
8308 case 406:
8309 /* rule 406 can match eol */
8310 YY_RULE_SETUP
8311 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8312         YY_BREAK
8313 case 407:
8314 YY_RULE_SETUP
8315 {
8316   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8317   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8318   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8319  }
8320         YY_BREAK
8321 case 408:
8322 YY_RULE_SETUP
8323 {
8324   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8325   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8326   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8327   switch (YY_START) {
8328    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8329    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8330   }
8331  }
8332         YY_BREAK
8333 case 409:
8334 YY_RULE_SETUP
8335 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8336         YY_BREAK
8337 case 410:
8338 YY_RULE_SETUP
8339 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8340         YY_BREAK
8341 case YY_STATE_EOF(AL_surfxml_link):
8342 FAIL("EOF in attribute list of `link' element.");
8343         YY_BREAK
8344
8345 case 411:
8346 /* rule 411 can match eol */
8347 YY_RULE_SETUP
8348 {
8349   LEAVE;
8350   ETag_surfxml_link();
8351   popbuffer(); /* attribute */
8352   switch (YY_START) {
8353    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8354    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8355   }
8356  }
8357         YY_BREAK
8358 case 412:
8359 /* rule 412 can match eol */
8360 YY_RULE_SETUP
8361 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8362         YY_BREAK
8363 case 413:
8364 YY_RULE_SETUP
8365 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8366         YY_BREAK
8367 case YY_STATE_EOF(E_surfxml_link):
8368 case YY_STATE_EOF(S_surfxml_link):
8369 case YY_STATE_EOF(S_surfxml_link_2):
8370 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8371         YY_BREAK
8372
8373 case 414:
8374 /* rule 414 can match eol */
8375 YY_RULE_SETUP
8376 FAIL("Starting tag <route> is not allowed here.");
8377         YY_BREAK
8378 case 415:
8379 /* rule 415 can match eol */
8380 YY_RULE_SETUP
8381 {
8382   AX_surfxml_route_src = 0;
8383   surfxml_route_src_isset = 0;
8384   AX_surfxml_route_dst = 0;
8385   surfxml_route_dst_isset = 0;
8386   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8387   surfxml_route_symmetrical_isset = 0;
8388   ENTER(AL_surfxml_route); pushbuffer(0);
8389   }
8390         YY_BREAK
8391
8392 case 416:
8393 /* rule 416 can match eol */
8394 YY_RULE_SETUP
8395 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);
8396         YY_BREAK
8397 case 417:
8398 /* rule 417 can match eol */
8399 YY_RULE_SETUP
8400 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);
8401         YY_BREAK
8402 case 418:
8403 /* rule 418 can match eol */
8404 YY_RULE_SETUP
8405 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);
8406         YY_BREAK
8407 case 419:
8408 /* rule 419 can match eol */
8409 YY_RULE_SETUP
8410 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);
8411         YY_BREAK
8412 case 420:
8413 /* rule 420 can match eol */
8414 case 421:
8415 /* rule 421 can match eol */
8416 YY_RULE_SETUP
8417 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8418         YY_BREAK
8419 case 422:
8420 /* rule 422 can match eol */
8421 case 423:
8422 /* rule 423 can match eol */
8423 YY_RULE_SETUP
8424 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8425         YY_BREAK
8426 case 424:
8427 YY_RULE_SETUP
8428 {
8429   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8430   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8431   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8432  }
8433         YY_BREAK
8434 case 425:
8435 YY_RULE_SETUP
8436 {
8437   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8438   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8439   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8440   switch (YY_START) {
8441    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS_14: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8442   }
8443  }
8444         YY_BREAK
8445 case 426:
8446 YY_RULE_SETUP
8447 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8448         YY_BREAK
8449 case 427:
8450 YY_RULE_SETUP
8451 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8452         YY_BREAK
8453 case YY_STATE_EOF(AL_surfxml_route):
8454 FAIL("EOF in attribute list of `route' element.");
8455         YY_BREAK
8456
8457 case 428:
8458 /* rule 428 can match eol */
8459 YY_RULE_SETUP
8460 {
8461   LEAVE;
8462   ETag_surfxml_route();
8463   popbuffer(); /* attribute */
8464   switch (YY_START) {
8465    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS_14: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8466   }
8467  }
8468         YY_BREAK
8469 case 429:
8470 /* rule 429 can match eol */
8471 YY_RULE_SETUP
8472 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8473         YY_BREAK
8474 case 430:
8475 YY_RULE_SETUP
8476 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8477         YY_BREAK
8478 case YY_STATE_EOF(S_surfxml_route):
8479 case YY_STATE_EOF(S_surfxml_route_2):
8480 case YY_STATE_EOF(E_surfxml_route):
8481 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8482         YY_BREAK
8483
8484 case 431:
8485 /* rule 431 can match eol */
8486 YY_RULE_SETUP
8487 FAIL("Starting tag <ASroute> is not allowed here.");
8488         YY_BREAK
8489 case 432:
8490 /* rule 432 can match eol */
8491 YY_RULE_SETUP
8492 {
8493   AX_surfxml_ASroute_src = 0;
8494   surfxml_ASroute_src_isset = 0;
8495   AX_surfxml_ASroute_dst = 0;
8496   surfxml_ASroute_dst_isset = 0;
8497   AX_surfxml_ASroute_gw___src = 0;
8498   surfxml_ASroute_gw___src_isset = 0;
8499   AX_surfxml_ASroute_gw___dst = 0;
8500   surfxml_ASroute_gw___dst_isset = 0;
8501   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8502   surfxml_ASroute_symmetrical_isset = 0;
8503   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8504   }
8505         YY_BREAK
8506
8507 case 433:
8508 /* rule 433 can match eol */
8509 YY_RULE_SETUP
8510 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);
8511         YY_BREAK
8512 case 434:
8513 /* rule 434 can match eol */
8514 YY_RULE_SETUP
8515 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);
8516         YY_BREAK
8517 case 435:
8518 /* rule 435 can match eol */
8519 YY_RULE_SETUP
8520 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);
8521         YY_BREAK
8522 case 436:
8523 /* rule 436 can match eol */
8524 YY_RULE_SETUP
8525 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);
8526         YY_BREAK
8527 case 437:
8528 /* rule 437 can match eol */
8529 YY_RULE_SETUP
8530 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);
8531         YY_BREAK
8532 case 438:
8533 /* rule 438 can match eol */
8534 YY_RULE_SETUP
8535 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);
8536         YY_BREAK
8537 case 439:
8538 /* rule 439 can match eol */
8539 YY_RULE_SETUP
8540 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);
8541         YY_BREAK
8542 case 440:
8543 /* rule 440 can match eol */
8544 YY_RULE_SETUP
8545 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);
8546         YY_BREAK
8547 case 441:
8548 /* rule 441 can match eol */
8549 case 442:
8550 /* rule 442 can match eol */
8551 YY_RULE_SETUP
8552 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8553         YY_BREAK
8554 case 443:
8555 /* rule 443 can match eol */
8556 case 444:
8557 /* rule 444 can match eol */
8558 YY_RULE_SETUP
8559 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8560         YY_BREAK
8561 case 445:
8562 YY_RULE_SETUP
8563 {
8564   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8565   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8566   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8567   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8568   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8569  }
8570         YY_BREAK
8571 case 446:
8572 YY_RULE_SETUP
8573 {
8574   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8575   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8576   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8577   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8578   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8579   switch (YY_START) {
8580    case S_surfxml_AS_8: case S_surfxml_AS_9: case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_9); break;
8581   }
8582  }
8583         YY_BREAK
8584 case 447:
8585 YY_RULE_SETUP
8586 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8587         YY_BREAK
8588 case 448:
8589 YY_RULE_SETUP
8590 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8591         YY_BREAK
8592 case YY_STATE_EOF(AL_surfxml_ASroute):
8593 FAIL("EOF in attribute list of `ASroute' element.");
8594         YY_BREAK
8595
8596 case 449:
8597 /* rule 449 can match eol */
8598 YY_RULE_SETUP
8599 {
8600   LEAVE;
8601   ETag_surfxml_ASroute();
8602   popbuffer(); /* attribute */
8603   switch (YY_START) {
8604    case S_surfxml_AS_8: case S_surfxml_AS_9: case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_9); break;
8605   }
8606  }
8607         YY_BREAK
8608 case 450:
8609 /* rule 450 can match eol */
8610 YY_RULE_SETUP
8611 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8612         YY_BREAK
8613 case 451:
8614 YY_RULE_SETUP
8615 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8616         YY_BREAK
8617 case YY_STATE_EOF(E_surfxml_ASroute):
8618 case YY_STATE_EOF(S_surfxml_ASroute_2):
8619 case YY_STATE_EOF(S_surfxml_ASroute):
8620 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8621         YY_BREAK
8622
8623 case 452:
8624 /* rule 452 can match eol */
8625 YY_RULE_SETUP
8626 FAIL("Starting tag <link_ctn> is not allowed here.");
8627         YY_BREAK
8628 case 453:
8629 /* rule 453 can match eol */
8630 YY_RULE_SETUP
8631 {
8632   AX_surfxml_link___ctn_id = 0;
8633   surfxml_link___ctn_id_isset = 0;
8634   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8635   surfxml_link___ctn_direction_isset = 0;
8636   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8637   }
8638         YY_BREAK
8639
8640 case 454:
8641 /* rule 454 can match eol */
8642 YY_RULE_SETUP
8643 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);
8644         YY_BREAK
8645 case 455:
8646 /* rule 455 can match eol */
8647 YY_RULE_SETUP
8648 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);
8649         YY_BREAK
8650 case 456:
8651 /* rule 456 can match eol */
8652 case 457:
8653 /* rule 457 can match eol */
8654 YY_RULE_SETUP
8655 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8656         YY_BREAK
8657 case 458:
8658 /* rule 458 can match eol */
8659 case 459:
8660 /* rule 459 can match eol */
8661 YY_RULE_SETUP
8662 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8663         YY_BREAK
8664 case 460:
8665 /* rule 460 can match eol */
8666 case 461:
8667 /* rule 461 can match eol */
8668 YY_RULE_SETUP
8669 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8670         YY_BREAK
8671 case 462:
8672 YY_RULE_SETUP
8673 {
8674   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8675   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8676  }
8677         YY_BREAK
8678 case 463:
8679 YY_RULE_SETUP
8680 {
8681   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8682   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8683   switch (YY_START) {
8684    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8685    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8686    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8687    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: SET(S_surfxml_bypassRoute_2); break;
8688   }
8689  }
8690         YY_BREAK
8691 case 464:
8692 YY_RULE_SETUP
8693 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8694         YY_BREAK
8695 case 465:
8696 YY_RULE_SETUP
8697 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8698         YY_BREAK
8699 case YY_STATE_EOF(AL_surfxml_link___ctn):
8700 FAIL("EOF in attribute list of `link_ctn' element.");
8701         YY_BREAK
8702
8703 case 466:
8704 /* rule 466 can match eol */
8705 YY_RULE_SETUP
8706 {
8707   LEAVE;
8708   ETag_surfxml_link___ctn();
8709   popbuffer(); /* attribute */
8710   switch (YY_START) {
8711    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8712    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8713    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8714    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: SET(S_surfxml_bypassRoute_2); break;
8715   }
8716  }
8717         YY_BREAK
8718 case 467:
8719 /* rule 467 can match eol */
8720 YY_RULE_SETUP
8721 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8722         YY_BREAK
8723 case 468:
8724 YY_RULE_SETUP
8725 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8726         YY_BREAK
8727 case YY_STATE_EOF(E_surfxml_link___ctn):
8728 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8729         YY_BREAK
8730
8731 case 469:
8732 /* rule 469 can match eol */
8733 YY_RULE_SETUP
8734 FAIL("Starting tag <bypassRoute> is not allowed here.");
8735         YY_BREAK
8736 case 470:
8737 /* rule 470 can match eol */
8738 YY_RULE_SETUP
8739 {
8740   AX_surfxml_bypassRoute_src = 0;
8741   surfxml_bypassRoute_src_isset = 0;
8742   AX_surfxml_bypassRoute_dst = 0;
8743   surfxml_bypassRoute_dst_isset = 0;
8744   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8745   }
8746         YY_BREAK
8747
8748 case 471:
8749 /* rule 471 can match eol */
8750 YY_RULE_SETUP
8751 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);
8752         YY_BREAK
8753 case 472:
8754 /* rule 472 can match eol */
8755 YY_RULE_SETUP
8756 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);
8757         YY_BREAK
8758 case 473:
8759 /* rule 473 can match eol */
8760 YY_RULE_SETUP
8761 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);
8762         YY_BREAK
8763 case 474:
8764 /* rule 474 can match eol */
8765 YY_RULE_SETUP
8766 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);
8767         YY_BREAK
8768 case 475:
8769 YY_RULE_SETUP
8770 {
8771   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8772   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8773   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8774  }
8775         YY_BREAK
8776 case 476:
8777 YY_RULE_SETUP
8778 {
8779   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8780   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8781   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8782   switch (YY_START) {
8783    case S_surfxml_AS_3: case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_14: SET(S_surfxml_AS_16); break;
8784   }
8785  }
8786         YY_BREAK
8787 case 477:
8788 YY_RULE_SETUP
8789 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8790         YY_BREAK
8791 case 478:
8792 YY_RULE_SETUP
8793 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8794         YY_BREAK
8795 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8796 FAIL("EOF in attribute list of `bypassRoute' element.");
8797         YY_BREAK
8798
8799 case 479:
8800 /* rule 479 can match eol */
8801 YY_RULE_SETUP
8802 {
8803   LEAVE;
8804   ETag_surfxml_bypassRoute();
8805   popbuffer(); /* attribute */
8806   switch (YY_START) {
8807    case S_surfxml_AS_3: case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_14: SET(S_surfxml_AS_16); break;
8808   }
8809  }
8810         YY_BREAK
8811 case 480:
8812 /* rule 480 can match eol */
8813 YY_RULE_SETUP
8814 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8815         YY_BREAK
8816 case 481:
8817 YY_RULE_SETUP
8818 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8819         YY_BREAK
8820 case YY_STATE_EOF(E_surfxml_bypassRoute):
8821 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8822 case YY_STATE_EOF(S_surfxml_bypassRoute):
8823 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8824         YY_BREAK
8825
8826 case 482:
8827 /* rule 482 can match eol */
8828 YY_RULE_SETUP
8829 FAIL("Starting tag <bypassASroute> is not allowed here.");
8830         YY_BREAK
8831 case 483:
8832 /* rule 483 can match eol */
8833 YY_RULE_SETUP
8834 {
8835   AX_surfxml_bypassASroute_src = 0;
8836   surfxml_bypassASroute_src_isset = 0;
8837   AX_surfxml_bypassASroute_dst = 0;
8838   surfxml_bypassASroute_dst_isset = 0;
8839   AX_surfxml_bypassASroute_gw___src = 0;
8840   surfxml_bypassASroute_gw___src_isset = 0;
8841   AX_surfxml_bypassASroute_gw___dst = 0;
8842   surfxml_bypassASroute_gw___dst_isset = 0;
8843   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8844   }
8845         YY_BREAK
8846
8847 case 484:
8848 /* rule 484 can match eol */
8849 YY_RULE_SETUP
8850 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);
8851         YY_BREAK
8852 case 485:
8853 /* rule 485 can match eol */
8854 YY_RULE_SETUP
8855 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);
8856         YY_BREAK
8857 case 486:
8858 /* rule 486 can match eol */
8859 YY_RULE_SETUP
8860 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);
8861         YY_BREAK
8862 case 487:
8863 /* rule 487 can match eol */
8864 YY_RULE_SETUP
8865 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);
8866         YY_BREAK
8867 case 488:
8868 /* rule 488 can match eol */
8869 YY_RULE_SETUP
8870 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);
8871         YY_BREAK
8872 case 489:
8873 /* rule 489 can match eol */
8874 YY_RULE_SETUP
8875 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);
8876         YY_BREAK
8877 case 490:
8878 /* rule 490 can match eol */
8879 YY_RULE_SETUP
8880 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);
8881         YY_BREAK
8882 case 491:
8883 /* rule 491 can match eol */
8884 YY_RULE_SETUP
8885 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);
8886         YY_BREAK
8887 case 492:
8888 YY_RULE_SETUP
8889 {
8890   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8891   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8892   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8893   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8894   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8895  }
8896         YY_BREAK
8897 case 493:
8898 YY_RULE_SETUP
8899 {
8900   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8901   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8902   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8903   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8904   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8905   switch (YY_START) {
8906    case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
8907   }
8908  }
8909         YY_BREAK
8910 case 494:
8911 YY_RULE_SETUP
8912 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8913         YY_BREAK
8914 case 495:
8915 YY_RULE_SETUP
8916 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8917         YY_BREAK
8918 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8919 FAIL("EOF in attribute list of `bypassASroute' element.");
8920         YY_BREAK
8921
8922 case 496:
8923 /* rule 496 can match eol */
8924 YY_RULE_SETUP
8925 {
8926   LEAVE;
8927   ETag_surfxml_bypassASroute();
8928   popbuffer(); /* attribute */
8929   switch (YY_START) {
8930    case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
8931   }
8932  }
8933         YY_BREAK
8934 case 497:
8935 /* rule 497 can match eol */
8936 YY_RULE_SETUP
8937 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8938         YY_BREAK
8939 case 498:
8940 YY_RULE_SETUP
8941 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8942         YY_BREAK
8943 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8944 case YY_STATE_EOF(E_surfxml_bypassASroute):
8945 case YY_STATE_EOF(S_surfxml_bypassASroute):
8946 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8947         YY_BREAK
8948
8949 case 499:
8950 /* rule 499 can match eol */
8951 YY_RULE_SETUP
8952 FAIL("Starting tag <process> is not allowed here.");
8953         YY_BREAK
8954 case 500:
8955 /* rule 500 can match eol */
8956 YY_RULE_SETUP
8957 {
8958   AX_surfxml_process_host = 0;
8959   surfxml_process_host_isset = 0;
8960   AX_surfxml_process_function = 0;
8961   surfxml_process_function_isset = 0;
8962   AX_surfxml_process_start___time = 50;
8963   surfxml_process_start___time_isset = 0;
8964   AX_surfxml_process_kill___time = 55;
8965   surfxml_process_kill___time_isset = 0;
8966   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8967   surfxml_process_on___failure_isset = 0;
8968   ENTER(AL_surfxml_process); pushbuffer(0);
8969   }
8970         YY_BREAK
8971
8972 case 501:
8973 /* rule 501 can match eol */
8974 YY_RULE_SETUP
8975 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);
8976         YY_BREAK
8977 case 502:
8978 /* rule 502 can match eol */
8979 YY_RULE_SETUP
8980 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);
8981         YY_BREAK
8982 case 503:
8983 /* rule 503 can match eol */
8984 YY_RULE_SETUP
8985 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);
8986         YY_BREAK
8987 case 504:
8988 /* rule 504 can match eol */
8989 YY_RULE_SETUP
8990 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);
8991         YY_BREAK
8992 case 505:
8993 /* rule 505 can match eol */
8994 YY_RULE_SETUP
8995 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);
8996         YY_BREAK
8997 case 506:
8998 /* rule 506 can match eol */
8999 YY_RULE_SETUP
9000 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);
9001         YY_BREAK
9002 case 507:
9003 /* rule 507 can match eol */
9004 YY_RULE_SETUP
9005 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);
9006         YY_BREAK
9007 case 508:
9008 /* rule 508 can match eol */
9009 YY_RULE_SETUP
9010 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);
9011         YY_BREAK
9012 case 509:
9013 /* rule 509 can match eol */
9014 case 510:
9015 /* rule 510 can match eol */
9016 YY_RULE_SETUP
9017 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9018         YY_BREAK
9019 case 511:
9020 /* rule 511 can match eol */
9021 case 512:
9022 /* rule 512 can match eol */
9023 YY_RULE_SETUP
9024 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9025         YY_BREAK
9026 case 513:
9027 YY_RULE_SETUP
9028 {
9029   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9030   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9031   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9032  }
9033         YY_BREAK
9034 case 514:
9035 YY_RULE_SETUP
9036 {
9037   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9038   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9039   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9040   switch (YY_START) {
9041    case S_surfxml_platform_4: case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9042   }
9043  }
9044         YY_BREAK
9045 case 515:
9046 YY_RULE_SETUP
9047 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9048         YY_BREAK
9049 case 516:
9050 YY_RULE_SETUP
9051 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9052         YY_BREAK
9053 case YY_STATE_EOF(AL_surfxml_process):
9054 FAIL("EOF in attribute list of `process' element.");
9055         YY_BREAK
9056
9057 case 517:
9058 /* rule 517 can match eol */
9059 YY_RULE_SETUP
9060 {
9061   LEAVE;
9062   ETag_surfxml_process();
9063   popbuffer(); /* attribute */
9064   switch (YY_START) {
9065    case S_surfxml_platform_4: case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9066   }
9067  }
9068         YY_BREAK
9069 case 518:
9070 /* rule 518 can match eol */
9071 YY_RULE_SETUP
9072 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9073         YY_BREAK
9074 case 519:
9075 YY_RULE_SETUP
9076 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9077         YY_BREAK
9078 case YY_STATE_EOF(S_surfxml_process_2):
9079 case YY_STATE_EOF(S_surfxml_process):
9080 case YY_STATE_EOF(E_surfxml_process):
9081 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9082         YY_BREAK
9083
9084 case 520:
9085 /* rule 520 can match eol */
9086 YY_RULE_SETUP
9087 FAIL("Starting tag <argument> is not allowed here.");
9088         YY_BREAK
9089 case 521:
9090 /* rule 521 can match eol */
9091 YY_RULE_SETUP
9092 {
9093   AX_surfxml_argument_value = 0;
9094   surfxml_argument_value_isset = 0;
9095   ENTER(AL_surfxml_argument); pushbuffer(0);
9096   }
9097         YY_BREAK
9098
9099 case 522:
9100 /* rule 522 can match eol */
9101 YY_RULE_SETUP
9102 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);
9103         YY_BREAK
9104 case 523:
9105 /* rule 523 can match eol */
9106 YY_RULE_SETUP
9107 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);
9108         YY_BREAK
9109 case 524:
9110 YY_RULE_SETUP
9111 {
9112   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9113   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9114  }
9115         YY_BREAK
9116 case 525:
9117 YY_RULE_SETUP
9118 {
9119   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9120   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9121   switch (YY_START) {
9122    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9123   }
9124  }
9125         YY_BREAK
9126 case 526:
9127 YY_RULE_SETUP
9128 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9129         YY_BREAK
9130 case 527:
9131 YY_RULE_SETUP
9132 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9133         YY_BREAK
9134 case YY_STATE_EOF(AL_surfxml_argument):
9135 FAIL("EOF in attribute list of `argument' element.");
9136         YY_BREAK
9137
9138 case 528:
9139 /* rule 528 can match eol */
9140 YY_RULE_SETUP
9141 {
9142   LEAVE;
9143   ETag_surfxml_argument();
9144   popbuffer(); /* attribute */
9145   switch (YY_START) {
9146    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9147   }
9148  }
9149         YY_BREAK
9150 case 529:
9151 /* rule 529 can match eol */
9152 YY_RULE_SETUP
9153 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9154         YY_BREAK
9155 case 530:
9156 YY_RULE_SETUP
9157 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9158         YY_BREAK
9159 case YY_STATE_EOF(E_surfxml_argument):
9160 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9161         YY_BREAK
9162
9163 case 531:
9164 /* rule 531 can match eol */
9165 YY_RULE_SETUP
9166 FAIL("Starting tag <config> is not allowed here.");
9167         YY_BREAK
9168 case 532:
9169 /* rule 532 can match eol */
9170 YY_RULE_SETUP
9171 {
9172   AX_surfxml_config_id = 0;
9173   surfxml_config_id_isset = 0;
9174   ENTER(AL_surfxml_config); pushbuffer(0);
9175   }
9176         YY_BREAK
9177
9178 case 533:
9179 /* rule 533 can match eol */
9180 YY_RULE_SETUP
9181 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);
9182         YY_BREAK
9183 case 534:
9184 /* rule 534 can match eol */
9185 YY_RULE_SETUP
9186 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);
9187         YY_BREAK
9188 case 535:
9189 YY_RULE_SETUP
9190 {
9191   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9192  }
9193         YY_BREAK
9194 case 536:
9195 YY_RULE_SETUP
9196 {
9197   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9198   switch (YY_START) {
9199    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
9200   }
9201  }
9202         YY_BREAK
9203 case 537:
9204 YY_RULE_SETUP
9205 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9206         YY_BREAK
9207 case 538:
9208 YY_RULE_SETUP
9209 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9210         YY_BREAK
9211 case YY_STATE_EOF(AL_surfxml_config):
9212 FAIL("EOF in attribute list of `config' element.");
9213         YY_BREAK
9214
9215 case 539:
9216 /* rule 539 can match eol */
9217 YY_RULE_SETUP
9218 {
9219   LEAVE;
9220   ETag_surfxml_config();
9221   popbuffer(); /* attribute */
9222   switch (YY_START) {
9223    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
9224   }
9225  }
9226         YY_BREAK
9227 case 540:
9228 /* rule 540 can match eol */
9229 YY_RULE_SETUP
9230 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9231         YY_BREAK
9232 case 541:
9233 YY_RULE_SETUP
9234 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9235         YY_BREAK
9236 case YY_STATE_EOF(S_surfxml_config):
9237 case YY_STATE_EOF(S_surfxml_config_2):
9238 case YY_STATE_EOF(E_surfxml_config):
9239 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9240         YY_BREAK
9241
9242 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9243   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9244 case 542:
9245 /* rule 542 can match eol */
9246 YY_RULE_SETUP
9247 FAIL("Starting tag <prop> is not allowed here.");
9248         YY_BREAK
9249 case 543:
9250 /* rule 543 can match eol */
9251 YY_RULE_SETUP
9252 {
9253   AX_surfxml_prop_id = 0;
9254   surfxml_prop_id_isset = 0;
9255   AX_surfxml_prop_value = 0;
9256   surfxml_prop_value_isset = 0;
9257   ENTER(AL_surfxml_prop); pushbuffer(0);
9258   }
9259         YY_BREAK
9260
9261 case 544:
9262 /* rule 544 can match eol */
9263 YY_RULE_SETUP
9264 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);
9265         YY_BREAK
9266 case 545:
9267 /* rule 545 can match eol */
9268 YY_RULE_SETUP
9269 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);
9270         YY_BREAK
9271 case 546:
9272 /* rule 546 can match eol */
9273 YY_RULE_SETUP
9274 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);
9275         YY_BREAK
9276 case 547:
9277 /* rule 547 can match eol */
9278 YY_RULE_SETUP
9279 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);
9280         YY_BREAK
9281 case 548:
9282 YY_RULE_SETUP
9283 {
9284   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9285   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9286   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9287  }
9288         YY_BREAK
9289 case 549:
9290 YY_RULE_SETUP
9291 {
9292   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9293   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9294   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9295   switch (YY_START) {
9296    case S_surfxml_storage___type_2: case S_surfxml_storage___type: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9297    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9298    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
9299    case S_surfxml_storage_2: case S_surfxml_storage: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9300    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9301    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9302    case S_surfxml_link: case S_surfxml_link_2: case S_surfxml_link_1: SET(S_surfxml_link_2); break;
9303    case S_surfxml_AS_3: case S_surfxml_AS_2: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9304   }
9305  }
9306         YY_BREAK
9307 case 550:
9308 YY_RULE_SETUP
9309 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9310         YY_BREAK
9311 case 551:
9312 YY_RULE_SETUP
9313 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9314         YY_BREAK
9315 case YY_STATE_EOF(AL_surfxml_prop):
9316 FAIL("EOF in attribute list of `prop' element.");
9317         YY_BREAK
9318
9319 case 552:
9320 /* rule 552 can match eol */
9321 YY_RULE_SETUP
9322 {
9323   LEAVE;
9324   ETag_surfxml_prop();
9325   popbuffer(); /* attribute */
9326   switch (YY_START) {
9327    case S_surfxml_storage___type_2: case S_surfxml_storage___type: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9328    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9329    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
9330    case S_surfxml_storage_2: case S_surfxml_storage: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9331    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9332    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9333    case S_surfxml_link: case S_surfxml_link_2: case S_surfxml_link_1: SET(S_surfxml_link_2); break;
9334    case S_surfxml_AS_3: case S_surfxml_AS_2: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9335   }
9336  }
9337         YY_BREAK
9338 case 553:
9339 /* rule 553 can match eol */
9340 YY_RULE_SETUP
9341 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9342         YY_BREAK
9343 case 554:
9344 YY_RULE_SETUP
9345 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9346         YY_BREAK
9347 case YY_STATE_EOF(E_surfxml_prop):
9348 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9349         YY_BREAK
9350
9351 /* EPILOG: after the root element. */
9352
9353 case 555:
9354 YY_RULE_SETUP
9355 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9356         YY_BREAK
9357 case YY_STATE_EOF(EPILOG):
9358 SUCCEED;
9359         YY_BREAK
9360
9361 /* CHARACTER DATA. */
9362
9363 /* Non-defined standard entities... */
9364 case 556:
9365 YY_RULE_SETUP
9366 BUFFERPUTC('&');
9367         YY_BREAK
9368 case 557:
9369 YY_RULE_SETUP
9370 BUFFERPUTC('<');
9371         YY_BREAK
9372 case 558:
9373 YY_RULE_SETUP
9374 BUFFERPUTC('>');
9375         YY_BREAK
9376 case 559:
9377 YY_RULE_SETUP
9378 BUFFERPUTC('\'');
9379         YY_BREAK
9380 case 560:
9381 YY_RULE_SETUP
9382 BUFFERPUTC('"');
9383         YY_BREAK
9384 /* Character entities. */
9385 case 561:
9386 YY_RULE_SETUP
9387 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9388         YY_BREAK
9389 case 562:
9390 YY_RULE_SETUP
9391 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9392         YY_BREAK
9393
9394 case 563:
9395 /* rule 563 can match eol */
9396 case 564:
9397 /* rule 564 can match eol */
9398 case 565:
9399 /* rule 565 can match eol */
9400 case 566:
9401 /* rule 566 can match eol */
9402 YY_RULE_SETUP
9403 BUFFERPUTC('\n');
9404         YY_BREAK
9405
9406 case 567:
9407 YY_RULE_SETUP
9408 ENTER(CDATA);
9409         YY_BREAK
9410 case 568:
9411 YY_RULE_SETUP
9412 FAIL("Unexpected `]""]>' in character data.");
9413         YY_BREAK
9414
9415 case 569:
9416 YY_RULE_SETUP
9417 BUFFERDONE; LEAVE;
9418         YY_BREAK
9419 case YY_STATE_EOF(VALUE1):
9420 FAIL("EOF in literal (\"'\" expected).");
9421         YY_BREAK
9422
9423 case 570:
9424 YY_RULE_SETUP
9425 BUFFERDONE; LEAVE;
9426         YY_BREAK
9427 case YY_STATE_EOF(VALUE2):
9428 FAIL("EOF in literal (`\"' expected).");
9429         YY_BREAK
9430
9431 case 571:
9432 /* rule 571 can match eol */
9433 YY_RULE_SETUP
9434 BUFFERPUTC(surf_parse_text[0]);
9435         YY_BREAK
9436 case 572:
9437 YY_RULE_SETUP
9438 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9439         YY_BREAK
9440
9441 case 573:
9442 YY_RULE_SETUP
9443 LEAVE;
9444         YY_BREAK
9445 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9446 case 574:
9447 YY_RULE_SETUP
9448 BUFFERPUTC(surf_parse_text[0]);
9449         YY_BREAK
9450 case YY_STATE_EOF(CDATA):
9451 FAIL("EOF in CDATA section.");
9452         YY_BREAK
9453
9454 /* Impossible rules to avoid warnings from flex(1). */
9455 /* Ideally, this should be replaced by code in flexml.pl that
9456     generates just the states not covered by other rules. */
9457
9458 case 575:
9459 /* rule 575 can match eol */
9460 YY_RULE_SETUP
9461 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9462         YY_BREAK
9463
9464 case 576:
9465 YY_RULE_SETUP
9466 ECHO;
9467         YY_BREAK
9468 case YY_STATE_EOF(INITIAL):
9469 case YY_STATE_EOF(ROOT_surfxml_platform):
9470 case YY_STATE_EOF(S_surfxml_platform_2):
9471 case YY_STATE_EOF(S_surfxml_platform_5):
9472 case YY_STATE_EOF(S_surfxml_platform_7):
9473 case YY_STATE_EOF(S_surfxml_include_1):
9474 case YY_STATE_EOF(S_surfxml_AS_2):
9475 case YY_STATE_EOF(S_surfxml_AS_5):
9476 case YY_STATE_EOF(S_surfxml_AS_8):
9477 case YY_STATE_EOF(S_surfxml_AS_10):
9478 case YY_STATE_EOF(S_surfxml_AS_13):
9479 case YY_STATE_EOF(S_surfxml_AS_15):
9480 case YY_STATE_EOF(S_surfxml_storage___type_1):
9481 case YY_STATE_EOF(S_surfxml_storage_1):
9482 case YY_STATE_EOF(S_surfxml_host_1):
9483 case YY_STATE_EOF(S_surfxml_cluster_1):
9484 case YY_STATE_EOF(S_surfxml_link_1):
9485 case YY_STATE_EOF(S_surfxml_route_1):
9486 case YY_STATE_EOF(S_surfxml_ASroute_1):
9487 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9488 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9489 case YY_STATE_EOF(S_surfxml_process_1):
9490 case YY_STATE_EOF(S_surfxml_config_1):
9491 case YY_STATE_EOF(IMPOSSIBLE):
9492         yyterminate();
9493
9494         case YY_END_OF_BUFFER:
9495                 {
9496                 /* Amount of text matched not including the EOB char. */
9497                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9498
9499                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9500                 *yy_cp = (yy_hold_char);
9501                 YY_RESTORE_YY_MORE_OFFSET
9502
9503                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9504                         {
9505                         /* We're scanning a new file or input source.  It's
9506                          * possible that this happened because the user
9507                          * just pointed surf_parse_in at a new source and called
9508                          * surf_parse_lex().  If so, then we have to assure
9509                          * consistency between YY_CURRENT_BUFFER and our
9510                          * globals.  Here is the right place to do so, because
9511                          * this is the first action (other than possibly a
9512                          * back-up) that will match for the new input source.
9513                          */
9514                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9515                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9516                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9517                         }
9518
9519                 /* Note that here we test for yy_c_buf_p "<=" to the position
9520                  * of the first EOB in the buffer, since yy_c_buf_p will
9521                  * already have been incremented past the NUL character
9522                  * (since all states make transitions on EOB to the
9523                  * end-of-buffer state).  Contrast this with the test
9524                  * in input().
9525                  */
9526                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9527                         { /* This was really a NUL. */
9528                         yy_state_type yy_next_state;
9529
9530                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9531
9532                         yy_current_state = yy_get_previous_state(  );
9533
9534                         /* Okay, we're now positioned to make the NUL
9535                          * transition.  We couldn't have
9536                          * yy_get_previous_state() go ahead and do it
9537                          * for us because it doesn't know how to deal
9538                          * with the possibility of jamming (and we don't
9539                          * want to build jamming into it because then it
9540                          * will run more slowly).
9541                          */
9542
9543                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9544
9545                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9546
9547                         if ( yy_next_state )
9548                                 {
9549                                 /* Consume the NUL. */
9550                                 yy_cp = ++(yy_c_buf_p);
9551                                 yy_current_state = yy_next_state;
9552                                 goto yy_match;
9553                                 }
9554
9555                         else
9556                                 {
9557                                 yy_cp = (yy_c_buf_p);
9558                                 goto yy_find_action;
9559                                 }
9560                         }
9561
9562                 else switch ( yy_get_next_buffer(  ) )
9563                         {
9564                         case EOB_ACT_END_OF_FILE:
9565                                 {
9566                                 (yy_did_buffer_switch_on_eof) = 0;
9567
9568                                 if ( surf_parse_wrap( ) )
9569                                         {
9570                                         /* Note: because we've taken care in
9571                                          * yy_get_next_buffer() to have set up
9572                                          * surf_parse_text, we can now set up
9573                                          * yy_c_buf_p so that if some total
9574                                          * hoser (like flex itself) wants to
9575                                          * call the scanner after we return the
9576                                          * YY_NULL, it'll still work - another
9577                                          * YY_NULL will get returned.
9578                                          */
9579                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9580
9581                                         yy_act = YY_STATE_EOF(YY_START);
9582                                         goto do_action;
9583                                         }
9584
9585                                 else
9586                                         {
9587                                         if ( ! (yy_did_buffer_switch_on_eof) )
9588                                                 YY_NEW_FILE;
9589                                         }
9590                                 break;
9591                                 }
9592
9593                         case EOB_ACT_CONTINUE_SCAN:
9594                                 (yy_c_buf_p) =
9595                                         (yytext_ptr) + yy_amount_of_matched_text;
9596
9597                                 yy_current_state = yy_get_previous_state(  );
9598
9599                                 yy_cp = (yy_c_buf_p);
9600                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9601                                 goto yy_match;
9602
9603                         case EOB_ACT_LAST_MATCH:
9604                                 (yy_c_buf_p) =
9605                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9606
9607                                 yy_current_state = yy_get_previous_state(  );
9608
9609                                 yy_cp = (yy_c_buf_p);
9610                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9611                                 goto yy_find_action;
9612                         }
9613                 break;
9614                 }
9615
9616         default:
9617                 YY_FATAL_ERROR(
9618                         "fatal flex scanner internal error--no action found" );
9619         } /* end of action switch */
9620                 } /* end of scanning one token */
9621 } /* end of surf_parse_lex */
9622
9623 /* yy_get_next_buffer - try to read in a new buffer
9624  *
9625  * Returns a code representing an action:
9626  *      EOB_ACT_LAST_MATCH -
9627  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9628  *      EOB_ACT_END_OF_FILE - end of file
9629  */
9630 static int yy_get_next_buffer (void)
9631 {
9632         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9633         register char *source = (yytext_ptr);
9634         register int number_to_move, i;
9635         int ret_val;
9636
9637         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9638                 YY_FATAL_ERROR(
9639                 "fatal flex scanner internal error--end of buffer missed" );
9640
9641         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9642                 { /* Don't try to fill the buffer, so this is an EOF. */
9643                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9644                         {
9645                         /* We matched a single character, the EOB, so
9646                          * treat this as a final EOF.
9647                          */
9648                         return EOB_ACT_END_OF_FILE;
9649                         }
9650
9651                 else
9652                         {
9653                         /* We matched some text prior to the EOB, first
9654                          * process it.
9655                          */
9656                         return EOB_ACT_LAST_MATCH;
9657                         }
9658                 }
9659
9660         /* Try to read more data. */
9661
9662         /* First move last chars to start of buffer. */
9663         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9664
9665         for ( i = 0; i < number_to_move; ++i )
9666                 *(dest++) = *(source++);
9667
9668         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9669                 /* don't do the read, it's not guaranteed to return an EOF,
9670                  * just force an EOF
9671                  */
9672                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9673
9674         else
9675                 {
9676                         int num_to_read =
9677                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9678
9679                 while ( num_to_read <= 0 )
9680                         { /* Not enough room in the buffer - grow it. */
9681
9682                         /* just a shorter name for the current buffer */
9683                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9684
9685                         int yy_c_buf_p_offset =
9686                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9687
9688                         if ( b->yy_is_our_buffer )
9689                                 {
9690                                 int new_size = b->yy_buf_size * 2;
9691
9692                                 if ( new_size <= 0 )
9693                                         b->yy_buf_size += b->yy_buf_size / 8;
9694                                 else
9695                                         b->yy_buf_size *= 2;
9696
9697                                 b->yy_ch_buf = (char *)
9698                                         /* Include room in for 2 EOB chars. */
9699                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9700                                 }
9701                         else
9702                                 /* Can't grow it, we don't own it. */
9703                                 b->yy_ch_buf = 0;
9704
9705                         if ( ! b->yy_ch_buf )
9706                                 YY_FATAL_ERROR(
9707                                 "fatal error - scanner input buffer overflow" );
9708
9709                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9710
9711                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9712                                                 number_to_move - 1;
9713
9714                         }
9715
9716                 if ( num_to_read > YY_READ_BUF_SIZE )
9717                         num_to_read = YY_READ_BUF_SIZE;
9718
9719                 /* Read in more data. */
9720                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9721                         (yy_n_chars), (size_t) num_to_read );
9722
9723                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9724                 }
9725
9726         if ( (yy_n_chars) == 0 )
9727                 {
9728                 if ( number_to_move == YY_MORE_ADJ )
9729                         {
9730                         ret_val = EOB_ACT_END_OF_FILE;
9731                         surf_parse_restart(surf_parse_in  );
9732                         }
9733
9734                 else
9735                         {
9736                         ret_val = EOB_ACT_LAST_MATCH;
9737                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9738                                 YY_BUFFER_EOF_PENDING;
9739                         }
9740                 }
9741
9742         else
9743                 ret_val = EOB_ACT_CONTINUE_SCAN;
9744
9745         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9746                 /* Extend the array by 50%, plus the number we really need. */
9747                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9748                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9749                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9750                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9751         }
9752
9753         (yy_n_chars) += number_to_move;
9754         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9755         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9756
9757         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9758
9759         return ret_val;
9760 }
9761
9762 /* yy_get_previous_state - get the state just before the EOB char was reached */
9763
9764     static yy_state_type yy_get_previous_state (void)
9765 {
9766         register yy_state_type yy_current_state;
9767         register char *yy_cp;
9768     
9769         yy_current_state = (yy_start);
9770
9771         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9772                 {
9773                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9774                 if ( yy_accept[yy_current_state] )
9775                         {
9776                         (yy_last_accepting_state) = yy_current_state;
9777                         (yy_last_accepting_cpos) = yy_cp;
9778                         }
9779                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9780                         {
9781                         yy_current_state = (int) yy_def[yy_current_state];
9782                         if ( yy_current_state >= 3388 )
9783                                 yy_c = yy_meta[(unsigned int) yy_c];
9784                         }
9785                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9786                 }
9787
9788         return yy_current_state;
9789 }
9790
9791 /* yy_try_NUL_trans - try to make a transition on the NUL character
9792  *
9793  * synopsis
9794  *      next_state = yy_try_NUL_trans( current_state );
9795  */
9796     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9797 {
9798         register int yy_is_jam;
9799         register char *yy_cp = (yy_c_buf_p);
9800
9801         register YY_CHAR yy_c = 1;
9802         if ( yy_accept[yy_current_state] )
9803                 {
9804                 (yy_last_accepting_state) = yy_current_state;
9805                 (yy_last_accepting_cpos) = yy_cp;
9806                 }
9807         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9808                 {
9809                 yy_current_state = (int) yy_def[yy_current_state];
9810                 if ( yy_current_state >= 3388 )
9811                         yy_c = yy_meta[(unsigned int) yy_c];
9812                 }
9813         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9814         yy_is_jam = (yy_current_state == 3387);
9815
9816         return yy_is_jam ? 0 : yy_current_state;
9817 }
9818
9819 #ifndef YY_NO_INPUT
9820 #ifdef __cplusplus
9821     static int yyinput (void)
9822 #else
9823     static int input  (void)
9824 #endif
9825
9826 {
9827         int c;
9828     
9829         *(yy_c_buf_p) = (yy_hold_char);
9830
9831         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9832                 {
9833                 /* yy_c_buf_p now points to the character we want to return.
9834                  * If this occurs *before* the EOB characters, then it's a
9835                  * valid NUL; if not, then we've hit the end of the buffer.
9836                  */
9837                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9838                         /* This was really a NUL. */
9839                         *(yy_c_buf_p) = '\0';
9840
9841                 else
9842                         { /* need more input */
9843                         int offset = (yy_c_buf_p) - (yytext_ptr);
9844                         ++(yy_c_buf_p);
9845
9846                         switch ( yy_get_next_buffer(  ) )
9847                                 {
9848                                 case EOB_ACT_LAST_MATCH:
9849                                         /* This happens because yy_g_n_b()
9850                                          * sees that we've accumulated a
9851                                          * token and flags that we need to
9852                                          * try matching the token before
9853                                          * proceeding.  But for input(),
9854                                          * there's no matching to consider.
9855                                          * So convert the EOB_ACT_LAST_MATCH
9856                                          * to EOB_ACT_END_OF_FILE.
9857                                          */
9858
9859                                         /* Reset buffer status. */
9860                                         surf_parse_restart(surf_parse_in );
9861
9862                                         /*FALLTHROUGH*/
9863
9864                                 case EOB_ACT_END_OF_FILE:
9865                                         {
9866                                         if ( surf_parse_wrap( ) )
9867                                                 return EOF;
9868
9869                                         if ( ! (yy_did_buffer_switch_on_eof) )
9870                                                 YY_NEW_FILE;
9871 #ifdef __cplusplus
9872                                         return yyinput();
9873 #else
9874                                         return input();
9875 #endif
9876                                         }
9877
9878                                 case EOB_ACT_CONTINUE_SCAN:
9879                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9880                                         break;
9881                                 }
9882                         }
9883                 }
9884
9885         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9886         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9887         (yy_hold_char) = *++(yy_c_buf_p);
9888
9889         if ( c == '\n' )
9890                    
9891     surf_parse_lineno++;
9892 ;
9893
9894         return c;
9895 }
9896 #endif  /* ifndef YY_NO_INPUT */
9897
9898 /** Immediately switch to a different input stream.
9899  * @param input_file A readable stream.
9900  * 
9901  * @note This function does not reset the start condition to @c INITIAL .
9902  */
9903     void surf_parse_restart  (FILE * input_file )
9904 {
9905     
9906         if ( ! YY_CURRENT_BUFFER ){
9907         surf_parse_ensure_buffer_stack ();
9908                 YY_CURRENT_BUFFER_LVALUE =
9909             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9910         }
9911
9912         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9913         surf_parse__load_buffer_state( );
9914 }
9915
9916 /** Switch to a different input buffer.
9917  * @param new_buffer The new input buffer.
9918  * 
9919  */
9920     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9921 {
9922     
9923         /* TODO. We should be able to replace this entire function body
9924          * with
9925          *              surf_parse_pop_buffer_state();
9926          *              surf_parse_push_buffer_state(new_buffer);
9927      */
9928         surf_parse_ensure_buffer_stack ();
9929         if ( YY_CURRENT_BUFFER == new_buffer )
9930                 return;
9931
9932         if ( YY_CURRENT_BUFFER )
9933                 {
9934                 /* Flush out information for old buffer. */
9935                 *(yy_c_buf_p) = (yy_hold_char);
9936                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9937                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9938                 }
9939
9940         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9941         surf_parse__load_buffer_state( );
9942
9943         /* We don't actually know whether we did this switch during
9944          * EOF (surf_parse_wrap()) processing, but the only time this flag
9945          * is looked at is after surf_parse_wrap() is called, so it's safe
9946          * to go ahead and always set it.
9947          */
9948         (yy_did_buffer_switch_on_eof) = 1;
9949 }
9950
9951 static void surf_parse__load_buffer_state  (void)
9952 {
9953         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9954         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9955         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9956         (yy_hold_char) = *(yy_c_buf_p);
9957 }
9958
9959 /** Allocate and initialize an input buffer state.
9960  * @param file A readable stream.
9961  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9962  * 
9963  * @return the allocated buffer state.
9964  */
9965     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9966 {
9967         YY_BUFFER_STATE b;
9968     
9969         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9970         if ( ! b )
9971                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9972
9973         b->yy_buf_size = size;
9974
9975         /* yy_ch_buf has to be 2 characters longer than the size given because
9976          * we need to put in 2 end-of-buffer characters.
9977          */
9978         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9979         if ( ! b->yy_ch_buf )
9980                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9981
9982         b->yy_is_our_buffer = 1;
9983
9984         surf_parse__init_buffer(b,file );
9985
9986         return b;
9987 }
9988
9989 /** Destroy the buffer.
9990  * @param b a buffer created with surf_parse__create_buffer()
9991  * 
9992  */
9993     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9994 {
9995     
9996         if ( ! b )
9997                 return;
9998
9999         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10000                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10001
10002         if ( b->yy_is_our_buffer )
10003                 surf_parse_free((void *) b->yy_ch_buf  );
10004
10005         surf_parse_free((void *) b  );
10006 }
10007
10008 #ifndef __cplusplus
10009 extern int isatty (int );
10010 #endif /* __cplusplus */
10011     
10012 /* Initializes or reinitializes a buffer.
10013  * This function is sometimes called more than once on the same buffer,
10014  * such as during a surf_parse_restart() or at EOF.
10015  */
10016     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10017
10018 {
10019         int oerrno = errno;
10020     
10021         surf_parse__flush_buffer(b );
10022
10023         b->yy_input_file = file;
10024         b->yy_fill_buffer = 1;
10025
10026     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10027      * called from surf_parse_restart() or through yy_get_next_buffer.
10028      * In that case, we don't want to reset the lineno or column.
10029      */
10030     if (b != YY_CURRENT_BUFFER){
10031         b->yy_bs_lineno = 1;
10032         b->yy_bs_column = 0;
10033     }
10034
10035         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10036     
10037         errno = oerrno;
10038 }
10039
10040 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10041  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10042  * 
10043  */
10044     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10045 {
10046         if ( ! b )
10047                 return;
10048
10049         b->yy_n_chars = 0;
10050
10051         /* We always need two end-of-buffer characters.  The first causes
10052          * a transition to the end-of-buffer state.  The second causes
10053          * a jam in that state.
10054          */
10055         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10056         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10057
10058         b->yy_buf_pos = &b->yy_ch_buf[0];
10059
10060         b->yy_at_bol = 1;
10061         b->yy_buffer_status = YY_BUFFER_NEW;
10062
10063         if ( b == YY_CURRENT_BUFFER )
10064                 surf_parse__load_buffer_state( );
10065 }
10066
10067 /** Pushes the new state onto the stack. The new state becomes
10068  *  the current state. This function will allocate the stack
10069  *  if necessary.
10070  *  @param new_buffer The new state.
10071  *  
10072  */
10073 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10074 {
10075         if (new_buffer == NULL)
10076                 return;
10077
10078         surf_parse_ensure_buffer_stack();
10079
10080         /* This block is copied from surf_parse__switch_to_buffer. */
10081         if ( YY_CURRENT_BUFFER )
10082                 {
10083                 /* Flush out information for old buffer. */
10084                 *(yy_c_buf_p) = (yy_hold_char);
10085                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10086                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10087                 }
10088
10089         /* Only push if top exists. Otherwise, replace top. */
10090         if (YY_CURRENT_BUFFER)
10091                 (yy_buffer_stack_top)++;
10092         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10093
10094         /* copied from surf_parse__switch_to_buffer. */
10095         surf_parse__load_buffer_state( );
10096         (yy_did_buffer_switch_on_eof) = 1;
10097 }
10098
10099 /** Removes and deletes the top of the stack, if present.
10100  *  The next element becomes the new top.
10101  *  
10102  */
10103 void surf_parse_pop_buffer_state (void)
10104 {
10105         if (!YY_CURRENT_BUFFER)
10106                 return;
10107
10108         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10109         YY_CURRENT_BUFFER_LVALUE = NULL;
10110         if ((yy_buffer_stack_top) > 0)
10111                 --(yy_buffer_stack_top);
10112
10113         if (YY_CURRENT_BUFFER) {
10114                 surf_parse__load_buffer_state( );
10115                 (yy_did_buffer_switch_on_eof) = 1;
10116         }
10117 }
10118
10119 /* Allocates the stack if it does not exist.
10120  *  Guarantees space for at least one push.
10121  */
10122 static void surf_parse_ensure_buffer_stack (void)
10123 {
10124         int num_to_alloc;
10125     
10126         if (!(yy_buffer_stack)) {
10127
10128                 /* First allocation is just for 2 elements, since we don't know if this
10129                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10130                  * immediate realloc on the next call.
10131          */
10132                 num_to_alloc = 1;
10133                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10134                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10135                                                                 );
10136                 if ( ! (yy_buffer_stack) )
10137                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10138                                                                   
10139                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10140                                 
10141                 (yy_buffer_stack_max) = num_to_alloc;
10142                 (yy_buffer_stack_top) = 0;
10143                 return;
10144         }
10145
10146         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10147
10148                 /* Increase the buffer to prepare for a possible push. */
10149                 int grow_size = 8 /* arbitrary grow size */;
10150
10151                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10152                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10153                                                                 ((yy_buffer_stack),
10154                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10155                                                                 );
10156                 if ( ! (yy_buffer_stack) )
10157                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10158
10159                 /* zero only the new slots.*/
10160                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10161                 (yy_buffer_stack_max) = num_to_alloc;
10162         }
10163 }
10164
10165 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10166  * @param base the character buffer
10167  * @param size the size in bytes of the character buffer
10168  * 
10169  * @return the newly allocated buffer state object. 
10170  */
10171 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10172 {
10173         YY_BUFFER_STATE b;
10174     
10175         if ( size < 2 ||
10176              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10177              base[size-1] != YY_END_OF_BUFFER_CHAR )
10178                 /* They forgot to leave room for the EOB's. */
10179                 return 0;
10180
10181         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10182         if ( ! b )
10183                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10184
10185         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10186         b->yy_buf_pos = b->yy_ch_buf = base;
10187         b->yy_is_our_buffer = 0;
10188         b->yy_input_file = 0;
10189         b->yy_n_chars = b->yy_buf_size;
10190         b->yy_is_interactive = 0;
10191         b->yy_at_bol = 1;
10192         b->yy_fill_buffer = 0;
10193         b->yy_buffer_status = YY_BUFFER_NEW;
10194
10195         surf_parse__switch_to_buffer(b  );
10196
10197         return b;
10198 }
10199
10200 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10201  * scan from a @e copy of @a str.
10202  * @param yystr a NUL-terminated string to scan
10203  * 
10204  * @return the newly allocated buffer state object.
10205  * @note If you want to scan bytes that may contain NUL values, then use
10206  *       surf_parse__scan_bytes() instead.
10207  */
10208 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10209 {
10210     
10211         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10212 }
10213
10214 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10215  * scan from a @e copy of @a bytes.
10216  * @param yybytes the byte buffer to scan
10217  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10218  * 
10219  * @return the newly allocated buffer state object.
10220  */
10221 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10222 {
10223         YY_BUFFER_STATE b;
10224         char *buf;
10225         yy_size_t n;
10226         int i;
10227     
10228         /* Get memory for full buffer, including space for trailing EOB's. */
10229         n = _yybytes_len + 2;
10230         buf = (char *) surf_parse_alloc(n  );
10231         if ( ! buf )
10232                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10233
10234         for ( i = 0; i < _yybytes_len; ++i )
10235                 buf[i] = yybytes[i];
10236
10237         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10238
10239         b = surf_parse__scan_buffer(buf,n );
10240         if ( ! b )
10241                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10242
10243         /* It's okay to grow etc. this buffer, and we should throw it
10244          * away when we're done.
10245          */
10246         b->yy_is_our_buffer = 1;
10247
10248         return b;
10249 }
10250
10251     static void yy_push_state (int  new_state )
10252 {
10253         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10254                 {
10255                 yy_size_t new_size;
10256
10257                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10258                 new_size = (yy_start_stack_depth) * sizeof( int );
10259
10260                 if ( ! (yy_start_stack) )
10261                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10262
10263                 else
10264                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10265
10266                 if ( ! (yy_start_stack) )
10267                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10268                 }
10269
10270         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10271
10272         BEGIN(new_state);
10273 }
10274
10275     static void yy_pop_state  (void)
10276 {
10277         if ( --(yy_start_stack_ptr) < 0 )
10278                 YY_FATAL_ERROR( "start-condition stack underflow" );
10279
10280         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10281 }
10282
10283 #ifndef YY_EXIT_FAILURE
10284 #define YY_EXIT_FAILURE 2
10285 #endif
10286
10287 static void yy_fatal_error (yyconst char* msg )
10288 {
10289         (void) fprintf( stderr, "%s\n", msg );
10290         exit( YY_EXIT_FAILURE );
10291 }
10292
10293 /* Redefine yyless() so it works in section 3 code. */
10294
10295 #undef yyless
10296 #define yyless(n) \
10297         do \
10298                 { \
10299                 /* Undo effects of setting up surf_parse_text. */ \
10300         int yyless_macro_arg = (n); \
10301         YY_LESS_LINENO(yyless_macro_arg);\
10302                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10303                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10304                 (yy_hold_char) = *(yy_c_buf_p); \
10305                 *(yy_c_buf_p) = '\0'; \
10306                 surf_parse_leng = yyless_macro_arg; \
10307                 } \
10308         while ( 0 )
10309
10310 /* Accessor  methods (get/set functions) to struct members. */
10311
10312 /** Get the current line number.
10313  * 
10314  */
10315 int surf_parse_get_lineno  (void)
10316 {
10317         
10318     return surf_parse_lineno;
10319 }
10320
10321 /** Get the input stream.
10322  * 
10323  */
10324 FILE *surf_parse_get_in  (void)
10325 {
10326         return surf_parse_in;
10327 }
10328
10329 /** Get the output stream.
10330  * 
10331  */
10332 FILE *surf_parse_get_out  (void)
10333 {
10334         return surf_parse_out;
10335 }
10336
10337 /** Get the length of the current token.
10338  * 
10339  */
10340 int surf_parse_get_leng  (void)
10341 {
10342         return surf_parse_leng;
10343 }
10344
10345 /** Get the current token.
10346  * 
10347  */
10348
10349 char *surf_parse_get_text  (void)
10350 {
10351         return surf_parse_text;
10352 }
10353
10354 /** Set the current line number.
10355  * @param line_number
10356  * 
10357  */
10358 void surf_parse_set_lineno (int  line_number )
10359 {
10360     
10361     surf_parse_lineno = line_number;
10362 }
10363
10364 /** Set the input stream. This does not discard the current
10365  * input buffer.
10366  * @param in_str A readable stream.
10367  * 
10368  * @see surf_parse__switch_to_buffer
10369  */
10370 void surf_parse_set_in (FILE *  in_str )
10371 {
10372         surf_parse_in = in_str ;
10373 }
10374
10375 void surf_parse_set_out (FILE *  out_str )
10376 {
10377         surf_parse_out = out_str ;
10378 }
10379
10380 int surf_parse_get_debug  (void)
10381 {
10382         return surf_parse__flex_debug;
10383 }
10384
10385 void surf_parse_set_debug (int  bdebug )
10386 {
10387         surf_parse__flex_debug = bdebug ;
10388 }
10389
10390 static int yy_init_globals (void)
10391 {
10392         /* Initialization is the same as for the non-reentrant scanner.
10393      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10394      */
10395
10396     /* We do not touch surf_parse_lineno unless the option is enabled. */
10397     surf_parse_lineno =  1;
10398     
10399     (yy_buffer_stack) = 0;
10400     (yy_buffer_stack_top) = 0;
10401     (yy_buffer_stack_max) = 0;
10402     (yy_c_buf_p) = (char *) 0;
10403     (yy_init) = 0;
10404     (yy_start) = 0;
10405
10406     (yy_start_stack_ptr) = 0;
10407     (yy_start_stack_depth) = 0;
10408     (yy_start_stack) =  NULL;
10409
10410 /* Defined in main.c */
10411 #ifdef YY_STDINIT
10412     surf_parse_in = stdin;
10413     surf_parse_out = stdout;
10414 #else
10415     surf_parse_in = (FILE *) 0;
10416     surf_parse_out = (FILE *) 0;
10417 #endif
10418
10419     /* For future reference: Set errno on error, since we are called by
10420      * surf_parse_lex_init()
10421      */
10422     return 0;
10423 }
10424
10425 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10426 int surf_parse_lex_destroy  (void)
10427 {
10428     
10429     /* Pop the buffer stack, destroying each element. */
10430         while(YY_CURRENT_BUFFER){
10431                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10432                 YY_CURRENT_BUFFER_LVALUE = NULL;
10433                 surf_parse_pop_buffer_state();
10434         }
10435
10436         /* Destroy the stack itself. */
10437         surf_parse_free((yy_buffer_stack) );
10438         (yy_buffer_stack) = NULL;
10439
10440     /* Destroy the start condition stack. */
10441         surf_parse_free((yy_start_stack)  );
10442         (yy_start_stack) = NULL;
10443
10444     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10445      * surf_parse_lex() is called, initialization will occur. */
10446     yy_init_globals( );
10447
10448     return 0;
10449 }
10450
10451 /*
10452  * Internal utility routines.
10453  */
10454
10455 #ifndef yytext_ptr
10456 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10457 {
10458         register int i;
10459         for ( i = 0; i < n; ++i )
10460                 s1[i] = s2[i];
10461 }
10462 #endif
10463
10464 #ifdef YY_NEED_STRLEN
10465 static int yy_flex_strlen (yyconst char * s )
10466 {
10467         register int n;
10468         for ( n = 0; s[n]; ++n )
10469                 ;
10470
10471         return n;
10472 }
10473 #endif
10474
10475 void *surf_parse_alloc (yy_size_t  size )
10476 {
10477         return (void *) malloc( size );
10478 }
10479
10480 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10481 {
10482         /* The cast to (char *) in the following accommodates both
10483          * implementations that use char* generic pointers, and those
10484          * that use void* generic pointers.  It works with the latter
10485          * because both ANSI C and C++ allow castless assignment from
10486          * any pointer type to void*, and deal with argument conversions
10487          * as though doing an assignment.
10488          */
10489         return (void *) realloc( (char *) ptr, size );
10490 }
10491
10492 void surf_parse_free (void * ptr )
10493 {
10494         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10495 }
10496
10497 #define YYTABLES_NAME "yytables"
10498
10499 /* Element context stack lookup. */
10500 int surfxml_element_context(int i)
10501 {
10502   return (0<i && i<yy_start_stack_depth
10503           ? yy_start_stack[yy_start_stack_ptr - i]
10504           : 0);
10505 }
10506
10507 #ifdef FLEX_DEBUG
10508 void print_yy_stack(char* fmt, ...)
10509 {
10510   int i = 0; va_list ap; va_start(ap, fmt);
10511   vfprintf(stderr, fmt, ap);
10512   if (surfxml_statenames) {
10513       for (i=1; i<yy_start_stack_ptr; i++) {
10514           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10515       }
10516       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10517   }
10518   va_end(ap);
10519 }
10520
10521 void print_surfxml_bufferstack()
10522 {
10523     int i;
10524     fputs("Buffer: ", stderr);
10525     for (i = 0; i < blimit; i++) {
10526        if ( surfxml_bufferstack[i] == '\377' ) break;
10527          putc(surfxml_bufferstack[i], stderr);
10528     }
10529     putc('\n', stderr);
10530 }
10531
10532 static void debug_enter(int state, const char* statename) {
10533   yy_push_state(state);
10534   if (surf_parse__flex_debug) {
10535        print_yy_stack("--ENTER(%s) : ",statename);
10536        print_surfxml_bufferstack();
10537   }
10538 }
10539
10540 static void debug_leave(void) {
10541     if (surf_parse__flex_debug) {
10542         print_yy_stack("--LEAVE : ");
10543         print_surfxml_bufferstack();
10544     }
10545   yy_pop_state();
10546 }
10547
10548 static void debug_set(int state, const char* statename) {
10549   BEGIN(state);
10550   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10551 }
10552 #endif
10553
10554 static void cleanup(void)
10555 {
10556     if (surfxml_statenames) {
10557         free(surfxml_statenames);
10558         surfxml_statenames = NULL;
10559     }
10560     free(surfxml_bufferstack);
10561     surfxml_bufferstack = NULL;
10562
10563     free(indexstack);
10564     indexstack = NULL;
10565 }
10566
10567 static int fail(const char* fmt, ...)
10568 {
10569     int chars_left, used;
10570     va_list ap; va_start(ap, fmt);
10571 #ifdef FLEXML_yylineno
10572     used = sprintf(flexml_err_msg,
10573                    "Invalid XML (XML input line %d, state %d): ",
10574                    surf_parse_lineno, YY_START);
10575 #else
10576     used = sprintf(flexml_err_msg,
10577                    "Invalid XML (state %d): ",
10578                    YY_START);
10579 #endif
10580     chars_left = flexml_max_err_msg_size - used - 1;
10581     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10582     va_end(ap);
10583
10584 #ifndef FLEXML_quiet_parser
10585     /* print directly to sdterr */
10586     fprintf(stderr, "%s\n", flexml_err_msg);
10587     flexml_err_msg[0] = '\0';
10588 #endif
10589
10590     cleanup();
10591
10592     return 1;
10593 }
10594