Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add properties to AS structure (Not work for now) and use SG_PLATF_AS_INITIALIZER
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 547
407 #define YY_END_OF_BUFFER 548
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3225] =
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,  548,  546,   15,   10,   10,   15,
445        15,  526,   10,  526,    5,    6,    5,    8,    9,    8,
446       542,  534,  535,  543,  540,  543,  541,  545,  534,  535,
447       545,  546,   22,   10,   22,   22,   22,   20,   22,   26,
448        10,   26,   26,  546,   26,  546,  546,   26,   33,   10,
449
450        33,   33,   33,   31,   33,   37,   10,   37,   37,   48,
451        10,   48,   48,   48,   46,   48,   48,   48,  543,  542,
452        78,   10,   78,   78,   78,   76,   78,   78,   78,   78,
453        78,   82,   10,   82,  546,   82,  101,   10,  101,  101,
454       101,   99,  101,  101,  101,  105,   10,  105,  128,   10,
455       128,  128,  128,  126,  128,  128,  132,   10,  132,  132,
456       132,  546,  132,  132,  546,  546,  132,  546,  132,  546,
457       132,  145,   10,  145,  145,  145,  143,  145,  145,  145,
458       145,  149,   10,  149,  149,  160,   10,  160,  160,  160,
459       158,  160,  160,  160,  164,   10,  164,  164,  173,   10,
460
461       173,  173,  173,  171,  173,  173,  177,   10,  177,  186,
462        10,  186,  186,  186,  184,  186,  186,  190,   10,  190,
463       213,   10,  213,  213,  213,  211,  213,  213,  213,  213,
464       213,  217,   10,  217,  546,  217,  228,   10,  228,  228,
465       228,  226,  228,  228,  228,  232,   10,  232,  273,   10,
466       273,  273,  273,  271,  273,  273,  273,  273,  273,  273,
467       273,  273,  277,   10,  277,  296,   10,  296,  296,  296,
468       294,  296,  296,  296,  296,  296,  296,  300,   10,  300,
469       321,   10,  321,  321,  321,  319,  321,  321,  321,  321,
470       321,  321,  321,  325,   10,  325,  334,   10,  334,  334,
471
472       334,  332,  334,  334,  338,   10,  338,  349,   10,  349,
473       349,  349,  347,  349,  349,  349,  353,   10,  353,  380,
474        10,  380,  380,  380,  378,  380,  380,  380,  380,  384,
475        10,  384,  384,  397,   10,  397,  397,  397,  395,  397,
476       397,  401,   10,  401,  546,  401,  418,   10,  418,  418,
477       418,  416,  418,  418,  418,  422,   10,  422,  422,  435,
478        10,  435,  435,  435,  433,  435,  435,  439,   10,  439,
479       448,   10,  448,  448,  448,  446,  448,  448,  452,   10,
480       452,  452,  465,   10,  465,  465,  465,  463,  465,  465,
481       465,  469,   10,  469,  469,  486,   10,  486,  486,  486,
482
483       484,  486,  486,  486,  486,  486,  490,   10,  490,  546,
484       490,  497,   10,  497,  497,  497,  495,  497,  501,   10,
485       501,  508,   10,  508,  508,  508,  506,  508,  512,   10,
486       512,  512,  521,   10,  521,  521,  521,  519,  521,  521,
487       525,   10,  525,   10,    0,    2,    2,    0,    4,    7,
488       537,  536,    0,    0,    0,    0,    0,    0,    0,   21,
489        23,   23,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,   32,   34,   34,    0,   47,
492        49,   49,   49,   49,    0,    0,    0,   77,   79,   79,
493
494        79,   79,   79,   79,   79,   79,   79,    0,    0,  100,
495       102,  102,  102,  102,    0,  127,  129,  129,  129,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,  144,  146,  146,  146,
498       146,  146,    0,  159,  161,  161,  161,  161,    0,  172,
499       174,  174,  174,    0,  185,  187,  187,  187,    0,  212,
500       214,  214,  214,  214,  214,  214,    0,    0,  227,  229,
501       229,  229,  229,    0,  272,  274,  274,  274,  274,  274,
502       274,  274,  274,  274,  274,  274,  274,  274,  274,    0,
503       295,  297,  297,  297,  297,  297,  297,  297,  297,    0,
504
505       320,  322,  322,  322,  322,  322,  322,  322,  322,    0,
506       333,  335,  335,  335,    0,  348,  350,  350,  350,  350,
507         0,  379,  381,  381,  381,  381,  381,  381,    0,  396,
508       398,  398,  398,  398,    0,    0,  417,  419,  419,  419,
509       419,  419,    0,  434,  436,  436,  436,    0,  447,  449,
510       449,  449,    0,  464,  466,  466,  466,  466,    0,  485,
511       487,  487,  487,  487,  487,  487,    0,    0,  496,  498,
512       498,    0,  507,  509,  509,    0,  520,  522,  522,  522,
513         0,    0,    0,    0,    0,    3,    0,    0,    0,    0,
514         0,    0,    0,  544,    0,   23,    0,    0,  107,    0,
515
516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
518         0,    0,    0,    0,    0,    0,   34,    0,    0,   49,
519         0,    0,   49,    0,    0,    0,  539,   79,    0,    0,
520        79,   79,   79,   79,   79,   79,    0,    0,    0,  102,
521       102,  102,    0,    0,    0,    0,  129,    0,    0,  107,
522         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
523         0,  146,    0,    0,  146,  146,    0,    0,  161,    0,
524         0,  161,    0,    0,    0,    0,  174,    0,    0,  187,
525       187,    0,    0,  214,  214,  214,    0,    0,  214,  214,
526
527         0,    0,    0,    0,  229,    0,    0,    0,    0,    0,
528         0,  274,  274,    0,    0,  274,    0,    0,  274,  274,
529       274,  274,  274,  274,  274,  274,    0,    0,    0,    0,
530         0,    0,  297,  297,  297,  297,  297,    0,    0,  322,
531       322,  322,    0,    0,  322,  322,  322,    0,    0,  335,
532         0,    0,    0,    0,  350,    0,    0,  350,    0,    0,
533       381,    0,    0,  381,  381,  381,    0,    0,  398,  398,
534       398,    0,    0,    0,  419,  419,  419,  419,    0,    0,
535       436,    0,    0,    0,    0,  449,  449,    0,    0,  466,
536       466,  466,    0,    0,  487,  487,  487,  487,  487,    0,
537
538         0,    0,  498,    0,    0,    0,    0,    0,    0,    0,
539         0,  522,    0,    0,    0,   14,    1,    0,    0,  532,
540         0,    0,    0,  529,  528,    0,    0,   23,    0,    0,
541        25,    0,  107,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
543         0,    0,    0,    0,  106,    0,    0,    0,    0,    0,
544         0,   34,    0,    0,   36,    0,   49,    0,   41,   40,
545        49,    0,    0,    0,   51,    0,   79,    0,   55,   54,
546         0,    0,   79,    0,    0,   79,   79,   79,    0,    0,
547        81,    0,    0,  102,  102,  102,    0,    0,  104,    0,
548
549         0,  109,  108,  129,    0,    0,  131,    0,    0,    0,
550         0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
551         0,  136,  135,  146,  146,    0,    0,  148,    0,  161,
552         0,  153,  152,  161,    0,    0,  163,    0,    0,  168,
553       167,  174,    0,    0,  176,    0,  187,  187,    0,    0,
554       189,    0,  214,  214,  214,    0,  194,  193,  214,  214,
555         0,    0,  216,    0,    0,    0,  229,    0,  221,  220,
556         0,  223,  222,    0,    0,  231,    0,  274,  274,  274,
557       274,    0,  248,  247,  274,    0,  236,  235,    0,    0,
558       274,  274,  274,  274,  274,  274,  274,    0,    0,  276,
559
560         0,    0,  291,  290,    0,  281,  280,    0,    0,  297,
561       297,  297,  297,    0,    0,  299,    0,  322,  322,  322,
562       322,    0,  304,  303,    0,    0,  322,  322,    0,    0,
563       324,    0,  335,    0,  329,  328,    0,    0,  337,    0,
564       350,    0,  342,  341,  350,    0,    0,  352,    0,  381,
565         0,  357,  356,  381,  381,  381,    0,    0,  383,    0,
566         0,    0,    0,    0,  398,    0,    0,  400,    0,    0,
567         0,    0,  419,  419,    0,    0,  419,    0,    0,  421,
568         0,  436,    0,  426,  425,    0,    0,  438,    0,    0,
569         0,    0,    0,    0,    0,  451,    0,    0,    0,  466,
570
571       466,    0,    0,    0,    0,  468,    0,  487,  487,  487,
572       487,  487,    0,    0,  489,    0,    0,  498,    0,    0,
573       500,    0,    0,  505,  504,    0,    0,  511,    0,    0,
574       516,  515,  522,    0,    0,  524,    0,    0,    0,  533,
575       527,    0,    0,    0,   23,    0,    0,    0,    0,    0,
576         0,    0,    0,  191,    0,  354,    0,    0,  302,    0,
577         0,  513,    0,    0,    0,    0,    0,    0,    0,    0,
578         0,  301,    0,    0,    0,    0,    0,    0,    0,   49,
579         0,    0,   79,    0,   59,   58,    0,    0,    0,   57,
580        56,   79,    0,    0,   79,    0,  514,  102,    0,    0,
581
582       102,    0,  129,    0,  130,    0,    0,    0,  192,  355,
583         0,    0,    0,    0,    0,    0,  146,  146,    0,    0,
584         0,  161,  161,    0,    0,    0,    0,    0,    0,  187,
585         0,  214,  214,    0,    0,  214,  214,    0,    0,    0,
586         0,    0,    0,  274,  274,  274,  274,    0,    0,    0,
587       250,  249,  274,  274,  274,  274,  274,  274,  274,    0,
588         0,  293,  292,  297,  297,  297,  297,    0,  322,  322,
589       322,  322,    0,  312,  311,  322,  322,    0,  335,    0,
590       350,  350,    0,  381,  381,  381,  381,    0,    0,  390,
591       389,    0,  388,  387,  398,    0,  354,    0,  407,  406,
592
593       419,  419,    0,  405,  404,  419,    0,  436,    0,    0,
594       445,  444,    0,  443,  442,    0,    0,  458,  457,  466,
595       466,    0,  456,  455,    0,  487,    0,    0,  487,  487,
596       487,    0,    0,  498,    0,    0,  522,    0,    0,    0,
597         0,   12,    0,  530,  531,    0,   23,    0,    0,    0,
598         0,    0,    0,    0,    0,  191,    0,    0,  354,    0,
599       165,    0,  302,    0,    0,  513,    0,  385,    0,   39,
600         0,    0,    0,    0,    0,  301,    0,   38,    0,   30,
601        29,    0,    0,   43,   42,   49,    0,    0,   79,    0,
602        61,   60,   79,    0,   65,   64,   79,    0,  514,  102,
603
604         0,    0,    0,    0,    0,    0,  129,    0,    0,    0,
605       192,    0,  355,  386,    0,    0,    0,  386,  385,  146,
606         0,    0,    0,  140,  139,    0,  161,  161,    0,    0,
607       170,  169,    0,    0,  183,  182,  187,    0,  214,  214,
608         0,  198,  197,    0,    0,    0,    0,  214,    0,  166,
609         0,    0,  225,  224,    0,  274,    0,    0,  274,  274,
610         0,  246,  245,    0,    0,  274,  274,  274,  274,  274,
611       274,    0,    0,    0,  297,  297,  297,    0,  322,    0,
612         0,  322,  322,    0,    0,  322,    0,  335,    0,  350,
613       350,    0,  381,  381,  381,    0,    0,  381,    0,  398,
614
615         0,    0,  419,  419,  419,    0,  436,    0,    0,  466,
616       466,    0,  487,    0,  473,  472,  487,  487,  487,    0,
617         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
618         0,   11,    0,   23,    0,    0,    0,    0,    0,    0,
619         0,  503,    0,    0,    0,  165,    0,    0,    0,   53,
620       385,  326,    0,   39,    0,  502,   52,    0,    0,    0,
621         0,   38,    0,    0,   49,    0,    0,   79,   79,   79,
622         0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
623         0,   96,   95,    0,  129,    0,    0,    0,    0,  386,
624       327,    0,    0,    0,  146,    0,  138,  137,    0,  161,
625
626         0,    0,    0,    0,    0,    0,    0,  214,  214,    0,
627       196,  195,    0,    0,    0,  214,    0,  215,  166,    0,
628         0,  274,    0,  258,  257,    0,    0,  274,    0,  244,
629       243,    0,    0,  274,  274,  274,  274,    0,    0,    0,
630         0,  289,  288,    0,    0,  297,    0,    0,    0,  322,
631         0,  308,  307,    0,    0,  322,    0,  306,  305,  322,
632         0,  323,  335,    0,  350,  350,    0,  381,  381,  381,
633         0,    0,    0,  381,    0,  382,  398,    0,    0,    0,
634         0,    0,    0,  419,    0,  436,    0,    0,    0,    0,
635         0,    0,    0,  487,  487,  487,  487,    0,    0,    0,
636
637       494,  493,    0,    0,    0,  518,  517,    0,  523,    0,
638         0,    0,    0,    0,    0,    0,  402,    0,    0,    0,
639         0,  279,  234,  503,    0,   28,    0,    0,    0,  471,
640        53,  326,  150,    0,  502,   52,  278,  233,   27,  470,
641         0,    0,   49,    0,    0,   50,   79,    0,    0,   79,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
643         0,    0,    0,    0,    0,    0,  403,    0,    0,    0,
644         0,  327,  151,    0,    0,    0,    0,    0,    0,  155,
645       154,    0,    0,  175,    0,  181,  180,    0,  214,  214,
646         0,    0,  214,    0,    0,  274,    0,  260,  259,  274,
647
648         0,  238,  237,    0,    0,  274,  274,  274,    0,  240,
649       239,    0,    0,  283,  282,    0,    0,    0,  285,  284,
650         0,  322,    0,  310,  309,  322,  322,  335,    0,  350,
651         0,    0,    0,  381,    0,    0,  381,  381,    0,    0,
652       381,  398,    0,  399,    0,    0,  411,  410,    0,  409,
653       408,  419,    0,  436,    0,    0,    0,  462,  461,    0,
654       460,  459,    0,  487,  487,  487,  487,    0,    0,    0,
655         0,    0,    0,    0,   17,    0,   19,   18,    0,  402,
656       491,  339,    0,    0,  279,  234,    0,   28,  423,  178,
657        16,  471,  150,    0,    0,  278,  233,   27,  470,    0,
658
659         0,   49,  538,   79,    0,   67,   66,   79,    0,   80,
660         0,   98,   97,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,  403,  340,    0,
662         0,    0,  151,    0,    0,  142,  141,    0,    0,  157,
663       156,    0,    0,  214,  214,    0,    0,    0,    0,  214,
664       179,    0,  274,  274,    0,  242,  241,  274,  274,  274,
665         0,    0,  287,  286,    0,  322,  322,  322,  335,    0,
666       336,  350,    0,  346,  345,    0,  381,    0,  363,  362,
667       381,  381,    0,    0,    0,    0,  381,  398,  424,  419,
668         0,  436,    0,    0,    0,    0,    0,  487,  487,  487,
669
670         0,  492,    0,    0,  510,    0,    0,    0,   17,    0,
671       491,  339,    0,    0,  218,  423,  178,   16,    0,    0,
672         0,    0,   35,   49,    0,    0,   79,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675       340,    0,    0,  219,    0,    0,    0,  162,    0,  214,
676       214,    0,  204,    0,  203,  214,  179,    0,  274,  274,
677         0,    0,  274,  274,    0,  275,    0,  298,  322,  322,
678       322,  335,    0,    0,    0,    0,    0,  381,  381,  381,
679         0,  367,    0,  366,  381,  398,  424,  419,    0,  420,
680
681         0,    0,    0,    0,    0,    0,  475,  474,    0,    0,
682       487,  487,    0,  488,  492,    0,    0,    0,    0,    0,
683        24,    0,    0,  218,    0,    0,    0,   49,    0,    0,
684         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,    0,    0,    0,  219,
687         0,    0,    0,  188,  214,  214,  206,  205,    0,    0,
688         0,  274,  274,    0,  270,  269,  274,    0,    0,  322,
689       322,    0,    0,  335,    0,  344,  343,    0,  351,    0,
690       359,  358,  381,  381,  381,  369,  368,    0,    0,  398,
691
692       419,    0,    0,    0,    0,  437,    0,    0,    0,  479,
693       478,    0,    0,    0,    0,    0,  499,    0,    0,    0,
694         0,  440,    0,    0,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,   79,    0,    0,    0,    0,   88,    0,
696         0,    0,    0,   87,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698       441,    0,    0,  214,    0,    0,    0,  208,  207,    0,
699       230,  274,  274,  274,    0,  268,  267,  322,    0,    0,
700         0,  318,  317,    0,    0,  381,  381,  381,    0,  371,
701       370,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702
703         0,    0,    0,    0,    0,    0,    0,  477,  476,    0,
704         0,    0,    0,  440,  133,    0,    0,    0,   45,   44,
705         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,  441,  134,    0,    0,    0,  214,    0,
709       210,  209,  274,  274,  274,  322,    0,  314,  313,    0,
710       331,  330,  381,    0,    0,  381,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,  453,  133,
713
714        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,   94,    0,    0,    0,   93,    0,
716         0,    0,    0,    0,  111,  119,    0,    0,    0,    0,
717         0,  110,  118,    0,    0,  454,  134,    0,    0,  200,
718       199,  214,  274,  274,  274,  322,  381,    0,  365,  364,
719       381,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,  428,    0,    0,  427,    0,  450,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,  453,   84,
722        83,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723        63,   62,    0,    0,    0,    0,    0,    0,    0,    0,
724
725         0,  113,    0,    0,    0,    0,  112,    0,    0,  454,
726         0,  147,  214,  274,  274,    0,    0,  322,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,   75,   71,    0,    0,
730        74,   70,    0,   92,    0,    0,   91,    0,    0,    0,
731       103,    0,    0,    0,    0,    0,    0,    0,    0,  214,
732       274,  274,    0,    0,    0,  322,    0,  361,  360,    0,
733         0,    0,  394,    0,  393,    0,  415,    0,  414,    0,
734       430,  432,  429,  431,    0,  467,  481,    0,  480,    0,
735
736         0,    0,    0,   12,    0,   12,    0,    0,    0,    0,
737         0,   86,   90,   85,   89,  125,    0,    0,  123,  124,
738         0,    0,  122,  214,  274,  274,    0,    0,    0,    0,
739       322,    0,    0,    0,    0,  392,  391,  413,  412,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741       115,    0,    0,  114,    0,    0,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744        69,    0,   68,    0,    0,  121,    0,  120,    0,  202,
745       201,    0,  266,  265,    0,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,  316,  315,    0,    0,    0,    0,
748         0,    0,    0,    0,    0,   11,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,  483,  482,    0,   73,
751        72,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,    0,    0,    0,    0,    0,  117,
755       116,    0,    0,    0,    0,    0,    0,  252,    0,    0,
756       251,    0,    0,  373,    0,    0,  372,    0,    0,    0,
757
758         0,    0,  256,    0,  255,    0,  375,    0,  374,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,  262,    0,  261,    0,    0,    0,    0,    0,    0,
761       264,  263,  254,  253,  377,  376,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,   13,    0
772     } ;
773
774 static yyconst flex_int32_t yy_ec[256] =
775     {   0,
776         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
777         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
778         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
779         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
780         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
781        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
782        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
783        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
784        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
785        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
786
787        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
788        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
789        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
791         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
792         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
797
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1
804     } ;
805
806 static yyconst flex_int32_t yy_meta[75] =
807     {   0,
808         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
809         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
810         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
811         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
812         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
813         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
814         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
815         5,    5,    5,    5
816     } ;
817
818 static yyconst flex_int16_t yy_base[3695] =
819     {   0,
820         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
821        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
822       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
823       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
824       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
825       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
826       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
827       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
828       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
829       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
830
831       897,  903,  906,  914,  923,  926,  931,  934,  952, 1019,
832       972,  975,  978,  982, 1039, 1042, 1045, 1049, 1086, 1154,
833      1106, 1109, 1112, 1116, 1174, 1177, 1180, 1184, 1222, 1284,
834      1242, 1245, 1346, 1414, 1248, 1252, 1482, 1549, 1255, 1304,
835      1307, 1310, 1314, 1317, 1366, 1369, 1616, 1685, 1372, 1376,
836      1754,    0, 1379, 1434, 1828, 1895, 1437, 1440, 1962, 2029,
837      1444, 1447, 2096, 2153, 1502, 1505, 2210, 2270, 1508, 1512,
838      2330, 2397, 1569, 1572, 1575, 1579, 1636, 1639, 1642, 1646,
839      2464, 2531, 1649, 1705, 1708, 1711, 1715, 1718, 1848, 1851,
840      2598, 2665, 1854, 1858, 1861, 1915, 1918, 1921, 1925, 1928,
841
842      2732, 2789, 1982, 1985, 2846, 2913, 1988, 1992, 2049, 2052,
843      2055, 2059, 2116, 2119, 2980, 3047, 2122, 2126, 2173, 2176,
844      2179, 2183, 2230, 2233, 3114, 3181, 2236, 2240, 2243, 2290,
845      2293, 2296, 2300, 2303, 3248, 3318, 2350, 2353, 3388, 3445,
846      2356, 2360, 2363, 2417, 2420, 2423, 2427, 2430, 3502, 3572,
847      2484, 2487,    0,    0, 8788,11774,11774,   95,  100,   29,
848        41,11774,  103,   51,11774,11774, 8777,11774,11774, 8762,
849     11774, 8777, 8777,  202,11774,11774,11774,11774, 8771, 8771,
850      8726,  153,11774,  161, 8748,    0,  145,11774, 8714,11774,
851       165, 3638,   73, 2496,  315,  357, 8754, 8697,11774,  168,
852
853      8740,    0,  152,11774, 8702,11774,  261, 8742,   31,11774,
854       266, 8733,    0,  245,11774, 8695, 8695, 8693,  421, 8698,
855     11774,  269, 8720,    0,  340,11774, 8686, 8686,  271, 8684,
856       238,11774,  441,  163,  313,  368,11774,  503, 8712,    0,
857       401,11774, 8671, 8669, 8659,11774,  506,  548,11774,  561,
858      8704,    0,  481,11774, 8667, 8655,11774,  571, 3702, 8653,
859      2430,  567,  206,   38, 8169,  477,  881,  572,  938, 8168,
860        79,11774,  628, 8158,    0,  482,11774, 8114, 8124, 8112,
861      8117,11774,  638,  426,  597,11774,  697, 8153,    0,  546,
862     11774, 8109, 8118, 8096,11774,  703,  631,  691,11774,  706,
863
864      8147,    0,  549,11774, 8107, 8109,11774,  765,  753,11774,
865       773, 8136,    0,  616,11774, 8099, 8074,11774,  776,  818,
866     11774,  831, 8125,    0,  815,11774, 8069, 8074, 8080, 8068,
867      8061,11774,  838,  825, 8112,   87,11774,  841, 8103,    0,
868       891,11774, 8053, 8062, 8049,11774, 1003,  989,11774, 1012,
869      8091,    0,  918,11774, 8028,  203, 8034, 8043, 8038,  157,
870       311, 1000,11774, 1069,  990,11774, 1075, 8066,    0,  987,
871     11774, 8013, 8031, 8032,  251, 8027, 8006,11774, 1079, 1117,
872     11774, 1137, 8049,    0, 1053,11774, 7998, 7995, 7991, 8001,
873      8000, 7985, 7978,11774, 1142, 1130,11774, 1145, 8025,    0,
874
875      1054,11774, 7958, 7964,11774, 1187, 1191,11774, 1204, 7995,
876         0, 1131,11774, 7953, 7949, 7950,11774, 1211, 1259,11774,
877      1214, 7974,    0, 1188,11774, 7944, 7939, 7937,   15,11774,
878      1217,  559,  699,11774, 1272, 7965,    0, 1189,11774, 7916,
879       181,11774, 1279, 1325, 7962, 7913,11774, 1336, 7952,    0,
880      1256,11774, 7902, 7897,  299,11774, 1340, 7945,  761,11774,
881      1396, 7936,    0, 1257,11774, 7894, 7898,11774, 1399, 1324,
882     11774, 1402, 7928,    0, 1386,11774, 7879, 7879,11774, 1407,
883      7931,  851,11774, 1464, 7917,    0, 1391,11774, 7862, 7857,
884      7860,11774, 1467, 7908,  880,11774, 1470, 7899,    0, 1454,
885
886     11774, 7848, 7845, 7846, 7827, 7815,11774, 1475, 1468, 7870,
887       512,11774, 1532, 7860,    0, 1516,11774, 7812,11774, 1538,
888      1580,11774, 1541, 7836,    0, 1517,11774, 7803,11774, 1600,
889       350,  814,11774, 1605, 7824,    0, 1584,11774, 7791, 7792,
890     11774, 1608, 1653, 1667,  677, 7768,11774, 7828, 7813,11774,
891     11774,11774, 1662,  254, 7753, 7751, 7744, 7790, 7743,11774,
892         0, 7736, 7736, 7750, 7722,  104, 1001, 7719, 7719, 7722,
893       372, 1606,  378, 7700, 7700, 1068,  429, 7726, 1464, 7701,
894      1675, 7692, 1531, 1685, 1686,11774,    0, 7697, 7698,11774,
895         0, 7694, 1995, 7673,  372, 7670, 7699,11774,    0, 7656,
896
897      2062, 7643, 7658, 7635, 7644, 7632, 7632, 7612, 1687,11774,
898         0, 7623, 7613, 7624, 7600,11774,    0, 2129, 7594, 7639,
899      7621,  172, 7595, 7593, 1817,  493, 7577, 7605,  639,  680,
900       841,  870,  627, 1667,  707,  873,11774,    0, 7580, 2186,
901      7585, 7561, 7567,11774,    0, 7570, 2493, 7563, 7559,11774,
902         0, 2511, 7563, 7558,11774,    0, 7556, 7551, 7553,11774,
903         0, 7563,  434, 2552, 7535, 7549, 7531,  920,11774,    0,
904      7509, 2555, 2563, 7523,11774,    0, 7528, 7518, 2566, 7499,
905      2577, 7495, 7487, 7504, 7502, 7483, 7498, 7496, 7490, 7484,
906     11774,    0, 2618, 2621, 7466, 7461, 7474, 7474, 7467, 7469,
907
908     11774,    0, 7469, 7461, 7443, 2624, 7436, 7429, 7439, 7423,
909     11774,    0, 7422, 2627, 7411,11774,    0, 7414, 2630, 7406,
910      7419,11774,    0, 7405, 2685, 7397, 7415, 7413, 7389,11774,
911         0, 7380, 7395, 7377, 7369, 7373,11774,    0, 7361, 7379,
912      7374, 7362, 7400,11774,    0, 7354, 2688, 7343,11774,    0,
913      7334, 7348, 7347,11774,    0, 7322, 7341, 7327, 7327,11774,
914         0, 7311, 7304, 7310, 7312, 7310, 7293, 7283,11774,    0,
915      7288, 7297,11774,    0, 2691, 7294,11774,    0, 2694, 7279,
916      7273, 7315, 7319, 1579, 7267,11774, 1665,    0, 7259, 7259,
917      7299, 7298, 7250,11774, 7253, 7234, 2497, 2698, 1878, 7244,
918
919      7247, 7231, 7239, 7205, 7211, 7204, 7211, 7199, 7190, 7186,
920      7194, 7197, 7181, 7173, 7161, 7166, 7174, 7156, 7155, 1887,
921      7165, 7138, 7155, 7151, 7138, 7149, 7120, 2752, 2757, 7118,
922      2712, 1945, 7107, 7139, 2760, 2763,11774, 7108, 2766, 2014,
923      2809, 7098, 2812, 7094, 7081, 7080, 2818, 2822, 7064, 7064,
924      7068, 7064, 2866, 2870, 2875, 2081, 7044, 2879, 2935, 2260,
925      7050, 7032, 7027, 7027, 7019, 7023, 2320, 7011, 7010, 7003,
926      7002, 7001, 2885, 2447, 7015, 7013, 2938, 2941, 6997, 2893,
927      2517, 6995, 2944, 2947, 2950, 2584, 6994, 3000, 3008, 6987,
928      6986, 3003, 3014, 6974, 6960, 6971, 3027, 2652, 6965, 6945,
929
930      3070, 3075, 6932, 6932, 6933, 3081, 2719, 3084, 2899, 3137,
931      3142, 6935, 1890, 3094, 2969, 6932, 3145, 3034, 3148, 6930,
932      6927, 6923, 6906, 6907, 6881, 6891, 3151, 3204, 3207, 3102,
933      3210, 3213, 3228, 3281, 3286, 3289, 3294, 3339, 3364, 6883,
934        37, 6873, 3268, 3271, 3350, 6884, 6845, 3353, 3358, 6846,
935      3368, 3300, 3412, 3416, 6858, 3419, 3308, 6852, 3422, 3469,
936      6852, 3425, 3373, 6838, 6812, 6808, 3465, 3473, 3478, 3522,
937      3533, 3525, 3536, 6812, 3551, 3594, 3598, 3601, 3530, 3605,
938      6816, 3608, 3492, 3540, 3612, 3619, 3632, 3637, 3645, 3651,
939      3664, 3671, 3676, 3706, 6807, 6789, 6786, 6788, 6775, 3709,
940
941      3717, 6775, 6759, 3730, 3736, 3682, 3559, 3740, 3744, 3769,
942      3772, 6758, 3783, 3788, 6803,11774,11774, 1101, 6762,11774,
943      6800, 6799, 6747,11774,11774, 6728, 6723, 6732, 3791, 3794,
944     11774, 3797, 1746, 6725, 6717, 6719, 6722, 6711, 6696, 6704,
945      6682, 6687, 6680, 6676, 6673, 6669, 6661,  633, 6676, 6654,
946      6645, 6655, 6651, 6651, 2147, 6645, 6633, 6632, 6624, 1820,
947      6638, 3802, 3816, 3820,11774, 3823, 3826, 3829,11774,11774,
948      3845, 6662, 3848, 3853,11774, 3856, 6605, 3863,11774,11774,
949      3859, 3877, 3885, 3888, 3891, 6618, 3899, 6615, 3907, 3910,
950     11774, 3913, 1822, 6613, 3917, 6610, 3920, 3935,11774, 3939,
951
952      3942,11774,11774, 6604, 3950, 3954,11774, 3958, 6595, 6584,
953      6592, 6569, 6573, 6562, 6559, 6575, 6573, 6537, 6536, 6530,
954      3962,11774,11774, 6512, 3977, 3980, 3983,11774, 3987, 6518,
955      3995,11774,11774, 6539, 3990, 4009,11774, 4012, 4015,11774,
956     11774, 4023, 4031, 4034,11774, 4037, 4041, 4044, 4062, 4065,
957     11774, 4068, 6504, 6511, 4074, 4077,11774,11774, 6486, 6498,
958      4087, 4092,11774, 4095, 6482, 6455, 4098, 4107,11774,11774,
959      4116,11774,11774, 4101, 4124,11774, 4127, 6457, 6440, 6460,
960      6444, 4131,11774,11774, 4139, 4146,11774,11774, 4157, 4161,
961      6433, 6438, 6439, 6436, 6426, 6427, 6421, 4169, 4175,11774,
962
963      4178, 4181,11774,11774, 4197,11774,11774, 4189, 4207, 6411,
964      6418, 6416, 6406, 4215, 4218,11774, 4221, 6401, 6398, 6389,
965      6396, 4224,11774,11774, 4240, 4246, 6381, 6392, 4254, 4258,
966     11774, 4261, 6388, 4264,11774,11774, 4273, 4280,11774, 4283,
967      6364, 4286,11774,11774, 6371, 4295, 4302,11774, 4305, 6361,
968      4314,11774,11774, 6368, 6362, 6364, 4308, 4327,11774, 4330,
969      4334, 4337, 4355, 4358, 6362, 4366, 4369,11774, 4373, 6353,
970      4376, 4379, 6344, 6338, 4394, 4397, 6343, 4405, 4408,11774,
971      4412, 6344, 4415,11774,11774, 4427, 4431,11774, 4434, 4437,
972      4446, 4441, 4455, 4463, 4466,11774, 4469, 4472, 4478, 6317,
973
974      6299, 4490, 4495, 4503, 4508,11774, 4511, 6286, 4515, 6305,
975      6298, 6274, 4518, 4522,11774, 4533, 6263, 6267, 4537, 4541,
976     11774, 4544, 4556,11774,11774, 4547, 4552,11774, 4566, 4574,
977     11774,11774, 6266, 4585, 4588,11774, 4591,  928, 4598,11774,
978     11774, 6287, 6286, 6244, 6211, 4610, 6184, 6174, 6169, 6146,
979      6149, 6131, 6139, 2204, 6124, 2380, 6042, 6041, 2389, 6041,
980      6041, 2392, 6029, 5987, 5963, 5945, 5934, 5871, 5844, 5821,
981      5776, 2456, 5697, 5696, 4613, 4618, 4631, 4634, 4637, 5675,
982      5621, 4645, 5591, 4653,11774,11774, 4664, 4667, 4678,11774,
983     11774, 5590, 4686, 4691, 5565, 4699, 2459, 5553, 4704, 4707,
984
985      4718, 4722, 5528, 4725,11774, 5435, 5447,   22, 2525, 2660,
986       141,  322,  338,  369,  393,  443,  488, 4728, 4731, 4737,
987      4750,  556,  633, 4754, 4757, 4760, 4775, 4778, 4781,  642,
988      4789,  695,  695, 4796, 4799, 4808, 4815, 4819,  694,  705,
989      4822, 4826, 4840,  748, 4843,  744,  775, 4846, 4852, 4864,
990     11774,11774, 4872,  759,  797,  821,  835,  854,  848, 4875,
991      4879,11774,11774, 4890, 4894, 4897, 4900, 4903,  893, 4908,
992       877,  894, 4922,11774,11774, 4918,  941, 4930,  934, 4936,
993       940,  961, 4941,  960,  967,  973, 4945, 4949, 4971,11774,
994     11774, 4979,11774,11774,  986, 4987, 2784, 5007,11774,11774,
995
996       987, 1011, 5015,11774,11774, 1016, 4995, 1017, 5023, 5026,
997     11774,11774, 5035,11774,11774, 5043, 5047,11774,11774, 1034,
998      1072, 5058,11774,11774, 5066, 1069, 5069, 5072, 1082, 1096,
999      1122, 5081, 1124, 5087, 5091, 5094, 5100, 5105, 1368, 1177,
1000      5114,11774, 1179,11774,11774, 1141, 1176, 5118, 1185, 1212,
1001      1204, 1205, 1247, 1262, 1268, 2559, 1264, 1274, 2771, 1276,
1002      2841, 1284, 2907, 1271, 1295, 3172, 1316, 3176, 1331, 4955,
1003      1340, 1369, 1392, 1400, 1402, 3347, 1389, 5125, 5133,11774,
1004     11774, 5141, 5147,11774,11774, 1400, 1423, 5155, 1396, 5162,
1005     11774,11774, 1421, 5174,11774,11774, 1428, 5183, 3437, 1450,
1006
1007      5186, 2933, 3712, 5194, 5198, 5212, 1464, 1457, 1484, 1481,
1008      3484, 1505, 3689, 5215, 1529, 1519, 1521, 5218, 5221, 1546,
1009      5224, 5227, 5235,11774,11774, 5246, 1564, 5249, 5252, 5255,
1010     11774,11774, 5271, 5274,11774,11774, 5267, 5286, 1597, 1593,
1011      5290,11774,11774, 5300, 5305, 5313, 5318, 1602, 5326, 5331,
1012      1612, 5334,11774,11774, 5345, 1631, 5351, 5354, 5364, 1617,
1013      5369,11774,11774, 5377, 5382, 5395, 1624, 1653, 1669, 1671,
1014      5398, 5401, 5404, 5407, 5416, 5422, 5425, 5428, 1693, 5434,
1015      5443, 5452, 1682, 5455, 5458, 1790, 5473, 1797, 5476, 1815,
1016      1795, 5481, 1835, 1820, 1856, 5484, 5496, 1872, 5504, 1868,
1017
1018      5507, 1884, 5511, 5514, 5517, 5535, 1880, 5538, 5541, 5544,
1019      5547, 5550, 1875, 5565,11774,11774, 1899, 1898, 1892, 5573,
1020      1925, 5576, 5585, 5594, 5599, 5603, 5607, 5621, 1984, 2007,
1021      2074,11774, 1927, 5625, 5628, 1948, 1940, 1943, 2050, 1939,
1022      1949, 5631, 1967, 1972, 1960, 5634, 1990, 1994, 2001, 5643,
1023      5647, 5650, 2018, 5655, 2023, 5658, 5661, 2014, 2025, 2039,
1024      2028, 5664, 2061, 5667, 2084, 2114, 5670, 2075, 5673, 2082,
1025      5676, 5679, 2119, 2109, 2162, 2110, 2130, 2133, 2173, 2157,
1026      5691,11774,11774, 5682, 5701, 2143, 2136, 2227, 2145, 5704,
1027      5707, 2156, 2228, 2231, 5710, 5719,11774,11774, 5713, 5732,
1028
1029      5736, 5739, 5750, 5754, 5757, 5760, 5769, 2169, 2192, 5775,
1030     11774,11774, 5784, 2219, 2223, 2211, 5792,11774, 5795, 2231,
1031      5799, 2244, 5804,11774,11774, 5812, 5818, 2252, 5826,11774,
1032     11774, 5834, 5837, 5845, 2253, 2264, 2256, 5848, 5852, 5866,
1033      5869,11774,11774, 5877, 5881, 5889, 5895, 5898, 5907, 2258,
1034      5914,11774,11774, 5922, 5926, 2270, 5934,11774,11774, 2268,
1035      5942,11774, 2279, 5945, 2261, 5948, 5951, 2278, 5954, 2313,
1036      5966, 2333, 2334, 2315, 5974,11774, 2316, 5977, 2307, 5980,
1037      5983, 6001, 6004, 2322, 6013, 2322, 6019, 6022, 6025, 6028,
1038      6043, 6046, 6054, 2326, 2328, 2344, 2379, 6057, 2375, 6062,
1039
1040     11774,11774, 6076, 6080, 6084,11774,11774, 6095,11774, 2420,
1041      2473, 2569, 2378, 6099, 6102, 6110, 6123, 2387, 2439, 2464,
1042      2441, 6129, 6134, 6137, 2444, 6140, 2445, 2456, 2461, 6143,
1043      6146, 6149, 6152, 2462, 6155, 6158, 6161, 6164, 6167, 6170,
1044      2509, 6175, 2518, 2530, 6178,11774, 2518, 6182, 6185, 2542,
1045      6200, 6203, 6206, 2557, 2555, 2555, 2562, 2571, 2601, 2599,
1046      2599, 2606, 2599, 6214, 6221, 6227, 6235, 2594, 2609, 2588,
1047      2590, 6239, 6242, 6245, 6248, 6256, 6259, 6264, 6277,11774,
1048     11774, 6285, 6290,11774, 6293,11774,11774, 6304, 2597, 2591,
1049      2692, 2849, 2600, 2628, 6309, 2639, 6312,11774,11774, 2641,
1050
1051      6324,11774,11774, 6332, 6337, 2653, 2642, 2649, 6346,11774,
1052     11774, 6354, 6358,11774,11774, 6366, 6369, 6377,11774,11774,
1053      6385, 2664, 6388,11774,11774, 2658, 2669, 2662, 6396, 2692,
1054      6399, 6404, 6419, 2701, 6422, 6425, 2717, 2712, 2941, 2986,
1055      2721, 2731, 6434,11774, 2743, 6440,11774,11774, 6453,11774,
1056     11774, 2766, 6448, 2756, 6462, 6467, 6470,11774,11774, 6482,
1057     11774,11774, 6490, 6494, 6500, 6504, 6512, 6518, 2755, 6522,
1058      6525, 6530, 2817, 2957, 6533, 6537,11774,11774, 6545, 6552,
1059      6555, 6558, 2761, 2761, 6564, 6572, 2774, 6575, 6578, 6584,
1060      6587, 6590, 6593, 2766, 2777, 6596, 6599, 6605, 6608, 2778,
1061
1062      6611, 2794,11774, 6614, 6617,11774,11774, 6625, 6632,11774,
1063      6636,11774,11774, 2850, 2845, 2865, 2868, 2880, 2882, 2889,
1064      2909, 2925, 2937, 6644, 6647, 6630, 6635, 6672, 6676, 2913,
1065      2927, 2949, 6679, 2946, 6682,11774,11774, 6692, 6695,11774,
1066     11774, 6706, 6711, 2962, 2969, 2998, 3027, 3012, 3032, 2989,
1067      6714, 6717, 2987, 2990, 6721,11774,11774, 6730, 3000, 3016,
1068      6739, 6742,11774,11774, 6750, 3013, 3022, 3023, 3027, 6753,
1069     11774, 6758, 6763,11774,11774, 6772, 6778, 6781,11774,11774,
1070      6791, 6796, 3055, 3083, 3064, 3083, 6799, 3052, 6802, 3058,
1071      6809, 6805, 6817, 6829, 6836, 6832, 6841, 6851, 6858, 6861,
1072
1073      6864, 6869, 6879, 6883,11774, 6886, 3090, 3146, 6891, 6898,
1074      6894, 6905, 3046, 3044, 6913, 6917, 6920, 6923, 3057, 3074,
1075      3075, 6926,11774, 3070, 6929, 6932, 3099, 3115, 3111, 3128,
1076      3117, 3131, 3129, 3149, 3169, 3170, 3182, 6940, 3161, 3166,
1077      3165, 3170, 3167, 3181, 3179, 3184, 3247, 3180, 3176, 3189,
1078      6949, 3213, 3210, 6952, 3206, 6955, 6959,11774, 6962, 3213,
1079      3215, 3280,11774, 3290,11774, 6965, 6968, 6974, 3233, 3267,
1080      6984, 6987, 3284, 6995, 7002,11774, 7005,11774, 3277, 3280,
1081      7008, 3291, 7013, 7032, 7017, 7026, 7040, 7048, 7051, 7054,
1082      3357,11774, 3365,11774, 7057, 3320, 7060, 3321, 7075,11774,
1083
1084      7078, 7081, 7089, 7096, 7101, 7104,11774,11774, 7115, 7120,
1085      7128, 7133, 7136,11774, 7139, 7142, 3410, 3417, 3568, 7146,
1086     11774, 3314, 3332, 7151, 3322, 3351, 3357, 7155, 7166, 3690,
1087      3692, 3349, 3387, 3409, 3409, 3421, 3455, 3448, 3461, 3460,
1088      3468, 3490, 7174, 3431, 3473, 3483, 3487, 3489, 3497, 3488,
1089      3495, 3508, 3504, 3509, 3509, 3535, 3536, 3555, 3573, 7177,
1090      3564, 7180, 7183,11774, 3557, 7186,11774,11774, 7189, 7193,
1091      7207, 3560, 3573, 7210,11774,11774, 3588, 7218, 7222, 3579,
1092      7230, 7236, 7239, 7248, 7254,11774,11774, 7262,11774, 7266,
1093     11774,11774, 7274, 7277, 7281,11774,11774, 7284, 7288, 7302,
1094
1095      7305, 7308, 4161, 4204, 7316,11774, 7323, 7330, 7338,11774,
1096     11774, 7349, 7352, 7360, 7363, 7372,11774, 3651, 3747, 3822,
1097      3588, 7378, 3605, 3612, 3613, 7381, 7392, 3634, 3640, 3863,
1098      3639, 3645, 3912, 3620, 3672, 3661, 3677, 3694,11774, 3729,
1099      3713, 3712, 3719,11774, 7384, 3698, 3718, 3707, 3722, 3731,
1100      3736, 3761, 3745, 3754, 3742, 3756, 3781, 3784, 3790, 3773,
1101      7403, 3791, 7406, 7409, 7412, 7415, 7430,11774,11774, 7438,
1102     11774, 3805, 3807, 3820, 7441,11774,11774, 3827, 7449, 7457,
1103      7469,11774,11774, 7477, 7480, 7488, 7491, 7495, 7499,11774,
1104     11774, 7509, 7513, 7521, 7527, 3841, 3846, 3859, 3863, 3870,
1105
1106      3888, 7535, 7539, 7547, 3925, 3970, 7558,11774,11774, 3908,
1107      3912, 7566, 3873, 7452, 7569, 3861, 3863, 7572,11774,11774,
1108      3913, 3914, 3934, 3944, 3951, 3942, 3967, 3977, 7580, 3966,
1109      3987, 4014, 4000, 3983, 4006, 4021, 4009, 7587, 3981, 3985,
1110      4001, 4049, 4050, 4035, 3999, 3993, 3995, 4021, 4075, 4078,
1111      4069, 4048, 4061, 7590, 7593, 7598, 7601, 7607, 4069, 7619,
1112     11774,11774, 4070, 4072, 4065, 4085, 7627,11774,11774, 7637,
1113     11774,11774, 7645, 7650, 7653, 7663, 7668, 4111, 4162, 7677,
1114      4169, 4170, 4102, 4116, 4147, 4111, 4122, 4157, 7685, 7688,
1115      4138, 4143, 4144, 4149, 4192, 7691, 7697, 7700, 7710, 7719,
1116
1117      7722, 7725, 4153, 4205, 4207, 4195, 4201, 4211, 4215, 4212,
1118      7728, 7731, 4224, 4224,11774, 4239, 4243, 4249,11774, 4250,
1119      7739, 4238, 4226, 4290,11774,11774, 4252, 4250, 4260, 4251,
1120      4312,11774,11774, 4275, 4274, 7742, 7746, 7749, 7758,11774,
1121     11774, 4270, 4278, 4285, 7768, 4287, 7771, 7774,11774,11774,
1122      7782, 4309, 4322, 4313, 4325, 4318, 4329, 4327, 4339, 4331,
1123      4358,11774, 4352, 4364,11774, 7789,11774, 7792, 4365, 4355,
1124      4376, 4365, 4400, 7795, 7802, 7814, 7845, 7892, 7822, 7825,
1125      7828, 4380, 4416, 4417, 4386, 4402, 4437, 4444, 4422, 7833,
1126     11774,11774, 4471, 4446, 4452, 4479, 4457, 4462, 7856, 4434,
1127
1128      4436,11774, 4436, 4451, 4450, 4461,11774, 4462, 4473, 7865,
1129      7868,11774, 4472, 4492, 4512, 7871, 7875, 4506, 7883, 7912,
1130      7903, 7921, 4565, 4534, 4565, 4540, 4575, 4543, 4575, 4546,
1131      4591, 4592, 4594, 4595, 7929, 4600, 4567, 4600, 4570, 4606,
1132      7938, 4625, 4641, 7958, 8005, 4609,11774,11774, 4587, 4615,
1133     11774,11774, 4604,11774, 4638, 4646,11774, 4649, 4651, 7932,
1134     11774, 4657, 4615, 4621, 4669, 4668, 4630, 4632, 4677, 4639,
1135      4645, 4626, 7978, 4709, 4728, 4651, 7986,11774,11774, 7994,
1136      4767, 4830,11774, 4706,11774, 4705,11774, 4709,11774, 4708,
1137     11774,11774,11774,11774, 7951,11774,11774, 4696,11774, 4716,
1138
1139      4752, 4769, 4851, 4738, 4787, 4740, 8016, 4750, 4742, 4756,
1140      4760,11774,11774,11774,11774,11774, 4827, 4736,11774,11774,
1141      4829, 4752,11774, 8025, 8028, 8031, 4818, 4785, 4895, 4802,
1142      8036, 4913, 4807, 4943, 4835,11774,11774,11774,11774, 4842,
1143      4846, 8039, 4880, 4868, 4881, 8054, 4908, 4893, 4909, 4907,
1144     11774, 4881, 4935,11774, 4906, 4953, 8058, 8061, 8069, 8076,
1145      8087, 8090, 4923, 4934, 4946, 4930, 4938, 4954, 8098, 8106,
1146      4938, 4946, 4964, 4947, 4959, 4972, 4955, 4961, 8101, 4982,
1147     11774, 4971,11774, 4972, 4961,11774, 4963,11774, 8116,11774,
1148     11774, 8124,11774,11774, 8132, 4995, 5009, 4983, 4990, 4993,
1149
1150      4996, 5007, 5004, 8140,11774,11774, 5015, 5021, 5019, 5022,
1151      5032, 5028, 5071, 5070, 5060,11774, 5081, 5090, 5044, 5054,
1152      5090, 5084, 5101, 5095, 5096, 5105, 5105, 5103, 5115, 5115,
1153      5116, 5122, 5126, 5124, 5130, 5136,11774,11774, 5143,11774,
1154     11774, 5117, 5121, 5139, 5159, 5151, 5171, 5157, 5158, 5180,
1155      5169, 5168, 5186, 5175, 5193, 5210, 5203, 5201, 5220, 5227,
1156      5254, 5253, 5226, 5241, 5245, 5247, 5271, 5261, 5294, 5279,
1157      5273, 5303, 5287, 5281, 5317, 5299, 5289, 5322, 5324,11774,
1158     11774, 5311, 5316, 5315, 5325, 5353, 5328,11774, 5353, 5331,
1159     11774, 5363, 5341,11774, 5367, 5344,11774, 5431, 5345, 5362,
1160
1161      5352, 5365,11774, 5366,11774, 5368,11774, 5369,11774, 5386,
1162      8148, 5389, 5416, 5407, 5425, 5395, 5396, 5398, 5399, 8151,
1163      5444,11774, 5454,11774, 5460, 5459, 5464, 5463, 5469, 5472,
1164     11774,11774,11774,11774,11774,11774, 5514, 5544, 5552, 5553,
1165      5471, 5492, 5506, 5565, 5461, 5545, 5572, 5706, 5622, 5679,
1166      5475, 5542, 5539, 5704, 5712, 5727, 5760, 5791, 5803, 5805,
1167      5765, 5813, 5772, 5780, 5789, 5822, 5868, 5885, 5668, 5681,
1168      5846, 5893, 5911, 5941, 5862, 5998, 5883, 5922, 5943, 5944,
1169      5814, 5973, 5970, 5975, 6018, 6034, 5474, 5755, 6052, 6056,
1170      5989, 5999, 6053, 6155, 6097, 6108, 5854, 6049, 6065, 6170,
1171
1172      6194, 6262, 6177, 6236, 6206, 6251, 6265, 6280, 5843, 6249,
1173      6172, 6264, 6311, 6324, 6257, 6325, 6357, 6362, 5968, 6114,
1174      8159, 8162,11774,11774, 8182, 8191, 8200, 8209, 8218, 8227,
1175      8236, 8245, 8254, 8263, 8272, 8281, 8290, 8299, 8308, 8317,
1176      8326, 8335, 8344, 8353, 8362, 8371, 8380, 8389, 8398, 8407,
1177      8416, 8425, 8434, 8443, 8452, 8461, 8470, 8479, 8488, 8497,
1178      8506, 8515, 8524, 8533, 8542, 8551, 8560, 8569, 8578, 8587,
1179      8596, 8605, 8614, 8623, 8632, 8641, 8650, 8659, 8668, 8677,
1180      8686, 8695, 8704, 8711, 8718, 8725, 8732, 8739, 8746, 8753,
1181      8760, 8767, 8774, 8781, 8788, 8795, 8802, 8809, 8816, 8823,
1182
1183      8830, 8837, 8844, 8851, 8858, 8865, 8872, 8879, 8886, 8893,
1184      8902, 8909, 8914, 8921, 8926, 8933, 8938, 8945, 8950, 8957,
1185      8962, 8969, 8974, 8981, 8986, 8993, 8998, 9005, 9010, 9017,
1186      9022, 9029, 9034, 9041, 9046, 9053, 9058, 9065, 9070, 9077,
1187      9082, 9089, 9094, 9101, 9106, 9113, 9118, 9125, 9130, 9137,
1188      9142, 9149, 9154, 9161, 9166, 9173, 9178, 9185, 9190, 9197,
1189      9202, 9209, 9214, 9221, 9226, 9235, 9241, 9248, 9256, 9263,
1190      9271, 9278, 9286, 9293, 9301, 9308, 9316, 9323, 9331, 9338,
1191      9346, 9353, 9361, 9368, 9376, 9383, 9391, 9398, 9406, 9413,
1192      9421, 9428, 9436, 9444, 9452, 9459, 9467, 9474, 9482, 9489,
1193
1194      9497, 9504, 9512, 9520, 9528, 9536, 9544, 9551, 9559, 9567,
1195      9575, 9583, 9591, 9598, 9606, 9613, 9621, 9629, 9636, 9644,
1196      9653, 9659, 9666, 9674, 9682, 9690, 9698, 9706, 9713, 9721,
1197      9728, 9736, 9743, 9751, 9758, 9766, 9773, 9781, 9789, 9797,
1198      9805, 9813, 9820, 9828, 9836, 9844, 9851, 9859, 9866, 9874,
1199      9881, 9889, 9896, 9904, 9911, 9919, 9926, 9934, 9941, 9949,
1200      9956, 9964, 9971, 9979, 9987, 9994,10002,10009,10017,10024,
1201     10032,10040,10047,10055,10064,10073,10080,10088,10096,10103,
1202     10111,10118,10126,10133,10141,10148,10155,10163,10170,10178,
1203     10186,10193,10201,10208,10216,10224,10231,10239,10247,10255,
1204
1205     10262,10270,10277,10285,10292,10300,10307,10315,10322,10330,
1206     10337,10345,10352,10360,10368,10375,10383,10390,10398,10406,
1207     10414,10422,10430,10438,10447,10456,10463,10471,10479,10486,
1208     10494,10501,10509,10516,10524,10531,10538,10546,10553,10561,
1209     10569,10577,10585,10592,10600,10608,10615,10623,10631,10639,
1210     10646,10654,10661,10669,10676,10684,10691,10699,10706,10714,
1211     10722,10730,10737,10745,10753,10761,10769,10776,10784,10792,
1212     10800,10808,10817,10826,10834,10842,10850,10857,10865,10872,
1213     10880,10888,10896,10904,10912,10920,10928,10936,10944,10952,
1214     10959,10967,10974,10982,10990,10998,11005,11012,11020,11027,
1215
1216     11035,11042,11049,11057,11064,11072,11079,11087,11095,11103,
1217     11110,11118,11126,11134,11143,11152,11160,11168,11175,11182,
1218     11190,11198,11206,11214,11222,11229,11237,11244,11252,11260,
1219     11267,11274,11282,11289,11297,11304,11311,11318,11326,11333,
1220     11341,11349,11357,11365,11373,11381,11389,11398,11407,11415,
1221     11423,11430,11438,11446,11454,11462,11470,11477,11485,11492,
1222     11500,11508,11515,11522,11530,11538,11546,11553,11560,11568,
1223     11576,11584,11592,11600,11608,11616,11624,11633,11642,11650,
1224     11657,11664,11672,11680,11688,11695,11703,11710,11719,11728,
1225     11737,11746,11755,11764
1226
1227     } ;
1228
1229 static yyconst flex_int16_t yy_def[3695] =
1230     {   0,
1231      3225, 3225, 3226, 3226, 3226, 3226, 3227, 3227, 3228, 3228,
1232      3229, 3229, 3230, 3230, 3230, 3230, 3231, 3231, 3225, 3225,
1233      3232, 3232, 3233, 3233, 3233, 3233, 3225, 3225, 3233, 3233,
1234      3233, 3233, 3225, 3225, 3233, 3233, 3225, 3225, 3233, 3233,
1235      3233, 3233, 3234, 3234, 3235, 3235, 3225, 3225, 3235, 3235,
1236      3235, 3235, 3236, 3236, 3230, 3230, 3237, 3237, 3238, 3238,
1237      3225, 3225, 3238, 3238, 3238, 3238, 3239, 3239, 3240, 3240,
1238      3241, 3241, 3242, 3242, 3242, 3242, 3225, 3225, 3242, 3242,
1239      3242, 3242, 3225, 3225, 3242, 3242, 3242, 3242, 3225, 3225,
1240      3242, 3242, 3225, 3225, 3242, 3242, 3242, 3242, 3225, 3225,
1241
1242      3242, 3242, 3225, 3225, 3242, 3242, 3242, 3242, 3243, 3243,
1243      3244, 3244, 3225, 3225, 3244, 3244, 3244, 3244, 3245, 3245,
1244      3246, 3246, 3225, 3225, 3246, 3246, 3246, 3246, 3247, 3247,
1245      3248, 3248, 3249, 3249, 3250, 3250, 3251, 3251, 3252, 3252,
1246      3225, 3225, 3252, 3252, 3252, 3252, 3253, 3253, 3254, 3254,
1247      3224,  151, 3255, 3255, 3256, 3256, 3257, 3257, 3258, 3258,
1248      3259, 3259, 3260, 3260, 3261, 3261, 3262, 3262, 3263, 3263,
1249      3264, 3264, 3265, 3265, 3225, 3225, 3265, 3265, 3265, 3265,
1250      3266, 3266, 3267, 3267, 3225, 3225, 3267, 3267, 3267, 3267,
1251      3268, 3268, 3269, 3269, 3225, 3225, 3269, 3269, 3269, 3269,
1252
1253      3270, 3270, 3271, 3271, 3272, 3272, 3273, 3273, 3225, 3225,
1254      3273, 3273, 3273, 3273, 3274, 3274, 3275, 3275, 3225, 3225,
1255      3275, 3275, 3275, 3275, 3276, 3276, 3277, 3277, 3225, 3225,
1256      3277, 3277, 3277, 3277, 3278, 3278, 3279, 3279, 3280, 3280,
1257      3281, 3281, 3225, 3225, 3281, 3281, 3281, 3281, 3282, 3282,
1258      3283, 3283, 3225, 3225, 3224, 3224, 3224, 3224, 3224, 3224,
1259      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1260      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1261      3224, 3224, 3224, 3224, 3224, 3284, 3224, 3224, 3284, 3224,
1262      3224, 3224,  292,  292,  294,  292,  295,  295, 3224, 3224,
1263
1264      3224, 3285, 3224, 3224, 3285, 3224, 3224,  296,  295, 3224,
1265      3224, 3224, 3286, 3224, 3224, 3286, 3286, 3286, 3224, 3224,
1266      3224, 3224, 3224, 3287, 3224, 3224, 3287, 3287, 3287, 3287,
1267      3287, 3224, 3224,  295,  295,  295, 3224, 3224, 3224, 3288,
1268      3224, 3224, 3288, 3288, 3288, 3224, 3224, 3224, 3224, 3224,
1269      3224, 3289, 3224, 3224, 3289, 3289, 3224, 3224, 3224,  359,
1270       295,  296,  362,  361,  361,  361,  361,  362,  368,  367,
1271       366, 3224, 3224, 3224, 3290, 3224, 3224, 3290, 3290, 3290,
1272      3290, 3224, 3224,  295,  295, 3224, 3224, 3224, 3291, 3224,
1273      3224, 3291, 3291, 3291, 3224, 3224,  295,  295, 3224, 3224,
1274
1275      3224, 3292, 3224, 3224, 3292, 3292, 3224, 3224, 3224, 3224,
1276      3224, 3224, 3293, 3224, 3224, 3293, 3293, 3224, 3224, 3224,
1277      3224, 3224, 3224, 3294, 3224, 3224, 3294, 3294, 3294, 3294,
1278      3294, 3224, 3224,  295,  434,  434, 3224, 3224, 3224, 3295,
1279      3224, 3224, 3295, 3295, 3295, 3224, 3224, 3224, 3224, 3224,
1280      3224, 3296, 3224, 3224, 3296, 3296, 3296, 3296, 3296, 3296,
1281      3296, 3296, 3224, 3224, 3224, 3224, 3224, 3224, 3297, 3224,
1282      3224, 3297, 3297, 3297, 3297, 3297, 3297, 3224, 3224, 3224,
1283      3224, 3224, 3224, 3298, 3224, 3224, 3298, 3298, 3298, 3298,
1284      3298, 3298, 3298, 3224, 3224, 3224, 3224, 3224, 3224, 3299,
1285
1286      3224, 3224, 3299, 3299, 3224, 3224, 3224, 3224, 3224, 3224,
1287      3300, 3224, 3224, 3300, 3300, 3300, 3224, 3224, 3224, 3224,
1288      3224, 3224, 3301, 3224, 3224, 3301, 3301, 3301, 3301, 3224,
1289      3224,  434,  295, 3224, 3224, 3224, 3302, 3224, 3224, 3302,
1290      3302, 3224, 3224,  295,  544,  544, 3224, 3224, 3224, 3303,
1291      3224, 3224, 3303, 3303, 3303, 3224, 3224,  544,  544, 3224,
1292      3224, 3224, 3304, 3224, 3224, 3304, 3304, 3224, 3224, 3224,
1293      3224, 3224, 3224, 3305, 3224, 3224, 3305, 3305, 3224, 3224,
1294       544,  544, 3224, 3224, 3224, 3306, 3224, 3224, 3306, 3306,
1295      3306, 3224, 3224,  544,  544, 3224, 3224, 3224, 3307, 3224,
1296
1297      3224, 3307, 3307, 3307, 3307, 3307, 3224, 3224,  295,  609,
1298       609, 3224, 3224, 3224, 3308, 3224, 3224, 3308, 3224, 3224,
1299      3224, 3224, 3224, 3224, 3309, 3224, 3224, 3309, 3224, 3224,
1300       609,  295, 3224, 3224, 3224, 3310, 3224, 3224, 3310, 3310,
1301      3224, 3224, 3224, 3224, 3311, 3224, 3224, 3224, 3224, 3224,
1302      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1303      3312, 3312, 3313, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1304      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1305      3224, 3224, 3224, 3224, 3224, 3224, 3314, 3314, 3315, 3224,
1306      3316, 3316, 3316, 3316, 3224, 3317, 3224, 3224, 3318, 3318,
1307
1308      3318, 3318, 3318, 3318, 3318, 3318, 3318, 3319, 3224, 3224,
1309      3320, 3320, 3320, 3320, 3321, 3224, 3322, 3322, 3322, 3323,
1310      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1311      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3324, 3324, 3324,
1312      3324, 3324, 3325, 3224, 3326, 3326, 3326, 3326, 3327, 3224,
1313      3328, 3328, 3328, 3329, 3224, 3330, 3330, 3330, 3331, 3224,
1314      3332, 3332, 3332, 3332, 3332, 3332, 3333, 3224, 3224, 3334,
1315      3334, 3334, 3334, 3335, 3224, 3336, 3336, 3336, 3336, 3336,
1316      3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3337,
1317      3224, 3338, 3338, 3338, 3338, 3338, 3338, 3338, 3338, 3339,
1318
1319      3224, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3341,
1320      3224, 3342, 3342, 3342, 3343, 3224, 3344, 3344, 3344, 3344,
1321      3345, 3224, 3346, 3346, 3346, 3346, 3346, 3346, 3347, 3224,
1322      3348, 3348, 3348, 3348, 3349, 3224, 3224, 3350, 3350, 3350,
1323      3350, 3350, 3351, 3224, 3352, 3352, 3352, 3353, 3224, 3354,
1324      3354, 3354, 3355, 3224, 3356, 3356, 3356, 3356, 3357, 3224,
1325      3358, 3358, 3358, 3358, 3358, 3358, 3359, 3224, 3224, 3360,
1326      3360, 3361, 3224, 3362, 3362, 3363, 3224, 3364, 3364, 3364,
1327      3365, 3366, 3224, 3366, 3224, 3224, 3224, 3367, 3224, 3224,
1328      3224, 3224, 3224, 3224, 3224, 3368, 3369, 3369, 3224, 3224,
1329
1330      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1331      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1332      3224, 3224, 3224, 3224, 3224, 3224, 3370, 3371, 3371, 3372,
1333      3224, 3224, 3372, 3224, 3373, 3373, 3224, 3374, 3224, 3224,
1334      3374, 3374, 3374, 3374, 3374, 3374, 3375, 3375, 3224, 3376,
1335      3376, 3376, 3377, 3377, 3224, 3224, 3378, 3379, 3379, 3224,
1336      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1337      3224, 3380, 3224, 3224, 3380, 3380, 3381, 3381, 3382, 3224,
1338      3224, 3382, 3383, 3383, 3224, 3224, 3384, 3385, 3385, 3386,
1339      3386, 3387, 3387, 3388, 3388, 3388, 3224, 3224, 3388, 3388,
1340
1341      3389, 3389, 3224, 3224, 3390, 3224, 3224, 3224, 3224, 3391,
1342      3391, 3392, 3392, 3224, 3224, 3392, 3224, 3224, 3392, 3392,
1343      3392, 3392, 3392, 3392, 3392, 3392, 3393, 3393, 3224, 3224,
1344      3224, 3224, 3394, 3394, 3394, 3394, 3394, 3395, 3395, 3396,
1345      3396, 3396, 3224, 3224, 3396, 3396, 3396, 3397, 3397, 3398,
1346      3224, 3224, 3399, 3399, 3400, 3224, 3224, 3400, 3401, 3401,
1347      3402, 3224, 3224, 3402, 3402, 3402, 3403, 3403, 3404, 3404,
1348      3404, 3405, 3405, 3224, 3406, 3406, 3406, 3406, 3407, 3407,
1349      3408, 3224, 3224, 3409, 3409, 3410, 3410, 3411, 3411, 3412,
1350      3412, 3412, 3413, 3413, 3414, 3414, 3414, 3414, 3414, 3415,
1351
1352      3415, 3224, 3416, 3417, 3417, 3224, 3224, 3418, 3418, 3224,
1353      3224, 3419, 3420, 3420, 3421, 3224, 3224, 3421, 3224, 3224,
1354      3422, 3224, 3224, 3224, 3224, 3224, 3224, 3423, 3224, 3424,
1355      3224, 3424, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1356      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1357      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1358      3224, 3425, 3224, 3426, 3224, 3426, 3427, 3224, 3224, 3224,
1359      3427, 3224, 3224, 3428, 3224, 3428, 3429, 3224, 3224, 3224,
1360      3224, 3224, 3429, 3224, 3224, 3429, 3429, 3429, 3224, 3430,
1361      3224, 3430, 3224, 3431, 3431, 3431, 3224, 3432, 3224, 3432,
1362
1363      3224, 3224, 3224, 3433, 3224, 3434, 3224, 3434, 3224, 3224,
1364      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3435,
1365      3224, 3224, 3224, 3435, 3435, 3224, 3436, 3224, 3436, 3437,
1366      3224, 3224, 3224, 3437, 3224, 3438, 3224, 3438, 3224, 3224,
1367      3224, 3439, 3224, 3440, 3224, 3440, 3441, 3441, 3224, 3442,
1368      3224, 3442, 3443, 3443, 3443, 3224, 3224, 3224, 3443, 3443,
1369      3224, 3444, 3224, 3444, 3224, 3224, 3445, 3224, 3224, 3224,
1370      3224, 3224, 3224, 3224, 3446, 3224, 3446, 3447, 3447, 3447,
1371      3447, 3224, 3224, 3224, 3447, 3224, 3224, 3224, 3224, 3224,
1372      3447, 3447, 3447, 3447, 3447, 3447, 3447, 3224, 3448, 3224,
1373
1374      3448, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3449,
1375      3449, 3449, 3449, 3224, 3450, 3224, 3450, 3451, 3451, 3451,
1376      3451, 3224, 3224, 3224, 3224, 3224, 3451, 3451, 3224, 3452,
1377      3224, 3452, 3453, 3224, 3224, 3224, 3224, 3454, 3224, 3454,
1378      3455, 3224, 3224, 3224, 3455, 3224, 3456, 3224, 3456, 3457,
1379      3224, 3224, 3224, 3457, 3457, 3457, 3224, 3458, 3224, 3458,
1380      3224, 3224, 3224, 3224, 3459, 3224, 3460, 3224, 3460, 3224,
1381      3224, 3224, 3461, 3461, 3224, 3224, 3461, 3224, 3462, 3224,
1382      3462, 3463, 3224, 3224, 3224, 3224, 3464, 3224, 3464, 3224,
1383      3224, 3224, 3224, 3224, 3465, 3224, 3465, 3224, 3224, 3466,
1384
1385      3466, 3224, 3224, 3224, 3467, 3224, 3467, 3468, 3468, 3468,
1386      3468, 3468, 3224, 3469, 3224, 3469, 3224, 3470, 3224, 3471,
1387      3224, 3471, 3224, 3224, 3224, 3224, 3472, 3224, 3472, 3224,
1388      3224, 3224, 3473, 3224, 3474, 3224, 3474, 3475, 3476, 3224,
1389      3224, 3224, 3224, 3224, 3477, 3478, 3224, 3224, 3224, 3224,
1390      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1391      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1392      3224, 3224, 3224, 3224, 3224, 3224, 3479, 3224, 3224, 3480,
1393      3224, 3481, 3482, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1394      3224, 3482, 3224, 3224, 3482, 3483, 3224, 3484, 3224, 3224,
1395
1396      3484, 3485, 3486, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1397      3224, 3224, 3224, 3224, 3224, 3224, 3487, 3487, 3224, 3224,
1398      3488, 3489, 3489, 3490, 3224, 3224, 3491, 3224, 3224, 3492,
1399      3493, 3494, 3494, 3224, 3224, 3494, 3494, 3495, 3224, 3224,
1400      3224, 3224, 3496, 3497, 3497, 3497, 3497, 3224, 3224, 3224,
1401      3224, 3224, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3498,
1402      3224, 3224, 3224, 3499, 3499, 3499, 3499, 3500, 3501, 3501,
1403      3501, 3501, 3224, 3224, 3224, 3501, 3501, 3502, 3503, 3504,
1404      3505, 3505, 3506, 3507, 3507, 3507, 3507, 3508, 3224, 3224,
1405      3224, 3224, 3224, 3224, 3509, 3510, 3224, 3224, 3224, 3224,
1406
1407      3511, 3511, 3224, 3224, 3224, 3511, 3512, 3513, 3514, 3224,
1408      3224, 3224, 3224, 3224, 3224, 3515, 3224, 3224, 3224, 3516,
1409      3516, 3224, 3224, 3224, 3517, 3518, 3224, 3224, 3518, 3518,
1410      3518, 3519, 3224, 3520, 3521, 3522, 3523, 3524, 3525, 3526,
1411      3526, 3224, 3526, 3224, 3224, 3224, 3527, 3528, 3224, 3224,
1412      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1413      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1414      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1415      3224, 3529, 3224, 3224, 3224, 3530, 3224, 3531, 3532, 3224,
1416      3224, 3224, 3532, 3224, 3224, 3224, 3532, 3533, 3224, 3534,
1417
1418      3224, 3224, 3224, 3224, 3224, 3535, 3536, 3224, 3224, 3224,
1419      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3537,
1420      3224, 3224, 3224, 3224, 3224, 3538, 3539, 3539, 3540, 3224,
1421      3224, 3224, 3541, 3224, 3224, 3224, 3542, 3543, 3544, 3544,
1422      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3544, 3545, 3224,
1423      3224, 3224, 3224, 3224, 3546, 3547, 3224, 3224, 3547, 3547,
1424      3224, 3224, 3224, 3224, 3224, 3547, 3547, 3547, 3547, 3547,
1425      3547, 3548, 3224, 3224, 3549, 3549, 3549, 3550, 3551, 3224,
1426      3224, 3551, 3551, 3224, 3224, 3551, 3552, 3553, 3554, 3555,
1427      3555, 3556, 3557, 3557, 3557, 3224, 3224, 3557, 3558, 3559,
1428
1429      3560, 3224, 3561, 3561, 3561, 3562, 3563, 3564, 3565, 3566,
1430      3566, 3567, 3568, 3224, 3224, 3224, 3568, 3568, 3568, 3569,
1431      3224, 3224, 3224, 3570, 3571, 3224, 3224, 3572, 3573, 3574,
1432      3574, 3224, 3224, 3575, 3576, 3224, 3224, 3224, 3224, 3224,
1433      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1434      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1435      3224, 3224, 3224, 3577, 3578, 3224, 3579, 3580, 3580, 3580,
1436      3581, 3582, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1437      3224, 3224, 3224, 3583, 3584, 3224, 3224, 3224, 3224, 3224,
1438      3224, 3224, 3224, 3224, 3585, 3224, 3224, 3224, 3586, 3587,
1439
1440      3224, 3224, 3588, 3589, 3224, 3224, 3590, 3591, 3591, 3224,
1441      3224, 3224, 3224, 3224, 3224, 3591, 3224, 3224, 3224, 3224,
1442      3592, 3593, 3224, 3224, 3224, 3224, 3224, 3593, 3224, 3224,
1443      3224, 3224, 3224, 3593, 3593, 3593, 3593, 3224, 3224, 3594,
1444      3224, 3224, 3224, 3224, 3224, 3595, 3224, 3224, 3596, 3597,
1445      3224, 3224, 3224, 3224, 3224, 3597, 3224, 3224, 3224, 3597,
1446      3224, 3224, 3598, 3599, 3600, 3600, 3601, 3602, 3602, 3602,
1447      3224, 3224, 3224, 3602, 3224, 3224, 3603, 3604, 3224, 3224,
1448      3224, 3224, 3224, 3605, 3606, 3607, 3608, 3609, 3224, 3224,
1449      3224, 3224, 3610, 3611, 3611, 3611, 3611, 3612, 3224, 3224,
1450
1451      3224, 3224, 3613, 3614, 3224, 3224, 3224, 3224, 3224, 3615,
1452      3616, 3616, 3224, 3224, 3224, 3617, 3224, 3224, 3224, 3224,
1453      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1454      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1455      3224, 3618, 3619, 3224, 3224, 3224, 3620, 3224, 3224, 3620,
1456      3621, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1457      3224, 3224, 3224, 3622, 3224, 3224, 3224, 3224, 3224, 3224,
1458      3224, 3224, 3224, 3224, 3224, 3623, 3224, 3224, 3224, 3224,
1459      3224, 3624, 3224, 3224, 3224, 3224, 3224, 3625, 3626, 3626,
1460      3224, 3224, 3626, 3224, 3627, 3628, 3224, 3224, 3224, 3628,
1461
1462      3224, 3224, 3224, 3224, 3224, 3628, 3628, 3628, 3224, 3224,
1463      3224, 3629, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1464      3630, 3631, 3224, 3224, 3224, 3631, 3631, 3632, 3633, 3634,
1465      3224, 3224, 3635, 3636, 3224, 3224, 3636, 3636, 3224, 3224,
1466      3636, 3637, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1467      3224, 3638, 3639, 3640, 3641, 3642, 3224, 3224, 3224, 3224,
1468      3224, 3224, 3643, 3644, 3644, 3644, 3644, 3645, 3224, 3646,
1469      3647, 3648, 3649, 3649, 3224, 3224, 3224, 3224, 3650, 3224,
1470      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1471      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1472
1473      3651, 3652, 3224, 3653, 3224, 3224, 3224, 3653, 3224, 3224,
1474      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1475      3224, 3224, 3224, 3654, 3224, 3224, 3224, 3224, 3224, 3224,
1476      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3655, 3224, 3224,
1477      3224, 3656, 3657, 3658, 3658, 3224, 3224, 3224, 3224, 3658,
1478      3224, 3659, 3660, 3660, 3224, 3224, 3224, 3660, 3660, 3660,
1479      3661, 3224, 3224, 3224, 3662, 3663, 3663, 3663, 3664, 3224,
1480      3224, 3665, 3224, 3224, 3224, 3666, 3667, 3224, 3224, 3224,
1481      3667, 3667, 3224, 3224, 3224, 3224, 3667, 3668, 3224, 3669,
1482      3670, 3671, 3672, 3673, 3674, 3224, 3224, 3675, 3675, 3675,
1483
1484      3676, 3224, 3677, 3224, 3224, 3678, 3679, 3679, 3224, 3680,
1485      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1486      3224, 3224, 3224, 3681, 3224, 3224, 3682, 3224, 3224, 3224,
1487      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3683, 3224, 3224,
1488      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1489      3224, 3224, 3224, 3224, 3224, 3684, 3224, 3224, 3685, 3686,
1490      3686, 3224, 3224, 3224, 3224, 3686, 3224, 3687, 3688, 3688,
1491      3224, 3224, 3688, 3688, 3224, 3224, 3224, 3224, 3663, 3663,
1492      3663, 3664, 3224, 3224, 3666, 3224, 3224, 3667, 3667, 3667,
1493      3224, 3224, 3224, 3224, 3667, 3668, 3224, 3669, 3224, 3224,
1494
1495      3224, 3224, 3672, 3673, 3674, 3224, 3224, 3224, 3224, 3224,
1496      3675, 3675, 3224, 3224, 3224, 3677, 3678, 3679, 3679, 3224,
1497      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3681, 3224, 3224,
1498      3224, 3682, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1499      3224, 3224, 3683, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1500      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1501      3224, 3684, 3224, 3224, 3686, 3686, 3224, 3224, 3224, 3224,
1502      3687, 3688, 3688, 3224, 3224, 3224, 3688, 3224, 3224, 3663,
1503      3663, 3224, 3224, 3664, 3224, 3224, 3224, 3224, 3224, 3224,
1504      3224, 3224, 3667, 3667, 3667, 3224, 3224, 3224, 3224, 3668,
1505
1506      3669, 3224, 3224, 3224, 3224, 3224, 3673, 3674, 3224, 3224,
1507      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678, 3679, 3679,
1508      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1509      3224, 3224, 3224, 3682, 3224, 3224, 3224, 3224, 3224, 3224,
1510      3224, 3224, 3224, 3224, 3683, 3224, 3224, 3224, 3224, 3224,
1511      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1512      3224, 3224, 3684, 3686, 3224, 3224, 3224, 3224, 3224, 3224,
1513      3224, 3688, 3688, 3688, 3224, 3224, 3224, 3663, 3224, 3224,
1514      3224, 3224, 3224, 3224, 3224, 3667, 3667, 3667, 3224, 3224,
1515      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1516
1517      3224, 3673, 3674, 3224, 3224, 3224, 3224, 3224, 3224, 3678,
1518      3679, 3679, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1519      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3682, 3224,
1520      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3683, 3224, 3224,
1521      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1522      3224, 3224, 3224, 3224, 3224, 3684, 3224, 3224, 3686, 3224,
1523      3224, 3224, 3688, 3688, 3688, 3663, 3224, 3224, 3224, 3224,
1524      3224, 3224, 3667, 3224, 3224, 3667, 3224, 3224, 3224, 3224,
1525      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3673, 3674,
1526      3224, 3224, 3224, 3224, 3678, 3679, 3679, 3679, 3224, 3224,
1527
1528      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1529      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1530      3683, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1531      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3684, 3224, 3224,
1532      3224, 3686, 3688, 3688, 3688, 3663, 3667, 3224, 3224, 3224,
1533      3667, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1534      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3674, 3224, 3224,
1535      3224, 3224, 3678, 3679, 3679, 3679, 3689, 3690, 3224, 3224,
1536      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1537      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3683, 3224,
1538
1539      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1540      3224, 3224, 3686, 3688, 3688, 3224, 3224, 3663, 3224, 3224,
1541      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1542      3224, 3224, 3224, 3224, 3674, 3224, 3224, 3224, 3224, 3678,
1543      3679, 3691, 3692, 3689, 3690, 3224, 3224, 3224, 3224, 3224,
1544      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1545      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3686,
1546      3688, 3688, 3224, 3224, 3224, 3663, 3224, 3224, 3224, 3224,
1547      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1548      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1549
1550      3678, 3691, 3679, 3693, 3692, 3694, 3679, 3224, 3224, 3224,
1551      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1552      3224, 3224, 3224, 3686, 3688, 3688, 3224, 3224, 3224, 3224,
1553      3663, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1554      3224, 3678, 3693, 3224, 3694, 3679, 3224, 3224, 3224, 3224,
1555      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1556      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1557      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678, 3224,
1558      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1559      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1560
1561      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1562      3224, 3224, 3224, 3224, 3678, 3224, 3224, 3224, 3224, 3224,
1563      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1564      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678, 3224,
1565      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1566      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678,
1567      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1568      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678, 3224,
1569      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1570      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678, 3224, 3224,
1571
1572      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1573      3678, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678,
1574      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3678, 3678,
1575      3224, 3224, 3224, 3224, 3224, 3224, 3678, 3678, 3678, 3678,
1576      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1577      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1578      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1579      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1580      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1581      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1582
1583      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1584      3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
1585      3678, 3678, 3224,    0, 3224, 3224, 3224, 3224, 3224, 3224,
1586      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1587      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1588      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1589      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1590      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1591      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1592      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1593
1594      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1595      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1596      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1597      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1598      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1599      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1600      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1601      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1602      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1603      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1604
1605      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1606      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1607      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1608      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1609      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1610      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1611      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1612      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1613      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1614      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1615
1616      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1617      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1618      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1619      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1620      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1621      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1622      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1623      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1624      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1625      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1626
1627      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1628      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1629      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1630      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1631      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1632      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1633      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1634      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1635      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
1636      3224, 3224, 3224, 3224
1637
1638     } ;
1639
1640 static yyconst flex_int16_t yy_nxt[11849] =
1641     {   0,
1642      3224,  258,  259,  258,  258,  259,  258,  258,  259,  258,
1643       258,  259,  258,  263,  259,  263,  269,  260,  266,  269,
1644       260,  266, 3224,  261, 3224,  267,  261, 3224,  267,  264,
1645       263,  259,  263,  645,  270,  272,  273,  270,  272,  273,
1646       274,  275,  689,  274,  275,  645,  264,  279,  280,  646,
1647       276,  272,  273,  276,  277,  648,  274,  272,  273,  678,
1648       277,  647,  274,  279,  280, 3224,  276,  259,  259,  259,
1649       827,  647,  276,  259,  259,  259,  291,  259,  291,  291,
1650       259,  291,  828,  282,  291,  259,  291,  666, 1710,  282,
1651       720,  281,  292, 1319,  681,  292,  644,  644,  644, 1320,
1652
1653       293,  644,  644,  644,  644,  644,  644,  281,  283,  284,
1654       259,  284,  283,  283,  283,  283,  283,  283,  283,  285,
1655       283,  283,  283,  676,  283,  287,  283,  288,  283,  291,
1656       259,  291,  259,  259,  259,  259,  259,  259,  677,  291,
1657       259,  291,  291,  259,  291,  293,  682,  671,  294,  648,
1658       681,  294,  901,  283,  283,  292,  648,  648,  292,  291,
1659       259,  291,  644,  644,  644,  647,  644,  644,  644,  644,
1660       644,  644,  647,  647,  708,  295,  902,  289,  283,  284,
1661       259,  284,  283,  283,  283,  283,  283,  283,  283,  285,
1662       283,  283,  283, 1714,  283,  287,  283,  288,  283,  291,
1663
1664       259,  291,  259,  259,  259,  259,  259,  259,  653,  291,
1665       259,  291,  291,  259,  291,  295,  659,  720,  296,  783,
1666       961,  296,  784,  283,  283,  293,  709,  721,  293,  259,
1667       259,  259,  259,  259,  259,  291,  259,  291,  291,  259,
1668       291,  291,  259,  291,  962,  297,  833,  289,  297,  648,
1669       654,  295,  778,  834,  295,  731,  655,  298,  291,  259,
1670       291,  656,  644,  644,  644,  647,  657,  644,  644,  644,
1671       644,  644,  644,  779,  298,  299,  300,  259,  300,  299,
1672       299,  299,  299,  299,  299,  299,  301,  299,  299,  299,
1673       706,  299,  303,  299,  304,  299,  307,  259,  307,  307,
1674
1675       259,  307,  259,  259,  259,  707,  259,  259,  259,  307,
1676       259,  307,  308,  796,  889,  308,  797,  890,  296,  702,
1677       299,  299,  296,  703, 3224,  308,  663,  704,  305,  299,
1678       300,  259,  300,  299,  299,  299,  299,  299,  299,  299,
1679       301,  299,  299,  299,  648,  299,  303,  299,  304,  299,
1680       307,  259,  307,  307,  259,  307,  307,  259,  307,  785,
1681       647,  876,  272,  273,  841,  683,  308,  274, 3224,  309,
1682      1715,  842,  309,  786,  299,  299,  709,  319,  684,  708,
1683       677,  883,  305,  310,  311,  259,  311,  310,  310,  310,
1684       310,  310,  310,  310,  312,  310,  310,  310,  665,  310,
1685
1686       314,  310,  315,  310, 1716,  648,  320,  676,  333,  259,
1687       333,  333,  259,  333,  259,  259,  259,  934,  272,  273,
1688       685,  647,  677,  274,  334,  695,  914,  334,  310,  310,
1689       335,  681,  696,  319,  909, 1717,  316,  743,  910,  317,
1690       915,  647,  644,  644,  644, 1718,  318,  310,  311,  259,
1691       311,  310,  310,  310,  310,  310,  310,  310,  312,  310,
1692       310,  310,  320,  310,  314,  310,  315,  310,  259,  259,
1693       259,  333,  259,  333,  333,  259,  333,  919,  333,  259,
1694       333,  333,  259,  333,  335,  648,  648,  334, 3224,  709,
1695       334,  915,  310,  310,  336, 1719,  995,  336,  678,  996,
1696
1697       316,  647,  647,  317,  644,  644,  644,  644,  644,  644,
1698       318,  321,  322,  259,  322,  321,  321,  321,  321,  321,
1699       321,  321,  323,  321,  321,  321,  666,  321,  325,  321,
1700       326,  321,  347,  259,  347,  347,  259,  347,  358,  259,
1701       358,  919,  358,  259,  358,  358,  259,  358,  348, 1720,
1702       648,  348,  648,  648,  359,  965,  321,  321,  359,  715,
1703       665,  360,  644,  644,  644,  327,  647,  328,  647,  647,
1704       829,  329,  644,  644,  644,  681,  330,  331,  321,  322,
1705       259,  322,  321,  321,  321,  321,  321,  321,  321,  323,
1706       321,  321,  321,  678,  321,  325,  321,  326,  321,  358,
1707
1708       259,  358,  259,  259,  259,  259,  259,  259,  743,  358,
1709       259,  358,  358,  259,  358,  360,  730, 1727,  335,  671,
1710       648,  335,  734,  321,  321,  359,  724,  723,  359,  644,
1711       644,  644,  327,  727,  328,  681,  647,  735,  329,  644,
1712       644,  644,  749,  330,  331,  337,  338,  259,  338,  337,
1713       337,  337,  337,  337,  337,  337,  339,  337,  337,  337,
1714       681,  337,  341,  337,  342,  337,  358,  259,  358,  358,
1715       259,  358,  259,  259,  259,  919,  259,  259,  259,  358,
1716       259,  358,  361, 1461, 1728,  361,  883,  901,  362,  970,
1717       337,  337,  362, 1737,  709,  363, 1462,  343,  644,  644,
1718
1719       644,  884,  749,  344,  644,  644,  644,  644,  644,  644,
1720       829,  968,  345,  337,  338,  259,  338,  337,  337,  337,
1721       337,  337,  337,  337,  339,  337,  337,  337,  961,  337,
1722       341,  337,  342,  337,  358,  259,  358,  358,  259,  358,
1723       358,  259,  358, 1739,  259,  259,  259,  259,  259,  259,
1724       363, 1740,  902,  364,  681,  919,  364,  648,  337,  337,
1725       365, 1750,  681,  365,  754,  343,  644,  644,  644,  971,
1726      1751,  344,  843,  647,  644,  644,  644,  644,  644,  644,
1727       345,  349,  350,  259,  350,  349,  349,  349,  349,  349,
1728       349,  349,  351,  349,  349,  349, 1756,  349,  353,  349,
1729
1730       354,  349,  358,  259,  358,  358,  259,  358,  259,  259,
1731       259, 1759,  259,  259,  259,  358,  259,  358,  361,  648,
1732       670,  361,  648, 1760,  366,  876,  349,  349,  366,  759,
1733      1766,  364,  644,  644,  644,  647,  767,  355,  647,  644,
1734       644,  644,  644,  644,  644, 1767,  356,  349,  350,  259,
1735       350,  349,  349,  349,  349,  349,  349,  349,  351,  349,
1736       349,  349,  853,  349,  353,  349,  354,  349,  358,  259,
1737       358,  358,  259,  358,  358,  259,  358,  681,  259,  259,
1738       259,  259,  259,  259,  364,  768, 1768,  367,  709,  961,
1739       367,  859,  349,  349,  368,  648, 1769,  368,  358,  259,
1740
1741       358, 1770,  678,  355,  358,  259,  358,  259,  259,  259,
1742       670,  647,  356,  968,  369,  259,  259,  259,  901, 1771,
1743       369,  961,  648,  370,  358,  259,  358,  358,  259,  358,
1744       732,  370,  358,  259,  358,  358,  259,  358,  647,  670,
1745       367, 1779,  969,  367, 1782,  969,  733, 1116,  371,  720,
1746      1783,  371,  372,  373,  259,  373,  372,  372,  372,  372,
1747       372,  372,  372,  374,  372,  372,  372, 1639,  372,  376,
1748       372,  377,  372,  383,  259,  383,  383,  259,  383,  259,
1749       259,  259, 1003,  259,  259,  259, 1004,  736, 1786,  384,
1750      1788,  648,  384,  648,  648,  335, 1790,  372,  372,  335,
1751
1752       774,  790,  378,  726,  644,  644,  644,  647,  379,  647,
1753       647, 1791,  380,  644,  644,  644, 1793, 1794,  381,  372,
1754       373,  259,  373,  372,  372,  372,  372,  372,  372,  372,
1755       374,  372,  372,  372, 1795,  372,  376,  372,  377,  372,
1756       383,  259,  383,  383,  259,  383,  383,  259,  383,  903,
1757       383,  259,  383, 1800, 1803,  787,  384,  648,  648,  384,
1758       904, 1804,  385,  905,  372,  372,  385,  788,  789,  378,
1759       644,  644,  644,  647,  647,  379,  644,  644,  644,  380,
1760       644,  644,  644, 1805, 1807,  381,  386,  387,  259,  387,
1761       386,  386,  386,  386,  386,  386,  386,  388,  386,  386,
1762
1763       386, 1810,  386,  390,  386,  391,  386,  396,  259,  396,
1764       396,  259,  396,  259,  259,  259,  903,  259,  259,  259,
1765      1116,  648, 1811,  397, 1438, 1813,  397,  904,  800,  335,
1766       918,  386,  386,  335,  648,  648,  392,  647,  644,  644,
1767       644,  810,  393,  644,  644,  644,  644,  644,  644, 1817,
1768       647,  647, 1818,  394,  386,  387,  259,  387,  386,  386,
1769       386,  386,  386,  386,  386,  388,  386,  386,  386, 1819,
1770       386,  390,  386,  391,  386,  396,  259,  396,  396,  259,
1771       396,  396,  259,  396, 1821,  396,  259,  396,  644,  644,
1772       644,  397,  648,  648,  397,  648, 1642,  398, 1832,  386,
1773
1774       386,  398,  815, 1833,  392,  644,  644,  644,  647,  647,
1775       393,  647,  644,  644,  644,  644,  644,  644,  644,  644,
1776       644,  394,  399,  400,  259,  400,  399,  399,  399,  399,
1777       399,  399,  399,  401,  399,  399,  399, 1834,  399,  403,
1778       399,  404,  399,  408,  259,  408,  408,  259,  408,  419,
1779       259,  419, 1836,  419,  259,  419,  433,  259,  433,  409,
1780       648,  648,  409,  648, 1837,  420, 1838,  399,  399,  420,
1781       821, 1839,  434,  644,  644,  644,  647,  647,  405,  647,
1782       644,  644,  644,  406,  399,  400,  259,  400,  399,  399,
1783       399,  399,  399,  399,  399,  401,  399,  399,  399, 1840,
1784
1785       399,  403,  399,  404,  399,  433,  259,  433,  259,  259,
1786       259,  259,  259,  259, 1841,  433,  259,  433,  433,  259,
1787       433,  434, 1842, 1843,  435, 1844, 1845,  435,  648,  399,
1788       399,  434, 1847, 1848,  434,  848,  835,  644,  644,  644,
1789       405,  644,  644,  644,  647,  406,  410,  411,  259,  411,
1790       410,  410,  410,  410,  410,  410,  410,  412,  410,  410,
1791       410, 1849,  410,  414,  410,  415,  410,  433,  259,  433,
1792       433,  259,  433,  447,  259,  447, 1850,  447,  259,  447,
1793       464,  259,  464,  436,  836, 1853,  436, 1116,  681,  448,
1794       648,  410,  410,  448, 1856,  648,  465,  644,  644,  644,
1795
1796       644,  644,  644,  644,  644,  644,  647,  416,  644,  644,
1797       644,  647, 1829,  417,  410,  411,  259,  411,  410,  410,
1798       410,  410,  410,  410,  410,  412,  410,  410,  410, 1857,
1799       410,  414,  410,  415,  410,  464,  259,  464,  479,  259,
1800       479,  479,  259,  479, 1858,  495,  259,  495,  495,  259,
1801       495,  465, 1859, 1860,  480, 1861, 1865,  480,  648,  410,
1802       410,  496, 1866, 1868,  496,  644,  644,  644,  644,  644,
1803       644,  644,  644,  644,  647,  416,  644,  644,  644,  867,
1804      1869,  417,  421,  422,  259,  422,  421,  421,  421,  421,
1805       421,  421,  421,  423,  421,  421,  421, 1870,  421,  425,
1806
1807       421,  426,  421,  506,  259,  506,  506,  259,  506,  518,
1808       259,  518,  921,  518,  259,  518,  868, 1872, 1885,  507,
1809       648,  648,  507,  922, 1886,  519,  905,  421,  421,  519,
1810       427,  709,  428,  644,  644,  644,  647,  647,  429,  644,
1811       644,  644,  644,  644,  644,  430, 1887, 1888,  431,  421,
1812       422,  259,  422,  421,  421,  421,  421,  421,  421,  421,
1813       423,  421,  421,  421, 1889,  421,  425,  421,  426,  421,
1814       531,  259,  531,  531,  259,  531,  259,  259,  259,  921,
1815       259,  259,  259, 1892,  648, 1893,  532, 1894,  648,  532,
1816       922,  872,  335,  918,  421,  421,  335,  427, 1116,  428,
1817
1818       647,  644,  644,  644,  647,  429,  644,  644,  644,  644,
1819       644,  644,  430, 1895, 1118,  431,  437,  438,  259,  438,
1820       437,  437,  437,  437,  437,  437,  437,  439,  437,  437,
1821       437, 1900,  437,  441,  437,  442,  437,  531,  259,  531,
1822       531,  259,  531,  531,  259,  531, 1908,  531,  259,  531,
1823       543,  259,  543,  532, 1909, 1916,  532,  648,  911,  533,
1824      1920,  437,  437,  533,  881,  912,  544,  443,  644,  644,
1825       644,  913,  444,  647,  887,  887,  887,  887,  887,  887,
1826      1922, 1120, 1928, 1934,  445,  437,  438,  259,  438,  437,
1827       437,  437,  437,  437,  437,  437,  439,  437,  437,  437,
1828
1829      1935,  437,  441,  437,  442,  437,  543,  259,  543,  259,
1830       259,  259,  259,  259,  259,  903,  543,  259,  543,  543,
1831       259,  543,  544, 1936, 1937,  545,  922,  924,  545,  918,
1832       437,  437,  544,  888,  912,  544,  443,  924,  911,  924,
1833       925,  444, 1950, 1956,  912,  912,  912, 1133, 1133, 1133,
1834       913,  925,  949,  445,  449,  450,  259,  450,  449,  449,
1835       449,  449,  449,  449,  449,  451,  449,  449,  449,  452,
1836       449,  453,  449,  454,  449,  452,  452,  452,  452,  452,
1837       452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
1838       452,  452,  452,  452,  452,  452,  452,  452,  452,  449,
1839
1840       449,  452,  455,  456,  457,  452,  452,  452,  452,  452,
1841       458,  452,  452,  459,  452,  452,  452,  460,  452,  461,
1842       462,  452,  452,  452,  452,  452,  452,  452,  466,  467,
1843       259,  467,  466,  466,  466,  466,  466,  466,  466,  468,
1844       466,  466,  466, 1960,  466,  470,  466,  471,  466,  543,
1845       259,  543,  543,  259,  543,  557,  259,  557, 1963,  557,
1846       259,  557,  259,  259,  259,  546, 1965, 1966,  546,  911,
1847      1473,  558, 1473,  466,  466,  558,  912,  472,  545, 1133,
1848      1133, 1133,  949, 1462,  473, 1497, 1968,  474, 1155, 1155,
1849      1155,  475, 1969,  476,  477,  466,  467,  259,  467,  466,
1850
1851       466,  466,  466,  466,  466,  466,  468,  466,  466,  466,
1852      1970,  466,  470,  466,  471,  466,  259,  259,  259,  557,
1853       259,  557,  557,  259,  557, 1974,  557,  259,  557,  557,
1854       259,  557,  545, 1977, 1979,  558, 1986, 1994,  558, 1279,
1855       466,  466,  559, 1134,  472,  559, 1168, 1168, 1168, 1280,
1856      1169,  473, 1134, 1170,  474, 1995, 1281, 1996,  475, 1997,
1857       476,  477,  481,  482,  259,  482,  481,  481,  481,  481,
1858       481,  481,  481,  483,  481,  481,  481, 1999,  481,  485,
1859       481,  486,  481,  569,  259,  569,  569,  259,  569,  580,
1860       259,  580, 2013,  580,  259,  580,  931,  931,  931,  570,
1861
1862      2017, 2018,  570, 1116, 2019,  581, 2022,  481,  481,  581,
1863       487,  488,  489,  932, 2023, 1178, 1178, 1178,  490, 1179,
1864      2010,  491, 1180, 2025, 2026,  492, 1642, 2027,  493,  481,
1865       482,  259,  482,  481,  481,  481,  481,  481,  481,  481,
1866       483,  481,  481,  481, 2028,  481,  485,  481,  486,  481,
1867       259,  259,  259,  259,  259,  259,  580,  259,  580, 2029,
1868       580,  259,  580,  939,  939,  939,  545, 2030, 2011,  545,
1869      2033, 2020,  581, 2034,  481,  481,  581,  487,  488,  489,
1870       940, 2037, 1201, 1201, 1201,  490, 1202, 2021,  491, 1203,
1871      2038, 2039,  492, 1642, 2040,  493,  497,  498,  259,  498,
1872
1873       497,  497,  497,  497,  497,  497,  497,  499,  497,  497,
1874       497, 2041,  497,  501,  497,  502,  497,  580,  259,  580,
1875       580,  259,  580,  593,  259,  593, 2012,  593,  259,  593,
1876       955,  955,  955,  582, 2043, 2044,  582, 2047, 2050,  594,
1877      2054,  497,  497,  594, 2055, 2058,  503,  956, 1155, 1155,
1878      1155, 2059,  504,  497,  498,  259,  498,  497,  497,  497,
1879       497,  497,  497,  497,  499,  497,  497,  497, 2060,  497,
1880       501,  497,  502,  497,  259,  259,  259,  259,  259,  259,
1881       593,  259,  593, 2056,  593,  259,  593,  973,  973,  973,
1882       545, 2057, 2063,  545, 2061, 2067,  594, 2068,  497,  497,
1883
1884       594, 2071, 2062,  503,  974, 1656, 1656, 1656, 2073,  504,
1885       508,  509,  259,  509,  508,  508,  508,  508,  508,  508,
1886       508,  510,  508,  508,  508, 2089,  508,  512,  508,  513,
1887       508,  593,  259,  593,  593,  259,  593,  608,  259,  608,
1888      2090,  608,  259,  608,  259,  259,  259,  595, 2069, 2069,
1889       595, 1657, 2020,  609, 2091,  508,  508,  609, 2092,  514,
1890       610, 1133, 1133, 1133, 2070, 2021,  515, 2093, 2070,  516,
1891       508,  509,  259,  509,  508,  508,  508,  508,  508,  508,
1892       508,  510,  508,  508,  508, 2094,  508,  512,  508,  513,
1893       508,  259,  259,  259,  608,  259,  608,  608,  259,  608,
1894
1895      2096,  608,  259,  608,  608,  259,  608,  610, 2100, 2106,
1896       609, 2107, 2108,  609, 2122,  508,  508,  611, 2126,  514,
1897       611, 1155, 1155, 1155, 2127, 1209,  515, 2128, 2130,  516,
1898       520,  521,  259,  521,  520,  520,  520,  520,  520,  520,
1899       520,  522,  520,  520,  520, 2134,  520,  524,  520,  525,
1900       520,  620,  259,  620,  620,  259,  620,  630,  259,  630,
1901      2138,  630,  259,  630,  259,  259,  259,  621, 2139, 2140,
1902       621, 2141, 2142,  631, 2145,  520,  520,  631, 2152,  526,
1903       335, 1659, 1659, 1659, 2154, 1209,  527, 2164, 2165,  528,
1904      1663, 1663, 1663, 1666, 1666, 1666,  529,  520,  521,  259,
1905
1906       521,  520,  520,  520,  520,  520,  520,  520,  522,  520,
1907       520,  520, 2166,  520,  524,  520,  525,  520,  259,  259,
1908       259,  630,  259,  630,  630,  259,  630, 1660,  630,  259,
1909       630,  630,  259,  630,  335, 2167, 2169,  631, 2175, 1116,
1910       631,  720,  520,  520,  632, 2172,  526,  632, 1221, 1221,
1911      1221,  728, 1222,  527, 2181, 1223,  528, 1676, 1676, 1676,
1912      1699, 1699, 1699,  529,  534,  535,  259,  535,  534,  534,
1913       534,  534,  534,  534,  534,  536,  534,  534,  534,  729,
1914       534,  538,  534,  539,  534,  642,  259,  642,  642,  259,
1915       642, 2182, 1642,  681,  980,  980,  980,  675, 1129, 1129,
1916
1917      1129,  643, 2183, 2184,  643, 2187, 2189, 3224, 2190,  534,
1918       534,  981,  985,  985,  985,  540, 1131,  678, 1231, 1231,
1919      1231, 2191, 1232, 2173, 2195, 1233, 1711, 1711, 1711,  986,
1920       541,  534,  535,  259,  535,  534,  534,  534,  534,  534,
1921       534,  534,  536,  534,  534,  534,  679,  534,  538,  534,
1922       539,  534,  680,  997,  997,  997, 1006, 1006, 1006,  681,
1923      1656, 1656, 1656,  682, 1008, 1008, 1008, 1014, 1014, 1014,
1924       998, 2200, 1712, 1007, 2202, 2203,  534,  534, 1017, 1017,
1925      1017, 1009,  540, 2204, 1015, 1239, 1239, 1239, 1642, 1240,
1926      2208, 2214, 1241, 2215, 2216, 1018, 2217,  541,  547,  548,
1927
1928       259,  548,  547,  547,  547,  547,  547,  547,  547,  549,
1929       547,  547,  547, 2218,  547,  551,  547,  552,  547, 1029,
1930      1029, 1029, 1031, 1031, 1031, 1043, 1043, 1043, 1051, 1051,
1931      1051, 1056, 1056, 1056, 2174, 2219, 1030, 2220, 2221, 1032,
1932      2222, 2223, 1044,  547,  547, 1052, 2229, 2230, 1057,  553,
1933      2231, 2232,  554, 1256, 1256, 1256, 2244, 1257, 2245, 2250,
1934      1258, 1713, 1713, 1713,  555,  547,  548,  259,  548,  547,
1935       547,  547,  547,  547,  547,  547,  549,  547,  547,  547,
1936      2251,  547,  551,  547,  552,  547, 1062, 1062, 1062, 1082,
1937      1082, 1082, 1106, 1106, 1106, 1110, 1110, 1110, 2253, 1129,
1938
1939      1129, 1129, 2254, 1063, 2258, 2259, 1083, 1660, 2260, 1107,
1940       547,  547, 1111,  931,  931,  931,  553, 1131, 2246,  554,
1941      1268, 1268, 1268, 2266, 1269, 2267, 2247, 1270, 2268, 2269,
1942       932,  555,  560,  561,  259,  561,  560,  560,  560,  560,
1943       560,  560,  560,  562,  560,  560,  560, 2272,  560,  564,
1944       560,  565,  560, 1163, 1163, 1163, 2277, 1132, 1163, 1163,
1945      1163, 1173, 1173, 1173, 1173, 1173, 1173,  939,  939,  939,
1946      2281, 1165, 1659, 1659, 1659, 2282, 1165,  560,  560, 1175,
1947      2287, 2288, 1175,  566,  940, 1659, 1659, 1659,  567,  560,
1948       561,  259,  561,  560,  560,  560,  560,  560,  560,  560,
1949
1950       562,  560,  560,  560, 2289,  560,  564,  560,  565,  560,
1951      1181, 1181, 1181, 1184, 1184, 1184, 2290, 2292, 1166, 1189,
1952      1189, 1189, 2302, 1189, 1189, 1189, 2313, 1182, 1176, 2314,
1953      1185, 1802, 2315, 2319,  560,  560, 1642, 1191, 2320, 2321,
1954       566, 1191, 1846, 1846, 1846,  567,  571,  572,  259,  572,
1955       571,  571,  571,  571,  571,  571,  571,  573,  571,  571,
1956       571, 2324,  571,  575,  571,  576,  571, 1197, 1197, 1197,
1957      1192, 1197, 1197, 1197, 2328, 2248,  955,  955,  955, 2307,
1958      1205, 1205, 1205, 2249, 2329, 1199,  973,  973,  973, 1199,
1959      2330,  571,  571,  956,  980,  980,  980,  577, 1207, 2331,
1960
1961      1271, 1271, 1271,  974, 1272, 2332, 2333, 1273, 1663, 1663,
1962      1663,  981,  578,  571,  572,  259,  572,  571,  571,  571,
1963       571,  571,  571,  571,  573,  571,  571,  571, 2334,  571,
1964       575,  571,  576,  571, 2335, 1200, 1205, 1205, 1205, 1226,
1965      1226, 1226, 1226, 1226, 1226, 1235, 1235, 1235, 1235, 1235,
1966      1235,  985,  985,  985, 1207, 1873, 2336, 1228,  571,  571,
1967      1228, 1874, 2337, 1237,  577, 1875, 1237, 2283,  986, 1876,
1968      1282, 1282, 1282, 1208, 1283, 2284, 1642, 1284, 2352,  578,
1969       583,  584,  259,  584,  583,  583,  583,  583,  583,  583,
1970       583,  585,  583,  583,  583, 2353,  583,  587,  583,  588,
1971
1972       583, 1243, 1243, 1243, 1249, 1249, 1249, 2354, 1229, 1243,
1973      1243, 1243, 2285, 2355, 1238, 1249, 1249, 1249, 2360, 1245,
1974      2286, 2361, 1251, 2308, 2362,  583,  583, 1245,  997,  997,
1975       997,  589, 2363, 1251,  590, 1286, 1286, 1286, 2364, 1287,
1976      2365, 2366, 1288, 2369, 2370,  998,  591,  583,  584,  259,
1977       584,  583,  583,  583,  583,  583,  583,  583,  585,  583,
1978       583,  583, 2373,  583,  587,  583,  588,  583, 2374, 2379,
1979      1246, 1261, 1261, 1261, 2380, 2381, 1261, 1261, 1261, 2382,
1980      1252, 2391, 1006, 1006, 1006, 1008, 1008, 1008, 2392, 1263,
1981      2393, 2394,  583,  583, 1263, 1014, 1014, 1014,  589, 1007,
1982
1983      2396,  590, 1009, 1302, 1302, 1302, 2398, 1303, 2422, 1642,
1984      1304, 2423, 1015,  591,  596,  597,  259,  597,  596,  596,
1985       596,  596,  596,  596,  596,  598,  596,  596,  596, 2425,
1986       596,  600,  596,  601,  596, 2426, 2427, 1264, 1274, 1274,
1987      1274, 2418, 2428, 1274, 1274, 1274, 1017, 1017, 1017, 1289,
1988      1289, 1289, 1298, 1298, 1298, 2432, 1276, 2433, 2434,  596,
1989       596, 1276, 2435, 1018, 2436, 1642, 1290,  602, 2437,  603,
1990      1300, 2438,  604, 1666, 1666, 1666,  605, 1851, 1851, 1851,
1991       606,  596,  597,  259,  597,  596,  596,  596,  596,  596,
1992       596,  596,  598,  596,  596,  596, 2439,  596,  600,  596,
1993
1994       601,  596, 2419, 2440, 1277, 1298, 1298, 1298, 1029, 1029,
1995      1029, 1031, 1031, 1031, 1305, 1305, 1305, 2441, 1306, 2442,
1996      2444, 1307, 2445, 1300, 2446, 1030,  596,  596, 1032, 1308,
1997      1308, 1308, 2448, 2447,  602, 2449,  603, 2450, 2451,  604,
1998      2452, 1852, 2455,  605, 2456, 2457, 1309,  606,  612,  613,
1999       259,  613,  612,  612,  612,  612,  612,  612,  612,  614,
2000       612,  612,  612, 1301,  612,  616,  612,  617,  612, 1043,
2001      1043, 1043, 1322, 1322, 1322, 2458, 1323, 2459, 2461, 1324,
2002      2465, 2466, 3224, 3224, 3224, 2467, 1044, 3224, 3224, 3224,
2003      3224, 3224, 3224,  612,  612, 3224, 3224, 3224, 2468, 3224,
2004
2005      2472, 1334, 1334, 1334, 3224, 1335, 2453, 3224, 1336, 1342,
2006      1342, 1342, 3224, 1343, 2473, 2454, 1344,  618,  612,  613,
2007       259,  613,  612,  612,  612,  612,  612,  612,  612,  614,
2008       612,  612,  612, 1310,  612,  616,  612,  617,  612, 1311,
2009      1314, 1314, 1314, 2477, 2480, 1312, 2481, 1313, 1676, 1676,
2010      1676, 1325, 1325, 1325, 1329, 1329, 1329, 2484, 1316, 1329,
2011      1329, 1329, 2496,  612,  612, 1314, 1314, 1314, 1326, 1051,
2012      1051, 1051, 1331, 2497, 1351, 1351, 1351, 1331, 1352, 2500,
2013      2501, 1353, 2521, 1316, 2522, 2523, 1052,  618,  622,  623,
2014       259,  623,  622,  622,  622,  622,  622,  622,  622,  624,
2015
2016       622,  622,  622, 2524,  622,  626,  622,  627,  622, 2525,
2017      1332, 2534, 1317, 1337, 1337, 1337, 2535, 1337, 1337, 1337,
2018      1056, 1056, 1056, 1346, 1346, 1346, 1062, 1062, 1062, 1116,
2019      2536, 1339, 2537,  622,  622, 1339, 1642, 1057, 1699, 1699,
2020      1699, 1348, 2538, 1063,  628,  622,  623,  259,  623,  622,
2021       622,  622,  622,  622,  622,  622,  624,  622,  622,  622,
2022      2539,  622,  626,  622,  627,  622, 1357, 1357, 1357, 2518,
2023      1346, 1346, 1346, 2519, 1357, 1357, 1357, 2540, 1340, 1361,
2024      1361, 1361, 2541, 2542, 1359, 1711, 1711, 1711, 1348, 2543,
2025       622,  622, 1359, 1383, 1383, 1383, 1362, 1384, 2544, 2546,
2026
2027      1385,  628,  633,  634,  259,  634,  633,  633,  633,  633,
2028       633,  633,  633,  635,  633,  633,  633, 1349,  633,  637,
2029       633,  638,  633, 1363, 1363, 1363, 1366, 1366, 1366, 1360,
2030      2547, 1378, 1378, 1378, 3224, 3224, 3224, 1366, 1366, 1366,
2031      1364, 1386, 1386, 1386, 1368, 2548, 2549,  633,  633, 1380,
2032      2550, 3224, 1371, 1371, 1371, 1368, 2551, 2552,  639, 1388,
2033      1423, 1423, 1423, 2553, 1424, 2554, 2555, 1425, 2556, 1372,
2034      2557,  640,  633,  634,  259,  634,  633,  633,  633,  633,
2035       633,  633,  633,  635,  633,  633,  633, 1642,  633,  637,
2036       633,  638,  633, 1365, 2558, 3224, 3224, 3224, 1369, 1375,
2037
2038      1375, 1375, 3224, 3224, 3224, 2559, 1378, 1378, 1378, 1082,
2039      1082, 1082, 3224, 1386, 1386, 1386, 1376,  633,  633, 3224,
2040      1390, 1390, 1390, 2560, 1380, 2561, 1083, 2562,  639, 2564,
2041      2520, 1388, 2572, 1392, 1392, 1392, 2573, 1391, 1394, 1394,
2042      1394,  640,  648, 1381, 2574, 1373, 1394, 1394, 1394,  663,
2043      1393, 2578, 1398, 1398, 1398, 2613, 1396, 2615,  647,  664,
2044      1374, 1377, 2616, 2617, 1396, 3224, 3224, 3224, 1389, 1399,
2045      1116, 2621, 1402, 1402, 1402, 2622, 2625, 1404, 1404, 1404,
2046      2626, 2629, 3224, 1106, 1106, 1106,  665,  666,  667, 1403,
2047      1713, 1713, 1713,  668,  669, 1406, 2630,  670,  671, 2610,
2048
2049      1107,  672, 2631,  673,  674,  675,  648, 1404, 1404, 1404,
2050      1413, 1413, 1413,  720, 2528, 1400, 2531, 1397, 1413, 1413,
2051      1413, 2632,  647,  721, 2529, 1406, 2532, 2530, 1415, 2533,
2052      1401, 1419, 1419, 1419, 1877, 2633, 1415, 1419, 1419, 1419,
2053      1878, 1426, 1426, 1426, 1879, 1426, 1426, 1426, 1880, 1421,
2054       665,  722,  676, 2634, 2635, 1421, 2636,  723,  669, 1428,
2055      2637,  724,  671, 1428, 2639,  725, 1642,  726,  727,  675,
2056      1110, 1110, 1110, 1430, 1430, 1430, 2640, 1431, 1407, 2641,
2057      1432, 2642, 1416, 2643, 1434, 1434, 1434, 1111, 2644, 1434,
2058      1434, 1434, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
2059
2060      1129, 1422, 1436, 1475, 1475, 1475, 1429, 1436, 2611, 2645,
2061      1131, 2646, 2647, 1131, 2648, 2649, 1131, 1163, 1163, 1163,
2062      1476, 1163, 1163, 1163, 1163, 1163, 1163, 1478, 1478, 1478,
2063      1168, 1168, 1168, 2650, 1169, 1165, 2651, 1170, 2652, 1165,
2064      2653, 1642, 1165, 2655, 1479, 1446, 3224, 3224, 3224, 1173,
2065      1173, 1173, 2663, 1437, 1173, 1173, 1173, 1173, 1173, 1173,
2066      1181, 1181, 1181, 3224, 1178, 1178, 1178, 1175, 1179, 2664,
2067      2665, 1180, 1175, 1477, 2666, 1175, 2683, 1182, 1484, 1484,
2068      1484, 2684, 1485, 2612, 2623, 1486, 1487, 1487, 1487, 1184,
2069      1184, 1184, 1489, 1489, 1489, 2685, 1490, 2624, 2686, 1491,
2070
2071      1493, 1493, 1493, 1488, 1482, 2687, 1185, 1480, 1189, 1189,
2072      1189, 1189, 1189, 1189, 1189, 1189, 1189, 1494, 1499, 1499,
2073      1499, 1197, 1197, 1197, 2688, 2699, 1191, 1116, 2701, 1191,
2074      2702, 1642, 1191, 2627, 2703, 1500, 1197, 1197, 1197, 1199,
2075      1197, 1197, 1197, 1201, 1201, 1201, 2628, 1202, 2704, 2691,
2076      1203, 1205, 1205, 1205, 1199, 1205, 1205, 1205, 1199, 1504,
2077      1504, 1504, 2692, 1221, 1221, 1221, 2696, 1222, 2705, 1207,
2078      1223, 2706, 2707, 1207, 1496, 2695, 2708, 1505, 1519, 1519,
2079      1519, 1226, 1226, 1226, 1226, 1226, 1226, 1502, 1226, 1226,
2080      1226, 1235, 1235, 1235, 2693, 1520, 1231, 1231, 1231, 1228,
2081
2082      1232, 2709, 1228, 1233, 2710, 2713, 1228, 2694, 2714, 1237,
2083      1235, 1235, 1235, 1235, 1235, 1235, 1239, 1239, 1239, 2715,
2084      1240, 2716, 2717, 1241, 1525, 1525, 1525, 2718, 1237, 2719,
2085      2720, 1237, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
2086      1243, 1526, 1528, 1528, 1528, 3224, 3224, 3224, 2722, 1521,
2087      1245, 2723, 2724, 1245, 2725, 2726, 1245, 2727, 2728, 1529,
2088      2729, 2730, 3224, 1249, 1249, 1249, 1249, 1249, 1249, 1249,
2089      1249, 1249, 2731, 1530, 1524, 1534, 1534, 1534, 1256, 1256,
2090      1256, 1251, 1257, 2732, 1251, 1258, 2733, 1251, 1261, 1261,
2091      1261, 2734, 1535, 1261, 1261, 1261, 1261, 1261, 1261, 1541,
2092
2093      1541, 1541, 1274, 1274, 1274, 1527, 1263, 2735, 1268, 1268,
2094      1268, 1263, 1269, 2736, 1263, 1270, 1542, 1271, 1271, 1271,
2095      1276, 1272, 2742, 2743, 1273, 1274, 1274, 1274, 1274, 1274,
2096      1274, 2744, 1282, 1282, 1282, 1531, 1283, 2745, 2746, 1284,
2097      1548, 1548, 1548, 1276, 2760, 2752, 1276, 1286, 1286, 1286,
2098      2761, 1287, 2762, 2763, 1288, 2753, 2764, 1549, 1289, 1289,
2099      1289, 1538, 1550, 1550, 1550, 2765, 1551, 2769, 2770, 1552,
2100      1298, 1298, 1298, 2771, 2772, 1290, 1298, 1298, 1298, 1298,
2101      1298, 1298, 1302, 1302, 1302, 2596, 1303, 2782, 1300, 1304,
2102      1308, 1308, 1308, 1543, 1300, 2597, 2754, 1300, 1305, 1305,
2103
2104      1305, 2598, 1306, 2756, 2758, 1307, 2755, 1309, 1561, 1561,
2105      1561, 1116, 1562, 2757, 2759, 1563, 1314, 1314, 1314, 1314,
2106      1314, 1314, 1314, 1314, 1314, 1322, 1322, 1322, 2599, 1323,
2107      2783, 2784, 1324, 2785, 1316, 2786, 2787, 1316, 2600, 2788,
2108      1316, 1325, 1325, 1325, 2601, 2773, 1560, 1573, 1573, 1573,
2109      2789, 1574, 2793, 2794, 1575, 1329, 1329, 1329, 1326, 1329,
2110      1329, 1329, 1329, 1329, 1329, 1334, 1334, 1334, 2795, 1335,
2111      1568, 2796, 1336, 1331, 1337, 1337, 1337, 1331, 2797, 2798,
2112      1331, 1337, 1337, 1337, 1337, 1337, 1337, 1342, 1342, 1342,
2113      2800, 1343, 1339, 2801, 1344, 2802, 1346, 1346, 1346, 1339,
2114
2115      2803, 2804, 1339, 1346, 1346, 1346, 1346, 1346, 1346, 1357,
2116      1357, 1357, 2805, 1578, 1348, 1351, 1351, 1351, 2806, 1352,
2117      2807, 1348, 1353, 2808, 1348, 2809, 2813, 1359, 1357, 1357,
2118      1357, 1357, 1357, 1357, 2814, 1361, 1361, 1361, 1589, 1589,
2119      1589, 2815, 1590, 2818, 2823, 1591, 1359, 2824, 2825, 1359,
2120      2826, 1580, 1362, 2827, 2828, 1583, 1363, 1363, 1363, 1592,
2121      1592, 1592, 2829, 1593, 2830, 2831, 1594, 1366, 1366, 1366,
2122      1366, 1366, 1366, 1364, 1366, 1366, 1366, 1371, 1371, 1371,
2123      1598, 1598, 1598, 2832, 1599, 1368, 2833, 1600, 1368, 2834,
2124      2836, 1588, 1368, 2837, 1372, 1375, 1375, 1375, 1603, 1603,
2125
2126      1603, 2838, 1604, 2839, 2846, 1605, 1378, 1378, 1378, 1378,
2127      1378, 1378, 1376, 1378, 1378, 1378, 1383, 1383, 1383, 1116,
2128      1384, 2847, 2848, 1385, 1380, 2849, 2850, 1380, 1386, 1386,
2129      1386, 1380, 1386, 1386, 1386, 1386, 1386, 1386, 1390, 1390,
2130      1390, 1596, 1392, 1392, 1392, 2851, 1388, 1610, 1610, 1610,
2131      1388, 1611, 2852, 1388, 1612, 1391, 1613, 1613, 1613, 1393,
2132      1614, 2853, 2840, 1615, 1394, 1394, 1394, 1394, 1394, 1394,
2133      1394, 1394, 1394, 1398, 1398, 1398, 2854, 1607, 2855, 1617,
2134      1617, 1617, 1396, 1618, 2856, 1396, 1619, 2857, 1396, 2858,
2135      1399, 1402, 1402, 1402, 2859, 1609, 1622, 1622, 1622, 2862,
2136
2137      1623, 2863, 2864, 1624, 1404, 1404, 1404, 2865, 1403, 1404,
2138      1404, 1404, 1404, 1404, 1404, 2866, 1627, 1627, 1627, 1413,
2139      1413, 1413, 1406, 1413, 1413, 1413, 2867, 1406, 2868, 2869,
2140      1406, 2870, 1616, 1628, 1413, 1413, 1413, 1415, 1419, 1419,
2141      1419, 1415, 1419, 1419, 1419, 1419, 1419, 1419, 1426, 1426,
2142      1426, 2871, 1415, 1426, 1426, 1426, 1421, 1423, 1423, 1423,
2143      1421, 1424, 2872, 1421, 1425, 2876, 1428, 1426, 1426, 1426,
2144      2883, 1428, 2884, 2885, 1625, 1430, 1430, 1430, 2886, 1431,
2145      2887, 2888, 1432, 2889, 2890, 1428, 1434, 1434, 1434, 1434,
2146      1434, 1434, 1434, 1434, 1434, 1632, 2891, 2892, 1635, 1641,
2147
2148      1641, 1641, 2893, 2894, 1436, 2897, 2898, 1436, 2899, 2900,
2149      1436, 1129, 1129, 1129, 1475, 1475, 1475, 1642, 1643, 1679,
2150      1679, 1679, 2908, 1680, 2909, 1116, 1681, 1636, 2910, 1131,
2151      2903, 1476, 1163, 1163, 1163, 1478, 1478, 1478, 1683, 1683,
2152      1683, 2911, 1684, 2912, 2904, 1685, 1173, 1173, 1173, 2903,
2153      1165, 2913, 1479, 1638, 1484, 1484, 1484, 2914, 1485, 2915,
2154      2906, 1486, 2916, 2917, 1175, 1487, 1487, 1487, 1690, 1690,
2155      1690, 2901, 1691, 2918, 2919, 1692, 2920, 1648, 2921, 1489,
2156      1489, 1489, 1488, 1490, 2922, 2923, 1491, 1493, 1493, 1493,
2157      1682, 2924, 1694, 1694, 1694, 1688, 1695, 2925, 2926, 1696,
2158
2159      1189, 1189, 1189, 2931, 1494, 1499, 1499, 1499, 1701, 1701,
2160      1701, 2936, 1702, 2937, 2938, 1703, 2939, 2940, 1191, 1704,
2161      1704, 1704, 1500, 1197, 1197, 1197, 1504, 1504, 1504, 1721,
2162      1721, 1721, 1519, 1519, 1519, 2927, 1705, 2941, 1723, 1723,
2163      1723, 1199, 1724, 2944, 1505, 1725, 1722, 2928, 2944, 1520,
2164      1698, 1226, 1226, 1226, 2929, 1235, 1235, 1235, 1525, 1525,
2165      1525, 1730, 1730, 1730, 2947, 1731, 2930, 2948, 1732, 1228,
2166      2949, 1116, 1706, 1237, 2903, 1526, 1243, 1243, 1243, 1528,
2167      1528, 1528, 1734, 1734, 1734, 2950, 1735, 2953, 2904, 1736,
2168      1249, 1249, 1249, 2932, 1245, 2903, 1529, 1534, 1534, 1534,
2169
2170      1741, 1741, 1741, 2956, 1742, 2933, 2906, 1743, 1251, 1744,
2171      1744, 1744, 2942, 2965, 1535, 1726, 1746, 1746, 1746, 1729,
2172      1261, 1261, 1261, 1541, 1541, 1541, 1745, 1752, 1752, 1752,
2173      2968, 1753, 2951, 1747, 1754, 2973, 1733, 2954, 1263, 2963,
2174      1542, 1274, 1274, 1274, 1757, 1757, 1757, 1548, 1548, 1548,
2175      2952, 1738, 2955, 1761, 1761, 1761, 2934, 1762, 2964, 1276,
2176      1763, 1758, 1748, 2976, 1549, 1550, 1550, 1550, 2935, 1551,
2177      1642, 1643, 1552, 1764, 1764, 1764, 1298, 1298, 1298, 2977,
2178      1561, 1561, 1561, 2978, 1562, 2944, 1749, 1563, 2980, 2944,
2179      1765, 1773, 1773, 1773, 1300, 3224, 3224, 3224, 3224, 3224,
2180
2181      3224, 3224, 3224, 3224, 1314, 1314, 1314, 1755, 1774, 1780,
2182      1780, 1780, 3224, 2981, 2982, 3224, 2966, 2983, 3224, 1784,
2183      1784, 1784, 1316, 1573, 1573, 1573, 1781, 1574, 2984, 2985,
2184      1575, 1329, 1329, 1329, 2971, 2967, 1785, 1337, 1337, 1337,
2185      2986, 1772, 1346, 1346, 1346, 1776, 1796, 1796, 1796, 1331,
2186      1357, 1357, 1357, 2972, 2987, 1339, 1854, 1854, 1854, 1778,
2187      1348, 2988, 2998, 1797, 2974, 1775, 2999, 3000, 1359, 3001,
2188      3002, 1777, 1589, 1589, 1589, 3003, 1590, 3007, 3008, 1591,
2189      1592, 1592, 1592, 2975, 1593, 3009, 3010, 1594, 1366, 1366,
2190      1366, 3011, 1798, 3012, 3013, 1787, 1378, 1378, 1378, 1792,
2191
2192      3014, 3016, 1855, 1789, 3017, 3018, 1368, 1799, 1598, 1598,
2193      1598, 3019, 1599, 3020, 1380, 1600, 1603, 1603, 1603, 3025,
2194      1604, 3021, 3026, 1605, 1386, 1386, 1386, 1610, 1610, 1610,
2195      3027, 1611, 3028, 3022, 1612, 3023, 1613, 1613, 1613, 3029,
2196      1614, 3030, 1388, 1615, 1394, 1394, 1394, 3024, 1617, 1617,
2197      1617, 3031, 1618, 3032, 1801, 1619, 3033, 1806, 3034, 1622,
2198      1622, 1622, 1396, 1623, 3035, 3036, 1624, 1404, 1404, 1404,
2199      1627, 1627, 1627, 1814, 1814, 1814, 3037, 1815, 3038, 1116,
2200      1816, 1808, 1413, 1413, 1413, 1406, 3040, 1628, 1822, 1822,
2201      1822, 1809, 1419, 1419, 1419, 1426, 1426, 1426, 3041, 3042,
2202
2203      1415, 1826, 1826, 1826, 3039, 1823, 1434, 1434, 1434, 3043,
2204      1421, 3044, 3045, 1428, 1812, 1641, 1641, 1641, 1827, 1129,
2205      1129, 1129, 3046, 3047, 1436, 3048, 1862, 1862, 1862, 3049,
2206      3050, 1820, 3051, 1642, 1679, 1679, 1679, 1131, 1680, 3052,
2207      3053, 1681, 1163, 1163, 1163, 3054, 3055, 1825, 1683, 1683,
2208      1683, 3056, 1684, 3057, 3058, 1685, 1173, 1173, 1173, 1824,
2209      1165, 3059, 1116, 1690, 1690, 1690, 1830, 1691, 1828, 3061,
2210      1692, 1835, 1863, 3062, 1175, 1694, 1694, 1694, 3063, 1695,
2211      3064, 3060, 1696, 1831, 1189, 1189, 1189, 1701, 1701, 1701,
2212      3065, 1702, 3066, 3067, 1703, 1704, 1704, 1704, 3068, 1881,
2213
2214      1881, 1881, 1191, 1882, 3069, 3070, 1883, 1867, 3071, 1864,
2215      3072, 3073, 1705, 1197, 1197, 1197, 1890, 1890, 1890, 1890,
2216      1890, 1890, 1851, 1851, 1851, 1721, 1721, 1721, 1896, 1896,
2217      1896, 1199, 1897, 3074, 3075, 1898, 1723, 1723, 1723, 3076,
2218      1724, 3077, 1722, 1725, 3078, 1871, 1116, 1226, 1226, 1226,
2219      1901, 1901, 1901, 1235, 1235, 1235, 1730, 1730, 1730, 3080,
2220      1731, 3081, 3082, 1732, 1884, 1228, 3079, 1902, 1905, 1905,
2221      1905, 1237, 1243, 1243, 1243, 1734, 1734, 1734, 3083, 1735,
2222      1891, 3084, 1736, 1852, 3085, 1906, 1891, 1249, 1249, 1249,
2223      1245, 1741, 1741, 1741, 1899, 1742, 3086, 3087, 1743, 3088,
2224
2225      1903, 1744, 1744, 1744, 3089, 1251, 1910, 1910, 1910, 3090,
2226      1911, 3091, 3092, 1912, 1746, 1746, 1746, 3093, 1745, 1913,
2227      1913, 1913, 3094, 1914, 3095, 3096, 1915, 1917, 1917, 1917,
2228      3097, 1747, 1919, 1919, 1919, 1752, 1752, 1752, 1904, 1753,
2229      3099, 3100, 1754, 1116, 3101, 1918, 1274, 1274, 1274, 3098,
2230      3102, 1907, 1757, 1757, 1757, 1923, 1923, 1923, 3103, 1924,
2231      3104, 3105, 1925, 3106, 1276, 1926, 1926, 1926, 3107, 1758,
2232      1761, 1761, 1761, 3108, 1762, 3109, 3110, 1763, 1764, 1764,
2233      1764, 3112, 1927, 1929, 1929, 1929, 3113, 1930, 3114, 3115,
2234      1931, 3116, 1921, 3117, 3118, 1765, 1932, 1932, 1932, 1938,
2235
2236      1938, 1938, 1298, 1298, 1298, 1773, 1773, 1773, 1941, 1941,
2237      1941, 3119, 1942, 1933, 3121, 1943, 1939, 1944, 1944, 1944,
2238      1300, 3122, 1774, 3224, 3224, 3224, 1947, 1947, 1947, 1314,
2239      1314, 1314, 3123, 3124, 1945, 1780, 1780, 1780, 3125, 3126,
2240      3224, 3127, 3128, 1948, 1951, 1951, 1951, 1316, 1952, 3131,
2241      1116, 1953, 1781, 1954, 1954, 1954, 1784, 1784, 1784, 1957,
2242      1957, 1957, 3132, 1958, 3111, 3133, 1959, 3134, 1940, 3135,
2243      1955, 3136, 3147, 1785, 1961, 1961, 1961, 1337, 1337, 1337,
2244      1116, 1946, 1346, 1346, 1346, 1796, 1796, 1796, 1116, 1949,
2245      1116, 1116, 1962, 1116, 1116, 1339, 1709, 1971, 1971, 1971,
2246
2247      1348, 1972, 1797, 1708, 1973, 1975, 1975, 1975, 1366, 1366,
2248      1366, 1116, 1980, 1980, 1980, 1982, 1982, 1982, 3224, 3224,
2249      3224, 3145, 3189, 1976, 3137, 1116, 1368, 3138, 1964, 1981,
2250      1967, 3153, 1983, 1116, 3143, 3224, 1378, 1378, 1378, 1386,
2251      1386, 1386, 1394, 1394, 1394, 1989, 1989, 1989, 1991, 1991,
2252      1991, 1404, 1404, 1404, 1380, 3144, 3148, 1388, 1116, 1978,
2253      1396, 1116, 1990, 1116, 1116, 1992, 1814, 1814, 1814, 1406,
2254      1815, 1116, 1116, 1816, 1413, 1413, 1413, 1822, 1822, 1822,
2255      3146, 3139, 1984, 3149, 1116, 1987, 2000, 2000, 2000, 1707,
2256      2001, 1116, 1415, 2002, 1823, 1419, 1419, 1419, 3154, 3155,
2257
2258      1426, 1426, 1426, 1985, 1826, 1826, 1826, 1988, 2005, 2005,
2259      2005, 3140, 2006, 1421, 1700, 2007, 1993, 1697, 1428, 3141,
2260      3142, 1827, 2008, 2008, 2008, 1998, 2014, 2014, 2014, 1129,
2261      1129, 1129, 2024, 2024, 2024, 1846, 1846, 1846, 1693, 1689,
2262      2009, 1116, 1687, 2015, 2031, 2031, 2031, 1131, 1851, 1851,
2263      1851, 2032, 2032, 2032, 2003, 2004, 1854, 1854, 1854, 2035,
2264      2035, 2035, 2036, 2036, 2036, 1862, 1862, 1862, 1163, 1163,
2265      1163, 2045, 2045, 2045, 2048, 2048, 2048, 1189, 1189, 1189,
2266      2052, 2052, 2052, 1197, 1197, 1197, 1165, 1116, 3151, 2046,
2267      2016, 2049, 1881, 1881, 1881, 1191, 1882, 2053, 1116, 1883,
2268
2269      1116, 1199, 2065, 2065, 2065, 1890, 1890, 1890, 2072, 2072,
2270      2072, 2074, 2074, 2074, 1226, 1226, 1226, 3150, 2042, 2066,
2271      1896, 1896, 1896, 1116, 1897, 1116, 1686, 1898, 2075, 2064,
2272      3171, 1116, 1228, 2077, 2077, 2077, 2051, 1901, 1901, 1901,
2273      2079, 2079, 2079, 3172, 2080, 3152, 1116, 2081, 1678, 1677,
2274      2078, 1235, 1235, 1235, 1902, 2083, 2083, 2083, 1905, 1905,
2275      1905, 2085, 2085, 2085, 3156, 2086, 3157, 2076, 2087, 1237,
2276      1249, 1249, 1249, 2084, 1116, 1906, 1910, 1910, 1910, 1116,
2277      1911, 3158, 3165, 1912, 1116, 1913, 1913, 1913, 1251, 1914,
2278      3166, 1116, 1915, 1917, 1917, 1917, 1919, 1919, 1919, 1116,
2279
2280      1274, 1274, 1274, 3190, 2082, 1923, 1923, 1923, 1116, 1924,
2281      1116, 1918, 1925, 1926, 1926, 1926, 3163, 2088, 1276, 2097,
2282      2097, 2097, 1116, 2098, 1116, 3159, 2099, 1929, 1929, 1929,
2283      1927, 1930, 1116, 1116, 1931, 1932, 1932, 1932, 2101, 2101,
2284      2101, 1116, 2102, 3167, 1675, 2103, 2104, 2104, 2104, 1938,
2285      1938, 1938, 1933, 2109, 2109, 2109, 3160, 2110, 2095, 3161,
2286      2111, 3162, 1116, 2105, 3164, 1116, 1939, 1298, 1298, 1298,
2287      1941, 1941, 1941, 1116, 1942, 3183, 3168, 1943, 1944, 1944,
2288      1944, 1116, 2113, 2113, 2113, 1300, 2114, 1116, 1674, 2115,
2289      2116, 2116, 2116, 3179, 3211, 1945, 1947, 1947, 1947, 2118,
2290
2291      2118, 2118, 1116, 2119, 1116, 1673, 2120, 2117, 1314, 1314,
2292      1314, 3173, 1116, 1948, 3177, 1951, 1951, 1951, 2112, 1952,
2293      3199, 3169, 1953, 1954, 1954, 1954, 1316, 2123, 2123, 2123,
2294      1116, 2124, 3180, 1672, 2125, 1957, 1957, 1957, 3170, 1958,
2295      1955, 1116, 1959, 1961, 1961, 1961, 1337, 1337, 1337, 2131,
2296      2131, 2131, 1346, 1346, 1346, 2135, 2135, 2135, 3174, 2121,
2297      1116, 1962, 1116, 1116, 1339, 3175, 2132, 1971, 1971, 1971,
2298      1348, 1972, 2136, 3221, 1973, 1975, 1975, 1975, 2143, 2143,
2299      2143, 1980, 1980, 1980, 2146, 2146, 2146, 1116, 2147, 1116,
2300      1671, 2148, 1116, 1976, 1116, 3176, 2144, 1670, 1981, 3181,
2301
2302      3182, 2137, 1982, 1982, 1982, 2149, 2149, 2149, 1116, 2150,
2303      2129, 1669, 2151, 2133, 1378, 1378, 1378, 1116, 1116, 1983,
2304      1386, 1386, 1386, 1394, 1394, 1394, 1989, 1989, 1989, 2157,
2305      2157, 2157, 1380, 2158, 3184, 3185, 2159, 1116, 1388, 1668,
2306      3186, 1396, 3193, 1990, 1991, 1991, 1991, 2160, 2160, 2160,
2307      3178, 2161, 3194, 1116, 2162, 1404, 1404, 1404, 1413, 1413,
2308      1413, 1992, 3191, 2000, 2000, 2000, 3192, 2001, 1116, 2155,
2309      2002, 1116, 1116, 1406, 3187, 1116, 1415, 1419, 1419, 1419,
2310      2153, 1426, 1426, 1426, 1116, 2005, 2005, 2005, 2156, 2006,
2311      3188, 1667, 2007, 1665, 1664, 1421, 2008, 2008, 2008, 1428,
2312
2313      2014, 2014, 2014, 2176, 2176, 2176, 1662, 2177, 3197, 1661,
2314      2178, 1129, 1129, 1129, 2009, 3200, 1116, 2015, 3195, 3198,
2315      2163, 3201, 3221, 2168, 2180, 2180, 2180, 1116, 2170, 1131,
2316      2185, 2185, 2185, 1116, 2171, 2186, 2186, 2186, 2024, 2024,
2317      2024, 2188, 2188, 2188, 2192, 2192, 2192, 2031, 2031, 2031,
2318      2032, 2032, 2032, 2193, 2193, 2193, 2035, 2035, 2035, 2036,
2319      2036, 2036, 2196, 2196, 2196, 2197, 2197, 2197, 2198, 2198,
2320      2198, 2199, 2199, 2199, 1116, 2179, 1163, 1163, 1163, 2045,
2321      2045, 2045, 3213, 2048, 2048, 2048, 2205, 2205, 2205, 1116,
2322      2206, 1116, 1658, 2207, 1165, 1655, 1116, 2046, 1654, 2194,
2323
2324      2049, 2209, 2209, 2209, 2052, 2052, 2052, 2211, 2211, 2211,
2325      1653, 2212, 1652, 1116, 2213, 1197, 1197, 1197, 1651, 2210,
2326      3196, 2053, 2065, 2065, 2065, 1116, 3202, 2201, 2225, 2225,
2327      2225, 3205, 2226, 1199, 1650, 2227, 2228, 2228, 2228, 2066,
2328      2072, 2072, 2072, 2233, 2233, 2233, 2074, 2074, 2074, 2235,
2329      2235, 2235, 1649, 2236, 3203, 1116, 2237, 1226, 1226, 1226,
2330      2077, 2077, 2077, 2075, 2224, 2239, 2239, 2239, 1116, 2240,
2331      1116, 3207, 2241, 1647, 3214, 1228, 1116, 2078, 2079, 2079,
2332      2079, 1116, 2080, 1116, 1116, 2081, 1235, 1235, 1235, 2234,
2333      3206, 2083, 2083, 2083, 2085, 2085, 2085, 1646, 2086, 1116,
2334
2335      3212, 2087, 1645, 1644, 1237, 1249, 1249, 1249, 2238, 2084,
2336      1274, 1274, 1274, 2097, 2097, 2097, 3208, 2098, 1637, 1634,
2337      2099, 3209, 3204, 1251, 3217, 2101, 2101, 2101, 1276, 2102,
2338      1116, 1633, 2103, 2104, 2104, 2104, 3210, 2242, 2255, 2255,
2339      2255, 1631, 2256, 1116, 1116, 2257, 1630, 2109, 2109, 2109,
2340      2105, 2110, 1629, 1626, 2111, 1298, 1298, 1298, 2243, 2113,
2341      2113, 2113, 3215, 2114, 1621, 2252, 2115, 2116, 2116, 2116,
2342      2262, 2262, 2262, 1300, 2263, 3216, 1116, 2264, 2118, 2118,
2343      2118, 1116, 2119, 1620, 2117, 2120, 1314, 1314, 1314, 2123,
2344      2123, 2123, 3218, 2124, 1608, 1606, 2125, 2270, 2270, 2270,
2345
2346      2131, 2131, 2131, 1602, 1316, 2273, 2273, 2273, 3219, 2274,
2347      1601, 1597, 2275, 3220, 1595, 2271, 1587, 2132, 1586, 2261,
2348      1346, 1346, 1346, 2135, 2135, 2135, 2278, 2278, 2278, 1585,
2349      2279, 1584, 1582, 2280, 1581, 2143, 2143, 2143, 1348, 1579,
2350      2136, 2146, 2146, 2146, 1577, 2147, 1576, 1572, 2148, 1378,
2351      1378, 1378, 2265, 2144, 2149, 2149, 2149, 1571, 2150, 1570,
2352      1569, 2151, 1567, 1386, 1386, 1386, 1566, 1380, 1394, 1394,
2353      1394, 2157, 2157, 2157, 1565, 2158, 1564, 1559, 2159, 1558,
2354      2276, 1388, 1557, 2160, 2160, 2160, 1396, 2161, 1556, 1555,
2355      2162, 1404, 1404, 1404, 1554, 2296, 2296, 2296, 1553, 1547,
2356
2357      2291, 3224, 3224, 3224, 2294, 3224, 3224, 3224, 1546, 1406,
2358      1545, 2295, 2297, 3224, 3224, 3224, 1544, 1540, 3224, 1413,
2359      1413, 1413, 3224, 1419, 1419, 1419, 2304, 2304, 2304, 2293,
2360      3224, 2306, 2306, 2306, 2309, 2309, 2309, 1415, 2176, 2176,
2361      2176, 1421, 2177, 1539, 2305, 2178, 1129, 1129, 1129, 1116,
2362      1537, 1536, 2298, 2180, 2180, 2180, 2311, 2311, 2311, 2312,
2363      2312, 2312, 1533, 1532, 1131, 2185, 2185, 2185, 1523, 2299,
2364      1522, 1518, 2300, 2186, 2186, 2186, 2188, 2188, 2188, 2316,
2365      2316, 2316, 1517, 2303, 2301, 2317, 2317, 2317, 2318, 2318,
2366      2318, 2192, 2192, 2192, 2193, 2193, 2193, 2196, 2196, 2196,
2367
2368      2197, 2197, 2197, 1516, 1515, 2310, 2198, 2198, 2198, 2199,
2369      2199, 2199, 2322, 2322, 2322, 2325, 2325, 2325, 2205, 2205,
2370      2205, 1514, 2206, 1513, 1512, 2207, 3224, 3224, 3224, 1511,
2371      2323, 1510, 2326, 2209, 2209, 2209, 1509, 2211, 2211, 2211,
2372      1508, 2212, 1507, 3224, 2213, 1197, 1197, 1197, 2225, 2225,
2373      2225, 2210, 2226, 2339, 2340, 2227, 2341, 1506, 2345, 2346,
2374      1503, 2347, 1501, 1199, 2342, 1498, 1495, 2343, 1492, 2348,
2375      1483, 2344, 2349, 2228, 2228, 2228, 2350, 2351, 2351, 2351,
2376      2233, 2233, 2233, 2235, 2235, 2235, 1481, 2236, 1474, 1472,
2377      2237, 1471, 2327, 1226, 1226, 1226, 2239, 2239, 2239, 1470,
2378
2379      2240, 1469, 1468, 2241, 1467, 1466, 2338, 2357, 2357, 2357,
2380      1465, 1228, 1249, 1249, 1249, 2367, 2367, 2367, 1274, 1274,
2381      1274, 1464, 2255, 2255, 2255, 2358, 2256, 1463, 1460, 2257,
2382      1251, 2371, 2371, 2371, 1459, 1458, 1276, 1457, 1456, 2356,
2383      2375, 2375, 2375, 2262, 2262, 2262, 1455, 2263, 2372, 1454,
2384      2264, 2377, 2377, 2377, 2270, 2270, 2270, 1453, 2376, 2383,
2385      2383, 2383, 1452, 2359, 2273, 2273, 2273, 1451, 2274, 2378,
2386      1450, 2275, 2271, 1346, 1346, 1346, 2384, 1449, 2368, 2386,
2387      2386, 2386, 2278, 2278, 2278, 1448, 2279, 1447, 1445, 2280,
2388      1444, 1348, 3224, 3224, 3224, 1443, 2387, 3224, 3224, 3224,
2389
2390      3224, 3224, 3224, 2397, 2397, 2397, 2401, 2401, 2401, 3224,
2391      2399, 2399, 2399, 1442, 3224, 1441, 1440, 3224, 1386, 1386,
2392      1386, 1439, 1116, 2402, 2385, 2388, 1433, 1418, 2400, 1417,
2393      1394, 1394, 1394, 2296, 2296, 2296, 1388, 1404, 1404, 1404,
2394      1412, 1411, 2406, 2406, 2406, 1410, 2407, 2389, 1396, 2408,
2395      2297, 2395, 2409, 2409, 2409, 1406, 1409, 1408, 2390, 3224,
2396      3224, 3224, 3224, 3224, 3224, 2413, 2413, 2413, 1382, 2410,
2397      2415, 2415, 2415, 1370, 2405, 1356, 3224, 1355, 2403, 3224,
2398      1419, 1419, 1419, 2414, 2304, 2304, 2304, 2306, 2306, 2306,
2399      1354, 2404, 2309, 2309, 2309, 2311, 2311, 2311, 1421, 2420,
2400
2401      2420, 2420, 2305, 1350, 1345, 1116, 2312, 2312, 2312, 1341,
2402      2411, 1333, 1328, 2412, 2424, 2424, 2424, 2421, 2316, 2316,
2403      2316, 2317, 2317, 2317, 2318, 2318, 2318, 2322, 2322, 2322,
2404      2325, 2325, 2325, 2429, 2429, 2429, 1327, 2430, 1321, 1318,
2405      2431, 1197, 1197, 1197, 1297, 2323, 2416, 2326, 1296, 2417,
2406      2351, 2351, 2351, 2460, 2460, 2460, 1226, 1226, 1226, 1199,
2407      2357, 2357, 2357, 2463, 2463, 2463, 2469, 2469, 2469, 2367,
2408      2367, 2367, 1295, 1294, 1228, 1274, 1274, 1274, 2358, 1293,
2409      1292, 2464, 1291, 2470, 1285, 2371, 2371, 2371, 2474, 2474,
2410      2474, 1278, 2475, 1276, 1267, 2476, 2478, 2478, 2478, 1266,
2411
2412      1265, 2443, 2372, 2375, 2375, 2375, 2377, 2377, 2377, 2482,
2413      2482, 2482, 1260, 2479, 2383, 2383, 2383, 1259, 2488, 2488,
2414      2488, 2376, 2462, 1255, 2378, 1254, 2483, 2386, 2386, 2386,
2415      1253, 2384, 2471, 2485, 2485, 2485, 2489, 2486, 1248, 1247,
2416      2487, 2490, 2490, 2490, 2387, 2491, 1242, 1234, 2492, 3224,
2417      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 2498, 2498,
2418      2498, 2397, 2397, 2397, 1230, 1225, 3224, 1224, 1220, 3224,
2419      1219, 1218, 3224, 1217, 1216, 2499, 2399, 2399, 2399, 2401,
2420      2401, 2401, 2502, 2502, 2502, 1215, 2503, 1214, 1213, 2504,
2421      2505, 2505, 2505, 1212, 2400, 1211, 2402, 1394, 1394, 1394,
2422
2423      1210, 2493, 1404, 1404, 1404, 2406, 2406, 2406, 2506, 2407,
2424      2494, 1204, 2408, 2495, 1196, 1396, 2409, 2409, 2409, 1195,
2425      1406, 2509, 2509, 2509, 1194, 2510, 1193, 1188, 2511, 2512,
2426      2512, 2512, 1187, 2410, 2514, 2514, 2514, 2413, 2413, 2413,
2427      2415, 2415, 2415, 2516, 2516, 2516, 2513, 2420, 2420, 2420,
2428      1186, 2515, 2424, 2424, 2424, 2414, 2526, 2526, 2526, 1183,
2429      1177, 2517, 1172, 1171, 2507, 2421, 2508, 2429, 2429, 2429,
2430      1167, 2430, 1162, 2527, 2431, 1197, 1197, 1197, 2460, 2460,
2431      2460, 1226, 1226, 1226, 2463, 2463, 2463, 2565, 2565, 2565,
2432      2469, 2469, 2469, 1199, 2567, 2567, 2567, 1161, 2568, 1228,
2433
2434      1160, 2569, 2464, 1159, 2566, 1158, 1157, 2470, 2570, 2570,
2435      2570, 2474, 2474, 2474, 1156, 2475, 1154, 1153, 2476, 2478,
2436      2478, 2478, 1152, 2575, 2575, 2575, 2571, 2576, 1151, 1150,
2437      2577, 2579, 2579, 2579, 1149, 2545, 2479, 2482, 2482, 2482,
2438      2581, 2581, 2581, 1148, 2582, 1147, 1146, 2583, 2580, 2584,
2439      2584, 2584, 2563, 1145, 2483, 2485, 2485, 2485, 1144, 2486,
2440      1143, 1142, 2487, 2488, 2488, 2488, 2585, 2490, 2490, 2490,
2441      1141, 2491, 1140, 1139, 2492, 3224, 3224, 3224, 3224, 3224,
2442      3224, 2489, 3224, 3224, 3224, 2498, 2498, 2498, 1138, 2589,
2443      2589, 2589, 3224, 2590, 1137, 3224, 2591, 1136, 1135, 3224,
2444
2445      1128, 1127, 2499, 2592, 2592, 2592, 2594, 2594, 2594, 2502,
2446      2502, 2502, 1126, 2503, 1125, 1124, 2504, 2505, 2505, 2505,
2447      2593, 1123, 1122, 2595, 1394, 1394, 1394, 1119, 1117, 2587,
2448      2586, 1404, 1404, 1404, 1116, 2506, 1114, 2588, 1112, 2509,
2449      2509, 2509, 1396, 2510, 1109, 1105, 2511, 1103, 1102, 1406,
2450      2512, 2512, 2512, 2604, 2604, 2604, 1101, 2605, 1099, 1098,
2451      2606, 2514, 2514, 2514, 2607, 2607, 2607, 2513, 2608, 1097,
2452      1096, 2609, 1095, 2516, 2516, 2516, 1094, 1092, 2515, 2614,
2453      2614, 2614, 2526, 2526, 2526, 1197, 1197, 1197, 1091, 1090,
2454      2602, 2517, 2603, 2618, 2618, 2618, 1089, 2619, 1087, 2527,
2455
2456      2620, 1086, 1085, 1199, 2654, 2654, 2654, 1226, 1226, 1226,
2457      2657, 2657, 2657, 2565, 2565, 2565, 2660, 2660, 2660, 1081,
2458      2661, 1080, 1078, 2662, 1077, 1228, 1076, 2658, 1075, 1074,
2459      2566, 2567, 2567, 2567, 1073, 2568, 2638, 1071, 2569, 2570,
2460      2570, 2570, 2575, 2575, 2575, 1070, 2576, 1069, 1068, 2577,
2461      2579, 2579, 2579, 2614, 2614, 2614, 2659, 2571, 2667, 2667,
2462      2667, 1066, 2668, 1065, 1064, 2669, 1061, 2580, 1060, 2656,
2463      2581, 2581, 2581, 1058, 2582, 1055, 1054, 2583, 2584, 2584,
2464      2584, 2670, 2670, 2670, 1050, 2671, 1049, 1047, 2672, 3224,
2465      3224, 3224, 2674, 2674, 2674, 2585, 3224, 3224, 3224, 1046,
2466
2467      2589, 2589, 2589, 1045, 2590, 1042, 3224, 2591, 1041, 2675,
2468      2592, 2592, 2592, 3224, 2677, 2677, 2677, 1040, 2678, 1039,
2469      1037, 2679, 2594, 2594, 2594, 1036, 1035, 2593, 2680, 2680,
2470      2680, 1034, 2681, 1033, 1028, 2682, 1394, 1394, 1394, 2595,
2471      1404, 1404, 1404, 1026, 1025, 2676, 1024, 2673, 2604, 2604,
2472      2604, 1023, 2605, 1022, 1396, 2606, 1021, 1020, 1406, 2607,
2473      2607, 2607, 1019, 2608, 1016, 1013, 2609, 2697, 2697, 2697,
2474      2700, 2700, 2700, 2618, 2618, 2618, 1012, 2619, 1011, 1005,
2475      2620, 2711, 2711, 2711, 2698, 1642, 1002, 2689, 1197, 1197,
2476      1197, 2654, 2654, 2654, 2737, 2737, 2737, 1000, 2712, 1226,
2477
2478      1226, 1226, 2657, 2657, 2657,  999, 1199, 2690, 2739, 2739,
2479      2739,  994, 2740,  993,  991, 2741,  990, 1228,  989, 2658,
2480      2660, 2660, 2660,  987, 2661,  984,  982, 2662, 2667, 2667,
2481      2667,  979, 2668,  978,  976, 2669,  975, 2721, 2670, 2670,
2482      2670,  972, 2671,  967,  966, 2672, 3224, 3224, 3224,  964,
2483      2738, 2674, 2674, 2674, 2748, 2748, 2748,  963, 2749,  960,
2484       959, 2750,  957, 3224, 3224, 3224, 3224,  954, 2675, 2677,
2485      2677, 2677,  952, 2678,  951,  950, 2679,  948, 2680, 2680,
2486      2680, 3224, 2681,  946,  945, 2682, 2766, 2766, 2766, 1404,
2487      1404, 1404, 2774, 2774, 2774,  944,  943, 2747, 2697, 2697,
2488
2489      2697, 2776, 2776, 2776, 2767, 2777,  942, 1406, 2778, 2775,
2490      1642, 2779, 2779, 2779,  941, 2698, 1642,  938,  937, 1642,
2491      2700, 2700, 2700, 2780, 2780, 2780, 2781, 2781, 2781, 2711,
2492      2711, 2711, 2790, 2790, 2790, 2751, 2791,  936,  933, 2792,
2493      1197, 1197, 1197, 2810, 2810, 2810, 2712, 2737, 2737, 2737,
2494      2811, 2811, 2811,  930,  929, 2768,  927,  926, 1199, 2739,
2495      2739, 2739,  923, 2740,  920,  917, 2741,  916, 2812, 2816,
2496      2816, 2816, 2819, 2819, 2819, 2748, 2748, 2748,  908, 2749,
2497       907,  906, 2750, 2821, 2821, 2821, 2817,  900,  899, 2820,
2498      2766, 2766, 2766, 1404, 1404, 1404, 2774, 2774, 2774,  898,
2499
2500      2822,  896,  895, 2841, 2841, 2841, 2799, 2842, 2767,  894,
2501      2843, 1406,  893, 2775, 1642, 2776, 2776, 2776,  892, 2777,
2502       891, 1642, 2778, 2779, 2779, 2779, 2780, 2780, 2780, 2781,
2503      2781, 2781,  886, 1642, 2790, 2790, 2790,  883, 2791,  885,
2504       880, 2792,  879,  877, 2835, 1640, 1640, 1640, 1640, 1640,
2505      1640, 1640, 1640, 1640,  875,  873, 1640, 2860, 2860, 2860,
2506       871, 1640, 1640, 1640, 1642, 1640, 2810, 2810, 2810, 2811,
2507      2811, 2811, 2816, 2816, 2816, 2861, 2873, 2873, 2873,  869,
2508      2874, 3224,  866, 2875, 2819, 2819, 2819, 2812,  865, 2817,
2509      1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2510
2511      1640, 2820,  864, 1640, 2821, 2821, 2821,  863, 1640, 1640,
2512      1640, 1642, 1640, 2877, 2877, 2877,  862, 2878,  860,  859,
2513      2879, 2822, 2880, 2880, 2880,  858, 2881,  857,  856, 2882,
2514      2895, 2895, 2895, 2860, 2860, 2860,  854, 1640, 1640, 2841,
2515      2841, 2841,  853, 2842,  852,  851, 2843,  849, 2896,  847,
2516       846, 2861, 2895, 2895, 2895,  844,  843, 1642, 1640, 1640,
2517      1640, 1640, 1640, 2907, 1640, 1640, 1640,  840,  839, 1640,
2518      2896,  837,  670, 3224, 1640, 1640, 1640, 1642, 1640, 2873,
2519      2873, 2873,  832, 2874,  830,  826, 2875, 2877, 2877, 2877,
2520       825, 2878,  824,  822, 2879, 2880, 2880, 2880,  820, 2881,
2521
2522       819,  818, 2882, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2523      1640, 1640, 1640, 2907,  816,  814, 1640, 2946, 2946, 2946,
2524       813, 1640, 1640, 1640, 1642, 1640, 2957, 2957, 2957, 2959,
2525      2959, 2959, 2961, 2961, 2961, 1642, 1643, 2969, 2969, 2969,
2526      2979, 2979, 2979, 2958,  811,  809, 2960,  808,  807, 2962,
2527      1640, 1640,  806,  805, 2970, 2946, 2946, 2946, 1116, 2957,
2528      2957, 2957, 2989, 2989, 2989,  804, 2990,  803,  801, 2991,
2529      2959, 2959, 2959, 1642,  799,  798, 2958, 2992, 2992, 2992,
2530       795, 2993,  794,  793, 2994,  791,  782, 2960, 2961, 2961,
2531      2961, 2995, 2995, 2995,  781, 2996,  780,  777, 2997, 2969,
2532
2533      2969, 2969, 2979, 2979, 2979, 2962, 1830, 3004, 3004, 3004,
2534       775, 3005,  773,  772, 3006,  771, 2970, 2989, 2989, 2989,
2535      1116, 2990,  769, 3224, 2991, 2992, 2992, 2992,  766, 2993,
2536       765,  764, 2994, 2995, 2995, 2995,  763, 2996,  762, 3015,
2537      2997, 3004, 3004, 3004,  760, 3005,  758,  757, 3006, 3120,
2538      3120, 3120, 3120, 3120, 3120,  755, 3129,  753,  752, 3130,
2539      3222, 3222, 3222, 3222, 3222, 3222,  750, 1116,  748,  747,
2540      1116,  746,  744,  742,  741,  740,  739,  737, 3223, 3224,
2541      3224, 3223,  256,  256,  256,  256,  256,  256,  256,  256,
2542       256,  257,  257,  257,  257,  257,  257,  257,  257,  257,
2543
2544       262,  262,  262,  262,  262,  262,  262,  262,  262,  265,
2545       265,  265,  265,  265,  265,  265,  265,  265,  268,  268,
2546       268,  268,  268,  268,  268,  268,  268,  271,  271,  271,
2547       271,  271,  271,  271,  271,  271,  278,  278,  278,  278,
2548       278,  278,  278,  278,  278,  286,  286,  286,  286,  286,
2549       286,  286,  286,  286,  290,  290,  290,  290,  290,  290,
2550       290,  290,  290,  302,  302,  302,  302,  302,  302,  302,
2551       302,  302,  306,  306,  306,  306,  306,  306,  306,  306,
2552       306,  313,  313,  313,  313,  313,  313,  313,  313,  313,
2553       324,  324,  324,  324,  324,  324,  324,  324,  324,  332,
2554
2555       332,  332,  332,  332,  332,  332,  332,  332,  340,  340,
2556       340,  340,  340,  340,  340,  340,  340,  346,  346,  346,
2557       346,  346,  346,  346,  346,  346,  352,  352,  352,  352,
2558       352,  352,  352,  352,  352,  357,  357,  357,  357,  357,
2559       357,  357,  357,  357,  375,  375,  375,  375,  375,  375,
2560       375,  375,  375,  382,  382,  382,  382,  382,  382,  382,
2561       382,  382,  389,  389,  389,  389,  389,  389,  389,  389,
2562       389,  395,  395,  395,  395,  395,  395,  395,  395,  395,
2563       402,  402,  402,  402,  402,  402,  402,  402,  402,  407,
2564       407,  407,  407,  407,  407,  407,  407,  407,  413,  413,
2565
2566       413,  413,  413,  413,  413,  413,  413,  418,  418,  418,
2567       418,  418,  418,  418,  418,  418,  424,  424,  424,  424,
2568       424,  424,  424,  424,  424,  432,  432,  432,  432,  432,
2569       432,  432,  432,  432,  440,  440,  440,  440,  440,  440,
2570       440,  440,  440,  446,  446,  446,  446,  446,  446,  446,
2571       446,  446,  463,  463,  463,  463,  463,  463,  463,  463,
2572       463,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2573       478,  478,  478,  478,  478,  478,  478,  478,  478,  484,
2574       484,  484,  484,  484,  484,  484,  484,  484,  494,  494,
2575       494,  494,  494,  494,  494,  494,  494,  500,  500,  500,
2576
2577       500,  500,  500,  500,  500,  500,  505,  505,  505,  505,
2578       505,  505,  505,  505,  505,  511,  511,  511,  511,  511,
2579       511,  511,  511,  511,  517,  517,  517,  517,  517,  517,
2580       517,  517,  517,  523,  523,  523,  523,  523,  523,  523,
2581       523,  523,  530,  530,  530,  530,  530,  530,  530,  530,
2582       530,  537,  537,  537,  537,  537,  537,  537,  537,  537,
2583       542,  542,  542,  542,  542,  542,  542,  542,  542,  550,
2584       550,  550,  550,  550,  550,  550,  550,  550,  556,  556,
2585       556,  556,  556,  556,  556,  556,  556,  563,  563,  563,
2586       563,  563,  563,  563,  563,  563,  568,  568,  568,  568,
2587
2588       568,  568,  568,  568,  568,  574,  574,  574,  574,  574,
2589       574,  574,  574,  574,  579,  579,  579,  579,  579,  579,
2590       579,  579,  579,  586,  586,  586,  586,  586,  586,  586,
2591       586,  586,  592,  592,  592,  592,  592,  592,  592,  592,
2592       592,  599,  599,  599,  599,  599,  599,  599,  599,  599,
2593       607,  607,  607,  607,  607,  607,  607,  607,  607,  615,
2594       615,  615,  615,  615,  615,  615,  615,  615,  619,  619,
2595       619,  619,  619,  619,  619,  619,  619,  625,  625,  625,
2596       625,  625,  625,  625,  625,  625,  629,  629,  629,  629,
2597       629,  629,  629,  629,  629,  636,  636,  636,  636,  636,
2598
2599       636,  636,  636,  636,  641,  641,  641,  641,  641,  641,
2600       641,  641,  641,  661,  661,  661,  685,  719,  718,  661,
2601       687,  687,  687,  716,  714,  713,  687,  691,  691,  691,
2602       712,  710,  705,  691,  699,  699,  699,  701,  700,  698,
2603       699,  711,  711,  711,  697,  694,  693,  711,  717,  717,
2604       717,  692,  690,  689,  717,  738,  738,  738,  688,  686,
2605       681,  738,  745,  745,  745, 3224,  662,  660,  745,  751,
2606       751,  751,  658,  652,  651,  751,  756,  756,  756,  652,
2607       651,  650,  756,  761,  761,  761,  649, 3224, 3224,  761,
2608       770,  770,  770, 3224, 3224, 3224,  770,  776,  776,  776,
2609
2610      3224, 3224, 3224,  776,  792,  792,  792, 3224, 3224, 3224,
2611       792,  802,  802,  802, 3224, 3224, 3224,  802,  812,  812,
2612       812, 3224, 3224, 3224,  812,  817,  817,  817, 3224, 3224,
2613      3224,  817,  823,  823,  823, 3224, 3224, 3224,  823,  831,
2614       831,  831, 3224, 3224, 3224,  831,  838,  838,  838, 3224,
2615      3224, 3224,  838,  845,  845,  845, 3224, 3224, 3224,  845,
2616       850,  850,  850, 3224, 3224, 3224,  850,  855,  855,  855,
2617      3224, 3224, 3224,  855,  861,  861,  861, 3224, 3224, 3224,
2618       861,  870,  870,  870, 3224, 3224, 3224,  870,  874,  874,
2619       874, 3224, 3224, 3224,  874,  878,  878,  878, 3224, 3224,
2620
2621      3224,  878,  882,  882,  882,  882,  882,  882,  882, 3224,
2622       882,  661,  661,  661, 3224, 3224, 3224,  661,  897, 3224,
2623      3224, 3224,  897,  687,  687,  687, 3224, 3224, 3224,  687,
2624       928, 3224, 3224, 3224,  928,  691,  691,  691, 3224, 3224,
2625      3224,  691,  935, 3224, 3224, 3224,  935,  699,  699,  699,
2626      3224, 3224, 3224,  699,  947, 3224, 3224, 3224,  947,  711,
2627       711,  711, 3224, 3224, 3224,  711,  953, 3224, 3224, 3224,
2628       953,  717,  717,  717, 3224, 3224, 3224,  717,  958, 3224,
2629      3224, 3224,  958,  738,  738,  738, 3224, 3224, 3224,  738,
2630       977, 3224, 3224, 3224,  977,  745,  745,  745, 3224, 3224,
2631
2632      3224,  745,  983, 3224, 3224, 3224,  983,  751,  751,  751,
2633      3224, 3224, 3224,  751,  988, 3224, 3224, 3224,  988,  756,
2634       756,  756, 3224, 3224, 3224,  756,  992, 3224, 3224, 3224,
2635       992,  761,  761,  761, 3224, 3224, 3224,  761, 1001, 3224,
2636      3224, 3224, 1001,  770,  770,  770, 3224, 3224, 3224,  770,
2637      1010, 3224, 3224, 3224, 1010,  776,  776,  776, 3224, 3224,
2638      3224,  776, 1027, 3224, 3224, 3224, 1027,  792,  792,  792,
2639      3224, 3224, 3224,  792, 1038, 3224, 3224, 3224, 1038,  802,
2640       802,  802, 3224, 3224, 3224,  802, 1048, 3224, 3224, 3224,
2641      1048,  812,  812,  812, 3224, 3224, 3224,  812, 1053, 3224,
2642
2643      3224, 3224, 1053,  817,  817,  817, 3224, 3224, 3224,  817,
2644      1059, 3224, 3224, 3224, 1059,  823,  823,  823, 3224, 3224,
2645      3224,  823, 1067, 3224, 3224, 3224, 1067,  831,  831,  831,
2646      3224, 3224, 3224,  831, 1072, 3224, 3224, 3224, 1072,  838,
2647       838,  838, 3224, 3224, 3224,  838, 1079, 3224, 3224, 3224,
2648      1079,  845,  845,  845, 3224, 3224, 3224,  845, 1084, 3224,
2649      3224, 3224, 1084,  850,  850,  850, 3224, 3224, 3224,  850,
2650      1088, 3224, 3224, 3224, 1088,  855,  855,  855, 3224, 3224,
2651      3224,  855, 1093, 3224, 3224, 3224, 1093,  861,  861,  861,
2652      3224, 3224, 3224,  861, 1100, 3224, 3224, 3224, 1100,  870,
2653
2654       870,  870, 3224, 3224, 3224,  870, 1104, 3224, 3224, 3224,
2655      1104,  874,  874,  874, 3224, 3224, 3224,  874, 1108, 3224,
2656      3224, 3224, 1108,  878,  878,  878, 3224, 3224, 3224,  878,
2657      1113, 3224, 3224, 3224, 1113, 1115, 1115, 1115, 1115, 1115,
2658      1115, 1115, 1115, 1115, 1121, 3224, 3224, 3224, 3224, 1121,
2659       661,  661,  661, 3224, 3224, 3224,  661, 1130, 1130, 1130,
2660      1130, 3224, 3224, 1130, 1130,  687,  687,  687, 3224, 3224,
2661      3224,  687, 1164, 1164, 1164, 1164, 3224, 3224, 1164, 1164,
2662       691,  691,  691, 3224, 3224, 3224,  691, 1174, 1174, 1174,
2663      1174, 3224, 3224, 1174, 1174,  699,  699,  699, 3224, 3224,
2664
2665      3224,  699, 1190, 1190, 1190, 1190, 3224, 3224, 1190, 1190,
2666       711,  711,  711, 3224, 3224, 3224,  711, 1198, 1198, 1198,
2667      1198, 3224, 3224, 1198, 1198,  717,  717,  717, 3224, 3224,
2668      3224,  717, 1206, 1206, 1206, 1206, 3224, 3224, 1206, 1206,
2669       738,  738,  738, 3224, 3224, 3224,  738, 1227, 1227, 1227,
2670      1227, 3224, 3224, 1227, 1227,  745,  745,  745, 3224, 3224,
2671      3224,  745, 1236, 1236, 1236, 1236, 3224, 3224, 1236, 1236,
2672       751,  751,  751, 3224, 3224, 3224,  751, 1244, 1244, 1244,
2673      1244, 3224, 3224, 1244, 1244,  756,  756,  756, 3224, 3224,
2674      3224,  756, 1250, 1250, 1250, 1250, 3224, 3224, 1250, 1250,
2675
2676       761,  761,  761, 3224, 3224, 3224,  761, 1262, 1262, 1262,
2677      1262, 3224, 3224, 1262, 1262,  770,  770,  770, 3224, 3224,
2678      3224,  770, 1275, 1275, 1275, 1275, 3224, 3224, 1275, 1275,
2679       776,  776,  776, 3224, 3224, 3224,  776, 1299, 1299, 1299,
2680      1299, 3224, 3224, 1299, 1299,  792,  792,  792,  792, 3224,
2681       792, 3224,  792, 1315, 1315, 1315, 1315, 3224, 3224, 1315,
2682      1315,  802,  802,  802, 3224, 3224, 3224,  802, 1330, 1330,
2683      1330, 1330, 3224, 3224, 1330, 1330,  812,  812,  812, 3224,
2684      3224, 3224,  812, 1338, 1338, 1338, 1338, 3224, 3224, 1338,
2685      1338,  817,  817,  817, 3224, 3224, 3224,  817, 1347, 1347,
2686
2687      1347, 1347, 3224, 3224, 1347, 1347,  823,  823,  823, 3224,
2688      3224, 3224,  823, 1358, 1358, 1358, 1358, 3224, 3224, 1358,
2689      1358,  831,  831,  831,  831, 3224,  831, 3224,  831, 1367,
2690      1367, 1367, 1367, 3224, 3224, 1367, 1367,  838,  838,  838,
2691       838, 3224,  838, 3224,  838, 1379, 1379, 1379, 1379, 3224,
2692      3224, 1379, 1379,  845,  845,  845, 3224, 3224, 3224,  845,
2693      1387, 1387, 1387, 1387, 3224, 3224, 1387, 1387,  850,  850,
2694       850,  850, 3224,  850, 3224,  850, 1395, 1395, 1395, 1395,
2695      3224, 3224, 1395, 1395,  855,  855,  855,  855, 3224,  855,
2696      3224,  855, 1405, 1405, 1405, 1405, 3224, 3224, 1405, 1405,
2697
2698       861,  861,  861, 3224, 3224, 3224,  861, 1414, 1414, 1414,
2699      1414, 3224, 3224, 1414, 1414,  870,  870,  870, 3224, 3224,
2700      3224,  870, 1420, 1420, 1420, 1420, 3224, 3224, 1420, 1420,
2701      1427, 1427, 1427, 1427, 3224, 3224, 1427, 1427,  878,  878,
2702       878, 3224, 3224, 3224,  878, 1435, 1435, 1435, 1435, 3224,
2703      3224, 1435, 1435, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
2704      1115, 1115, 1121, 3224, 1121, 3224, 3224, 1121,  661,  661,
2705       661, 3224, 3224, 3224,  661, 1130, 1130, 1130, 1130, 3224,
2706      3224, 1130, 1130,  687,  687,  687,  687, 3224,  687, 3224,
2707       687, 1164, 1164, 1164, 1164, 3224, 3224, 1164, 1164,  691,
2708
2709       691,  691,  691, 3224,  691, 3224,  691, 1174, 1174, 1174,
2710      1174, 3224, 3224, 1174, 1174,  699,  699,  699, 3224, 3224,
2711      3224,  699, 1190, 1190, 1190, 1190, 3224, 3224, 1190, 1190,
2712       711,  711,  711, 3224, 3224, 3224,  711, 1198, 1198, 1198,
2713      1198, 3224, 3224, 1198, 1198,  717,  717,  717, 3224, 3224,
2714      3224,  717, 1206, 1206, 1206, 1206, 3224, 3224, 1206, 1206,
2715       738,  738,  738, 3224, 3224, 3224,  738, 1227, 1227, 1227,
2716      1227, 3224, 3224, 1227, 1227,  745,  745,  745, 3224, 3224,
2717      3224,  745, 1236, 1236, 1236, 1236, 3224, 3224, 1236, 1236,
2718       751,  751,  751,  751, 3224,  751, 3224,  751, 1244, 1244,
2719
2720      1244, 1244, 3224, 3224, 1244, 1244,  756,  756,  756,  756,
2721      3224,  756, 3224,  756, 1250, 1250, 1250, 1250, 3224, 3224,
2722      1250, 1250,  761,  761,  761, 3224, 3224, 3224,  761, 1262,
2723      1262, 1262, 1262, 3224, 3224, 1262, 1262,  770,  770,  770,
2724       770, 3224,  770, 3224,  770, 1275, 1275, 1275, 1275, 3224,
2725      3224, 1275, 1275,  776,  776,  776, 3224, 3224, 3224,  776,
2726      1299, 1299, 1299, 1299, 3224, 3224, 1299, 1299,  792,  792,
2727       792, 3224, 3224, 3224,  792, 1315, 1315, 1315, 1315, 3224,
2728      3224, 1315, 1315,  802,  802,  802, 3224, 3224, 3224,  802,
2729      1330, 1330, 1330, 1330, 3224, 3224, 1330, 1330,  812,  812,
2730
2731       812, 3224, 3224, 3224,  812, 1338, 1338, 1338, 1338, 3224,
2732      3224, 1338, 1338,  817,  817,  817, 3224, 3224, 3224,  817,
2733      1347, 1347, 1347, 1347, 3224, 3224, 1347, 1347,  823,  823,
2734       823, 3224, 3224, 3224,  823, 1358, 1358, 1358, 1358, 3224,
2735      3224, 1358, 1358,  831,  831,  831, 3224, 3224, 3224,  831,
2736      1367, 1367, 1367, 1367, 3224, 3224, 1367, 1367,  838,  838,
2737       838, 3224, 3224, 3224,  838, 1379, 1379, 1379, 1379, 3224,
2738      3224, 1379, 1379,  845,  845,  845, 3224, 3224, 3224,  845,
2739      1387, 1387, 1387, 1387, 3224, 3224, 1387, 1387, 1395, 1395,
2740      1395, 1395, 3224, 3224, 1395, 1395,  855,  855,  855, 3224,
2741
2742      3224, 3224,  855, 1405, 1405, 1405, 1405, 3224, 3224, 1405,
2743      1405,  861,  861,  861, 3224, 3224, 3224,  861, 1414, 1414,
2744      1414, 1414, 3224, 3224, 1414, 1414,  870,  870,  870, 3224,
2745      3224, 3224,  870, 1420, 1420, 1420, 1420, 3224, 3224, 1420,
2746      1420, 1427, 1427, 1427, 1427, 3224, 3224, 1427, 1427,  878,
2747       878,  878, 3224, 3224, 3224,  878, 1435, 1435, 1435, 1435,
2748      3224, 3224, 1435, 1435, 1115, 1115, 1115, 1115, 1115, 1115,
2749      1115, 1115, 1115, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2750      1640, 1640,  661,  661,  661, 3224, 3224, 3224,  661, 1130,
2751      1130, 1130, 1130, 3224, 3224, 1130, 1130, 1164, 1164, 1164,
2752
2753      1164, 3224, 3224, 1164, 1164,  691,  691,  691, 3224, 3224,
2754      3224,  691, 1174, 1174, 1174, 1174, 3224, 3224, 1174, 1174,
2755       699,  699,  699, 3224, 3224, 3224,  699, 1190, 1190, 1190,
2756      1190, 3224, 3224, 1190, 1190,  711,  711,  711, 3224, 3224,
2757      3224,  711, 1198, 1198, 1198, 1198, 3224, 3224, 1198, 1198,
2758       717,  717,  717, 3224, 3224, 3224,  717,  738,  738,  738,
2759      3224, 3224, 3224,  738, 1227, 1227, 1227, 1227, 3224, 3224,
2760      1227, 1227,  745,  745,  745, 3224, 3224, 3224,  745, 1236,
2761      1236, 1236, 1236, 3224, 3224, 1236, 1236, 1244, 1244, 1244,
2762      1244, 3224, 3224, 1244, 1244,  756,  756,  756, 3224, 3224,
2763
2764      3224,  756, 1250, 1250, 1250, 1250, 3224, 3224, 1250, 1250,
2765       761,  761,  761, 3224, 3224, 3224,  761, 1262, 1262, 1262,
2766      1262, 3224, 3224, 1262, 1262, 1275, 1275, 1275, 1275, 3224,
2767      3224, 1275, 1275,  776,  776,  776, 3224, 3224, 3224,  776,
2768      1299, 1299, 1299, 1299, 3224, 3224, 1299, 1299,  792,  792,
2769       792,  792, 3224,  792, 3224,  792, 1315, 1315, 1315, 1315,
2770      3224, 3224, 1315, 1315,  802,  802,  802, 3224, 3224, 3224,
2771       802, 1330, 1330, 1330, 1330, 3224, 3224, 1330, 1330,  812,
2772       812,  812, 3224, 3224, 3224,  812, 1338, 1338, 1338, 1338,
2773      3224, 3224, 1338, 1338,  817,  817,  817, 3224, 3224, 3224,
2774
2775       817, 1347, 1347, 1347, 1347, 3224, 3224, 1347, 1347,  823,
2776       823,  823, 3224, 3224, 3224,  823, 1358, 1358, 1358, 1358,
2777      3224, 3224, 1358, 1358,  831,  831,  831, 3224, 3224, 3224,
2778       831, 1367, 1367, 1367, 1367, 3224, 3224, 1367, 1367,  838,
2779       838,  838, 3224, 3224, 3224,  838, 1379, 1379, 1379, 1379,
2780      3224, 3224, 1379, 1379,  845,  845,  845, 3224, 3224, 3224,
2781       845, 1387, 1387, 1387, 1387, 3224, 3224, 1387, 1387, 1395,
2782      1395, 1395, 1395, 3224, 3224, 1395, 1395,  855,  855,  855,
2783      3224, 3224, 3224,  855, 1405, 1405, 1405, 1405, 3224, 3224,
2784      1405, 1405,  861,  861,  861, 3224, 3224, 3224,  861, 1414,
2785
2786      1414, 1414, 1414, 3224, 3224, 1414, 1414,  870,  870,  870,
2787       870, 3224,  870, 3224,  870, 1420, 1420, 1420, 1420, 3224,
2788      3224, 1420, 1420, 1427, 1427, 1427, 1427, 3224, 3224, 1427,
2789      1427,  878,  878,  878,  878, 3224,  878, 3224,  878, 1435,
2790      1435, 1435, 1435, 3224, 3224, 1435, 1435, 1115, 1115, 1115,
2791      1115, 1115, 1115, 1115, 1115, 1115, 1640, 1640, 1640, 1640,
2792      1640, 1640, 1640, 1640, 1640,  661,  661,  661, 3224, 3224,
2793      3224,  661, 1130, 1130, 1130, 1130, 3224, 3224, 1130, 1130,
2794      1164, 1164, 1164, 1164, 3224, 3224, 1164, 1164,  691,  691,
2795       691, 3224, 3224, 3224,  691, 1174, 1174, 1174, 1174, 3224,
2796
2797      3224, 1174, 1174,  699,  699,  699, 3224, 3224, 3224,  699,
2798      1190, 1190, 1190, 1190, 3224, 3224, 1190, 1190,  711,  711,
2799       711, 3224, 3224, 3224,  711, 1198, 1198, 1198, 1198, 3224,
2800      3224, 1198, 1198,  717,  717,  717, 3224, 3224, 3224,  717,
2801       738,  738,  738, 3224, 3224, 3224,  738, 1227, 1227, 1227,
2802      1227, 3224, 3224, 1227, 1227,  745,  745,  745, 3224, 3224,
2803      3224,  745, 1236, 1236, 1236, 1236, 3224, 3224, 1236, 1236,
2804      1244, 1244, 1244, 1244, 3224, 3224, 1244, 1244,  756,  756,
2805       756,  756, 3224,  756, 3224,  756, 1250, 1250, 1250, 1250,
2806      3224, 3224, 1250, 1250,  761,  761,  761, 3224, 3224, 3224,
2807
2808       761, 1262, 1262, 1262, 1262, 3224, 3224, 1262, 1262, 1275,
2809      1275, 1275, 1275, 3224, 3224, 1275, 1275,  776,  776,  776,
2810      3224, 3224, 3224,  776, 1299, 1299, 1299, 1299, 3224, 3224,
2811      1299, 1299,  792,  792,  792,  792, 3224,  792, 3224,  792,
2812      1315, 1315, 1315, 1315, 3224, 3224, 1315, 1315,  802,  802,
2813       802, 3224, 3224, 3224,  802, 1330, 1330, 1330, 1330, 3224,
2814      3224, 1330, 1330,  812,  812,  812, 3224, 3224, 3224,  812,
2815      1338, 1338, 1338, 1338, 3224, 3224, 1338, 1338,  817,  817,
2816       817, 3224, 3224, 3224,  817, 1347, 1347, 1347, 1347, 3224,
2817      3224, 1347, 1347,  823,  823,  823, 3224, 3224, 3224,  823,
2818
2819      1358, 1358, 1358, 1358, 3224, 3224, 1358, 1358,  831,  831,
2820       831, 3224, 3224, 3224,  831, 1367, 1367, 1367, 1367, 3224,
2821      3224, 1367, 1367,  838,  838,  838,  838, 3224,  838, 3224,
2822       838, 1379, 1379, 1379, 1379, 3224, 3224, 1379, 1379,  845,
2823       845,  845, 3224, 3224, 3224,  845, 1387, 1387, 1387, 1387,
2824      3224, 3224, 1387, 1387, 1395, 1395, 1395, 1395, 3224, 3224,
2825      1395, 1395,  855,  855,  855,  855, 3224,  855, 3224,  855,
2826      1405, 1405, 1405, 1405, 3224, 3224, 1405, 1405,  861,  861,
2827       861, 3224, 3224, 3224,  861, 1414, 1414, 1414, 1414, 3224,
2828      3224, 1414, 1414, 1420, 1420, 1420, 1420, 3224, 3224, 1420,
2829
2830      1420, 1427, 1427, 1427, 1427, 3224, 3224, 1427, 1427, 1435,
2831      1435, 1435, 1435, 3224, 3224, 1435, 1435, 1115, 1115, 1115,
2832      1115, 1115, 1115, 1115, 1115, 1115, 1640, 1640, 1640, 1640,
2833      1640, 1640, 1640, 1640, 1640,  661,  661,  661,  661, 3224,
2834       661, 3224,  661, 1130, 1130, 1130, 1130, 3224, 3224, 1130,
2835      1130, 1164, 1164, 1164, 1164, 3224, 3224, 1164, 1164,  691,
2836       691,  691, 3224, 3224, 3224,  691, 1174, 1174, 1174, 1174,
2837      3224, 3224, 1174, 1174,  699,  699,  699, 3224, 3224, 3224,
2838       699, 1190, 1190, 1190, 1190, 3224, 3224, 1190, 1190,  711,
2839       711,  711,  711, 3224,  711, 3224,  711, 1198, 1198, 1198,
2840
2841      1198, 3224, 3224, 1198, 1198,  717,  717,  717,  717, 3224,
2842       717, 3224,  717,  738,  738,  738,  738, 3224,  738, 3224,
2843       738, 1227, 1227, 1227, 1227, 3224, 3224, 1227, 1227,  745,
2844       745,  745,  745, 3224,  745, 3224,  745, 1236, 1236, 1236,
2845      1236, 3224, 3224, 1236, 1236, 1244, 1244, 1244, 1244, 3224,
2846      3224, 1244, 1244, 1250, 1250, 1250, 1250, 3224, 3224, 1250,
2847      1250,  761,  761,  761, 3224, 3224, 3224,  761, 1275, 1275,
2848      1275, 1275, 3224, 3224, 1275, 1275,  776,  776,  776, 3224,
2849      3224, 3224,  776, 1299, 1299, 1299, 1299, 3224, 3224, 1299,
2850      1299,  792,  792,  792,  792, 3224,  792, 3224,  792, 1315,
2851
2852      1315, 1315, 1315, 3224, 3224, 1315, 1315,  802,  802,  802,
2853      3224, 3224, 3224,  802,  812,  812,  812, 3224, 3224, 3224,
2854       812, 1338, 1338, 1338, 1338, 3224, 3224, 1338, 1338,  817,
2855       817,  817, 3224, 3224, 3224,  817, 1347, 1347, 1347, 1347,
2856      3224, 3224, 1347, 1347,  823,  823,  823, 3224, 3224, 3224,
2857       823,  831,  831,  831, 3224, 3224, 3224,  831, 1367, 1367,
2858      1367, 1367, 3224, 3224, 1367, 1367,  838,  838,  838, 3224,
2859      3224, 3224,  838, 1379, 1379, 1379, 1379, 3224, 3224, 1379,
2860      1379,  845,  845,  845, 3224, 3224, 3224,  845, 1387, 1387,
2861      1387, 1387, 3224, 3224, 1387, 1387, 1395, 1395, 1395, 1395,
2862
2863      3224, 3224, 1395, 1395, 1405, 1405, 1405, 1405, 3224, 3224,
2864      1405, 1405,  861,  861,  861, 3224, 3224, 3224,  861, 1414,
2865      1414, 1414, 1414, 3224, 3224, 1414, 1414, 1420, 1420, 1420,
2866      1420, 3224, 3224, 1420, 1420, 1427, 1427, 1427, 1427, 3224,
2867      3224, 1427, 1427, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
2868      1115, 1115, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2869      1640, 1130, 1130, 1130, 1130, 3224, 3224, 1130, 1130, 1164,
2870      1164, 1164, 1164, 3224, 3224, 1164, 1164,  691,  691,  691,
2871      3224, 3224, 3224,  691,  699,  699,  699, 3224, 3224, 3224,
2872       699, 1190, 1190, 1190, 1190, 3224, 3224, 1190, 1190, 1198,
2873
2874      1198, 1198, 1198, 3224, 3224, 1198, 1198, 1227, 1227, 1227,
2875      1227, 3224, 3224, 1227, 1227, 1236, 1236, 1236, 1236, 3224,
2876      3224, 1236, 1236, 1250, 1250, 1250, 1250, 3224, 3224, 1250,
2877      1250,  761,  761,  761, 3224, 3224, 3224,  761, 1275, 1275,
2878      1275, 1275, 3224, 3224, 1275, 1275,  776,  776,  776, 3224,
2879      3224, 3224,  776, 1299, 1299, 1299, 1299, 3224, 3224, 1299,
2880      1299, 1315, 1315, 1315, 1315, 3224, 3224, 1315, 1315,  802,
2881       802,  802, 3224, 3224, 3224,  802,  812,  812,  812, 3224,
2882      3224, 3224,  812, 1338, 1338, 1338, 1338, 3224, 3224, 1338,
2883      1338,  817,  817,  817, 3224, 3224, 3224,  817, 1347, 1347,
2884
2885      1347, 1347, 3224, 3224, 1347, 1347,  823,  823,  823, 3224,
2886      3224, 3224,  823,  831,  831,  831, 3224, 3224, 3224,  831,
2887       838,  838,  838, 3224, 3224, 3224,  838, 1379, 1379, 1379,
2888      1379, 3224, 3224, 1379, 1379,  845,  845,  845, 3224, 3224,
2889      3224,  845, 1387, 1387, 1387, 1387, 3224, 3224, 1387, 1387,
2890      1395, 1395, 1395, 1395, 3224, 3224, 1395, 1395, 1405, 1405,
2891      1405, 1405, 3224, 3224, 1405, 1405,  861,  861,  861,  861,
2892      3224,  861, 3224,  861, 1414, 1414, 1414, 1414, 3224, 3224,
2893      1414, 1414, 1420, 1420, 1420, 1420, 3224, 3224, 1420, 1420,
2894      1427, 1427, 1427, 1427, 3224, 3224, 1427, 1427, 1115, 1115,
2895
2896      1115, 1115, 1115, 1115, 1115, 1115, 1115, 1640, 1640, 1640,
2897      1640, 1640, 1640, 1640, 1640, 1640, 1130, 1130, 1130, 1130,
2898      3224, 3224, 1130, 1130, 1164, 1164, 1164, 1164, 3224, 3224,
2899      1164, 1164,  691,  691,  691, 3224, 3224, 3224,  691,  699,
2900       699,  699,  699, 3224,  699, 3224,  699, 1198, 1198, 1198,
2901      1198, 3224, 3224, 1198, 1198, 1227, 1227, 1227, 1227, 3224,
2902      3224, 1227, 1227, 1236, 1236, 1236, 1236, 3224, 3224, 1236,
2903      1236, 1250, 1250, 1250, 1250, 3224, 3224, 1250, 1250,  761,
2904       761,  761, 3224, 3224, 3224,  761, 1275, 1275, 1275, 1275,
2905      3224, 3224, 1275, 1275,  776,  776,  776, 3224, 3224, 3224,
2906
2907       776, 1299, 1299, 1299, 1299, 3224, 3224, 1299, 1299, 1315,
2908      1315, 1315, 1315, 3224, 3224, 1315, 1315,  802,  802,  802,
2909      3224, 3224, 3224,  802,  812,  812,  812, 3224, 3224, 3224,
2910       812,  817,  817,  817,  817, 3224,  817, 3224,  817, 1347,
2911      1347, 1347, 1347, 3224, 3224, 1347, 1347,  823,  823,  823,
2912       823, 3224,  823, 3224,  823,  831,  831,  831, 3224, 3224,
2913      3224,  831,  838,  838,  838, 3224, 3224, 3224,  838, 1379,
2914      1379, 1379, 1379, 3224, 3224, 1379, 1379,  845,  845,  845,
2915       845, 3224,  845, 3224,  845, 1387, 1387, 1387, 1387, 3224,
2916      3224, 1387, 1387, 1395, 1395, 1395, 1395, 3224, 3224, 1395,
2917
2918      1395, 1405, 1405, 1405, 1405, 3224, 3224, 1405, 1405,  861,
2919       861,  861,  861, 3224,  861, 3224,  861, 1414, 1414, 1414,
2920      1414, 3224, 3224, 1414, 1414, 1420, 1420, 1420, 1420, 3224,
2921      3224, 1420, 1420, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
2922      1115, 1115, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2923      1640, 1130, 1130, 1130, 1130, 3224, 3224, 1130, 1130,  691,
2924       691,  691, 3224, 3224, 3224,  691,  699,  699,  699, 3224,
2925      3224, 3224,  699, 1198, 1198, 1198, 1198, 3224, 3224, 1198,
2926      1198, 1227, 1227, 1227, 1227, 3224, 3224, 1227, 1227, 1250,
2927      1250, 1250, 1250, 3224, 3224, 1250, 1250,  761,  761,  761,
2928
2929      3224, 3224, 3224,  761, 1275, 1275, 1275, 1275, 3224, 3224,
2930      1275, 1275,  776,  776,  776, 3224, 3224, 3224,  776, 2844,
2931      2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2845, 2845,
2932      2845, 2845, 2845, 2845, 2845, 2845, 2845, 2902, 2902, 2902,
2933      2902, 2902, 2902, 2902, 2902, 2902, 2905, 2905, 2905, 2905,
2934      2905, 2905, 2905, 2905, 2905, 2943, 2943, 2943, 2943, 2943,
2935      2943, 2943, 2943, 2943, 2945, 2945, 2945, 2945, 2945, 2945,
2936      2945, 2945, 2945,  255, 3224, 3224, 3224, 3224, 3224, 3224,
2937      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
2938      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
2939
2940      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
2941      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
2942      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
2943      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
2944      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224
2945     } ;
2946
2947 static yyconst flex_int16_t yy_chk[11849] =
2948     {   0,
2949         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2950         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2951         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2952         8,    8,    8,  260,   11,   13,   13,   12,   14,   14,
2953        13,   13,  309,   14,   14,  261,    8,   17,   17,  260,
2954        13,   15,   15,   14,   15,  264,   15,   16,   16,  364,
2955        16,  261,   16,   18,   18,    0,   15,   19,   19,   19,
2956       529,  264,   16,   20,   20,   20,   23,   23,   23,   24,
2957        24,   24,  529,   19,   25,   25,   25,  364, 1508,   20,
2958       371,   17,   23, 1041,  309,   24,  258,  258,  258, 1041,
2959
2960        25,  259,  259,  259,  263,  263,  263,   18,   21,   21,
2961        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2962        21,   21,   21,  293,   21,   21,   21,   21,   21,   26,
2963        26,   26,   27,   27,   27,   28,   28,   28,  293,   29,
2964        29,   29,   30,   30,   30,   26,  371,  436,   27,  287,
2965       436,   28,  666,   21,   21,   29,  303,  282,   30,   31,
2966        31,   31,  284,  284,  284,  287,  291,  291,  291,  300,
2967       300,  300,  303,  282,  334,   31,  666,   21,   22,   22,
2968        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2969        22,   22,   22, 1511,   22,   22,   22,   22,   22,   32,
2970
2971        32,   32,   33,   33,   33,   34,   34,   34,  274,   35,
2972        35,   35,   36,   36,   36,   32,  282,  363,   33,  460,
2973       722,   34,  460,   22,   22,   35,  334,  363,   36,   37,
2974        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2975        40,   41,   41,   41,  722,   37,  541,   22,   38,  314,
2976       274,   39,  456,  541,   40,  363,  274,   41,   42,   42,
2977        42,  274,  307,  307,  307,  314,  274,  311,  311,  311,
2978       322,  322,  322,  456,   42,   43,   43,   43,   43,   43,
2979        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2980       331,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2981
2982        46,   46,   47,   47,   47,  331,   48,   48,   48,   49,
2983        49,   49,   45,  475,  654,   46,  475,  654,   47,  329,
2984        43,   43,   48,  329,  335,   49,  295,  329,   43,   44,
2985        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2986        44,   44,   44,   44,  325,   44,   44,   44,   44,   44,
2987        50,   50,   50,   51,   51,   51,   52,   52,   52,  461,
2988       325,  631,   55,   55,  555,  295,   50,   55,  296,   51,
2989      1512,  555,   52,  461,   44,   44,  335,   55,  295,  336,
2990       295,  695,   44,   53,   53,   53,   53,   53,   53,   53,
2991        53,   53,   53,   53,   53,   53,   53,   53,  631,   53,
2992
2993        53,   53,   53,   53, 1513,  341,   55,  296,   59,   59,
2994        59,   60,   60,   60,   61,   61,   61,  695,   56,   56,
2995       296,  341,  296,   56,   59,  319,  673,   60,   53,   53,
2996        61,  336,  319,   56,  671, 1514,   53,  384,  671,   53,
2997       673,  319,  333,  333,  333, 1515,   53,   54,   54,   54,
2998        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2999        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
3000        62,   63,   63,   63,   64,   64,   64,  677,   65,   65,
3001        65,   66,   66,   66,   62,  353,  376,   63,  366,  384,
3002        64,  677,   54,   54,   65, 1516,  763,   66,  366,  763,
3003
3004        54,  353,  376,   54,  338,  338,  338,  347,  347,  347,
3005        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3006        57,   57,   57,   57,   57,   57,  366,   57,   57,   57,
3007        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
3008        73,  726,   74,   74,   74,   75,   75,   75,   69, 1517,
3009       390,   70,  348,  403,   73,  726,   57,   57,   74,  348,
3010       611,   75,  350,  350,  350,   57,  390,   57,  348,  403,
3011       532,   57,  358,  358,  358,  611,   57,   57,   58,   58,
3012        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3013        58,   58,   58,  368,   58,   58,   58,   58,   58,   76,
3014
3015        76,   76,   77,   77,   77,   78,   78,   78,  385,   79,
3016        79,   79,   80,   80,   80,   76,  362, 1522,   77,  532,
3017       414,   78,  368,   58,   58,   79,  362,  368,   80,  373,
3018       373,  373,   58,  362,   58,  368,  414,  368,   58,  383,
3019       383,  383,  397,   58,   58,   67,   67,   67,   67,   67,
3020        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3021       385,   67,   67,   67,   67,   67,   81,   81,   81,   82,
3022        82,   82,   83,   83,   83,  733,   84,   84,   84,   85,
3023        85,   85,   81, 1148, 1523,   82,  645,  729,   83,  733,
3024        67,   67,   84, 1530,  397,   85, 1148,   67,  387,  387,
3025
3026       387,  645,  398,   67,  396,  396,  396,  400,  400,  400,
3027       533,  729,   67,   68,   68,   68,   68,   68,   68,   68,
3028        68,   68,   68,   68,   68,   68,   68,   68,  730,   68,
3029        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
3030        88,   88,   88, 1532,   89,   89,   89,   90,   90,   90,
3031        86, 1533,  730,   87,  398,  735,   88,  409,   68,   68,
3032        89, 1539,  533,   90,  409,   68,  408,  408,  408,  735,
3033      1540,   68,  559,  409,  411,  411,  411,  419,  419,  419,
3034        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
3035        71,   71,   71,   71,   71,   71, 1544,   71,   71,   71,
3036
3037        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
3038        93, 1546,   94,   94,   94,   95,   95,   95,   91,  425,
3039       559,   92,  420, 1547,   93,  632,   71,   71,   94,  420,
3040      1554,   95,  422,  422,  422,  425,  434,   71,  420,  433,
3041       433,  433,  438,  438,  438, 1555,   71,   72,   72,   72,
3042        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
3043        72,   72,  582,   72,   72,   72,   72,   72,   96,   96,
3044        96,   97,   97,   97,   98,   98,   98,  632,   99,   99,
3045        99,  100,  100,  100,   96,  434, 1556,   97,  434,  731,
3046        98,  595,   72,   72,   99,  441, 1557,  100,  101,  101,
3047
3048       101, 1558,  367,   72,  102,  102,  102,  103,  103,  103,
3049       582,  441,   72,  731,  101,  104,  104,  104,  732, 1559,
3050       102,  736,  453,  103,  105,  105,  105,  106,  106,  106,
3051       367,  104,  107,  107,  107,  108,  108,  108,  453,  595,
3052       105, 1569,  732,  106, 1571,  736,  367, 1438,  107,  369,
3053      1572,  108,  109,  109,  109,  109,  109,  109,  109,  109,
3054       109,  109,  109,  109,  109,  109,  109, 1438,  109,  109,
3055       109,  109,  109,  111,  111,  111,  112,  112,  112,  113,
3056       113,  113,  768,  114,  114,  114,  768,  369, 1577,  111,
3057      1579,  470,  112,  448,  465,  113, 1581,  109,  109,  114,
3058
3059       448,  465,  109,  369,  447,  447,  447,  470,  109,  448,
3060       465, 1582,  109,  450,  450,  450, 1584, 1585,  109,  110,
3061       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
3062       110,  110,  110,  110, 1586,  110,  110,  110,  110,  110,
3063       115,  115,  115,  116,  116,  116,  117,  117,  117,  667,
3064       118,  118,  118, 1595, 1601,  462,  115,  485,  501,  116,
3065       667, 1602,  117,  667,  110,  110,  118,  462,  462,  110,
3066       464,  464,  464,  485,  501,  110,  467,  467,  467,  110,
3067       479,  479,  479, 1606, 1608,  110,  119,  119,  119,  119,
3068       119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
3069
3070       119, 1620,  119,  119,  119,  119,  119,  121,  121,  121,
3071       122,  122,  122,  123,  123,  123,  676,  124,  124,  124,
3072      1118,  480, 1621,  121, 1118, 1626,  122,  676,  480,  123,
3073       676,  119,  119,  124,  496,  512,  119,  480,  482,  482,
3074       482,  496,  119,  495,  495,  495,  498,  498,  498, 1629,
3075       496,  512, 1630,  119,  120,  120,  120,  120,  120,  120,
3076       120,  120,  120,  120,  120,  120,  120,  120,  120, 1631,
3077       120,  120,  120,  120,  120,  125,  125,  125,  126,  126,
3078       126,  127,  127,  127, 1633,  128,  128,  128,  506,  506,
3079       506,  125,  524,  538,  126,  507, 1640,  127, 1643,  120,
3080
3081       120,  128,  507, 1646,  120,  509,  509,  509,  524,  538,
3082       120,  507,  518,  518,  518,  521,  521,  521,  531,  531,
3083       531,  120,  129,  129,  129,  129,  129,  129,  129,  129,
3084       129,  129,  129,  129,  129,  129,  129, 1647,  129,  129,
3085       129,  129,  129,  131,  131,  131,  132,  132,  132,  135,
3086       135,  135, 1649,  136,  136,  136,  139,  139,  139,  131,
3087       551,  564,  132,  519, 1650,  135, 1651,  129,  129,  136,
3088       519, 1652,  139,  535,  535,  535,  551,  564,  129,  519,
3089       543,  543,  543,  129,  130,  130,  130,  130,  130,  130,
3090       130,  130,  130,  130,  130,  130,  130,  130,  130, 1653,
3091
3092       130,  130,  130,  130,  130,  140,  140,  140,  141,  141,
3093       141,  142,  142,  142, 1654,  143,  143,  143,  144,  144,
3094       144,  140, 1655, 1657,  141, 1658, 1660,  142,  570,  130,
3095       130,  143, 1662, 1664,  144,  570,  544,  548,  548,  548,
3096       130,  557,  557,  557,  570,  130,  133,  133,  133,  133,
3097       133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
3098       133, 1665,  133,  133,  133,  133,  133,  145,  145,  145,
3099       146,  146,  146,  149,  149,  149, 1667,  150,  150,  150,
3100       153,  153,  153,  145,  544, 1669,  146, 1639,  544,  149,
3101       575,  133,  133,  150, 1671,  587,  153,  561,  561,  561,
3102
3103       569,  569,  569,  572,  572,  572,  575,  133,  580,  580,
3104       580,  587, 1639,  133,  134,  134,  134,  134,  134,  134,
3105       134,  134,  134,  134,  134,  134,  134,  134,  134, 1672,
3106       134,  134,  134,  134,  134,  154,  154,  154,  157,  157,
3107       157,  158,  158,  158, 1673,  161,  161,  161,  162,  162,
3108       162,  154, 1674, 1675,  157, 1677, 1686,  158,  600,  134,
3109       134,  161, 1687, 1689,  162,  584,  584,  584,  593,  593,
3110       593,  597,  597,  597,  600,  134,  608,  608,  608,  609,
3111      1693,  134,  137,  137,  137,  137,  137,  137,  137,  137,
3112       137,  137,  137,  137,  137,  137,  137, 1697,  137,  137,
3113
3114       137,  137,  137,  165,  165,  165,  166,  166,  166,  169,
3115       169,  169,  679,  170,  170,  170,  609, 1700, 1707,  165,
3116       616,  626,  166,  679, 1708,  169,  679,  137,  137,  170,
3117       137,  609,  137,  613,  613,  613,  616,  626,  137,  620,
3118       620,  620,  623,  623,  623,  137, 1709, 1710,  137,  138,
3119       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
3120       138,  138,  138,  138, 1712,  138,  138,  138,  138,  138,
3121       173,  173,  173,  174,  174,  174,  175,  175,  175,  683,
3122       176,  176,  176, 1715,  621, 1716,  173, 1717,  637,  174,
3123       683,  621,  175,  683,  138,  138,  176,  138,  884,  138,
3124
3125       621,  630,  630,  630,  637,  138,  634,  634,  634,  642,
3126       642,  642,  138, 1720,  884,  138,  147,  147,  147,  147,
3127       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
3128       147, 1727,  147,  147,  147,  147,  147,  177,  177,  177,
3129       178,  178,  178,  179,  179,  179, 1739,  180,  180,  180,
3130       183,  183,  183,  177, 1740, 1748,  178,  643,  672,  179,
3131      1751,  147,  147,  180,  643,  672,  183,  147,  644,  644,
3132       644,  672,  147,  643,  653,  653,  653,  887,  887,  887,
3133      1756,  887, 1760, 1767,  147,  148,  148,  148,  148,  148,
3134       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
3135
3136      1768,  148,  148,  148,  148,  148,  184,  184,  184,  185,
3137       185,  185,  186,  186,  186,  734,  187,  187,  187,  188,
3138       188,  188,  184, 1769, 1770,  185,  734,  681,  186,  734,
3139       148,  148,  187,  653,  681,  188,  148,  684,  685,  709,
3140       681,  148, 1779, 1783,  684,  685,  709, 1133, 1133, 1133,
3141       684,  685,  709,  148,  151,  151,  151,  151,  151,  151,
3142       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
3143       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
3144       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
3145       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
3146
3147       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
3148       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
3149       151,  151,  151,  151,  151,  151,  151,  151,  155,  155,
3150       155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
3151       155,  155,  155, 1786,  155,  155,  155,  155,  155,  189,
3152       189,  189,  190,  190,  190,  193,  193,  193, 1788,  194,
3153       194,  194,  195,  195,  195,  189, 1790, 1791,  190,  725,
3154      1160,  193, 1193,  155,  155,  194,  725,  155,  195,  899,
3155       899,  899,  725, 1160,  155, 1193, 1793,  155,  920,  920,
3156       920,  155, 1794,  155,  155,  156,  156,  156,  156,  156,
3157
3158       156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
3159      1795,  156,  156,  156,  156,  156,  196,  196,  196,  197,
3160       197,  197,  198,  198,  198, 1798,  199,  199,  199,  200,
3161       200,  200,  196, 1800, 1802,  197, 1807, 1813,  198, 1013,
3162       156,  156,  199,  899,  156,  200,  932,  932,  932, 1013,
3163       932,  156,  920,  932,  156, 1817, 1013, 1818,  156, 1819,
3164       156,  156,  159,  159,  159,  159,  159,  159,  159,  159,
3165       159,  159,  159,  159,  159,  159,  159, 1821,  159,  159,
3166       159,  159,  159,  203,  203,  203,  204,  204,  204,  207,
3167       207,  207, 1833,  208,  208,  208,  693,  693,  693,  203,
3168
3169      1836, 1837,  204, 1829, 1838,  207, 1840,  159,  159,  208,
3170       159,  159,  159,  693, 1841,  940,  940,  940,  159,  940,
3171      1829,  159,  940, 1843, 1844,  159, 1830, 1845,  159,  160,
3172       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3173       160,  160,  160,  160, 1847,  160,  160,  160,  160,  160,
3174       209,  209,  209,  210,  210,  210,  211,  211,  211, 1848,
3175       212,  212,  212,  701,  701,  701,  209, 1849, 1830,  210,
3176      1853, 1839,  211, 1855,  160,  160,  212,  160,  160,  160,
3177       701, 1858,  956,  956,  956,  160,  956, 1839,  160,  956,
3178      1859, 1860,  160, 1831, 1861,  160,  163,  163,  163,  163,
3179
3180       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3181       163, 1863,  163,  163,  163,  163,  163,  213,  213,  213,
3182       214,  214,  214,  217,  217,  217, 1831,  218,  218,  218,
3183       718,  718,  718,  213, 1865, 1866,  214, 1868, 1870,  217,
3184      1873,  163,  163,  218, 1874, 1876,  163,  718, 1155, 1155,
3185      1155, 1877,  163,  164,  164,  164,  164,  164,  164,  164,
3186       164,  164,  164,  164,  164,  164,  164,  164, 1878,  164,
3187       164,  164,  164,  164,  219,  219,  219,  220,  220,  220,
3188       221,  221,  221, 1875,  222,  222,  222,  740,  740,  740,
3189       219, 1875, 1880,  220, 1879, 1886,  221, 1887,  164,  164,
3190
3191       222, 1889, 1879,  164,  740, 1454, 1454, 1454, 1892,  164,
3192       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3193       167,  167,  167,  167,  167, 1908,  167,  167,  167,  167,
3194       167,  223,  223,  223,  224,  224,  224,  227,  227,  227,
3195      1909,  228,  228,  228,  229,  229,  229,  223, 1888, 1893,
3196       224, 1454, 1894,  227, 1914,  167,  167,  228, 1915,  167,
3197       229,  960,  960,  960, 1888, 1893,  167, 1916, 1894,  167,
3198       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3199       168,  168,  168,  168,  168, 1920,  168,  168,  168,  168,
3200       168,  230,  230,  230,  231,  231,  231,  232,  232,  232,
3201
3202      1922,  233,  233,  233,  234,  234,  234,  230, 1928, 1935,
3203       231, 1936, 1937,  232, 1950,  168,  168,  233, 1956,  168,
3204       234,  967,  967,  967, 1960,  960,  168, 1963, 1965,  168,
3205       171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
3206       171,  171,  171,  171,  171, 1968,  171,  171,  171,  171,
3207       171,  237,  237,  237,  238,  238,  238,  241,  241,  241,
3208      1970,  242,  242,  242,  243,  243,  243,  237, 1972, 1973,
3209       238, 1974, 1977,  241, 1979,  171,  171,  242, 1984,  171,
3210       243, 1456, 1456, 1456, 1986,  967,  171, 1994, 1995,  171,
3211      1459, 1459, 1459, 1462, 1462, 1462,  171,  172,  172,  172,
3212
3213       172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
3214       172,  172, 1996,  172,  172,  172,  172,  172,  244,  244,
3215       244,  245,  245,  245,  246,  246,  246, 1456,  247,  247,
3216       247,  248,  248,  248,  244, 1997, 1999,  245, 2013, 2010,
3217       246,  361,  172,  172,  247, 2010,  172,  248,  974,  974,
3218       974,  361,  974,  172, 2018,  974,  172, 1472, 1472, 1472,
3219      1497, 1497, 1497,  172,  181,  181,  181,  181,  181,  181,
3220       181,  181,  181,  181,  181,  181,  181,  181,  181,  361,
3221       181,  181,  181,  181,  181,  251,  251,  251,  252,  252,
3222       252, 2019, 2011,  361,  747,  747,  747,  361,  897,  897,
3223
3224       897,  251, 2020, 2021,  252, 2025, 2027,  294, 2028,  181,
3225       181,  747,  752,  752,  752,  181,  897,  294,  981,  981,
3226       981, 2029,  981, 2011, 2034,  981, 1509, 1509, 1509,  752,
3227       181,  182,  182,  182,  182,  182,  182,  182,  182,  182,
3228       182,  182,  182,  182,  182,  182,  294,  182,  182,  182,
3229       182,  182,  294,  764,  764,  764,  772,  772,  772,  294,
3230      1656, 1656, 1656,  294,  773,  773,  773,  779,  779,  779,
3231       764, 2041, 1509,  772, 2043, 2044,  182,  182,  781,  781,
3232       781,  773,  182, 2047,  779,  986,  986,  986, 2012,  986,
3233      2050, 2054,  986, 2055, 2056,  781, 2057,  182,  191,  191,
3234
3235       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
3236       191,  191,  191, 2058,  191,  191,  191,  191,  191,  793,
3237       793,  793,  794,  794,  794,  806,  806,  806,  814,  814,
3238       814,  819,  819,  819, 2012, 2059,  793, 2060, 2061,  794,
3239      2062, 2063,  806,  191,  191,  814, 2068, 2069,  819,  191,
3240      2070, 2071,  191,  998,  998,  998, 2089,  998, 2090, 2093,
3241       998, 1510, 1510, 1510,  191,  192,  192,  192,  192,  192,
3242       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
3243      2094,  192,  192,  192,  192,  192,  825,  825,  825,  847,
3244       847,  847,  875,  875,  875,  879,  879,  879, 2096,  898,
3245
3246       898,  898, 2100,  825, 2106, 2107,  847, 1510, 2108,  875,
3247       192,  192,  879,  931,  931,  931,  192,  898, 2091,  192,
3248      1007, 1007, 1007, 2122, 1007, 2126, 2091, 1007, 2127, 2128,
3249       931,  192,  201,  201,  201,  201,  201,  201,  201,  201,
3250       201,  201,  201,  201,  201,  201,  201, 2130,  201,  201,
3251       201,  201,  201,  928,  928,  928, 2134,  898,  929,  929,
3252       929,  935,  935,  935,  936,  936,  936,  939,  939,  939,
3253      2137,  928, 1659, 1659, 1659, 2138,  929,  201,  201,  935,
3254      2141, 2142,  936,  201,  939, 1597, 1597, 1597,  201,  202,
3255       202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
3256
3257       202,  202,  202,  202, 2145,  202,  202,  202,  202,  202,
3258       941,  941,  941,  943,  943,  943, 2152, 2154,  929,  947,
3259       947,  947, 2169,  948,  948,  948, 2183,  941,  936, 2184,
3260       943, 1597, 2187, 2194,  202,  202, 2173,  947, 2195, 2200,
3261       202,  948, 1661, 1661, 1661,  202,  205,  205,  205,  205,
3262       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3263       205, 2202,  205,  205,  205,  205,  205,  953,  953,  953,
3264       948,  954,  954,  954, 2214, 2092,  955,  955,  955, 2173,
3265       958,  958,  958, 2092, 2215,  953,  973,  973,  973,  954,
3266      2216,  205,  205,  955,  980,  980,  980,  205,  958, 2217,
3267
3268      1009, 1009, 1009,  973, 1009, 2218, 2219, 1009, 1663, 1663,
3269      1663,  980,  205,  206,  206,  206,  206,  206,  206,  206,
3270       206,  206,  206,  206,  206,  206,  206,  206, 2220,  206,
3271       206,  206,  206,  206, 2221,  954,  959,  959,  959,  977,
3272       977,  977,  978,  978,  978,  983,  983,  983,  984,  984,
3273       984,  985,  985,  985,  959, 1702, 2222,  977,  206,  206,
3274       978, 1702, 2223,  983,  206, 1702,  984, 2139,  985, 1702,
3275      1015, 1015, 1015,  959, 1015, 2139, 2174, 1015, 2230,  206,
3276       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
3277       215,  215,  215,  215,  215, 2231,  215,  215,  215,  215,
3278
3279       215,  988,  988,  988,  992,  992,  992, 2232,  978,  989,
3280       989,  989, 2140, 2234,  984,  993,  993,  993, 2244,  988,
3281      2140, 2245,  992, 2174, 2246,  215,  215,  989,  997,  997,
3282       997,  215, 2247,  993,  215, 1018, 1018, 1018, 2248, 1018,
3283      2249, 2250, 1018, 2253, 2254,  997,  215,  216,  216,  216,
3284       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
3285       216,  216, 2259,  216,  216,  216,  216,  216, 2260, 2266,
3286       989, 1001, 1001, 1001, 2267, 2268, 1002, 1002, 1002, 2269,
3287       993, 2283, 1006, 1006, 1006, 1008, 1008, 1008, 2284, 1001,
3288      2285, 2286,  216,  216, 1002, 1014, 1014, 1014,  216, 1006,
3289
3290      2288,  216, 1008, 1030, 1030, 1030, 2290, 1030, 2313, 2307,
3291      1030, 2314, 1014,  216,  225,  225,  225,  225,  225,  225,
3292       225,  225,  225,  225,  225,  225,  225,  225,  225, 2319,
3293       225,  225,  225,  225,  225, 2320, 2321, 1002, 1010, 1010,
3294      1010, 2307, 2324, 1011, 1011, 1011, 1017, 1017, 1017, 1019,
3295      1019, 1019, 1027, 1027, 1027, 2327, 1010, 2328, 2329,  225,
3296       225, 1011, 2330, 1017, 2331, 2308, 1019,  225, 2332,  225,
3297      1027, 2333,  225, 1666, 1666, 1666,  225, 1668, 1668, 1668,
3298       225,  226,  226,  226,  226,  226,  226,  226,  226,  226,
3299       226,  226,  226,  226,  226,  226, 2334,  226,  226,  226,
3300
3301       226,  226, 2308, 2335, 1011, 1028, 1028, 1028, 1029, 1029,
3302      1029, 1031, 1031, 1031, 1032, 1032, 1032, 2336, 1032, 2337,
3303      2339, 1032, 2340, 1028, 2341, 1029,  226,  226, 1031, 1033,
3304      1033, 1033, 2342, 2341,  226, 2343,  226, 2344, 2345,  226,
3305      2346, 1668, 2348,  226, 2349, 2350, 1033,  226,  235,  235,
3306       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
3307       235,  235,  235, 1028,  235,  235,  235,  235,  235, 1043,
3308      1043, 1043, 1044, 1044, 1044, 2352, 1044, 2353, 2355, 1044,
3309      2360, 2361, 1034, 1034, 1034, 2362, 1043, 1035, 1035, 1035,
3310      1036, 1036, 1036,  235,  235, 1037, 1037, 1037, 2364, 1034,
3311
3312      2369, 1052, 1052, 1052, 1035, 1052, 2347, 1036, 1052, 1057,
3313      1057, 1057, 1037, 1057, 2370, 2347, 1057,  235,  236,  236,
3314       236,  236,  236,  236,  236,  236,  236,  236,  236,  236,
3315       236,  236,  236, 1034,  236,  236,  236,  236,  236, 1035,
3316      1038, 1038, 1038, 2373, 2379, 1036, 2380, 1037, 1676, 1676,
3317      1676, 1045, 1045, 1045, 1048, 1048, 1048, 2382, 1038, 1049,
3318      1049, 1049, 2391,  236,  236, 1039, 1039, 1039, 1045, 1051,
3319      1051, 1051, 1048, 2393, 1063, 1063, 1063, 1049, 1063, 2396,
3320      2398, 1063, 2422, 1039, 2423, 2425, 1051,  236,  239,  239,
3321       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3322
3323       239,  239,  239, 2426,  239,  239,  239,  239,  239, 2427,
3324      1049, 2432, 1039, 1053, 1053, 1053, 2433, 1054, 1054, 1054,
3325      1056, 1056, 1056, 1059, 1059, 1059, 1062, 1062, 1062, 2417,
3326      2434, 1053, 2435,  239,  239, 1054, 2418, 1056, 1699, 1699,
3327      1699, 1059, 2436, 1062,  239,  240,  240,  240,  240,  240,
3328       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3329      2437,  240,  240,  240,  240,  240, 1067, 1067, 1067, 2417,
3330      1060, 1060, 1060, 2418, 1068, 1068, 1068, 2438, 1054, 1069,
3331      1069, 1069, 2439, 2440, 1067, 1711, 1711, 1711, 1060, 2441,
3332       240,  240, 1068, 1083, 1083, 1083, 1069, 1083, 2442, 2444,
3333
3334      1083,  240,  249,  249,  249,  249,  249,  249,  249,  249,
3335       249,  249,  249,  249,  249,  249,  249, 1060,  249,  249,
3336       249,  249,  249, 1070, 1070, 1070, 1072, 1072, 1072, 1068,
3337      2445, 1079, 1079, 1079, 1071, 1071, 1071, 1073, 1073, 1073,
3338      1070, 1084, 1084, 1084, 1072, 2446, 2447,  249,  249, 1079,
3339      2448, 1071, 1075, 1075, 1075, 1073, 2449, 2450,  249, 1084,
3340      1107, 1107, 1107, 2451, 1107, 2452, 2453, 1107, 2454, 1075,
3341      2455,  249,  250,  250,  250,  250,  250,  250,  250,  250,
3342       250,  250,  250,  250,  250,  250,  250, 2419,  250,  250,
3343       250,  250,  250, 1071, 2456, 1076, 1076, 1076, 1073, 1077,
3344
3345      1077, 1077, 1078, 1078, 1078, 2457, 1080, 1080, 1080, 1082,
3346      1082, 1082, 1076, 1085, 1085, 1085, 1077,  250,  250, 1078,
3347      1086, 1086, 1086, 2458, 1080, 2459, 1082, 2461,  250, 2465,
3348      2419, 1085, 2472, 1087, 1087, 1087, 2473, 1086, 1088, 1088,
3349      1088,  250,  292, 1080, 2477, 1076, 1089, 1089, 1089,  292,
3350      1087, 2480, 1090, 1090, 1090, 2521, 1088, 2523,  292,  292,
3351      1076, 1078, 2524, 2525, 1089, 1091, 1091, 1091, 1085, 1090,
3352      2518, 2528, 1092, 1092, 1092, 2529, 2531, 1093, 1093, 1093,
3353      2532, 2534, 1091, 1106, 1106, 1106,  292,  292,  292, 1092,
3354      1713, 1713, 1713,  292,  292, 1093, 2535,  292,  292, 2518,
3355
3356      1106,  292, 2536,  292,  292,  292,  359, 1094, 1094, 1094,
3357      1100, 1100, 1100,  359, 2430, 1091, 2431, 1089, 1101, 1101,
3358      1101, 2537,  359,  359, 2430, 1094, 2431, 2430, 1100, 2431,
3359      1091, 1104, 1104, 1104, 1703, 2538, 1101, 1105, 1105, 1105,
3360      1703, 1108, 1108, 1108, 1703, 1109, 1109, 1109, 1703, 1104,
3361       359,  359,  359, 2540, 2541, 1105, 2542,  359,  359, 1108,
3362      2543,  359,  359, 1109, 2546,  359, 2519,  359,  359,  359,
3363      1110, 1110, 1110, 1111, 1111, 1111, 2547, 1111, 1094, 2548,
3364      1111, 2549, 1101, 2550, 1113, 1113, 1113, 1110, 2551, 1114,
3365      1114, 1114, 1129, 1129, 1129, 1130, 1130, 1130, 1132, 1132,
3366
3367      1132, 1105, 1113, 1162, 1162, 1162, 1109, 1114, 2519, 2552,
3368      1129, 2553, 2554, 1130, 2555, 2556, 1132, 1163, 1163, 1163,
3369      1162, 1164, 1164, 1164, 1166, 1166, 1166, 1167, 1167, 1167,
3370      1168, 1168, 1168, 2557, 1168, 1163, 2558, 1168, 2559, 1164,
3371      2560, 2520, 1166, 2562, 1167, 1132, 1171, 1171, 1171, 1173,
3372      1173, 1173, 2572, 1114, 1174, 1174, 1174, 1176, 1176, 1176,
3373      1181, 1181, 1181, 1171, 1178, 1178, 1178, 1173, 1178, 2573,
3374      2574, 1178, 1174, 1166, 2578, 1176, 2596, 1181, 1182, 1182,
3375      1182, 2597, 1182, 2520, 2530, 1182, 1183, 1183, 1183, 1184,
3376      1184, 1184, 1185, 1185, 1185, 2598, 1185, 2530, 2599, 1185,
3377
3378      1187, 1187, 1187, 1183, 1176, 2600, 1184, 1171, 1189, 1189,
3379      1189, 1190, 1190, 1190, 1192, 1192, 1192, 1187, 1195, 1195,
3380      1195, 1197, 1197, 1197, 2601, 2613, 1189, 2610, 2616, 1190,
3381      2617, 2611, 1192, 2533, 2621, 1195, 1198, 1198, 1198, 1197,
3382      1200, 1200, 1200, 1201, 1201, 1201, 2533, 1201, 2622, 2605,
3383      1201, 1205, 1205, 1205, 1198, 1206, 1206, 1206, 1200, 1208,
3384      1208, 1208, 2605, 1221, 1221, 1221, 2611, 1221, 2623, 1205,
3385      1221, 2624, 2625, 1206, 1192, 2610, 2626, 1208, 1225, 1225,
3386      1225, 1226, 1226, 1226, 1227, 1227, 1227, 1200, 1229, 1229,
3387      1229, 1235, 1235, 1235, 2606, 1225, 1231, 1231, 1231, 1226,
3388
3389      1231, 2627, 1227, 1231, 2628, 2630, 1229, 2606, 2631, 1235,
3390      1236, 1236, 1236, 1238, 1238, 1238, 1239, 1239, 1239, 2632,
3391      1239, 2633, 2634, 1239, 1242, 1242, 1242, 2635, 1236, 2636,
3392      2637, 1238, 1243, 1243, 1243, 1244, 1244, 1244, 1246, 1246,
3393      1246, 1242, 1247, 1247, 1247, 1248, 1248, 1248, 2639, 1229,
3394      1243, 2640, 2641, 1244, 2642, 2643, 1246, 2644, 2645, 1247,
3395      2646, 2647, 1248, 1249, 1249, 1249, 1250, 1250, 1250, 1252,
3396      1252, 1252, 2648, 1248, 1238, 1255, 1255, 1255, 1256, 1256,
3397      1256, 1249, 1256, 2649, 1250, 1256, 2650, 1252, 1261, 1261,
3398      1261, 2651, 1255, 1262, 1262, 1262, 1264, 1264, 1264, 1267,
3399
3400      1267, 1267, 1274, 1274, 1274, 1246, 1261, 2652, 1268, 1268,
3401      1268, 1262, 1268, 2653, 1264, 1268, 1267, 1271, 1271, 1271,
3402      1274, 1271, 2659, 2663, 1271, 1275, 1275, 1275, 1277, 1277,
3403      1277, 2664, 1282, 1282, 1282, 1252, 1282, 2665, 2666, 1282,
3404      1285, 1285, 1285, 1275, 2683, 2678, 1277, 1286, 1286, 1286,
3405      2684, 1286, 2685, 2686, 1286, 2678, 2687, 1285, 1289, 1289,
3406      1289, 1264, 1290, 1290, 1290, 2688, 1290, 2691, 2692, 1290,
3407      1298, 1298, 1298, 2693, 2694, 1289, 1299, 1299, 1299, 1301,
3408      1301, 1301, 1302, 1302, 1302, 2503, 1302, 2703, 1298, 1302,
3409      1308, 1308, 1308, 1277, 1299, 2503, 2679, 1301, 1305, 1305,
3410
3411      1305, 2503, 1305, 2681, 2682, 1305, 2679, 1308, 1309, 1309,
3412      1309, 2695, 1309, 2681, 2682, 1309, 1314, 1314, 1314, 1315,
3413      1315, 1315, 1317, 1317, 1317, 1322, 1322, 1322, 2504, 1322,
3414      2704, 2705, 1322, 2706, 1314, 2707, 2708, 1315, 2504, 2709,
3415      1317, 1325, 1325, 1325, 2504, 2695, 1301, 1326, 1326, 1326,
3416      2710, 1326, 2713, 2714, 1326, 1329, 1329, 1329, 1325, 1330,
3417      1330, 1330, 1332, 1332, 1332, 1334, 1334, 1334, 2716, 1334,
3418      1317, 2717, 1334, 1329, 1337, 1337, 1337, 1330, 2718, 2720,
3419      1332, 1338, 1338, 1338, 1340, 1340, 1340, 1342, 1342, 1342,
3420      2722, 1342, 1337, 2723, 1342, 2724, 1346, 1346, 1346, 1338,
3421
3422      2727, 2728, 1340, 1347, 1347, 1347, 1349, 1349, 1349, 1357,
3423      1357, 1357, 2729, 1332, 1346, 1351, 1351, 1351, 2730, 1351,
3424      2731, 1347, 1351, 2734, 1349, 2735, 2742, 1357, 1358, 1358,
3425      1358, 1360, 1360, 1360, 2743, 1361, 1361, 1361, 1362, 1362,
3426      1362, 2744, 1362, 2746, 2752, 1362, 1358, 2753, 2754, 1360,
3427      2755, 1340, 1361, 2756, 2757, 1349, 1363, 1363, 1363, 1364,
3428      1364, 1364, 2758, 1364, 2759, 2760, 1364, 1366, 1366, 1366,
3429      1367, 1367, 1367, 1363, 1369, 1369, 1369, 1371, 1371, 1371,
3430      1372, 1372, 1372, 2761, 1372, 1366, 2763, 1372, 1367, 2764,
3431      2769, 1360, 1369, 2770, 1371, 1375, 1375, 1375, 1376, 1376,
3432
3433      1376, 2771, 1376, 2772, 2782, 1376, 1378, 1378, 1378, 1379,
3434      1379, 1379, 1375, 1381, 1381, 1381, 1383, 1383, 1383, 2773,
3435      1383, 2783, 2784, 1383, 1378, 2785, 2786, 1379, 1386, 1386,
3436      1386, 1381, 1387, 1387, 1387, 1389, 1389, 1389, 1390, 1390,
3437      1390, 1369, 1392, 1392, 1392, 2787, 1386, 1391, 1391, 1391,
3438      1387, 1391, 2788, 1389, 1391, 1390, 1393, 1393, 1393, 1392,
3439      1393, 2789, 2773, 1393, 1394, 1394, 1394, 1395, 1395, 1395,
3440      1397, 1397, 1397, 1398, 1398, 1398, 2793, 1381, 2794, 1399,
3441      1399, 1399, 1394, 1399, 2795, 1395, 1399, 2796, 1397, 2797,
3442      1398, 1402, 1402, 1402, 2798, 1389, 1403, 1403, 1403, 2800,
3443
3444      1403, 2801, 2803, 1403, 1404, 1404, 1404, 2804, 1402, 1405,
3445      1405, 1405, 1407, 1407, 1407, 2805, 1409, 1409, 1409, 1413,
3446      1413, 1413, 1404, 1414, 1414, 1414, 2806, 1405, 2808, 2809,
3447      1407, 2813, 1397, 1409, 1416, 1416, 1416, 1413, 1419, 1419,
3448      1419, 1414, 1420, 1420, 1420, 1422, 1422, 1422, 1426, 1426,
3449      1426, 2814, 1416, 1427, 1427, 1427, 1419, 1423, 1423, 1423,
3450      1420, 1423, 2815, 1422, 1423, 2818, 1426, 1429, 1429, 1429,
3451      2823, 1427, 2824, 2825, 1407, 1430, 1430, 1430, 2826, 1430,
3452      2827, 2828, 1430, 2829, 2830, 1429, 1434, 1434, 1434, 1435,
3453      1435, 1435, 1437, 1437, 1437, 1416, 2831, 2832, 1422, 1439,
3454
3455      1439, 1439, 2833, 2834, 1434, 2836, 2837, 1435, 2838, 2839,
3456      1437, 1446, 1446, 1446, 1475, 1475, 1475, 1439, 1439, 1476,
3457      1476, 1476, 2846, 1476, 2849, 2840, 1476, 1429, 2850, 1446,
3458      2842, 1475, 1477, 1477, 1477, 1478, 1478, 1478, 1479, 1479,
3459      1479, 2853, 1479, 2855, 2842, 1479, 1482, 1482, 1482, 2843,
3460      1477, 2856, 1478, 1437, 1484, 1484, 1484, 2858, 1484, 2859,
3461      2843, 1484, 2862, 2863, 1482, 1487, 1487, 1487, 1488, 1488,
3462      1488, 2840, 1488, 2864, 2865, 1488, 2866, 1446, 2867, 1489,
3463      1489, 1489, 1487, 1489, 2868, 2869, 1489, 1493, 1493, 1493,
3464      1477, 2870, 1494, 1494, 1494, 1482, 1494, 2871, 2872, 1494,
3465
3466      1496, 1496, 1496, 2876, 1493, 1499, 1499, 1499, 1500, 1500,
3467      1500, 2884, 1500, 2886, 2888, 1500, 2890, 2898, 1496, 1501,
3468      1501, 1501, 1499, 1502, 1502, 1502, 1504, 1504, 1504, 1518,
3469      1518, 1518, 1519, 1519, 1519, 2874, 1501, 2900, 1520, 1520,
3470      1520, 1502, 1520, 2904, 1504, 1520, 1518, 2874, 2906, 1519,
3471      1496, 1521, 1521, 1521, 2875, 1524, 1524, 1524, 1525, 1525,
3472      1525, 1526, 1526, 1526, 2908, 1526, 2875, 2909, 1526, 1521,
3473      2910, 2901, 1502, 1524, 2902, 1525, 1527, 1527, 1527, 1528,
3474      1528, 1528, 1529, 1529, 1529, 2911, 1529, 2918, 2902, 1529,
3475      1531, 1531, 1531, 2881, 1527, 2905, 1528, 1534, 1534, 1534,
3476
3477      1535, 1535, 1535, 2922, 1535, 2881, 2905, 1535, 1531, 1536,
3478      1536, 1536, 2901, 2928, 1534, 1521, 1537, 1537, 1537, 1524,
3479      1538, 1538, 1538, 1541, 1541, 1541, 1536, 1542, 1542, 1542,
3480      2930, 1542, 2917, 1537, 1542, 2933, 1527, 2921, 1538, 2927,
3481      1541, 1543, 1543, 1543, 1545, 1545, 1545, 1548, 1548, 1548,
3482      2917, 1531, 2921, 1549, 1549, 1549, 2882, 1549, 2927, 1543,
3483      1549, 1545, 1537, 2935, 1548, 1550, 1550, 1550, 2882, 1550,
3484      2903, 2903, 1550, 1553, 1553, 1553, 1560, 1560, 1560, 2940,
3485      1561, 1561, 1561, 2941, 1561, 2943, 1538, 1561, 2944, 2945,
3486      1553, 1564, 1564, 1564, 1560, 1565, 1565, 1565, 1566, 1566,
3487
3488      1566, 1567, 1567, 1567, 1568, 1568, 1568, 1543, 1564, 1570,
3489      1570, 1570, 1565, 2947, 2948, 1566, 2929, 2949, 1567, 1576,
3490      1576, 1576, 1568, 1573, 1573, 1573, 1570, 1573, 2950, 2952,
3491      1573, 1578, 1578, 1578, 2932, 2929, 1576, 1580, 1580, 1580,
3492      2953, 1560, 1583, 1583, 1583, 1566, 1587, 1587, 1587, 1578,
3493      1588, 1588, 1588, 2932, 2955, 1580, 1670, 1670, 1670, 1568,
3494      1583, 2956, 2963, 1587, 2934, 1565, 2964, 2965, 1588, 2966,
3495      2967, 1567, 1589, 1589, 1589, 2968, 1589, 2971, 2972, 1589,
3496      1592, 1592, 1592, 2934, 1592, 2973, 2974, 1592, 1596, 1596,
3497      1596, 2975, 1587, 2976, 2977, 1578, 1607, 1607, 1607, 1583,
3498
3499      2978, 2980, 1670, 1580, 2982, 2984, 1596, 1588, 1598, 1598,
3500      1598, 2985, 1598, 2987, 1607, 1598, 1603, 1603, 1603, 2998,
3501      1603, 2996, 2999, 1603, 1609, 1609, 1609, 1610, 1610, 1610,
3502      3000, 1610, 3001, 2996, 1610, 2997, 1613, 1613, 1613, 3002,
3503      1613, 3003, 1609, 1613, 1616, 1616, 1616, 2997, 1617, 1617,
3504      1617, 3007, 1617, 3008, 1596, 1617, 3009, 1607, 3010, 1622,
3505      1622, 1622, 1616, 1622, 3011, 3012, 1622, 1625, 1625, 1625,
3506      1627, 1627, 1627, 1628, 1628, 1628, 3013, 1628, 3014, 3015,
3507      1628, 1609, 1632, 1632, 1632, 1625, 3017, 1627, 1634, 1634,
3508      1634, 1616, 1635, 1635, 1635, 1636, 1636, 1636, 3018, 3019,
3509
3510      1632, 1637, 1637, 1637, 3015, 1634, 1638, 1638, 1638, 3020,
3511      1635, 3021, 3022, 1636, 1625, 1641, 1641, 1641, 1637, 1648,
3512      1648, 1648, 3023, 3024, 1638, 3025, 1678, 1678, 1678, 3026,
3513      3027, 1632, 3028, 1641, 1679, 1679, 1679, 1648, 1679, 3029,
3514      3030, 1679, 1682, 1682, 1682, 3031, 3032, 1636, 1683, 1683,
3515      1683, 3033, 1683, 3034, 3035, 1683, 1688, 1688, 1688, 1635,
3516      1682, 3036, 3039, 1690, 1690, 1690, 1641, 1690, 1638, 3042,
3517      1690, 1648, 1678, 3043, 1688, 1694, 1694, 1694, 3044, 1694,
3518      3045, 3039, 1694, 1641, 1698, 1698, 1698, 1701, 1701, 1701,
3519      3046, 1701, 3047, 3048, 1701, 1704, 1704, 1704, 3049, 1705,
3520
3521      1705, 1705, 1698, 1705, 3050, 3051, 1705, 1688, 3052, 1682,
3522      3053, 3054, 1704, 1706, 1706, 1706, 1714, 1714, 1714, 1718,
3523      1718, 1718, 1719, 1719, 1719, 1721, 1721, 1721, 1722, 1722,
3524      1722, 1706, 1722, 3055, 3056, 1722, 1723, 1723, 1723, 3057,
3525      1723, 3058, 1721, 1723, 3059, 1698, 3060, 1726, 1726, 1726,
3526      1728, 1728, 1728, 1729, 1729, 1729, 1730, 1730, 1730, 3061,
3527      1730, 3062, 3063, 1730, 1706, 1726, 3060, 1728, 1737, 1737,
3528      1737, 1729, 1733, 1733, 1733, 1734, 1734, 1734, 3064, 1734,
3529      1714, 3065, 1734, 1718, 3066, 1737, 1719, 1738, 1738, 1738,
3530      1733, 1741, 1741, 1741, 1726, 1741, 3067, 3068, 1741, 3069,
3531
3532      1729, 1744, 1744, 1744, 3070, 1738, 1745, 1745, 1745, 3071,
3533      1745, 3072, 3073, 1745, 1746, 1746, 1746, 3074, 1744, 1747,
3534      1747, 1747, 3075, 1747, 3076, 3077, 1747, 1749, 1749, 1749,
3535      3078, 1746, 1750, 1750, 1750, 1752, 1752, 1752, 1733, 1752,
3536      3082, 3083, 1752, 3079, 3084, 1749, 1755, 1755, 1755, 3079,
3537      3085, 1738, 1757, 1757, 1757, 1758, 1758, 1758, 3086, 1758,
3538      3087, 3089, 1758, 3090, 1755, 1759, 1759, 1759, 3092, 1757,
3539      1761, 1761, 1761, 3093, 1761, 3095, 3096, 1761, 1764, 1764,
3540      1764, 3099, 1759, 1765, 1765, 1765, 3100, 1765, 3101, 3102,
3541      1765, 3104, 1755, 3106, 3108, 1764, 1766, 1766, 1766, 1771,
3542
3543      1771, 1771, 1772, 1772, 1772, 1773, 1773, 1773, 1774, 1774,
3544      1774, 3110, 1774, 1766, 3112, 1774, 1771, 1775, 1775, 1775,
3545      1772, 3113, 1773, 1776, 1776, 1776, 1777, 1777, 1777, 1778,
3546      1778, 1778, 3114, 3115, 1775, 1780, 1780, 1780, 3116, 3117,
3547      1776, 3118, 3119, 1777, 1781, 1781, 1781, 1778, 1781, 3121,
3548      3098, 1781, 1780, 1782, 1782, 1782, 1784, 1784, 1784, 1785,
3549      1785, 1785, 3123, 1785, 3098, 3125, 1785, 3126, 1772, 3127,
3550      1782, 3128, 3145, 1784, 1787, 1787, 1787, 1789, 1789, 1789,
3551      3145, 1776, 1792, 1792, 1792, 1796, 1796, 1796, 3129, 1778,
3552      3141, 3130, 1787, 3187, 3151, 1789, 1507, 1797, 1797, 1797,
3553
3554      1792, 1797, 1796, 1506, 1797, 1799, 1799, 1799, 1801, 1801,
3555      1801, 3142, 1803, 1803, 1803, 1804, 1804, 1804, 1805, 1805,
3556      1805, 3143, 3187, 1799, 3129, 3143, 1801, 3130, 1789, 1803,
3557      1792, 3151, 1804, 3137, 3141, 1805, 1806, 1806, 1806, 1808,
3558      1808, 1808, 1809, 1809, 1809, 1810, 1810, 1810, 1811, 1811,
3559      1811, 1812, 1812, 1812, 1806, 3142, 3146, 1808, 3153, 1801,
3560      1809, 3152, 1810, 3138, 3146, 1811, 1814, 1814, 1814, 1812,
3561      1814, 3139, 3140, 1814, 1820, 1820, 1820, 1822, 1822, 1822,
3562      3144, 3137, 1805, 3147, 3144, 1808, 1823, 1823, 1823, 1503,
3563      1823, 3147, 1820, 1823, 1822, 1824, 1824, 1824, 3152, 3153,
3564
3565      1825, 1825, 1825, 1806, 1826, 1826, 1826, 1809, 1827, 1827,
3566      1827, 3138, 1827, 1824, 1498, 1827, 1812, 1495, 1825, 3139,
3567      3140, 1826, 1828, 1828, 1828, 1820, 1834, 1834, 1834, 1835,
3568      1835, 1835, 1842, 1842, 1842, 1846, 1846, 1846, 1492, 1483,
3569      1828, 3149, 1481, 1834, 1850, 1850, 1850, 1835, 1851, 1851,
3570      1851, 1852, 1852, 1852, 1824, 1825, 1854, 1854, 1854, 1856,
3571      1856, 1856, 1857, 1857, 1857, 1862, 1862, 1862, 1864, 1864,
3572      1864, 1867, 1867, 1867, 1869, 1869, 1869, 1871, 1871, 1871,
3573      1872, 1872, 1872, 1884, 1884, 1884, 1864, 3169, 3149, 1867,
3574      1835, 1869, 1881, 1881, 1881, 1871, 1881, 1872, 3150, 1881,
3575
3576      3170, 1884, 1885, 1885, 1885, 1890, 1890, 1890, 1891, 1891,
3577      1891, 1895, 1895, 1895, 1899, 1899, 1899, 3148, 1864, 1885,
3578      1896, 1896, 1896, 3154, 1896, 3148, 1480, 1896, 1895, 1884,
3579      3169, 3155, 1899, 1900, 1900, 1900, 1871, 1901, 1901, 1901,
3580      1902, 1902, 1902, 3170, 1902, 3150, 3156, 1902, 1474, 1473,
3581      1900, 1903, 1903, 1903, 1901, 1904, 1904, 1904, 1905, 1905,
3582      1905, 1906, 1906, 1906, 3154, 1906, 3155, 1899, 1906, 1903,
3583      1907, 1907, 1907, 1904, 3188, 1905, 1910, 1910, 1910, 3157,
3584      1910, 3156, 3163, 1910, 3161, 1913, 1913, 1913, 1907, 1913,
3585      3164, 3163, 1913, 1917, 1917, 1917, 1919, 1919, 1919, 3164,
3586
3587      1921, 1921, 1921, 3188, 1903, 1923, 1923, 1923, 3165, 1923,
3588      3158, 1917, 1923, 1926, 1926, 1926, 3161, 1907, 1921, 1927,
3589      1927, 1927, 3159, 1927, 3160, 3157, 1927, 1929, 1929, 1929,
3590      1926, 1929, 3162, 3181, 1929, 1932, 1932, 1932, 1933, 1933,
3591      1933, 3166, 1933, 3165, 1471, 1933, 1934, 1934, 1934, 1938,
3592      1938, 1938, 1932, 1939, 1939, 1939, 3158, 1939, 1921, 3159,
3593      1939, 3160, 3209, 1934, 3162, 3171, 1938, 1940, 1940, 1940,
3594      1941, 1941, 1941, 3197, 1941, 3181, 3166, 1941, 1944, 1944,
3595      1944, 3175, 1945, 1945, 1945, 1940, 1945, 3167, 1470, 1945,
3596      1946, 1946, 1946, 3177, 3209, 1944, 1947, 1947, 1947, 1948,
3597
3598      1948, 1948, 3177, 1948, 3168, 1469, 1948, 1946, 1949, 1949,
3599      1949, 3171, 3172, 1947, 3175, 1951, 1951, 1951, 1940, 1951,
3600      3197, 3167, 1951, 1954, 1954, 1954, 1949, 1955, 1955, 1955,
3601      3173, 1955, 3178, 1468, 1955, 1957, 1957, 1957, 3168, 1957,
3602      1954, 3178, 1957, 1961, 1961, 1961, 1964, 1964, 1964, 1966,
3603      1966, 1966, 1967, 1967, 1967, 1969, 1969, 1969, 3172, 1949,
3604      3174, 1961, 3179, 3180, 1964, 3173, 1966, 1971, 1971, 1971,
3605      1967, 1971, 1969, 3219, 1971, 1975, 1975, 1975, 1978, 1978,
3606      1978, 1980, 1980, 1980, 1981, 1981, 1981, 3219, 1981, 3183,
3607      1467, 1981, 3182, 1975, 3184, 3174, 1978, 1466, 1980, 3179,
3608
3609      3180, 1969, 1982, 1982, 1982, 1983, 1983, 1983, 3191, 1983,
3610      1964, 1465, 1983, 1967, 1985, 1985, 1985, 3176, 3192, 1982,
3611      1987, 1987, 1987, 1988, 1988, 1988, 1989, 1989, 1989, 1990,
3612      1990, 1990, 1985, 1990, 3182, 3183, 1990, 3185, 1987, 1464,
3613      3184, 1988, 3191, 1989, 1991, 1991, 1991, 1992, 1992, 1992,
3614      3176, 1992, 3192, 3186, 1992, 1993, 1993, 1993, 1998, 1998,
3615      1998, 1991, 3189, 2000, 2000, 2000, 3190, 2000, 3198, 1987,
3616      2000, 3189, 3193, 1993, 3185, 3190, 1998, 2003, 2003, 2003,
3617      1985, 2004, 2004, 2004, 3199, 2005, 2005, 2005, 1988, 2005,
3618      3186, 1463, 2005, 1461, 1460, 2003, 2008, 2008, 2008, 2004,
3619
3620      2014, 2014, 2014, 2015, 2015, 2015, 1458, 2015, 3195, 1457,
3621      2015, 2016, 2016, 2016, 2008, 3198, 3195, 2014, 3193, 3196,
3622      1993, 3199, 3220, 1998, 2017, 2017, 2017, 3196, 2003, 2016,
3623      2022, 2022, 2022, 3220, 2004, 2023, 2023, 2023, 2024, 2024,
3624      2024, 2026, 2026, 2026, 2030, 2030, 2030, 2031, 2031, 2031,
3625      2032, 2032, 2032, 2033, 2033, 2033, 2035, 2035, 2035, 2036,
3626      2036, 2036, 2037, 2037, 2037, 2038, 2038, 2038, 2039, 2039,
3627      2039, 2040, 2040, 2040, 3194, 2016, 2042, 2042, 2042, 2045,
3628      2045, 2045, 3211, 2048, 2048, 2048, 2049, 2049, 2049, 3200,
3629      2049, 3211, 1455, 2049, 2042, 1453, 3203, 2045, 1452, 2033,
3630
3631      2048, 2051, 2051, 2051, 2052, 2052, 2052, 2053, 2053, 2053,
3632      1451, 2053, 1450, 3201, 2053, 2064, 2064, 2064, 1449, 2051,
3633      3194, 2052, 2065, 2065, 2065, 3205, 3200, 2042, 2066, 2066,
3634      2066, 3203, 2066, 2064, 1448, 2066, 2067, 2067, 2067, 2065,
3635      2072, 2072, 2072, 2073, 2073, 2073, 2074, 2074, 2074, 2075,
3636      2075, 2075, 1447, 2075, 3201, 3204, 2075, 2076, 2076, 2076,
3637      2077, 2077, 2077, 2074, 2064, 2078, 2078, 2078, 3210, 2078,
3638      3206, 3205, 2078, 1445, 3212, 2076, 3215, 2077, 2079, 2079,
3639      2079, 3202, 2079, 3212, 3207, 2079, 2082, 2082, 2082, 2073,
3640      3204, 2083, 2083, 2083, 2085, 2085, 2085, 1444, 2085, 3208,
3641
3642      3210, 2085, 1443, 1442, 2082, 2088, 2088, 2088, 2076, 2083,
3643      2095, 2095, 2095, 2097, 2097, 2097, 3206, 2097, 1433, 1418,
3644      2097, 3207, 3202, 2088, 3215, 2101, 2101, 2101, 2095, 2101,
3645      3213, 1417, 2101, 2104, 2104, 2104, 3208, 2082, 2105, 2105,
3646      2105, 1412, 2105, 3214, 3216, 2105, 1411, 2109, 2109, 2109,
3647      2104, 2109, 1410, 1408, 2109, 2112, 2112, 2112, 2088, 2113,
3648      2113, 2113, 3213, 2113, 1401, 2095, 2113, 2116, 2116, 2116,
3649      2117, 2117, 2117, 2112, 2117, 3214, 3217, 2117, 2118, 2118,
3650      2118, 3218, 2118, 1400, 2116, 2118, 2121, 2121, 2121, 2123,
3651      2123, 2123, 3216, 2123, 1382, 1377, 2123, 2129, 2129, 2129,
3652
3653      2131, 2131, 2131, 1374, 2121, 2132, 2132, 2132, 3217, 2132,
3654      1373, 1370, 2132, 3218, 1365, 2129, 1356, 2131, 1355, 2112,
3655      2133, 2133, 2133, 2135, 2135, 2135, 2136, 2136, 2136, 1354,
3656      2136, 1350, 1345, 2136, 1341, 2143, 2143, 2143, 2133, 1333,
3657      2135, 2146, 2146, 2146, 1328, 2146, 1327, 1321, 2146, 2153,
3658      2153, 2153, 2121, 2143, 2149, 2149, 2149, 1320, 2149, 1319,
3659      1318, 2149, 1313, 2155, 2155, 2155, 1312, 2153, 2156, 2156,
3660      2156, 2157, 2157, 2157, 1311, 2157, 1310, 1297, 2157, 1296,
3661      2133, 2155, 1295, 2160, 2160, 2160, 2156, 2160, 1294, 1293,
3662      2160, 2163, 2163, 2163, 1292, 2164, 2164, 2164, 1291, 1281,
3663
3664      2153, 2165, 2165, 2165, 2156, 2166, 2166, 2166, 1280, 2163,
3665      1279, 2163, 2164, 2167, 2167, 2167, 1278, 1266, 2165, 2168,
3666      2168, 2168, 2166, 2170, 2170, 2170, 2171, 2171, 2171, 2155,
3667      2167, 2172, 2172, 2172, 2175, 2175, 2175, 2168, 2176, 2176,
3668      2176, 2170, 2176, 1265, 2171, 2176, 2179, 2179, 2179, 2172,
3669      1260, 1259, 2165, 2180, 2180, 2180, 2181, 2181, 2181, 2182,
3670      2182, 2182, 1254, 1253, 2179, 2185, 2185, 2185, 1234, 2166,
3671      1230, 1224, 2167, 2186, 2186, 2186, 2188, 2188, 2188, 2189,
3672      2189, 2189, 1220, 2170, 2168, 2190, 2190, 2190, 2191, 2191,
3673      2191, 2192, 2192, 2192, 2193, 2193, 2193, 2196, 2196, 2196,
3674
3675      2197, 2197, 2197, 1219, 1218, 2179, 2198, 2198, 2198, 2199,
3676      2199, 2199, 2201, 2201, 2201, 2204, 2204, 2204, 2205, 2205,
3677      2205, 1217, 2205, 1216, 1215, 2205, 2208, 2208, 2208, 1214,
3678      2201, 1213, 2204, 2209, 2209, 2209, 1212, 2211, 2211, 2211,
3679      1211, 2211, 1210, 2208, 2211, 2224, 2224, 2224, 2225, 2225,
3680      2225, 2209, 2225, 2226, 2226, 2225, 2226, 1209, 2227, 2227,
3681      1204, 2227, 1196, 2224, 2226, 1194, 1188, 2226, 1186, 2227,
3682      1177, 2226, 2227, 2228, 2228, 2228, 2227, 2229, 2229, 2229,
3683      2233, 2233, 2233, 2235, 2235, 2235, 1172, 2235, 1161, 1159,
3684      2235, 1158, 2208, 2238, 2238, 2238, 2239, 2239, 2239, 1157,
3685
3686      2239, 1156, 1154, 2239, 1153, 1152, 2224, 2242, 2242, 2242,
3687      1151, 2238, 2243, 2243, 2243, 2251, 2251, 2251, 2252, 2252,
3688      2252, 1150, 2255, 2255, 2255, 2242, 2255, 1149, 1147, 2255,
3689      2243, 2258, 2258, 2258, 1146, 1145, 2252, 1144, 1143, 2238,
3690      2261, 2261, 2261, 2262, 2262, 2262, 1142, 2262, 2258, 1141,
3691      2262, 2265, 2265, 2265, 2270, 2270, 2270, 1140, 2261, 2272,
3692      2272, 2272, 1139, 2243, 2273, 2273, 2273, 1138, 2273, 2265,
3693      1137, 2273, 2270, 2276, 2276, 2276, 2272, 1136, 2252, 2277,
3694      2277, 2277, 2278, 2278, 2278, 1135, 2278, 1134, 1128, 2278,
3695      1127, 2276, 2281, 2281, 2281, 1126, 2277, 2282, 2282, 2282,
3696
3697      2287, 2287, 2287, 2289, 2289, 2289, 2292, 2292, 2292, 2281,
3698      2291, 2291, 2291, 1123, 2282, 1122, 1121, 2287, 2293, 2293,
3699      2293, 1119, 1115, 2292, 2276, 2277, 1112, 1103, 2291, 1102,
3700      2294, 2294, 2294, 2296, 2296, 2296, 2293, 2295, 2295, 2295,
3701      1099, 1098, 2297, 2297, 2297, 1097, 2297, 2281, 2294, 2297,
3702      2296, 2287, 2298, 2298, 2298, 2295, 1096, 1095, 2282, 2299,
3703      2299, 2299, 2300, 2300, 2300, 2301, 2301, 2301, 1081, 2298,
3704      2302, 2302, 2302, 1074, 2295, 1066, 2299, 1065, 2293, 2300,
3705      2303, 2303, 2303, 2301, 2304, 2304, 2304, 2306, 2306, 2306,
3706      1064, 2294, 2309, 2309, 2309, 2311, 2311, 2311, 2303, 2310,
3707
3708      2310, 2310, 2304, 1061, 1058, 2306, 2312, 2312, 2312, 1055,
3709      2299, 1050, 1047, 2300, 2315, 2315, 2315, 2310, 2316, 2316,
3710      2316, 2317, 2317, 2317, 2318, 2318, 2318, 2322, 2322, 2322,
3711      2325, 2325, 2325, 2326, 2326, 2326, 1046, 2326, 1042, 1040,
3712      2326, 2338, 2338, 2338, 1026, 2322, 2303, 2325, 1025, 2306,
3713      2351, 2351, 2351, 2354, 2354, 2354, 2356, 2356, 2356, 2338,
3714      2357, 2357, 2357, 2359, 2359, 2359, 2366, 2366, 2366, 2367,
3715      2367, 2367, 1024, 1023, 2356, 2368, 2368, 2368, 2357, 1022,
3716      1021, 2359, 1020, 2366, 1016, 2371, 2371, 2371, 2372, 2372,
3717      2372, 1012, 2372, 2368, 1005, 2372, 2374, 2374, 2374, 1004,
3718
3719      1003, 2338, 2371, 2375, 2375, 2375, 2377, 2377, 2377, 2381,
3720      2381, 2381, 1000, 2374, 2383, 2383, 2383,  999, 2385, 2385,
3721      2385, 2375, 2356,  996, 2377,  995, 2381, 2386, 2386, 2386,
3722       994, 2383, 2368, 2384, 2384, 2384, 2385, 2384,  991,  990,
3723      2384, 2387, 2387, 2387, 2386, 2387,  987,  982, 2387, 2388,
3724      2388, 2388, 2389, 2389, 2389, 2390, 2390, 2390, 2395, 2395,
3725      2395, 2397, 2397, 2397,  979,  976, 2388,  975,  972, 2389,
3726       971,  970, 2390,  969,  968, 2395, 2399, 2399, 2399, 2401,
3727      2401, 2401, 2402, 2402, 2402,  966, 2402,  965,  964, 2402,
3728      2403, 2403, 2403,  963, 2399,  962, 2401, 2404, 2404, 2404,
3729
3730       961, 2388, 2405, 2405, 2405, 2406, 2406, 2406, 2403, 2406,
3731      2389,  957, 2406, 2390,  952, 2404, 2409, 2409, 2409,  951,
3732      2405, 2410, 2410, 2410,  950, 2410,  949,  946, 2410, 2411,
3733      2411, 2411,  945, 2409, 2412, 2412, 2412, 2413, 2413, 2413,
3734      2415, 2415, 2415, 2416, 2416, 2416, 2411, 2420, 2420, 2420,
3735       944, 2412, 2424, 2424, 2424, 2413, 2428, 2428, 2428,  942,
3736       938, 2416,  934,  933, 2404, 2420, 2405, 2429, 2429, 2429,
3737       930, 2429,  927, 2428, 2429, 2443, 2443, 2443, 2460, 2460,
3738      2460, 2462, 2462, 2462, 2463, 2463, 2463, 2466, 2466, 2466,
3739      2469, 2469, 2469, 2443, 2470, 2470, 2470,  926, 2470, 2462,
3740
3741       925, 2470, 2463,  924, 2466,  923,  922, 2469, 2471, 2471,
3742      2471, 2474, 2474, 2474,  921, 2474,  919,  918, 2474, 2478,
3743      2478, 2478,  917, 2479, 2479, 2479, 2471, 2479,  916,  915,
3744      2479, 2481, 2481, 2481,  914, 2443, 2478, 2482, 2482, 2482,
3745      2483, 2483, 2483,  913, 2483,  912,  911, 2483, 2481, 2484,
3746      2484, 2484, 2462,  910, 2482, 2485, 2485, 2485,  909, 2485,
3747       908,  907, 2485, 2488, 2488, 2488, 2484, 2490, 2490, 2490,
3748       906, 2490,  905,  904, 2490, 2493, 2493, 2493, 2494, 2494,
3749      2494, 2488, 2495, 2495, 2495, 2498, 2498, 2498,  903, 2499,
3750      2499, 2499, 2493, 2499,  902, 2494, 2499,  901,  900, 2495,
3751
3752       896,  895, 2498, 2500, 2500, 2500, 2501, 2501, 2501, 2502,
3753      2502, 2502,  893, 2502,  892,  891, 2502, 2505, 2505, 2505,
3754      2500,  890,  889, 2501, 2507, 2507, 2507,  885,  883, 2494,
3755      2493, 2508, 2508, 2508,  882, 2505,  881, 2495,  880, 2509,
3756      2509, 2509, 2507, 2509,  876,  872, 2509,  871,  868, 2508,
3757      2512, 2512, 2512, 2513, 2513, 2513,  867, 2513,  866,  865,
3758      2513, 2514, 2514, 2514, 2515, 2515, 2515, 2512, 2515,  864,
3759       863, 2515,  862, 2516, 2516, 2516,  859,  858, 2514, 2522,
3760      2522, 2522, 2526, 2526, 2526, 2545, 2545, 2545,  857,  856,
3761      2507, 2516, 2508, 2527, 2527, 2527,  853, 2527,  852, 2526,
3762
3763      2527,  851,  848, 2545, 2561, 2561, 2561, 2563, 2563, 2563,
3764      2564, 2564, 2564, 2565, 2565, 2565, 2566, 2566, 2566,  846,
3765      2566,  843,  842, 2566,  841, 2563,  840, 2564,  839,  836,
3766      2565, 2567, 2567, 2567,  835, 2567, 2545,  834, 2567, 2570,
3767      2570, 2570, 2575, 2575, 2575,  833, 2575,  832,  829, 2575,
3768      2579, 2579, 2579, 2614, 2614, 2614, 2564, 2570, 2580, 2580,
3769      2580,  828, 2580,  827,  826, 2580,  824, 2579,  821, 2563,
3770      2581, 2581, 2581,  820, 2581,  818,  815, 2581, 2584, 2584,
3771      2584, 2585, 2585, 2585,  813, 2585,  810,  809, 2585, 2586,
3772      2586, 2586, 2587, 2587, 2587, 2584, 2588, 2588, 2588,  808,
3773
3774      2589, 2589, 2589,  807, 2589,  805, 2586, 2589,  804, 2587,
3775      2592, 2592, 2592, 2588, 2593, 2593, 2593,  803, 2593,  800,
3776       799, 2593, 2594, 2594, 2594,  798,  797, 2592, 2595, 2595,
3777      2595,  796, 2595,  795,  790, 2595, 2602, 2602, 2602, 2594,
3778      2603, 2603, 2603,  789,  788, 2588,  787, 2586, 2604, 2604,
3779      2604,  786, 2604,  785, 2602, 2604,  784,  783, 2603, 2607,
3780      2607, 2607,  782, 2607,  780,  778, 2607, 2612, 2612, 2612,
3781      2615, 2615, 2615, 2618, 2618, 2618,  777, 2618,  774,  771,
3782      2618, 2629, 2629, 2629, 2612, 2612,  767, 2602, 2638, 2638,
3783      2638, 2654, 2654, 2654, 2655, 2655, 2655,  766, 2629, 2656,
3784
3785      2656, 2656, 2657, 2657, 2657,  765, 2638, 2603, 2658, 2658,
3786      2658,  762, 2658,  759,  758, 2658,  757, 2656,  754, 2657,
3787      2660, 2660, 2660,  753, 2660,  749,  748, 2660, 2667, 2667,
3788      2667,  746, 2667,  743,  742, 2667,  741, 2638, 2670, 2670,
3789      2670,  739, 2670,  728,  727, 2670, 2673, 2673, 2673,  724,
3790      2656, 2674, 2674, 2674, 2675, 2675, 2675,  723, 2675,  721,
3791       720, 2675,  719, 2673, 2676, 2676, 2676,  715, 2674, 2677,
3792      2677, 2677,  714, 2677,  713,  712, 2677,  708, 2680, 2680,
3793      2680, 2676, 2680,  707,  706, 2680, 2689, 2689, 2689, 2690,
3794      2690, 2690, 2696, 2696, 2696,  705,  704, 2673, 2697, 2697,
3795
3796      2697, 2698, 2698, 2698, 2689, 2698,  703, 2690, 2698, 2696,
3797      2696, 2699, 2699, 2699,  702, 2697, 2697,  700,  697, 2698,
3798      2700, 2700, 2700, 2701, 2701, 2701, 2702, 2702, 2702, 2711,
3799      2711, 2711, 2712, 2712, 2712, 2676, 2712,  696,  694, 2712,
3800      2721, 2721, 2721, 2736, 2736, 2736, 2711, 2737, 2737, 2737,
3801      2738, 2738, 2738,  692,  689, 2690,  688,  682, 2721, 2739,
3802      2739, 2739,  680, 2739,  678,  675, 2739,  674, 2738, 2745,
3803      2745, 2745, 2747, 2747, 2747, 2748, 2748, 2748,  670, 2748,
3804       669,  668, 2748, 2751, 2751, 2751, 2745,  665,  664, 2747,
3805      2766, 2766, 2766, 2768, 2768, 2768, 2774, 2774, 2774,  663,
3806
3807      2751,  662,  659, 2775, 2775, 2775, 2721, 2775, 2766,  658,
3808      2775, 2768,  657, 2774, 2774, 2776, 2776, 2776,  656, 2776,
3809       655, 2775, 2776, 2779, 2779, 2779, 2780, 2780, 2780, 2781,
3810      2781, 2781,  649, 2776, 2790, 2790, 2790,  648, 2790,  646,
3811       640, 2790,  639,  635, 2768, 2777, 2777, 2777, 2777, 2777,
3812      2777, 2777, 2777, 2777,  628,  624, 2777, 2799, 2799, 2799,
3813       618, 2777, 2777, 2777, 2777, 2777, 2810, 2810, 2810, 2811,
3814      2811, 2811, 2816, 2816, 2816, 2799, 2817, 2817, 2817,  614,
3815      2817,  610,  606, 2817, 2819, 2819, 2819, 2811,  605, 2816,
3816      2777, 2777, 2778, 2778, 2778, 2778, 2778, 2778, 2778, 2778,
3817
3818      2778, 2819,  604, 2778, 2821, 2821, 2821,  603, 2778, 2778,
3819      2778, 2778, 2778, 2820, 2820, 2820,  602, 2820,  598,  594,
3820      2820, 2821, 2822, 2822, 2822,  591, 2822,  590,  589, 2822,
3821      2835, 2835, 2835, 2860, 2860, 2860,  585, 2778, 2778, 2841,
3822      2841, 2841,  581, 2841,  578,  577, 2841,  573, 2835,  567,
3823       566, 2860, 2895, 2895, 2895,  562,  558, 2841, 2844, 2844,
3824      2844, 2844, 2844, 2844, 2844, 2844, 2844,  554,  553, 2844,
3825      2895,  549,  546,  545, 2844, 2844, 2844, 2844, 2844, 2873,
3826      2873, 2873,  540, 2873,  536,  528, 2873, 2877, 2877, 2877,
3827       527, 2877,  526,  522, 2877, 2880, 2880, 2880,  516, 2880,
3828
3829       515,  514, 2880, 2844, 2844, 2845, 2845, 2845, 2845, 2845,
3830      2845, 2845, 2845, 2845,  510,  504, 2845, 2907, 2907, 2907,
3831       503, 2845, 2845, 2845, 2845, 2845, 2924, 2924, 2924, 2925,
3832      2925, 2925, 2926, 2926, 2926, 2907, 2907, 2931, 2931, 2931,
3833      2942, 2942, 2942, 2924,  499,  493, 2925,  492,  491, 2926,
3834      2845, 2845,  490,  489, 2931, 2946, 2946, 2946, 2942, 2957,
3835      2957, 2957, 2958, 2958, 2958,  488, 2958,  487,  483, 2958,
3836      2959, 2959, 2959, 2946,  477,  476, 2957, 2960, 2960, 2960,
3837       474, 2960,  473,  472, 2960,  468,  459, 2959, 2961, 2961,
3838      2961, 2962, 2962, 2962,  458, 2962,  457,  455, 2962, 2969,
3839
3840      2969, 2969, 2979, 2979, 2979, 2961, 2946, 2970, 2970, 2970,
3841       451, 2970,  445,  444, 2970,  443, 2969, 2989, 2989, 2989,
3842      2979, 2989,  439,  435, 2989, 2992, 2992, 2992,  431, 2992,
3843       430,  429, 2992, 2995, 2995, 2995,  428, 2995,  427, 2979,
3844      2995, 3004, 3004, 3004,  423, 3004,  417,  416, 3004, 3111,
3845      3111, 3111, 3120, 3120, 3120,  412, 3120,  406,  405, 3120,
3846      3221, 3221, 3221, 3222, 3222, 3222,  401, 3111,  394,  393,
3847      3120,  392,  388,  381,  380,  379,  378,  374, 3221,  370,
3848       365, 3222, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225,
3849      3225, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
3850
3851      3227, 3227, 3227, 3227, 3227, 3227, 3227, 3227, 3227, 3228,
3852      3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3229, 3229,
3853      3229, 3229, 3229, 3229, 3229, 3229, 3229, 3230, 3230, 3230,
3854      3230, 3230, 3230, 3230, 3230, 3230, 3231, 3231, 3231, 3231,
3855      3231, 3231, 3231, 3231, 3231, 3232, 3232, 3232, 3232, 3232,
3856      3232, 3232, 3232, 3232, 3233, 3233, 3233, 3233, 3233, 3233,
3857      3233, 3233, 3233, 3234, 3234, 3234, 3234, 3234, 3234, 3234,
3858      3234, 3234, 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235,
3859      3235, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236,
3860      3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3238,
3861
3862      3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3239, 3239,
3863      3239, 3239, 3239, 3239, 3239, 3239, 3239, 3240, 3240, 3240,
3864      3240, 3240, 3240, 3240, 3240, 3240, 3241, 3241, 3241, 3241,
3865      3241, 3241, 3241, 3241, 3241, 3242, 3242, 3242, 3242, 3242,
3866      3242, 3242, 3242, 3242, 3243, 3243, 3243, 3243, 3243, 3243,
3867      3243, 3243, 3243, 3244, 3244, 3244, 3244, 3244, 3244, 3244,
3868      3244, 3244, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
3869      3245, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
3870      3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3248,
3871      3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3249, 3249,
3872
3873      3249, 3249, 3249, 3249, 3249, 3249, 3249, 3250, 3250, 3250,
3874      3250, 3250, 3250, 3250, 3250, 3250, 3251, 3251, 3251, 3251,
3875      3251, 3251, 3251, 3251, 3251, 3252, 3252, 3252, 3252, 3252,
3876      3252, 3252, 3252, 3252, 3253, 3253, 3253, 3253, 3253, 3253,
3877      3253, 3253, 3253, 3254, 3254, 3254, 3254, 3254, 3254, 3254,
3878      3254, 3254, 3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255,
3879      3255, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256,
3880      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3258,
3881      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3259, 3259,
3882      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3260, 3260, 3260,
3883
3884      3260, 3260, 3260, 3260, 3260, 3260, 3261, 3261, 3261, 3261,
3885      3261, 3261, 3261, 3261, 3261, 3262, 3262, 3262, 3262, 3262,
3886      3262, 3262, 3262, 3262, 3263, 3263, 3263, 3263, 3263, 3263,
3887      3263, 3263, 3263, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
3888      3264, 3264, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
3889      3265, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266,
3890      3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3268,
3891      3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3269, 3269,
3892      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270, 3270,
3893      3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271, 3271, 3271,
3894
3895      3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272, 3272,
3896      3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273, 3273, 3273,
3897      3273, 3273, 3273, 3274, 3274, 3274, 3274, 3274, 3274, 3274,
3898      3274, 3274, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275,
3899      3275, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276,
3900      3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3278,
3901      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3279, 3279,
3902      3279, 3279, 3279, 3279, 3279, 3279, 3279, 3280, 3280, 3280,
3903      3280, 3280, 3280, 3280, 3280, 3280, 3281, 3281, 3281, 3281,
3904      3281, 3281, 3281, 3281, 3281, 3282, 3282, 3282, 3282, 3282,
3905
3906      3282, 3282, 3282, 3282, 3283, 3283, 3283, 3283, 3283, 3283,
3907      3283, 3283, 3283, 3284, 3284, 3284,  360,  356,  355, 3284,
3908      3285, 3285, 3285,  351,  345,  344, 3285, 3286, 3286, 3286,
3909       343,  339,  330, 3286, 3287, 3287, 3287,  328,  327,  323,
3910      3287, 3288, 3288, 3288,  320,  318,  317, 3288, 3289, 3289,
3911      3289,  316,  312,  308, 3289, 3290, 3290, 3290,  305,  301,
3912       298, 3290, 3291, 3291, 3291,  297,  289,  285, 3291, 3292,
3913      3292, 3292,  281,  280,  279, 3292, 3293, 3293, 3293,  273,
3914       272,  270, 3293, 3294, 3294, 3294,  267,  255,    0, 3294,
3915      3295, 3295, 3295,    0,    0,    0, 3295, 3296, 3296, 3296,
3916
3917         0,    0,    0, 3296, 3297, 3297, 3297,    0,    0,    0,
3918      3297, 3298, 3298, 3298,    0,    0,    0, 3298, 3299, 3299,
3919      3299,    0,    0,    0, 3299, 3300, 3300, 3300,    0,    0,
3920         0, 3300, 3301, 3301, 3301,    0,    0,    0, 3301, 3302,
3921      3302, 3302,    0,    0,    0, 3302, 3303, 3303, 3303,    0,
3922         0,    0, 3303, 3304, 3304, 3304,    0,    0,    0, 3304,
3923      3305, 3305, 3305,    0,    0,    0, 3305, 3306, 3306, 3306,
3924         0,    0,    0, 3306, 3307, 3307, 3307,    0,    0,    0,
3925      3307, 3308, 3308, 3308,    0,    0,    0, 3308, 3309, 3309,
3926      3309,    0,    0,    0, 3309, 3310, 3310, 3310,    0,    0,
3927
3928         0, 3310, 3311, 3311, 3311, 3311, 3311, 3311, 3311,    0,
3929      3311, 3312, 3312, 3312,    0,    0,    0, 3312, 3313,    0,
3930         0,    0, 3313, 3314, 3314, 3314,    0,    0,    0, 3314,
3931      3315,    0,    0,    0, 3315, 3316, 3316, 3316,    0,    0,
3932         0, 3316, 3317,    0,    0,    0, 3317, 3318, 3318, 3318,
3933         0,    0,    0, 3318, 3319,    0,    0,    0, 3319, 3320,
3934      3320, 3320,    0,    0,    0, 3320, 3321,    0,    0,    0,
3935      3321, 3322, 3322, 3322,    0,    0,    0, 3322, 3323,    0,
3936         0,    0, 3323, 3324, 3324, 3324,    0,    0,    0, 3324,
3937      3325,    0,    0,    0, 3325, 3326, 3326, 3326,    0,    0,
3938
3939         0, 3326, 3327,    0,    0,    0, 3327, 3328, 3328, 3328,
3940         0,    0,    0, 3328, 3329,    0,    0,    0, 3329, 3330,
3941      3330, 3330,    0,    0,    0, 3330, 3331,    0,    0,    0,
3942      3331, 3332, 3332, 3332,    0,    0,    0, 3332, 3333,    0,
3943         0,    0, 3333, 3334, 3334, 3334,    0,    0,    0, 3334,
3944      3335,    0,    0,    0, 3335, 3336, 3336, 3336,    0,    0,
3945         0, 3336, 3337,    0,    0,    0, 3337, 3338, 3338, 3338,
3946         0,    0,    0, 3338, 3339,    0,    0,    0, 3339, 3340,
3947      3340, 3340,    0,    0,    0, 3340, 3341,    0,    0,    0,
3948      3341, 3342, 3342, 3342,    0,    0,    0, 3342, 3343,    0,
3949
3950         0,    0, 3343, 3344, 3344, 3344,    0,    0,    0, 3344,
3951      3345,    0,    0,    0, 3345, 3346, 3346, 3346,    0,    0,
3952         0, 3346, 3347,    0,    0,    0, 3347, 3348, 3348, 3348,
3953         0,    0,    0, 3348, 3349,    0,    0,    0, 3349, 3350,
3954      3350, 3350,    0,    0,    0, 3350, 3351,    0,    0,    0,
3955      3351, 3352, 3352, 3352,    0,    0,    0, 3352, 3353,    0,
3956         0,    0, 3353, 3354, 3354, 3354,    0,    0,    0, 3354,
3957      3355,    0,    0,    0, 3355, 3356, 3356, 3356,    0,    0,
3958         0, 3356, 3357,    0,    0,    0, 3357, 3358, 3358, 3358,
3959         0,    0,    0, 3358, 3359,    0,    0,    0, 3359, 3360,
3960
3961      3360, 3360,    0,    0,    0, 3360, 3361,    0,    0,    0,
3962      3361, 3362, 3362, 3362,    0,    0,    0, 3362, 3363,    0,
3963         0,    0, 3363, 3364, 3364, 3364,    0,    0,    0, 3364,
3964      3365,    0,    0,    0, 3365, 3366, 3366, 3366, 3366, 3366,
3965      3366, 3366, 3366, 3366, 3367,    0,    0,    0,    0, 3367,
3966      3368, 3368, 3368,    0,    0,    0, 3368, 3369, 3369, 3369,
3967      3369,    0,    0, 3369, 3369, 3370, 3370, 3370,    0,    0,
3968         0, 3370, 3371, 3371, 3371, 3371,    0,    0, 3371, 3371,
3969      3372, 3372, 3372,    0,    0,    0, 3372, 3373, 3373, 3373,
3970      3373,    0,    0, 3373, 3373, 3374, 3374, 3374,    0,    0,
3971
3972         0, 3374, 3375, 3375, 3375, 3375,    0,    0, 3375, 3375,
3973      3376, 3376, 3376,    0,    0,    0, 3376, 3377, 3377, 3377,
3974      3377,    0,    0, 3377, 3377, 3378, 3378, 3378,    0,    0,
3975         0, 3378, 3379, 3379, 3379, 3379,    0,    0, 3379, 3379,
3976      3380, 3380, 3380,    0,    0,    0, 3380, 3381, 3381, 3381,
3977      3381,    0,    0, 3381, 3381, 3382, 3382, 3382,    0,    0,
3978         0, 3382, 3383, 3383, 3383, 3383,    0,    0, 3383, 3383,
3979      3384, 3384, 3384,    0,    0,    0, 3384, 3385, 3385, 3385,
3980      3385,    0,    0, 3385, 3385, 3386, 3386, 3386,    0,    0,
3981         0, 3386, 3387, 3387, 3387, 3387,    0,    0, 3387, 3387,
3982
3983      3388, 3388, 3388,    0,    0,    0, 3388, 3389, 3389, 3389,
3984      3389,    0,    0, 3389, 3389, 3390, 3390, 3390,    0,    0,
3985         0, 3390, 3391, 3391, 3391, 3391,    0,    0, 3391, 3391,
3986      3392, 3392, 3392,    0,    0,    0, 3392, 3393, 3393, 3393,
3987      3393,    0,    0, 3393, 3393, 3394, 3394, 3394, 3394,    0,
3988      3394,    0, 3394, 3395, 3395, 3395, 3395,    0,    0, 3395,
3989      3395, 3396, 3396, 3396,    0,    0,    0, 3396, 3397, 3397,
3990      3397, 3397,    0,    0, 3397, 3397, 3398, 3398, 3398,    0,
3991         0,    0, 3398, 3399, 3399, 3399, 3399,    0,    0, 3399,
3992      3399, 3400, 3400, 3400,    0,    0,    0, 3400, 3401, 3401,
3993
3994      3401, 3401,    0,    0, 3401, 3401, 3402, 3402, 3402,    0,
3995         0,    0, 3402, 3403, 3403, 3403, 3403,    0,    0, 3403,
3996      3403, 3404, 3404, 3404, 3404,    0, 3404,    0, 3404, 3405,
3997      3405, 3405, 3405,    0,    0, 3405, 3405, 3406, 3406, 3406,
3998      3406,    0, 3406,    0, 3406, 3407, 3407, 3407, 3407,    0,
3999         0, 3407, 3407, 3408, 3408, 3408,    0,    0,    0, 3408,
4000      3409, 3409, 3409, 3409,    0,    0, 3409, 3409, 3410, 3410,
4001      3410, 3410,    0, 3410,    0, 3410, 3411, 3411, 3411, 3411,
4002         0,    0, 3411, 3411, 3412, 3412, 3412, 3412,    0, 3412,
4003         0, 3412, 3413, 3413, 3413, 3413,    0,    0, 3413, 3413,
4004
4005      3414, 3414, 3414,    0,    0,    0, 3414, 3415, 3415, 3415,
4006      3415,    0,    0, 3415, 3415, 3416, 3416, 3416,    0,    0,
4007         0, 3416, 3417, 3417, 3417, 3417,    0,    0, 3417, 3417,
4008      3418, 3418, 3418, 3418,    0,    0, 3418, 3418, 3419, 3419,
4009      3419,    0,    0,    0, 3419, 3420, 3420, 3420, 3420,    0,
4010         0, 3420, 3420, 3421, 3421, 3421, 3421, 3421, 3421, 3421,
4011      3421, 3421, 3422,    0, 3422,    0,    0, 3422, 3423, 3423,
4012      3423,    0,    0,    0, 3423, 3424, 3424, 3424, 3424,    0,
4013         0, 3424, 3424, 3425, 3425, 3425, 3425,    0, 3425,    0,
4014      3425, 3426, 3426, 3426, 3426,    0,    0, 3426, 3426, 3427,
4015
4016      3427, 3427, 3427,    0, 3427,    0, 3427, 3428, 3428, 3428,
4017      3428,    0,    0, 3428, 3428, 3429, 3429, 3429,    0,    0,
4018         0, 3429, 3430, 3430, 3430, 3430,    0,    0, 3430, 3430,
4019      3431, 3431, 3431,    0,    0,    0, 3431, 3432, 3432, 3432,
4020      3432,    0,    0, 3432, 3432, 3433, 3433, 3433,    0,    0,
4021         0, 3433, 3434, 3434, 3434, 3434,    0,    0, 3434, 3434,
4022      3435, 3435, 3435,    0,    0,    0, 3435, 3436, 3436, 3436,
4023      3436,    0,    0, 3436, 3436, 3437, 3437, 3437,    0,    0,
4024         0, 3437, 3438, 3438, 3438, 3438,    0,    0, 3438, 3438,
4025      3439, 3439, 3439, 3439,    0, 3439,    0, 3439, 3440, 3440,
4026
4027      3440, 3440,    0,    0, 3440, 3440, 3441, 3441, 3441, 3441,
4028         0, 3441,    0, 3441, 3442, 3442, 3442, 3442,    0,    0,
4029      3442, 3442, 3443, 3443, 3443,    0,    0,    0, 3443, 3444,
4030      3444, 3444, 3444,    0,    0, 3444, 3444, 3445, 3445, 3445,
4031      3445,    0, 3445,    0, 3445, 3446, 3446, 3446, 3446,    0,
4032         0, 3446, 3446, 3447, 3447, 3447,    0,    0,    0, 3447,
4033      3448, 3448, 3448, 3448,    0,    0, 3448, 3448, 3449, 3449,
4034      3449,    0,    0,    0, 3449, 3450, 3450, 3450, 3450,    0,
4035         0, 3450, 3450, 3451, 3451, 3451,    0,    0,    0, 3451,
4036      3452, 3452, 3452, 3452,    0,    0, 3452, 3452, 3453, 3453,
4037
4038      3453,    0,    0,    0, 3453, 3454, 3454, 3454, 3454,    0,
4039         0, 3454, 3454, 3455, 3455, 3455,    0,    0,    0, 3455,
4040      3456, 3456, 3456, 3456,    0,    0, 3456, 3456, 3457, 3457,
4041      3457,    0,    0,    0, 3457, 3458, 3458, 3458, 3458,    0,
4042         0, 3458, 3458, 3459, 3459, 3459,    0,    0,    0, 3459,
4043      3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461, 3461,
4044      3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,    0,
4045         0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0, 3463,
4046      3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465, 3465,
4047      3465, 3465,    0,    0, 3465, 3465, 3466, 3466, 3466,    0,
4048
4049         0,    0, 3466, 3467, 3467, 3467, 3467,    0,    0, 3467,
4050      3467, 3468, 3468, 3468,    0,    0,    0, 3468, 3469, 3469,
4051      3469, 3469,    0,    0, 3469, 3469, 3470, 3470, 3470,    0,
4052         0,    0, 3470, 3471, 3471, 3471, 3471,    0,    0, 3471,
4053      3471, 3472, 3472, 3472, 3472,    0,    0, 3472, 3472, 3473,
4054      3473, 3473,    0,    0,    0, 3473, 3474, 3474, 3474, 3474,
4055         0,    0, 3474, 3474, 3475, 3475, 3475, 3475, 3475, 3475,
4056      3475, 3475, 3475, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4057      3476, 3476, 3477, 3477, 3477,    0,    0,    0, 3477, 3478,
4058      3478, 3478, 3478,    0,    0, 3478, 3478, 3479, 3479, 3479,
4059
4060      3479,    0,    0, 3479, 3479, 3480, 3480, 3480,    0,    0,
4061         0, 3480, 3481, 3481, 3481, 3481,    0,    0, 3481, 3481,
4062      3482, 3482, 3482,    0,    0,    0, 3482, 3483, 3483, 3483,
4063      3483,    0,    0, 3483, 3483, 3484, 3484, 3484,    0,    0,
4064         0, 3484, 3485, 3485, 3485, 3485,    0,    0, 3485, 3485,
4065      3486, 3486, 3486,    0,    0,    0, 3486, 3487, 3487, 3487,
4066         0,    0,    0, 3487, 3488, 3488, 3488, 3488,    0,    0,
4067      3488, 3488, 3489, 3489, 3489,    0,    0,    0, 3489, 3490,
4068      3490, 3490, 3490,    0,    0, 3490, 3490, 3491, 3491, 3491,
4069      3491,    0,    0, 3491, 3491, 3492, 3492, 3492,    0,    0,
4070
4071         0, 3492, 3493, 3493, 3493, 3493,    0,    0, 3493, 3493,
4072      3494, 3494, 3494,    0,    0,    0, 3494, 3495, 3495, 3495,
4073      3495,    0,    0, 3495, 3495, 3496, 3496, 3496, 3496,    0,
4074         0, 3496, 3496, 3497, 3497, 3497,    0,    0,    0, 3497,
4075      3498, 3498, 3498, 3498,    0,    0, 3498, 3498, 3499, 3499,
4076      3499, 3499,    0, 3499,    0, 3499, 3500, 3500, 3500, 3500,
4077         0,    0, 3500, 3500, 3501, 3501, 3501,    0,    0,    0,
4078      3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502, 3503,
4079      3503, 3503,    0,    0,    0, 3503, 3504, 3504, 3504, 3504,
4080         0,    0, 3504, 3504, 3505, 3505, 3505,    0,    0,    0,
4081
4082      3505, 3506, 3506, 3506, 3506,    0,    0, 3506, 3506, 3507,
4083      3507, 3507,    0,    0,    0, 3507, 3508, 3508, 3508, 3508,
4084         0,    0, 3508, 3508, 3509, 3509, 3509,    0,    0,    0,
4085      3509, 3510, 3510, 3510, 3510,    0,    0, 3510, 3510, 3511,
4086      3511, 3511,    0,    0,    0, 3511, 3512, 3512, 3512, 3512,
4087         0,    0, 3512, 3512, 3513, 3513, 3513,    0,    0,    0,
4088      3513, 3514, 3514, 3514, 3514,    0,    0, 3514, 3514, 3515,
4089      3515, 3515, 3515,    0,    0, 3515, 3515, 3516, 3516, 3516,
4090         0,    0,    0, 3516, 3517, 3517, 3517, 3517,    0,    0,
4091      3517, 3517, 3518, 3518, 3518,    0,    0,    0, 3518, 3519,
4092
4093      3519, 3519, 3519,    0,    0, 3519, 3519, 3520, 3520, 3520,
4094      3520,    0, 3520,    0, 3520, 3521, 3521, 3521, 3521,    0,
4095         0, 3521, 3521, 3522, 3522, 3522, 3522,    0,    0, 3522,
4096      3522, 3523, 3523, 3523, 3523,    0, 3523,    0, 3523, 3524,
4097      3524, 3524, 3524,    0,    0, 3524, 3524, 3525, 3525, 3525,
4098      3525, 3525, 3525, 3525, 3525, 3525, 3526, 3526, 3526, 3526,
4099      3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527,    0,    0,
4100         0, 3527, 3528, 3528, 3528, 3528,    0,    0, 3528, 3528,
4101      3529, 3529, 3529, 3529,    0,    0, 3529, 3529, 3530, 3530,
4102      3530,    0,    0,    0, 3530, 3531, 3531, 3531, 3531,    0,
4103
4104         0, 3531, 3531, 3532, 3532, 3532,    0,    0,    0, 3532,
4105      3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534, 3534,
4106      3534,    0,    0,    0, 3534, 3535, 3535, 3535, 3535,    0,
4107         0, 3535, 3535, 3536, 3536, 3536,    0,    0,    0, 3536,
4108      3537, 3537, 3537,    0,    0,    0, 3537, 3538, 3538, 3538,
4109      3538,    0,    0, 3538, 3538, 3539, 3539, 3539,    0,    0,
4110         0, 3539, 3540, 3540, 3540, 3540,    0,    0, 3540, 3540,
4111      3541, 3541, 3541, 3541,    0,    0, 3541, 3541, 3542, 3542,
4112      3542, 3542,    0, 3542,    0, 3542, 3543, 3543, 3543, 3543,
4113         0,    0, 3543, 3543, 3544, 3544, 3544,    0,    0,    0,
4114
4115      3544, 3545, 3545, 3545, 3545,    0,    0, 3545, 3545, 3546,
4116      3546, 3546, 3546,    0,    0, 3546, 3546, 3547, 3547, 3547,
4117         0,    0,    0, 3547, 3548, 3548, 3548, 3548,    0,    0,
4118      3548, 3548, 3549, 3549, 3549, 3549,    0, 3549,    0, 3549,
4119      3550, 3550, 3550, 3550,    0,    0, 3550, 3550, 3551, 3551,
4120      3551,    0,    0,    0, 3551, 3552, 3552, 3552, 3552,    0,
4121         0, 3552, 3552, 3553, 3553, 3553,    0,    0,    0, 3553,
4122      3554, 3554, 3554, 3554,    0,    0, 3554, 3554, 3555, 3555,
4123      3555,    0,    0,    0, 3555, 3556, 3556, 3556, 3556,    0,
4124         0, 3556, 3556, 3557, 3557, 3557,    0,    0,    0, 3557,
4125
4126      3558, 3558, 3558, 3558,    0,    0, 3558, 3558, 3559, 3559,
4127      3559,    0,    0,    0, 3559, 3560, 3560, 3560, 3560,    0,
4128         0, 3560, 3560, 3561, 3561, 3561, 3561,    0, 3561,    0,
4129      3561, 3562, 3562, 3562, 3562,    0,    0, 3562, 3562, 3563,
4130      3563, 3563,    0,    0,    0, 3563, 3564, 3564, 3564, 3564,
4131         0,    0, 3564, 3564, 3565, 3565, 3565, 3565,    0,    0,
4132      3565, 3565, 3566, 3566, 3566, 3566,    0, 3566,    0, 3566,
4133      3567, 3567, 3567, 3567,    0,    0, 3567, 3567, 3568, 3568,
4134      3568,    0,    0,    0, 3568, 3569, 3569, 3569, 3569,    0,
4135         0, 3569, 3569, 3570, 3570, 3570, 3570,    0,    0, 3570,
4136
4137      3570, 3571, 3571, 3571, 3571,    0,    0, 3571, 3571, 3572,
4138      3572, 3572, 3572,    0,    0, 3572, 3572, 3573, 3573, 3573,
4139      3573, 3573, 3573, 3573, 3573, 3573, 3574, 3574, 3574, 3574,
4140      3574, 3574, 3574, 3574, 3574, 3575, 3575, 3575, 3575,    0,
4141      3575,    0, 3575, 3576, 3576, 3576, 3576,    0,    0, 3576,
4142      3576, 3577, 3577, 3577, 3577,    0,    0, 3577, 3577, 3578,
4143      3578, 3578,    0,    0,    0, 3578, 3579, 3579, 3579, 3579,
4144         0,    0, 3579, 3579, 3580, 3580, 3580,    0,    0,    0,
4145      3580, 3581, 3581, 3581, 3581,    0,    0, 3581, 3581, 3582,
4146      3582, 3582, 3582,    0, 3582,    0, 3582, 3583, 3583, 3583,
4147
4148      3583,    0,    0, 3583, 3583, 3584, 3584, 3584, 3584,    0,
4149      3584,    0, 3584, 3585, 3585, 3585, 3585,    0, 3585,    0,
4150      3585, 3586, 3586, 3586, 3586,    0,    0, 3586, 3586, 3587,
4151      3587, 3587, 3587,    0, 3587,    0, 3587, 3588, 3588, 3588,
4152      3588,    0,    0, 3588, 3588, 3589, 3589, 3589, 3589,    0,
4153         0, 3589, 3589, 3590, 3590, 3590, 3590,    0,    0, 3590,
4154      3590, 3591, 3591, 3591,    0,    0,    0, 3591, 3592, 3592,
4155      3592, 3592,    0,    0, 3592, 3592, 3593, 3593, 3593,    0,
4156         0,    0, 3593, 3594, 3594, 3594, 3594,    0,    0, 3594,
4157      3594, 3595, 3595, 3595, 3595,    0, 3595,    0, 3595, 3596,
4158
4159      3596, 3596, 3596,    0,    0, 3596, 3596, 3597, 3597, 3597,
4160         0,    0,    0, 3597, 3598, 3598, 3598,    0,    0,    0,
4161      3598, 3599, 3599, 3599, 3599,    0,    0, 3599, 3599, 3600,
4162      3600, 3600,    0,    0,    0, 3600, 3601, 3601, 3601, 3601,
4163         0,    0, 3601, 3601, 3602, 3602, 3602,    0,    0,    0,
4164      3602, 3603, 3603, 3603,    0,    0,    0, 3603, 3604, 3604,
4165      3604, 3604,    0,    0, 3604, 3604, 3605, 3605, 3605,    0,
4166         0,    0, 3605, 3606, 3606, 3606, 3606,    0,    0, 3606,
4167      3606, 3607, 3607, 3607,    0,    0,    0, 3607, 3608, 3608,
4168      3608, 3608,    0,    0, 3608, 3608, 3609, 3609, 3609, 3609,
4169
4170         0,    0, 3609, 3609, 3610, 3610, 3610, 3610,    0,    0,
4171      3610, 3610, 3611, 3611, 3611,    0,    0,    0, 3611, 3612,
4172      3612, 3612, 3612,    0,    0, 3612, 3612, 3613, 3613, 3613,
4173      3613,    0,    0, 3613, 3613, 3614, 3614, 3614, 3614,    0,
4174         0, 3614, 3614, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
4175      3615, 3615, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616,
4176      3616, 3617, 3617, 3617, 3617,    0,    0, 3617, 3617, 3618,
4177      3618, 3618, 3618,    0,    0, 3618, 3618, 3619, 3619, 3619,
4178         0,    0,    0, 3619, 3620, 3620, 3620,    0,    0,    0,
4179      3620, 3621, 3621, 3621, 3621,    0,    0, 3621, 3621, 3622,
4180
4181      3622, 3622, 3622,    0,    0, 3622, 3622, 3623, 3623, 3623,
4182      3623,    0,    0, 3623, 3623, 3624, 3624, 3624, 3624,    0,
4183         0, 3624, 3624, 3625, 3625, 3625, 3625,    0,    0, 3625,
4184      3625, 3626, 3626, 3626,    0,    0,    0, 3626, 3627, 3627,
4185      3627, 3627,    0,    0, 3627, 3627, 3628, 3628, 3628,    0,
4186         0,    0, 3628, 3629, 3629, 3629, 3629,    0,    0, 3629,
4187      3629, 3630, 3630, 3630, 3630,    0,    0, 3630, 3630, 3631,
4188      3631, 3631,    0,    0,    0, 3631, 3632, 3632, 3632,    0,
4189         0,    0, 3632, 3633, 3633, 3633, 3633,    0,    0, 3633,
4190      3633, 3634, 3634, 3634,    0,    0,    0, 3634, 3635, 3635,
4191
4192      3635, 3635,    0,    0, 3635, 3635, 3636, 3636, 3636,    0,
4193         0,    0, 3636, 3637, 3637, 3637,    0,    0,    0, 3637,
4194      3638, 3638, 3638,    0,    0,    0, 3638, 3639, 3639, 3639,
4195      3639,    0,    0, 3639, 3639, 3640, 3640, 3640,    0,    0,
4196         0, 3640, 3641, 3641, 3641, 3641,    0,    0, 3641, 3641,
4197      3642, 3642, 3642, 3642,    0,    0, 3642, 3642, 3643, 3643,
4198      3643, 3643,    0,    0, 3643, 3643, 3644, 3644, 3644, 3644,
4199         0, 3644,    0, 3644, 3645, 3645, 3645, 3645,    0,    0,
4200      3645, 3645, 3646, 3646, 3646, 3646,    0,    0, 3646, 3646,
4201      3647, 3647, 3647, 3647,    0,    0, 3647, 3647, 3648, 3648,
4202
4203      3648, 3648, 3648, 3648, 3648, 3648, 3648, 3649, 3649, 3649,
4204      3649, 3649, 3649, 3649, 3649, 3649, 3650, 3650, 3650, 3650,
4205         0,    0, 3650, 3650, 3651, 3651, 3651, 3651,    0,    0,
4206      3651, 3651, 3652, 3652, 3652,    0,    0,    0, 3652, 3653,
4207      3653, 3653, 3653,    0, 3653,    0, 3653, 3654, 3654, 3654,
4208      3654,    0,    0, 3654, 3654, 3655, 3655, 3655, 3655,    0,
4209         0, 3655, 3655, 3656, 3656, 3656, 3656,    0,    0, 3656,
4210      3656, 3657, 3657, 3657, 3657,    0,    0, 3657, 3657, 3658,
4211      3658, 3658,    0,    0,    0, 3658, 3659, 3659, 3659, 3659,
4212         0,    0, 3659, 3659, 3660, 3660, 3660,    0,    0,    0,
4213
4214      3660, 3661, 3661, 3661, 3661,    0,    0, 3661, 3661, 3662,
4215      3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663,
4216         0,    0,    0, 3663, 3664, 3664, 3664,    0,    0,    0,
4217      3664, 3665, 3665, 3665, 3665,    0, 3665,    0, 3665, 3666,
4218      3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667, 3667,
4219      3667,    0, 3667,    0, 3667, 3668, 3668, 3668,    0,    0,
4220         0, 3668, 3669, 3669, 3669,    0,    0,    0, 3669, 3670,
4221      3670, 3670, 3670,    0,    0, 3670, 3670, 3671, 3671, 3671,
4222      3671,    0, 3671,    0, 3671, 3672, 3672, 3672, 3672,    0,
4223         0, 3672, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673,
4224
4225      3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675,
4226      3675, 3675, 3675,    0, 3675,    0, 3675, 3676, 3676, 3676,
4227      3676,    0,    0, 3676, 3676, 3677, 3677, 3677, 3677,    0,
4228         0, 3677, 3677, 3678, 3678, 3678, 3678, 3678, 3678, 3678,
4229      3678, 3678, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679,
4230      3679, 3680, 3680, 3680, 3680,    0,    0, 3680, 3680, 3681,
4231      3681, 3681,    0,    0,    0, 3681, 3682, 3682, 3682,    0,
4232         0,    0, 3682, 3683, 3683, 3683, 3683,    0,    0, 3683,
4233      3683, 3684, 3684, 3684, 3684,    0,    0, 3684, 3684, 3685,
4234      3685, 3685, 3685,    0,    0, 3685, 3685, 3686, 3686, 3686,
4235
4236         0,    0,    0, 3686, 3687, 3687, 3687, 3687,    0,    0,
4237      3687, 3687, 3688, 3688, 3688,    0,    0,    0, 3688, 3689,
4238      3689, 3689, 3689, 3689, 3689, 3689, 3689, 3689, 3690, 3690,
4239      3690, 3690, 3690, 3690, 3690, 3690, 3690, 3691, 3691, 3691,
4240      3691, 3691, 3691, 3691, 3691, 3691, 3692, 3692, 3692, 3692,
4241      3692, 3692, 3692, 3692, 3692, 3693, 3693, 3693, 3693, 3693,
4242      3693, 3693, 3693, 3693, 3694, 3694, 3694, 3694, 3694, 3694,
4243      3694, 3694, 3694, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4244      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4245      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4246
4247      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4248      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4249      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4250      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
4251      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224
4252     } ;
4253
4254 /* Table of booleans, true if rule could match eol. */
4255 static yyconst flex_int32_t yy_rule_can_match_eol[548] =
4256     {   0,
4257 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4258     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4259     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4260     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4261     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4262     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4263     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4264     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4265     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4266     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4267     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4268     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4269     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4270     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4271     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4272     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4273     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4274     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4275     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4276     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4277     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4278     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4279     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4280     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4281     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4282     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4283     0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 
4284     0, 0, 1, 0, 0, 0, 1, 0,     };
4285
4286 static yy_state_type yy_last_accepting_state;
4287 static char *yy_last_accepting_cpos;
4288
4289 extern int surf_parse__flex_debug;
4290 int surf_parse__flex_debug = 0;
4291
4292 /* The intent behind this definition is that it'll catch
4293  * any uses of REJECT which flex missed.
4294  */
4295 #define REJECT reject_used_but_not_detected
4296 #define yymore() yymore_used_but_not_detected
4297 #define YY_MORE_ADJ 0
4298 #define YY_RESTORE_YY_MORE_OFFSET
4299 char *surf_parse_text;
4300 /* Validating XML processor for src/surf/simgrid.dtd.
4301  *
4302  * This program was generated with the FleXML XML processor generator.
4303  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4304  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4305  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4306  * 
4307  * There are two, intertwined parts to this program, part A and part B.
4308  *
4309  * Part A
4310  * ------
4311  * 
4312  * Some parts, here collectively called "Part A", are found in the 
4313  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4314  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4315  *
4316  * You can redistribute, use, perform, display and/or modify "Part A"
4317  * provided the following two conditions hold:
4318  *
4319  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4320  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4321  *    FITNESS FOR A PARTICULAR PURPOSE.
4322  *
4323  * 2. The program distribution conditions do not in any way affect the
4324  *    distribution conditions of the FleXML system used to generate this
4325  *    file or any version of FleXML derived from that system.
4326  *
4327  * Notice that these are explicit rights granted to you for files
4328  * generated by the FleXML system.  For your rights in connection with
4329  * the FleXML system itself please consult the GNU General Public License.
4330  * 
4331  * Part B
4332  * ------
4333  * 
4334  * The other parts, here collectively called "Part B", and which came 
4335  * from the DTD used by FleXML to generate this program, can be 
4336  * distributed (or not, as the case may be) under the terms of whoever
4337  * wrote them, provided these terms respect and obey the two conditions 
4338  * above under the heading "Part A".
4339  *
4340  * The author of and contributors to FleXML specifically disclaim
4341  * any copyright interest in "Part B", unless "Part B" was written 
4342  * by the author of or contributors to FleXML.
4343  * 
4344  */
4345
4346 /* Version strings. */
4347 const char rcs_surfxml_flexml_skeleton[] =
4348  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4349 const char rcs_surfxml_flexml[] =
4350  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4351
4352 /* ANSI headers. */
4353 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4354 #include <stdio.h>
4355 #include <string.h>
4356 #include <assert.h>
4357 #include <stdarg.h>
4358 #include <ctype.h>
4359      
4360 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4361 # ifndef __STRICT_ANSI__
4362 #  include <io.h>
4363 #  include <process.h>
4364 # endif
4365 #else
4366 # include <unistd.h>
4367 #endif
4368      
4369 #ifndef FLEXML_INDEXSTACKSIZE
4370 #define FLEXML_INDEXSTACKSIZE 1000
4371 #endif
4372
4373 /* Generated definitions. */
4374 #define FLEXML_yylineno
4375 #ifndef FLEXML_BUFFERSTACKSIZE
4376 #define FLEXML_BUFFERSTACKSIZE 1000000
4377 #endif
4378 #define FLEXML_NEED_BUFFERLIT
4379
4380 /* XML processor api. */
4381 /* FleXML-provided data. */
4382 int surfxml_pcdata_ix;
4383 extern char *surfxml_bufferstack;
4384 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4385 AT_surfxml_mount_name AX_surfxml_mount_name;
4386 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4387 short int surfxml_mount_name_isset;
4388 AT_surfxml_random_generator AX_surfxml_random_generator;
4389 #define A_surfxml_random_generator AX_surfxml_random_generator
4390 short int surfxml_random_generator_isset;
4391 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4392 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4393 short int surfxml_ASroute_gw_dst_isset;
4394 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4395 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4396 short int surfxml_trace_connect_element_isset;
4397 AT_surfxml_prop_id AX_surfxml_prop_id;
4398 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4399 short int surfxml_prop_id_isset;
4400 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4401 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4402 short int surfxml_host_link_up_isset;
4403 AT_surfxml_host_id AX_surfxml_host_id;
4404 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4405 short int surfxml_host_id_isset;
4406 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4407 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4408 short int surfxml_ASroute_symmetrical_isset;
4409 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4410 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4411 short int surfxml_peer_lat_isset;
4412 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4413 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4414 short int surfxml_process_on_failure_isset;
4415 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4416 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4417 short int surfxml_link_latency_file_isset;
4418 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4419 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4420 short int surfxml_peer_availability_file_isset;
4421 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4422 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4423 short int surfxml_link_ctn_direction_isset;
4424 AT_surfxml_host_state AX_surfxml_host_state;
4425 #define A_surfxml_host_state AX_surfxml_host_state
4426 short int surfxml_host_state_isset;
4427 AT_surfxml_AS_id AX_surfxml_AS_id;
4428 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4429 short int surfxml_AS_id_isset;
4430 AT_surfxml_host_power AX_surfxml_host_power;
4431 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4432 short int surfxml_host_power_isset;
4433 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4434 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4435 short int surfxml_cabinet_suffix_isset;
4436 AT_surfxml_router_id AX_surfxml_router_id;
4437 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4438 short int surfxml_router_id_isset;
4439 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4440 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4441 short int surfxml_storage_type_id_isset;
4442 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4443 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4444 short int surfxml_process_start_time_isset;
4445 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4446 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4447 short int surfxml_cabinet_bw_isset;
4448 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4449 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4450 short int surfxml_cluster_suffix_isset;
4451 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4452 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4453 short int surfxml_bypassASroute_dst_isset;
4454 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4455 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4456 short int surfxml_host_link_id_isset;
4457 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4458 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4459 short int surfxml_ASroute_src_isset;
4460 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4461 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4462 short int surfxml_cluster_prefix_isset;
4463 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4464 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4465 short int surfxml_cabinet_prefix_isset;
4466 AT_surfxml_trace_file AX_surfxml_trace_file;
4467 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4468 short int surfxml_trace_file_isset;
4469 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4470 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4471 short int surfxml_link_sharing_policy_isset;
4472 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4473 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4474 short int surfxml_storage_typeId_isset;
4475 AT_surfxml_random_min AX_surfxml_random_min;
4476 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4477 short int surfxml_random_min_isset;
4478 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4479 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4480 short int surfxml_link_ctn_id_isset;
4481 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4482 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4483 short int surfxml_peer_bw_out_isset;
4484 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4485 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4486 short int surfxml_cluster_availability_file_isset;
4487 AT_surfxml_storage_content AX_surfxml_storage_content;
4488 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4489 short int surfxml_storage_content_isset;
4490 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4491 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4492 short int surfxml_process_kill_time_isset;
4493 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4494 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4495 short int surfxml_cluster_bb_bw_isset;
4496 AT_surfxml_argument_value AX_surfxml_argument_value;
4497 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4498 short int surfxml_argument_value_isset;
4499 AT_surfxml_link_state AX_surfxml_link_state;
4500 #define A_surfxml_link_state AX_surfxml_link_state
4501 short int surfxml_link_state_isset;
4502 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4503 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4504 short int surfxml_ASroute_gw_src_isset;
4505 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4506 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4507 short int surfxml_AS_routing_isset;
4508 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4509 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4510 short int surfxml_link_bandwidth_isset;
4511 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4512 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4513 short int surfxml_cluster_id_isset;
4514 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4515 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4516 short int surfxml_peer_bw_in_isset;
4517 AT_surfxml_random_mean AX_surfxml_random_mean;
4518 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4519 short int surfxml_random_mean_isset;
4520 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4521 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4522 short int surfxml_storage_type_size_isset;
4523 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4524 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4525 short int surfxml_cluster_bb_lat_isset;
4526 AT_surfxml_link_latency AX_surfxml_link_latency;
4527 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4528 short int surfxml_link_latency_isset;
4529 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4530 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4531 short int surfxml_backbone_bandwidth_isset;
4532 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4533 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4534 short int surfxml_backbone_id_isset;
4535 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4536 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4537 short int surfxml_trace_connect_kind_isset;
4538 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4539 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4540 short int surfxml_cabinet_lat_isset;
4541 AT_surfxml_random_seed AX_surfxml_random_seed;
4542 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4543 short int surfxml_random_seed_isset;
4544 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4545 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4546 short int surfxml_cluster_state_file_isset;
4547 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4548 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4549 short int surfxml_link_bandwidth_file_isset;
4550 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4551 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4552 short int surfxml_storage_type_content_isset;
4553 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4554 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4555 short int surfxml_route_symmetrical_isset;
4556 AT_surfxml_random_id AX_surfxml_random_id;
4557 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4558 short int surfxml_random_id_isset;
4559 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4560 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4561 short int surfxml_mstorage_name_isset;
4562 AT_surfxml_random_max AX_surfxml_random_max;
4563 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4564 short int surfxml_random_max_isset;
4565 AT_surfxml_link_id AX_surfxml_link_id;
4566 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4567 short int surfxml_link_id_isset;
4568 AT_surfxml_process_host AX_surfxml_process_host;
4569 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4570 short int surfxml_process_host_isset;
4571 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4572 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4573 short int surfxml_cabinet_id_isset;
4574 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4575 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4576 short int surfxml_host_availability_file_isset;
4577 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4578 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4579 short int surfxml_cluster_lat_isset;
4580 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4581 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4582 short int surfxml_router_coordinates_isset;
4583 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4584 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4585 short int surfxml_trace_periodicity_isset;
4586 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4587 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4588 short int surfxml_cluster_bb_sharing_policy_isset;
4589 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4590 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4591 short int surfxml_peer_state_file_isset;
4592 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4593 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4594 short int surfxml_peer_coordinates_isset;
4595 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4596 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4597 short int surfxml_bypassASroute_src_isset;
4598 AT_surfxml_prop_value AX_surfxml_prop_value;
4599 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4600 short int surfxml_prop_value_isset;
4601 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4602 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4603 short int surfxml_mstorage_typeId_isset;
4604 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4605 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4606 short int surfxml_ASroute_dst_isset;
4607 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4608 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4609 short int surfxml_link_state_file_isset;
4610 AT_surfxml_random_radical AX_surfxml_random_radical;
4611 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4612 short int surfxml_random_radical_isset;
4613 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4614 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4615 short int surfxml_bypassASroute_gw_src_isset;
4616 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4617 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4618 short int surfxml_trace_connect_trace_isset;
4619 AT_surfxml_mount_id AX_surfxml_mount_id;
4620 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4621 short int surfxml_mount_id_isset;
4622 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4623 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4624 short int surfxml_cluster_power_isset;
4625 AT_surfxml_process_function AX_surfxml_process_function;
4626 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4627 short int surfxml_process_function_isset;
4628 AT_surfxml_peer_id AX_surfxml_peer_id;
4629 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4630 short int surfxml_peer_id_isset;
4631 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4632 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4633 short int surfxml_cluster_router_id_isset;
4634 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4635 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4636 short int surfxml_cabinet_radical_isset;
4637 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4638 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4639 short int surfxml_cluster_sharing_policy_isset;
4640 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4641 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4642 short int surfxml_bypassRoute_dst_isset;
4643 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4644 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4645 short int surfxml_cabinet_power_isset;
4646 AT_surfxml_host_core AX_surfxml_host_core;
4647 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4648 short int surfxml_host_core_isset;
4649 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4650 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4651 short int surfxml_storage_type_model_isset;
4652 AT_surfxml_host_availability AX_surfxml_host_availability;
4653 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4654 short int surfxml_host_availability_isset;
4655 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4656 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4657 short int surfxml_bypassRoute_src_isset;
4658 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4659 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4660 short int surfxml_backbone_latency_isset;
4661 AT_surfxml_route_src AX_surfxml_route_src;
4662 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4663 short int surfxml_route_src_isset;
4664 AT_surfxml_storage_id AX_surfxml_storage_id;
4665 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4666 short int surfxml_storage_id_isset;
4667 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4668 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4669 short int surfxml_host_coordinates_isset;
4670 AT_surfxml_trace_id AX_surfxml_trace_id;
4671 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4672 short int surfxml_trace_id_isset;
4673 AT_surfxml_peer_power AX_surfxml_peer_power;
4674 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4675 short int surfxml_peer_power_isset;
4676 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4677 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4678 short int surfxml_cluster_radical_isset;
4679 AT_surfxml_config_id AX_surfxml_config_id;
4680 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4681 short int surfxml_config_id_isset;
4682 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4683 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4684 short int surfxml_bypassASroute_gw_dst_isset;
4685 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4686 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4687 short int surfxml_host_link_down_isset;
4688 AT_surfxml_include_file AX_surfxml_include_file;
4689 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4690 short int surfxml_include_file_isset;
4691 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4692 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4693 short int surfxml_random_std_deviation_isset;
4694 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4695 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4696 short int surfxml_cluster_core_isset;
4697 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4698 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4699 short int surfxml_host_state_file_isset;
4700 AT_surfxml_route_dst AX_surfxml_route_dst;
4701 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4702 short int surfxml_route_dst_isset;
4703 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4704 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4705 short int surfxml_cluster_bw_isset;
4706 AT_surfxml_platform_version AX_surfxml_platform_version;
4707 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4708 short int surfxml_platform_version_isset;
4709
4710 /* XML state. */
4711 #ifdef FLEX_DEBUG
4712 # define ENTER(state)   debug_enter(state,#state)
4713 # define LEAVE          debug_leave()
4714 # define SET(state)     debug_set(state,#state)
4715   static void debug_enter(int, const char*);
4716   static void debug_leave(void);
4717   static void debug_set(int, const char*);
4718 #else
4719 # define ENTER(state)   (yy_push_state(state))
4720 # define LEAVE          (yy_pop_state())
4721 # define SET(state)     BEGIN(state)
4722 #endif
4723
4724 /* Generic actions. */
4725 #define SKIP    /*skip*/
4726 #define SUCCEED        CLEANUP; return 0
4727
4728 #define FAIL    return fail
4729 static int fail(const char*, ...);
4730
4731 enum {flexml_max_err_msg_size = 512};
4732 static char flexml_err_msg[flexml_max_err_msg_size];
4733 const char * surfxml_parse_err_msg()
4734 {
4735     return flexml_err_msg;
4736 }
4737 static void reset_surfxml_parse_err_msg()
4738 {
4739     flexml_err_msg[0] = '\0';
4740 }
4741
4742 /* Cleanup */
4743 static void cleanup(void);
4744 #define CLEANUP  cleanup()
4745
4746 /* Text buffer stack handling. */
4747 char *surfxml_bufferstack = NULL;
4748 static int blimit = FLEXML_BUFFERSTACKSIZE;
4749 static int bnext = 1;
4750
4751 static int *indexstack = NULL;
4752 static int ilimit = FLEXML_INDEXSTACKSIZE;
4753 static int inext = 1;
4754
4755 #define BUFFERSET(P)  (P = bnext)
4756 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4757 #define BUFFERDONE    (BUFFERPUTC('\0'))
4758
4759 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4760
4761 /* after this is called, there are at least 2 slots left in the stack */
4762 static int ck_blimit()
4763 {
4764      if (bnext >= blimit) {
4765          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4766          {
4767              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4768              assert(temp);
4769              surfxml_bufferstack = temp;
4770          }
4771      }
4772      return 0;
4773 }
4774
4775 /* after this is called, there are at least 2 slots left in the stack */
4776 static int ck_ilimit()
4777 {
4778      if (inext >= ilimit) {
4779          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4780          {
4781              int *temp = (int *) realloc(indexstack, ilimit);
4782              assert(temp);
4783              indexstack = temp;
4784          }
4785      }
4786      return 0;
4787 }
4788
4789 #ifdef FLEXML_NEED_BUFFERLIT
4790 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4791 {
4792   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4793   assert(s <= e); BUFFERSET(*pp);
4794   while (++s<e) {
4795     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4796     else BUFFERPUTC(*s);
4797   }
4798   BUFFERDONE;
4799 }
4800 #endif
4801
4802 static void pushbuffer(int p)
4803 {
4804     ck_ilimit();
4805     indexstack[inext++] = p;
4806     indexstack[inext++] = bnext;    
4807 }
4808
4809 static int popbuffer(void)
4810 {
4811     assert(inext >= 2);
4812     bnext = indexstack[--inext];
4813     return indexstack[--inext];
4814 }
4815
4816 /* General internal entities are `unput' back onto the input stream... */
4817 #define ENTITYTEXT(T) \
4818   { char *s = (T), *e = s+strlen(s);\
4819     while (--e >= s) { unput(*e); }}
4820
4821 /* Flex standard options. */
4822 #define YY_NO_INPUT 1
4823 /* Flex user-requested options. */
4824 /* XML character classes (currently restricted to ASCII). */
4825 /* "Common syntactic structures." */
4826 /* "Names and Tokens." */
4827 /* Miscellaneous. */
4828 /* Parser states (flex `exclusive start conditions'):
4829  *
4830  * PROLOG       the XML prolog of the document before <?xml...>
4831  * DOCTYPE      the XML prolog of the document after <?xml...>
4832  * EPILOG       after the root element
4833  * INCOMMENT    inside an XML comment <!--....-->
4834  * INPI         inside an XML PI <?...?>
4835  * VALUE1       inside a '...'-delimited literal
4836  * VALUE2       inside a "..."-delimited literal
4837  * CDATA        inside a <![CDATA[...] ]> section.
4838  * ROOT_<tag>   expect root element <tag>
4839  * AL_<tag>     inside the attribute list for <tag>
4840  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4841  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4842  */
4843
4844 /* State names. */
4845 const char* *surfxml_statenames=NULL;
4846
4847 #define INITIAL 0
4848 #define PROLOG 1
4849 #define DOCTYPE 2
4850 #define EPILOG 3
4851 #define INCOMMENT 4
4852 #define INPI 5
4853 #define VALUE1 6
4854 #define VALUE2 7
4855 #define CDATA 8
4856 #define ROOT_surfxml_platform 9
4857 #define AL_surfxml_platform 10
4858 #define S_surfxml_platform 11
4859 #define S_surfxml_platform_1 12
4860 #define S_surfxml_platform_2 13
4861 #define S_surfxml_platform_3 14
4862 #define S_surfxml_platform_4 15
4863 #define S_surfxml_platform_5 16
4864 #define S_surfxml_platform_6 17
4865 #define S_surfxml_platform_7 18
4866 #define S_surfxml_platform_8 19
4867 #define E_surfxml_platform 20
4868 #define AL_surfxml_include 21
4869 #define S_surfxml_include 22
4870 #define S_surfxml_include_1 23
4871 #define S_surfxml_include_2 24
4872 #define E_surfxml_include 25
4873 #define AL_surfxml_trace 26
4874 #define IN_trace 27
4875 #define AL_surfxml_random 28
4876 #define S_surfxml_random 29
4877 #define S_surfxml_random_1 30
4878 #define S_surfxml_random_2 31
4879 #define E_surfxml_random 32
4880 #define AL_surfxml_trace_connect 33
4881 #define E_surfxml_trace_connect 34
4882 #define AL_surfxml_AS 35
4883 #define S_surfxml_AS 36
4884 #define S_surfxml_AS_1 37
4885 #define S_surfxml_AS_2 38
4886 #define S_surfxml_AS_3 39
4887 #define S_surfxml_AS_4 40
4888 #define S_surfxml_AS_5 41
4889 #define S_surfxml_AS_6 42
4890 #define S_surfxml_AS_7 43
4891 #define S_surfxml_AS_8 44
4892 #define S_surfxml_AS_9 45
4893 #define S_surfxml_AS_10 46
4894 #define S_surfxml_AS_11 47
4895 #define S_surfxml_AS_12 48
4896 #define S_surfxml_AS_13 49
4897 #define S_surfxml_AS_14 50
4898 #define S_surfxml_AS_15 51
4899 #define S_surfxml_AS_16 52
4900 #define E_surfxml_AS 53
4901 #define AL_surfxml_storage_type 54
4902 #define S_surfxml_storage_type 55
4903 #define S_surfxml_storage_type_1 56
4904 #define S_surfxml_storage_type_2 57
4905 #define E_surfxml_storage_type 58
4906 #define AL_surfxml_storage 59
4907 #define S_surfxml_storage 60
4908 #define S_surfxml_storage_1 61
4909 #define S_surfxml_storage_2 62
4910 #define E_surfxml_storage 63
4911 #define AL_surfxml_mount 64
4912 #define E_surfxml_mount 65
4913 #define AL_surfxml_mstorage 66
4914 #define E_surfxml_mstorage 67
4915 #define AL_surfxml_host 68
4916 #define S_surfxml_host 69
4917 #define S_surfxml_host_1 70
4918 #define S_surfxml_host_2 71
4919 #define E_surfxml_host 72
4920 #define AL_surfxml_host_link 73
4921 #define E_surfxml_host_link 74
4922 #define AL_surfxml_cluster 75
4923 #define E_surfxml_cluster 76
4924 #define AL_surfxml_cabinet 77
4925 #define E_surfxml_cabinet 78
4926 #define AL_surfxml_peer 79
4927 #define E_surfxml_peer 80
4928 #define AL_surfxml_router 81
4929 #define E_surfxml_router 82
4930 #define AL_surfxml_backbone 83
4931 #define E_surfxml_backbone 84
4932 #define AL_surfxml_link 85
4933 #define S_surfxml_link 86
4934 #define S_surfxml_link_1 87
4935 #define S_surfxml_link_2 88
4936 #define E_surfxml_link 89
4937 #define AL_surfxml_route 90
4938 #define S_surfxml_route 91
4939 #define S_surfxml_route_1 92
4940 #define S_surfxml_route_2 93
4941 #define E_surfxml_route 94
4942 #define AL_surfxml_ASroute 95
4943 #define S_surfxml_ASroute 96
4944 #define S_surfxml_ASroute_1 97
4945 #define S_surfxml_ASroute_2 98
4946 #define E_surfxml_ASroute 99
4947 #define AL_surfxml_link_ctn 100
4948 #define E_surfxml_link_ctn 101
4949 #define AL_surfxml_bypassRoute 102
4950 #define S_surfxml_bypassRoute 103
4951 #define S_surfxml_bypassRoute_1 104
4952 #define S_surfxml_bypassRoute_2 105
4953 #define E_surfxml_bypassRoute 106
4954 #define AL_surfxml_bypassASroute 107
4955 #define S_surfxml_bypassASroute 108
4956 #define S_surfxml_bypassASroute_1 109
4957 #define S_surfxml_bypassASroute_2 110
4958 #define E_surfxml_bypassASroute 111
4959 #define AL_surfxml_process 112
4960 #define S_surfxml_process 113
4961 #define S_surfxml_process_1 114
4962 #define S_surfxml_process_2 115
4963 #define E_surfxml_process 116
4964 #define AL_surfxml_argument 117
4965 #define E_surfxml_argument 118
4966 #define AL_surfxml_config 119
4967 #define S_surfxml_config 120
4968 #define S_surfxml_config_1 121
4969 #define S_surfxml_config_2 122
4970 #define E_surfxml_config 123
4971 #define AL_surfxml_prop 124
4972 #define E_surfxml_prop 125
4973 #define IMPOSSIBLE 126
4974
4975 #ifndef YY_NO_UNISTD_H
4976 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4977  * down here because we want the user's section 1 to have been scanned first.
4978  * The user has a chance to override it with an option.
4979  */
4980 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4981 #  ifndef __STRICT_ANSI__
4982 #    include <io.h>
4983 #    include <process.h>
4984 #  endif
4985 #else
4986 #  include <unistd.h>
4987 #endif
4988 #endif
4989
4990 #ifndef YY_EXTRA_TYPE
4991 #define YY_EXTRA_TYPE void *
4992 #endif
4993
4994 static int yy_init_globals (void );
4995
4996 /* Accessor methods to globals.
4997    These are made visible to non-reentrant scanners for convenience. */
4998
4999 int surf_parse_lex_destroy (void );
5000
5001 int surf_parse_get_debug (void );
5002
5003 void surf_parse_set_debug (int debug_flag  );
5004
5005 YY_EXTRA_TYPE surf_parse_get_extra (void );
5006
5007 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5008
5009 FILE *surf_parse_get_in (void );
5010
5011 void surf_parse_set_in  (FILE * in_str  );
5012
5013 FILE *surf_parse_get_out (void );
5014
5015 void surf_parse_set_out  (FILE * out_str  );
5016
5017 int surf_parse_get_leng (void );
5018
5019 char *surf_parse_get_text (void );
5020
5021 int surf_parse_get_lineno (void );
5022
5023 void surf_parse_set_lineno (int line_number  );
5024
5025 /* Macros after this point can all be overridden by user definitions in
5026  * section 1.
5027  */
5028
5029 #ifndef YY_SKIP_YYWRAP
5030 #ifdef __cplusplus
5031 extern "C" int surf_parse_wrap (void );
5032 #else
5033 extern int surf_parse_wrap (void );
5034 #endif
5035 #endif
5036
5037 #ifndef yytext_ptr
5038 static void yy_flex_strncpy (char *,yyconst char *,int );
5039 #endif
5040
5041 #ifdef YY_NEED_STRLEN
5042 static int yy_flex_strlen (yyconst char * );
5043 #endif
5044
5045 #ifndef YY_NO_INPUT
5046
5047 #ifdef __cplusplus
5048 static int yyinput (void );
5049 #else
5050 static int input (void );
5051 #endif
5052
5053 #endif
5054
5055         static int yy_start_stack_ptr = 0;
5056         static int yy_start_stack_depth = 0;
5057         static int *yy_start_stack = NULL;
5058     
5059     static void yy_push_state (int new_state );
5060     
5061     static void yy_pop_state (void );
5062     
5063 /* Amount of stuff to slurp up with each read. */
5064 #ifndef YY_READ_BUF_SIZE
5065 #ifdef __ia64__
5066 /* On IA-64, the buffer size is 16k, not 8k */
5067 #define YY_READ_BUF_SIZE 16384
5068 #else
5069 #define YY_READ_BUF_SIZE 8192
5070 #endif /* __ia64__ */
5071 #endif
5072
5073 /* Copy whatever the last rule matched to the standard output. */
5074 #ifndef ECHO
5075 /* This used to be an fputs(), but since the string might contain NUL's,
5076  * we now use fwrite().
5077  */
5078 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5079 #endif
5080
5081 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5082  * is returned in "result".
5083  */
5084 #ifndef YY_INPUT
5085 #define YY_INPUT(buf,result,max_size) \
5086         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5087                 { \
5088                 int c = '*'; \
5089                 size_t n; \
5090                 for ( n = 0; n < max_size && \
5091                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5092                         buf[n] = (char) c; \
5093                 if ( c == '\n' ) \
5094                         buf[n++] = (char) c; \
5095                 if ( c == EOF && ferror( surf_parse_in ) ) \
5096                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5097                 result = n; \
5098                 } \
5099         else \
5100                 { \
5101                 errno=0; \
5102                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5103                         { \
5104                         if( errno != EINTR) \
5105                                 { \
5106                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5107                                 break; \
5108                                 } \
5109                         errno=0; \
5110                         clearerr(surf_parse_in); \
5111                         } \
5112                 }\
5113 \
5114
5115 #endif
5116
5117 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5118  * we don't want an extra ';' after the "return" because that will cause
5119  * some compilers to complain about unreachable statements.
5120  */
5121 #ifndef yyterminate
5122 #define yyterminate() return YY_NULL
5123 #endif
5124
5125 /* Number of entries by which start-condition stack grows. */
5126 #ifndef YY_START_STACK_INCR
5127 #define YY_START_STACK_INCR 25
5128 #endif
5129
5130 /* Report a fatal error. */
5131 #ifndef YY_FATAL_ERROR
5132 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5133 #endif
5134
5135 /* end tables serialization structures and prototypes */
5136
5137 /* Default declaration of generated scanner - a define so the user can
5138  * easily add parameters.
5139  */
5140 #ifndef YY_DECL
5141 #define YY_DECL_IS_OURS 1
5142
5143 extern int surf_parse_lex (void);
5144
5145 #define YY_DECL int surf_parse_lex (void)
5146 #endif /* !YY_DECL */
5147
5148 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5149  * have been set up.
5150  */
5151 #ifndef YY_USER_ACTION
5152 #define YY_USER_ACTION
5153 #endif
5154
5155 /* Code executed at the end of each rule. */
5156 #ifndef YY_BREAK
5157 #define YY_BREAK break;
5158 #endif
5159
5160 #define YY_RULE_SETUP \
5161         YY_USER_ACTION
5162
5163 /** The main scanner function which does all the work.
5164  */
5165 YY_DECL
5166 {
5167         register yy_state_type yy_current_state;
5168         register char *yy_cp, *yy_bp;
5169         register int yy_act;
5170     
5171  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5172  SET(PROLOG);
5173  reset_surfxml_parse_err_msg();
5174  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5175  assert(surfxml_bufferstack);
5176  #ifdef FLEX_DEBUG
5177  {
5178      int i;
5179      for (i = 0; i < blimit; i++) {
5180          surfxml_bufferstack[i] = '\377';
5181      }
5182  }
5183  #endif
5184  surfxml_bufferstack[0] = '\0';
5185  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5186  assert(indexstack);
5187  indexstack[0] = 0;
5188
5189   /* FleXML_init */
5190   bnext = inext = 1;
5191   surfxml_bufferliteral('\0', &bnext, "0.0");
5192   surfxml_bufferliteral('\0', &bnext, "2147483647");
5193   surfxml_bufferliteral('\0', &bnext, "1");
5194   surfxml_bufferliteral('\0', &bnext, "1.0");
5195   surfxml_bufferliteral('\0', &bnext, "1");
5196   surfxml_bufferliteral('\0', &bnext, "0.0");
5197   surfxml_bufferliteral('\0', &bnext, "-1.0");
5198   surfxml_bufferliteral('\0', &bnext, "-1.0");
5199   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5200   surfxml_statenames[PROLOG] = NULL;
5201   surfxml_statenames[DOCTYPE] = NULL;
5202   surfxml_statenames[EPILOG] = NULL;
5203   surfxml_statenames[INCOMMENT] = NULL;
5204   surfxml_statenames[INPI] = NULL;
5205   surfxml_statenames[VALUE1] = NULL;
5206   surfxml_statenames[VALUE2] = NULL;
5207   surfxml_statenames[CDATA] = NULL;
5208   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5209   surfxml_statenames[AL_surfxml_platform] = NULL;
5210   surfxml_statenames[S_surfxml_platform] = "platform";
5211   surfxml_statenames[S_surfxml_platform_1] = "platform";
5212   surfxml_statenames[S_surfxml_platform_2] = "platform";
5213   surfxml_statenames[S_surfxml_platform_3] = "platform";
5214   surfxml_statenames[S_surfxml_platform_4] = "platform";
5215   surfxml_statenames[S_surfxml_platform_5] = "platform";
5216   surfxml_statenames[S_surfxml_platform_6] = "platform";
5217   surfxml_statenames[S_surfxml_platform_7] = "platform";
5218   surfxml_statenames[S_surfxml_platform_8] = "platform";
5219   surfxml_statenames[E_surfxml_platform] = "platform";
5220   surfxml_statenames[AL_surfxml_include] = NULL;
5221   surfxml_statenames[S_surfxml_include] = "include";
5222   surfxml_statenames[S_surfxml_include_1] = "include";
5223   surfxml_statenames[S_surfxml_include_2] = "include";
5224   surfxml_statenames[E_surfxml_include] = "include";
5225   surfxml_statenames[AL_surfxml_trace] = NULL;
5226   surfxml_statenames[IN_trace] = "trace";
5227   surfxml_statenames[AL_surfxml_random] = NULL;
5228   surfxml_statenames[S_surfxml_random] = "random";
5229   surfxml_statenames[S_surfxml_random_1] = "random";
5230   surfxml_statenames[S_surfxml_random_2] = "random";
5231   surfxml_statenames[E_surfxml_random] = "random";
5232   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5233   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5234   surfxml_statenames[AL_surfxml_AS] = NULL;
5235   surfxml_statenames[S_surfxml_AS] = "AS";
5236   surfxml_statenames[S_surfxml_AS_1] = "AS";
5237   surfxml_statenames[S_surfxml_AS_2] = "AS";
5238   surfxml_statenames[S_surfxml_AS_3] = "AS";
5239   surfxml_statenames[S_surfxml_AS_4] = "AS";
5240   surfxml_statenames[S_surfxml_AS_5] = "AS";
5241   surfxml_statenames[S_surfxml_AS_6] = "AS";
5242   surfxml_statenames[S_surfxml_AS_7] = "AS";
5243   surfxml_statenames[S_surfxml_AS_8] = "AS";
5244   surfxml_statenames[S_surfxml_AS_9] = "AS";
5245   surfxml_statenames[S_surfxml_AS_10] = "AS";
5246   surfxml_statenames[S_surfxml_AS_11] = "AS";
5247   surfxml_statenames[S_surfxml_AS_12] = "AS";
5248   surfxml_statenames[S_surfxml_AS_13] = "AS";
5249   surfxml_statenames[S_surfxml_AS_14] = "AS";
5250   surfxml_statenames[S_surfxml_AS_15] = "AS";
5251   surfxml_statenames[S_surfxml_AS_16] = "AS";
5252   surfxml_statenames[E_surfxml_AS] = "AS";
5253   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5254   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5255   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5256   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5257   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5258   surfxml_statenames[AL_surfxml_storage] = NULL;
5259   surfxml_statenames[S_surfxml_storage] = "storage";
5260   surfxml_statenames[S_surfxml_storage_1] = "storage";
5261   surfxml_statenames[S_surfxml_storage_2] = "storage";
5262   surfxml_statenames[E_surfxml_storage] = "storage";
5263   surfxml_statenames[AL_surfxml_mount] = NULL;
5264   surfxml_statenames[E_surfxml_mount] = "mount";
5265   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5266   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5267   surfxml_statenames[AL_surfxml_host] = NULL;
5268   surfxml_statenames[S_surfxml_host] = "host";
5269   surfxml_statenames[S_surfxml_host_1] = "host";
5270   surfxml_statenames[S_surfxml_host_2] = "host";
5271   surfxml_statenames[E_surfxml_host] = "host";
5272   surfxml_statenames[AL_surfxml_host_link] = NULL;
5273   surfxml_statenames[E_surfxml_host_link] = "host_link";
5274   surfxml_statenames[AL_surfxml_cluster] = NULL;
5275   surfxml_statenames[E_surfxml_cluster] = "cluster";
5276   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5277   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5278   surfxml_statenames[AL_surfxml_peer] = NULL;
5279   surfxml_statenames[E_surfxml_peer] = "peer";
5280   surfxml_statenames[AL_surfxml_router] = NULL;
5281   surfxml_statenames[E_surfxml_router] = "router";
5282   surfxml_statenames[AL_surfxml_backbone] = NULL;
5283   surfxml_statenames[E_surfxml_backbone] = "backbone";
5284   surfxml_statenames[AL_surfxml_link] = NULL;
5285   surfxml_statenames[S_surfxml_link] = "link";
5286   surfxml_statenames[S_surfxml_link_1] = "link";
5287   surfxml_statenames[S_surfxml_link_2] = "link";
5288   surfxml_statenames[E_surfxml_link] = "link";
5289   surfxml_statenames[AL_surfxml_route] = NULL;
5290   surfxml_statenames[S_surfxml_route] = "route";
5291   surfxml_statenames[S_surfxml_route_1] = "route";
5292   surfxml_statenames[S_surfxml_route_2] = "route";
5293   surfxml_statenames[E_surfxml_route] = "route";
5294   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5295   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5296   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5297   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5298   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5299   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5300   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5301   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5302   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5303   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5304   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5305   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5306   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5307   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5308   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5309   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5310   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5311   surfxml_statenames[AL_surfxml_process] = NULL;
5312   surfxml_statenames[S_surfxml_process] = "process";
5313   surfxml_statenames[S_surfxml_process_1] = "process";
5314   surfxml_statenames[S_surfxml_process_2] = "process";
5315   surfxml_statenames[E_surfxml_process] = "process";
5316   surfxml_statenames[AL_surfxml_argument] = NULL;
5317   surfxml_statenames[E_surfxml_argument] = "argument";
5318   surfxml_statenames[AL_surfxml_config] = NULL;
5319   surfxml_statenames[S_surfxml_config] = "config";
5320   surfxml_statenames[S_surfxml_config_1] = "config";
5321   surfxml_statenames[S_surfxml_config_2] = "config";
5322   surfxml_statenames[E_surfxml_config] = "config";
5323   surfxml_statenames[AL_surfxml_prop] = NULL;
5324   surfxml_statenames[E_surfxml_prop] = "prop";
5325   }
5326
5327  /* COMMENTS and PIs: handled uniformly for efficiency. */
5328
5329         if ( !(yy_init) )
5330                 {
5331                 (yy_init) = 1;
5332
5333 #ifdef YY_USER_INIT
5334                 YY_USER_INIT;
5335 #endif
5336
5337                 if ( ! (yy_start) )
5338                         (yy_start) = 1; /* first start state */
5339
5340                 if ( ! surf_parse_in )
5341                         surf_parse_in = stdin;
5342
5343                 if ( ! surf_parse_out )
5344                         surf_parse_out = stdout;
5345
5346                 if ( ! YY_CURRENT_BUFFER ) {
5347                         surf_parse_ensure_buffer_stack ();
5348                         YY_CURRENT_BUFFER_LVALUE =
5349                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5350                 }
5351
5352                 surf_parse__load_buffer_state( );
5353                 }
5354
5355         while ( 1 )             /* loops until end-of-file is reached */
5356                 {
5357                 yy_cp = (yy_c_buf_p);
5358
5359                 /* Support of surf_parse_text. */
5360                 *yy_cp = (yy_hold_char);
5361
5362                 /* yy_bp points to the position in yy_ch_buf of the start of
5363                  * the current run.
5364                  */
5365                 yy_bp = yy_cp;
5366
5367                 yy_current_state = (yy_start);
5368 yy_match:
5369                 do
5370                         {
5371                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5372                         if ( yy_accept[yy_current_state] )
5373                                 {
5374                                 (yy_last_accepting_state) = yy_current_state;
5375                                 (yy_last_accepting_cpos) = yy_cp;
5376                                 }
5377                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5378                                 {
5379                                 yy_current_state = (int) yy_def[yy_current_state];
5380                                 if ( yy_current_state >= 3225 )
5381                                         yy_c = yy_meta[(unsigned int) yy_c];
5382                                 }
5383                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5384                         ++yy_cp;
5385                         }
5386                 while ( yy_base[yy_current_state] != 11774 );
5387
5388 yy_find_action:
5389                 yy_act = yy_accept[yy_current_state];
5390                 if ( yy_act == 0 )
5391                         { /* have to back up */
5392                         yy_cp = (yy_last_accepting_cpos);
5393                         yy_current_state = (yy_last_accepting_state);
5394                         yy_act = yy_accept[yy_current_state];
5395                         }
5396
5397                 YY_DO_BEFORE_ACTION;
5398
5399                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5400                         {
5401                         int yyl;
5402                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5403                                 if ( surf_parse_text[yyl] == '\n' )
5404                                            
5405     surf_parse_lineno++;
5406 ;
5407                         }
5408
5409 do_action:      /* This label is used only to access EOF actions. */
5410
5411                 switch ( yy_act )
5412         { /* beginning of action switch */
5413                         case 0: /* must back up */
5414                         /* undo the effects of YY_DO_BEFORE_ACTION */
5415                         *yy_cp = (yy_hold_char);
5416                         yy_cp = (yy_last_accepting_cpos);
5417                         yy_current_state = (yy_last_accepting_state);
5418                         goto yy_find_action;
5419
5420 case 1:
5421 YY_RULE_SETUP
5422 ENTER(INCOMMENT);
5423         YY_BREAK
5424 case 2:
5425 YY_RULE_SETUP
5426 ENTER(INPI);
5427         YY_BREAK
5428
5429 case 3:
5430 YY_RULE_SETUP
5431 LEAVE;
5432         YY_BREAK
5433 case 4:
5434 case 5:
5435 case 6:
5436 /* rule 6 can match eol */
5437 YY_RULE_SETUP
5438 SKIP;
5439         YY_BREAK
5440 case YY_STATE_EOF(INCOMMENT):
5441 FAIL("EOF in comment.");
5442         YY_BREAK
5443
5444 case 7:
5445 YY_RULE_SETUP
5446 LEAVE;
5447         YY_BREAK
5448 case 8:
5449 case 9:
5450 /* rule 9 can match eol */
5451 YY_RULE_SETUP
5452 SKIP;
5453         YY_BREAK
5454 case YY_STATE_EOF(INPI):
5455 FAIL("EOF in PI (processing instruction).");
5456         YY_BREAK
5457
5458 /* SPACES: skipped uniformly */
5459 case 10:
5460 /* rule 10 can match eol */
5461 YY_RULE_SETUP
5462 SKIP;
5463         YY_BREAK
5464 /* PROLOG: determine root element and process it. */
5465
5466 case 11:
5467 /* rule 11 can match eol */
5468 YY_RULE_SETUP
5469 SET(DOCTYPE); 
5470         YY_BREAK
5471 case 12:
5472 /* rule 12 can match eol */
5473 YY_RULE_SETUP
5474 FAIL("Bad declaration %s.",surf_parse_text);
5475         YY_BREAK
5476
5477 case 13:
5478 /* rule 13 can match eol */
5479 YY_RULE_SETUP
5480 SET(ROOT_surfxml_platform);
5481         YY_BREAK
5482 case 14:
5483 /* rule 14 can match eol */
5484 YY_RULE_SETUP
5485 FAIL("Bad declaration %s.",surf_parse_text);
5486         YY_BREAK
5487 case 15:
5488 YY_RULE_SETUP
5489 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5490         YY_BREAK
5491 case YY_STATE_EOF(PROLOG):
5492 case YY_STATE_EOF(DOCTYPE):
5493 FAIL("EOF in prolog.");
5494         YY_BREAK
5495
5496 /* RULES DERIVED FROM DTD. */
5497 /* <!-- Small DTD for SURF based tools. -->  */
5498 case 16:
5499 /* rule 16 can match eol */
5500 YY_RULE_SETUP
5501 FAIL("Starting tag <platform> is not allowed here.");
5502         YY_BREAK
5503 case 17:
5504 /* rule 17 can match eol */
5505 YY_RULE_SETUP
5506 {
5507   AX_surfxml_platform_version = 1;
5508   surfxml_platform_version_isset = 0;
5509   ENTER(AL_surfxml_platform); pushbuffer(0);
5510   }
5511         YY_BREAK
5512
5513 case 18:
5514 /* rule 18 can match eol */
5515 YY_RULE_SETUP
5516 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);
5517         YY_BREAK
5518 case 19:
5519 /* rule 19 can match eol */
5520 YY_RULE_SETUP
5521 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);
5522         YY_BREAK
5523 case 20:
5524 YY_RULE_SETUP
5525 {
5526   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5527  }
5528         YY_BREAK
5529 case 21:
5530 YY_RULE_SETUP
5531 {
5532   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5533   switch (YY_START) {
5534    case ROOT_surfxml_platform: SET(EPILOG); break;
5535   }
5536  }
5537         YY_BREAK
5538 case 22:
5539 YY_RULE_SETUP
5540 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5541         YY_BREAK
5542 case 23:
5543 YY_RULE_SETUP
5544 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5545         YY_BREAK
5546 case YY_STATE_EOF(AL_surfxml_platform):
5547 FAIL("EOF in attribute list of `platform' element.");
5548         YY_BREAK
5549
5550 case 24:
5551 /* rule 24 can match eol */
5552 YY_RULE_SETUP
5553 {
5554   LEAVE;
5555   ETag_surfxml_platform();
5556   popbuffer(); /* attribute */
5557   switch (YY_START) {
5558    case ROOT_surfxml_platform: SET(EPILOG); break;
5559   }
5560  }
5561         YY_BREAK
5562 case 25:
5563 /* rule 25 can match eol */
5564 YY_RULE_SETUP
5565 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5566         YY_BREAK
5567 case 26:
5568 YY_RULE_SETUP
5569 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5570         YY_BREAK
5571 case YY_STATE_EOF(S_surfxml_platform_8):
5572 case YY_STATE_EOF(S_surfxml_platform_1):
5573 case YY_STATE_EOF(S_surfxml_platform_3):
5574 case YY_STATE_EOF(S_surfxml_platform):
5575 case YY_STATE_EOF(S_surfxml_platform_4):
5576 case YY_STATE_EOF(S_surfxml_platform_6):
5577 case YY_STATE_EOF(E_surfxml_platform):
5578 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5579         YY_BREAK
5580
5581 case 27:
5582 /* rule 27 can match eol */
5583 YY_RULE_SETUP
5584 FAIL("Starting tag <include> is not allowed here.");
5585         YY_BREAK
5586 case 28:
5587 /* rule 28 can match eol */
5588 YY_RULE_SETUP
5589 {
5590   AX_surfxml_include_file = 0;
5591   surfxml_include_file_isset = 0;
5592   ENTER(AL_surfxml_include); pushbuffer(0);
5593   }
5594         YY_BREAK
5595
5596 case 29:
5597 /* rule 29 can match eol */
5598 YY_RULE_SETUP
5599 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);
5600         YY_BREAK
5601 case 30:
5602 /* rule 30 can match eol */
5603 YY_RULE_SETUP
5604 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);
5605         YY_BREAK
5606 case 31:
5607 YY_RULE_SETUP
5608 {
5609   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5610   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5611  }
5612         YY_BREAK
5613 case 32:
5614 YY_RULE_SETUP
5615 {
5616   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5617   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5618   switch (YY_START) {
5619    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5620    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5621    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5622    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5623   }
5624  }
5625         YY_BREAK
5626 case 33:
5627 YY_RULE_SETUP
5628 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5629         YY_BREAK
5630 case 34:
5631 YY_RULE_SETUP
5632 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5633         YY_BREAK
5634 case YY_STATE_EOF(AL_surfxml_include):
5635 FAIL("EOF in attribute list of `include' element.");
5636         YY_BREAK
5637
5638 case 35:
5639 /* rule 35 can match eol */
5640 YY_RULE_SETUP
5641 {
5642   LEAVE;
5643   ETag_surfxml_include();
5644   popbuffer(); /* attribute */
5645   switch (YY_START) {
5646    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5647    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5648    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5649    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5650   }
5651  }
5652         YY_BREAK
5653 case 36:
5654 /* rule 36 can match eol */
5655 YY_RULE_SETUP
5656 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5657         YY_BREAK
5658 case 37:
5659 YY_RULE_SETUP
5660 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5661         YY_BREAK
5662 case YY_STATE_EOF(E_surfxml_include):
5663 case YY_STATE_EOF(S_surfxml_include):
5664 case YY_STATE_EOF(S_surfxml_include_2):
5665 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5666         YY_BREAK
5667
5668 case 38:
5669 /* rule 38 can match eol */
5670 YY_RULE_SETUP
5671 FAIL("Starting tag <trace> is not allowed here.");
5672         YY_BREAK
5673 case 39:
5674 /* rule 39 can match eol */
5675 YY_RULE_SETUP
5676 {
5677   AX_surfxml_trace_id = 0;
5678   surfxml_trace_id_isset = 0;
5679   AX_surfxml_trace_file = 0;
5680   surfxml_trace_file_isset = 0;
5681   AX_surfxml_trace_periodicity = 0;
5682   surfxml_trace_periodicity_isset = 0;
5683   ENTER(AL_surfxml_trace); pushbuffer(0);
5684   }
5685         YY_BREAK
5686
5687 case 40:
5688 /* rule 40 can match eol */
5689 YY_RULE_SETUP
5690 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);
5691         YY_BREAK
5692 case 41:
5693 /* rule 41 can match eol */
5694 YY_RULE_SETUP
5695 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);
5696         YY_BREAK
5697 case 42:
5698 /* rule 42 can match eol */
5699 YY_RULE_SETUP
5700 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);
5701         YY_BREAK
5702 case 43:
5703 /* rule 43 can match eol */
5704 YY_RULE_SETUP
5705 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);
5706         YY_BREAK
5707 case 44:
5708 /* rule 44 can match eol */
5709 YY_RULE_SETUP
5710 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);
5711         YY_BREAK
5712 case 45:
5713 /* rule 45 can match eol */
5714 YY_RULE_SETUP
5715 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);
5716         YY_BREAK
5717 case 46:
5718 YY_RULE_SETUP
5719 {
5720   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5721   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5722   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5723  }
5724         YY_BREAK
5725 case 47:
5726 YY_RULE_SETUP
5727 {
5728   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5729   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5730   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5731   switch (YY_START) {
5732    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5733    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5734    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5735    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5736    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5737    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5738    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5739   }
5740  }
5741         YY_BREAK
5742 case 48:
5743 YY_RULE_SETUP
5744 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5745         YY_BREAK
5746 case 49:
5747 YY_RULE_SETUP
5748 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5749         YY_BREAK
5750 case YY_STATE_EOF(AL_surfxml_trace):
5751 FAIL("EOF in attribute list of `trace' element.");
5752         YY_BREAK
5753
5754 case 50:
5755 /* rule 50 can match eol */
5756 YY_RULE_SETUP
5757 {
5758   LEAVE;
5759   BUFFERDONE;
5760   ETag_surfxml_trace();
5761   surfxml_pcdata_ix = popbuffer();
5762   popbuffer(); /* attribute */
5763   switch (YY_START) {
5764    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5765    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5766    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5767    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5768    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5769    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5770    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5771   }
5772  }
5773         YY_BREAK
5774 case 51:
5775 /* rule 51 can match eol */
5776 YY_RULE_SETUP
5777 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5778         YY_BREAK
5779 case YY_STATE_EOF(IN_trace):
5780 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5781         YY_BREAK
5782
5783 case 52:
5784 /* rule 52 can match eol */
5785 YY_RULE_SETUP
5786 FAIL("Starting tag <random> is not allowed here.");
5787         YY_BREAK
5788 case 53:
5789 /* rule 53 can match eol */
5790 YY_RULE_SETUP
5791 {
5792   AX_surfxml_random_id = 0;
5793   surfxml_random_id_isset = 0;
5794   AX_surfxml_random_min = 0;
5795   surfxml_random_min_isset = 0;
5796   AX_surfxml_random_max = 0;
5797   surfxml_random_max_isset = 0;
5798   AX_surfxml_random_mean = 0;
5799   surfxml_random_mean_isset = 0;
5800   AX_surfxml_random_std_deviation = 0;
5801   surfxml_random_std_deviation_isset = 0;
5802   AX_surfxml_random_seed = 5;
5803   surfxml_random_seed_isset = 0;
5804   AX_surfxml_random_radical = 0;
5805   surfxml_random_radical_isset = 0;
5806   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5807   surfxml_random_generator_isset = 0;
5808   ENTER(AL_surfxml_random); pushbuffer(0);
5809   }
5810         YY_BREAK
5811
5812 case 54:
5813 /* rule 54 can match eol */
5814 YY_RULE_SETUP
5815 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);
5816         YY_BREAK
5817 case 55:
5818 /* rule 55 can match eol */
5819 YY_RULE_SETUP
5820 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);
5821         YY_BREAK
5822 case 56:
5823 /* rule 56 can match eol */
5824 YY_RULE_SETUP
5825 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);
5826         YY_BREAK
5827 case 57:
5828 /* rule 57 can match eol */
5829 YY_RULE_SETUP
5830 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);
5831         YY_BREAK
5832 case 58:
5833 /* rule 58 can match eol */
5834 YY_RULE_SETUP
5835 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);
5836         YY_BREAK
5837 case 59:
5838 /* rule 59 can match eol */
5839 YY_RULE_SETUP
5840 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);
5841         YY_BREAK
5842 case 60:
5843 /* rule 60 can match eol */
5844 YY_RULE_SETUP
5845 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);
5846         YY_BREAK
5847 case 61:
5848 /* rule 61 can match eol */
5849 YY_RULE_SETUP
5850 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);
5851         YY_BREAK
5852 case 62:
5853 /* rule 62 can match eol */
5854 YY_RULE_SETUP
5855 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);
5856         YY_BREAK
5857 case 63:
5858 /* rule 63 can match eol */
5859 YY_RULE_SETUP
5860 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);
5861         YY_BREAK
5862 case 64:
5863 /* rule 64 can match eol */
5864 YY_RULE_SETUP
5865 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);
5866         YY_BREAK
5867 case 65:
5868 /* rule 65 can match eol */
5869 YY_RULE_SETUP
5870 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);
5871         YY_BREAK
5872 case 66:
5873 /* rule 66 can match eol */
5874 YY_RULE_SETUP
5875 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);
5876         YY_BREAK
5877 case 67:
5878 /* rule 67 can match eol */
5879 YY_RULE_SETUP
5880 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);
5881         YY_BREAK
5882 case 68:
5883 /* rule 68 can match eol */
5884 case 69:
5885 /* rule 69 can match eol */
5886 YY_RULE_SETUP
5887 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5888         YY_BREAK
5889 case 70:
5890 /* rule 70 can match eol */
5891 case 71:
5892 /* rule 71 can match eol */
5893 YY_RULE_SETUP
5894 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5895         YY_BREAK
5896 case 72:
5897 /* rule 72 can match eol */
5898 case 73:
5899 /* rule 73 can match eol */
5900 YY_RULE_SETUP
5901 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5902         YY_BREAK
5903 case 74:
5904 /* rule 74 can match eol */
5905 case 75:
5906 /* rule 75 can match eol */
5907 YY_RULE_SETUP
5908 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5909         YY_BREAK
5910 case 76:
5911 YY_RULE_SETUP
5912 {
5913   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5914   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5915   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5916   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5917   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5918   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5919  }
5920         YY_BREAK
5921 case 77:
5922 YY_RULE_SETUP
5923 {
5924   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5925   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5926   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5927   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5928   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5929   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5930   switch (YY_START) {
5931    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5932   }
5933  }
5934         YY_BREAK
5935 case 78:
5936 YY_RULE_SETUP
5937 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5938         YY_BREAK
5939 case 79:
5940 YY_RULE_SETUP
5941 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5942         YY_BREAK
5943 case YY_STATE_EOF(AL_surfxml_random):
5944 FAIL("EOF in attribute list of `random' element.");
5945         YY_BREAK
5946
5947 case 80:
5948 /* rule 80 can match eol */
5949 YY_RULE_SETUP
5950 {
5951   LEAVE;
5952   ETag_surfxml_random();
5953   popbuffer(); /* attribute */
5954   switch (YY_START) {
5955    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5956   }
5957  }
5958         YY_BREAK
5959 case 81:
5960 /* rule 81 can match eol */
5961 YY_RULE_SETUP
5962 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5963         YY_BREAK
5964 case 82:
5965 YY_RULE_SETUP
5966 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5967         YY_BREAK
5968 case YY_STATE_EOF(S_surfxml_random):
5969 case YY_STATE_EOF(S_surfxml_random_2):
5970 case YY_STATE_EOF(E_surfxml_random):
5971 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5972         YY_BREAK
5973
5974 case 83:
5975 /* rule 83 can match eol */
5976 YY_RULE_SETUP
5977 FAIL("Starting tag <trace_connect> is not allowed here.");
5978         YY_BREAK
5979 case 84:
5980 /* rule 84 can match eol */
5981 YY_RULE_SETUP
5982 {
5983   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5984   surfxml_trace_connect_kind_isset = 0;
5985   AX_surfxml_trace_connect_trace = 0;
5986   surfxml_trace_connect_trace_isset = 0;
5987   AX_surfxml_trace_connect_element = 0;
5988   surfxml_trace_connect_element_isset = 0;
5989   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5990   }
5991         YY_BREAK
5992
5993 case 85:
5994 /* rule 85 can match eol */
5995 case 86:
5996 /* rule 86 can match eol */
5997 YY_RULE_SETUP
5998 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5999         YY_BREAK
6000 case 87:
6001 /* rule 87 can match eol */
6002 case 88:
6003 /* rule 88 can match eol */
6004 YY_RULE_SETUP
6005 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
6006         YY_BREAK
6007 case 89:
6008 /* rule 89 can match eol */
6009 case 90:
6010 /* rule 90 can match eol */
6011 YY_RULE_SETUP
6012 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
6013         YY_BREAK
6014 case 91:
6015 /* rule 91 can match eol */
6016 case 92:
6017 /* rule 92 can match eol */
6018 YY_RULE_SETUP
6019 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
6020         YY_BREAK
6021 case 93:
6022 /* rule 93 can match eol */
6023 case 94:
6024 /* rule 94 can match eol */
6025 YY_RULE_SETUP
6026 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
6027         YY_BREAK
6028 case 95:
6029 /* rule 95 can match eol */
6030 YY_RULE_SETUP
6031 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);
6032         YY_BREAK
6033 case 96:
6034 /* rule 96 can match eol */
6035 YY_RULE_SETUP
6036 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);
6037         YY_BREAK
6038 case 97:
6039 /* rule 97 can match eol */
6040 YY_RULE_SETUP
6041 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);
6042         YY_BREAK
6043 case 98:
6044 /* rule 98 can match eol */
6045 YY_RULE_SETUP
6046 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);
6047         YY_BREAK
6048 case 99:
6049 YY_RULE_SETUP
6050 {
6051   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6052   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6053   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
6054  }
6055         YY_BREAK
6056 case 100:
6057 YY_RULE_SETUP
6058 {
6059   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6060   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6061   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
6062   switch (YY_START) {
6063    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6064    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6065    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6066    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6067    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6068    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6069    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6070   }
6071  }
6072         YY_BREAK
6073 case 101:
6074 YY_RULE_SETUP
6075 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6076         YY_BREAK
6077 case 102:
6078 YY_RULE_SETUP
6079 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6080         YY_BREAK
6081 case YY_STATE_EOF(AL_surfxml_trace_connect):
6082 FAIL("EOF in attribute list of `trace_connect' element.");
6083         YY_BREAK
6084
6085 case 103:
6086 /* rule 103 can match eol */
6087 YY_RULE_SETUP
6088 {
6089   LEAVE;
6090   ETag_surfxml_trace_connect();
6091   popbuffer(); /* attribute */
6092   switch (YY_START) {
6093    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6094    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6095    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6096    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6097    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6098    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6099    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6100   }
6101  }
6102         YY_BREAK
6103 case 104:
6104 /* rule 104 can match eol */
6105 YY_RULE_SETUP
6106 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6107         YY_BREAK
6108 case 105:
6109 YY_RULE_SETUP
6110 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6111         YY_BREAK
6112 case YY_STATE_EOF(E_surfxml_trace_connect):
6113 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6114         YY_BREAK
6115
6116 case 106:
6117 /* rule 106 can match eol */
6118 YY_RULE_SETUP
6119 FAIL("Starting tag <AS> is not allowed here.");
6120         YY_BREAK
6121 case 107:
6122 /* rule 107 can match eol */
6123 YY_RULE_SETUP
6124 {
6125   AX_surfxml_AS_id = 0;
6126   surfxml_AS_id_isset = 0;
6127   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6128   surfxml_AS_routing_isset = 0;
6129   ENTER(AL_surfxml_AS); pushbuffer(0);
6130   }
6131         YY_BREAK
6132
6133 case 108:
6134 /* rule 108 can match eol */
6135 YY_RULE_SETUP
6136 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);
6137         YY_BREAK
6138 case 109:
6139 /* rule 109 can match eol */
6140 YY_RULE_SETUP
6141 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);
6142         YY_BREAK
6143 case 110:
6144 /* rule 110 can match eol */
6145 case 111:
6146 /* rule 111 can match eol */
6147 YY_RULE_SETUP
6148 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6149         YY_BREAK
6150 case 112:
6151 /* rule 112 can match eol */
6152 case 113:
6153 /* rule 113 can match eol */
6154 YY_RULE_SETUP
6155 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6156         YY_BREAK
6157 case 114:
6158 /* rule 114 can match eol */
6159 case 115:
6160 /* rule 115 can match eol */
6161 YY_RULE_SETUP
6162 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6163         YY_BREAK
6164 case 116:
6165 /* rule 116 can match eol */
6166 case 117:
6167 /* rule 117 can match eol */
6168 YY_RULE_SETUP
6169 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6170         YY_BREAK
6171 case 118:
6172 /* rule 118 can match eol */
6173 case 119:
6174 /* rule 119 can match eol */
6175 YY_RULE_SETUP
6176 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6177         YY_BREAK
6178 case 120:
6179 /* rule 120 can match eol */
6180 case 121:
6181 /* rule 121 can match eol */
6182 YY_RULE_SETUP
6183 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6184         YY_BREAK
6185 case 122:
6186 /* rule 122 can match eol */
6187 case 123:
6188 /* rule 123 can match eol */
6189 YY_RULE_SETUP
6190 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6191         YY_BREAK
6192 case 124:
6193 /* rule 124 can match eol */
6194 case 125:
6195 /* rule 125 can match eol */
6196 YY_RULE_SETUP
6197 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6198         YY_BREAK
6199 case 126:
6200 YY_RULE_SETUP
6201 {
6202   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6203   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6204  }
6205         YY_BREAK
6206 case 127:
6207 YY_RULE_SETUP
6208 {
6209   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6210   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6211   switch (YY_START) {
6212    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6213    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6214    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6215   }
6216  }
6217         YY_BREAK
6218 case 128:
6219 YY_RULE_SETUP
6220 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6221         YY_BREAK
6222 case 129:
6223 YY_RULE_SETUP
6224 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6225         YY_BREAK
6226 case YY_STATE_EOF(AL_surfxml_AS):
6227 FAIL("EOF in attribute list of `AS' element.");
6228         YY_BREAK
6229
6230 case 130:
6231 /* rule 130 can match eol */
6232 YY_RULE_SETUP
6233 {
6234   LEAVE;
6235   ETag_surfxml_AS();
6236   popbuffer(); /* attribute */
6237   switch (YY_START) {
6238    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6239    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6240    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6241   }
6242  }
6243         YY_BREAK
6244 case 131:
6245 /* rule 131 can match eol */
6246 YY_RULE_SETUP
6247 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6248         YY_BREAK
6249 case 132:
6250 YY_RULE_SETUP
6251 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6252         YY_BREAK
6253 case YY_STATE_EOF(S_surfxml_AS_12):
6254 case YY_STATE_EOF(S_surfxml_AS_9):
6255 case YY_STATE_EOF(S_surfxml_AS_1):
6256 case YY_STATE_EOF(S_surfxml_AS_7):
6257 case YY_STATE_EOF(S_surfxml_AS_11):
6258 case YY_STATE_EOF(S_surfxml_AS_14):
6259 case YY_STATE_EOF(S_surfxml_AS_6):
6260 case YY_STATE_EOF(E_surfxml_AS):
6261 case YY_STATE_EOF(S_surfxml_AS_16):
6262 case YY_STATE_EOF(S_surfxml_AS_3):
6263 case YY_STATE_EOF(S_surfxml_AS):
6264 case YY_STATE_EOF(S_surfxml_AS_4):
6265 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6266         YY_BREAK
6267
6268 case 133:
6269 /* rule 133 can match eol */
6270 YY_RULE_SETUP
6271 FAIL("Starting tag <storage_type> is not allowed here.");
6272         YY_BREAK
6273 case 134:
6274 /* rule 134 can match eol */
6275 YY_RULE_SETUP
6276 {
6277   AX_surfxml_storage_type_id = 0;
6278   surfxml_storage_type_id_isset = 0;
6279   AX_surfxml_storage_type_model = 0;
6280   surfxml_storage_type_model_isset = 0;
6281   AX_surfxml_storage_type_size = 0;
6282   surfxml_storage_type_size_isset = 0;
6283   AX_surfxml_storage_type_content = 0;
6284   surfxml_storage_type_content_isset = 0;
6285   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6286   }
6287         YY_BREAK
6288
6289 case 135:
6290 /* rule 135 can match eol */
6291 YY_RULE_SETUP
6292 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);
6293         YY_BREAK
6294 case 136:
6295 /* rule 136 can match eol */
6296 YY_RULE_SETUP
6297 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);
6298         YY_BREAK
6299 case 137:
6300 /* rule 137 can match eol */
6301 YY_RULE_SETUP
6302 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);
6303         YY_BREAK
6304 case 138:
6305 /* rule 138 can match eol */
6306 YY_RULE_SETUP
6307 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);
6308         YY_BREAK
6309 case 139:
6310 /* rule 139 can match eol */
6311 YY_RULE_SETUP
6312 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);
6313         YY_BREAK
6314 case 140:
6315 /* rule 140 can match eol */
6316 YY_RULE_SETUP
6317 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);
6318         YY_BREAK
6319 case 141:
6320 /* rule 141 can match eol */
6321 YY_RULE_SETUP
6322 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);
6323         YY_BREAK
6324 case 142:
6325 /* rule 142 can match eol */
6326 YY_RULE_SETUP
6327 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);
6328         YY_BREAK
6329 case 143:
6330 YY_RULE_SETUP
6331 {
6332   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6333   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6334   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6335   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6336  }
6337         YY_BREAK
6338 case 144:
6339 YY_RULE_SETUP
6340 {
6341   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6342   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6343   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6344   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6345   switch (YY_START) {
6346    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6347    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6348   }
6349  }
6350         YY_BREAK
6351 case 145:
6352 YY_RULE_SETUP
6353 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6354         YY_BREAK
6355 case 146:
6356 YY_RULE_SETUP
6357 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6358         YY_BREAK
6359 case YY_STATE_EOF(AL_surfxml_storage_type):
6360 FAIL("EOF in attribute list of `storage_type' element.");
6361         YY_BREAK
6362
6363 case 147:
6364 /* rule 147 can match eol */
6365 YY_RULE_SETUP
6366 {
6367   LEAVE;
6368   ETag_surfxml_storage_type();
6369   popbuffer(); /* attribute */
6370   switch (YY_START) {
6371    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6372    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6373   }
6374  }
6375         YY_BREAK
6376 case 148:
6377 /* rule 148 can match eol */
6378 YY_RULE_SETUP
6379 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6380         YY_BREAK
6381 case 149:
6382 YY_RULE_SETUP
6383 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6384         YY_BREAK
6385 case YY_STATE_EOF(E_surfxml_storage_type):
6386 case YY_STATE_EOF(S_surfxml_storage_type_2):
6387 case YY_STATE_EOF(S_surfxml_storage_type):
6388 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6389         YY_BREAK
6390
6391 case 150:
6392 /* rule 150 can match eol */
6393 YY_RULE_SETUP
6394 FAIL("Starting tag <storage> is not allowed here.");
6395         YY_BREAK
6396 case 151:
6397 /* rule 151 can match eol */
6398 YY_RULE_SETUP
6399 {
6400   AX_surfxml_storage_id = 0;
6401   surfxml_storage_id_isset = 0;
6402   AX_surfxml_storage_typeId = 0;
6403   surfxml_storage_typeId_isset = 0;
6404   AX_surfxml_storage_content = 0;
6405   surfxml_storage_content_isset = 0;
6406   ENTER(AL_surfxml_storage); pushbuffer(0);
6407   }
6408         YY_BREAK
6409
6410 case 152:
6411 /* rule 152 can match eol */
6412 YY_RULE_SETUP
6413 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);
6414         YY_BREAK
6415 case 153:
6416 /* rule 153 can match eol */
6417 YY_RULE_SETUP
6418 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);
6419         YY_BREAK
6420 case 154:
6421 /* rule 154 can match eol */
6422 YY_RULE_SETUP
6423 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);
6424         YY_BREAK
6425 case 155:
6426 /* rule 155 can match eol */
6427 YY_RULE_SETUP
6428 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);
6429         YY_BREAK
6430 case 156:
6431 /* rule 156 can match eol */
6432 YY_RULE_SETUP
6433 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);
6434         YY_BREAK
6435 case 157:
6436 /* rule 157 can match eol */
6437 YY_RULE_SETUP
6438 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);
6439         YY_BREAK
6440 case 158:
6441 YY_RULE_SETUP
6442 {
6443   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6444   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6445   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6446  }
6447         YY_BREAK
6448 case 159:
6449 YY_RULE_SETUP
6450 {
6451   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6452   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6453   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6454   switch (YY_START) {
6455    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6456    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6457   }
6458  }
6459         YY_BREAK
6460 case 160:
6461 YY_RULE_SETUP
6462 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6463         YY_BREAK
6464 case 161:
6465 YY_RULE_SETUP
6466 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6467         YY_BREAK
6468 case YY_STATE_EOF(AL_surfxml_storage):
6469 FAIL("EOF in attribute list of `storage' element.");
6470         YY_BREAK
6471
6472 case 162:
6473 /* rule 162 can match eol */
6474 YY_RULE_SETUP
6475 {
6476   LEAVE;
6477   ETag_surfxml_storage();
6478   popbuffer(); /* attribute */
6479   switch (YY_START) {
6480    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6481    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6482   }
6483  }
6484         YY_BREAK
6485 case 163:
6486 /* rule 163 can match eol */
6487 YY_RULE_SETUP
6488 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6489         YY_BREAK
6490 case 164:
6491 YY_RULE_SETUP
6492 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6493         YY_BREAK
6494 case YY_STATE_EOF(E_surfxml_storage):
6495 case YY_STATE_EOF(S_surfxml_storage):
6496 case YY_STATE_EOF(S_surfxml_storage_2):
6497 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6498         YY_BREAK
6499
6500 case 165:
6501 /* rule 165 can match eol */
6502 YY_RULE_SETUP
6503 FAIL("Starting tag <mount> is not allowed here.");
6504         YY_BREAK
6505 case 166:
6506 /* rule 166 can match eol */
6507 YY_RULE_SETUP
6508 {
6509   AX_surfxml_mount_id = 0;
6510   surfxml_mount_id_isset = 0;
6511   AX_surfxml_mount_name = 0;
6512   surfxml_mount_name_isset = 0;
6513   ENTER(AL_surfxml_mount); pushbuffer(0);
6514   }
6515         YY_BREAK
6516
6517 case 167:
6518 /* rule 167 can match eol */
6519 YY_RULE_SETUP
6520 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6521         YY_BREAK
6522 case 168:
6523 /* rule 168 can match eol */
6524 YY_RULE_SETUP
6525 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6526         YY_BREAK
6527 case 169:
6528 /* rule 169 can match eol */
6529 YY_RULE_SETUP
6530 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);
6531         YY_BREAK
6532 case 170:
6533 /* rule 170 can match eol */
6534 YY_RULE_SETUP
6535 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);
6536         YY_BREAK
6537 case 171:
6538 YY_RULE_SETUP
6539 {
6540   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6541   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6542   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6543  }
6544         YY_BREAK
6545 case 172:
6546 YY_RULE_SETUP
6547 {
6548   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6549   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6550   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6551   switch (YY_START) {
6552    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6553   }
6554  }
6555         YY_BREAK
6556 case 173:
6557 YY_RULE_SETUP
6558 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6559         YY_BREAK
6560 case 174:
6561 YY_RULE_SETUP
6562 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6563         YY_BREAK
6564 case YY_STATE_EOF(AL_surfxml_mount):
6565 FAIL("EOF in attribute list of `mount' element.");
6566         YY_BREAK
6567
6568 case 175:
6569 /* rule 175 can match eol */
6570 YY_RULE_SETUP
6571 {
6572   LEAVE;
6573   ETag_surfxml_mount();
6574   popbuffer(); /* attribute */
6575   switch (YY_START) {
6576    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6577   }
6578  }
6579         YY_BREAK
6580 case 176:
6581 /* rule 176 can match eol */
6582 YY_RULE_SETUP
6583 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6584         YY_BREAK
6585 case 177:
6586 YY_RULE_SETUP
6587 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6588         YY_BREAK
6589 case YY_STATE_EOF(E_surfxml_mount):
6590 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6591         YY_BREAK
6592
6593 case 178:
6594 /* rule 178 can match eol */
6595 YY_RULE_SETUP
6596 FAIL("Starting tag <mstorage> is not allowed here.");
6597         YY_BREAK
6598 case 179:
6599 /* rule 179 can match eol */
6600 YY_RULE_SETUP
6601 {
6602   AX_surfxml_mstorage_typeId = 0;
6603   surfxml_mstorage_typeId_isset = 0;
6604   AX_surfxml_mstorage_name = 0;
6605   surfxml_mstorage_name_isset = 0;
6606   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6607   }
6608         YY_BREAK
6609
6610 case 180:
6611 /* rule 180 can match eol */
6612 YY_RULE_SETUP
6613 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);
6614         YY_BREAK
6615 case 181:
6616 /* rule 181 can match eol */
6617 YY_RULE_SETUP
6618 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);
6619         YY_BREAK
6620 case 182:
6621 /* rule 182 can match eol */
6622 YY_RULE_SETUP
6623 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);
6624         YY_BREAK
6625 case 183:
6626 /* rule 183 can match eol */
6627 YY_RULE_SETUP
6628 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);
6629         YY_BREAK
6630 case 184:
6631 YY_RULE_SETUP
6632 {
6633   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6634   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6635   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6636  }
6637         YY_BREAK
6638 case 185:
6639 YY_RULE_SETUP
6640 {
6641   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6642   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6643   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6644   switch (YY_START) {
6645    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6646   }
6647  }
6648         YY_BREAK
6649 case 186:
6650 YY_RULE_SETUP
6651 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6652         YY_BREAK
6653 case 187:
6654 YY_RULE_SETUP
6655 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6656         YY_BREAK
6657 case YY_STATE_EOF(AL_surfxml_mstorage):
6658 FAIL("EOF in attribute list of `mstorage' element.");
6659         YY_BREAK
6660
6661 case 188:
6662 /* rule 188 can match eol */
6663 YY_RULE_SETUP
6664 {
6665   LEAVE;
6666   ETag_surfxml_mstorage();
6667   popbuffer(); /* attribute */
6668   switch (YY_START) {
6669    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6670   }
6671  }
6672         YY_BREAK
6673 case 189:
6674 /* rule 189 can match eol */
6675 YY_RULE_SETUP
6676 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6677         YY_BREAK
6678 case 190:
6679 YY_RULE_SETUP
6680 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6681         YY_BREAK
6682 case YY_STATE_EOF(E_surfxml_mstorage):
6683 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6684         YY_BREAK
6685
6686 case 191:
6687 /* rule 191 can match eol */
6688 YY_RULE_SETUP
6689 FAIL("Starting tag <host> is not allowed here.");
6690         YY_BREAK
6691 case 192:
6692 /* rule 192 can match eol */
6693 YY_RULE_SETUP
6694 {
6695   AX_surfxml_host_id = 0;
6696   surfxml_host_id_isset = 0;
6697   AX_surfxml_host_power = 0;
6698   surfxml_host_power_isset = 0;
6699   AX_surfxml_host_core = 16;
6700   surfxml_host_core_isset = 0;
6701   AX_surfxml_host_availability = 18;
6702   surfxml_host_availability_isset = 0;
6703   AX_surfxml_host_availability_file = 0;
6704   surfxml_host_availability_file_isset = 0;
6705   AX_surfxml_host_state = A_surfxml_host_state_ON;
6706   surfxml_host_state_isset = 0;
6707   AX_surfxml_host_state_file = 0;
6708   surfxml_host_state_file_isset = 0;
6709   AX_surfxml_host_coordinates = 0;
6710   surfxml_host_coordinates_isset = 0;
6711   ENTER(AL_surfxml_host); pushbuffer(0);
6712   }
6713         YY_BREAK
6714
6715 case 193:
6716 /* rule 193 can match eol */
6717 YY_RULE_SETUP
6718 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);
6719         YY_BREAK
6720 case 194:
6721 /* rule 194 can match eol */
6722 YY_RULE_SETUP
6723 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);
6724         YY_BREAK
6725 case 195:
6726 /* rule 195 can match eol */
6727 YY_RULE_SETUP
6728 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);
6729         YY_BREAK
6730 case 196:
6731 /* rule 196 can match eol */
6732 YY_RULE_SETUP
6733 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);
6734         YY_BREAK
6735 case 197:
6736 /* rule 197 can match eol */
6737 YY_RULE_SETUP
6738 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);
6739         YY_BREAK
6740 case 198:
6741 /* rule 198 can match eol */
6742 YY_RULE_SETUP
6743 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);
6744         YY_BREAK
6745 case 199:
6746 /* rule 199 can match eol */
6747 YY_RULE_SETUP
6748 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);
6749         YY_BREAK
6750 case 200:
6751 /* rule 200 can match eol */
6752 YY_RULE_SETUP
6753 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);
6754         YY_BREAK
6755 case 201:
6756 /* rule 201 can match eol */
6757 YY_RULE_SETUP
6758 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);
6759         YY_BREAK
6760 case 202:
6761 /* rule 202 can match eol */
6762 YY_RULE_SETUP
6763 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);
6764         YY_BREAK
6765 case 203:
6766 /* rule 203 can match eol */
6767 case 204:
6768 /* rule 204 can match eol */
6769 YY_RULE_SETUP
6770 A_surfxml_host_state = A_surfxml_host_state_ON;
6771         YY_BREAK
6772 case 205:
6773 /* rule 205 can match eol */
6774 case 206:
6775 /* rule 206 can match eol */
6776 YY_RULE_SETUP
6777 A_surfxml_host_state = A_surfxml_host_state_OFF;
6778         YY_BREAK
6779 case 207:
6780 /* rule 207 can match eol */
6781 YY_RULE_SETUP
6782 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);
6783         YY_BREAK
6784 case 208:
6785 /* rule 208 can match eol */
6786 YY_RULE_SETUP
6787 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);
6788         YY_BREAK
6789 case 209:
6790 /* rule 209 can match eol */
6791 YY_RULE_SETUP
6792 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);
6793         YY_BREAK
6794 case 210:
6795 /* rule 210 can match eol */
6796 YY_RULE_SETUP
6797 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);
6798         YY_BREAK
6799 case 211:
6800 YY_RULE_SETUP
6801 {
6802   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6803   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6804   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6805  }
6806         YY_BREAK
6807 case 212:
6808 YY_RULE_SETUP
6809 {
6810   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6811   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6812   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6813   switch (YY_START) {
6814    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6815   }
6816  }
6817         YY_BREAK
6818 case 213:
6819 YY_RULE_SETUP
6820 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6821         YY_BREAK
6822 case 214:
6823 YY_RULE_SETUP
6824 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6825         YY_BREAK
6826 case YY_STATE_EOF(AL_surfxml_host):
6827 FAIL("EOF in attribute list of `host' element.");
6828         YY_BREAK
6829
6830 case 215:
6831 /* rule 215 can match eol */
6832 YY_RULE_SETUP
6833 {
6834   LEAVE;
6835   ETag_surfxml_host();
6836   popbuffer(); /* attribute */
6837   switch (YY_START) {
6838    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6839   }
6840  }
6841         YY_BREAK
6842 case 216:
6843 /* rule 216 can match eol */
6844 YY_RULE_SETUP
6845 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6846         YY_BREAK
6847 case 217:
6848 YY_RULE_SETUP
6849 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6850         YY_BREAK
6851 case YY_STATE_EOF(S_surfxml_host):
6852 case YY_STATE_EOF(E_surfxml_host):
6853 case YY_STATE_EOF(S_surfxml_host_2):
6854 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6855         YY_BREAK
6856
6857 case 218:
6858 /* rule 218 can match eol */
6859 YY_RULE_SETUP
6860 FAIL("Starting tag <host_link> is not allowed here.");
6861         YY_BREAK
6862 case 219:
6863 /* rule 219 can match eol */
6864 YY_RULE_SETUP
6865 {
6866   AX_surfxml_host_link_id = 0;
6867   surfxml_host_link_id_isset = 0;
6868   AX_surfxml_host_link_up = 0;
6869   surfxml_host_link_up_isset = 0;
6870   AX_surfxml_host_link_down = 0;
6871   surfxml_host_link_down_isset = 0;
6872   ENTER(AL_surfxml_host_link); pushbuffer(0);
6873   }
6874         YY_BREAK
6875
6876 case 220:
6877 /* rule 220 can match eol */
6878 YY_RULE_SETUP
6879 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);
6880         YY_BREAK
6881 case 221:
6882 /* rule 221 can match eol */
6883 YY_RULE_SETUP
6884 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);
6885         YY_BREAK
6886 case 222:
6887 /* rule 222 can match eol */
6888 YY_RULE_SETUP
6889 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);
6890         YY_BREAK
6891 case 223:
6892 /* rule 223 can match eol */
6893 YY_RULE_SETUP
6894 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);
6895         YY_BREAK
6896 case 224:
6897 /* rule 224 can match eol */
6898 YY_RULE_SETUP
6899 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);
6900         YY_BREAK
6901 case 225:
6902 /* rule 225 can match eol */
6903 YY_RULE_SETUP
6904 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);
6905         YY_BREAK
6906 case 226:
6907 YY_RULE_SETUP
6908 {
6909   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6910   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6911   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6912   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6913  }
6914         YY_BREAK
6915 case 227:
6916 YY_RULE_SETUP
6917 {
6918   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6919   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6920   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6921   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6922   switch (YY_START) {
6923    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6924   }
6925  }
6926         YY_BREAK
6927 case 228:
6928 YY_RULE_SETUP
6929 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6930         YY_BREAK
6931 case 229:
6932 YY_RULE_SETUP
6933 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6934         YY_BREAK
6935 case YY_STATE_EOF(AL_surfxml_host_link):
6936 FAIL("EOF in attribute list of `host_link' element.");
6937         YY_BREAK
6938
6939 case 230:
6940 /* rule 230 can match eol */
6941 YY_RULE_SETUP
6942 {
6943   LEAVE;
6944   ETag_surfxml_host_link();
6945   popbuffer(); /* attribute */
6946   switch (YY_START) {
6947    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6948   }
6949  }
6950         YY_BREAK
6951 case 231:
6952 /* rule 231 can match eol */
6953 YY_RULE_SETUP
6954 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6955         YY_BREAK
6956 case 232:
6957 YY_RULE_SETUP
6958 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6959         YY_BREAK
6960 case YY_STATE_EOF(E_surfxml_host_link):
6961 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6962         YY_BREAK
6963
6964 case 233:
6965 /* rule 233 can match eol */
6966 YY_RULE_SETUP
6967 FAIL("Starting tag <cluster> is not allowed here.");
6968         YY_BREAK
6969 case 234:
6970 /* rule 234 can match eol */
6971 YY_RULE_SETUP
6972 {
6973   AX_surfxml_cluster_id = 0;
6974   surfxml_cluster_id_isset = 0;
6975   AX_surfxml_cluster_prefix = 0;
6976   surfxml_cluster_prefix_isset = 0;
6977   AX_surfxml_cluster_suffix = 0;
6978   surfxml_cluster_suffix_isset = 0;
6979   AX_surfxml_cluster_radical = 0;
6980   surfxml_cluster_radical_isset = 0;
6981   AX_surfxml_cluster_power = 0;
6982   surfxml_cluster_power_isset = 0;
6983   AX_surfxml_cluster_core = 22;
6984   surfxml_cluster_core_isset = 0;
6985   AX_surfxml_cluster_bw = 0;
6986   surfxml_cluster_bw_isset = 0;
6987   AX_surfxml_cluster_lat = 0;
6988   surfxml_cluster_lat_isset = 0;
6989   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6990   surfxml_cluster_sharing_policy_isset = 0;
6991   AX_surfxml_cluster_bb_bw = 0;
6992   surfxml_cluster_bb_bw_isset = 0;
6993   AX_surfxml_cluster_bb_lat = 0;
6994   surfxml_cluster_bb_lat_isset = 0;
6995   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6996   surfxml_cluster_bb_sharing_policy_isset = 0;
6997   AX_surfxml_cluster_availability_file = 0;
6998   surfxml_cluster_availability_file_isset = 0;
6999   AX_surfxml_cluster_state_file = 0;
7000   surfxml_cluster_state_file_isset = 0;
7001   AX_surfxml_cluster_router_id = 0;
7002   surfxml_cluster_router_id_isset = 0;
7003   ENTER(AL_surfxml_cluster); pushbuffer(0);
7004   }
7005         YY_BREAK
7006
7007 case 235:
7008 /* rule 235 can match eol */
7009 YY_RULE_SETUP
7010 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);
7011         YY_BREAK
7012 case 236:
7013 /* rule 236 can match eol */
7014 YY_RULE_SETUP
7015 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);
7016         YY_BREAK
7017 case 237:
7018 /* rule 237 can match eol */
7019 YY_RULE_SETUP
7020 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);
7021         YY_BREAK
7022 case 238:
7023 /* rule 238 can match eol */
7024 YY_RULE_SETUP
7025 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);
7026         YY_BREAK
7027 case 239:
7028 /* rule 239 can match eol */
7029 YY_RULE_SETUP
7030 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);
7031         YY_BREAK
7032 case 240:
7033 /* rule 240 can match eol */
7034 YY_RULE_SETUP
7035 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);
7036         YY_BREAK
7037 case 241:
7038 /* rule 241 can match eol */
7039 YY_RULE_SETUP
7040 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);
7041         YY_BREAK
7042 case 242:
7043 /* rule 242 can match eol */
7044 YY_RULE_SETUP
7045 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);
7046         YY_BREAK
7047 case 243:
7048 /* rule 243 can match eol */
7049 YY_RULE_SETUP
7050 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);
7051         YY_BREAK
7052 case 244:
7053 /* rule 244 can match eol */
7054 YY_RULE_SETUP
7055 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);
7056         YY_BREAK
7057 case 245:
7058 /* rule 245 can match eol */
7059 YY_RULE_SETUP
7060 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);
7061         YY_BREAK
7062 case 246:
7063 /* rule 246 can match eol */
7064 YY_RULE_SETUP
7065 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);
7066         YY_BREAK
7067 case 247:
7068 /* rule 247 can match eol */
7069 YY_RULE_SETUP
7070 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);
7071         YY_BREAK
7072 case 248:
7073 /* rule 248 can match eol */
7074 YY_RULE_SETUP
7075 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);
7076         YY_BREAK
7077 case 249:
7078 /* rule 249 can match eol */
7079 YY_RULE_SETUP
7080 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);
7081         YY_BREAK
7082 case 250:
7083 /* rule 250 can match eol */
7084 YY_RULE_SETUP
7085 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);
7086         YY_BREAK
7087 case 251:
7088 /* rule 251 can match eol */
7089 case 252:
7090 /* rule 252 can match eol */
7091 YY_RULE_SETUP
7092 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
7093         YY_BREAK
7094 case 253:
7095 /* rule 253 can match eol */
7096 case 254:
7097 /* rule 254 can match eol */
7098 YY_RULE_SETUP
7099 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
7100         YY_BREAK
7101 case 255:
7102 /* rule 255 can match eol */
7103 case 256:
7104 /* rule 256 can match eol */
7105 YY_RULE_SETUP
7106 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
7107         YY_BREAK
7108 case 257:
7109 /* rule 257 can match eol */
7110 YY_RULE_SETUP
7111 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);
7112         YY_BREAK
7113 case 258:
7114 /* rule 258 can match eol */
7115 YY_RULE_SETUP
7116 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);
7117         YY_BREAK
7118 case 259:
7119 /* rule 259 can match eol */
7120 YY_RULE_SETUP
7121 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);
7122         YY_BREAK
7123 case 260:
7124 /* rule 260 can match eol */
7125 YY_RULE_SETUP
7126 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);
7127         YY_BREAK
7128 case 261:
7129 /* rule 261 can match eol */
7130 case 262:
7131 /* rule 262 can match eol */
7132 YY_RULE_SETUP
7133 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
7134         YY_BREAK
7135 case 263:
7136 /* rule 263 can match eol */
7137 case 264:
7138 /* rule 264 can match eol */
7139 YY_RULE_SETUP
7140 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
7141         YY_BREAK
7142 case 265:
7143 /* rule 265 can match eol */
7144 YY_RULE_SETUP
7145 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);
7146         YY_BREAK
7147 case 266:
7148 /* rule 266 can match eol */
7149 YY_RULE_SETUP
7150 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);
7151         YY_BREAK
7152 case 267:
7153 /* rule 267 can match eol */
7154 YY_RULE_SETUP
7155 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);
7156         YY_BREAK
7157 case 268:
7158 /* rule 268 can match eol */
7159 YY_RULE_SETUP
7160 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);
7161         YY_BREAK
7162 case 269:
7163 /* rule 269 can match eol */
7164 YY_RULE_SETUP
7165 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);
7166         YY_BREAK
7167 case 270:
7168 /* rule 270 can match eol */
7169 YY_RULE_SETUP
7170 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);
7171         YY_BREAK
7172 case 271:
7173 YY_RULE_SETUP
7174 {
7175   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7176   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7177   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7178   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7179   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7180   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7181   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7182   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7183  }
7184         YY_BREAK
7185 case 272:
7186 YY_RULE_SETUP
7187 {
7188   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7189   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7190   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7191   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7192   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7193   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7194   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7195   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7196   switch (YY_START) {
7197    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7198    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7199    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7200   }
7201  }
7202         YY_BREAK
7203 case 273:
7204 YY_RULE_SETUP
7205 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7206         YY_BREAK
7207 case 274:
7208 YY_RULE_SETUP
7209 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7210         YY_BREAK
7211 case YY_STATE_EOF(AL_surfxml_cluster):
7212 FAIL("EOF in attribute list of `cluster' element.");
7213         YY_BREAK
7214
7215 case 275:
7216 /* rule 275 can match eol */
7217 YY_RULE_SETUP
7218 {
7219   LEAVE;
7220   ETag_surfxml_cluster();
7221   popbuffer(); /* attribute */
7222   switch (YY_START) {
7223    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7224    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7225    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7226   }
7227  }
7228         YY_BREAK
7229 case 276:
7230 /* rule 276 can match eol */
7231 YY_RULE_SETUP
7232 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7233         YY_BREAK
7234 case 277:
7235 YY_RULE_SETUP
7236 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7237         YY_BREAK
7238 case YY_STATE_EOF(E_surfxml_cluster):
7239 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7240         YY_BREAK
7241
7242 case 278:
7243 /* rule 278 can match eol */
7244 YY_RULE_SETUP
7245 FAIL("Starting tag <cabinet> is not allowed here.");
7246         YY_BREAK
7247 case 279:
7248 /* rule 279 can match eol */
7249 YY_RULE_SETUP
7250 {
7251   AX_surfxml_cabinet_id = 0;
7252   surfxml_cabinet_id_isset = 0;
7253   AX_surfxml_cabinet_prefix = 0;
7254   surfxml_cabinet_prefix_isset = 0;
7255   AX_surfxml_cabinet_suffix = 0;
7256   surfxml_cabinet_suffix_isset = 0;
7257   AX_surfxml_cabinet_radical = 0;
7258   surfxml_cabinet_radical_isset = 0;
7259   AX_surfxml_cabinet_power = 0;
7260   surfxml_cabinet_power_isset = 0;
7261   AX_surfxml_cabinet_bw = 0;
7262   surfxml_cabinet_bw_isset = 0;
7263   AX_surfxml_cabinet_lat = 0;
7264   surfxml_cabinet_lat_isset = 0;
7265   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7266   }
7267         YY_BREAK
7268
7269 case 280:
7270 /* rule 280 can match eol */
7271 YY_RULE_SETUP
7272 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);
7273         YY_BREAK
7274 case 281:
7275 /* rule 281 can match eol */
7276 YY_RULE_SETUP
7277 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);
7278         YY_BREAK
7279 case 282:
7280 /* rule 282 can match eol */
7281 YY_RULE_SETUP
7282 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);
7283         YY_BREAK
7284 case 283:
7285 /* rule 283 can match eol */
7286 YY_RULE_SETUP
7287 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);
7288         YY_BREAK
7289 case 284:
7290 /* rule 284 can match eol */
7291 YY_RULE_SETUP
7292 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);
7293         YY_BREAK
7294 case 285:
7295 /* rule 285 can match eol */
7296 YY_RULE_SETUP
7297 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);
7298         YY_BREAK
7299 case 286:
7300 /* rule 286 can match eol */
7301 YY_RULE_SETUP
7302 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);
7303         YY_BREAK
7304 case 287:
7305 /* rule 287 can match eol */
7306 YY_RULE_SETUP
7307 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);
7308         YY_BREAK
7309 case 288:
7310 /* rule 288 can match eol */
7311 YY_RULE_SETUP
7312 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);
7313         YY_BREAK
7314 case 289:
7315 /* rule 289 can match eol */
7316 YY_RULE_SETUP
7317 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);
7318         YY_BREAK
7319 case 290:
7320 /* rule 290 can match eol */
7321 YY_RULE_SETUP
7322 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);
7323         YY_BREAK
7324 case 291:
7325 /* rule 291 can match eol */
7326 YY_RULE_SETUP
7327 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);
7328         YY_BREAK
7329 case 292:
7330 /* rule 292 can match eol */
7331 YY_RULE_SETUP
7332 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);
7333         YY_BREAK
7334 case 293:
7335 /* rule 293 can match eol */
7336 YY_RULE_SETUP
7337 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);
7338         YY_BREAK
7339 case 294:
7340 YY_RULE_SETUP
7341 {
7342   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7343   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7344   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7345   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7346   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7347   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7348   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7349   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7350  }
7351         YY_BREAK
7352 case 295:
7353 YY_RULE_SETUP
7354 {
7355   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7356   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7357   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7358   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7359   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7360   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7361   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7362   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7363   switch (YY_START) {
7364    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7365    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7366    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7367    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7368   }
7369  }
7370         YY_BREAK
7371 case 296:
7372 YY_RULE_SETUP
7373 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7374         YY_BREAK
7375 case 297:
7376 YY_RULE_SETUP
7377 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7378         YY_BREAK
7379 case YY_STATE_EOF(AL_surfxml_cabinet):
7380 FAIL("EOF in attribute list of `cabinet' element.");
7381         YY_BREAK
7382
7383 case 298:
7384 /* rule 298 can match eol */
7385 YY_RULE_SETUP
7386 {
7387   LEAVE;
7388   ETag_surfxml_cabinet();
7389   popbuffer(); /* attribute */
7390   switch (YY_START) {
7391    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7392    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7393    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7394    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7395   }
7396  }
7397         YY_BREAK
7398 case 299:
7399 /* rule 299 can match eol */
7400 YY_RULE_SETUP
7401 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7402         YY_BREAK
7403 case 300:
7404 YY_RULE_SETUP
7405 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7406         YY_BREAK
7407 case YY_STATE_EOF(E_surfxml_cabinet):
7408 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7409         YY_BREAK
7410
7411 case 301:
7412 /* rule 301 can match eol */
7413 YY_RULE_SETUP
7414 FAIL("Starting tag <peer> is not allowed here.");
7415         YY_BREAK
7416 case 302:
7417 /* rule 302 can match eol */
7418 YY_RULE_SETUP
7419 {
7420   AX_surfxml_peer_id = 0;
7421   surfxml_peer_id_isset = 0;
7422   AX_surfxml_peer_power = 0;
7423   surfxml_peer_power_isset = 0;
7424   AX_surfxml_peer_bw_in = 0;
7425   surfxml_peer_bw_in_isset = 0;
7426   AX_surfxml_peer_bw_out = 0;
7427   surfxml_peer_bw_out_isset = 0;
7428   AX_surfxml_peer_lat = 0;
7429   surfxml_peer_lat_isset = 0;
7430   AX_surfxml_peer_coordinates = 0;
7431   surfxml_peer_coordinates_isset = 0;
7432   AX_surfxml_peer_availability_file = 0;
7433   surfxml_peer_availability_file_isset = 0;
7434   AX_surfxml_peer_state_file = 0;
7435   surfxml_peer_state_file_isset = 0;
7436   ENTER(AL_surfxml_peer); pushbuffer(0);
7437   }
7438         YY_BREAK
7439
7440 case 303:
7441 /* rule 303 can match eol */
7442 YY_RULE_SETUP
7443 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);
7444         YY_BREAK
7445 case 304:
7446 /* rule 304 can match eol */
7447 YY_RULE_SETUP
7448 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);
7449         YY_BREAK
7450 case 305:
7451 /* rule 305 can match eol */
7452 YY_RULE_SETUP
7453 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);
7454         YY_BREAK
7455 case 306:
7456 /* rule 306 can match eol */
7457 YY_RULE_SETUP
7458 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);
7459         YY_BREAK
7460 case 307:
7461 /* rule 307 can match eol */
7462 YY_RULE_SETUP
7463 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);
7464         YY_BREAK
7465 case 308:
7466 /* rule 308 can match eol */
7467 YY_RULE_SETUP
7468 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);
7469         YY_BREAK
7470 case 309:
7471 /* rule 309 can match eol */
7472 YY_RULE_SETUP
7473 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);
7474         YY_BREAK
7475 case 310:
7476 /* rule 310 can match eol */
7477 YY_RULE_SETUP
7478 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);
7479         YY_BREAK
7480 case 311:
7481 /* rule 311 can match eol */
7482 YY_RULE_SETUP
7483 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);
7484         YY_BREAK
7485 case 312:
7486 /* rule 312 can match eol */
7487 YY_RULE_SETUP
7488 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);
7489         YY_BREAK
7490 case 313:
7491 /* rule 313 can match eol */
7492 YY_RULE_SETUP
7493 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);
7494         YY_BREAK
7495 case 314:
7496 /* rule 314 can match eol */
7497 YY_RULE_SETUP
7498 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);
7499         YY_BREAK
7500 case 315:
7501 /* rule 315 can match eol */
7502 YY_RULE_SETUP
7503 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);
7504         YY_BREAK
7505 case 316:
7506 /* rule 316 can match eol */
7507 YY_RULE_SETUP
7508 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);
7509         YY_BREAK
7510 case 317:
7511 /* rule 317 can match eol */
7512 YY_RULE_SETUP
7513 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);
7514         YY_BREAK
7515 case 318:
7516 /* rule 318 can match eol */
7517 YY_RULE_SETUP
7518 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);
7519         YY_BREAK
7520 case 319:
7521 YY_RULE_SETUP
7522 {
7523   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7524   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7525   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7526   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7527   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7528   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7529  }
7530         YY_BREAK
7531 case 320:
7532 YY_RULE_SETUP
7533 {
7534   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7535   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7536   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7537   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7538   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7539   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7540   switch (YY_START) {
7541    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7542    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7543    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7544   }
7545  }
7546         YY_BREAK
7547 case 321:
7548 YY_RULE_SETUP
7549 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7550         YY_BREAK
7551 case 322:
7552 YY_RULE_SETUP
7553 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7554         YY_BREAK
7555 case YY_STATE_EOF(AL_surfxml_peer):
7556 FAIL("EOF in attribute list of `peer' element.");
7557         YY_BREAK
7558
7559 case 323:
7560 /* rule 323 can match eol */
7561 YY_RULE_SETUP
7562 {
7563   LEAVE;
7564   ETag_surfxml_peer();
7565   popbuffer(); /* attribute */
7566   switch (YY_START) {
7567    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7568    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7569    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7570   }
7571  }
7572         YY_BREAK
7573 case 324:
7574 /* rule 324 can match eol */
7575 YY_RULE_SETUP
7576 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7577         YY_BREAK
7578 case 325:
7579 YY_RULE_SETUP
7580 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7581         YY_BREAK
7582 case YY_STATE_EOF(E_surfxml_peer):
7583 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7584         YY_BREAK
7585
7586 case 326:
7587 /* rule 326 can match eol */
7588 YY_RULE_SETUP
7589 FAIL("Starting tag <router> is not allowed here.");
7590         YY_BREAK
7591 case 327:
7592 /* rule 327 can match eol */
7593 YY_RULE_SETUP
7594 {
7595   AX_surfxml_router_id = 0;
7596   surfxml_router_id_isset = 0;
7597   AX_surfxml_router_coordinates = 0;
7598   surfxml_router_coordinates_isset = 0;
7599   ENTER(AL_surfxml_router); pushbuffer(0);
7600   }
7601         YY_BREAK
7602
7603 case 328:
7604 /* rule 328 can match eol */
7605 YY_RULE_SETUP
7606 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);
7607         YY_BREAK
7608 case 329:
7609 /* rule 329 can match eol */
7610 YY_RULE_SETUP
7611 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);
7612         YY_BREAK
7613 case 330:
7614 /* rule 330 can match eol */
7615 YY_RULE_SETUP
7616 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);
7617         YY_BREAK
7618 case 331:
7619 /* rule 331 can match eol */
7620 YY_RULE_SETUP
7621 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);
7622         YY_BREAK
7623 case 332:
7624 YY_RULE_SETUP
7625 {
7626   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7627   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7628  }
7629         YY_BREAK
7630 case 333:
7631 YY_RULE_SETUP
7632 {
7633   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7634   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7635   switch (YY_START) {
7636    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7637   }
7638  }
7639         YY_BREAK
7640 case 334:
7641 YY_RULE_SETUP
7642 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7643         YY_BREAK
7644 case 335:
7645 YY_RULE_SETUP
7646 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7647         YY_BREAK
7648 case YY_STATE_EOF(AL_surfxml_router):
7649 FAIL("EOF in attribute list of `router' element.");
7650         YY_BREAK
7651
7652 case 336:
7653 /* rule 336 can match eol */
7654 YY_RULE_SETUP
7655 {
7656   LEAVE;
7657   ETag_surfxml_router();
7658   popbuffer(); /* attribute */
7659   switch (YY_START) {
7660    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7661   }
7662  }
7663         YY_BREAK
7664 case 337:
7665 /* rule 337 can match eol */
7666 YY_RULE_SETUP
7667 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7668         YY_BREAK
7669 case 338:
7670 YY_RULE_SETUP
7671 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7672         YY_BREAK
7673 case YY_STATE_EOF(E_surfxml_router):
7674 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7675         YY_BREAK
7676
7677 case 339:
7678 /* rule 339 can match eol */
7679 YY_RULE_SETUP
7680 FAIL("Starting tag <backbone> is not allowed here.");
7681         YY_BREAK
7682 case 340:
7683 /* rule 340 can match eol */
7684 YY_RULE_SETUP
7685 {
7686   AX_surfxml_backbone_id = 0;
7687   surfxml_backbone_id_isset = 0;
7688   AX_surfxml_backbone_bandwidth = 0;
7689   surfxml_backbone_bandwidth_isset = 0;
7690   AX_surfxml_backbone_latency = 0;
7691   surfxml_backbone_latency_isset = 0;
7692   ENTER(AL_surfxml_backbone); pushbuffer(0);
7693   }
7694         YY_BREAK
7695
7696 case 341:
7697 /* rule 341 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 342:
7702 /* rule 342 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 343:
7707 /* rule 343 can match eol */
7708 YY_RULE_SETUP
7709 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);
7710         YY_BREAK
7711 case 344:
7712 /* rule 344 can match eol */
7713 YY_RULE_SETUP
7714 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);
7715         YY_BREAK
7716 case 345:
7717 /* rule 345 can match eol */
7718 YY_RULE_SETUP
7719 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);
7720         YY_BREAK
7721 case 346:
7722 /* rule 346 can match eol */
7723 YY_RULE_SETUP
7724 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);
7725         YY_BREAK
7726 case 347:
7727 YY_RULE_SETUP
7728 {
7729   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7730   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7731   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7732   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7733  }
7734         YY_BREAK
7735 case 348:
7736 YY_RULE_SETUP
7737 {
7738   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7739   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7740   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7741   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7742   switch (YY_START) {
7743    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7744    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7745   }
7746  }
7747         YY_BREAK
7748 case 349:
7749 YY_RULE_SETUP
7750 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7751         YY_BREAK
7752 case 350:
7753 YY_RULE_SETUP
7754 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7755         YY_BREAK
7756 case YY_STATE_EOF(AL_surfxml_backbone):
7757 FAIL("EOF in attribute list of `backbone' element.");
7758         YY_BREAK
7759
7760 case 351:
7761 /* rule 351 can match eol */
7762 YY_RULE_SETUP
7763 {
7764   LEAVE;
7765   ETag_surfxml_backbone();
7766   popbuffer(); /* attribute */
7767   switch (YY_START) {
7768    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7769    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7770   }
7771  }
7772         YY_BREAK
7773 case 352:
7774 /* rule 352 can match eol */
7775 YY_RULE_SETUP
7776 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7777         YY_BREAK
7778 case 353:
7779 YY_RULE_SETUP
7780 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7781         YY_BREAK
7782 case YY_STATE_EOF(E_surfxml_backbone):
7783 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7784         YY_BREAK
7785
7786 case 354:
7787 /* rule 354 can match eol */
7788 YY_RULE_SETUP
7789 FAIL("Starting tag <link> is not allowed here.");
7790         YY_BREAK
7791 case 355:
7792 /* rule 355 can match eol */
7793 YY_RULE_SETUP
7794 {
7795   AX_surfxml_link_id = 0;
7796   surfxml_link_id_isset = 0;
7797   AX_surfxml_link_bandwidth = 0;
7798   surfxml_link_bandwidth_isset = 0;
7799   AX_surfxml_link_bandwidth_file = 0;
7800   surfxml_link_bandwidth_file_isset = 0;
7801   AX_surfxml_link_latency = 24;
7802   surfxml_link_latency_isset = 0;
7803   AX_surfxml_link_latency_file = 0;
7804   surfxml_link_latency_file_isset = 0;
7805   AX_surfxml_link_state = A_surfxml_link_state_ON;
7806   surfxml_link_state_isset = 0;
7807   AX_surfxml_link_state_file = 0;
7808   surfxml_link_state_file_isset = 0;
7809   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7810   surfxml_link_sharing_policy_isset = 0;
7811   ENTER(AL_surfxml_link); pushbuffer(0);
7812   }
7813         YY_BREAK
7814
7815 case 356:
7816 /* rule 356 can match eol */
7817 YY_RULE_SETUP
7818 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);
7819         YY_BREAK
7820 case 357:
7821 /* rule 357 can match eol */
7822 YY_RULE_SETUP
7823 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);
7824         YY_BREAK
7825 case 358:
7826 /* rule 358 can match eol */
7827 YY_RULE_SETUP
7828 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);
7829         YY_BREAK
7830 case 359:
7831 /* rule 359 can match eol */
7832 YY_RULE_SETUP
7833 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);
7834         YY_BREAK
7835 case 360:
7836 /* rule 360 can match eol */
7837 YY_RULE_SETUP
7838 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);
7839         YY_BREAK
7840 case 361:
7841 /* rule 361 can match eol */
7842 YY_RULE_SETUP
7843 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);
7844         YY_BREAK
7845 case 362:
7846 /* rule 362 can match eol */
7847 YY_RULE_SETUP
7848 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);
7849         YY_BREAK
7850 case 363:
7851 /* rule 363 can match eol */
7852 YY_RULE_SETUP
7853 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);
7854         YY_BREAK
7855 case 364:
7856 /* rule 364 can match eol */
7857 YY_RULE_SETUP
7858 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);
7859         YY_BREAK
7860 case 365:
7861 /* rule 365 can match eol */
7862 YY_RULE_SETUP
7863 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);
7864         YY_BREAK
7865 case 366:
7866 /* rule 366 can match eol */
7867 case 367:
7868 /* rule 367 can match eol */
7869 YY_RULE_SETUP
7870 A_surfxml_link_state = A_surfxml_link_state_ON;
7871         YY_BREAK
7872 case 368:
7873 /* rule 368 can match eol */
7874 case 369:
7875 /* rule 369 can match eol */
7876 YY_RULE_SETUP
7877 A_surfxml_link_state = A_surfxml_link_state_OFF;
7878         YY_BREAK
7879 case 370:
7880 /* rule 370 can match eol */
7881 YY_RULE_SETUP
7882 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);
7883         YY_BREAK
7884 case 371:
7885 /* rule 371 can match eol */
7886 YY_RULE_SETUP
7887 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);
7888         YY_BREAK
7889 case 372:
7890 /* rule 372 can match eol */
7891 case 373:
7892 /* rule 373 can match eol */
7893 YY_RULE_SETUP
7894 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7895         YY_BREAK
7896 case 374:
7897 /* rule 374 can match eol */
7898 case 375:
7899 /* rule 375 can match eol */
7900 YY_RULE_SETUP
7901 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7902         YY_BREAK
7903 case 376:
7904 /* rule 376 can match eol */
7905 case 377:
7906 /* rule 377 can match eol */
7907 YY_RULE_SETUP
7908 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7909         YY_BREAK
7910 case 378:
7911 YY_RULE_SETUP
7912 {
7913   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7914   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7915   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7916  }
7917         YY_BREAK
7918 case 379:
7919 YY_RULE_SETUP
7920 {
7921   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7922   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7923   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7924   switch (YY_START) {
7925    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7926    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7927   }
7928  }
7929         YY_BREAK
7930 case 380:
7931 YY_RULE_SETUP
7932 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7933         YY_BREAK
7934 case 381:
7935 YY_RULE_SETUP
7936 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7937         YY_BREAK
7938 case YY_STATE_EOF(AL_surfxml_link):
7939 FAIL("EOF in attribute list of `link' element.");
7940         YY_BREAK
7941
7942 case 382:
7943 /* rule 382 can match eol */
7944 YY_RULE_SETUP
7945 {
7946   LEAVE;
7947   ETag_surfxml_link();
7948   popbuffer(); /* attribute */
7949   switch (YY_START) {
7950    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7951    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7952   }
7953  }
7954         YY_BREAK
7955 case 383:
7956 /* rule 383 can match eol */
7957 YY_RULE_SETUP
7958 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7959         YY_BREAK
7960 case 384:
7961 YY_RULE_SETUP
7962 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7963         YY_BREAK
7964 case YY_STATE_EOF(E_surfxml_link):
7965 case YY_STATE_EOF(S_surfxml_link_2):
7966 case YY_STATE_EOF(S_surfxml_link):
7967 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7968         YY_BREAK
7969
7970 case 385:
7971 /* rule 385 can match eol */
7972 YY_RULE_SETUP
7973 FAIL("Starting tag <route> is not allowed here.");
7974         YY_BREAK
7975 case 386:
7976 /* rule 386 can match eol */
7977 YY_RULE_SETUP
7978 {
7979   AX_surfxml_route_src = 0;
7980   surfxml_route_src_isset = 0;
7981   AX_surfxml_route_dst = 0;
7982   surfxml_route_dst_isset = 0;
7983   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7984   surfxml_route_symmetrical_isset = 0;
7985   ENTER(AL_surfxml_route); pushbuffer(0);
7986   }
7987         YY_BREAK
7988
7989 case 387:
7990 /* rule 387 can match eol */
7991 YY_RULE_SETUP
7992 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);
7993         YY_BREAK
7994 case 388:
7995 /* rule 388 can match eol */
7996 YY_RULE_SETUP
7997 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);
7998         YY_BREAK
7999 case 389:
8000 /* rule 389 can match eol */
8001 YY_RULE_SETUP
8002 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);
8003         YY_BREAK
8004 case 390:
8005 /* rule 390 can match eol */
8006 YY_RULE_SETUP
8007 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);
8008         YY_BREAK
8009 case 391:
8010 /* rule 391 can match eol */
8011 case 392:
8012 /* rule 392 can match eol */
8013 YY_RULE_SETUP
8014 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8015         YY_BREAK
8016 case 393:
8017 /* rule 393 can match eol */
8018 case 394:
8019 /* rule 394 can match eol */
8020 YY_RULE_SETUP
8021 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8022         YY_BREAK
8023 case 395:
8024 YY_RULE_SETUP
8025 {
8026   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8027   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8028   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8029  }
8030         YY_BREAK
8031 case 396:
8032 YY_RULE_SETUP
8033 {
8034   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8035   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8036   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8037   switch (YY_START) {
8038    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8039   }
8040  }
8041         YY_BREAK
8042 case 397:
8043 YY_RULE_SETUP
8044 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8045         YY_BREAK
8046 case 398:
8047 YY_RULE_SETUP
8048 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8049         YY_BREAK
8050 case YY_STATE_EOF(AL_surfxml_route):
8051 FAIL("EOF in attribute list of `route' element.");
8052         YY_BREAK
8053
8054 case 399:
8055 /* rule 399 can match eol */
8056 YY_RULE_SETUP
8057 {
8058   LEAVE;
8059   ETag_surfxml_route();
8060   popbuffer(); /* attribute */
8061   switch (YY_START) {
8062    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8063   }
8064  }
8065         YY_BREAK
8066 case 400:
8067 /* rule 400 can match eol */
8068 YY_RULE_SETUP
8069 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8070         YY_BREAK
8071 case 401:
8072 YY_RULE_SETUP
8073 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8074         YY_BREAK
8075 case YY_STATE_EOF(S_surfxml_route):
8076 case YY_STATE_EOF(S_surfxml_route_2):
8077 case YY_STATE_EOF(E_surfxml_route):
8078 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8079         YY_BREAK
8080
8081 case 402:
8082 /* rule 402 can match eol */
8083 YY_RULE_SETUP
8084 FAIL("Starting tag <ASroute> is not allowed here.");
8085         YY_BREAK
8086 case 403:
8087 /* rule 403 can match eol */
8088 YY_RULE_SETUP
8089 {
8090   AX_surfxml_ASroute_src = 0;
8091   surfxml_ASroute_src_isset = 0;
8092   AX_surfxml_ASroute_dst = 0;
8093   surfxml_ASroute_dst_isset = 0;
8094   AX_surfxml_ASroute_gw_src = 0;
8095   surfxml_ASroute_gw_src_isset = 0;
8096   AX_surfxml_ASroute_gw_dst = 0;
8097   surfxml_ASroute_gw_dst_isset = 0;
8098   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8099   surfxml_ASroute_symmetrical_isset = 0;
8100   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8101   }
8102         YY_BREAK
8103
8104 case 404:
8105 /* rule 404 can match eol */
8106 YY_RULE_SETUP
8107 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);
8108         YY_BREAK
8109 case 405:
8110 /* rule 405 can match eol */
8111 YY_RULE_SETUP
8112 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);
8113         YY_BREAK
8114 case 406:
8115 /* rule 406 can match eol */
8116 YY_RULE_SETUP
8117 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);
8118         YY_BREAK
8119 case 407:
8120 /* rule 407 can match eol */
8121 YY_RULE_SETUP
8122 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);
8123         YY_BREAK
8124 case 408:
8125 /* rule 408 can match eol */
8126 YY_RULE_SETUP
8127 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);
8128         YY_BREAK
8129 case 409:
8130 /* rule 409 can match eol */
8131 YY_RULE_SETUP
8132 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);
8133         YY_BREAK
8134 case 410:
8135 /* rule 410 can match eol */
8136 YY_RULE_SETUP
8137 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);
8138         YY_BREAK
8139 case 411:
8140 /* rule 411 can match eol */
8141 YY_RULE_SETUP
8142 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);
8143         YY_BREAK
8144 case 412:
8145 /* rule 412 can match eol */
8146 case 413:
8147 /* rule 413 can match eol */
8148 YY_RULE_SETUP
8149 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8150         YY_BREAK
8151 case 414:
8152 /* rule 414 can match eol */
8153 case 415:
8154 /* rule 415 can match eol */
8155 YY_RULE_SETUP
8156 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8157         YY_BREAK
8158 case 416:
8159 YY_RULE_SETUP
8160 {
8161   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8162   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8163   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8164   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8165   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8166  }
8167         YY_BREAK
8168 case 417:
8169 YY_RULE_SETUP
8170 {
8171   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8172   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8173   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8174   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8175   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8176   switch (YY_START) {
8177    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8178   }
8179  }
8180         YY_BREAK
8181 case 418:
8182 YY_RULE_SETUP
8183 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8184         YY_BREAK
8185 case 419:
8186 YY_RULE_SETUP
8187 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8188         YY_BREAK
8189 case YY_STATE_EOF(AL_surfxml_ASroute):
8190 FAIL("EOF in attribute list of `ASroute' element.");
8191         YY_BREAK
8192
8193 case 420:
8194 /* rule 420 can match eol */
8195 YY_RULE_SETUP
8196 {
8197   LEAVE;
8198   ETag_surfxml_ASroute();
8199   popbuffer(); /* attribute */
8200   switch (YY_START) {
8201    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8202   }
8203  }
8204         YY_BREAK
8205 case 421:
8206 /* rule 421 can match eol */
8207 YY_RULE_SETUP
8208 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8209         YY_BREAK
8210 case 422:
8211 YY_RULE_SETUP
8212 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8213         YY_BREAK
8214 case YY_STATE_EOF(E_surfxml_ASroute):
8215 case YY_STATE_EOF(S_surfxml_ASroute):
8216 case YY_STATE_EOF(S_surfxml_ASroute_2):
8217 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8218         YY_BREAK
8219
8220 case 423:
8221 /* rule 423 can match eol */
8222 YY_RULE_SETUP
8223 FAIL("Starting tag <link_ctn> is not allowed here.");
8224         YY_BREAK
8225 case 424:
8226 /* rule 424 can match eol */
8227 YY_RULE_SETUP
8228 {
8229   AX_surfxml_link_ctn_id = 0;
8230   surfxml_link_ctn_id_isset = 0;
8231   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8232   surfxml_link_ctn_direction_isset = 0;
8233   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8234   }
8235         YY_BREAK
8236
8237 case 425:
8238 /* rule 425 can match eol */
8239 YY_RULE_SETUP
8240 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);
8241         YY_BREAK
8242 case 426:
8243 /* rule 426 can match eol */
8244 YY_RULE_SETUP
8245 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);
8246         YY_BREAK
8247 case 427:
8248 /* rule 427 can match eol */
8249 case 428:
8250 /* rule 428 can match eol */
8251 YY_RULE_SETUP
8252 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
8253         YY_BREAK
8254 case 429:
8255 /* rule 429 can match eol */
8256 case 430:
8257 /* rule 430 can match eol */
8258 YY_RULE_SETUP
8259 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
8260         YY_BREAK
8261 case 431:
8262 /* rule 431 can match eol */
8263 case 432:
8264 /* rule 432 can match eol */
8265 YY_RULE_SETUP
8266 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8267         YY_BREAK
8268 case 433:
8269 YY_RULE_SETUP
8270 {
8271   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8272   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
8273  }
8274         YY_BREAK
8275 case 434:
8276 YY_RULE_SETUP
8277 {
8278   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8279   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
8280   switch (YY_START) {
8281    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8282    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8283    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8284    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8285   }
8286  }
8287         YY_BREAK
8288 case 435:
8289 YY_RULE_SETUP
8290 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8291         YY_BREAK
8292 case 436:
8293 YY_RULE_SETUP
8294 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8295         YY_BREAK
8296 case YY_STATE_EOF(AL_surfxml_link_ctn):
8297 FAIL("EOF in attribute list of `link_ctn' element.");
8298         YY_BREAK
8299
8300 case 437:
8301 /* rule 437 can match eol */
8302 YY_RULE_SETUP
8303 {
8304   LEAVE;
8305   ETag_surfxml_link_ctn();
8306   popbuffer(); /* attribute */
8307   switch (YY_START) {
8308    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8309    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8310    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8311    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8312   }
8313  }
8314         YY_BREAK
8315 case 438:
8316 /* rule 438 can match eol */
8317 YY_RULE_SETUP
8318 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8319         YY_BREAK
8320 case 439:
8321 YY_RULE_SETUP
8322 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8323         YY_BREAK
8324 case YY_STATE_EOF(E_surfxml_link_ctn):
8325 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8326         YY_BREAK
8327
8328 case 440:
8329 /* rule 440 can match eol */
8330 YY_RULE_SETUP
8331 FAIL("Starting tag <bypassRoute> is not allowed here.");
8332         YY_BREAK
8333 case 441:
8334 /* rule 441 can match eol */
8335 YY_RULE_SETUP
8336 {
8337   AX_surfxml_bypassRoute_src = 0;
8338   surfxml_bypassRoute_src_isset = 0;
8339   AX_surfxml_bypassRoute_dst = 0;
8340   surfxml_bypassRoute_dst_isset = 0;
8341   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8342   }
8343         YY_BREAK
8344
8345 case 442:
8346 /* rule 442 can match eol */
8347 YY_RULE_SETUP
8348 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);
8349         YY_BREAK
8350 case 443:
8351 /* rule 443 can match eol */
8352 YY_RULE_SETUP
8353 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);
8354         YY_BREAK
8355 case 444:
8356 /* rule 444 can match eol */
8357 YY_RULE_SETUP
8358 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);
8359         YY_BREAK
8360 case 445:
8361 /* rule 445 can match eol */
8362 YY_RULE_SETUP
8363 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);
8364         YY_BREAK
8365 case 446:
8366 YY_RULE_SETUP
8367 {
8368   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8369   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8370   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8371  }
8372         YY_BREAK
8373 case 447:
8374 YY_RULE_SETUP
8375 {
8376   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8377   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8378   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8379   switch (YY_START) {
8380    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8381   }
8382  }
8383         YY_BREAK
8384 case 448:
8385 YY_RULE_SETUP
8386 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8387         YY_BREAK
8388 case 449:
8389 YY_RULE_SETUP
8390 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8391         YY_BREAK
8392 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8393 FAIL("EOF in attribute list of `bypassRoute' element.");
8394         YY_BREAK
8395
8396 case 450:
8397 /* rule 450 can match eol */
8398 YY_RULE_SETUP
8399 {
8400   LEAVE;
8401   ETag_surfxml_bypassRoute();
8402   popbuffer(); /* attribute */
8403   switch (YY_START) {
8404    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8405   }
8406  }
8407         YY_BREAK
8408 case 451:
8409 /* rule 451 can match eol */
8410 YY_RULE_SETUP
8411 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8412         YY_BREAK
8413 case 452:
8414 YY_RULE_SETUP
8415 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8416         YY_BREAK
8417 case YY_STATE_EOF(S_surfxml_bypassRoute):
8418 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8419 case YY_STATE_EOF(E_surfxml_bypassRoute):
8420 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8421         YY_BREAK
8422
8423 case 453:
8424 /* rule 453 can match eol */
8425 YY_RULE_SETUP
8426 FAIL("Starting tag <bypassASroute> is not allowed here.");
8427         YY_BREAK
8428 case 454:
8429 /* rule 454 can match eol */
8430 YY_RULE_SETUP
8431 {
8432   AX_surfxml_bypassASroute_src = 0;
8433   surfxml_bypassASroute_src_isset = 0;
8434   AX_surfxml_bypassASroute_dst = 0;
8435   surfxml_bypassASroute_dst_isset = 0;
8436   AX_surfxml_bypassASroute_gw_src = 0;
8437   surfxml_bypassASroute_gw_src_isset = 0;
8438   AX_surfxml_bypassASroute_gw_dst = 0;
8439   surfxml_bypassASroute_gw_dst_isset = 0;
8440   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8441   }
8442         YY_BREAK
8443
8444 case 455:
8445 /* rule 455 can match eol */
8446 YY_RULE_SETUP
8447 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);
8448         YY_BREAK
8449 case 456:
8450 /* rule 456 can match eol */
8451 YY_RULE_SETUP
8452 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);
8453         YY_BREAK
8454 case 457:
8455 /* rule 457 can match eol */
8456 YY_RULE_SETUP
8457 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);
8458         YY_BREAK
8459 case 458:
8460 /* rule 458 can match eol */
8461 YY_RULE_SETUP
8462 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);
8463         YY_BREAK
8464 case 459:
8465 /* rule 459 can match eol */
8466 YY_RULE_SETUP
8467 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);
8468         YY_BREAK
8469 case 460:
8470 /* rule 460 can match eol */
8471 YY_RULE_SETUP
8472 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);
8473         YY_BREAK
8474 case 461:
8475 /* rule 461 can match eol */
8476 YY_RULE_SETUP
8477 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);
8478         YY_BREAK
8479 case 462:
8480 /* rule 462 can match eol */
8481 YY_RULE_SETUP
8482 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);
8483         YY_BREAK
8484 case 463:
8485 YY_RULE_SETUP
8486 {
8487   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8488   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8489   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8490   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8491   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8492  }
8493         YY_BREAK
8494 case 464:
8495 YY_RULE_SETUP
8496 {
8497   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8498   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8499   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8500   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8501   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8502   switch (YY_START) {
8503    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8504   }
8505  }
8506         YY_BREAK
8507 case 465:
8508 YY_RULE_SETUP
8509 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8510         YY_BREAK
8511 case 466:
8512 YY_RULE_SETUP
8513 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8514         YY_BREAK
8515 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8516 FAIL("EOF in attribute list of `bypassASroute' element.");
8517         YY_BREAK
8518
8519 case 467:
8520 /* rule 467 can match eol */
8521 YY_RULE_SETUP
8522 {
8523   LEAVE;
8524   ETag_surfxml_bypassASroute();
8525   popbuffer(); /* attribute */
8526   switch (YY_START) {
8527    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8528   }
8529  }
8530         YY_BREAK
8531 case 468:
8532 /* rule 468 can match eol */
8533 YY_RULE_SETUP
8534 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8535         YY_BREAK
8536 case 469:
8537 YY_RULE_SETUP
8538 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8539         YY_BREAK
8540 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8541 case YY_STATE_EOF(E_surfxml_bypassASroute):
8542 case YY_STATE_EOF(S_surfxml_bypassASroute):
8543 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8544         YY_BREAK
8545
8546 case 470:
8547 /* rule 470 can match eol */
8548 YY_RULE_SETUP
8549 FAIL("Starting tag <process> is not allowed here.");
8550         YY_BREAK
8551 case 471:
8552 /* rule 471 can match eol */
8553 YY_RULE_SETUP
8554 {
8555   AX_surfxml_process_host = 0;
8556   surfxml_process_host_isset = 0;
8557   AX_surfxml_process_function = 0;
8558   surfxml_process_function_isset = 0;
8559   AX_surfxml_process_start_time = 28;
8560   surfxml_process_start_time_isset = 0;
8561   AX_surfxml_process_kill_time = 33;
8562   surfxml_process_kill_time_isset = 0;
8563   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8564   surfxml_process_on_failure_isset = 0;
8565   ENTER(AL_surfxml_process); pushbuffer(0);
8566   }
8567         YY_BREAK
8568
8569 case 472:
8570 /* rule 472 can match eol */
8571 YY_RULE_SETUP
8572 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);
8573         YY_BREAK
8574 case 473:
8575 /* rule 473 can match eol */
8576 YY_RULE_SETUP
8577 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);
8578         YY_BREAK
8579 case 474:
8580 /* rule 474 can match eol */
8581 YY_RULE_SETUP
8582 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);
8583         YY_BREAK
8584 case 475:
8585 /* rule 475 can match eol */
8586 YY_RULE_SETUP
8587 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);
8588         YY_BREAK
8589 case 476:
8590 /* rule 476 can match eol */
8591 YY_RULE_SETUP
8592 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);
8593         YY_BREAK
8594 case 477:
8595 /* rule 477 can match eol */
8596 YY_RULE_SETUP
8597 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);
8598         YY_BREAK
8599 case 478:
8600 /* rule 478 can match eol */
8601 YY_RULE_SETUP
8602 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);
8603         YY_BREAK
8604 case 479:
8605 /* rule 479 can match eol */
8606 YY_RULE_SETUP
8607 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);
8608         YY_BREAK
8609 case 480:
8610 /* rule 480 can match eol */
8611 case 481:
8612 /* rule 481 can match eol */
8613 YY_RULE_SETUP
8614 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8615         YY_BREAK
8616 case 482:
8617 /* rule 482 can match eol */
8618 case 483:
8619 /* rule 483 can match eol */
8620 YY_RULE_SETUP
8621 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8622         YY_BREAK
8623 case 484:
8624 YY_RULE_SETUP
8625 {
8626   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8627   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8628   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8629  }
8630         YY_BREAK
8631 case 485:
8632 YY_RULE_SETUP
8633 {
8634   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8635   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8636   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8637   switch (YY_START) {
8638    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8639   }
8640  }
8641         YY_BREAK
8642 case 486:
8643 YY_RULE_SETUP
8644 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8645         YY_BREAK
8646 case 487:
8647 YY_RULE_SETUP
8648 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8649         YY_BREAK
8650 case YY_STATE_EOF(AL_surfxml_process):
8651 FAIL("EOF in attribute list of `process' element.");
8652         YY_BREAK
8653
8654 case 488:
8655 /* rule 488 can match eol */
8656 YY_RULE_SETUP
8657 {
8658   LEAVE;
8659   ETag_surfxml_process();
8660   popbuffer(); /* attribute */
8661   switch (YY_START) {
8662    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8663   }
8664  }
8665         YY_BREAK
8666 case 489:
8667 /* rule 489 can match eol */
8668 YY_RULE_SETUP
8669 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8670         YY_BREAK
8671 case 490:
8672 YY_RULE_SETUP
8673 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8674         YY_BREAK
8675 case YY_STATE_EOF(E_surfxml_process):
8676 case YY_STATE_EOF(S_surfxml_process):
8677 case YY_STATE_EOF(S_surfxml_process_2):
8678 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8679         YY_BREAK
8680
8681 case 491:
8682 /* rule 491 can match eol */
8683 YY_RULE_SETUP
8684 FAIL("Starting tag <argument> is not allowed here.");
8685         YY_BREAK
8686 case 492:
8687 /* rule 492 can match eol */
8688 YY_RULE_SETUP
8689 {
8690   AX_surfxml_argument_value = 0;
8691   surfxml_argument_value_isset = 0;
8692   ENTER(AL_surfxml_argument); pushbuffer(0);
8693   }
8694         YY_BREAK
8695
8696 case 493:
8697 /* rule 493 can match eol */
8698 YY_RULE_SETUP
8699 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);
8700         YY_BREAK
8701 case 494:
8702 /* rule 494 can match eol */
8703 YY_RULE_SETUP
8704 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);
8705         YY_BREAK
8706 case 495:
8707 YY_RULE_SETUP
8708 {
8709   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8710   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8711  }
8712         YY_BREAK
8713 case 496:
8714 YY_RULE_SETUP
8715 {
8716   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8717   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8718   switch (YY_START) {
8719    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8720   }
8721  }
8722         YY_BREAK
8723 case 497:
8724 YY_RULE_SETUP
8725 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8726         YY_BREAK
8727 case 498:
8728 YY_RULE_SETUP
8729 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8730         YY_BREAK
8731 case YY_STATE_EOF(AL_surfxml_argument):
8732 FAIL("EOF in attribute list of `argument' element.");
8733         YY_BREAK
8734
8735 case 499:
8736 /* rule 499 can match eol */
8737 YY_RULE_SETUP
8738 {
8739   LEAVE;
8740   ETag_surfxml_argument();
8741   popbuffer(); /* attribute */
8742   switch (YY_START) {
8743    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8744   }
8745  }
8746         YY_BREAK
8747 case 500:
8748 /* rule 500 can match eol */
8749 YY_RULE_SETUP
8750 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8751         YY_BREAK
8752 case 501:
8753 YY_RULE_SETUP
8754 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8755         YY_BREAK
8756 case YY_STATE_EOF(E_surfxml_argument):
8757 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8758         YY_BREAK
8759
8760 case 502:
8761 /* rule 502 can match eol */
8762 YY_RULE_SETUP
8763 FAIL("Starting tag <config> is not allowed here.");
8764         YY_BREAK
8765 case 503:
8766 /* rule 503 can match eol */
8767 YY_RULE_SETUP
8768 {
8769   AX_surfxml_config_id = 0;
8770   surfxml_config_id_isset = 0;
8771   ENTER(AL_surfxml_config); pushbuffer(0);
8772   }
8773         YY_BREAK
8774
8775 case 504:
8776 /* rule 504 can match eol */
8777 YY_RULE_SETUP
8778 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);
8779         YY_BREAK
8780 case 505:
8781 /* rule 505 can match eol */
8782 YY_RULE_SETUP
8783 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);
8784         YY_BREAK
8785 case 506:
8786 YY_RULE_SETUP
8787 {
8788   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8789  }
8790         YY_BREAK
8791 case 507:
8792 YY_RULE_SETUP
8793 {
8794   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8795   switch (YY_START) {
8796    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8797   }
8798  }
8799         YY_BREAK
8800 case 508:
8801 YY_RULE_SETUP
8802 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8803         YY_BREAK
8804 case 509:
8805 YY_RULE_SETUP
8806 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8807         YY_BREAK
8808 case YY_STATE_EOF(AL_surfxml_config):
8809 FAIL("EOF in attribute list of `config' element.");
8810         YY_BREAK
8811
8812 case 510:
8813 /* rule 510 can match eol */
8814 YY_RULE_SETUP
8815 {
8816   LEAVE;
8817   ETag_surfxml_config();
8818   popbuffer(); /* attribute */
8819   switch (YY_START) {
8820    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8821   }
8822  }
8823         YY_BREAK
8824 case 511:
8825 /* rule 511 can match eol */
8826 YY_RULE_SETUP
8827 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8828         YY_BREAK
8829 case 512:
8830 YY_RULE_SETUP
8831 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8832         YY_BREAK
8833 case YY_STATE_EOF(S_surfxml_config):
8834 case YY_STATE_EOF(S_surfxml_config_2):
8835 case YY_STATE_EOF(E_surfxml_config):
8836 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8837         YY_BREAK
8838
8839 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8840   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8841 case 513:
8842 /* rule 513 can match eol */
8843 YY_RULE_SETUP
8844 FAIL("Starting tag <prop> is not allowed here.");
8845         YY_BREAK
8846 case 514:
8847 /* rule 514 can match eol */
8848 YY_RULE_SETUP
8849 {
8850   AX_surfxml_prop_id = 0;
8851   surfxml_prop_id_isset = 0;
8852   AX_surfxml_prop_value = 0;
8853   surfxml_prop_value_isset = 0;
8854   ENTER(AL_surfxml_prop); pushbuffer(0);
8855   }
8856         YY_BREAK
8857
8858 case 515:
8859 /* rule 515 can match eol */
8860 YY_RULE_SETUP
8861 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);
8862         YY_BREAK
8863 case 516:
8864 /* rule 516 can match eol */
8865 YY_RULE_SETUP
8866 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);
8867         YY_BREAK
8868 case 517:
8869 /* rule 517 can match eol */
8870 YY_RULE_SETUP
8871 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);
8872         YY_BREAK
8873 case 518:
8874 /* rule 518 can match eol */
8875 YY_RULE_SETUP
8876 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);
8877         YY_BREAK
8878 case 519:
8879 YY_RULE_SETUP
8880 {
8881   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8882   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8883   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8884  }
8885         YY_BREAK
8886 case 520:
8887 YY_RULE_SETUP
8888 {
8889   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8890   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8891   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8892   switch (YY_START) {
8893    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8894    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8895    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8896    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8897    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8898    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8899    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8900    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8901   }
8902  }
8903         YY_BREAK
8904 case 521:
8905 YY_RULE_SETUP
8906 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8907         YY_BREAK
8908 case 522:
8909 YY_RULE_SETUP
8910 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8911         YY_BREAK
8912 case YY_STATE_EOF(AL_surfxml_prop):
8913 FAIL("EOF in attribute list of `prop' element.");
8914         YY_BREAK
8915
8916 case 523:
8917 /* rule 523 can match eol */
8918 YY_RULE_SETUP
8919 {
8920   LEAVE;
8921   ETag_surfxml_prop();
8922   popbuffer(); /* attribute */
8923   switch (YY_START) {
8924    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8925    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8926    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8927    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8928    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8929    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8930    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8931    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8932   }
8933  }
8934         YY_BREAK
8935 case 524:
8936 /* rule 524 can match eol */
8937 YY_RULE_SETUP
8938 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8939         YY_BREAK
8940 case 525:
8941 YY_RULE_SETUP
8942 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8943         YY_BREAK
8944 case YY_STATE_EOF(E_surfxml_prop):
8945 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8946         YY_BREAK
8947
8948 /* EPILOG: after the root element. */
8949
8950 case 526:
8951 YY_RULE_SETUP
8952 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8953         YY_BREAK
8954 case YY_STATE_EOF(EPILOG):
8955 SUCCEED;
8956         YY_BREAK
8957
8958 /* CHARACTER DATA. */
8959
8960 /* Non-defined standard entities... */
8961 case 527:
8962 YY_RULE_SETUP
8963 BUFFERPUTC('&');
8964         YY_BREAK
8965 case 528:
8966 YY_RULE_SETUP
8967 BUFFERPUTC('<');
8968         YY_BREAK
8969 case 529:
8970 YY_RULE_SETUP
8971 BUFFERPUTC('>');
8972         YY_BREAK
8973 case 530:
8974 YY_RULE_SETUP
8975 BUFFERPUTC('\'');
8976         YY_BREAK
8977 case 531:
8978 YY_RULE_SETUP
8979 BUFFERPUTC('"');
8980         YY_BREAK
8981 /* Character entities. */
8982 case 532:
8983 YY_RULE_SETUP
8984 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8985         YY_BREAK
8986 case 533:
8987 YY_RULE_SETUP
8988 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8989         YY_BREAK
8990
8991 case 534:
8992 /* rule 534 can match eol */
8993 case 535:
8994 /* rule 535 can match eol */
8995 case 536:
8996 /* rule 536 can match eol */
8997 case 537:
8998 /* rule 537 can match eol */
8999 YY_RULE_SETUP
9000 BUFFERPUTC('\n');
9001         YY_BREAK
9002
9003 case 538:
9004 YY_RULE_SETUP
9005 ENTER(CDATA);
9006         YY_BREAK
9007 case 539:
9008 YY_RULE_SETUP
9009 FAIL("Unexpected `]""]>' in character data.");
9010         YY_BREAK
9011
9012 case 540:
9013 YY_RULE_SETUP
9014 BUFFERDONE; LEAVE;
9015         YY_BREAK
9016 case YY_STATE_EOF(VALUE1):
9017 FAIL("EOF in literal (\"'\" expected).");
9018         YY_BREAK
9019
9020 case 541:
9021 YY_RULE_SETUP
9022 BUFFERDONE; LEAVE;
9023         YY_BREAK
9024 case YY_STATE_EOF(VALUE2):
9025 FAIL("EOF in literal (`\"' expected).");
9026         YY_BREAK
9027
9028 case 542:
9029 /* rule 542 can match eol */
9030 YY_RULE_SETUP
9031 BUFFERPUTC(surf_parse_text[0]);
9032         YY_BREAK
9033 case 543:
9034 YY_RULE_SETUP
9035 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9036         YY_BREAK
9037
9038 case 544:
9039 YY_RULE_SETUP
9040 LEAVE;
9041         YY_BREAK
9042 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9043 case 545:
9044 YY_RULE_SETUP
9045 BUFFERPUTC(surf_parse_text[0]);
9046         YY_BREAK
9047 case YY_STATE_EOF(CDATA):
9048 FAIL("EOF in CDATA section.");
9049         YY_BREAK
9050
9051 /* Impossible rules to avoid warnings from flex(1). */
9052 /* Ideally, this should be replaced by code in flexml.pl that
9053     generates just the states not covered by other rules. */
9054
9055 case 546:
9056 /* rule 546 can match eol */
9057 YY_RULE_SETUP
9058 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9059         YY_BREAK
9060
9061 case 547:
9062 YY_RULE_SETUP
9063 ECHO;
9064         YY_BREAK
9065 case YY_STATE_EOF(INITIAL):
9066 case YY_STATE_EOF(ROOT_surfxml_platform):
9067 case YY_STATE_EOF(S_surfxml_platform_2):
9068 case YY_STATE_EOF(S_surfxml_platform_5):
9069 case YY_STATE_EOF(S_surfxml_platform_7):
9070 case YY_STATE_EOF(S_surfxml_include_1):
9071 case YY_STATE_EOF(S_surfxml_random_1):
9072 case YY_STATE_EOF(S_surfxml_AS_2):
9073 case YY_STATE_EOF(S_surfxml_AS_5):
9074 case YY_STATE_EOF(S_surfxml_AS_8):
9075 case YY_STATE_EOF(S_surfxml_AS_10):
9076 case YY_STATE_EOF(S_surfxml_AS_13):
9077 case YY_STATE_EOF(S_surfxml_AS_15):
9078 case YY_STATE_EOF(S_surfxml_storage_type_1):
9079 case YY_STATE_EOF(S_surfxml_storage_1):
9080 case YY_STATE_EOF(S_surfxml_host_1):
9081 case YY_STATE_EOF(S_surfxml_link_1):
9082 case YY_STATE_EOF(S_surfxml_route_1):
9083 case YY_STATE_EOF(S_surfxml_ASroute_1):
9084 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9085 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9086 case YY_STATE_EOF(S_surfxml_process_1):
9087 case YY_STATE_EOF(S_surfxml_config_1):
9088 case YY_STATE_EOF(IMPOSSIBLE):
9089         yyterminate();
9090
9091         case YY_END_OF_BUFFER:
9092                 {
9093                 /* Amount of text matched not including the EOB char. */
9094                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9095
9096                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9097                 *yy_cp = (yy_hold_char);
9098                 YY_RESTORE_YY_MORE_OFFSET
9099
9100                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9101                         {
9102                         /* We're scanning a new file or input source.  It's
9103                          * possible that this happened because the user
9104                          * just pointed surf_parse_in at a new source and called
9105                          * surf_parse_lex().  If so, then we have to assure
9106                          * consistency between YY_CURRENT_BUFFER and our
9107                          * globals.  Here is the right place to do so, because
9108                          * this is the first action (other than possibly a
9109                          * back-up) that will match for the new input source.
9110                          */
9111                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9112                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9113                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9114                         }
9115
9116                 /* Note that here we test for yy_c_buf_p "<=" to the position
9117                  * of the first EOB in the buffer, since yy_c_buf_p will
9118                  * already have been incremented past the NUL character
9119                  * (since all states make transitions on EOB to the
9120                  * end-of-buffer state).  Contrast this with the test
9121                  * in input().
9122                  */
9123                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9124                         { /* This was really a NUL. */
9125                         yy_state_type yy_next_state;
9126
9127                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9128
9129                         yy_current_state = yy_get_previous_state(  );
9130
9131                         /* Okay, we're now positioned to make the NUL
9132                          * transition.  We couldn't have
9133                          * yy_get_previous_state() go ahead and do it
9134                          * for us because it doesn't know how to deal
9135                          * with the possibility of jamming (and we don't
9136                          * want to build jamming into it because then it
9137                          * will run more slowly).
9138                          */
9139
9140                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9141
9142                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9143
9144                         if ( yy_next_state )
9145                                 {
9146                                 /* Consume the NUL. */
9147                                 yy_cp = ++(yy_c_buf_p);
9148                                 yy_current_state = yy_next_state;
9149                                 goto yy_match;
9150                                 }
9151
9152                         else
9153                                 {
9154                                 yy_cp = (yy_c_buf_p);
9155                                 goto yy_find_action;
9156                                 }
9157                         }
9158
9159                 else switch ( yy_get_next_buffer(  ) )
9160                         {
9161                         case EOB_ACT_END_OF_FILE:
9162                                 {
9163                                 (yy_did_buffer_switch_on_eof) = 0;
9164
9165                                 if ( surf_parse_wrap( ) )
9166                                         {
9167                                         /* Note: because we've taken care in
9168                                          * yy_get_next_buffer() to have set up
9169                                          * surf_parse_text, we can now set up
9170                                          * yy_c_buf_p so that if some total
9171                                          * hoser (like flex itself) wants to
9172                                          * call the scanner after we return the
9173                                          * YY_NULL, it'll still work - another
9174                                          * YY_NULL will get returned.
9175                                          */
9176                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9177
9178                                         yy_act = YY_STATE_EOF(YY_START);
9179                                         goto do_action;
9180                                         }
9181
9182                                 else
9183                                         {
9184                                         if ( ! (yy_did_buffer_switch_on_eof) )
9185                                                 YY_NEW_FILE;
9186                                         }
9187                                 break;
9188                                 }
9189
9190                         case EOB_ACT_CONTINUE_SCAN:
9191                                 (yy_c_buf_p) =
9192                                         (yytext_ptr) + yy_amount_of_matched_text;
9193
9194                                 yy_current_state = yy_get_previous_state(  );
9195
9196                                 yy_cp = (yy_c_buf_p);
9197                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9198                                 goto yy_match;
9199
9200                         case EOB_ACT_LAST_MATCH:
9201                                 (yy_c_buf_p) =
9202                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9203
9204                                 yy_current_state = yy_get_previous_state(  );
9205
9206                                 yy_cp = (yy_c_buf_p);
9207                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9208                                 goto yy_find_action;
9209                         }
9210                 break;
9211                 }
9212
9213         default:
9214                 YY_FATAL_ERROR(
9215                         "fatal flex scanner internal error--no action found" );
9216         } /* end of action switch */
9217                 } /* end of scanning one token */
9218 } /* end of surf_parse_lex */
9219
9220 /* yy_get_next_buffer - try to read in a new buffer
9221  *
9222  * Returns a code representing an action:
9223  *      EOB_ACT_LAST_MATCH -
9224  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9225  *      EOB_ACT_END_OF_FILE - end of file
9226  */
9227 static int yy_get_next_buffer (void)
9228 {
9229         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9230         register char *source = (yytext_ptr);
9231         register int number_to_move, i;
9232         int ret_val;
9233
9234         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9235                 YY_FATAL_ERROR(
9236                 "fatal flex scanner internal error--end of buffer missed" );
9237
9238         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9239                 { /* Don't try to fill the buffer, so this is an EOF. */
9240                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9241                         {
9242                         /* We matched a single character, the EOB, so
9243                          * treat this as a final EOF.
9244                          */
9245                         return EOB_ACT_END_OF_FILE;
9246                         }
9247
9248                 else
9249                         {
9250                         /* We matched some text prior to the EOB, first
9251                          * process it.
9252                          */
9253                         return EOB_ACT_LAST_MATCH;
9254                         }
9255                 }
9256
9257         /* Try to read more data. */
9258
9259         /* First move last chars to start of buffer. */
9260         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9261
9262         for ( i = 0; i < number_to_move; ++i )
9263                 *(dest++) = *(source++);
9264
9265         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9266                 /* don't do the read, it's not guaranteed to return an EOF,
9267                  * just force an EOF
9268                  */
9269                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9270
9271         else
9272                 {
9273                         int num_to_read =
9274                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9275
9276                 while ( num_to_read <= 0 )
9277                         { /* Not enough room in the buffer - grow it. */
9278
9279                         /* just a shorter name for the current buffer */
9280                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9281
9282                         int yy_c_buf_p_offset =
9283                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9284
9285                         if ( b->yy_is_our_buffer )
9286                                 {
9287                                 int new_size = b->yy_buf_size * 2;
9288
9289                                 if ( new_size <= 0 )
9290                                         b->yy_buf_size += b->yy_buf_size / 8;
9291                                 else
9292                                         b->yy_buf_size *= 2;
9293
9294                                 b->yy_ch_buf = (char *)
9295                                         /* Include room in for 2 EOB chars. */
9296                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9297                                 }
9298                         else
9299                                 /* Can't grow it, we don't own it. */
9300                                 b->yy_ch_buf = 0;
9301
9302                         if ( ! b->yy_ch_buf )
9303                                 YY_FATAL_ERROR(
9304                                 "fatal error - scanner input buffer overflow" );
9305
9306                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9307
9308                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9309                                                 number_to_move - 1;
9310
9311                         }
9312
9313                 if ( num_to_read > YY_READ_BUF_SIZE )
9314                         num_to_read = YY_READ_BUF_SIZE;
9315
9316                 /* Read in more data. */
9317                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9318                         (yy_n_chars), (size_t) num_to_read );
9319
9320                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9321                 }
9322
9323         if ( (yy_n_chars) == 0 )
9324                 {
9325                 if ( number_to_move == YY_MORE_ADJ )
9326                         {
9327                         ret_val = EOB_ACT_END_OF_FILE;
9328                         surf_parse_restart(surf_parse_in  );
9329                         }
9330
9331                 else
9332                         {
9333                         ret_val = EOB_ACT_LAST_MATCH;
9334                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9335                                 YY_BUFFER_EOF_PENDING;
9336                         }
9337                 }
9338
9339         else
9340                 ret_val = EOB_ACT_CONTINUE_SCAN;
9341
9342         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9343                 /* Extend the array by 50%, plus the number we really need. */
9344                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9345                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9346                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9347                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9348         }
9349
9350         (yy_n_chars) += number_to_move;
9351         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9352         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9353
9354         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9355
9356         return ret_val;
9357 }
9358
9359 /* yy_get_previous_state - get the state just before the EOB char was reached */
9360
9361     static yy_state_type yy_get_previous_state (void)
9362 {
9363         register yy_state_type yy_current_state;
9364         register char *yy_cp;
9365     
9366         yy_current_state = (yy_start);
9367
9368         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9369                 {
9370                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9371                 if ( yy_accept[yy_current_state] )
9372                         {
9373                         (yy_last_accepting_state) = yy_current_state;
9374                         (yy_last_accepting_cpos) = yy_cp;
9375                         }
9376                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9377                         {
9378                         yy_current_state = (int) yy_def[yy_current_state];
9379                         if ( yy_current_state >= 3225 )
9380                                 yy_c = yy_meta[(unsigned int) yy_c];
9381                         }
9382                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9383                 }
9384
9385         return yy_current_state;
9386 }
9387
9388 /* yy_try_NUL_trans - try to make a transition on the NUL character
9389  *
9390  * synopsis
9391  *      next_state = yy_try_NUL_trans( current_state );
9392  */
9393     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9394 {
9395         register int yy_is_jam;
9396         register char *yy_cp = (yy_c_buf_p);
9397
9398         register YY_CHAR yy_c = 1;
9399         if ( yy_accept[yy_current_state] )
9400                 {
9401                 (yy_last_accepting_state) = yy_current_state;
9402                 (yy_last_accepting_cpos) = yy_cp;
9403                 }
9404         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9405                 {
9406                 yy_current_state = (int) yy_def[yy_current_state];
9407                 if ( yy_current_state >= 3225 )
9408                         yy_c = yy_meta[(unsigned int) yy_c];
9409                 }
9410         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9411         yy_is_jam = (yy_current_state == 3224);
9412
9413         return yy_is_jam ? 0 : yy_current_state;
9414 }
9415
9416 #ifndef YY_NO_INPUT
9417 #ifdef __cplusplus
9418     static int yyinput (void)
9419 #else
9420     static int input  (void)
9421 #endif
9422
9423 {
9424         int c;
9425     
9426         *(yy_c_buf_p) = (yy_hold_char);
9427
9428         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9429                 {
9430                 /* yy_c_buf_p now points to the character we want to return.
9431                  * If this occurs *before* the EOB characters, then it's a
9432                  * valid NUL; if not, then we've hit the end of the buffer.
9433                  */
9434                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9435                         /* This was really a NUL. */
9436                         *(yy_c_buf_p) = '\0';
9437
9438                 else
9439                         { /* need more input */
9440                         int offset = (yy_c_buf_p) - (yytext_ptr);
9441                         ++(yy_c_buf_p);
9442
9443                         switch ( yy_get_next_buffer(  ) )
9444                                 {
9445                                 case EOB_ACT_LAST_MATCH:
9446                                         /* This happens because yy_g_n_b()
9447                                          * sees that we've accumulated a
9448                                          * token and flags that we need to
9449                                          * try matching the token before
9450                                          * proceeding.  But for input(),
9451                                          * there's no matching to consider.
9452                                          * So convert the EOB_ACT_LAST_MATCH
9453                                          * to EOB_ACT_END_OF_FILE.
9454                                          */
9455
9456                                         /* Reset buffer status. */
9457                                         surf_parse_restart(surf_parse_in );
9458
9459                                         /*FALLTHROUGH*/
9460
9461                                 case EOB_ACT_END_OF_FILE:
9462                                         {
9463                                         if ( surf_parse_wrap( ) )
9464                                                 return EOF;
9465
9466                                         if ( ! (yy_did_buffer_switch_on_eof) )
9467                                                 YY_NEW_FILE;
9468 #ifdef __cplusplus
9469                                         return yyinput();
9470 #else
9471                                         return input();
9472 #endif
9473                                         }
9474
9475                                 case EOB_ACT_CONTINUE_SCAN:
9476                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9477                                         break;
9478                                 }
9479                         }
9480                 }
9481
9482         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9483         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9484         (yy_hold_char) = *++(yy_c_buf_p);
9485
9486         if ( c == '\n' )
9487                    
9488     surf_parse_lineno++;
9489 ;
9490
9491         return c;
9492 }
9493 #endif  /* ifndef YY_NO_INPUT */
9494
9495 /** Immediately switch to a different input stream.
9496  * @param input_file A readable stream.
9497  * 
9498  * @note This function does not reset the start condition to @c INITIAL .
9499  */
9500     void surf_parse_restart  (FILE * input_file )
9501 {
9502     
9503         if ( ! YY_CURRENT_BUFFER ){
9504         surf_parse_ensure_buffer_stack ();
9505                 YY_CURRENT_BUFFER_LVALUE =
9506             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9507         }
9508
9509         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9510         surf_parse__load_buffer_state( );
9511 }
9512
9513 /** Switch to a different input buffer.
9514  * @param new_buffer The new input buffer.
9515  * 
9516  */
9517     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9518 {
9519     
9520         /* TODO. We should be able to replace this entire function body
9521          * with
9522          *              surf_parse_pop_buffer_state();
9523          *              surf_parse_push_buffer_state(new_buffer);
9524      */
9525         surf_parse_ensure_buffer_stack ();
9526         if ( YY_CURRENT_BUFFER == new_buffer )
9527                 return;
9528
9529         if ( YY_CURRENT_BUFFER )
9530                 {
9531                 /* Flush out information for old buffer. */
9532                 *(yy_c_buf_p) = (yy_hold_char);
9533                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9534                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9535                 }
9536
9537         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9538         surf_parse__load_buffer_state( );
9539
9540         /* We don't actually know whether we did this switch during
9541          * EOF (surf_parse_wrap()) processing, but the only time this flag
9542          * is looked at is after surf_parse_wrap() is called, so it's safe
9543          * to go ahead and always set it.
9544          */
9545         (yy_did_buffer_switch_on_eof) = 1;
9546 }
9547
9548 static void surf_parse__load_buffer_state  (void)
9549 {
9550         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9551         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9552         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9553         (yy_hold_char) = *(yy_c_buf_p);
9554 }
9555
9556 /** Allocate and initialize an input buffer state.
9557  * @param file A readable stream.
9558  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9559  * 
9560  * @return the allocated buffer state.
9561  */
9562     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9563 {
9564         YY_BUFFER_STATE b;
9565     
9566         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9567         if ( ! b )
9568                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9569
9570         b->yy_buf_size = size;
9571
9572         /* yy_ch_buf has to be 2 characters longer than the size given because
9573          * we need to put in 2 end-of-buffer characters.
9574          */
9575         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9576         if ( ! b->yy_ch_buf )
9577                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9578
9579         b->yy_is_our_buffer = 1;
9580
9581         surf_parse__init_buffer(b,file );
9582
9583         return b;
9584 }
9585
9586 /** Destroy the buffer.
9587  * @param b a buffer created with surf_parse__create_buffer()
9588  * 
9589  */
9590     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9591 {
9592     
9593         if ( ! b )
9594                 return;
9595
9596         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9597                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9598
9599         if ( b->yy_is_our_buffer )
9600                 surf_parse_free((void *) b->yy_ch_buf  );
9601
9602         surf_parse_free((void *) b  );
9603 }
9604
9605 #ifndef __cplusplus
9606 extern int isatty (int );
9607 #endif /* __cplusplus */
9608     
9609 /* Initializes or reinitializes a buffer.
9610  * This function is sometimes called more than once on the same buffer,
9611  * such as during a surf_parse_restart() or at EOF.
9612  */
9613     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9614
9615 {
9616         int oerrno = errno;
9617     
9618         surf_parse__flush_buffer(b );
9619
9620         b->yy_input_file = file;
9621         b->yy_fill_buffer = 1;
9622
9623     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9624      * called from surf_parse_restart() or through yy_get_next_buffer.
9625      * In that case, we don't want to reset the lineno or column.
9626      */
9627     if (b != YY_CURRENT_BUFFER){
9628         b->yy_bs_lineno = 1;
9629         b->yy_bs_column = 0;
9630     }
9631
9632         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9633     
9634         errno = oerrno;
9635 }
9636
9637 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9638  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9639  * 
9640  */
9641     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9642 {
9643         if ( ! b )
9644                 return;
9645
9646         b->yy_n_chars = 0;
9647
9648         /* We always need two end-of-buffer characters.  The first causes
9649          * a transition to the end-of-buffer state.  The second causes
9650          * a jam in that state.
9651          */
9652         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9653         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9654
9655         b->yy_buf_pos = &b->yy_ch_buf[0];
9656
9657         b->yy_at_bol = 1;
9658         b->yy_buffer_status = YY_BUFFER_NEW;
9659
9660         if ( b == YY_CURRENT_BUFFER )
9661                 surf_parse__load_buffer_state( );
9662 }
9663
9664 /** Pushes the new state onto the stack. The new state becomes
9665  *  the current state. This function will allocate the stack
9666  *  if necessary.
9667  *  @param new_buffer The new state.
9668  *  
9669  */
9670 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9671 {
9672         if (new_buffer == NULL)
9673                 return;
9674
9675         surf_parse_ensure_buffer_stack();
9676
9677         /* This block is copied from surf_parse__switch_to_buffer. */
9678         if ( YY_CURRENT_BUFFER )
9679                 {
9680                 /* Flush out information for old buffer. */
9681                 *(yy_c_buf_p) = (yy_hold_char);
9682                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9683                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9684                 }
9685
9686         /* Only push if top exists. Otherwise, replace top. */
9687         if (YY_CURRENT_BUFFER)
9688                 (yy_buffer_stack_top)++;
9689         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9690
9691         /* copied from surf_parse__switch_to_buffer. */
9692         surf_parse__load_buffer_state( );
9693         (yy_did_buffer_switch_on_eof) = 1;
9694 }
9695
9696 /** Removes and deletes the top of the stack, if present.
9697  *  The next element becomes the new top.
9698  *  
9699  */
9700 void surf_parse_pop_buffer_state (void)
9701 {
9702         if (!YY_CURRENT_BUFFER)
9703                 return;
9704
9705         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9706         YY_CURRENT_BUFFER_LVALUE = NULL;
9707         if ((yy_buffer_stack_top) > 0)
9708                 --(yy_buffer_stack_top);
9709
9710         if (YY_CURRENT_BUFFER) {
9711                 surf_parse__load_buffer_state( );
9712                 (yy_did_buffer_switch_on_eof) = 1;
9713         }
9714 }
9715
9716 /* Allocates the stack if it does not exist.
9717  *  Guarantees space for at least one push.
9718  */
9719 static void surf_parse_ensure_buffer_stack (void)
9720 {
9721         int num_to_alloc;
9722     
9723         if (!(yy_buffer_stack)) {
9724
9725                 /* First allocation is just for 2 elements, since we don't know if this
9726                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9727                  * immediate realloc on the next call.
9728          */
9729                 num_to_alloc = 1;
9730                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9731                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9732                                                                 );
9733                 if ( ! (yy_buffer_stack) )
9734                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9735                                                                   
9736                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9737                                 
9738                 (yy_buffer_stack_max) = num_to_alloc;
9739                 (yy_buffer_stack_top) = 0;
9740                 return;
9741         }
9742
9743         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9744
9745                 /* Increase the buffer to prepare for a possible push. */
9746                 int grow_size = 8 /* arbitrary grow size */;
9747
9748                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9749                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9750                                                                 ((yy_buffer_stack),
9751                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9752                                                                 );
9753                 if ( ! (yy_buffer_stack) )
9754                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9755
9756                 /* zero only the new slots.*/
9757                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9758                 (yy_buffer_stack_max) = num_to_alloc;
9759         }
9760 }
9761
9762 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9763  * @param base the character buffer
9764  * @param size the size in bytes of the character buffer
9765  * 
9766  * @return the newly allocated buffer state object. 
9767  */
9768 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9769 {
9770         YY_BUFFER_STATE b;
9771     
9772         if ( size < 2 ||
9773              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9774              base[size-1] != YY_END_OF_BUFFER_CHAR )
9775                 /* They forgot to leave room for the EOB's. */
9776                 return 0;
9777
9778         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9779         if ( ! b )
9780                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9781
9782         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9783         b->yy_buf_pos = b->yy_ch_buf = base;
9784         b->yy_is_our_buffer = 0;
9785         b->yy_input_file = 0;
9786         b->yy_n_chars = b->yy_buf_size;
9787         b->yy_is_interactive = 0;
9788         b->yy_at_bol = 1;
9789         b->yy_fill_buffer = 0;
9790         b->yy_buffer_status = YY_BUFFER_NEW;
9791
9792         surf_parse__switch_to_buffer(b  );
9793
9794         return b;
9795 }
9796
9797 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9798  * scan from a @e copy of @a str.
9799  * @param yystr a NUL-terminated string to scan
9800  * 
9801  * @return the newly allocated buffer state object.
9802  * @note If you want to scan bytes that may contain NUL values, then use
9803  *       surf_parse__scan_bytes() instead.
9804  */
9805 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9806 {
9807     
9808         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9809 }
9810
9811 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9812  * scan from a @e copy of @a bytes.
9813  * @param yybytes the byte buffer to scan
9814  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9815  * 
9816  * @return the newly allocated buffer state object.
9817  */
9818 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9819 {
9820         YY_BUFFER_STATE b;
9821         char *buf;
9822         yy_size_t n;
9823         int i;
9824     
9825         /* Get memory for full buffer, including space for trailing EOB's. */
9826         n = _yybytes_len + 2;
9827         buf = (char *) surf_parse_alloc(n  );
9828         if ( ! buf )
9829                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9830
9831         for ( i = 0; i < _yybytes_len; ++i )
9832                 buf[i] = yybytes[i];
9833
9834         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9835
9836         b = surf_parse__scan_buffer(buf,n );
9837         if ( ! b )
9838                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9839
9840         /* It's okay to grow etc. this buffer, and we should throw it
9841          * away when we're done.
9842          */
9843         b->yy_is_our_buffer = 1;
9844
9845         return b;
9846 }
9847
9848     static void yy_push_state (int  new_state )
9849 {
9850         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9851                 {
9852                 yy_size_t new_size;
9853
9854                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9855                 new_size = (yy_start_stack_depth) * sizeof( int );
9856
9857                 if ( ! (yy_start_stack) )
9858                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9859
9860                 else
9861                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9862
9863                 if ( ! (yy_start_stack) )
9864                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9865                 }
9866
9867         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9868
9869         BEGIN(new_state);
9870 }
9871
9872     static void yy_pop_state  (void)
9873 {
9874         if ( --(yy_start_stack_ptr) < 0 )
9875                 YY_FATAL_ERROR( "start-condition stack underflow" );
9876
9877         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9878 }
9879
9880 #ifndef YY_EXIT_FAILURE
9881 #define YY_EXIT_FAILURE 2
9882 #endif
9883
9884 static void yy_fatal_error (yyconst char* msg )
9885 {
9886         (void) fprintf( stderr, "%s\n", msg );
9887         exit( YY_EXIT_FAILURE );
9888 }
9889
9890 /* Redefine yyless() so it works in section 3 code. */
9891
9892 #undef yyless
9893 #define yyless(n) \
9894         do \
9895                 { \
9896                 /* Undo effects of setting up surf_parse_text. */ \
9897         int yyless_macro_arg = (n); \
9898         YY_LESS_LINENO(yyless_macro_arg);\
9899                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9900                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9901                 (yy_hold_char) = *(yy_c_buf_p); \
9902                 *(yy_c_buf_p) = '\0'; \
9903                 surf_parse_leng = yyless_macro_arg; \
9904                 } \
9905         while ( 0 )
9906
9907 /* Accessor  methods (get/set functions) to struct members. */
9908
9909 /** Get the current line number.
9910  * 
9911  */
9912 int surf_parse_get_lineno  (void)
9913 {
9914         
9915     return surf_parse_lineno;
9916 }
9917
9918 /** Get the input stream.
9919  * 
9920  */
9921 FILE *surf_parse_get_in  (void)
9922 {
9923         return surf_parse_in;
9924 }
9925
9926 /** Get the output stream.
9927  * 
9928  */
9929 FILE *surf_parse_get_out  (void)
9930 {
9931         return surf_parse_out;
9932 }
9933
9934 /** Get the length of the current token.
9935  * 
9936  */
9937 int surf_parse_get_leng  (void)
9938 {
9939         return surf_parse_leng;
9940 }
9941
9942 /** Get the current token.
9943  * 
9944  */
9945
9946 char *surf_parse_get_text  (void)
9947 {
9948         return surf_parse_text;
9949 }
9950
9951 /** Set the current line number.
9952  * @param line_number
9953  * 
9954  */
9955 void surf_parse_set_lineno (int  line_number )
9956 {
9957     
9958     surf_parse_lineno = line_number;
9959 }
9960
9961 /** Set the input stream. This does not discard the current
9962  * input buffer.
9963  * @param in_str A readable stream.
9964  * 
9965  * @see surf_parse__switch_to_buffer
9966  */
9967 void surf_parse_set_in (FILE *  in_str )
9968 {
9969         surf_parse_in = in_str ;
9970 }
9971
9972 void surf_parse_set_out (FILE *  out_str )
9973 {
9974         surf_parse_out = out_str ;
9975 }
9976
9977 int surf_parse_get_debug  (void)
9978 {
9979         return surf_parse__flex_debug;
9980 }
9981
9982 void surf_parse_set_debug (int  bdebug )
9983 {
9984         surf_parse__flex_debug = bdebug ;
9985 }
9986
9987 static int yy_init_globals (void)
9988 {
9989         /* Initialization is the same as for the non-reentrant scanner.
9990      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9991      */
9992
9993     /* We do not touch surf_parse_lineno unless the option is enabled. */
9994     surf_parse_lineno =  1;
9995     
9996     (yy_buffer_stack) = 0;
9997     (yy_buffer_stack_top) = 0;
9998     (yy_buffer_stack_max) = 0;
9999     (yy_c_buf_p) = (char *) 0;
10000     (yy_init) = 0;
10001     (yy_start) = 0;
10002
10003     (yy_start_stack_ptr) = 0;
10004     (yy_start_stack_depth) = 0;
10005     (yy_start_stack) =  NULL;
10006
10007 /* Defined in main.c */
10008 #ifdef YY_STDINIT
10009     surf_parse_in = stdin;
10010     surf_parse_out = stdout;
10011 #else
10012     surf_parse_in = (FILE *) 0;
10013     surf_parse_out = (FILE *) 0;
10014 #endif
10015
10016     /* For future reference: Set errno on error, since we are called by
10017      * surf_parse_lex_init()
10018      */
10019     return 0;
10020 }
10021
10022 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10023 int surf_parse_lex_destroy  (void)
10024 {
10025     
10026     /* Pop the buffer stack, destroying each element. */
10027         while(YY_CURRENT_BUFFER){
10028                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10029                 YY_CURRENT_BUFFER_LVALUE = NULL;
10030                 surf_parse_pop_buffer_state();
10031         }
10032
10033         /* Destroy the stack itself. */
10034         surf_parse_free((yy_buffer_stack) );
10035         (yy_buffer_stack) = NULL;
10036
10037     /* Destroy the start condition stack. */
10038         surf_parse_free((yy_start_stack)  );
10039         (yy_start_stack) = NULL;
10040
10041     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10042      * surf_parse_lex() is called, initialization will occur. */
10043     yy_init_globals( );
10044
10045     return 0;
10046 }
10047
10048 /*
10049  * Internal utility routines.
10050  */
10051
10052 #ifndef yytext_ptr
10053 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10054 {
10055         register int i;
10056         for ( i = 0; i < n; ++i )
10057                 s1[i] = s2[i];
10058 }
10059 #endif
10060
10061 #ifdef YY_NEED_STRLEN
10062 static int yy_flex_strlen (yyconst char * s )
10063 {
10064         register int n;
10065         for ( n = 0; s[n]; ++n )
10066                 ;
10067
10068         return n;
10069 }
10070 #endif
10071
10072 void *surf_parse_alloc (yy_size_t  size )
10073 {
10074         return (void *) malloc( size );
10075 }
10076
10077 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10078 {
10079         /* The cast to (char *) in the following accommodates both
10080          * implementations that use char* generic pointers, and those
10081          * that use void* generic pointers.  It works with the latter
10082          * because both ANSI C and C++ allow castless assignment from
10083          * any pointer type to void*, and deal with argument conversions
10084          * as though doing an assignment.
10085          */
10086         return (void *) realloc( (char *) ptr, size );
10087 }
10088
10089 void surf_parse_free (void * ptr )
10090 {
10091         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10092 }
10093
10094 #define YYTABLES_NAME "yytables"
10095
10096 /* Element context stack lookup. */
10097 int surfxml_element_context(int i)
10098 {
10099   return (0<i && i<yy_start_stack_depth
10100           ? yy_start_stack[yy_start_stack_ptr - i]
10101           : 0);
10102 }
10103
10104 #ifdef FLEX_DEBUG
10105 void print_yy_stack(char* fmt, ...)
10106 {
10107   int i = 0; va_list ap; va_start(ap, fmt);
10108   vfprintf(stderr, fmt, ap);
10109   if (surfxml_statenames) {
10110       for (i=1; i<yy_start_stack_ptr; i++) {
10111           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10112       }
10113       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10114   }
10115   va_end(ap);
10116 }
10117
10118 void print_surfxml_bufferstack()
10119 {
10120     int i;
10121     fputs("Buffer: ", stderr);
10122     for (i = 0; i < blimit; i++) {
10123        if ( surfxml_bufferstack[i] == '\377' ) break;
10124          putc(surfxml_bufferstack[i], stderr);
10125     }
10126     putc('\n', stderr);
10127 }
10128
10129 static void debug_enter(int state, const char* statename) {
10130   yy_push_state(state);
10131   if (surf_parse__flex_debug) {
10132        print_yy_stack("--ENTER(%s) : ",statename);
10133        print_surfxml_bufferstack();
10134   }
10135 }
10136
10137 static void debug_leave(void) {
10138     if (surf_parse__flex_debug) {
10139         print_yy_stack("--LEAVE : ");
10140         print_surfxml_bufferstack();
10141     }
10142   yy_pop_state();
10143 }
10144
10145 static void debug_set(int state, const char* statename) {
10146   BEGIN(state);
10147   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10148 }
10149 #endif
10150
10151 static void cleanup(void)
10152 {
10153     if (surfxml_statenames) {
10154         free(surfxml_statenames);
10155         surfxml_statenames = NULL;
10156     }
10157     free(surfxml_bufferstack);
10158     surfxml_bufferstack = NULL;
10159
10160     free(indexstack);
10161     indexstack = NULL;
10162 }
10163
10164 static int fail(const char* fmt, ...)
10165 {
10166     int chars_left, used;
10167     va_list ap; va_start(ap, fmt);
10168 #ifdef FLEXML_yylineno
10169     used = sprintf(flexml_err_msg,
10170                    "Invalid XML (XML input line %d, state %d): ",
10171                    surf_parse_lineno, YY_START);
10172 #else
10173     used = sprintf(flexml_err_msg,
10174                    "Invalid XML (state %d): ",
10175                    YY_START);
10176 #endif
10177     chars_left = flexml_max_err_msg_size - used - 1;
10178     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10179     va_end(ap);
10180
10181 #ifndef FLEXML_quiet_parser
10182     /* print directly to sdterr */
10183     fprintf(stderr, "%s\n", flexml_err_msg);
10184     flexml_err_msg[0] = '\0';
10185 #endif
10186
10187     cleanup();
10188
10189     return 1;
10190 }
10191