Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge with master
[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 558
407 #define YY_END_OF_BUFFER 559
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[3260] =
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,  559,  557,   15,   10,   10,   15,   15,  537,
445        10,  537,    5,    6,    5,    8,    9,    8,  553,  545,
446       546,  554,  551,  554,  552,  556,  545,  546,  556,  557,
447        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
448        26,  557,   26,  557,  557,   26,   33,   10,   33,   33,
449
450        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
451        48,   48,   46,   48,   48,   48,  554,  553,   78,   10,
452        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
453        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
454       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
455       128,  128,  132,   10,  132,  132,  557,  132,  557,  132,
456       132,  557,  557,  132,  557,  132,  557,  132,  145,   10,
457       145,  145,  145,  143,  145,  145,  145,  145,  149,   10,
458       149,  149,  160,   10,  160,  160,  160,  158,  160,  160,
459       160,  164,   10,  164,  164,  173,   10,  173,  173,  173,
460
461       171,  173,  173,  177,   10,  177,  186,   10,  186,  186,
462       186,  184,  186,  186,  190,   10,  190,  213,   10,  213,
463       213,  213,  211,  213,  213,  213,  213,  213,  217,   10,
464       217,  557,  217,  224,   10,  224,  224,  224,  222,  224,
465       228,   10,  228,  239,   10,  239,  239,  239,  237,  239,
466       239,  239,  243,   10,  243,  284,   10,  284,  284,  284,
467       282,  284,  284,  284,  284,  284,  284,  284,  284,  288,
468        10,  288,  307,   10,  307,  307,  307,  305,  307,  307,
469       307,  307,  307,  307,  311,   10,  311,  332,   10,  332,
470       332,  332,  330,  332,  332,  332,  332,  332,  332,  332,
471
472       336,   10,  336,  345,   10,  345,  345,  345,  343,  345,
473       345,  349,   10,  349,  360,   10,  360,  360,  360,  358,
474       360,  360,  360,  364,   10,  364,  391,   10,  391,  391,
475       391,  389,  391,  391,  391,  391,  395,   10,  395,  395,
476       408,   10,  408,  408,  408,  406,  408,  408,  412,   10,
477       412,  557,  412,  429,   10,  429,  429,  429,  427,  429,
478       429,  429,  433,   10,  433,  433,  446,   10,  446,  446,
479       446,  444,  446,  446,  450,   10,  450,  459,   10,  459,
480       459,  459,  457,  459,  459,  463,   10,  463,  463,  476,
481        10,  476,  476,  476,  474,  476,  476,  476,  480,   10,
482
483       480,  480,  497,   10,  497,  497,  497,  495,  497,  497,
484       497,  497,  497,  501,   10,  501,  557,  501,  508,   10,
485       508,  508,  508,  506,  508,  512,   10,  512,  519,   10,
486       519,  519,  519,  517,  519,  523,   10,  523,  523,  532,
487        10,  532,  532,  532,  530,  532,  532,  536,   10,  536,
488        10,    0,    2,    2,    0,    4,    7,  548,  547,    0,
489         0,    0,    0,    0,    0,    0,   21,   23,   23,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,   32,   34,   34,    0,   47,   49,   49,
493
494        49,   49,    0,    0,    0,   77,   79,   79,   79,   79,
495        79,   79,   79,   79,   79,    0,  100,  102,  102,  102,
496       102,    0,  127,  129,  129,  129,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,  144,  146,  146,  146,  146,
499       146,    0,  159,  161,  161,  161,  161,    0,  172,  174,
500       174,  174,    0,  185,  187,  187,  187,    0,  212,  214,
501       214,  214,  214,  214,  214,    0,    0,  223,  225,  225,
502         0,  238,  240,  240,  240,  240,    0,  283,  285,  285,
503       285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
504
505       285,  285,    0,  306,  308,  308,  308,  308,  308,  308,
506       308,  308,    0,  331,  333,  333,  333,  333,  333,  333,
507       333,  333,    0,  344,  346,  346,  346,    0,  359,  361,
508       361,  361,  361,    0,  390,  392,  392,  392,  392,  392,
509       392,    0,  407,  409,  409,  409,  409,    0,    0,  428,
510       430,  430,  430,  430,  430,    0,  445,  447,  447,  447,
511         0,  458,  460,  460,  460,    0,  475,  477,  477,  477,
512       477,    0,  496,  498,  498,  498,  498,  498,  498,    0,
513         0,  507,  509,  509,    0,  518,  520,  520,    0,  531,
514       533,  533,  533,    0,    0,    0,    0,    0,    3,    0,
515
516         0,    0,    0,    0,    0,    0,  555,    0,   23,    0,
517         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
518         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
520        34,    0,    0,   49,    0,    0,   49,    0,    0,    0,
521       550,   79,    0,    0,   79,   79,   79,   79,   79,   79,
522         0,    0,  102,  102,  102,    0,    0,    0,    0,  129,
523         0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
524         0,  106,    0,    0,    0,    0,  146,    0,    0,  146,
525       146,    0,    0,  161,    0,    0,  161,    0,    0,    0,
526
527         0,  174,    0,    0,  187,  187,    0,    0,  214,  214,
528       214,    0,    0,  214,  214,    0,    0,    0,    0,  225,
529         0,    0,  240,    0,    0,    0,    0,    0,    0,  285,
530       285,    0,    0,  285,    0,    0,  285,  285,  285,  285,
531       285,  285,  285,  285,    0,    0,    0,    0,    0,    0,
532       308,  308,  308,  308,  308,    0,    0,  333,  333,  333,
533         0,    0,  333,  333,  333,    0,    0,  346,    0,    0,
534         0,    0,  361,    0,    0,  361,    0,    0,  392,    0,
535         0,  392,  392,  392,    0,    0,  409,  409,  409,    0,
536         0,    0,  430,  430,  430,  430,    0,    0,  447,    0,
537
538         0,    0,    0,  460,  460,    0,    0,  477,  477,  477,
539         0,    0,  498,  498,  498,  498,  498,    0,    0,    0,
540       509,    0,    0,    0,    0,    0,    0,    0,    0,  533,
541         0,    0,    0,   14,    1,    0,    0,  543,    0,    0,
542         0,  540,  539,    0,    0,   23,    0,    0,   25,    0,
543       107,    0,    0,    0,    0,    0,    0,    0,  218,    0,
544         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
545         0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
546        34,    0,    0,   36,    0,   49,    0,   41,   40,   49,
547         0,    0,    0,   51,    0,   79,    0,   55,   54,    0,
548
549         0,   79,    0,    0,   79,   79,   79,    0,    0,   81,
550         0,  102,  102,  102,    0,    0,  104,    0,    0,  109,
551       108,  129,    0,    0,  131,    0,    0,    0,    0,  219,
552         0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
553         0,  136,  135,  146,  146,    0,    0,  148,    0,  161,
554         0,  153,  152,  161,    0,    0,  163,    0,    0,  168,
555       167,  174,    0,    0,  176,    0,  187,  187,    0,    0,
556       189,    0,  214,  214,  214,    0,  194,  193,  214,  214,
557         0,    0,  216,    0,    0,    0,  225,    0,    0,  227,
558         0,  240,    0,  232,  231,    0,  234,  233,    0,    0,
559
560       242,    0,  285,  285,  285,  285,    0,  259,  258,  285,
561         0,  247,  246,    0,    0,  285,  285,  285,  285,  285,
562       285,  285,    0,    0,  287,    0,    0,  302,  301,    0,
563       292,  291,    0,    0,  308,  308,  308,  308,    0,    0,
564       310,    0,  333,  333,  333,  333,    0,  315,  314,    0,
565         0,  333,  333,    0,    0,  335,    0,  346,    0,  340,
566       339,    0,    0,  348,    0,  361,    0,  353,  352,  361,
567         0,    0,  363,    0,  392,    0,  368,  367,  392,  392,
568       392,    0,    0,  394,    0,    0,    0,    0,    0,  409,
569         0,    0,  411,    0,    0,    0,    0,  430,  430,    0,
570
571         0,  430,    0,    0,  432,    0,  447,    0,  437,  436,
572         0,    0,  449,    0,    0,    0,    0,    0,    0,    0,
573       462,    0,    0,    0,  477,  477,    0,    0,    0,    0,
574       479,    0,  498,  498,  498,  498,  498,    0,    0,  500,
575         0,    0,  509,    0,    0,  511,    0,    0,  516,  515,
576         0,    0,  522,    0,    0,  527,  526,  533,    0,    0,
577       535,    0,    0,    0,  544,  538,    0,    0,    0,   23,
578         0,    0,    0,    0,    0,    0,    0,    0,  218,  191,
579         0,  365,    0,    0,  313,    0,    0,  524,    0,    0,
580         0,    0,    0,    0,    0,    0,    0,  312,    0,    0,
581
582         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
583        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
584        79,    0,  102,    0,    0,  102,    0,  129,    0,  130,
585         0,    0,    0,  219,  192,  366,  525,    0,    0,    0,
586         0,    0,    0,  146,  146,    0,    0,    0,  161,  161,
587         0,    0,    0,    0,    0,    0,  187,    0,  214,  214,
588         0,    0,  214,  214,    0,    0,    0,    0,    0,    0,
589         0,    0,    0,  285,  285,  285,  285,    0,    0,    0,
590       261,  260,  285,  285,  285,  285,  285,  285,  285,    0,
591         0,  304,  303,  308,  308,  308,  308,    0,  333,  333,
592
593       333,  333,    0,  323,  322,  333,  333,    0,  346,    0,
594       361,  361,    0,  392,  392,  392,  392,    0,    0,  401,
595       400,    0,  399,  398,  409,    0,  365,    0,  418,  417,
596       430,  430,    0,  416,  415,  430,    0,  447,    0,    0,
597       456,  455,    0,  454,  453,    0,    0,  469,  468,  477,
598       477,    0,  467,  466,    0,  498,    0,    0,  498,  498,
599       498,    0,    0,  509,    0,    0,  533,    0,    0,    0,
600         0,   12,    0,  541,  542,    0,   23,    0,    0,    0,
601         0,    0,    0,    0,    0,  191,    0,    0,  365,    0,
602       165,    0,  313,    0,    0,  524,    0,  396,    0,   39,
603
604         0,    0,    0,    0,    0,  312,    0,   38,    0,   30,
605        29,    0,    0,   43,   42,   49,    0,    0,   79,    0,
606        61,   60,   79,    0,   65,   64,   79,    0,  102,    0,
607         0,    0,    0,    0,    0,  129,    0,    0,    0,  192,
608         0,  366,  525,  397,    0,    0,    0,  397,  396,  146,
609         0,    0,    0,  140,  139,    0,  161,  161,    0,    0,
610       170,  169,    0,    0,  183,  182,  187,    0,  214,  214,
611         0,  198,  197,    0,    0,    0,    0,  214,    0,  166,
612         0,    0,  221,  220,    0,  226,    0,  236,  235,    0,
613       285,    0,    0,  285,  285,    0,  257,  256,    0,    0,
614
615       285,  285,  285,  285,  285,  285,    0,    0,    0,  308,
616       308,  308,    0,  333,    0,    0,  333,  333,    0,    0,
617       333,    0,  346,    0,  361,  361,    0,  392,  392,  392,
618         0,    0,  392,    0,  409,    0,    0,  430,  430,  430,
619         0,  447,    0,    0,  477,  477,    0,  498,    0,  484,
620       483,  498,  498,  498,    0,    0,    0,    0,    0,    0,
621         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
622         0,    0,    0,    0,    0,    0,  514,    0,    0,    0,
623       165,    0,    0,    0,   53,  396,  337,    0,   39,    0,
624       513,   52,    0,    0,    0,    0,   38,    0,    0,   49,
625
626         0,    0,   79,   79,   79,    0,  102,    0,    0,    0,
627         0,    0,    0,    0,    0,    0,   96,   95,    0,  129,
628         0,    0,    0,    0,  397,  338,    0,    0,    0,  146,
629         0,  138,  137,    0,  161,    0,    0,    0,    0,    0,
630         0,    0,  214,  214,    0,  196,  195,    0,    0,    0,
631       214,    0,  215,  166,    0,    0,  285,    0,  269,  268,
632         0,    0,  285,    0,  255,  254,    0,    0,  285,  285,
633       285,  285,    0,    0,    0,    0,  300,  299,    0,    0,
634       308,    0,    0,    0,  333,    0,  319,  318,    0,    0,
635       333,    0,  317,  316,  333,    0,  334,  346,    0,  361,
636
637       361,    0,  392,  392,  392,    0,    0,    0,  392,    0,
638       393,  409,    0,    0,    0,    0,    0,    0,  430,    0,
639       447,    0,    0,    0,    0,    0,    0,    0,  498,  498,
640       498,  498,    0,    0,    0,  505,  504,    0,    0,    0,
641       529,  528,    0,  534,    0,    0,    0,    0,    0,    0,
642         0,  413,    0,    0,    0,    0,  290,  245,  514,    0,
643        28,    0,    0,    0,  482,   53,  337,  150,    0,  513,
644        52,  289,  244,   27,  481,    0,    0,   49,    0,    0,
645        50,   79,    0,    0,   79,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647
648         0,  414,    0,    0,    0,    0,  338,  151,    0,    0,
649         0,    0,    0,    0,  155,  154,    0,    0,  175,    0,
650       181,  180,    0,  214,  214,    0,    0,  214,    0,    0,
651       285,    0,  271,  270,  285,    0,  249,  248,    0,    0,
652       285,  285,  285,    0,  251,  250,    0,    0,  294,  293,
653         0,    0,    0,  296,  295,    0,  333,    0,  321,  320,
654       333,  333,  346,    0,  361,    0,    0,    0,  392,    0,
655         0,  392,  392,    0,    0,  392,  409,    0,  410,    0,
656         0,  422,  421,    0,  420,  419,  430,    0,  447,    0,
657         0,    0,  473,  472,    0,  471,  470,    0,  498,  498,
658
659       498,  498,    0,    0,    0,    0,    0,    0,    0,   17,
660         0,   19,   18,    0,  413,  502,  350,    0,    0,  290,
661       245,    0,   28,  434,  178,   16,  482,  150,    0,    0,
662       289,  244,   27,  481,    0,    0,   49,  549,   79,    0,
663        67,   66,   79,    0,   80,    0,   98,   97,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665         0,    0,  414,  351,    0,    0,    0,  151,    0,    0,
666       142,  141,    0,    0,  157,  156,    0,    0,  214,  214,
667         0,    0,    0,    0,  214,  179,    0,  285,  285,    0,
668       253,  252,  285,  285,  285,    0,    0,  298,  297,    0,
669
670       333,  333,  333,  346,    0,  347,  361,    0,  357,  356,
671         0,  392,    0,  374,  373,  392,  392,    0,    0,    0,
672         0,  392,  409,  435,  430,    0,  447,    0,    0,    0,
673         0,    0,  498,  498,  498,    0,  503,    0,    0,  521,
674         0,    0,    0,   17,    0,  502,  350,    0,    0,  229,
675       434,  178,   16,    0,    0,    0,    0,   35,   49,    0,
676         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,  351,    0,    0,  230,    0,
679         0,    0,  162,    0,  214,  214,    0,  204,    0,  203,
680
681       214,  179,    0,  285,  285,    0,    0,  285,  285,    0,
682       286,    0,  309,  333,  333,  333,  346,    0,    0,    0,
683         0,    0,  392,  392,  392,    0,  378,    0,  377,  392,
684       409,  435,  430,    0,  431,    0,    0,    0,    0,    0,
685         0,  486,  485,    0,    0,  498,  498,    0,  499,  503,
686         0,    0,    0,    0,    0,   24,    0,    0,  229,    0,
687         0,    0,   49,    0,    0,    0,   79,    0,    0,    0,
688         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,  230,    0,    0,    0,  188,  214,
691
692       214,  206,  205,    0,    0,    0,  285,  285,    0,  281,
693       280,  285,    0,    0,  333,  333,    0,    0,  346,    0,
694       355,  354,    0,  362,    0,  370,  369,  392,  392,  392,
695       380,  379,    0,    0,  409,  430,    0,    0,    0,    0,
696       448,    0,    0,    0,  490,  489,    0,    0,    0,    0,
697         0,  510,    0,    0,    0,    0,  451,    0,    0,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
699         0,    0,    0,   88,    0,    0,    0,    0,   87,    0,
700         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,  452,    0,    0,  214,    0,
702
703         0,    0,  208,  207,    0,  241,  285,  285,  285,    0,
704       279,  278,  333,    0,    0,    0,  329,  328,    0,    0,
705       392,  392,  392,    0,  382,  381,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,  488,  487,    0,    0,    0,    0,  451,  133,
708         0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
709         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,  452,  134,
712         0,    0,    0,  214,    0,  210,  209,  285,  285,  285,
713
714       333,    0,  325,  324,    0,  342,  341,  392,    0,    0,
715       392,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,  464,  133,   84,   83,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
719         0,    0,    0,   93,    0,    0,    0,    0,    0,  111,
720       119,    0,    0,    0,    0,    0,  110,  118,    0,    0,
721       465,  134,    0,    0,  200,  199,  214,  285,  285,  285,
722       333,  392,    0,  376,  375,  392,    0,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,  439,    0,    0,  438,
724
725         0,  461,    0,    0,    0,    0,    0,    0,    0,    0,
726         0,    0,    0,  464,   84,   83,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,   63,   62,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
729         0,  112,    0,    0,  465,    0,  147,  214,  285,  285,
730         0,    0,  333,    0,    0,    0,    0,    0,    0,    0,
731         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
732         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,   75,   71,    0,    0,   74,   70,    0,   92,    0,
734         0,   91,    0,    0,    0,  103,    0,    0,    0,    0,
735
736         0,    0,    0,    0,  214,  285,  285,    0,    0,    0,
737       333,    0,  372,  371,    0,    0,    0,  405,    0,  404,
738         0,  426,    0,  425,    0,  441,  443,  440,  442,    0,
739       478,  492,    0,  491,    0,    0,    0,    0,   12,    0,
740        12,    0,    0,    0,    0,    0,   86,   90,   85,   89,
741       125,    0,    0,  123,  124,    0,    0,  122,  214,  285,
742       285,    0,    0,    0,    0,  333,    0,    0,    0,    0,
743       403,  402,  424,  423,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,    0,  115,    0,    0,  114,    0,
745         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,    0,    0,   69,    0,   68,    0,    0,
749       121,    0,  120,    0,  202,  201,    0,  277,  276,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,  327,
751       326,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,  494,  493,    0,   73,   72,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,  117,  116,    0,    0,    0,    0,
760         0,    0,  263,    0,    0,  262,    0,    0,  384,    0,
761         0,  383,    0,    0,    0,    0,    0,  267,    0,  266,
762         0,  386,    0,  385,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,  273,    0,  272,    0,
764         0,    0,    0,    0,    0,  275,  274,  265,  264,  388,
765       387,    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,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,   13,    0
775     } ;
776
777 static yyconst flex_int32_t yy_ec[256] =
778     {   0,
779         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
780         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
781         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
782         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
783         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
784        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
785        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
786        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
787        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
788        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
789
790        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
791        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
792        73,   74,    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         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800
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,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1
807     } ;
808
809 static yyconst flex_int32_t yy_meta[75] =
810     {   0,
811         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
812         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
813         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
814         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
815         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
816         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
817         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
818         5,    5,    5,    5
819     } ;
820
821 static yyconst flex_int16_t yy_base[3740] =
822     {   0,
823         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
824        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
825       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
826       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
827       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
828       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
829       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
830       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
831       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
832       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
833
834       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
835      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
836      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
837      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
838      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
839      1406, 1409, 1921, 1988, 1413, 1416, 2055, 2122, 1471, 1474,
840      2189, 2246, 1477, 1481, 2303, 2363, 1538, 1541, 2423, 2490,
841      1544, 1548, 1605, 1608, 1611, 1615, 1618, 1667, 2557, 2624,
842      1670, 1673, 1677, 1680, 1729, 1732, 1735, 1739, 2691, 2758,
843      1742, 1798, 1801, 1804, 1808, 1811, 1941, 1944, 2825, 2882,
844
845      1947, 1951, 2939, 3006, 1954, 2008, 2011, 2014, 2018, 2021,
846      2075, 2078, 3073, 3140, 2081, 2085, 2142, 2145, 2148, 2152,
847      2209, 2212, 3207, 3274, 2215, 2219, 2266, 2269, 2272, 2276,
848      2323, 2326, 3341, 3411, 2329, 2333, 3481, 3538, 2336, 2383,
849      2386, 2389, 2393, 2396, 2443, 2446, 3595, 3665, 2449, 2453,
850         0,    0, 8929,11972,11972,   95,  100,   29,   41,11972,
851       103,   51,11972,11972, 8918,11972,11972, 8907,11972, 8918,
852      8918,  202,11972,11972,11972,11972, 8916, 8912, 8867,  153,
853     11972,  161, 8893,    0,  145,11972, 8855,11972,  165, 3731,
854        73, 2462,  315,  357, 8895, 8842,11972,  168, 8881,    0,
855
856       152,11972, 8843,11972,  261, 8887,   31,11972,  266, 8874,
857         0,  245,11972, 8836, 8840, 8834,  421, 8839,11972,  269,
858      8865,    0,  340,11972, 8827, 8827,  271, 8829,  238,11972,
859       441,  484,11972,  504, 8853,    0,  401,11972, 8812, 8814,
860      8800,11972,  561,  548,11972,  571, 8845,    0,  481,11972,
861      8812, 8796,11972,  628, 3795, 8794,  163, 2456,  567,  206,
862        38, 8845,  954, 2465,  639,  907,  437,   79,11972,  634,
863      8283,    0,  546,11972, 8239, 8248, 8236, 8241,11972,  638,
864       313,  368,11972,  697, 8277,    0,  549,11972, 8233, 8243,
865      8221,11972,  704,  426,  497,11972,  707, 8272,    0,  747,
866
867     11972, 8239, 8240,11972,  767,  753,11972,  773, 8261,    0,
868       757,11972, 8231, 8205,11972,  831,  818,11972,  838, 8250,
869         0,  758,11972, 8199, 8204, 8209, 8196, 8186,11972,  841,
870       559,  825,  530,11972,  906, 8233,    0,  815,11972, 8202,
871     11972,  914,  891,11972,  977, 8226,    0,  953,11972, 8182,
872      8186, 8172,11972,  981,  965,11972, 1021, 8215,    0,  966,
873     11972, 8163,  203, 8157, 8167, 8168,   85,  311,  972,11972,
874      1040, 1025,11972, 1048, 8189,    0, 1026,11972, 8137, 8154,
875      8156,  157, 8154, 8129,11972, 1088, 1092,11972, 1105, 8177,
876         0, 1033,11972, 8121, 8119, 8125, 8124, 8126, 8108, 8102,
877
878     11972, 1112, 1154,11972, 1115, 8148,    0, 1089,11972, 8104,
879      8091,11972, 1118, 1160,11972, 1174, 8118,    0, 1090,11972,
880      8088, 8072, 8074,11972, 1180, 1228,11972, 1183, 8101,    0,
881      1158,11972, 8067, 8063, 8064,   15,11972, 1186,  564,  814,
882     11972, 1241, 8088,    0, 1225,11972, 8040,  181,11972, 1248,
883      1294,  367,  303,11972, 1305, 8085,    0, 1226,11972, 8029,
884      8024,  299,11972, 1309, 1224,  350,11972, 1365, 8074,    0,
885      1293,11972, 8034, 8038,11972, 1368, 1352,11972, 1372, 8059,
886         0, 1360,11972, 8011, 8007,11972, 1376, 1426,  424,11972,
887      1433, 8052,    0, 1418,11972, 8003, 7997, 8001,11972, 1438,
888
889      1436,  429,11972, 1503, 8045,    0, 1423,11972, 7990, 7988,
890      7993, 7986, 7974,11972, 1507, 1504,  560,  899,11972, 1510,
891      8021,    0, 1428,11972, 7990,11972, 1568, 1622,11972, 1574,
892      8010,    0, 1482,11972, 7973,11972, 1577,  963, 1007,11972,
893      1635, 7991,    0, 1496,11972, 7953, 7955,11972, 1638, 1623,
894      1697,  677, 7930,11972, 7973, 7958,11972,11972,11972, 1690,
895       253, 7909, 7898, 7896, 7943, 7902,11972,    0, 7894, 7891,
896      7904, 7875,  104, 1383, 7871, 7869, 7863, 7867,  621, 1636,
897       704, 7854, 7845, 1500, 1037, 7871, 1691, 7842, 1699, 7837,
898      1709, 1710, 1711,11972,    0, 7841, 7833,11972,    0, 7828,
899
900      2088, 7821,  666, 7817, 7860,11972,    0, 7817, 2155, 7805,
901      7827, 7799, 7808, 7788, 7788, 7771,11972,    0, 7776, 7757,
902      7769, 7739,11972,    0, 2222, 7737, 7778, 7759,  172, 7733,
903      7732, 7733, 1767, 1105, 7717, 1768, 7744,  707,  724,  814,
904       841, 1297, 1782, 1567,  888,11972,    0, 7720, 2279, 7728,
905      7698, 7700,11972,    0, 7704, 2456, 7700, 7692,11972,    0,
906      2514, 7696, 7695,11972,    0, 7693, 7685, 7687,11972,    0,
907      7697,  758, 2519, 7670, 7690, 7681,  889,11972,    0, 7675,
908      7679,11972,    0, 7657, 2525, 2577, 7664,11972,    0, 7660,
909      7654, 2580, 7635, 2583, 7631, 7617, 7634, 7633, 7611, 7630,
910
911      7627, 7620, 7618,11972,    0, 2586, 2589, 7599, 7595, 7604,
912      7604, 7600, 7598,11972,    0, 7599, 7595, 7579, 2644, 7572,
913      7560, 7579, 7562,11972,    0, 7559, 2647, 7544,11972,    0,
914      7547, 2650, 7539, 7549,11972,    0, 7536, 2653, 7528, 7542,
915      7540, 7527,11972,    0, 7518, 7533, 7510, 7504, 7511,11972,
916         0, 7492, 7509, 7501, 7490, 7527,11972,    0, 7481, 2656,
917      7485,11972,    0, 7476, 7491, 7475,11972,    0, 7456, 7473,
918      7468, 7462,11972,    0, 7449, 7433, 7439, 7447, 7444, 7428,
919      7416,11972,    0, 7421, 7430,11972,    0, 2711, 7420,11972,
920         0, 2714, 7410, 7404, 7447, 7451, 1537, 7398,11972, 1823,
921
922         0, 7393, 7388, 7433, 7428, 7381,11972, 7389, 7370, 2719,
923      2722, 1971, 7380, 7373, 7359, 7371, 7351, 7355, 7342, 7329,
924      7344, 7331, 7315, 7315, 7328, 7327, 7306, 7306, 7297, 7294,
925      7303, 7289, 7283, 1980, 7290, 7270, 7286, 7276, 7265, 7277,
926      7270, 2725, 2732, 7267, 2781, 2038, 7238, 7269, 2786, 2789,
927     11972, 7233, 2793, 2107, 2799, 7223, 2845, 7226, 7230, 7225,
928      2848, 2855, 7194, 7198, 7198, 2858, 2903, 2906, 2174, 7179,
929      2910, 2916, 2353, 7191, 7173, 7165, 7156, 7156, 7153, 7142,
930      7147, 2413, 7144, 7133, 7127, 7125, 7125, 2913, 2539, 7138,
931      7137, 2959, 2962, 7120, 2968, 2608, 7134, 2972, 3029, 2986,
932
933      2675, 7117, 3034, 3037, 7116, 7109, 3040, 3043, 7104, 7087,
934      7095, 3099, 2745, 7093, 7072, 3102, 3109, 7066, 7055, 7069,
935      3112, 3165, 7055, 3105, 2813, 3160, 2991, 3171, 3174, 7057,
936      1910, 3178, 3062, 7054, 3186, 3197, 3228, 7052, 7049, 7045,
937      7028, 7029, 7003, 7013, 3231, 3236, 3239, 3246, 3295, 3298,
938      3306, 3313, 3320, 3376, 3373, 3242, 3361, 7005,   37, 6995,
939      3365, 3387, 3432, 7006, 6967, 3309, 3444, 6968, 3435, 3395,
940      3439, 3458, 6980, 3501, 3463, 6974, 3504, 3511, 6974, 3507,
941      3471, 6960, 6934, 6930, 3514, 3560, 3563, 3567, 3570, 3573,
942      3618, 6934, 3621, 3641, 3630, 3644, 3633, 3686, 6938, 3694,
943
944      3652, 3697, 3700, 3712, 3725, 3730, 3735, 3743, 3757, 3764,
945      3738, 3769, 6929, 6911, 6908, 6910, 6897, 3799, 3802, 6897,
946      6881, 3808, 3811, 3775, 3823, 3833, 3837, 3845, 3863, 6880,
947      3871, 3876, 6925,11972,11972,  940, 6884,11972, 6922, 6921,
948      6869,11972,11972, 6850, 6845, 6854, 3879, 3882,11972, 3885,
949      1704, 6847, 6839, 6841, 6844, 6833, 6818, 6826, 1771, 6804,
950      6809, 6802, 6798, 6795, 6791, 6783, 1109, 6798, 6776, 6767,
951      6777, 6773, 6773, 2047, 6767, 6755, 6754, 6746, 1510, 6760,
952      3890, 3904, 3908,11972, 3911, 3914, 3917,11972,11972, 3933,
953      6784, 3936, 3941,11972, 3944, 6727, 3951,11972,11972, 3947,
954
955      3965, 3973, 3976, 3979, 6740, 3987, 6737, 3995, 3998,11972,
956      4001, 6735, 4005, 6732, 4008, 4023,11972, 4027, 4030,11972,
957     11972, 6726, 4038, 4042,11972, 4046, 6717, 6706, 6714, 2240,
958      6691, 6695, 1912, 6684, 6681, 6697, 6695, 6659, 6658, 6652,
959      4050,11972,11972, 6634, 4065, 4068, 4071,11972, 4075, 6640,
960      4083,11972,11972, 6661, 4078, 4097,11972, 4100, 4103,11972,
961     11972, 4111, 4119, 4122,11972, 4125, 4129, 4132, 4150, 4153,
962     11972, 4156, 6626, 6633, 4162, 4165,11972,11972, 6608, 6620,
963      4175, 4180,11972, 4183, 6604, 6577, 4186, 4189, 4194,11972,
964      4208, 4204, 4213,11972,11972, 4223,11972,11972, 4231, 4234,
965
966     11972, 4237, 6579, 6562, 6582, 6566, 4240,11972,11972, 4256,
967      4259,11972,11972, 4267, 4270, 6555, 6560, 6561, 6558, 6548,
968      6549, 6543, 4278, 4281,11972, 4285, 4288,11972,11972, 4304,
969     11972,11972, 4312, 4315, 6533, 6540, 6538, 6528, 4323, 4326,
970     11972, 4330, 6523, 6520, 6511, 6518, 4333,11972,11972, 4345,
971      4349, 6501, 6509, 4357, 4363,11972, 4366, 6505, 4369,11972,
972     11972, 4385, 4388,11972, 4391, 6484, 4394,11972,11972, 6492,
973      4410, 4413,11972, 4418, 6481, 4422,11972,11972, 6479, 6482,
974      6481, 4432, 4437,11972, 4441, 4444, 4447, 4462, 4468, 6480,
975      4476, 4480,11972, 4484, 6472, 4487, 4505, 6459, 6452, 4491,
976
977      4513, 6464, 4521, 4524,11972, 4527, 6464, 4530,11972,11972,
978      4546, 4552,11972, 4555, 4558, 4561, 4576, 4579, 4587, 4594,
979     11972, 4598, 4601, 4606, 6439, 6421, 4619, 4622, 4630, 4633,
980     11972, 4637, 6408, 4640, 6427, 6420, 6396, 4643, 4652,11972,
981      4662, 6385, 6394, 4665, 4671,11972, 4674, 4677,11972,11972,
982      4685, 4693,11972, 4696, 4700,11972,11972, 6389, 4708, 4715,
983     11972, 4718, 1013, 4728,11972,11972, 6409, 6408, 6366, 6350,
984      4737, 6330, 6336, 6307, 6268, 6259, 6250, 6258, 2297, 2549,
985      6243, 2552, 6188, 6184, 2616, 6191, 6164, 2619, 6153, 6161,
986      6140, 6109, 6083, 6047, 5994, 5948, 5897, 2683, 5797, 5759,
987
988      4740, 4758, 4743, 4749, 4767, 5744, 5715, 4775, 5686, 4780,
989     11972,11972, 4788, 4795, 4806,11972,11972, 5684, 4814, 4818,
990      5679, 4826, 5561, 4832, 4835, 4845, 4850, 5558, 4752,11972,
991      5541,   16,   22, 2686, 2863, 3000, 2753,  141,  269,  315,
992       332,  352,  386,  384, 4853, 4856, 4859, 4877,  416,  447,
993      4880, 4883, 4886, 4901, 4904, 4907,  448, 4915,  461,  470,
994      4922, 4925, 4934, 4945, 4948,  482,  490, 4952, 4956, 4970,
995      4973, 4977, 4985,  569, 4992,  575,  636, 4995, 4998, 5006,
996     11972,11972, 5015,  625,  680,  678,  693,  764,  759, 5018,
997      5021,11972,11972, 5029, 5033, 5037, 5040, 5043,  797, 5047,
998
999       824,  840, 5058,11972,11972, 5068,  854, 5071,  863, 5074,
1000       991, 1047, 5077, 1048, 1088, 1096, 5080, 5086, 5105,11972,
1001     11972, 5113,11972,11972, 1094, 5100, 3135, 5121,11972,11972,
1002      1139, 1171, 5129,11972,11972, 1166, 5137, 1173, 5144, 5147,
1003     11972,11972, 5156,11972,11972, 5167, 5170,11972,11972, 1201,
1004      1242, 5179,11972,11972, 5187, 1238, 5190, 5193, 1228, 1245,
1005      1255, 5202, 1244, 5208, 5211, 5215, 5221, 5226, 1402, 1311,
1006      5230,11972, 1335,11972,11972, 1319, 1337, 5235, 1346, 1372,
1007      1363, 1383, 1414, 1429, 1433, 2877, 1430, 1439, 3131, 1442,
1008      3265, 1485, 3269, 1491, 1488, 3332, 1497, 3404, 1528, 3533,
1009
1010      1529, 1540, 1571, 1572, 1593, 3368, 1579, 4495, 5239,11972,
1011     11972, 5254, 5257,11972,11972, 1606, 1638, 5268, 1618, 5273,
1012     11972,11972, 1627, 5289,11972,11972, 1620, 5282, 1624, 5301,
1013      2898, 2944, 5309, 5313, 5322, 1642, 1657, 1685, 1682, 3588,
1014      1707, 3624, 3761, 5327, 1713, 1727, 1742, 5330, 5333, 1749,
1015      5336, 5344, 5354,11972,11972, 5362, 1750, 5365, 5368, 5374,
1016     11972,11972, 5383, 5388,11972,11972, 5402, 5398, 1773, 1770,
1017      5406,11972,11972, 5420, 5423, 5431, 5434, 1785, 5442, 5445,
1018      1792, 5450,11972,11972, 5463,11972, 5466,11972,11972, 5474,
1019      1793, 5477, 5482, 5495, 1778, 5498,11972,11972, 5506, 5509,
1020
1021      5517, 1786, 1889, 1897, 1907, 5524, 5527, 5530, 5535, 5548,
1022      5551, 5554, 5557, 1914, 5560, 5572, 5580, 1904, 5583, 5587,
1023      1925, 5601, 1918, 5604, 1934, 1931, 5610, 1967, 1954, 1973,
1024      5613, 5625, 1976, 5633, 1965, 5636, 1982, 5639, 5642, 5645,
1025      5648, 1986, 5667, 5663, 5671, 5674, 5677, 1990, 5682,11972,
1026     11972, 2014, 2026, 2026, 5692, 2042, 5697, 5700, 5716, 5719,
1027      5722, 5725, 5744, 2077, 2100, 2167,11972, 2032, 5747, 5750,
1028      2047, 2046, 2055, 2143, 2050, 2055, 5753, 2081, 2100, 2093,
1029      5756, 2109, 2101, 2108, 5759, 5765, 5769, 2131, 5776, 2134,
1030      5779, 5782, 2120, 2139, 2175, 2162, 5785, 2180, 5788, 2181,
1031
1032      2212, 5791, 2175, 5795, 2182, 5798, 5801, 2223, 2226, 2255,
1033      2250, 2266, 2253, 2312, 2255, 5813,11972,11972, 5821, 5824,
1034      2242, 2234, 2321, 2245, 5827, 5830, 2266, 2323, 2324, 5833,
1035      5842,11972,11972, 5851, 5854, 5858, 5861, 5872, 5876, 5879,
1036      5882, 5891, 2291, 2303, 5898,11972,11972, 5906, 2322, 2343,
1037      2337, 5914,11972, 5917, 2347, 5921, 2346, 5926,11972,11972,
1038      5934, 5940, 2348, 5948,11972,11972, 5956, 5959, 5967, 2349,
1039      2360, 2355, 5970, 5974, 5988, 5991,11972,11972, 5999, 6003,
1040      6011, 6017, 6020, 6029, 2361, 6036,11972,11972, 6044, 6048,
1041      2372, 6056,11972,11972, 2365, 6064,11972, 2390, 6067, 2386,
1042
1043      6070, 6073, 2394, 6076, 2415, 6088, 2429, 2430, 2415, 6096,
1044     11972, 2419, 6099, 2409, 6102, 6105, 6123, 6126, 2424, 6135,
1045      2419, 6141, 6144, 6147, 6150, 6165, 6168, 6176, 2423, 2425,
1046      2419, 2432, 6179, 2450, 6184,11972,11972, 6198, 6202, 6206,
1047     11972,11972, 6217,11972, 2575, 2699, 2574, 2453, 6221, 6224,
1048      6232, 6245, 2457, 2479, 2495, 2472, 6251, 6256, 6259, 2477,
1049      6262, 2484, 2496, 2512, 6265, 6268, 6271, 6274, 2535, 6277,
1050      6280, 6283, 6286, 6289, 6292, 2543, 6297, 2550, 2567, 6300,
1051     11972, 2549, 6304, 6307, 2567, 6322, 6325, 6328, 2626, 2623,
1052      2624, 2630, 2624, 2633, 2634, 2634, 2645, 2639, 6336, 6343,
1053
1054      6349, 6357, 2630, 2668, 2657, 2669, 6361, 6364, 6367, 6370,
1055      6378, 6381, 6386, 6399,11972,11972, 6407, 6412,11972, 6415,
1056     11972,11972, 6426, 2672, 2672, 2772, 3024, 2681, 2691, 6431,
1057      2693, 6434,11972,11972, 2712, 6446,11972,11972, 6454, 6459,
1058      2728, 2717, 2726, 6468,11972,11972, 6476, 6480,11972,11972,
1059      6488, 6491, 6499,11972,11972, 6507, 2727, 6510,11972,11972,
1060      2730, 2748, 2743, 6518, 2758, 6521, 6526, 6541, 2764, 6544,
1061      6547, 2767, 2759, 3034, 3035, 2764, 2790, 6556,11972, 2791,
1062      6562,11972,11972, 6575,11972,11972, 2803, 6570, 2794, 6584,
1063      6589, 6592,11972,11972, 6604,11972,11972, 6612, 6616, 6622,
1064
1065      6626, 6634, 6640, 2795, 6644, 6647, 6652, 2917, 3069, 6655,
1066      6659,11972,11972, 6667, 6674, 6677, 6680, 2803, 2801, 6686,
1067      6694, 2814, 6697, 6700, 6706, 6709, 6712, 6715, 2806, 2814,
1068      6718, 6721, 6727, 6730, 2836, 6733, 2854,11972, 6736, 6739,
1069     11972,11972, 6747, 6754,11972, 6758,11972,11972, 2899, 2886,
1070      2907, 2906, 2942, 2953, 2943, 2958, 2964, 2972, 6766, 6769,
1071      6752, 6757, 6794, 6798, 2933, 2932, 2963, 6801, 2960, 6804,
1072     11972,11972, 6814, 6817,11972,11972, 6828, 6833, 2972, 2981,
1073      3008, 3044, 3028, 3047, 3014, 6836, 6839, 3015, 3040, 6843,
1074     11972,11972, 6852, 3033, 3045, 6861, 6864,11972,11972, 6872,
1075
1076      3042, 3064, 3068, 3070, 6875,11972, 6880, 6885,11972,11972,
1077      6894, 6900, 6903,11972,11972, 6913, 6918, 3099, 3121, 3103,
1078      3122, 6921, 3107, 6924, 3116, 6931, 6927, 6939, 6951, 6958,
1079      6954, 6963, 6973, 6980, 6983, 6986, 6991, 7001, 7005,11972,
1080      7008, 3146, 3203, 7013, 7020, 7016, 7027, 3107, 3103, 7035,
1081      7039, 7042, 7045, 3111, 3131, 3134, 7048,11972, 3129, 7051,
1082      7054, 3147, 3193, 3209, 3224, 3216, 3227, 3247, 3255, 3270,
1083      3258, 3280, 7062, 3259, 3269, 3271, 3264, 3269, 3300, 3313,
1084      3325, 3325, 3320, 3317, 3343, 7071, 3339, 3335, 7074, 3332,
1085      7077, 7081,11972, 7084, 3341, 3373, 3438,11972, 3436,11972,
1086
1087      7087, 7090, 7096, 3381, 3402, 7106, 7109, 3392, 7117, 7124,
1088     11972, 7127,11972, 3385, 3388, 7130, 3389, 7135, 7154, 7139,
1089      7148, 7162, 7170, 7173, 7176, 3457,11972, 3459,11972, 7179,
1090      3411, 7182, 3416, 7197,11972, 7200, 7203, 7211, 7218, 7223,
1091      7226,11972,11972, 7237, 7242, 7250, 7255, 7258,11972, 7261,
1092      7264, 3459, 3630, 3505, 7268,11972, 3443, 3469, 7273, 3459,
1093      3476, 3477, 7277, 7288, 3795, 4026, 3469, 3503, 3532, 3537,
1094      3556, 3573, 3553, 3565, 3564, 3572, 3602, 7296, 3549, 3561,
1095      3566, 3570, 3577, 3591, 3587, 3590, 3604, 3601, 3631, 3630,
1096      3634, 3625, 3638, 3656, 7299, 3646, 7302, 7305,11972, 3645,
1097
1098      7308,11972,11972, 7311, 7315, 7329, 3646, 3657, 7332,11972,
1099     11972, 3666, 7340, 7344, 3651, 7352, 7358, 7361, 7370, 7376,
1100     11972,11972, 7384,11972, 7388,11972,11972, 7396, 7399, 7403,
1101     11972,11972, 7406, 7410, 7424, 7427, 7430, 3749, 3835, 7438,
1102     11972, 7445, 7452, 7460,11972,11972, 7471, 7474, 7482, 7485,
1103      7494,11972, 3736, 3731, 3734, 3658, 7500, 3677, 3697, 3698,
1104      7503, 7514, 3731, 3734, 3799, 3737, 3782, 3836, 3761, 3813,
1105      3801, 3809, 3848,11972, 3870, 3855, 3853, 3859,11972, 7506,
1106      3836, 3845, 3849, 3865, 3874, 3876, 3881, 3865, 3882, 3885,
1107      3899, 3910, 3912, 3921, 3904, 7525, 3920, 7528, 7531, 7534,
1108
1109      7537, 7552,11972,11972, 7560,11972, 3936, 3923, 3936, 7563,
1110     11972,11972, 3946, 7571, 7579, 7591,11972,11972, 7599, 7602,
1111      7610, 7613, 7617, 7621,11972,11972, 7631, 7635, 7643, 7649,
1112      3977, 3978, 3979, 3981, 3983, 3983, 7657, 7661, 7669, 3997,
1113      4058, 7680,11972,11972, 4040, 4035, 7688, 3970, 7574, 7691,
1114      3969, 3970, 7694,11972,11972, 4035, 4030, 4058, 4066, 4075,
1115      4075, 4076, 4088, 7702, 4078, 4097, 4131, 4118, 4101, 4121,
1116      4135, 4124, 7709, 4079, 4082, 4098, 4155, 4166, 4152, 4120,
1117      4131, 4134, 4150, 4195, 4204, 4195, 4160, 4168, 7712, 7715,
1118      7720, 7723, 7729, 4176, 7741,11972,11972, 4177, 4185, 4174,
1119
1120      4194, 7749,11972,11972, 7759,11972,11972, 7767, 7772, 7775,
1121      7785, 7790, 4221, 4258, 7799, 4264, 4267, 4209, 4218, 4249,
1122      4221, 4232, 4269, 7807, 7810, 4265, 4270, 4270, 4285, 4302,
1123      7813, 7819, 7822, 7832, 7841, 7844, 7847, 4285, 4297, 4313,
1124      4301, 4306, 4318, 4320, 4318, 7850, 7853, 4333, 4333,11972,
1125      4344, 4347, 4349,11972, 4351, 7861, 4329, 4316, 4379,11972,
1126     11972, 4350, 4349, 4349, 4336, 4397,11972,11972, 4358, 4357,
1127      7864, 7868, 7871, 7880,11972,11972, 4353, 4361, 4366, 7890,
1128      4370, 7893, 7896,11972,11972, 7904, 4393, 4406, 4401, 4416,
1129      4418, 4429, 4422, 4433, 4427, 4441,11972, 4433, 4447,11972,
1130
1131      7911,11972, 7914, 4449, 4437, 4459, 4453, 4482, 7917, 7924,
1132      7936, 7967, 8014, 7944, 7947, 7950, 4476, 4499, 4506, 4473,
1133      4493, 4511, 4512, 4495, 7955,11972,11972, 4531, 4505, 4507,
1134      4533, 4513, 4518, 7978, 4486, 4502,11972, 4502, 4514, 4507,
1135      4508,11972, 4509, 4527, 7987, 7990,11972, 4526, 4527, 4541,
1136      7993, 7997, 4534, 8005, 8034, 8025, 8043, 4593, 4567, 4602,
1137      4574, 4610, 4580, 4618, 4590, 4624, 4642, 4640, 4642, 8051,
1138      4646, 4618, 4651, 4621, 4670, 8060, 4664, 4706, 8080, 8127,
1139      4657,11972,11972, 4654, 4679,11972,11972, 4669,11972, 4702,
1140      4708,11972, 4714, 4715, 8054,11972, 4721, 4684, 4681, 4731,
1141
1142      4741, 4716, 4713, 4765, 4722, 4727, 4712, 8100, 4761, 4767,
1143      4734, 8108,11972,11972, 8116, 4775, 4784,11972, 4787,11972,
1144      4787,11972, 4807,11972, 4810,11972,11972,11972,11972, 8073,
1145     11972,11972, 4803,11972, 4809, 4812, 4871, 4822, 4834, 4913,
1146      4836, 8138, 4835, 4840, 4852, 4843,11972,11972,11972,11972,
1147     11972, 4870, 4819,11972,11972, 4890, 4822,11972, 8147, 8150,
1148      8153, 4871, 4867, 4898, 4869, 8158, 4920, 4886, 4944, 4901,
1149     11972,11972,11972,11972, 4894, 4902, 8161, 4938, 4924, 4948,
1150      8176, 4961, 4947, 4961, 4960,11972, 4935, 4985,11972, 4954,
1151      4997, 8180, 8183, 8191, 8198, 8209, 8212, 4973, 4993, 5006,
1152
1153      4989, 5021, 5033, 8220, 8228, 5017, 5025, 5043, 5028, 5036,
1154      5070, 5053, 5055, 8223, 5076,11972, 5064,11972, 5067, 5059,
1155     11972, 5062,11972, 8238,11972,11972, 8246,11972,11972, 8254,
1156      5116, 5127, 5081, 5088, 5088, 5092, 5101, 5106, 8262,11972,
1157     11972, 5115, 5128, 5125, 5130, 5142, 5139, 5172, 5171, 5181,
1158     11972, 5178, 5177, 5142, 5152, 5198, 5192, 5222, 5218, 5219,
1159      5226, 5226, 5224, 5237, 5238, 5235, 5242, 5242, 5243, 5253,
1160      5255,11972,11972, 5267,11972,11972, 5241, 5243, 5257, 5277,
1161      5261, 5286, 5272, 5273, 5293, 5283, 5286, 5316, 5306, 5303,
1162      5324, 5314, 5311, 5329, 5339, 5355, 5353, 5336, 5336, 5344,
1163
1164      5351, 5369, 5361, 5401, 5387, 5377, 5407, 5393, 5383, 5422,
1165      5404, 5394, 5432, 5435,11972,11972, 5412, 5431, 5428, 5434,
1166      5457, 5438,11972, 5464, 5441,11972, 5476, 5454,11972, 5480,
1167      5457,11972, 5472, 5456, 5470, 5466, 5480,11972, 5490,11972,
1168      5491,11972, 5497,11972, 5498, 8270, 5509, 5534, 5516, 5536,
1169      5502, 5504, 5521, 5522, 8273, 5562,11972, 5560,11972, 5565,
1170      5563, 5574, 5579, 5577, 5598,11972,11972,11972,11972,11972,
1171     11972, 5639, 5642, 5672, 5819, 5678, 5745, 5578, 5606, 5580,
1172      5589, 5643, 5693, 5605, 5754, 5718, 5790, 5829, 5852, 5688,
1173      5787, 5848, 5879, 5846, 5869, 5662, 5786, 5911, 5928, 5927,
1174
1175      5944, 5913, 5990, 5935, 5964, 5959, 5968, 6033, 6041, 5984,
1176      6065, 5976, 6044, 6063, 6066, 6095, 6111, 6015, 6092, 6140,
1177      6156, 5936, 6114, 6102, 6174, 6121, 6175, 6178, 6277, 5885,
1178      6219, 6171, 6329, 6321, 6334, 6316, 6384, 6187, 6386, 6328,
1179      6373, 6387, 6402, 5991, 6433, 6221, 6294, 6446, 6447, 6097,
1180      6355, 6484, 6517, 6313, 6008, 8281, 8284,11972,11972, 8304,
1181      8313, 8322, 8331, 8340, 8349, 8358, 8367, 8376, 8385, 8394,
1182      8403, 8412, 8421, 8430, 8439, 8448, 8457, 8466, 8475, 8484,
1183      8493, 8502, 8511, 8520, 8529, 8538, 8547, 8556, 8565, 8574,
1184      8583, 8592, 8601, 8610, 8619, 8628, 8637, 8646, 8655, 8664,
1185
1186      8673, 8682, 8691, 8700, 8709, 8718, 8727, 8736, 8745, 8754,
1187      8763, 8772, 8781, 8790, 8799, 8808, 8817, 8826, 8835, 8844,
1188      8851, 8858, 8865, 8872, 8879, 8886, 8893, 8900, 8907, 8914,
1189      8921, 8928, 8935, 8942, 8949, 8956, 8963, 8970, 8977, 8984,
1190      8991, 8998, 9005, 9012, 9019, 9026, 9033, 9040, 9049, 9056,
1191      9061, 9068, 9073, 9080, 9085, 9092, 9097, 9104, 9109, 9116,
1192      9121, 9128, 9133, 9140, 9145, 9152, 9157, 9164, 9169, 9176,
1193      9181, 9188, 9193, 9200, 9205, 9212, 9217, 9224, 9229, 9236,
1194      9241, 9248, 9253, 9260, 9265, 9272, 9277, 9284, 9289, 9296,
1195      9301, 9308, 9313, 9320, 9325, 9332, 9337, 9344, 9349, 9356,
1196
1197      9361, 9368, 9373, 9380, 9385, 9394, 9400, 9407, 9415, 9422,
1198      9430, 9437, 9445, 9452, 9460, 9467, 9475, 9482, 9490, 9497,
1199      9505, 9512, 9520, 9527, 9535, 9542, 9550, 9557, 9565, 9572,
1200      9580, 9587, 9595, 9602, 9610, 9618, 9626, 9633, 9641, 9648,
1201      9656, 9663, 9671, 9678, 9686, 9694, 9702, 9710, 9718, 9725,
1202      9733, 9741, 9749, 9757, 9765, 9772, 9780, 9787, 9795, 9803,
1203      9810, 9818, 9827, 9833, 9840, 9848, 9856, 9864, 9872, 9880,
1204      9887, 9895, 9902, 9910, 9917, 9925, 9932, 9940, 9947, 9955,
1205      9963, 9971, 9979, 9987, 9994,10002,10010,10018,10026,10034,
1206     10041,10049,10056,10064,10071,10079,10086,10094,10101,10109,
1207
1208     10116,10124,10131,10139,10146,10154,10161,10169,10177,10184,
1209     10192,10199,10207,10214,10222,10230,10237,10245,10254,10263,
1210     10270,10278,10286,10293,10301,10308,10316,10323,10331,10338,
1211     10345,10353,10360,10368,10376,10383,10391,10398,10406,10414,
1212     10422,10429,10437,10445,10453,10460,10468,10475,10483,10490,
1213     10498,10505,10513,10520,10528,10535,10543,10550,10558,10566,
1214     10573,10581,10588,10596,10604,10612,10620,10628,10636,10645,
1215     10654,10661,10669,10677,10684,10692,10699,10707,10714,10722,
1216     10729,10736,10744,10751,10759,10767,10775,10783,10790,10798,
1217     10806,10813,10821,10829,10837,10844,10852,10859,10867,10874,
1218
1219     10882,10889,10897,10904,10912,10920,10928,10935,10943,10951,
1220     10959,10967,10974,10982,10990,10998,11006,11015,11024,11032,
1221     11040,11048,11055,11063,11070,11078,11086,11094,11102,11110,
1222     11118,11126,11134,11142,11150,11157,11165,11172,11180,11188,
1223     11196,11203,11210,11218,11225,11233,11240,11247,11255,11262,
1224     11270,11277,11285,11293,11301,11308,11316,11324,11332,11341,
1225     11350,11358,11366,11373,11380,11388,11396,11404,11412,11420,
1226     11427,11435,11442,11450,11458,11465,11472,11480,11487,11495,
1227     11502,11509,11516,11524,11531,11539,11547,11555,11563,11571,
1228     11579,11587,11596,11605,11613,11621,11628,11636,11644,11652,
1229
1230     11660,11668,11675,11683,11690,11698,11706,11713,11720,11728,
1231     11736,11744,11751,11758,11766,11774,11782,11790,11798,11806,
1232     11814,11822,11831,11840,11848,11855,11862,11870,11878,11886,
1233     11893,11901,11908,11917,11926,11935,11944,11953,11962
1234     } ;
1235
1236 static yyconst flex_int16_t yy_def[3740] =
1237     {   0,
1238      3260, 3260, 3261, 3261, 3261, 3261, 3262, 3262, 3263, 3263,
1239      3264, 3264, 3265, 3265, 3265, 3265, 3266, 3266, 3260, 3260,
1240      3267, 3267, 3268, 3268, 3268, 3268, 3260, 3260, 3268, 3268,
1241      3268, 3268, 3260, 3260, 3268, 3268, 3260, 3260, 3268, 3268,
1242      3268, 3268, 3269, 3269, 3270, 3270, 3260, 3260, 3270, 3270,
1243      3270, 3270, 3271, 3271, 3265, 3265, 3272, 3272, 3273, 3273,
1244      3274, 3274, 3275, 3275, 3276, 3276, 3277, 3277, 3277, 3277,
1245      3260, 3260, 3277, 3277, 3277, 3277, 3260, 3260, 3277, 3277,
1246      3277, 3277, 3260, 3260, 3277, 3277, 3260, 3260, 3277, 3277,
1247      3277, 3277, 3260, 3260, 3277, 3277, 3260, 3260, 3277, 3277,
1248
1249      3277, 3277, 3278, 3278, 3279, 3279, 3260, 3260, 3279, 3279,
1250      3279, 3279, 3280, 3280, 3281, 3281, 3260, 3260, 3281, 3281,
1251      3281, 3281, 3282, 3282, 3283, 3283, 3284, 3284, 3285, 3285,
1252      3286, 3286, 3287, 3287, 3260, 3260, 3287, 3287, 3287, 3287,
1253      3288, 3288, 3289, 3289, 3290, 3290, 3291, 3291, 3259,  149,
1254      3292, 3292, 3293, 3293, 3294, 3294, 3295, 3295, 3296, 3296,
1255      3297, 3297, 3298, 3298, 3299, 3299, 3300, 3300, 3301, 3301,
1256      3302, 3302, 3260, 3260, 3302, 3302, 3302, 3302, 3303, 3303,
1257      3304, 3304, 3260, 3260, 3304, 3304, 3304, 3304, 3305, 3305,
1258      3306, 3306, 3260, 3260, 3306, 3306, 3306, 3306, 3307, 3307,
1259
1260      3308, 3308, 3309, 3309, 3310, 3310, 3260, 3260, 3310, 3310,
1261      3310, 3310, 3311, 3311, 3312, 3312, 3260, 3260, 3312, 3312,
1262      3312, 3312, 3313, 3313, 3314, 3314, 3260, 3260, 3314, 3314,
1263      3314, 3314, 3315, 3315, 3316, 3316, 3317, 3317, 3318, 3318,
1264      3260, 3260, 3318, 3318, 3318, 3318, 3319, 3319, 3320, 3320,
1265      3260, 3260, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1266      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1267      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1268      3259, 3259, 3259, 3321, 3259, 3259, 3321, 3259, 3259, 3259,
1269       290,  290,  292,  290,  293,  293, 3259, 3259, 3259, 3322,
1270
1271      3259, 3259, 3322, 3259, 3259,  294,  293, 3259, 3259, 3259,
1272      3323, 3259, 3259, 3323, 3323, 3323, 3259, 3259, 3259, 3259,
1273      3259, 3324, 3259, 3259, 3324, 3324, 3324, 3324, 3324, 3259,
1274      3259, 3259, 3259, 3259, 3259, 3325, 3259, 3259, 3325, 3325,
1275      3325, 3259, 3259, 3259, 3259, 3259, 3259, 3326, 3259, 3259,
1276      3326, 3326, 3259, 3259, 3259,  355,  293,  293,  294,  359,
1277       358,  358,  358,  358,  359,  365,  363,  363, 3259, 3259,
1278      3259, 3327, 3259, 3259, 3327, 3327, 3327, 3327, 3259, 3259,
1279       293,  293, 3259, 3259, 3259, 3328, 3259, 3259, 3328, 3328,
1280      3328, 3259, 3259,  293,  293, 3259, 3259, 3259, 3329, 3259,
1281
1282      3259, 3329, 3329, 3259, 3259, 3259, 3259, 3259, 3259, 3330,
1283      3259, 3259, 3330, 3330, 3259, 3259, 3259, 3259, 3259, 3259,
1284      3331, 3259, 3259, 3331, 3331, 3331, 3331, 3331, 3259, 3259,
1285       293,  293,  293, 3259, 3259, 3259, 3332, 3259, 3259, 3332,
1286      3259, 3259, 3259, 3259, 3259, 3259, 3333, 3259, 3259, 3333,
1287      3333, 3333, 3259, 3259, 3259, 3259, 3259, 3259, 3334, 3259,
1288      3259, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3259,
1289      3259, 3259, 3259, 3259, 3259, 3335, 3259, 3259, 3335, 3335,
1290      3335, 3335, 3335, 3335, 3259, 3259, 3259, 3259, 3259, 3259,
1291      3336, 3259, 3259, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
1292
1293      3259, 3259, 3259, 3259, 3259, 3259, 3337, 3259, 3259, 3337,
1294      3337, 3259, 3259, 3259, 3259, 3259, 3259, 3338, 3259, 3259,
1295      3338, 3338, 3338, 3259, 3259, 3259, 3259, 3259, 3259, 3339,
1296      3259, 3259, 3339, 3339, 3339, 3339, 3259, 3259,  293,  293,
1297      3259, 3259, 3259, 3340, 3259, 3259, 3340, 3340, 3259, 3259,
1298       293,  363,  363, 3259, 3259, 3259, 3341, 3259, 3259, 3341,
1299      3341, 3341, 3259, 3259,  363,  363, 3259, 3259, 3259, 3342,
1300      3259, 3259, 3342, 3342, 3259, 3259, 3259, 3259, 3259, 3259,
1301      3343, 3259, 3259, 3343, 3343, 3259, 3259,  363,  363, 3259,
1302      3259, 3259, 3344, 3259, 3259, 3344, 3344, 3344, 3259, 3259,
1303
1304       363,  363, 3259, 3259, 3259, 3345, 3259, 3259, 3345, 3345,
1305      3345, 3345, 3345, 3259, 3259,  293,  432,  293, 3259, 3259,
1306      3259, 3346, 3259, 3259, 3346, 3259, 3259, 3259, 3259, 3259,
1307      3259, 3347, 3259, 3259, 3347, 3259, 3259,  293,  293, 3259,
1308      3259, 3259, 3348, 3259, 3259, 3348, 3348, 3259, 3259, 3259,
1309      3259, 3349, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1310      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3350, 3350, 3351,
1311      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1312      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1313      3259, 3259, 3259, 3259, 3352, 3352, 3353, 3259, 3354, 3354,
1314
1315      3354, 3354, 3259, 3355, 3259, 3259, 3356, 3356, 3356, 3356,
1316      3356, 3356, 3356, 3356, 3356, 3357, 3259, 3358, 3358, 3358,
1317      3358, 3359, 3259, 3360, 3360, 3360, 3361, 3259, 3259, 3259,
1318      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1319      3259, 3259, 3259, 3259, 3259, 3259, 3362, 3362, 3362, 3362,
1320      3362, 3363, 3259, 3364, 3364, 3364, 3364, 3365, 3259, 3366,
1321      3366, 3366, 3367, 3259, 3368, 3368, 3368, 3369, 3259, 3370,
1322      3370, 3370, 3370, 3370, 3370, 3371, 3259, 3259, 3372, 3372,
1323      3373, 3259, 3374, 3374, 3374, 3374, 3375, 3259, 3376, 3376,
1324      3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
1325
1326      3376, 3376, 3377, 3259, 3378, 3378, 3378, 3378, 3378, 3378,
1327      3378, 3378, 3379, 3259, 3380, 3380, 3380, 3380, 3380, 3380,
1328      3380, 3380, 3381, 3259, 3382, 3382, 3382, 3383, 3259, 3384,
1329      3384, 3384, 3384, 3385, 3259, 3386, 3386, 3386, 3386, 3386,
1330      3386, 3387, 3259, 3388, 3388, 3388, 3388, 3389, 3259, 3259,
1331      3390, 3390, 3390, 3390, 3390, 3391, 3259, 3392, 3392, 3392,
1332      3393, 3259, 3394, 3394, 3394, 3395, 3259, 3396, 3396, 3396,
1333      3396, 3397, 3259, 3398, 3398, 3398, 3398, 3398, 3398, 3399,
1334      3259, 3259, 3400, 3400, 3401, 3259, 3402, 3402, 3403, 3259,
1335      3404, 3404, 3404, 3405, 3406, 3259, 3406, 3259, 3259, 3259,
1336
1337      3407, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3408, 3409,
1338      3409, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1339      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1340      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1341      3410, 3411, 3411, 3412, 3259, 3259, 3412, 3259, 3413, 3413,
1342      3259, 3414, 3259, 3259, 3414, 3414, 3414, 3414, 3414, 3414,
1343      3415, 3415, 3416, 3416, 3416, 3417, 3417, 3259, 3259, 3418,
1344      3419, 3419, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1345      3259, 3259, 3259, 3259, 3259, 3259, 3420, 3259, 3259, 3420,
1346      3420, 3421, 3421, 3422, 3259, 3259, 3422, 3423, 3423, 3259,
1347
1348      3259, 3424, 3425, 3425, 3426, 3426, 3427, 3427, 3428, 3428,
1349      3428, 3259, 3259, 3428, 3428, 3429, 3429, 3259, 3259, 3430,
1350      3431, 3431, 3432, 3259, 3259, 3259, 3259, 3433, 3433, 3434,
1351      3434, 3259, 3259, 3434, 3259, 3259, 3434, 3434, 3434, 3434,
1352      3434, 3434, 3434, 3434, 3435, 3435, 3259, 3259, 3259, 3259,
1353      3436, 3436, 3436, 3436, 3436, 3437, 3437, 3438, 3438, 3438,
1354      3259, 3259, 3438, 3438, 3438, 3439, 3439, 3440, 3259, 3259,
1355      3441, 3441, 3442, 3259, 3259, 3442, 3443, 3443, 3444, 3259,
1356      3259, 3444, 3444, 3444, 3445, 3445, 3446, 3446, 3446, 3447,
1357      3447, 3259, 3448, 3448, 3448, 3448, 3449, 3449, 3450, 3259,
1358
1359      3259, 3451, 3451, 3452, 3452, 3453, 3453, 3454, 3454, 3454,
1360      3455, 3455, 3456, 3456, 3456, 3456, 3456, 3457, 3457, 3259,
1361      3458, 3459, 3459, 3259, 3259, 3460, 3460, 3259, 3259, 3461,
1362      3462, 3462, 3463, 3259, 3259, 3463, 3259, 3259, 3464, 3259,
1363      3259, 3259, 3259, 3259, 3259, 3465, 3259, 3466, 3259, 3466,
1364      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1365      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1366      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1367      3467, 3259, 3468, 3259, 3468, 3469, 3259, 3259, 3259, 3469,
1368      3259, 3259, 3470, 3259, 3470, 3471, 3259, 3259, 3259, 3259,
1369
1370      3259, 3471, 3259, 3259, 3471, 3471, 3471, 3259, 3472, 3259,
1371      3472, 3473, 3473, 3473, 3259, 3474, 3259, 3474, 3259, 3259,
1372      3259, 3475, 3259, 3476, 3259, 3476, 3259, 3259, 3259, 3259,
1373      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3477,
1374      3259, 3259, 3259, 3477, 3477, 3259, 3478, 3259, 3478, 3479,
1375      3259, 3259, 3259, 3479, 3259, 3480, 3259, 3480, 3259, 3259,
1376      3259, 3481, 3259, 3482, 3259, 3482, 3483, 3483, 3259, 3484,
1377      3259, 3484, 3485, 3485, 3485, 3259, 3259, 3259, 3485, 3485,
1378      3259, 3486, 3259, 3486, 3259, 3259, 3487, 3259, 3488, 3259,
1379      3488, 3489, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3490,
1380
1381      3259, 3490, 3491, 3491, 3491, 3491, 3259, 3259, 3259, 3491,
1382      3259, 3259, 3259, 3259, 3259, 3491, 3491, 3491, 3491, 3491,
1383      3491, 3491, 3259, 3492, 3259, 3492, 3259, 3259, 3259, 3259,
1384      3259, 3259, 3259, 3259, 3493, 3493, 3493, 3493, 3259, 3494,
1385      3259, 3494, 3495, 3495, 3495, 3495, 3259, 3259, 3259, 3259,
1386      3259, 3495, 3495, 3259, 3496, 3259, 3496, 3497, 3259, 3259,
1387      3259, 3259, 3498, 3259, 3498, 3499, 3259, 3259, 3259, 3499,
1388      3259, 3500, 3259, 3500, 3501, 3259, 3259, 3259, 3501, 3501,
1389      3501, 3259, 3502, 3259, 3502, 3259, 3259, 3259, 3259, 3503,
1390      3259, 3504, 3259, 3504, 3259, 3259, 3259, 3505, 3505, 3259,
1391
1392      3259, 3505, 3259, 3506, 3259, 3506, 3507, 3259, 3259, 3259,
1393      3259, 3508, 3259, 3508, 3259, 3259, 3259, 3259, 3259, 3509,
1394      3259, 3509, 3259, 3259, 3510, 3510, 3259, 3259, 3259, 3511,
1395      3259, 3511, 3512, 3512, 3512, 3512, 3512, 3259, 3513, 3259,
1396      3513, 3259, 3514, 3259, 3515, 3259, 3515, 3259, 3259, 3259,
1397      3259, 3516, 3259, 3516, 3259, 3259, 3259, 3517, 3259, 3518,
1398      3259, 3518, 3519, 3520, 3259, 3259, 3259, 3259, 3259, 3521,
1399      3522, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1400      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1401      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1402
1403      3259, 3259, 3523, 3259, 3259, 3524, 3259, 3525, 3526, 3259,
1404      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3526, 3259, 3259,
1405      3526, 3527, 3528, 3259, 3259, 3528, 3529, 3530, 3259, 3259,
1406      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1407      3259, 3259, 3259, 3531, 3531, 3259, 3259, 3532, 3533, 3533,
1408      3534, 3259, 3259, 3535, 3259, 3259, 3536, 3537, 3538, 3538,
1409      3259, 3259, 3538, 3538, 3539, 3259, 3259, 3259, 3259, 3540,
1410      3259, 3259, 3541, 3542, 3542, 3542, 3542, 3259, 3259, 3259,
1411      3259, 3259, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3543,
1412      3259, 3259, 3259, 3544, 3544, 3544, 3544, 3545, 3546, 3546,
1413
1414      3546, 3546, 3259, 3259, 3259, 3546, 3546, 3547, 3548, 3549,
1415      3550, 3550, 3551, 3552, 3552, 3552, 3552, 3553, 3259, 3259,
1416      3259, 3259, 3259, 3259, 3554, 3555, 3259, 3259, 3259, 3259,
1417      3556, 3556, 3259, 3259, 3259, 3556, 3557, 3558, 3559, 3259,
1418      3259, 3259, 3259, 3259, 3259, 3560, 3259, 3259, 3259, 3561,
1419      3561, 3259, 3259, 3259, 3562, 3563, 3259, 3259, 3563, 3563,
1420      3563, 3564, 3259, 3565, 3566, 3567, 3568, 3569, 3570, 3571,
1421      3571, 3259, 3571, 3259, 3259, 3259, 3572, 3573, 3259, 3259,
1422      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1423      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1424
1425      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1426      3259, 3574, 3259, 3259, 3259, 3575, 3259, 3576, 3577, 3259,
1427      3259, 3259, 3577, 3259, 3259, 3259, 3577, 3578, 3579, 3259,
1428      3259, 3259, 3259, 3259, 3580, 3581, 3259, 3259, 3259, 3259,
1429      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3582,
1430      3259, 3259, 3259, 3259, 3259, 3583, 3584, 3584, 3585, 3259,
1431      3259, 3259, 3586, 3259, 3259, 3259, 3587, 3588, 3589, 3589,
1432      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3589, 3590, 3259,
1433      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3591,
1434      3592, 3259, 3259, 3592, 3592, 3259, 3259, 3259, 3259, 3259,
1435
1436      3592, 3592, 3592, 3592, 3592, 3592, 3593, 3259, 3259, 3594,
1437      3594, 3594, 3595, 3596, 3259, 3259, 3596, 3596, 3259, 3259,
1438      3596, 3597, 3598, 3599, 3600, 3600, 3601, 3602, 3602, 3602,
1439      3259, 3259, 3602, 3603, 3604, 3605, 3259, 3606, 3606, 3606,
1440      3607, 3608, 3609, 3610, 3611, 3611, 3612, 3613, 3259, 3259,
1441      3259, 3613, 3613, 3613, 3614, 3259, 3259, 3259, 3615, 3616,
1442      3259, 3259, 3617, 3618, 3619, 3619, 3259, 3259, 3620, 3621,
1443      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1444      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1445      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3622, 3623,
1446
1447      3259, 3624, 3625, 3625, 3625, 3626, 3627, 3259, 3259, 3259,
1448      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3628, 3629,
1449      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3630,
1450      3259, 3259, 3259, 3631, 3632, 3259, 3259, 3633, 3634, 3259,
1451      3259, 3635, 3636, 3636, 3259, 3259, 3259, 3259, 3259, 3259,
1452      3636, 3259, 3259, 3259, 3259, 3637, 3638, 3259, 3259, 3259,
1453      3259, 3259, 3638, 3259, 3259, 3259, 3259, 3259, 3638, 3638,
1454      3638, 3638, 3259, 3259, 3639, 3259, 3259, 3259, 3259, 3259,
1455      3640, 3259, 3259, 3641, 3642, 3259, 3259, 3259, 3259, 3259,
1456      3642, 3259, 3259, 3259, 3642, 3259, 3259, 3643, 3644, 3645,
1457
1458      3645, 3646, 3647, 3647, 3647, 3259, 3259, 3259, 3647, 3259,
1459      3259, 3648, 3649, 3259, 3259, 3259, 3259, 3259, 3650, 3651,
1460      3652, 3653, 3654, 3259, 3259, 3259, 3259, 3655, 3656, 3656,
1461      3656, 3656, 3657, 3259, 3259, 3259, 3259, 3658, 3659, 3259,
1462      3259, 3259, 3259, 3259, 3660, 3661, 3661, 3259, 3259, 3259,
1463      3662, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1464      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1465      3259, 3259, 3259, 3259, 3259, 3259, 3663, 3664, 3259, 3259,
1466      3259, 3665, 3259, 3259, 3665, 3666, 3259, 3259, 3259, 3259,
1467      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3667, 3259,
1468
1469      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1470      3668, 3259, 3259, 3259, 3259, 3259, 3669, 3259, 3259, 3259,
1471      3259, 3259, 3670, 3671, 3671, 3259, 3259, 3671, 3259, 3672,
1472      3673, 3259, 3259, 3259, 3673, 3259, 3259, 3259, 3259, 3259,
1473      3673, 3673, 3673, 3259, 3259, 3259, 3674, 3259, 3259, 3259,
1474      3259, 3259, 3259, 3259, 3259, 3675, 3676, 3259, 3259, 3259,
1475      3676, 3676, 3677, 3678, 3679, 3259, 3259, 3680, 3681, 3259,
1476      3259, 3681, 3681, 3259, 3259, 3681, 3682, 3259, 3259, 3259,
1477      3259, 3259, 3259, 3259, 3259, 3259, 3683, 3684, 3685, 3686,
1478      3687, 3259, 3259, 3259, 3259, 3259, 3259, 3688, 3689, 3689,
1479
1480      3689, 3689, 3690, 3259, 3691, 3692, 3693, 3694, 3694, 3259,
1481      3259, 3259, 3259, 3695, 3259, 3259, 3259, 3259, 3259, 3259,
1482      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1483      3259, 3259, 3259, 3259, 3259, 3696, 3697, 3259, 3698, 3259,
1484      3259, 3259, 3698, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1485      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3699, 3259,
1486      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1487      3259, 3259, 3700, 3259, 3259, 3259, 3701, 3702, 3703, 3703,
1488      3259, 3259, 3259, 3259, 3703, 3259, 3704, 3705, 3705, 3259,
1489      3259, 3259, 3705, 3705, 3705, 3706, 3259, 3259, 3259, 3707,
1490
1491      3708, 3708, 3708, 3709, 3259, 3259, 3710, 3259, 3259, 3259,
1492      3711, 3712, 3259, 3259, 3259, 3712, 3712, 3259, 3259, 3259,
1493      3259, 3712, 3713, 3259, 3714, 3715, 3716, 3717, 3718, 3719,
1494      3259, 3259, 3720, 3720, 3720, 3721, 3259, 3722, 3259, 3259,
1495      3723, 3724, 3724, 3259, 3725, 3259, 3259, 3259, 3259, 3259,
1496      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3726, 3259,
1497      3259, 3727, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1498      3259, 3259, 3728, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1499      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1500      3729, 3259, 3259, 3730, 3731, 3731, 3259, 3259, 3259, 3259,
1501
1502      3731, 3259, 3732, 3733, 3733, 3259, 3259, 3733, 3733, 3259,
1503      3259, 3259, 3259, 3708, 3708, 3708, 3709, 3259, 3259, 3711,
1504      3259, 3259, 3712, 3712, 3712, 3259, 3259, 3259, 3259, 3712,
1505      3713, 3259, 3714, 3259, 3259, 3259, 3259, 3717, 3718, 3719,
1506      3259, 3259, 3259, 3259, 3259, 3720, 3720, 3259, 3259, 3259,
1507      3722, 3723, 3724, 3724, 3259, 3259, 3259, 3259, 3259, 3259,
1508      3259, 3259, 3726, 3259, 3259, 3259, 3727, 3259, 3259, 3259,
1509      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3728, 3259, 3259,
1510      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1511      3259, 3259, 3259, 3259, 3259, 3259, 3729, 3259, 3259, 3731,
1512
1513      3731, 3259, 3259, 3259, 3259, 3732, 3733, 3733, 3259, 3259,
1514      3259, 3733, 3259, 3259, 3708, 3708, 3259, 3259, 3709, 3259,
1515      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3712, 3712, 3712,
1516      3259, 3259, 3259, 3259, 3713, 3714, 3259, 3259, 3259, 3259,
1517      3259, 3718, 3719, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1518      3259, 3259, 3723, 3724, 3724, 3259, 3259, 3259, 3259, 3259,
1519      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3727, 3259,
1520      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3728,
1521      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1522      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3729, 3731, 3259,
1523
1524      3259, 3259, 3259, 3259, 3259, 3259, 3733, 3733, 3733, 3259,
1525      3259, 3259, 3708, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1526      3712, 3712, 3712, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1527      3259, 3259, 3259, 3259, 3259, 3259, 3718, 3719, 3259, 3259,
1528      3259, 3259, 3259, 3259, 3723, 3724, 3724, 3259, 3259, 3259,
1529      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1530      3259, 3259, 3259, 3727, 3259, 3259, 3259, 3259, 3259, 3259,
1531      3259, 3259, 3728, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1532      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1533      3729, 3259, 3259, 3731, 3259, 3259, 3259, 3733, 3733, 3733,
1534
1535      3708, 3259, 3259, 3259, 3259, 3259, 3259, 3712, 3259, 3259,
1536      3712, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1537      3259, 3259, 3259, 3718, 3719, 3259, 3259, 3259, 3259, 3723,
1538      3724, 3724, 3724, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1539      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1540      3259, 3259, 3259, 3259, 3259, 3728, 3259, 3259, 3259, 3259,
1541      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1542      3259, 3259, 3729, 3259, 3259, 3259, 3731, 3733, 3733, 3733,
1543      3708, 3712, 3259, 3259, 3259, 3712, 3259, 3259, 3259, 3259,
1544      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1545
1546      3259, 3259, 3719, 3259, 3259, 3259, 3259, 3723, 3724, 3724,
1547      3724, 3734, 3735, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1548      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1549      3259, 3259, 3259, 3728, 3259, 3259, 3259, 3259, 3259, 3259,
1550      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3731, 3733, 3733,
1551      3259, 3259, 3708, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1552      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3719,
1553      3259, 3259, 3259, 3259, 3723, 3724, 3736, 3737, 3734, 3735,
1554      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1555      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1556
1557      3259, 3259, 3259, 3259, 3731, 3733, 3733, 3259, 3259, 3259,
1558      3708, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1559      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1560      3259, 3259, 3259, 3259, 3259, 3723, 3736, 3724, 3738, 3737,
1561      3739, 3724, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1562      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3731, 3733,
1563      3733, 3259, 3259, 3259, 3259, 3708, 3259, 3259, 3259, 3259,
1564      3259, 3259, 3259, 3259, 3259, 3259, 3723, 3738, 3259, 3739,
1565      3724, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1566      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1567
1568      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1569      3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259,
1570      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1571      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1572      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3723,
1573      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1574      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1575      3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259,
1576      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1577      3259, 3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259,
1578
1579      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1580      3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259,
1581      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1582      3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1583      3259, 3259, 3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259,
1584      3259, 3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259,
1585      3259, 3259, 3259, 3723, 3723, 3259, 3259, 3259, 3259, 3259,
1586      3259, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1587      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1588      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1589
1590      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1591      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1592      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1593      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1594      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1595      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3259,    0, 3259,
1596      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1597      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1598      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1599      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1600
1601      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1602      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1603      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1604      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1605      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1606      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1607      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1608      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1609      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1610      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1611
1612      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1613      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1614      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1615      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1616      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1617      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1618      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1619      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1620      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1621      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1622
1623      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1624      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1625      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1626      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1627      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1628      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1629      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1630      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1631      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1632      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1633
1634      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1635      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1636      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1637      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1638      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1639      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1640      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1641      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1642      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1643      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1644
1645      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1646      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1647      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1648      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259
1649     } ;
1650
1651 static yyconst flex_int16_t yy_nxt[12047] =
1652     {   0,
1653      3259,  256,  257,  256,  256,  257,  256,  256,  257,  256,
1654       256,  257,  256,  261,  257,  261,  267,  258,  264,  267,
1655       258,  264, 3259,  259, 3259,  265,  259, 3259,  265,  262,
1656       261,  257,  261,  652,  268,  270,  271,  268,  270,  271,
1657       272,  273,  697,  272,  273,  652,  262,  277,  278,  653,
1658       274,  270,  271,  274,  275,  655,  272,  270,  271,  686,
1659       275,  654,  272,  277,  278, 1738,  274,  257,  257,  257,
1660       840,  654,  274,  257,  257,  257,  289,  257,  289,  289,
1661       257,  289,  841,  280,  289,  257,  289,  673, 1739,  280,
1662       727,  279,  290, 1344,  689,  290,  651,  651,  651, 1345,
1663
1664       291,  651,  651,  651,  651,  651,  651,  279,  281,  282,
1665       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1666       281,  281,  281,  684,  281,  285,  281,  286,  281,  289,
1667       257,  289,  257,  257,  257,  257,  257,  257,  685,  289,
1668       257,  289,  289,  257,  289,  291,  690,  796,  292,  655,
1669       797,  292,  914,  281,  281,  290,  655,  655,  290,  289,
1670       257,  289,  651,  651,  651,  654,  651,  651,  651,  651,
1671       651,  651,  654,  654, 3259,  293,  915,  287,  281,  282,
1672       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1673       281,  281,  281, 1744,  281,  285,  281,  286,  281,  289,
1674
1675       257,  289,  257,  257,  257,  257,  257,  257,  660,  289,
1676       257,  289,  289,  257,  289,  293,  666,  727,  294,  809,
1677       974,  294,  810,  281,  281,  291,  736,  728,  291,  257,
1678       257,  257,  257,  257,  257,  289,  257,  289,  289,  257,
1679       289,  289,  257,  289,  975,  295,  846,  287,  295,  655,
1680       661,  293,  791,  847,  293,  740,  662,  296,  289,  257,
1681       289,  663,  651,  651,  651,  654,  664,  651,  651,  651,
1682       651,  651,  651,  792,  296,  297,  298,  257,  298,  297,
1683       297,  297,  297,  297,  297,  297,  299,  297,  297,  297,
1684       714,  297,  301,  297,  302,  297,  305,  257,  305,  305,
1685
1686       257,  305,  257,  257,  257,  715,  257,  257,  257,  305,
1687       257,  305,  306,  902,  848,  306,  903, 1745,  294,  710,
1688       297,  297,  294,  711,  752,  306,  670,  712,  303,  297,
1689       298,  257,  298,  297,  297,  297,  297,  297,  297,  297,
1690       299,  297,  297,  297,  655,  297,  301,  297,  302,  297,
1691       305,  257,  305,  305,  257,  305,  305,  257,  305,  798,
1692       654,  856,  270,  271,  854,  691,  306,  272, 3259,  307,
1693       690,  855,  307,  799,  297,  297,  736,  317,  692,  752,
1694       685, 1746,  303,  308,  309,  257,  309,  308,  308,  308,
1695       308,  308,  308,  308,  310,  308,  308,  308, 1747,  308,
1696
1697       312,  308,  313,  308, 1748,  655,  318,  684,  331,  257,
1698       331,  331,  257,  331,  343,  257,  343,  690,  270,  271,
1699       693,  654,  685,  272,  332,  703,  849,  332,  308,  308,
1700       344,  689,  704,  317,  690,  866,  314,  758, 1749,  315,
1701       872,  654,  651,  651,  651, 1750,  316,  308,  309,  257,
1702       309,  308,  308,  308,  308,  308,  308,  308,  310,  308,
1703       308,  308,  318,  308,  312,  308,  313,  308,  343,  257,
1704       343,  354,  257,  354,  354,  257,  354, 1757,  354,  257,
1705       354,  354,  257,  354,  344,  655,  741,  355,  655,  736,
1706       355,  690,  308,  308,  356,  716,  690,  356, 1758, 1767,
1707
1708       314,  654,  742,  315,  654,  651,  651,  651,  758, 1769,
1709       316,  319,  320,  257,  320,  319,  319,  319,  319,  319,
1710       319,  319,  321,  319,  319,  319, 1770,  319,  323,  319,
1711       324,  319,  257,  257,  257,  257,  257,  257,  354,  257,
1712       354,  776,  354,  257,  354,  354,  257,  354,  357, 1780,
1713       655,  357,  655,  655,  355, 1781,  319,  319,  355,  722,
1714       689,  358,  651,  651,  651,  325,  654,  326,  654,  654,
1715       776,  327,  651,  651,  651,  842,  328,  329,  319,  320,
1716       257,  320,  319,  319,  319,  319,  319,  319,  319,  321,
1717       319,  319,  319,  689,  319,  323,  319,  324,  319,  354,
1718
1719       257,  354,  257,  257,  257,  257,  257,  257,  881,  354,
1720       257,  354,  354,  257,  354,  358,  739, 1791,  359,  777,
1721       679,  359,  736,  319,  319,  360,  732,  736,  360,  651,
1722       651,  651,  325,  735,  326,  651,  651,  651,  327,  651,
1723       651,  651, 1794,  328,  329,  333,  334,  257,  334,  333,
1724       333,  333,  333,  333,  333,  333,  335,  333,  333,  333,
1725       686,  333,  337,  333,  338,  333,  354,  257,  354,  354,
1726       257,  354,  257,  257,  257,  896,  257,  257,  257,  354,
1727       257,  354,  361,  923, 1795,  361,  896,  924,  362,  743,
1728       333,  333,  362,  730,  731,  358, 1801,  339,  651,  651,
1729
1730       651,  897,  689,  340,  744,  651,  651,  651,  651,  651,
1731       651,  948,  341,  333,  334,  257,  334,  333,  333,  333,
1732       333,  333,  333,  333,  335,  333,  333,  333, 1802,  333,
1733       337,  333,  338,  333,  354,  257,  354,  257,  257,  257,
1734       257,  257,  257, 1803,  354,  257,  354,  354,  257,  354,
1735       358,  655,  928,  363, 1804,  914,  363,  655,  333,  333,
1736       361,  655,  655,  361,  763,  339,  929,  654,  651,  651,
1737       651,  340,  974,  654,  651,  651,  651,  654,  654,  983,
1738       341,  345,  346,  257,  346,  345,  345,  345,  345,  345,
1739       345,  345,  347,  345,  345,  345,  915,  345,  349,  345,
1740
1741       350,  345,  354,  257,  354,  354,  257,  354,  257,  257,
1742       257, 1805,  257,  257,  257,  354,  257,  354,  364,  655,
1743      1010,  364,  655, 1011,  365,  842,  345,  345,  365,  768,
1744      1806,  366,  651,  651,  651,  654, 3259,  351,  654,  651,
1745       651,  651,  651,  651,  651, 1814,  352,  345,  346,  257,
1746       346,  345,  345,  345,  345,  345,  345,  345,  347,  345,
1747       345,  345,  974,  345,  349,  345,  350,  345,  354,  257,
1748       354,  257,  257,  257,  257,  257,  257,  689,  354,  257,
1749       354,  354,  257,  354,  366,  777,  983,  367,  736,  914,
1750       367, 1817,  345,  345,  364,  655, 1818,  364,  354,  257,
1751
1752       354, 1821,  781,  351,  354,  257,  354,  651,  651,  651,
1753       880,  654,  352,  984,  368,  651,  651,  651,  727, 1823,
1754       368,  369,  370,  257,  370,  369,  369,  369,  369,  369,
1755       369,  369,  371,  369,  369,  369,  974,  369,  373,  369,
1756       374,  369,  380,  257,  380,  380,  257,  380,  257,  257,
1757       257, 1018,  257,  257,  257, 1019,  745,  655,  381, 1134,
1758       984,  381,  689, 1463,  357, 3259,  369,  369,  357,  655,
1759       655,  375,  734,  654,  889,  686,  787,  376,  651,  651,
1760       651,  377,  651,  651,  651,  654,  654,  378,  369,  370,
1761       257,  370,  369,  369,  369,  369,  369,  369,  369,  371,
1762
1763       369,  369,  369,  673,  369,  373,  369,  374,  369,  380,
1764       257,  380,  380,  257,  380,  380,  257,  380,  889,  380,
1765       257,  380,  651,  651,  651,  381,  736,  800,  381,  655,
1766       655,  382, 1134,  369,  369,  382,  803,  655,  375,  801,
1767       802,  651,  651,  651,  376,  654,  654, 1825,  377,  651,
1768       651,  651, 1669,  654,  378,  383,  384,  257,  384,  383,
1769       383,  383,  383,  383,  383,  383,  385,  383,  383,  383,
1770       689,  383,  387,  383,  388,  383,  393,  257,  393,  393,
1771       257,  393,  257,  257,  257,  933,  257,  257,  257,  651,
1772       651,  651,  394,  655,  655,  394,  655, 1826,  357,  929,
1773
1774       383,  383,  357,  813, 1828,  389,  651,  651,  651,  654,
1775       654,  390,  654,  651,  651,  651,  651,  651,  651,  651,
1776       651,  651,  391,  383,  384,  257,  384,  383,  383,  383,
1777       383,  383,  383,  383,  385,  383,  383,  383, 1829,  383,
1778       387,  383,  388,  383,  393,  257,  393,  393,  257,  393,
1779       393,  257,  393,  933,  393,  257,  393, 1830,  655, 1487,
1780       394, 1835,  655,  394,  655,  823,  395,  980,  383,  383,
1781       395,  828, 1488,  389,  654,  651,  651,  651,  654,  390,
1782       654,  651,  651,  651,  651,  651,  651,  651,  651,  651,
1783       391,  396,  397,  257,  397,  396,  396,  396,  396,  396,
1784
1785       396,  396,  398,  396,  396,  396, 1838,  396,  400,  396,
1786       401,  396,  405,  257,  405,  405,  257,  405,  416,  257,
1787       416, 1839,  416,  257,  416,  430,  257,  430,  406,  655,
1788       655,  406,  655, 1840,  417,  856,  396,  396,  417,  834,
1789      1842,  431,  651,  651,  651,  654,  654,  402,  654,  651,
1790       651,  651,  403,  396,  397,  257,  397,  396,  396,  396,
1791       396,  396,  396,  396,  398,  396,  396,  396, 1845,  396,
1792       400,  396,  401,  396,  430,  257,  430,  257,  257,  257,
1793       257,  257,  257,  849,  430,  257,  430,  430,  257,  430,
1794       431,  690, 1846,  432, 1848, 1852,  432,  655,  396,  396,
1795
1796       431, 1853, 1854,  431, 1856,  848,  651,  651,  651,  402,
1797       651,  651,  651,  654,  403,  407,  408,  257,  408,  407,
1798       407,  407,  407,  407,  407,  407,  409,  407,  407,  407,
1799      1672,  407,  411,  407,  412,  407,  430,  257,  430,  430,
1800       257,  430,  442,  257,  442,  933,  442,  257,  442,  454,
1801       257,  454,  433,  849, 1867,  433,  655,  689,  443,  985,
1802       407,  407,  443,  861,  655,  455,  651,  651,  651,  651,
1803       651,  651,  654,  651,  651,  651,  413,  651,  651,  651,
1804       654, 1868,  414,  407,  408,  257,  408,  407,  407,  407,
1805       407,  407,  407,  407,  409,  407,  407,  407, 1869,  407,
1806
1807       411,  407,  412,  407,  454,  257,  454,  471,  257,  471,
1808       471,  257,  471, 1871,  486,  257,  486,  486,  257,  486,
1809       455, 1134,  655,  472, 1872, 1873,  472,  655,  407,  407,
1810       487,  916,  655,  487,  651,  651,  651,  866,  654,  651,
1811       651,  651,  917,  654,  413,  918, 1864,  872,  654, 1874,
1812       414,  418,  419,  257,  419,  418,  418,  418,  418,  418,
1813       418,  418,  420,  418,  418,  418, 1875,  418,  422,  418,
1814       423,  418,  502,  257,  502,  502,  257,  502,  513,  257,
1815       513, 1876,  513,  257,  513,  849,  655, 1877,  503, 1878,
1816      1879,  503, 1880,  690,  514,  849,  418,  418,  514,  424,
1817
1818       655,  425,  654,  690,  651,  651,  651,  426,  651,  651,
1819       651,  651,  651,  651,  427,  880,  654,  428,  418,  419,
1820       257,  419,  418,  418,  418,  418,  418,  418,  418,  420,
1821       418,  418,  418, 1882,  418,  422,  418,  423,  418,  525,
1822       257,  525,  525,  257,  525,  538,  257,  538,  916,  538,
1823       257,  538,  881, 1883, 1884,  526, 1134, 1885,  526,  917,
1824      1499,  539,  932,  418,  418,  539,  424,  736,  425,  651,
1825       651,  651, 1136, 1488,  426,  651,  651,  651,  651,  651,
1826       651,  427, 1888, 1891,  428,  434,  435,  257,  435,  434,
1827       434,  434,  434,  434,  434,  434,  436,  434,  434,  434,
1828
1829      1892,  434,  438,  434,  439,  434,  257,  257,  257,  257,
1830       257,  257,  538,  257,  538,  933,  538,  257,  538,  538,
1831       257,  538,  357, 1893, 1894,  357,  655,  655,  539,  986,
1832       434,  434,  539,  885,  894,  540,  651,  651,  651,  651,
1833       651,  651,  654,  654, 1895, 1896,  440,  434,  435,  257,
1834       435,  434,  434,  434,  434,  434,  434,  434,  436,  434,
1835       434,  434, 1900,  434,  438,  434,  439,  434,  538,  257,
1836       538,  550,  257,  550,  550,  257,  550, 1901,  257,  257,
1837       257,  257,  257,  257,  540, 1903, 1904,  551,  925, 1905,
1838       551, 1907,  434,  434,  552,  926, 1920,  552,  651,  651,
1839
1840       651,  927,  900,  900,  900, 1151, 1151, 1151,  440,  444,
1841       445,  257,  445,  444,  444,  444,  444,  444,  444,  444,
1842       446,  444,  444,  444, 1921,  444,  448,  444,  449,  444,
1843       550,  257,  550,  550,  257,  550,  550,  257,  550,  935,
1844       550,  257,  550,  564,  257,  564,  551, 1922, 1923,  551,
1845       936,  938,  553,  918,  444,  444,  553,  935,  926,  565,
1846       450,  901,  938,  925,  939,  451, 1924, 1927,  936,  926,
1847       926,  932, 1479, 1479, 1479,  927,  939,  452,  444,  445,
1848       257,  445,  444,  444,  444,  444,  444,  444,  444,  446,
1849       444,  444,  444, 1928,  444,  448,  444,  449,  444,  564,
1850
1851       257,  564,  257,  257,  257,  257,  257,  257, 1929,  564,
1852       257,  564,  564,  257,  564,  565, 1930, 1935,  552,  925,
1853       938,  552, 1943,  444,  444,  565,  926,  926,  565,  450,
1854       916, 1944,  979,  979,  451,  900,  900,  900, 1951, 1138,
1855      1955,  936, 1957, 1963,  932, 1969,  452,  456,  457,  257,
1856       457,  456,  456,  456,  456,  456,  456,  456,  458,  456,
1857       456,  456,  459,  456,  460,  456,  461,  456,  459,  459,
1858       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1859       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1860       459,  459,  456,  456,  459,  462,  463,  464,  459,  459,
1861
1862       459,  459,  459,  465,  459,  459,  466,  459,  459,  459,
1863       467,  459,  468,  469,  459,  459,  459,  459,  459,  459,
1864       459,  473,  474,  257,  474,  473,  473,  473,  473,  473,
1865       473,  473,  475,  473,  473,  473, 1970,  473,  477,  473,
1866       478,  473,  564,  257,  564,  564,  257,  564,  576,  257,
1867       576, 1971,  576,  257,  576,  587,  257,  587,  566, 1304,
1868      1972,  566, 1499, 1985,  577, 1991,  473,  473,  577, 1305,
1869       479,  588, 1151, 1151, 1151, 1537, 1306,  480, 1995, 1998,
1870       481, 1174, 1174, 1174,  482, 2000,  483,  484,  473,  474,
1871       257,  474,  473,  473,  473,  473,  473,  473,  473,  475,
1872
1873       473,  473,  473, 2001,  473,  477,  473,  478,  473,  587,
1874       257,  587,  257,  257,  257,  257,  257,  257, 2003,  587,
1875       257,  587,  587,  257,  587,  588, 2004, 2005,  552, 2009,
1876      2012,  552, 2014,  473,  473,  588, 1152,  479,  588, 1187,
1877      1187, 1187, 2021, 1188,  480, 1152, 1189,  481, 1174, 1174,
1878      1174,  482, 2029,  483,  484,  488,  489,  257,  489,  488,
1879       488,  488,  488,  488,  488,  488,  490,  488,  488,  488,
1880      2030,  488,  492,  488,  493,  488,  587,  257,  587,  587,
1881       257,  587,  600,  257,  600, 2031,  600,  257,  600,  945,
1882       945,  945,  589, 2032, 2034,  589, 1134, 2048,  601, 2052,
1883
1884       488,  488,  601,  494,  495,  496,  946, 2053, 1197, 1197,
1885      1197,  497, 1198, 2045,  498, 1199, 2054, 2057,  499, 1672,
1886      2058,  500,  488,  489,  257,  489,  488,  488,  488,  488,
1887       488,  488,  488,  490,  488,  488,  488, 2060,  488,  492,
1888       488,  493,  488,  257,  257,  257,  257,  257,  257,  600,
1889       257,  600, 2061,  600,  257,  600,  953,  953,  953,  552,
1890      2062, 2046,  552, 2063, 2055,  601, 2064,  488,  488,  601,
1891       494,  495,  496,  954, 2065, 1219, 1219, 1219,  497, 1220,
1892      2056,  498, 1221, 2068, 2069,  499, 1672, 2072,  500,  504,
1893       505,  257,  505,  504,  504,  504,  504,  504,  504,  504,
1894
1895       506,  504,  504,  504, 2073,  504,  508,  504,  509,  504,
1896       600,  257,  600,  600,  257,  600,  615,  257,  615, 2047,
1897       615,  257,  615,  968,  968,  968,  602, 2074, 2075,  602,
1898      2076, 2078,  616, 2079,  504,  504,  616, 2082, 2085,  510,
1899       969, 1534, 1534, 1534, 2089,  511,  504,  505,  257,  505,
1900       504,  504,  504,  504,  504,  504,  504,  506,  504,  504,
1901       504, 2090,  504,  508,  504,  509,  504,  257,  257,  257,
1902       257,  257,  257,  615,  257,  615, 2091,  615,  257,  615,
1903       988,  988,  988,  617, 2092, 2093,  617, 2094, 2095,  616,
1904      2098,  504,  504,  616, 2102, 2103,  510,  989, 1479, 1479,
1905
1906      1479, 2106,  511,  515,  516,  257,  516,  515,  515,  515,
1907       515,  515,  515,  515,  517,  515,  515,  515, 2108,  515,
1908       519,  515,  520,  515,  615,  257,  615,  615,  257,  615,
1909       627,  257,  627, 2096,  627,  257,  627,  637,  257,  637,
1910       618, 2097, 2104,  618, 2104, 2055,  628, 2124,  515,  515,
1911       628, 2125,  521,  638, 1151, 1151, 1151, 2126, 2105,  522,
1912      2056, 2105,  523,  515,  516,  257,  516,  515,  515,  515,
1913       515,  515,  515,  515,  517,  515,  515,  515, 2127,  515,
1914       519,  515,  520,  515,  637,  257,  637,  257,  257,  257,
1915       257,  257,  257, 2128,  637,  257,  637,  637,  257,  637,
1916
1917       638, 2129, 2131,  357, 2135, 2141,  357, 2142,  515,  515,
1918       638, 2143,  521,  638, 1174, 1174, 1174, 2157, 1227,  522,
1919      2161, 2162,  523,  527,  528,  257,  528,  527,  527,  527,
1920       527,  527,  527,  527,  529,  527,  527,  527, 2163,  527,
1921       531,  527,  532,  527,  637,  257,  637,  637,  257,  637,
1922       649,  257,  649, 2165,  649,  257,  649,  995,  995,  995,
1923       639, 2169, 2173,  639, 2174, 2175,  650,  727,  527,  527,
1924       650, 2176,  533, 3259,  996, 2177, 2180,  737, 1227,  534,
1925      2187, 2189,  535,  686, 2199, 2200,  686, 2201, 2202,  536,
1926       527,  528,  257,  528,  527,  527,  527,  527,  527,  527,
1927
1928       527,  529,  527,  527,  527,  738,  527,  531,  527,  532,
1929       527, 2204,  687, 2210,  741, 1000, 1000, 1000,  688,  689,
1930      1012, 1012, 1012,  683, 2216,  689, 1024, 1024, 1024,  690,
1931       742, 2217, 1001, 2218, 2219,  527,  527, 1013, 2222,  533,
1932      1241, 1241, 1241, 1025, 1242, 2224,  534, 1243, 2225,  535,
1933      1686, 1686, 1686, 1689, 1689, 1689,  536,  541,  542,  257,
1934       542,  541,  541,  541,  541,  541,  541,  541,  543,  541,
1935       541,  541, 2226,  541,  545,  541,  546,  541, 1026, 1026,
1936      1026, 1032, 1032, 1032, 1035, 1035, 1035, 1047, 1047, 1047,
1937      1049, 1049, 1049, 1672, 1134, 1027, 1687, 2230, 1033, 1690,
1938
1939      2207, 1036,  541,  541, 1048, 2235, 2237, 1050,  547, 1251,
1940      1251, 1251, 2238, 1252, 2239, 2243, 1253, 1693, 1693, 1693,
1941      1696, 1696, 1696,  548,  541,  542,  257,  542,  541,  541,
1942       541,  541,  541,  541,  541,  543,  541,  541,  541, 2209,
1943       541,  545,  541,  546,  541, 1061, 1061, 1061, 1069, 1069,
1944      1069, 1074, 1074, 1074, 1080, 1080, 1080, 1100, 1100, 1100,
1945      2249, 2250, 1062, 2251, 2252, 1070, 2253, 2254, 1075,  541,
1946       541, 1081, 2255, 2256, 1101,  547, 1259, 1259, 1259, 2257,
1947      1260, 2258, 2264, 1261, 1706, 1706, 1706, 1534, 1534, 1534,
1948       548,  554,  555,  257,  555,  554,  554,  554,  554,  554,
1949
1950       554,  554,  556,  554,  554,  554, 2265,  554,  558,  554,
1951       559,  554, 1124, 1124, 1124, 1128, 1128, 1128, 1672, 2266,
1952      1147, 1147, 1147, 1147, 1147, 1147, 1182, 1182, 1182, 1125,
1953      2267, 2279, 1129, 1182, 1182, 1182,  554,  554, 1149, 2280,
1954      2285, 1149,  560, 2286, 1184,  561, 1276, 1276, 1276, 2208,
1955      1277, 1184, 2288, 1278, 1743, 1743, 1743,  562,  554,  555,
1956       257,  555,  554,  554,  554,  554,  554,  554,  554,  556,
1957       554,  554,  554, 2289,  554,  558,  554,  559,  554, 2293,
1958      2294, 1150,  945,  945,  945, 2295, 2301, 1192, 1192, 1192,
1959      1192, 1192, 1192, 1185,  953,  953,  953, 2302, 2281,  946,
1960
1961      1200, 1200, 1200,  554,  554, 1194, 2282, 2303, 1194,  560,
1962      2304,  954,  561, 2307, 1293, 1293, 1293, 1201, 1294, 2312,
1963      2316, 1295, 2317, 2322,  562,  567,  568,  257,  568,  567,
1964       567,  567,  567,  567,  567,  567,  569,  567,  567,  567,
1965      2323,  567,  571,  567,  572,  567, 1203, 1203, 1203, 1208,
1966      1208, 1208, 2324, 2325, 1195, 2327, 1208, 1208, 1208, 1215,
1967      1215, 1215, 2337, 1204, 1740, 1740, 1740, 1210, 2348, 2349,
1968       567,  567, 2350, 2354, 1210, 2355,  573, 1217, 1686, 1686,
1969      1686,  574,  567,  568,  257,  568,  567,  567,  567,  567,
1970       567,  567,  567,  569,  567,  567,  567, 2356,  567,  571,
1971
1972       567,  572,  567, 1211, 1215, 1215, 1215,  968,  968,  968,
1973      1741, 1223, 1223, 1223,  988,  988,  988, 1223, 1223, 1223,
1974      1908, 2359, 1217, 2363,  969, 2364, 1909,  567,  567, 1225,
1975      1910,  989, 2365,  573, 1911, 1225, 1672, 2366,  574,  578,
1976       579,  257,  579,  578,  578,  578,  578,  578,  578,  578,
1977       580,  578,  578,  578, 1226,  578,  582,  578,  583,  578,
1978      1246, 1246, 1246, 1246, 1246, 1246, 1912, 2367, 1218,  995,
1979       995,  995, 1913, 1255, 1255, 1255, 1914, 2368, 1248, 2342,
1980      1915, 1248, 2369, 2370,  578,  578,  996, 1000, 1000, 1000,
1981       584, 1257, 1296, 1296, 1296, 2371, 1297, 2372, 2387, 1298,
1982
1983      2388, 1742, 1742, 1742, 1001,  585,  578,  579,  257,  579,
1984       578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
1985       578, 2389,  578,  582,  578,  583,  578, 2390, 2395, 1249,
1986      1255, 1255, 1255, 2396, 2397, 1263, 1263, 1263, 1263, 1263,
1987      1263, 1269, 1269, 1269, 1269, 1269, 1269, 1690, 1257, 2398,
1988      2283,  578,  578, 1265, 2399, 2400, 1265,  584, 2284, 1271,
1989      2318, 2320, 1271, 1307, 1307, 1307, 2401, 1308, 2319, 2321,
1990      1309, 2404,  585,  590,  591,  257,  591,  590,  590,  590,
1991       590,  590,  590,  590,  592,  590,  590,  590, 1672,  590,
1992       594,  590,  595,  590, 2405, 2408, 1258, 2409, 2414, 1266,
1993
1994      1012, 1012, 1012, 1281, 1281, 1281, 1024, 1024, 1024, 1272,
1995      1281, 1281, 1281, 1288, 1288, 1288, 2415, 1013,  590,  590,
1996      2416, 1283, 2417, 1025,  596, 2426, 2427,  597, 1283, 2428,
1997      2429, 1290, 1689, 1689, 1689, 2343, 1689, 1689, 1689,  598,
1998       590,  591,  257,  591,  590,  590,  590,  590,  590,  590,
1999       590,  592,  590,  590,  590, 2431,  590,  594,  590,  595,
2000       590, 1026, 1026, 1026, 2433, 1672, 1288, 1288, 1288, 2457,
2001      2458, 1284, 1299, 1299, 1299, 1299, 1299, 1299, 1027, 1032,
2002      1032, 1032, 1837, 2460, 1290,  590,  590, 1035, 1035, 1035,
2003      1301,  596, 2461, 1301,  597, 2462, 1033, 2453, 1311, 1311,
2004
2005      1311, 2463, 1312, 2467, 1036, 1313,  598,  603,  604,  257,
2006       604,  603,  603,  603,  603,  603,  603,  603,  605,  603,
2007       603,  603, 1672,  603,  607,  603,  608,  603, 1291, 1314,
2008      1314, 1314, 1323, 1323, 1323, 2468, 1302, 1323, 1323, 1323,
2009      1047, 1047, 1047, 1339, 1339, 1339, 1315, 1327, 1327, 1327,
2010      1325, 1328,  603,  603, 1329, 1325, 2469, 1048, 2470, 2454,
2011       609, 1341,  610, 2471, 2472,  611, 1881, 1881, 1881,  612,
2012      1693, 1693, 1693,  613,  603,  604,  257,  604,  603,  603,
2013       603,  603,  603,  603,  603,  605,  603,  603,  603, 2473,
2014       603,  607,  603,  608,  603, 1326, 1049, 1049, 1049, 1330,
2015
2016      1330, 1330, 2474, 1331, 2475, 2476, 1332, 1333, 1333, 1333,
2017      1354, 1354, 1354, 1050, 3259, 3259, 3259, 2477, 2479,  603,
2018       603, 3259, 3259, 3259, 1334, 2480, 2483,  609, 1356,  610,
2019      2481, 3259,  611, 1696, 1696, 1696,  612, 2484, 3259, 2482,
2020       613,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2021       619,  619,  621,  619,  619,  619, 2485,  619,  623,  619,
2022       624,  619, 1339, 1339, 1339, 1335, 1061, 1061, 1061, 1706,
2023      1706, 1706, 2486, 1336, 3259, 3259, 3259, 3259, 3259, 3259,
2024      1341, 2487, 2490, 1062, 2488, 2491,  619,  619, 1347, 1347,
2025      1347, 3259, 1348, 2489, 3259, 1349, 1359, 1359, 1359, 2492,
2026
2027      1360, 2493, 2494, 1361, 2496, 1886, 1886, 1886, 2500, 1342,
2028       625,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2029       619,  619,  621,  619,  619,  619, 1338,  619,  623,  619,
2030       624,  619, 1337, 1350, 1350, 1350, 1069, 1069, 1069, 2501,
2031      1362, 1362, 1362, 2502, 2503, 1354, 1354, 1354, 2507, 2508,
2032      1351, 2512, 2515, 1070, 2516, 2519,  619,  619, 1364, 1362,
2033      1362, 1362, 2531, 1356, 1367, 1367, 1367, 2532, 1368, 1887,
2034      2535, 1369, 1376, 1376, 1376, 2536, 1377, 1364, 1134, 1378,
2035       625,  629,  630,  257,  630,  629,  629,  629,  629,  629,
2036       629,  629,  631,  629,  629,  629, 1357,  629,  633,  629,
2037
2038       634,  629, 1074, 1074, 1074, 1371, 1371, 1371, 1080, 1080,
2039      1080, 2556, 1371, 1371, 1371, 1382, 1382, 1382, 2553, 1075,
2040      1365, 2557, 2558, 1373, 1672, 1081,  629,  629, 2559, 2560,
2041      1373, 2569, 2570, 1384, 1889, 1889, 1889,  635,  629,  630,
2042       257,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2043       629,  629,  629, 2571,  629,  633,  629,  634,  629, 1374,
2044      2572, 1382, 1382, 1382, 1386, 1386, 1386, 2555, 1388, 1388,
2045      1388, 3259, 3259, 3259, 1391, 1391, 1391, 2573, 2574, 1384,
2046      1890, 1387, 2575,  629,  629, 1389, 2576, 2577, 3259, 1740,
2047      1740, 1740, 1393, 2578,  635,  640,  641,  257,  641,  640,
2048
2049       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2050      2579,  640,  644,  640,  645,  640, 1385, 2581, 2582, 1391,
2051      1391, 1391, 1396, 1396, 1396, 1742, 1742, 1742, 2583, 2584,
2052      1390, 1400, 1400, 1400, 1403, 1403, 1403, 1393, 2585, 1397,
2053       640,  640, 3259, 3259, 3259, 3259, 3259, 3259, 1401, 1672,
2054      2586,  646, 1405, 1408, 1408, 1408, 2587, 1409, 2588, 3259,
2055      1410, 2589, 3259, 2590,  647,  640,  641,  257,  641,  640,
2056       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2057      1394,  640,  644,  640,  645,  640, 2554, 1403, 1403, 1403,
2058      2591, 2592, 1398, 2593, 2594, 1100, 1100, 1100, 1411, 1411,
2059
2060      1411, 1411, 1411, 1411, 1402, 1405, 2595, 1399, 2596, 2597,
2061       640,  640, 1101, 1415, 1415, 1415, 1413, 2599, 2607, 1413,
2062      2608,  646, 2609, 2613, 1406, 2648, 1417, 1417, 1417, 2650,
2063      1416, 1419, 1419, 1419,  647,  655, 1419, 1419, 1419, 1429,
2064      1429, 1429,  670, 1418, 1423, 1423, 1423, 2651, 2652, 1421,
2065      1672,  654,  671, 1672, 1421, 1134, 1414, 1431, 3259, 3259,
2066      3259, 1424, 1743, 1743, 1743, 1427, 1427, 1427, 2656, 2657,
2067      1429, 1429, 1429, 2631, 2660, 3259, 1124, 1124, 1124,  672,
2068       673,  674, 1428, 2632, 2645,  675,  676,  677, 1431, 2633,
2069       678,  679, 2646, 1125,  680, 2647,  681,  682,  683,  655,
2070
2071      1438, 1438, 1438, 1438, 1438, 1438,  727, 1422, 1425, 1444,
2072      1444, 1444, 1444, 1444, 1444,  654,  728, 2661, 1440, 2563,
2073      2658, 1440, 2664, 1426, 1448, 1448, 1448, 1446, 1449, 2564,
2074      1446, 1450, 2565, 2659, 1451, 1451, 1451, 2665, 1451, 1451,
2075      1451, 1432, 2666,  672,  729,  684, 1128, 1128, 1128,  730,
2076       731,  677, 1453, 2667,  732,  679, 1453, 2662,  733, 2634,
2077       734,  735,  683, 1129, 1455, 1455, 1455, 1441, 1456, 2635,
2078      2663, 1457, 1459, 1459, 1459, 2636, 1447, 1459, 1459, 1459,
2079      1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 2668,
2080      1461, 1501, 1501, 1501, 2669, 1461, 2670, 2671, 1149, 1454,
2081
2082      2672, 1149, 2674, 2675, 1149, 1182, 1182, 1182, 1502, 1182,
2083      1182, 1182, 1182, 1182, 1182, 1504, 1504, 1504, 1187, 1187,
2084      1187, 2676, 1188, 1184, 2677, 1189, 2678, 1184, 2679, 2680,
2085      1184, 2681, 1505, 1471, 3259, 3259, 3259, 1192, 1192, 1192,
2086      2682, 1462, 1192, 1192, 1192, 1192, 1192, 1192, 1200, 1200,
2087      1200, 3259, 1197, 1197, 1197, 1194, 1198, 2683, 2684, 1199,
2088      1194, 1503, 2685, 1194, 2686, 1201, 1510, 1510, 1510, 2687,
2089      1511, 2688, 2690, 1512, 1513, 1513, 1513, 1203, 1203, 1203,
2090      1515, 1515, 1515, 2698, 1516, 2699, 2700, 1517, 1519, 1519,
2091      1519, 1514, 1508, 2701, 1204, 1506, 1208, 1208, 1208, 1208,
2092
2093      1208, 1208, 1208, 1208, 1208, 1520, 1524, 1524, 1524, 1215,
2094      1215, 1215, 2718, 2719, 1210, 2720, 2721, 1210, 2722, 2723,
2095      1210, 2726, 2734, 1525, 1215, 1215, 1215, 1217, 1215, 1215,
2096      1215, 1219, 1219, 1219, 2727, 1220, 2736, 2737, 1221, 1223,
2097      1223, 1223, 1217, 1223, 1223, 1223, 1217, 1529, 1529, 1529,
2098      2566, 1241, 1241, 1241, 1672, 1242, 2738, 1225, 1243, 1134,
2099      2567, 1225, 1522, 2568, 2739, 1530, 1546, 1546, 1546, 1246,
2100      1246, 1246, 1246, 1246, 1246, 1527, 1246, 1246, 1246, 1255,
2101      1255, 1255, 2728, 1547, 1251, 1251, 1251, 1248, 1252, 2731,
2102      1248, 1253, 2740, 2741, 1248, 2729, 2742, 1257, 1255, 1255,
2103
2104      1255, 1255, 1255, 1255, 1259, 1259, 1259, 2730, 1260, 2743,
2105      2744, 1261, 1552, 1552, 1552, 2745, 1257, 2748, 2749, 1257,
2106      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1553,
2107      1555, 1555, 1555, 3259, 3259, 3259, 2750, 1548, 1265, 2751,
2108      2752, 1265, 2753, 2754, 1265, 2755, 2757, 1556, 2758, 2759,
2109      3259, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
2110      2760, 1557, 1551, 1561, 1561, 1561, 1276, 1276, 1276, 1271,
2111      1277, 2761, 1271, 1278, 2762, 1271, 1281, 1281, 1281, 2763,
2112      1562, 1281, 1281, 1281, 1281, 1281, 1281, 1568, 1568, 1568,
2113      1288, 1288, 1288, 1554, 1283, 1288, 1288, 1288, 2764, 1283,
2114
2115      2765, 2766, 1283, 2767, 1569, 1571, 1571, 1571, 1290, 1288,
2116      1288, 1288, 2768, 1290, 1293, 1293, 1293, 2769, 1294, 2770,
2117      2771, 1295, 1572, 1558, 1296, 1296, 1296, 1290, 1297, 2777,
2118      2778, 1298, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
2119      1299, 1307, 1307, 1307, 2779, 1308, 2780, 2781, 1309, 1565,
2120      1301, 2795, 2796, 1301, 2797, 2787, 1301, 1578, 1578, 1578,
2121      1311, 1311, 1311, 2798, 1312, 2788, 2799, 1313, 1314, 1314,
2122      1314, 1580, 1580, 1580, 1579, 1581, 1570, 2800, 1582, 1323,
2123      1323, 1323, 1323, 1323, 1323, 1315, 1323, 1323, 1323, 1327,
2124      1327, 1327, 2789, 1328, 2804, 2805, 1329, 1325, 2791, 2806,
2125
2126      1325, 2793, 2790, 1573, 1325, 1330, 1330, 1330, 2792, 1331,
2127      2807, 2794, 1332, 1333, 1333, 1333, 1591, 1591, 1591, 2817,
2128      1592, 1134, 2818, 1593, 1339, 1339, 1339, 1339, 1339, 1339,
2129      1334, 1339, 1339, 1339, 1347, 1347, 1347, 2819, 1348, 2820,
2130      2821, 1349, 1341, 2822, 2823, 1341, 1350, 1350, 1350, 1341,
2131      1603, 1603, 1603, 1590, 1604, 2808, 2824, 1605, 1354, 1354,
2132      1354, 2828, 2829, 1351, 1354, 1354, 1354, 1354, 1354, 1354,
2133      1359, 1359, 1359, 2830, 1360, 2831, 1356, 1361, 2832, 1598,
2134      2833, 2835, 1356, 2836, 2837, 1356, 1362, 1362, 1362, 1362,
2135      1362, 1362, 1362, 1362, 1362, 1367, 1367, 1367, 2838, 1368,
2136
2137      2839, 2840, 1369, 2841, 1364, 2842, 2843, 1364, 2844, 2848,
2138      1364, 1371, 1371, 1371, 1371, 1371, 1371, 2849, 1608, 1371,
2139      1371, 1371, 2850, 1376, 1376, 1376, 2853, 1377, 2858, 1373,
2140      1378, 2859, 1373, 1382, 1382, 1382, 2860, 1373, 1382, 1382,
2141      1382, 2861, 1382, 1382, 1382, 1386, 1386, 1386, 1619, 1619,
2142      1619, 1384, 1620, 2862, 2863, 1621, 1384, 2864, 2865, 1610,
2143      1384, 2866, 1387, 1388, 1388, 1388, 2867, 2868, 1613, 1622,
2144      1622, 1622, 2869, 1623, 2871, 2872, 1624, 1391, 1391, 1391,
2145      1389, 1391, 1391, 1391, 2873, 1391, 1391, 1391, 1396, 1396,
2146      1396, 2874, 1400, 1400, 1400, 1393, 1897, 1897, 1897, 1393,
2147
2148      2881, 1134, 1618, 1393, 2882, 1397, 1628, 1628, 1628, 1401,
2149      1629, 2883, 2884, 1630, 1633, 1633, 1633, 2885, 1634, 2886,
2150      2887, 1635, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
2151      1403, 1408, 1408, 1408, 2888, 1409, 2889, 2890, 1410, 2891,
2152      1405, 2892, 1898, 1405, 2875, 2893, 1405, 1411, 1411, 1411,
2153      2894, 2897, 1626, 1411, 1411, 1411, 1411, 1411, 1411, 1415,
2154      1415, 1415, 1640, 1640, 1640, 1413, 1641, 2898, 2899, 1642,
2155      2900, 1413, 2901, 2902, 1413, 2903, 1416, 1417, 1417, 1417,
2156      1643, 1643, 1643, 2904, 1644, 2905, 2906, 1645, 1419, 1419,
2157      1419, 2907, 1637, 2911, 1418, 1419, 1419, 1419, 2918, 1419,
2158
2159      1419, 1419, 1423, 1423, 1423, 2919, 1421, 1647, 1647, 1647,
2160      2920, 1648, 2921, 1421, 1649, 2922, 1639, 1421, 2923, 1424,
2161      1427, 1427, 1427, 1652, 1652, 1652, 2924, 1653, 2925, 2926,
2162      1654, 1429, 1429, 1429, 1429, 1429, 1429, 1428, 1429, 1429,
2163      1429, 1657, 1657, 1657, 1438, 1438, 1438, 2927, 2928, 1431,
2164      2929, 2932, 1431, 1438, 1438, 1438, 1431, 2933, 1658, 2934,
2165      2935, 1646, 1440, 1438, 1438, 1438, 1444, 1444, 1444, 2938,
2166      2943, 1440, 1444, 1444, 1444, 1444, 1444, 1444, 1448, 1448,
2167      1448, 1440, 1449, 2939, 1446, 1450, 1451, 1451, 1451, 1134,
2168      1446, 2944, 2945, 1446, 1451, 1451, 1451, 1451, 1451, 1451,
2169
2170      1655, 1455, 1455, 1455, 1453, 1456, 2946, 2947, 1457, 1459,
2171      1459, 1459, 1453, 2948, 2938, 1453, 1459, 1459, 1459, 1459,
2172      1459, 1459, 2949, 2950, 1662, 2941, 2951, 1461, 1665, 1671,
2173      1671, 1671, 2952, 2953, 1461, 2936, 2954, 1461, 1147, 1147,
2174      1147, 1501, 1501, 1501, 1182, 1182, 1182, 1672, 1673, 2955,
2175      1504, 1504, 1504, 1529, 1529, 1529, 1149, 1666, 1502, 1709,
2176      1709, 1709, 1184, 1710, 2956, 2957, 1711, 1505, 1713, 1713,
2177      1713, 1530, 1714, 2958, 2959, 1715, 1192, 1192, 1192, 2960,
2178      1668, 1510, 1510, 1510, 2961, 1511, 2966, 2962, 1512, 1513,
2179      1513, 1513, 2971, 2964, 1194, 2972, 1720, 1720, 1720, 2963,
2180
2181      1721, 2967, 1712, 1722, 1678, 2965, 1514, 1515, 1515, 1515,
2182      2969, 1516, 2973, 2968, 1517, 1519, 1519, 1519, 2974, 1724,
2183      1724, 1724, 2970, 1725, 2975, 1718, 1726, 1208, 1208, 1208,
2184      2976, 1134, 1520, 1524, 1524, 1524, 1730, 1730, 1730, 2979,
2185      1731, 1672, 1673, 1732, 2979, 1210, 1733, 1733, 1733, 2982,
2186      1525, 1215, 1215, 1215, 1751, 1751, 1751, 1546, 1546, 1546,
2187      1753, 1753, 1753, 1734, 1754, 2983, 2984, 1755, 2985, 1217,
2188      2988, 1752, 2977, 2991, 1547, 2986, 2938, 1728, 1246, 1246,
2189      1246, 1255, 1255, 1255, 1552, 1552, 1552, 1760, 1760, 1760,
2190      2939, 1761, 2998, 2987, 1762, 3000, 1248, 3003, 2989, 1257,
2191
2192      1735, 1553, 1263, 1263, 1263, 1555, 1555, 1555, 1764, 1764,
2193      1764, 2999, 1765, 2990, 3008, 1766, 1269, 1269, 1269, 3001,
2194      1265, 2938, 1556, 1561, 1561, 1561, 1771, 1771, 1771, 3011,
2195      1772, 3012, 2941, 1773, 1271, 1774, 1774, 1774, 3002, 3013,
2196      1562, 3006, 1756, 2979, 3015, 1759, 1776, 1776, 1776, 1281,
2197      1281, 1281, 1775, 1568, 1568, 1568, 2979, 1782, 1782, 1782,
2198      3007, 1783, 1763, 1777, 1784, 3009, 3016, 1283, 3017, 3018,
2199      1569, 1785, 1785, 1785, 1571, 1571, 1571, 1768, 1787, 1787,
2200      1787, 3019, 1788, 3020, 3010, 1789, 1299, 1299, 1299, 1786,
2201      3021, 1572, 1778, 1792, 1792, 1792, 1578, 1578, 1578, 1796,
2202
2203      1796, 1796, 3022, 1797, 1301, 3023, 1798, 1580, 1580, 1580,
2204      1793, 1581, 3033, 1579, 1582, 1779, 1799, 1799, 1799, 1323,
2205      1323, 1323, 1591, 1591, 1591, 3034, 1592, 3035, 3036, 1593,
2206      1808, 1808, 1808, 1800, 3259, 3259, 3259, 1325, 3259, 3259,
2207      3259, 3259, 3259, 3259, 1339, 1339, 1339, 1809, 1815, 1815,
2208      1815, 3259, 1790, 3037, 3038, 3259, 3042, 3043, 3259, 1603,
2209      1603, 1603, 1341, 1604, 3044, 1816, 1605, 3045, 3046, 1819,
2210      1819, 1819, 1354, 1354, 1354, 1362, 1362, 1362, 1371, 1371,
2211      1371, 1831, 1831, 1831, 1807, 1811, 1820, 1382, 1382, 1382,
2212      1356, 3047, 3048, 1364, 3049, 3051, 1373, 3052, 1832, 1813,
2213
2214      3053, 1391, 1391, 1391, 1810, 1384, 1619, 1619, 1619, 3054,
2215      1620, 1812, 3055, 1621, 1622, 1622, 1622, 3060, 1623, 1393,
2216      3061, 1624, 1628, 1628, 1628, 3062, 1629, 1833, 3063, 1630,
2217      1633, 1633, 1633, 3064, 1634, 1827, 1822, 1635, 1403, 1403,
2218      1403, 1824, 3056, 3065, 1834, 1411, 1411, 1411, 1640, 1640,
2219      1640, 3066, 1641, 3058, 3057, 1642, 1405, 1643, 1643, 1643,
2220      3067, 1644, 3068, 1413, 1645, 3059, 3069, 1836, 1419, 1419,
2221      1419, 1647, 1647, 1647, 3070, 1648, 3071, 3072, 1649, 3073,
2222      1652, 1652, 1652, 3075, 1653, 3076, 1421, 1654, 1429, 1429,
2223      1429, 1657, 1657, 1657, 1849, 1849, 1849, 3077, 1850, 1841,
2224
2225      1134, 1851, 1843, 1438, 1438, 1438, 1431, 3078, 1658, 1857,
2226      1857, 1857, 1444, 1444, 1444, 1844, 1451, 1451, 1451, 3079,
2227      3080, 1440, 1861, 1861, 1861, 3074, 1858, 1459, 1459, 1459,
2228      1446, 1671, 1671, 1671, 1453, 1847, 1147, 1147, 1147, 1862,
2229      1709, 1709, 1709, 3081, 1710, 1461, 3082, 1711, 3083, 1672,
2230      3084, 3085, 1855, 3086, 1149, 1182, 1182, 1182, 1713, 1713,
2231      1713, 3087, 1714, 3088, 3089, 1715, 3090, 3091, 1860, 1192,
2232      1192, 1192, 3092, 1184, 1720, 1720, 1720, 3093, 1721, 1859,
2233      3094, 1722, 1865, 1208, 1208, 1208, 1134, 1194, 1870, 1863,
2234      1724, 1724, 1724, 3096, 1725, 3097, 3098, 1726, 3099, 1866,
2235
2236      3100, 1210, 1730, 1730, 1730, 3095, 1731, 3101, 3102, 1732,
2237      1733, 1733, 1733, 3103, 1916, 1916, 1916, 3104, 1917, 3105,
2238      1902, 1918, 1899, 1215, 1215, 1215, 3106, 1734, 1925, 1925,
2239      1925, 1925, 1925, 1925, 1886, 1886, 1886, 1751, 1751, 1751,
2240      3107, 1217, 3108, 3109, 1906, 1931, 1931, 1931, 3110, 1932,
2241      3111, 3112, 1933, 3113, 1752, 1753, 1753, 1753, 1134, 1754,
2242      3115, 3116, 1755, 1246, 1246, 1246, 1936, 1936, 1936, 1255,
2243      1255, 1255, 3117, 3118, 1919, 1760, 1760, 1760, 3114, 1761,
2244      3119, 1248, 1762, 1937, 1263, 1263, 1263, 1257, 3120, 1764,
2245      1764, 1764, 1926, 1765, 3121, 1887, 1766, 3122, 1926, 1269,
2246
2247      1269, 1269, 1265, 1940, 1940, 1940, 3123, 1771, 1771, 1771,
2248      1934, 1772, 3124, 3125, 1773, 3126, 1938, 1271, 3127, 3128,
2249      1941, 1774, 1774, 1774, 1945, 1945, 1945, 3129, 1946, 3130,
2250      3131, 1947, 1776, 1776, 1776, 1948, 1948, 1948, 1775, 1949,
2251      3132, 3134, 1950, 1952, 1952, 1952, 1954, 1954, 1954, 1777,
2252      1939, 1782, 1782, 1782, 1134, 1783, 3135, 3136, 1784, 3137,
2253      3133, 1953, 3138, 1942, 1785, 1785, 1785, 1787, 1787, 1787,
2254      3139, 1788, 3140, 3141, 1789, 1299, 1299, 1299, 1792, 1792,
2255      1792, 3142, 1786, 1958, 1958, 1958, 3143, 1959, 3144, 3145,
2256      1960, 1134, 3147, 1301, 3148, 1793, 1961, 1961, 1961, 1796,
2257
2258      1796, 1796, 3149, 1797, 3150, 3146, 1798, 1799, 1799, 1799,
2259      1964, 1964, 1964, 1962, 1965, 3151, 3152, 1966, 1967, 1967,
2260      1967, 1956, 3153, 3154, 1800, 1973, 1973, 1973, 1323, 1323,
2261      1323, 1808, 1808, 1808, 3156, 1968, 1976, 1976, 1976, 3157,
2262      1977, 3158, 1974, 1978, 3159, 3160, 1325, 3161, 1809, 1979,
2263      1979, 1979, 3259, 3259, 3259, 1982, 1982, 1982, 1339, 1339,
2264      1339, 1815, 1815, 1815, 3162, 3163, 1980, 3166, 3167, 3259,
2265      3168, 3169, 1983, 1986, 1986, 1986, 1341, 1987, 1816, 3170,
2266      1988, 1989, 1989, 1989, 1819, 1819, 1819, 3171, 1992, 1992,
2267      1992, 3182, 1993, 3180, 1975, 1994, 1134, 1134, 1990, 1134,
2268
2269      3183, 1820, 1996, 1996, 1996, 1362, 1362, 1362, 1134, 1737,
2270      1981, 1371, 1371, 1371, 1831, 1831, 1831, 1134, 1984, 1736,
2271      1997, 3181, 1729, 1364, 1134, 1134, 2006, 2006, 2006, 1373,
2272      2007, 1832, 3172, 2008, 2010, 2010, 2010, 1391, 1391, 1391,
2273      2015, 2015, 2015, 2017, 2017, 2017, 3259, 3259, 3259, 1403,
2274      1403, 1403, 2011, 3173, 3184, 1393, 1999, 2016, 1134, 2002,
2275      2018, 1134, 1134, 3259, 1419, 1419, 1419, 1405, 1411, 1411,
2276      1411, 3186, 2024, 2024, 2024, 2026, 2026, 2026, 1429, 1429,
2277      1429, 1134, 1421, 1849, 1849, 1849, 1413, 1850, 2013, 2025,
2278      1851, 1134, 2027, 1438, 1438, 1438, 1431, 1134, 1857, 1857,
2279
2280      1857, 2035, 2035, 2035, 3185, 2036, 3174, 1134, 2037, 3175,
2281      2019, 1440, 1134, 3198, 2022, 1858, 2020, 1444, 1444, 1444,
2282      1451, 1451, 1451, 1861, 1861, 1861, 2040, 2040, 2040, 2023,
2283      2041, 1727, 1723, 2042, 1719, 1446, 1717, 1134, 1453, 3176,
2284      1862, 3178, 3192, 2028, 2033, 2043, 2043, 2043, 2049, 2049,
2285      2049, 1147, 1147, 1147, 2059, 2059, 2059, 1881, 1881, 1881,
2286      2066, 2066, 2066, 2044, 1134, 2050, 1886, 1886, 1886, 1149,
2287      2067, 2067, 2067, 1134, 3188, 2039, 2038, 1889, 1889, 1889,
2288      2070, 2070, 2070, 2071, 2071, 2071, 1897, 1897, 1897, 1182,
2289      1182, 1182, 2080, 2080, 2080, 1716, 2083, 2083, 2083, 1208,
2290
2291      1208, 1208, 2087, 2087, 2087, 1134, 1134, 1184, 3179, 1134,
2292      2081, 1708, 2051, 2084, 1916, 1916, 1916, 1210, 1917, 2088,
2293      3187, 1918, 1215, 1215, 1215, 2100, 2100, 2100, 1925, 1925,
2294      1925, 2107, 2107, 2107, 2109, 2109, 2109, 3199, 1134, 2077,
2295      1217, 3193, 2101, 1931, 1931, 1931, 3189, 1932, 1134, 1707,
2296      1933, 2110, 1246, 1246, 1246, 2112, 2112, 2112, 2086, 1936,
2297      1936, 1936, 2114, 2114, 2114, 1134, 2115, 1134, 2099, 2116,
2298      1248, 1134, 2113, 1255, 1255, 1255, 1937, 2118, 2118, 2118,
2299      1940, 1940, 1940, 2120, 2120, 2120, 3177, 2121, 1134, 3190,
2300      2122, 1257, 1269, 1269, 1269, 2119, 3232, 1941, 1134, 1945,
2301
2302      1945, 1945, 3196, 1946, 1134, 2111, 1947, 1948, 1948, 1948,
2303      1271, 1949, 3191, 3194, 1950, 1952, 1952, 1952, 1954, 1954,
2304      1954, 3200, 1299, 1299, 1299, 3197, 2117, 1958, 1958, 1958,
2305      1134, 1959, 1134, 1953, 1960, 1961, 1961, 1961, 3201, 2123,
2306      1301, 2132, 2132, 2132, 3195, 2133, 1134, 1134, 2134, 1964,
2307      1964, 1964, 1962, 1965, 1134, 1134, 1966, 1967, 1967, 1967,
2308      2136, 2136, 2136, 1134, 2137, 1705, 3204, 2138, 2139, 2139,
2309      2139, 1973, 1973, 1973, 1968, 2144, 2144, 2144, 1134, 2145,
2310      2130, 3202, 2146, 1134, 3224, 2140, 3214, 1134, 1974, 1323,
2311      1323, 1323, 1976, 1976, 1976, 1134, 1977, 3206, 3203, 1978,
2312
2313      1979, 1979, 1979, 1134, 2148, 2148, 2148, 1325, 2149, 1134,
2314      1134, 2150, 2151, 2151, 2151, 1704, 3256, 1980, 1982, 1982,
2315      1982, 2153, 2153, 2153, 3208, 2154, 3207, 1134, 2155, 2152,
2316      1339, 1339, 1339, 3209, 1134, 1983, 3212, 1986, 1986, 1986,
2317      2147, 1987, 3246, 3205, 1988, 1989, 1989, 1989, 1341, 2158,
2318      2158, 2158, 1134, 2159, 3215, 1703, 2160, 1992, 1992, 1992,
2319      1134, 1993, 1990, 1134, 1994, 1996, 1996, 1996, 1362, 1362,
2320      1362, 2166, 2166, 2166, 1371, 1371, 1371, 2170, 2170, 2170,
2321      3220, 2156, 1134, 1997, 1134, 1134, 1364, 3210, 2167, 2006,
2322      2006, 2006, 1373, 2007, 2171, 3211, 2008, 2010, 2010, 2010,
2323
2324      2178, 2178, 2178, 2015, 2015, 2015, 2181, 2181, 2181, 1702,
2325      2182, 1134, 3226, 2183, 1134, 2011, 1134, 3213, 2179, 3216,
2326      2016, 1134, 3217, 2172, 2017, 2017, 2017, 2184, 2184, 2184,
2327      1134, 2185, 2164, 1134, 2186, 2168, 1403, 1403, 1403, 1701,
2328      1134, 2018, 1411, 1411, 1411, 1419, 1419, 1419, 2024, 2024,
2329      2024, 2192, 2192, 2192, 1405, 2193, 3218, 3221, 2194, 1134,
2330      1413, 1700, 3225, 1421, 3252, 2025, 2026, 2026, 2026, 2195,
2331      2195, 2195, 3219, 2196, 3228, 1134, 2197, 1429, 1429, 1429,
2332      1438, 1438, 1438, 2027, 3227, 2035, 2035, 2035, 1699, 2036,
2333      1134, 2190, 2037, 1134, 1134, 1431, 3222, 1134, 1440, 1444,
2334
2335      1444, 1444, 2188, 1451, 1451, 1451, 1134, 2040, 2040, 2040,
2336      2191, 2041, 3223, 1698, 2042, 1697, 1695, 1446, 2043, 2043,
2337      2043, 1453, 2049, 2049, 2049, 2211, 2211, 2211, 3229, 2212,
2338      3233, 3248, 2213, 1147, 1147, 1147, 2044, 3234, 1134, 2050,
2339      1134, 3240, 2198, 3230, 1694, 2203, 2215, 2215, 2215, 1692,
2340      2205, 1149, 2220, 2220, 2220, 1691, 2206, 2221, 2221, 2221,
2341      2059, 2059, 2059, 2223, 2223, 2223, 2227, 2227, 2227, 2066,
2342      2066, 2066, 2067, 2067, 2067, 2228, 2228, 2228, 2070, 2070,
2343      2070, 2071, 2071, 2071, 2231, 2231, 2231, 2232, 2232, 2232,
2344      2233, 2233, 2233, 2234, 2234, 2234, 1134, 2214, 1182, 1182,
2345
2346      1182, 2080, 2080, 2080, 3249, 2083, 2083, 2083, 2240, 2240,
2347      2240, 1688, 2241, 1134, 1685, 2242, 1184, 1684, 3256, 2081,
2348      1683, 2229, 2084, 2244, 2244, 2244, 2087, 2087, 2087, 2246,
2349      2246, 2246, 1134, 2247, 1682, 1134, 2248, 1215, 1215, 1215,
2350      1134, 2245, 3231, 2088, 2100, 2100, 2100, 1134, 1134, 2236,
2351      2260, 2260, 2260, 1134, 2261, 1217, 1681, 2262, 2263, 2263,
2352      2263, 2101, 2107, 2107, 2107, 2268, 2268, 2268, 2109, 2109,
2353      2109, 2270, 2270, 2270, 1134, 2271, 3238, 3236, 2272, 1246,
2354      1246, 1246, 2112, 2112, 2112, 2110, 2259, 2274, 2274, 2274,
2355      3237, 2275, 1134, 3242, 2276, 3235, 1680, 1248, 1679, 2113,
2356
2357      2114, 2114, 2114, 1134, 2115, 1134, 1134, 2116, 1255, 1255,
2358      1255, 2269, 1677, 2118, 2118, 2118, 2120, 2120, 2120, 1676,
2359      2121, 1134, 3253, 2122, 1675, 1674, 1257, 1269, 1269, 1269,
2360      2273, 2119, 1299, 1299, 1299, 2132, 2132, 2132, 3243, 2133,
2361      3241, 1667, 2134, 3244, 3239, 1271, 1664, 2136, 2136, 2136,
2362      1301, 2137, 1134, 1663, 2138, 2139, 2139, 2139, 3245, 2277,
2363      2290, 2290, 2290, 1661, 2291, 1134, 1134, 2292, 1660, 2144,
2364      2144, 2144, 2140, 2145, 1659, 1656, 2146, 1323, 1323, 1323,
2365      2278, 2148, 2148, 2148, 3247, 2149, 1651, 2287, 2150, 2151,
2366      2151, 2151, 2297, 2297, 2297, 1325, 2298, 3250, 3251, 2299,
2367
2368      2153, 2153, 2153, 1134, 2154, 1650, 2152, 2155, 1339, 1339,
2369      1339, 2158, 2158, 2158, 1638, 2159, 1636, 1632, 2160, 2305,
2370      2305, 2305, 2166, 2166, 2166, 1631, 1341, 2308, 2308, 2308,
2371      1627, 2309, 1625, 1617, 2310, 3254, 1134, 2306, 1616, 2167,
2372      1615, 2296, 1371, 1371, 1371, 2170, 2170, 2170, 2313, 2313,
2373      2313, 1614, 2314, 1612, 1611, 2315, 1609, 2178, 2178, 2178,
2374      1373, 1607, 2171, 2181, 2181, 2181, 1606, 2182, 3255, 1602,
2375      2183, 1403, 1403, 1403, 2300, 2179, 2184, 2184, 2184, 1601,
2376      2185, 1600, 1599, 2186, 1597, 1411, 1411, 1411, 1596, 1405,
2377      1419, 1419, 1419, 2192, 2192, 2192, 1595, 2193, 1594, 1589,
2378
2379      2194, 1588, 2311, 1413, 1587, 2195, 2195, 2195, 1421, 2196,
2380      1586, 1585, 2197, 1429, 1429, 1429, 1584, 2331, 2331, 2331,
2381      1583, 1577, 2326, 3259, 3259, 3259, 2329, 3259, 3259, 3259,
2382      1576, 1431, 1575, 2330, 2332, 3259, 3259, 3259, 1574, 1567,
2383      3259, 1438, 1438, 1438, 3259, 1444, 1444, 1444, 2339, 2339,
2384      2339, 2328, 3259, 2341, 2341, 2341, 2344, 2344, 2344, 1440,
2385      2211, 2211, 2211, 1446, 2212, 1566, 2340, 2213, 1147, 1147,
2386      1147, 1134, 1564, 1563, 2333, 2215, 2215, 2215, 2346, 2346,
2387      2346, 2347, 2347, 2347, 1560, 1559, 1149, 2220, 2220, 2220,
2388      1550, 2334, 1549, 1545, 2335, 2221, 2221, 2221, 2223, 2223,
2389
2390      2223, 2351, 2351, 2351, 1544, 2338, 2336, 2352, 2352, 2352,
2391      2353, 2353, 2353, 2227, 2227, 2227, 2228, 2228, 2228, 2231,
2392      2231, 2231, 2232, 2232, 2232, 1543, 1542, 2345, 2233, 2233,
2393      2233, 2234, 2234, 2234, 2357, 2357, 2357, 2360, 2360, 2360,
2394      2240, 2240, 2240, 1541, 2241, 1540, 1539, 2242, 3259, 3259,
2395      3259, 1538, 2358, 1536, 2361, 2244, 2244, 2244, 1535, 2246,
2396      2246, 2246, 1533, 2247, 1532, 3259, 2248, 1215, 1215, 1215,
2397      2260, 2260, 2260, 2245, 2261, 2374, 2375, 2262, 2376, 1531,
2398      2380, 2381, 1528, 2382, 1526, 1217, 2377, 1523, 1521, 2378,
2399      1518, 2383, 1509, 2379, 2384, 2263, 2263, 2263, 2385, 2386,
2400
2401      2386, 2386, 2268, 2268, 2268, 2270, 2270, 2270, 1507, 2271,
2402      1500, 1498, 2272, 1497, 2362, 1246, 1246, 1246, 2274, 2274,
2403      2274, 1496, 2275, 1495, 1494, 2276, 1493, 1492, 2373, 2392,
2404      2392, 2392, 1491, 1248, 1269, 1269, 1269, 2402, 2402, 2402,
2405      1299, 1299, 1299, 1490, 2290, 2290, 2290, 2393, 2291, 1489,
2406      1486, 2292, 1271, 2406, 2406, 2406, 1485, 1484, 1301, 1483,
2407      1482, 2391, 2410, 2410, 2410, 2297, 2297, 2297, 1481, 2298,
2408      2407, 1480, 2299, 2412, 2412, 2412, 2305, 2305, 2305, 1478,
2409      2411, 2418, 2418, 2418, 1477, 2394, 2308, 2308, 2308, 1476,
2410      2309, 2413, 1475, 2310, 2306, 1371, 1371, 1371, 2419, 1474,
2411
2412      2403, 2421, 2421, 2421, 2313, 2313, 2313, 1473, 2314, 1472,
2413      1470, 2315, 1469, 1373, 3259, 3259, 3259, 1468, 2422, 3259,
2414      3259, 3259, 3259, 3259, 3259, 2432, 2432, 2432, 2436, 2436,
2415      2436, 3259, 2434, 2434, 2434, 1467, 3259, 1466, 1465, 3259,
2416      1411, 1411, 1411, 1464, 1134, 2437, 2420, 2423, 1458, 1443,
2417      2435, 1442, 1419, 1419, 1419, 2331, 2331, 2331, 1413, 1429,
2418      1429, 1429, 1437, 1436, 2441, 2441, 2441, 1435, 2442, 2424,
2419      1421, 2443, 2332, 2430, 2444, 2444, 2444, 1431, 1434, 1433,
2420      2425, 3259, 3259, 3259, 3259, 3259, 3259, 2448, 2448, 2448,
2421      1407, 2445, 2450, 2450, 2450, 1395, 2440, 1381, 3259, 1380,
2422
2423      2438, 3259, 1444, 1444, 1444, 2449, 2339, 2339, 2339, 2341,
2424      2341, 2341, 1379, 2439, 2344, 2344, 2344, 2346, 2346, 2346,
2425      1446, 2455, 2455, 2455, 2340, 1375, 1370, 1134, 2347, 2347,
2426      2347, 1366, 2446, 1358, 1353, 2447, 2459, 2459, 2459, 2456,
2427      2351, 2351, 2351, 2352, 2352, 2352, 2353, 2353, 2353, 2357,
2428      2357, 2357, 2360, 2360, 2360, 2464, 2464, 2464, 1352, 2465,
2429      1346, 1343, 2466, 1215, 1215, 1215, 1322, 2358, 2451, 2361,
2430      1321, 2452, 2386, 2386, 2386, 2495, 2495, 2495, 1246, 1246,
2431      1246, 1217, 2392, 2392, 2392, 2498, 2498, 2498, 2504, 2504,
2432      2504, 2402, 2402, 2402, 1320, 1319, 1248, 1299, 1299, 1299,
2433
2434      2393, 1318, 1317, 2499, 1316, 2505, 1310, 2406, 2406, 2406,
2435      2509, 2509, 2509, 1303, 2510, 1301, 1292, 2511, 2513, 2513,
2436      2513, 1287, 1286, 2478, 2407, 2410, 2410, 2410, 2412, 2412,
2437      2412, 2517, 2517, 2517, 1285, 2514, 2418, 2418, 2418, 1280,
2438      2523, 2523, 2523, 2411, 2497, 1279, 2413, 1275, 2518, 2421,
2439      2421, 2421, 1274, 2419, 2506, 2520, 2520, 2520, 2524, 2521,
2440      1273, 1268, 2522, 2525, 2525, 2525, 2422, 2526, 1267, 1262,
2441      2527, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2442      2533, 2533, 2533, 2432, 2432, 2432, 1254, 1250, 3259, 1245,
2443      1244, 3259, 1240, 1239, 3259, 1238, 1237, 2534, 2434, 2434,
2444
2445      2434, 2436, 2436, 2436, 2537, 2537, 2537, 1236, 2538, 1235,
2446      1234, 2539, 2540, 2540, 2540, 1233, 2435, 1232, 2437, 1419,
2447      1419, 1419, 1231, 2528, 1429, 1429, 1429, 2441, 2441, 2441,
2448      2541, 2442, 2529, 1230, 2443, 2530, 1229, 1421, 2444, 2444,
2449      2444, 1228, 1431, 2544, 2544, 2544, 1222, 2545, 1214, 1213,
2450      2546, 2547, 2547, 2547, 1212, 2445, 2549, 2549, 2549, 2448,
2451      2448, 2448, 2450, 2450, 2450, 2551, 2551, 2551, 2548, 2455,
2452      2455, 2455, 1207, 2550, 2459, 2459, 2459, 2449, 2561, 2561,
2453      2561, 1206, 1205, 2552, 1202, 1196, 2542, 2456, 2543, 2464,
2454      2464, 2464, 1191, 2465, 1190, 2562, 2466, 1215, 1215, 1215,
2455
2456      2495, 2495, 2495, 1246, 1246, 1246, 2498, 2498, 2498, 2600,
2457      2600, 2600, 2504, 2504, 2504, 1217, 2602, 2602, 2602, 1186,
2458      2603, 1248, 1181, 2604, 2499, 1180, 2601, 1179, 1178, 2505,
2459      2605, 2605, 2605, 2509, 2509, 2509, 1177, 2510, 1176, 1175,
2460      2511, 2513, 2513, 2513, 1173, 2610, 2610, 2610, 2606, 2611,
2461      1172, 1171, 2612, 2614, 2614, 2614, 1170, 2580, 2514, 2517,
2462      2517, 2517, 2616, 2616, 2616, 1169, 2617, 1168, 1167, 2618,
2463      2615, 2619, 2619, 2619, 2598, 1166, 2518, 2520, 2520, 2520,
2464      1165, 2521, 1164, 1163, 2522, 2523, 2523, 2523, 2620, 2525,
2465      2525, 2525, 1162, 2526, 1161, 1160, 2527, 3259, 3259, 3259,
2466
2467      3259, 3259, 3259, 2524, 3259, 3259, 3259, 2533, 2533, 2533,
2468      1159, 2624, 2624, 2624, 3259, 2625, 1158, 3259, 2626, 1157,
2469      1156, 3259, 1155, 1154, 2534, 2627, 2627, 2627, 2629, 2629,
2470      2629, 2537, 2537, 2537, 1153, 2538, 1146, 1145, 2539, 2540,
2471      2540, 2540, 2628, 1144, 1143, 2630, 1419, 1419, 1419, 1142,
2472      1141, 2622, 2621, 1429, 1429, 1429, 1140, 2541, 1137, 2623,
2473      1135, 2544, 2544, 2544, 1421, 2545, 1134, 1132, 2546, 1130,
2474      1127, 1431, 2547, 2547, 2547, 2639, 2639, 2639, 1123, 2640,
2475      1121, 1120, 2641, 2549, 2549, 2549, 2642, 2642, 2642, 2548,
2476      2643, 1119, 1117, 2644, 1116, 2551, 2551, 2551, 1115, 1114,
2477
2478      2550, 2649, 2649, 2649, 2561, 2561, 2561, 1215, 1215, 1215,
2479      1113, 1112, 2637, 2552, 2638, 2653, 2653, 2653, 1110, 2654,
2480      1109, 2562, 2655, 1108, 1107, 1217, 2689, 2689, 2689, 1246,
2481      1246, 1246, 2692, 2692, 2692, 2600, 2600, 2600, 2695, 2695,
2482      2695, 1105, 2696, 1104, 1103, 2697, 1099, 1248, 1098, 2693,
2483      1096, 1095, 2601, 2602, 2602, 2602, 1094, 2603, 2673, 1093,
2484      2604, 2605, 2605, 2605, 2610, 2610, 2610, 1092, 2611, 1091,
2485      1089, 2612, 2614, 2614, 2614, 2649, 2649, 2649, 2694, 2606,
2486      2702, 2702, 2702, 1088, 2703, 1087, 1086, 2704, 1084, 2615,
2487      1083, 2691, 2616, 2616, 2616, 1082, 2617, 1079, 1078, 2618,
2488
2489      2619, 2619, 2619, 2705, 2705, 2705, 1076, 2706, 1073, 1072,
2490      2707, 3259, 3259, 3259, 2709, 2709, 2709, 2620, 3259, 3259,
2491      3259, 1068, 2624, 2624, 2624, 1067, 2625, 1065, 3259, 2626,
2492      1064, 2710, 2627, 2627, 2627, 3259, 2712, 2712, 2712, 1063,
2493      2713, 1060, 1059, 2714, 2629, 2629, 2629, 1058, 1057, 2628,
2494      2715, 2715, 2715, 1055, 2716, 1054, 1053, 2717, 1419, 1419,
2495      1419, 2630, 1429, 1429, 1429, 1052, 1051, 2711, 1046, 2708,
2496      2639, 2639, 2639, 1044, 2640, 1043, 1421, 2641, 1042, 1041,
2497      1431, 2642, 2642, 2642, 1040, 2643, 1039, 1038, 2644, 2732,
2498      2732, 2732, 2735, 2735, 2735, 2653, 2653, 2653, 1037, 2654,
2499
2500      1034, 1031, 2655, 2746, 2746, 2746, 2733, 1672, 1030, 2724,
2501      1215, 1215, 1215, 2689, 2689, 2689, 2772, 2772, 2772, 1029,
2502      2747, 1246, 1246, 1246, 2692, 2692, 2692, 1023, 1217, 2725,
2503      2774, 2774, 2774, 1022, 2775, 1020, 1017, 2776, 1015, 1248,
2504      1014, 2693, 2695, 2695, 2695, 1009, 2696, 1008, 1006, 2697,
2505      2702, 2702, 2702, 1005, 2703, 1004, 1002, 2704,  999, 2756,
2506      2705, 2705, 2705,  997, 2706,  994,  993, 2707, 3259, 3259,
2507      3259,  991, 2773, 2709, 2709, 2709, 2783, 2783, 2783,  990,
2508      2784,  987,  982, 2785,  981, 3259, 3259, 3259, 3259,  978,
2509      2710, 2712, 2712, 2712,  977, 2713,  976,  973, 2714,  972,
2510
2511      2715, 2715, 2715, 3259, 2716,  970,  967, 2717, 2801, 2801,
2512      2801, 1429, 1429, 1429, 2809, 2809, 2809,  965,  964, 2782,
2513      2732, 2732, 2732, 2811, 2811, 2811, 2802, 2812,  963, 1431,
2514      2813, 2810, 1672, 2814, 2814, 2814,  962, 2733, 1672,  960,
2515       959, 1672, 2735, 2735, 2735, 2815, 2815, 2815, 2816, 2816,
2516      2816, 2746, 2746, 2746, 2825, 2825, 2825, 2786, 2826,  958,
2517       957, 2827, 1215, 1215, 1215, 2845, 2845, 2845, 2747, 2772,
2518      2772, 2772, 2846, 2846, 2846,  956,  955, 2803,  952,  951,
2519      1217, 2774, 2774, 2774,  950, 2775,  947,  944, 2776,  943,
2520      2847, 2851, 2851, 2851, 2854, 2854, 2854, 2783, 2783, 2783,
2521
2522       941, 2784,  940,  937, 2785, 2856, 2856, 2856, 2852,  934,
2523       931, 2855, 2801, 2801, 2801, 1429, 1429, 1429, 2809, 2809,
2524      2809,  930, 2857,  922,  921, 2876, 2876, 2876, 2834, 2877,
2525      2802,  920, 2878, 1431,  919, 2810, 1672, 2811, 2811, 2811,
2526       913, 2812,  912, 1672, 2813, 2814, 2814, 2814, 2815, 2815,
2527      2815, 2816, 2816, 2816,  911, 1672, 2825, 2825, 2825,  909,
2528      2826,  908,  907, 2827,  906,  905, 2870, 1670, 1670, 1670,
2529      1670, 1670, 1670, 1670, 1670, 1670,  904,  899, 1670, 2895,
2530      2895, 2895,  896, 1670, 1670, 1670, 1672, 1670, 2845, 2845,
2531      2845, 2846, 2846, 2846, 2851, 2851, 2851, 2896, 2908, 2908,
2532
2533      2908,  898, 2909,  893,  892, 2910, 2854, 2854, 2854, 2847,
2534       890, 2852, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
2535      1670, 1670, 1670, 2855,  888, 1670, 2856, 2856, 2856,  886,
2536      1670, 1670, 1670, 1672, 1670, 2912, 2912, 2912,  884, 2913,
2537       882,  879, 2914, 2857, 2915, 2915, 2915,  878, 2916,  877,
2538       876, 2917, 2930, 2930, 2930, 2895, 2895, 2895,  875, 1670,
2539      1670, 2876, 2876, 2876,  873, 2877,  871,  870, 2878,  869,
2540      2931,  867,  865, 2896, 2930, 2930, 2930,  864,  862, 1672,
2541      1670, 1670, 1670, 1670, 1670, 2942, 1670, 1670, 1670,  860,
2542       859, 1670, 2931,  857,  853,  852, 1670, 1670, 1670, 1672,
2543
2544      1670, 2908, 2908, 2908,  850, 2909,  845,  843, 2910, 2912,
2545      2912, 2912,  839, 2913,  838,  837, 2914, 2915, 2915, 2915,
2546       835, 2916,  833,  832, 2917, 1670, 1670, 1670, 1670, 1670,
2547      1670, 1670, 1670, 1670, 1670, 2942,  831,  829, 1670, 2981,
2548      2981, 2981,  827, 1670, 1670, 1670, 1672, 1670, 2992, 2992,
2549      2992, 2994, 2994, 2994, 2996, 2996, 2996, 1672, 1673, 3004,
2550      3004, 3004, 3014, 3014, 3014, 2993,  826,  824, 2995,  822,
2551       821, 2997, 1670, 1670,  820,  819, 3005, 2981, 2981, 2981,
2552      1134, 2992, 2992, 2992, 3024, 3024, 3024,  818, 3025,  817,
2553       816, 3026, 2994, 2994, 2994, 1672,  814,  812, 2993, 3027,
2554
2555      3027, 3027,  811, 3028,  808,  807, 3029,  806,  804, 2995,
2556      2996, 2996, 2996, 3030, 3030, 3030,  795, 3031,  794,  793,
2557      3032, 3004, 3004, 3004, 3014, 3014, 3014, 2997, 1865, 3039,
2558      3039, 3039,  790, 3040,  788,  786, 3041,  785, 3005, 3024,
2559      3024, 3024, 1134, 3025,  784,  782, 3026, 3027, 3027, 3027,
2560       780, 3028,  778,  775, 3029, 3030, 3030, 3030,  774, 3031,
2561       773, 3050, 3032, 3039, 3039, 3039,  772, 3040,  771,  769,
2562      3041, 3155, 3155, 3155, 3155, 3155, 3155,  767, 3164,  766,
2563       764, 3165, 3257, 3257, 3257, 3257, 3257, 3257,  762, 1134,
2564       761,  759, 1134,  757,  756,  755,  753,  751,  750,  749,
2565
2566      3258,  748,  746, 3258,  254,  254,  254,  254,  254,  254,
2567       254,  254,  254,  255,  255,  255,  255,  255,  255,  255,
2568       255,  255,  260,  260,  260,  260,  260,  260,  260,  260,
2569       260,  263,  263,  263,  263,  263,  263,  263,  263,  263,
2570       266,  266,  266,  266,  266,  266,  266,  266,  266,  269,
2571       269,  269,  269,  269,  269,  269,  269,  269,  276,  276,
2572       276,  276,  276,  276,  276,  276,  276,  284,  284,  284,
2573       284,  284,  284,  284,  284,  284,  288,  288,  288,  288,
2574       288,  288,  288,  288,  288,  300,  300,  300,  300,  300,
2575       300,  300,  300,  300,  304,  304,  304,  304,  304,  304,
2576
2577       304,  304,  304,  311,  311,  311,  311,  311,  311,  311,
2578       311,  311,  322,  322,  322,  322,  322,  322,  322,  322,
2579       322,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2580       336,  336,  336,  336,  336,  336,  336,  336,  336,  342,
2581       342,  342,  342,  342,  342,  342,  342,  342,  348,  348,
2582       348,  348,  348,  348,  348,  348,  348,  353,  353,  353,
2583       353,  353,  353,  353,  353,  353,  372,  372,  372,  372,
2584       372,  372,  372,  372,  372,  379,  379,  379,  379,  379,
2585       379,  379,  379,  379,  386,  386,  386,  386,  386,  386,
2586       386,  386,  386,  392,  392,  392,  392,  392,  392,  392,
2587
2588       392,  392,  399,  399,  399,  399,  399,  399,  399,  399,
2589       399,  404,  404,  404,  404,  404,  404,  404,  404,  404,
2590       410,  410,  410,  410,  410,  410,  410,  410,  410,  415,
2591       415,  415,  415,  415,  415,  415,  415,  415,  421,  421,
2592       421,  421,  421,  421,  421,  421,  421,  429,  429,  429,
2593       429,  429,  429,  429,  429,  429,  437,  437,  437,  437,
2594       437,  437,  437,  437,  437,  441,  441,  441,  441,  441,
2595       441,  441,  441,  441,  447,  447,  447,  447,  447,  447,
2596       447,  447,  447,  453,  453,  453,  453,  453,  453,  453,
2597       453,  453,  470,  470,  470,  470,  470,  470,  470,  470,
2598
2599       470,  476,  476,  476,  476,  476,  476,  476,  476,  476,
2600       485,  485,  485,  485,  485,  485,  485,  485,  485,  491,
2601       491,  491,  491,  491,  491,  491,  491,  491,  501,  501,
2602       501,  501,  501,  501,  501,  501,  501,  507,  507,  507,
2603       507,  507,  507,  507,  507,  507,  512,  512,  512,  512,
2604       512,  512,  512,  512,  512,  518,  518,  518,  518,  518,
2605       518,  518,  518,  518,  524,  524,  524,  524,  524,  524,
2606       524,  524,  524,  530,  530,  530,  530,  530,  530,  530,
2607       530,  530,  537,  537,  537,  537,  537,  537,  537,  537,
2608       537,  544,  544,  544,  544,  544,  544,  544,  544,  544,
2609
2610       549,  549,  549,  549,  549,  549,  549,  549,  549,  557,
2611       557,  557,  557,  557,  557,  557,  557,  557,  563,  563,
2612       563,  563,  563,  563,  563,  563,  563,  570,  570,  570,
2613       570,  570,  570,  570,  570,  570,  575,  575,  575,  575,
2614       575,  575,  575,  575,  575,  581,  581,  581,  581,  581,
2615       581,  581,  581,  581,  586,  586,  586,  586,  586,  586,
2616       586,  586,  586,  593,  593,  593,  593,  593,  593,  593,
2617       593,  593,  599,  599,  599,  599,  599,  599,  599,  599,
2618       599,  606,  606,  606,  606,  606,  606,  606,  606,  606,
2619       614,  614,  614,  614,  614,  614,  614,  614,  614,  622,
2620
2621       622,  622,  622,  622,  622,  622,  622,  622,  626,  626,
2622       626,  626,  626,  626,  626,  626,  626,  632,  632,  632,
2623       632,  632,  632,  632,  632,  632,  636,  636,  636,  636,
2624       636,  636,  636,  636,  636,  643,  643,  643,  643,  643,
2625       643,  643,  643,  643,  648,  648,  648,  648,  648,  648,
2626       648,  648,  648,  668,  668,  668, 3259,  693,  726,  668,
2627       695,  695,  695,  725,  723,  721,  695,  699,  699,  699,
2628       720,  719,  717,  699,  707,  707,  707,  713,  709,  708,
2629       707,  718,  718,  718,  706,  705,  702,  718,  724,  724,
2630       724,  701,  700,  698,  724,  747,  747,  747,  697,  696,
2631
2632       694,  747,  754,  754,  754,  689, 3259,  669,  754,  760,
2633       760,  760,  667,  665,  659,  760,  765,  765,  765,  658,
2634       659,  658,  765,  770,  770,  770,  657,  656, 3259,  770,
2635       779,  779,  779, 3259, 3259, 3259,  779,  783,  783,  783,
2636      3259, 3259, 3259,  783,  789,  789,  789, 3259, 3259, 3259,
2637       789,  805,  805,  805, 3259, 3259, 3259,  805,  815,  815,
2638       815, 3259, 3259, 3259,  815,  825,  825,  825, 3259, 3259,
2639      3259,  825,  830,  830,  830, 3259, 3259, 3259,  830,  836,
2640       836,  836, 3259, 3259, 3259,  836,  844,  844,  844, 3259,
2641      3259, 3259,  844,  851,  851,  851, 3259, 3259, 3259,  851,
2642
2643       858,  858,  858, 3259, 3259, 3259,  858,  863,  863,  863,
2644      3259, 3259, 3259,  863,  868,  868,  868, 3259, 3259, 3259,
2645       868,  874,  874,  874, 3259, 3259, 3259,  874,  883,  883,
2646       883, 3259, 3259, 3259,  883,  887,  887,  887, 3259, 3259,
2647      3259,  887,  891,  891,  891, 3259, 3259, 3259,  891,  895,
2648       895,  895,  895,  895,  895,  895, 3259,  895,  668,  668,
2649       668, 3259, 3259, 3259,  668,  910, 3259, 3259, 3259,  910,
2650       695,  695,  695, 3259, 3259, 3259,  695,  942, 3259, 3259,
2651      3259,  942,  699,  699,  699, 3259, 3259, 3259,  699,  949,
2652      3259, 3259, 3259,  949,  707,  707,  707, 3259, 3259, 3259,
2653
2654       707,  961, 3259, 3259, 3259,  961,  718,  718,  718, 3259,
2655      3259, 3259,  718,  966, 3259, 3259, 3259,  966,  724,  724,
2656       724, 3259, 3259, 3259,  724,  971, 3259, 3259, 3259,  971,
2657       747,  747,  747, 3259, 3259, 3259,  747,  992, 3259, 3259,
2658      3259,  992,  754,  754,  754, 3259, 3259, 3259,  754,  998,
2659      3259, 3259, 3259,  998,  760,  760,  760, 3259, 3259, 3259,
2660       760, 1003, 3259, 3259, 3259, 1003,  765,  765,  765, 3259,
2661      3259, 3259,  765, 1007, 3259, 3259, 3259, 1007,  770,  770,
2662       770, 3259, 3259, 3259,  770, 1016, 3259, 3259, 3259, 1016,
2663       779,  779,  779, 3259, 3259, 3259,  779, 1021, 3259, 3259,
2664
2665      3259, 1021,  783,  783,  783, 3259, 3259, 3259,  783, 1028,
2666      3259, 3259, 3259, 1028,  789,  789,  789, 3259, 3259, 3259,
2667       789, 1045, 3259, 3259, 3259, 1045,  805,  805,  805, 3259,
2668      3259, 3259,  805, 1056, 3259, 3259, 3259, 1056,  815,  815,
2669       815, 3259, 3259, 3259,  815, 1066, 3259, 3259, 3259, 1066,
2670       825,  825,  825, 3259, 3259, 3259,  825, 1071, 3259, 3259,
2671      3259, 1071,  830,  830,  830, 3259, 3259, 3259,  830, 1077,
2672      3259, 3259, 3259, 1077,  836,  836,  836, 3259, 3259, 3259,
2673       836, 1085, 3259, 3259, 3259, 1085,  844,  844,  844, 3259,
2674      3259, 3259,  844, 1090, 3259, 3259, 3259, 1090,  851,  851,
2675
2676       851, 3259, 3259, 3259,  851, 1097, 3259, 3259, 3259, 1097,
2677       858,  858,  858, 3259, 3259, 3259,  858, 1102, 3259, 3259,
2678      3259, 1102,  863,  863,  863, 3259, 3259, 3259,  863, 1106,
2679      3259, 3259, 3259, 1106,  868,  868,  868, 3259, 3259, 3259,
2680       868, 1111, 3259, 3259, 3259, 1111,  874,  874,  874, 3259,
2681      3259, 3259,  874, 1118, 3259, 3259, 3259, 1118,  883,  883,
2682       883, 3259, 3259, 3259,  883, 1122, 3259, 3259, 3259, 1122,
2683       887,  887,  887, 3259, 3259, 3259,  887, 1126, 3259, 3259,
2684      3259, 1126,  891,  891,  891, 3259, 3259, 3259,  891, 1131,
2685      3259, 3259, 3259, 1131, 1133, 1133, 1133, 1133, 1133, 1133,
2686
2687      1133, 1133, 1133, 1139, 3259, 3259, 3259, 3259, 1139,  668,
2688       668,  668, 3259, 3259, 3259,  668, 1148, 1148, 1148, 1148,
2689      3259, 3259, 1148, 1148,  695,  695,  695, 3259, 3259, 3259,
2690       695, 1183, 1183, 1183, 1183, 3259, 3259, 1183, 1183,  699,
2691       699,  699, 3259, 3259, 3259,  699, 1193, 1193, 1193, 1193,
2692      3259, 3259, 1193, 1193,  707,  707,  707, 3259, 3259, 3259,
2693       707, 1209, 1209, 1209, 1209, 3259, 3259, 1209, 1209,  718,
2694       718,  718, 3259, 3259, 3259,  718, 1216, 1216, 1216, 1216,
2695      3259, 3259, 1216, 1216,  724,  724,  724, 3259, 3259, 3259,
2696       724, 1224, 1224, 1224, 1224, 3259, 3259, 1224, 1224,  747,
2697
2698       747,  747, 3259, 3259, 3259,  747, 1247, 1247, 1247, 1247,
2699      3259, 3259, 1247, 1247,  754,  754,  754, 3259, 3259, 3259,
2700       754, 1256, 1256, 1256, 1256, 3259, 3259, 1256, 1256,  760,
2701       760,  760, 3259, 3259, 3259,  760, 1264, 1264, 1264, 1264,
2702      3259, 3259, 1264, 1264,  765,  765,  765, 3259, 3259, 3259,
2703       765, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,
2704       770,  770, 3259, 3259, 3259,  770, 1282, 1282, 1282, 1282,
2705      3259, 3259, 1282, 1282,  779,  779,  779, 3259, 3259, 3259,
2706       779, 1289, 1289, 1289, 1289, 3259, 3259, 1289, 1289,  783,
2707       783,  783, 3259, 3259, 3259,  783, 1300, 1300, 1300, 1300,
2708
2709      3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,
2710       789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,  805,
2711       805,  805,  805, 3259,  805, 3259,  805, 1340, 1340, 1340,
2712      1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259, 3259,
2713      3259,  815, 1355, 1355, 1355, 1355, 3259, 3259, 1355, 1355,
2714       825,  825,  825, 3259, 3259, 3259,  825, 1363, 1363, 1363,
2715      1363, 3259, 3259, 1363, 1363,  830,  830,  830, 3259, 3259,
2716      3259,  830, 1372, 1372, 1372, 1372, 3259, 3259, 1372, 1372,
2717       836,  836,  836, 3259, 3259, 3259,  836, 1383, 1383, 1383,
2718      1383, 3259, 3259, 1383, 1383,  844,  844,  844,  844, 3259,
2719
2720       844, 3259,  844, 1392, 1392, 1392, 1392, 3259, 3259, 1392,
2721      1392,  851,  851,  851,  851, 3259,  851, 3259,  851, 1404,
2722      1404, 1404, 1404, 3259, 3259, 1404, 1404,  858,  858,  858,
2723      3259, 3259, 3259,  858, 1412, 1412, 1412, 1412, 3259, 3259,
2724      1412, 1412,  863,  863,  863,  863, 3259,  863, 3259,  863,
2725      1420, 1420, 1420, 1420, 3259, 3259, 1420, 1420,  868,  868,
2726       868,  868, 3259,  868, 3259,  868, 1430, 1430, 1430, 1430,
2727      3259, 3259, 1430, 1430,  874,  874,  874, 3259, 3259, 3259,
2728       874, 1439, 1439, 1439, 1439, 3259, 3259, 1439, 1439,  883,
2729       883,  883, 3259, 3259, 3259,  883, 1445, 1445, 1445, 1445,
2730
2731      3259, 3259, 1445, 1445, 1452, 1452, 1452, 1452, 3259, 3259,
2732      1452, 1452,  891,  891,  891, 3259, 3259, 3259,  891, 1460,
2733      1460, 1460, 1460, 3259, 3259, 1460, 1460, 1133, 1133, 1133,
2734      1133, 1133, 1133, 1133, 1133, 1133, 1139, 3259, 1139, 3259,
2735      3259, 1139,  668,  668,  668, 3259, 3259, 3259,  668, 1148,
2736      1148, 1148, 1148, 3259, 3259, 1148, 1148,  695,  695,  695,
2737       695, 3259,  695, 3259,  695, 1183, 1183, 1183, 1183, 3259,
2738      3259, 1183, 1183,  699,  699,  699,  699, 3259,  699, 3259,
2739       699, 1193, 1193, 1193, 1193, 3259, 3259, 1193, 1193,  707,
2740       707,  707, 3259, 3259, 3259,  707, 1209, 1209, 1209, 1209,
2741
2742      3259, 3259, 1209, 1209,  718,  718,  718, 3259, 3259, 3259,
2743       718, 1216, 1216, 1216, 1216, 3259, 3259, 1216, 1216,  724,
2744       724,  724, 3259, 3259, 3259,  724, 1224, 1224, 1224, 1224,
2745      3259, 3259, 1224, 1224,  747,  747,  747, 3259, 3259, 3259,
2746       747, 1247, 1247, 1247, 1247, 3259, 3259, 1247, 1247,  754,
2747       754,  754, 3259, 3259, 3259,  754, 1256, 1256, 1256, 1256,
2748      3259, 3259, 1256, 1256,  760,  760,  760,  760, 3259,  760,
2749      3259,  760, 1264, 1264, 1264, 1264, 3259, 3259, 1264, 1264,
2750       765,  765,  765,  765, 3259,  765, 3259,  765, 1270, 1270,
2751      1270, 1270, 3259, 3259, 1270, 1270,  770,  770,  770, 3259,
2752
2753      3259, 3259,  770, 1282, 1282, 1282, 1282, 3259, 3259, 1282,
2754      1282,  779,  779,  779,  779, 3259,  779, 3259,  779, 1289,
2755      1289, 1289, 1289, 3259, 3259, 1289, 1289,  783,  783,  783,
2756       783, 3259,  783, 3259,  783, 1300, 1300, 1300, 1300, 3259,
2757      3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,  789,
2758      1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,  805,  805,
2759       805, 3259, 3259, 3259,  805, 1340, 1340, 1340, 1340, 3259,
2760      3259, 1340, 1340,  815,  815,  815, 3259, 3259, 3259,  815,
2761      1355, 1355, 1355, 1355, 3259, 3259, 1355, 1355,  825,  825,
2762       825, 3259, 3259, 3259,  825, 1363, 1363, 1363, 1363, 3259,
2763
2764      3259, 1363, 1363,  830,  830,  830, 3259, 3259, 3259,  830,
2765      1372, 1372, 1372, 1372, 3259, 3259, 1372, 1372,  836,  836,
2766       836, 3259, 3259, 3259,  836, 1383, 1383, 1383, 1383, 3259,
2767      3259, 1383, 1383,  844,  844,  844, 3259, 3259, 3259,  844,
2768      1392, 1392, 1392, 1392, 3259, 3259, 1392, 1392,  851,  851,
2769       851, 3259, 3259, 3259,  851, 1404, 1404, 1404, 1404, 3259,
2770      3259, 1404, 1404,  858,  858,  858, 3259, 3259, 3259,  858,
2771      1412, 1412, 1412, 1412, 3259, 3259, 1412, 1412, 1420, 1420,
2772      1420, 1420, 3259, 3259, 1420, 1420,  868,  868,  868, 3259,
2773      3259, 3259,  868, 1430, 1430, 1430, 1430, 3259, 3259, 1430,
2774
2775      1430,  874,  874,  874, 3259, 3259, 3259,  874, 1439, 1439,
2776      1439, 1439, 3259, 3259, 1439, 1439,  883,  883,  883, 3259,
2777      3259, 3259,  883, 1445, 1445, 1445, 1445, 3259, 3259, 1445,
2778      1445, 1452, 1452, 1452, 1452, 3259, 3259, 1452, 1452,  891,
2779       891,  891, 3259, 3259, 3259,  891, 1460, 1460, 1460, 1460,
2780      3259, 3259, 1460, 1460, 1133, 1133, 1133, 1133, 1133, 1133,
2781      1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
2782      1670, 1670,  668,  668,  668, 3259, 3259, 3259,  668, 1148,
2783      1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183, 1183, 1183,
2784      1183, 3259, 3259, 1183, 1183,  699,  699,  699, 3259, 3259,
2785
2786      3259,  699, 1193, 1193, 1193, 1193, 3259, 3259, 1193, 1193,
2787       707,  707,  707, 3259, 3259, 3259,  707, 1209, 1209, 1209,
2788      1209, 3259, 3259, 1209, 1209,  718,  718,  718, 3259, 3259,
2789      3259,  718, 1216, 1216, 1216, 1216, 3259, 3259, 1216, 1216,
2790       724,  724,  724, 3259, 3259, 3259,  724,  747,  747,  747,
2791      3259, 3259, 3259,  747, 1247, 1247, 1247, 1247, 3259, 3259,
2792      1247, 1247,  754,  754,  754, 3259, 3259, 3259,  754, 1256,
2793      1256, 1256, 1256, 3259, 3259, 1256, 1256, 1264, 1264, 1264,
2794      1264, 3259, 3259, 1264, 1264,  765,  765,  765, 3259, 3259,
2795      3259,  765, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,
2796
2797       770,  770,  770, 3259, 3259, 3259,  770, 1282, 1282, 1282,
2798      1282, 3259, 3259, 1282, 1282, 1289, 1289, 1289, 1289, 3259,
2799      3259, 1289, 1289, 1300, 1300, 1300, 1300, 3259, 3259, 1300,
2800      1300,  789,  789,  789, 3259, 3259, 3259,  789, 1324, 1324,
2801      1324, 1324, 3259, 3259, 1324, 1324,  805,  805,  805,  805,
2802      3259,  805, 3259,  805, 1340, 1340, 1340, 1340, 3259, 3259,
2803      1340, 1340,  815,  815,  815, 3259, 3259, 3259,  815, 1355,
2804      1355, 1355, 1355, 3259, 3259, 1355, 1355,  825,  825,  825,
2805      3259, 3259, 3259,  825, 1363, 1363, 1363, 1363, 3259, 3259,
2806      1363, 1363,  830,  830,  830, 3259, 3259, 3259,  830, 1372,
2807
2808      1372, 1372, 1372, 3259, 3259, 1372, 1372,  836,  836,  836,
2809      3259, 3259, 3259,  836, 1383, 1383, 1383, 1383, 3259, 3259,
2810      1383, 1383,  844,  844,  844, 3259, 3259, 3259,  844, 1392,
2811      1392, 1392, 1392, 3259, 3259, 1392, 1392,  851,  851,  851,
2812      3259, 3259, 3259,  851, 1404, 1404, 1404, 1404, 3259, 3259,
2813      1404, 1404,  858,  858,  858, 3259, 3259, 3259,  858, 1412,
2814      1412, 1412, 1412, 3259, 3259, 1412, 1412, 1420, 1420, 1420,
2815      1420, 3259, 3259, 1420, 1420,  868,  868,  868, 3259, 3259,
2816      3259,  868, 1430, 1430, 1430, 1430, 3259, 3259, 1430, 1430,
2817       874,  874,  874, 3259, 3259, 3259,  874, 1439, 1439, 1439,
2818
2819      1439, 3259, 3259, 1439, 1439,  883,  883,  883,  883, 3259,
2820       883, 3259,  883, 1445, 1445, 1445, 1445, 3259, 3259, 1445,
2821      1445, 1452, 1452, 1452, 1452, 3259, 3259, 1452, 1452,  891,
2822       891,  891,  891, 3259,  891, 3259,  891, 1460, 1460, 1460,
2823      1460, 3259, 3259, 1460, 1460, 1133, 1133, 1133, 1133, 1133,
2824      1133, 1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670, 1670,
2825      1670, 1670, 1670,  668,  668,  668, 3259, 3259, 3259,  668,
2826      1148, 1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183, 1183,
2827      1183, 1183, 3259, 3259, 1183, 1183,  699,  699,  699, 3259,
2828      3259, 3259,  699, 1193, 1193, 1193, 1193, 3259, 3259, 1193,
2829
2830      1193,  707,  707,  707, 3259, 3259, 3259,  707, 1209, 1209,
2831      1209, 1209, 3259, 3259, 1209, 1209,  718,  718,  718, 3259,
2832      3259, 3259,  718, 1216, 1216, 1216, 1216, 3259, 3259, 1216,
2833      1216,  724,  724,  724, 3259, 3259, 3259,  724,  747,  747,
2834       747, 3259, 3259, 3259,  747, 1247, 1247, 1247, 1247, 3259,
2835      3259, 1247, 1247,  754,  754,  754, 3259, 3259, 3259,  754,
2836      1256, 1256, 1256, 1256, 3259, 3259, 1256, 1256, 1264, 1264,
2837      1264, 1264, 3259, 3259, 1264, 1264,  765,  765,  765,  765,
2838      3259,  765, 3259,  765, 1270, 1270, 1270, 1270, 3259, 3259,
2839      1270, 1270,  770,  770,  770, 3259, 3259, 3259,  770, 1282,
2840
2841      1282, 1282, 1282, 3259, 3259, 1282, 1282, 1300, 1300, 1300,
2842      1300, 3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259,
2843      3259,  789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,
2844       805,  805,  805,  805, 3259,  805, 3259,  805, 1340, 1340,
2845      1340, 1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259,
2846      3259, 3259,  815, 1355, 1355, 1355, 1355, 3259, 3259, 1355,
2847      1355,  825,  825,  825, 3259, 3259, 3259,  825, 1363, 1363,
2848      1363, 1363, 3259, 3259, 1363, 1363,  830,  830,  830, 3259,
2849      3259, 3259,  830, 1372, 1372, 1372, 1372, 3259, 3259, 1372,
2850      1372,  836,  836,  836, 3259, 3259, 3259,  836, 1383, 1383,
2851
2852      1383, 1383, 3259, 3259, 1383, 1383,  844,  844,  844, 3259,
2853      3259, 3259,  844, 1392, 1392, 1392, 1392, 3259, 3259, 1392,
2854      1392,  851,  851,  851,  851, 3259,  851, 3259,  851, 1404,
2855      1404, 1404, 1404, 3259, 3259, 1404, 1404,  858,  858,  858,
2856      3259, 3259, 3259,  858, 1412, 1412, 1412, 1412, 3259, 3259,
2857      1412, 1412, 1420, 1420, 1420, 1420, 3259, 3259, 1420, 1420,
2858       868,  868,  868,  868, 3259,  868, 3259,  868, 1430, 1430,
2859      1430, 1430, 3259, 3259, 1430, 1430,  874,  874,  874, 3259,
2860      3259, 3259,  874, 1439, 1439, 1439, 1439, 3259, 3259, 1439,
2861      1439, 1445, 1445, 1445, 1445, 3259, 3259, 1445, 1445, 1452,
2862
2863      1452, 1452, 1452, 3259, 3259, 1452, 1452, 1460, 1460, 1460,
2864      1460, 3259, 3259, 1460, 1460, 1133, 1133, 1133, 1133, 1133,
2865      1133, 1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670, 1670,
2866      1670, 1670, 1670,  668,  668,  668,  668, 3259,  668, 3259,
2867       668, 1148, 1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183,
2868      1183, 1183, 1183, 3259, 3259, 1183, 1183,  699,  699,  699,
2869      3259, 3259, 3259,  699, 1193, 1193, 1193, 1193, 3259, 3259,
2870      1193, 1193,  707,  707,  707, 3259, 3259, 3259,  707, 1209,
2871      1209, 1209, 1209, 3259, 3259, 1209, 1209,  718,  718,  718,
2872       718, 3259,  718, 3259,  718, 1216, 1216, 1216, 1216, 3259,
2873
2874      3259, 1216, 1216,  724,  724,  724,  724, 3259,  724, 3259,
2875       724,  747,  747,  747,  747, 3259,  747, 3259,  747, 1247,
2876      1247, 1247, 1247, 3259, 3259, 1247, 1247,  754,  754,  754,
2877       754, 3259,  754, 3259,  754, 1256, 1256, 1256, 1256, 3259,
2878      3259, 1256, 1256, 1264, 1264, 1264, 1264, 3259, 3259, 1264,
2879      1264, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,
2880       770,  770, 3259, 3259, 3259,  770, 1300, 1300, 1300, 1300,
2881      3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,
2882       789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,  805,
2883       805,  805,  805, 3259,  805, 3259,  805, 1340, 1340, 1340,
2884
2885      1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259, 3259,
2886      3259,  815,  825,  825,  825, 3259, 3259, 3259,  825, 1363,
2887      1363, 1363, 1363, 3259, 3259, 1363, 1363,  830,  830,  830,
2888      3259, 3259, 3259,  830, 1372, 1372, 1372, 1372, 3259, 3259,
2889      1372, 1372,  836,  836,  836, 3259, 3259, 3259,  836,  844,
2890       844,  844, 3259, 3259, 3259,  844, 1392, 1392, 1392, 1392,
2891      3259, 3259, 1392, 1392,  851,  851,  851, 3259, 3259, 3259,
2892       851, 1404, 1404, 1404, 1404, 3259, 3259, 1404, 1404,  858,
2893       858,  858, 3259, 3259, 3259,  858, 1412, 1412, 1412, 1412,
2894      3259, 3259, 1412, 1412, 1420, 1420, 1420, 1420, 3259, 3259,
2895
2896      1420, 1420, 1430, 1430, 1430, 1430, 3259, 3259, 1430, 1430,
2897       874,  874,  874, 3259, 3259, 3259,  874, 1439, 1439, 1439,
2898      1439, 3259, 3259, 1439, 1439, 1445, 1445, 1445, 1445, 3259,
2899      3259, 1445, 1445, 1452, 1452, 1452, 1452, 3259, 3259, 1452,
2900      1452, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
2901      1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1148,
2902      1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183, 1183, 1183,
2903      1183, 3259, 3259, 1183, 1183,  699,  699,  699, 3259, 3259,
2904      3259,  699,  707,  707,  707, 3259, 3259, 3259,  707, 1209,
2905      1209, 1209, 1209, 3259, 3259, 1209, 1209, 1216, 1216, 1216,
2906
2907      1216, 3259, 3259, 1216, 1216, 1247, 1247, 1247, 1247, 3259,
2908      3259, 1247, 1247, 1256, 1256, 1256, 1256, 3259, 3259, 1256,
2909      1256, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,
2910       770,  770, 3259, 3259, 3259,  770, 1300, 1300, 1300, 1300,
2911      3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,
2912       789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324, 1340,
2913      1340, 1340, 1340, 3259, 3259, 1340, 1340,  815,  815,  815,
2914      3259, 3259, 3259,  815,  825,  825,  825, 3259, 3259, 3259,
2915       825, 1363, 1363, 1363, 1363, 3259, 3259, 1363, 1363,  830,
2916       830,  830, 3259, 3259, 3259,  830, 1372, 1372, 1372, 1372,
2917
2918      3259, 3259, 1372, 1372,  836,  836,  836, 3259, 3259, 3259,
2919       836,  844,  844,  844, 3259, 3259, 3259,  844,  851,  851,
2920       851, 3259, 3259, 3259,  851, 1404, 1404, 1404, 1404, 3259,
2921      3259, 1404, 1404,  858,  858,  858, 3259, 3259, 3259,  858,
2922      1412, 1412, 1412, 1412, 3259, 3259, 1412, 1412, 1420, 1420,
2923      1420, 1420, 3259, 3259, 1420, 1420, 1430, 1430, 1430, 1430,
2924      3259, 3259, 1430, 1430,  874,  874,  874,  874, 3259,  874,
2925      3259,  874, 1439, 1439, 1439, 1439, 3259, 3259, 1439, 1439,
2926      1445, 1445, 1445, 1445, 3259, 3259, 1445, 1445, 1452, 1452,
2927      1452, 1452, 3259, 3259, 1452, 1452, 1133, 1133, 1133, 1133,
2928
2929      1133, 1133, 1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670,
2930      1670, 1670, 1670, 1670, 1148, 1148, 1148, 1148, 3259, 3259,
2931      1148, 1148, 1183, 1183, 1183, 1183, 3259, 3259, 1183, 1183,
2932       699,  699,  699, 3259, 3259, 3259,  699,  707,  707,  707,
2933       707, 3259,  707, 3259,  707, 1216, 1216, 1216, 1216, 3259,
2934      3259, 1216, 1216, 1247, 1247, 1247, 1247, 3259, 3259, 1247,
2935      1247, 1256, 1256, 1256, 1256, 3259, 3259, 1256, 1256, 1270,
2936      1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,  770,  770,
2937      3259, 3259, 3259,  770, 1300, 1300, 1300, 1300, 3259, 3259,
2938      1300, 1300,  789,  789,  789, 3259, 3259, 3259,  789, 1324,
2939
2940      1324, 1324, 1324, 3259, 3259, 1324, 1324, 1340, 1340, 1340,
2941      1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259, 3259,
2942      3259,  815,  825,  825,  825, 3259, 3259, 3259,  825,  830,
2943       830,  830,  830, 3259,  830, 3259,  830, 1372, 1372, 1372,
2944      1372, 3259, 3259, 1372, 1372,  836,  836,  836,  836, 3259,
2945       836, 3259,  836,  844,  844,  844, 3259, 3259, 3259,  844,
2946       851,  851,  851, 3259, 3259, 3259,  851, 1404, 1404, 1404,
2947      1404, 3259, 3259, 1404, 1404,  858,  858,  858,  858, 3259,
2948       858, 3259,  858, 1412, 1412, 1412, 1412, 3259, 3259, 1412,
2949      1412, 1420, 1420, 1420, 1420, 3259, 3259, 1420, 1420, 1430,
2950
2951      1430, 1430, 1430, 3259, 3259, 1430, 1430,  874,  874,  874,
2952       874, 3259,  874, 3259,  874, 1439, 1439, 1439, 1439, 3259,
2953      3259, 1439, 1439, 1445, 1445, 1445, 1445, 3259, 3259, 1445,
2954      1445, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
2955      1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1148,
2956      1148, 1148, 1148, 3259, 3259, 1148, 1148,  699,  699,  699,
2957      3259, 3259, 3259,  699,  707,  707,  707, 3259, 3259, 3259,
2958       707, 1216, 1216, 1216, 1216, 3259, 3259, 1216, 1216, 1247,
2959      1247, 1247, 1247, 3259, 3259, 1247, 1247, 1270, 1270, 1270,
2960      1270, 3259, 3259, 1270, 1270,  770,  770,  770, 3259, 3259,
2961
2962      3259,  770, 1300, 1300, 1300, 1300, 3259, 3259, 1300, 1300,
2963       789,  789,  789, 3259, 3259, 3259,  789, 2879, 2879, 2879,
2964      2879, 2879, 2879, 2879, 2879, 2879, 2880, 2880, 2880, 2880,
2965      2880, 2880, 2880, 2880, 2880, 2937, 2937, 2937, 2937, 2937,
2966      2937, 2937, 2937, 2937, 2940, 2940, 2940, 2940, 2940, 2940,
2967      2940, 2940, 2940, 2978, 2978, 2978, 2978, 2978, 2978, 2978,
2968      2978, 2978, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
2969      2980,  253, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2970      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2971      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2972
2973      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2974      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2975      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2976      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2977      3259, 3259, 3259, 3259, 3259, 3259
2978     } ;
2979
2980 static yyconst flex_int16_t yy_chk[12047] =
2981     {   0,
2982         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2983         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2984         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2985         8,    8,    8,  258,   11,   13,   13,   12,   14,   14,
2986        13,   13,  307,   14,   14,  259,    8,   17,   17,  258,
2987        13,   15,   15,   14,   15,  262,   15,   16,   16,  361,
2988        16,  259,   16,   18,   18, 1532,   15,   19,   19,   19,
2989       536,  262,   16,   20,   20,   20,   23,   23,   23,   24,
2990        24,   24,  536,   19,   25,   25,   25,  361, 1533,   20,
2991       368,   17,   23, 1059,  307,   24,  256,  256,  256, 1059,
2992
2993        25,  257,  257,  257,  261,  261,  261,   18,   21,   21,
2994        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2995        21,   21,   21,  291,   21,   21,   21,   21,   21,   26,
2996        26,   26,   27,   27,   27,   28,   28,   28,  291,   29,
2997        29,   29,   30,   30,   30,   26,  368,  467,   27,  285,
2998       467,   28,  673,   21,   21,   29,  301,  280,   30,   31,
2999        31,   31,  282,  282,  282,  285,  289,  289,  289,  298,
3000       298,  298,  301,  280,  357,   31,  673,   21,   22,   22,
3001        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3002        22,   22,   22, 1538,   22,   22,   22,   22,   22,   32,
3003
3004        32,   32,   33,   33,   33,   34,   34,   34,  272,   35,
3005        35,   35,   36,   36,   36,   32,  280,  360,   33,  482,
3006       729,   34,  482,   22,   22,   35,  357,  360,   36,   37,
3007        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3008        40,   41,   41,   41,  729,   37,  548,   22,   38,  312,
3009       272,   39,  463,  548,   40,  360,  272,   41,   42,   42,
3010        42,  272,  305,  305,  305,  312,  272,  309,  309,  309,
3011       320,  320,  320,  463,   42,   43,   43,   43,   43,   43,
3012        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3013       329,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3014
3015        46,   46,   47,   47,   47,  329,   48,   48,   48,   49,
3016        49,   49,   45,  661,  553,   46,  661, 1539,   47,  327,
3017        43,   43,   48,  327,  381,   49,  293,  327,   43,   44,
3018        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3019        44,   44,   44,   44,  323,   44,   44,   44,   44,   44,
3020        50,   50,   50,   51,   51,   51,   52,   52,   52,  468,
3021       323,  566,   55,   55,  562,  293,   50,   55,  294,   51,
3022       553,  562,   52,  468,   44,   44,  381,   55,  293,  382,
3023       293, 1540,   44,   53,   53,   53,   53,   53,   53,   53,
3024        53,   53,   53,   53,   53,   53,   53,   53, 1541,   53,
3025
3026        53,   53,   53,   53, 1542,  337,   55,  294,   59,   59,
3027        59,   60,   60,   60,   63,   63,   63,  566,   56,   56,
3028       294,  337,  294,   56,   59,  317,  552,   60,   53,   53,
3029        63,  382,  317,   56,  552,  589,   53,  394, 1543,   53,
3030       602,  317,  331,  331,  331, 1544,   53,   54,   54,   54,
3031        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3032        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3033        64,   67,   67,   67,   68,   68,   68, 1549,   69,   69,
3034        69,   70,   70,   70,   64,  349,  367,   67,  332,  394,
3035        68,  589,   54,   54,   69,  332,  602,   70, 1550, 1557,
3036
3037        54,  349,  367,   54,  332,  334,  334,  334,  395, 1559,
3038        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3039        57,   57,   57,   57,   57,   57, 1560,   57,   57,   57,
3040        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3041        73,  433,   74,   74,   74,   75,   75,   75,   71, 1566,
3042       373,   72,  344,  387,   73, 1567,   57,   57,   74,  344,
3043       395,   75,  343,  343,  343,   57,  373,   57,  344,  387,
3044       431,   57,  346,  346,  346,  539,   57,   57,   58,   58,
3045        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3046        58,   58,   58,  433,   58,   58,   58,   58,   58,   76,
3047
3048        76,   76,   77,   77,   77,   78,   78,   78,  617,   79,
3049        79,   79,   80,   80,   80,   76,  359, 1574,   77,  431,
3050       617,   78,  431,   58,   58,   79,  359,  539,   80,  354,
3051       354,  354,   58,  359,   58,  370,  370,  370,   58,  380,
3052       380,  380, 1576,   58,   58,   61,   61,   61,   61,   61,
3053        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3054       365,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3055        82,   82,   83,   83,   83,  703,   84,   84,   84,   85,
3056        85,   85,   81,  679, 1577,   82,  652,  679,   83,  365,
3057        61,   61,   84,  365,  365,   85, 1584,   61,  384,  384,
3058
3059       384,  652,  365,   61,  365,  393,  393,  393,  397,  397,
3060       397,  703,   61,   62,   62,   62,   62,   62,   62,   62,
3061        62,   62,   62,   62,   62,   62,   62,   62, 1585,   62,
3062        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3063        88,   88,   88, 1586,   89,   89,   89,   90,   90,   90,
3064        86,  400,  681,   87, 1587,  738,   88,  406,   62,   62,
3065        89,  411,  422,   90,  406,   62,  681,  400,  405,  405,
3066       405,   62,  739,  406,  408,  408,  408,  411,  422,  738,
3067        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3068        65,   65,   65,   65,   65,   65,  739,   65,   65,   65,
3069
3070        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3071        93, 1588,   94,   94,   94,   95,   95,   95,   91,  438,
3072       772,   92,  417,  772,   93,  540,   65,   65,   94,  417,
3073      1589,   95,  416,  416,  416,  438,  432,   65,  417,  419,
3074       419,  419,  430,  430,  430, 1599,   65,   66,   66,   66,
3075        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3076        66,   66,  740,   66,   66,   66,   66,   66,   96,   96,
3077        96,   97,   97,   97,   98,   98,   98,  540,   99,   99,
3078        99,  100,  100,  100,   96,  432,  740,   97,  432,  741,
3079        98, 1601,   66,   66,   99,  443, 1602,  100,  101,  101,
3080
3081       101, 1607,  443,   66,  102,  102,  102,  435,  435,  435,
3082       618,  443,   66,  741,  101,  442,  442,  442,  366, 1609,
3083       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3084       103,  103,  103,  103,  103,  103,  745,  103,  103,  103,
3085       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3086       107,  777,  108,  108,  108,  777,  366,  448,  105, 1136,
3087       745,  106,  618, 1136,  107,  363,  103,  103,  108,  455,
3088       460,  103,  366,  448,  638,  363,  455,  103,  445,  445,
3089       445,  103,  454,  454,  454,  455,  460,  103,  104,  104,
3090       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3091
3092       104,  104,  104,  363,  104,  104,  104,  104,  104,  109,
3093       109,  109,  110,  110,  110,  111,  111,  111,  639,  112,
3094       112,  112,  457,  457,  457,  109,  638,  469,  110,  472,
3095       477,  111, 1463,  104,  104,  112,  472,  492,  104,  469,
3096       469,  471,  471,  471,  104,  472,  477, 1611,  104,  474,
3097       474,  474, 1463,  492,  104,  113,  113,  113,  113,  113,
3098       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3099       639,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3100       116,  116,  117,  117,  117,  685,  118,  118,  118,  486,
3101       486,  486,  115,  508,  519,  116,  487, 1612,  117,  685,
3102
3103       113,  113,  118,  487, 1614,  113,  489,  489,  489,  508,
3104       519,  113,  487,  502,  502,  502,  505,  505,  505,  513,
3105       513,  513,  113,  114,  114,  114,  114,  114,  114,  114,
3106       114,  114,  114,  114,  114,  114,  114,  114, 1615,  114,
3107       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3108       121,  121,  121,  734,  122,  122,  122, 1616,  503, 1167,
3109       119, 1625,  531,  120,  514,  503,  121,  734,  114,  114,
3110       122,  514, 1167,  114,  503,  516,  516,  516,  531,  114,
3111       514,  525,  525,  525,  528,  528,  528,  538,  538,  538,
3112       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3113
3114       123,  123,  123,  123,  123,  123, 1631,  123,  123,  123,
3115       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3116       129, 1632,  130,  130,  130,  133,  133,  133,  125,  545,
3117       558,  126,  526, 1636,  129,  565,  123,  123,  130,  526,
3118      1638,  133,  542,  542,  542,  545,  558,  123,  526,  550,
3119       550,  550,  123,  124,  124,  124,  124,  124,  124,  124,
3120       124,  124,  124,  124,  124,  124,  124,  124, 1650,  124,
3121       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3122       136,  136,  136,  565,  137,  137,  137,  138,  138,  138,
3123       134,  565, 1651,  135, 1656, 1659,  136,  571,  124,  124,
3124
3125       137, 1660, 1661,  138, 1663,  551,  555,  555,  555,  124,
3126       564,  564,  564,  571,  124,  127,  127,  127,  127,  127,
3127       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3128      1670,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3129       140,  140,  143,  143,  143,  742,  144,  144,  144,  147,
3130       147,  147,  139,  551, 1673,  140,  577,  551,  143,  742,
3131       127,  127,  144,  577,  582,  147,  568,  568,  568,  576,
3132       576,  576,  577,  579,  579,  579,  127,  587,  587,  587,
3133       582, 1676,  127,  128,  128,  128,  128,  128,  128,  128,
3134       128,  128,  128,  128,  128,  128,  128,  128, 1677,  128,
3135
3136       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3137       152,  152,  152, 1679,  155,  155,  155,  156,  156,  156,
3138       148, 1669,  594,  151, 1680, 1681,  152,  607,  128,  128,
3139       155,  674,  623,  156,  591,  591,  591,  588,  594,  600,
3140       600,  600,  674,  607,  128,  674, 1669,  601,  623, 1682,
3141       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3142       131,  131,  131,  131,  131,  131, 1683,  131,  131,  131,
3143       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3144       163, 1684,  164,  164,  164,  588,  633, 1685,  159, 1687,
3145      1688,  160, 1690,  588,  163,  601,  131,  131,  164,  131,
3146
3147       644,  131,  633,  601,  604,  604,  604,  131,  615,  615,
3148       615,  620,  620,  620,  131,  616,  644,  131,  132,  132,
3149       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3150       132,  132,  132, 1692,  132,  132,  132,  132,  132,  167,
3151       167,  167,  168,  168,  168,  171,  171,  171,  684,  172,
3152       172,  172,  616, 1694, 1695,  167,  897, 1697,  168,  684,
3153      1179,  171,  684,  132,  132,  172,  132,  616,  132,  627,
3154       627,  627,  897, 1179,  132,  630,  630,  630,  637,  637,
3155       637,  132, 1699, 1701,  132,  141,  141,  141,  141,  141,
3156       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3157
3158      1702,  141,  141,  141,  141,  141,  173,  173,  173,  174,
3159       174,  174,  175,  175,  175,  744,  176,  176,  176,  177,
3160       177,  177,  173, 1703, 1704,  174,  628,  650,  175,  744,
3161       141,  141,  176,  628,  650,  177,  641,  641,  641,  649,
3162       649,  649,  628,  650, 1705, 1707,  141,  142,  142,  142,
3163       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3164       142,  142, 1716,  142,  142,  142,  142,  142,  178,  178,
3165       178,  181,  181,  181,  182,  182,  182, 1717,  183,  183,
3166       183,  184,  184,  184,  178, 1719, 1723,  181,  680, 1727,
3167       182, 1729,  142,  142,  183,  680, 1736,  184,  651,  651,
3168
3169       651,  680,  660,  660,  660, 1151, 1151, 1151,  142,  145,
3170       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3171       145,  145,  145,  145, 1737,  145,  145,  145,  145,  145,
3172       185,  185,  185,  186,  186,  186,  187,  187,  187,  687,
3173       188,  188,  188,  191,  191,  191,  185, 1738, 1739,  186,
3174       687,  689,  187,  687,  145,  145,  188,  691,  689,  191,
3175       145,  660,  692,  693,  689,  145, 1741, 1745,  691,  692,
3176       693,  691, 1159, 1159, 1159,  692,  693,  145,  146,  146,
3177       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3178       146,  146,  146, 1746,  146,  146,  146,  146,  146,  192,
3179
3180       192,  192,  193,  193,  193,  194,  194,  194, 1747,  195,
3181       195,  195,  196,  196,  196,  192, 1750, 1757,  193,  733,
3182       736,  194, 1769,  146,  146,  195,  733,  736,  196,  146,
3183       743, 1770,  733,  736,  146,  900,  900,  900, 1778,  900,
3184      1781,  743, 1791, 1795,  743, 1802,  146,  149,  149,  149,
3185       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3186       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3187       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3188       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3189       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3190
3191       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3192       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3193       149,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3194       153,  153,  153,  153,  153,  153, 1803,  153,  153,  153,
3195       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3196       201, 1804,  202,  202,  202,  205,  205,  205,  197, 1031,
3197      1805,  198, 1233, 1814,  201, 1818,  153,  153,  202, 1031,
3198       153,  205,  912,  912,  912, 1233, 1031,  153, 1821, 1823,
3199       153,  934,  934,  934,  153, 1825,  153,  153,  154,  154,
3200       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3201
3202       154,  154,  154, 1826,  154,  154,  154,  154,  154,  206,
3203       206,  206,  207,  207,  207,  208,  208,  208, 1828,  209,
3204       209,  209,  210,  210,  210,  206, 1829, 1830,  207, 1833,
3205      1835,  208, 1837,  154,  154,  209,  912,  154,  210,  946,
3206       946,  946, 1842,  946,  154,  934,  946,  154, 1174, 1174,
3207      1174,  154, 1848,  154,  154,  157,  157,  157,  157,  157,
3208       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3209      1852,  157,  157,  157,  157,  157,  211,  211,  211,  212,
3210       212,  212,  215,  215,  215, 1853,  216,  216,  216,  701,
3211       701,  701,  211, 1854, 1856,  212, 1864, 1868,  215, 1871,
3212
3213       157,  157,  216,  157,  157,  157,  701, 1872,  954,  954,
3214       954,  157,  954, 1864,  157,  954, 1873, 1875,  157, 1865,
3215      1876,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3216       158,  158,  158,  158,  158,  158,  158, 1878,  158,  158,
3217       158,  158,  158,  217,  217,  217,  218,  218,  218,  219,
3218       219,  219, 1879,  220,  220,  220,  709,  709,  709,  217,
3219      1880, 1865,  218, 1882, 1874,  219, 1883,  158,  158,  220,
3220       158,  158,  158,  709, 1884,  969,  969,  969,  158,  969,
3221      1874,  158,  969, 1888, 1890,  158, 1866, 1893,  158,  161,
3222       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3223
3224       161,  161,  161,  161, 1894,  161,  161,  161,  161,  161,
3225       221,  221,  221,  222,  222,  222,  225,  225,  225, 1866,
3226       226,  226,  226,  725,  725,  725,  221, 1895, 1896,  222,
3227      1898, 1900,  225, 1901,  161,  161,  226, 1903, 1905,  161,
3228       725, 1230, 1230, 1230, 1908,  161,  162,  162,  162,  162,
3229       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3230       162, 1909,  162,  162,  162,  162,  162,  227,  227,  227,
3231       228,  228,  228,  229,  229,  229, 1910,  230,  230,  230,
3232       749,  749,  749,  227, 1910, 1911,  228, 1912, 1913,  229,
3233      1915,  162,  162,  230, 1921, 1922,  162,  749, 1479, 1479,
3234
3235      1479, 1924,  162,  165,  165,  165,  165,  165,  165,  165,
3236       165,  165,  165,  165,  165,  165,  165,  165, 1927,  165,
3237       165,  165,  165,  165,  231,  231,  231,  232,  232,  232,
3238       235,  235,  235, 1914,  236,  236,  236,  239,  239,  239,
3239       231, 1914, 1923,  232, 1928, 1929,  235, 1943,  165,  165,
3240       236, 1944,  165,  239,  973,  973,  973, 1949, 1923,  165,
3241      1928, 1929,  165,  166,  166,  166,  166,  166,  166,  166,
3242       166,  166,  166,  166,  166,  166,  166,  166, 1950,  166,
3243       166,  166,  166,  166,  240,  240,  240,  241,  241,  241,
3244       242,  242,  242, 1951,  243,  243,  243,  244,  244,  244,
3245
3246       240, 1955, 1957,  241, 1963, 1970,  242, 1971,  166,  166,
3247       243, 1972,  166,  244,  982,  982,  982, 1985,  973,  166,
3248      1991, 1995,  166,  169,  169,  169,  169,  169,  169,  169,
3249       169,  169,  169,  169,  169,  169,  169,  169, 1998,  169,
3250       169,  169,  169,  169,  245,  245,  245,  246,  246,  246,
3251       249,  249,  249, 2000,  250,  250,  250,  756,  756,  756,
3252       245, 2003, 2005,  246, 2007, 2008,  249,  358,  169,  169,
3253       250, 2009,  169,  292,  756, 2012, 2014,  358,  982,  169,
3254      2019, 2021,  169,  292, 2029, 2030,  364, 2031, 2032,  169,
3255       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3256
3257       170,  170,  170,  170,  170,  358,  170,  170,  170,  170,
3258       170, 2034,  292, 2048,  364,  761,  761,  761,  292,  358,
3259       773,  773,  773,  358, 2053,  292,  785,  785,  785,  292,
3260       364, 2054,  761, 2055, 2056,  170,  170,  773, 2060,  170,
3261       989,  989,  989,  785,  989, 2062,  170,  989, 2063,  170,
3262      1480, 1480, 1480, 1482, 1482, 1482,  170,  179,  179,  179,
3263       179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
3264       179,  179, 2064,  179,  179,  179,  179,  179,  786,  786,
3265       786,  792,  792,  792,  794,  794,  794,  806,  806,  806,
3266       807,  807,  807, 2047, 2045,  786, 1480, 2069,  792, 1482,
3267
3268      2045,  794,  179,  179,  806, 2076, 2078,  807,  179,  996,
3269       996,  996, 2079,  996, 2082, 2085,  996, 1485, 1485, 1485,
3270      1488, 1488, 1488,  179,  180,  180,  180,  180,  180,  180,
3271       180,  180,  180,  180,  180,  180,  180,  180,  180, 2047,
3272       180,  180,  180,  180,  180,  819,  819,  819,  827,  827,
3273       827,  832,  832,  832,  838,  838,  838,  860,  860,  860,
3274      2089, 2090,  819, 2091, 2092,  827, 2093, 2094,  832,  180,
3275       180,  838, 2095, 2096,  860,  180, 1001, 1001, 1001, 2097,
3276      1001, 2098, 2103, 1001, 1498, 1498, 1498, 1534, 1534, 1534,
3277       180,  189,  189,  189,  189,  189,  189,  189,  189,  189,
3278
3279       189,  189,  189,  189,  189,  189, 2104,  189,  189,  189,
3280       189,  189,  888,  888,  888,  892,  892,  892, 2046, 2105,
3281       910,  910,  910,  911,  911,  911,  942,  942,  942,  888,
3282      2106, 2124,  892,  943,  943,  943,  189,  189,  910, 2125,
3283      2128,  911,  189, 2129,  942,  189, 1013, 1013, 1013, 2046,
3284      1013,  943, 2131, 1013, 1537, 1537, 1537,  189,  190,  190,
3285       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
3286       190,  190,  190, 2135,  190,  190,  190,  190,  190, 2141,
3287      2142,  911,  945,  945,  945, 2143, 2157,  949,  949,  949,
3288       950,  950,  950,  943,  953,  953,  953, 2161, 2126,  945,
3289
3290       955,  955,  955,  190,  190,  949, 2126, 2162,  950,  190,
3291      2163,  953,  190, 2165, 1025, 1025, 1025,  955, 1025, 2169,
3292      2172, 1025, 2173, 2176,  190,  199,  199,  199,  199,  199,
3293       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3294      2177,  199,  199,  199,  199,  199,  957,  957,  957,  961,
3295       961,  961, 2180, 2187,  950, 2189,  962,  962,  962,  966,
3296       966,  966, 2204,  957, 1535, 1535, 1535,  961, 2218, 2219,
3297       199,  199, 2222, 2229,  962, 2230,  199,  966, 1686, 1686,
3298      1686,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3299       200,  200,  200,  200,  200,  200,  200, 2235,  200,  200,
3300
3301       200,  200,  200,  962,  967,  967,  967,  968,  968,  968,
3302      1535,  971,  971,  971,  988,  988,  988,  972,  972,  972,
3303      1731, 2237,  967, 2249,  968, 2250, 1731,  200,  200,  971,
3304      1731,  988, 2251,  200, 1731,  972, 2208, 2252,  200,  203,
3305       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3306       203,  203,  203,  203,  972,  203,  203,  203,  203,  203,
3307       992,  992,  992,  993,  993,  993, 1732, 2253,  967,  995,
3308       995,  995, 1732,  998,  998,  998, 1732, 2254,  992, 2208,
3309      1732,  993, 2255, 2256,  203,  203,  995, 1000, 1000, 1000,
3310       203,  998, 1027, 1027, 1027, 2257, 1027, 2258, 2265, 1027,
3311
3312      2266, 1536, 1536, 1536, 1000,  203,  204,  204,  204,  204,
3313       204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
3314       204, 2267,  204,  204,  204,  204,  204, 2269, 2279,  993,
3315       999,  999,  999, 2280, 2281, 1003, 1003, 1003, 1004, 1004,
3316      1004, 1007, 1007, 1007, 1008, 1008, 1008, 1536,  999, 2282,
3317      2127,  204,  204, 1003, 2283, 2284, 1004,  204, 2127, 1007,
3318      2174, 2175, 1008, 1033, 1033, 1033, 2285, 1033, 2174, 2175,
3319      1033, 2288,  204,  213,  213,  213,  213,  213,  213,  213,
3320       213,  213,  213,  213,  213,  213,  213,  213, 2209,  213,
3321       213,  213,  213,  213, 2289, 2294,  999, 2295, 2301, 1004,
3322
3323      1012, 1012, 1012, 1016, 1016, 1016, 1024, 1024, 1024, 1008,
3324      1017, 1017, 1017, 1021, 1021, 1021, 2302, 1012,  213,  213,
3325      2303, 1016, 2304, 1024,  213, 2318, 2319,  213, 1017, 2320,
3326      2321, 1021, 1689, 1689, 1689, 2209, 1627, 1627, 1627,  213,
3327       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3328       214,  214,  214,  214,  214, 2323,  214,  214,  214,  214,
3329       214, 1026, 1026, 1026, 2325, 2342, 1022, 1022, 1022, 2348,
3330      2349, 1017, 1028, 1028, 1028, 1029, 1029, 1029, 1026, 1032,
3331      1032, 1032, 1627, 2354, 1022,  214,  214, 1035, 1035, 1035,
3332      1028,  214, 2355, 1029,  214, 2356, 1032, 2342, 1036, 1036,
3333
3334      1036, 2359, 1036, 2362, 1035, 1036,  214,  223,  223,  223,
3335       223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
3336       223,  223, 2343,  223,  223,  223,  223,  223, 1022, 1037,
3337      1037, 1037, 1045, 1045, 1045, 2363, 1029, 1046, 1046, 1046,
3338      1047, 1047, 1047, 1056, 1056, 1056, 1037, 1048, 1048, 1048,
3339      1045, 1048,  223,  223, 1048, 1046, 2364, 1047, 2365, 2343,
3340       223, 1056,  223, 2366, 2367,  223, 1691, 1691, 1691,  223,
3341      1693, 1693, 1693,  223,  224,  224,  224,  224,  224,  224,
3342       224,  224,  224,  224,  224,  224,  224,  224,  224, 2368,
3343       224,  224,  224,  224,  224, 1046, 1049, 1049, 1049, 1050,
3344
3345      1050, 1050, 2369, 1050, 2370, 2371, 1050, 1051, 1051, 1051,
3346      1066, 1066, 1066, 1049, 1052, 1052, 1052, 2372, 2374,  224,
3347       224, 1053, 1053, 1053, 1051, 2375, 2377,  224, 1066,  224,
3348      2376, 1052,  224, 1696, 1696, 1696,  224, 2378, 1053, 2376,
3349       224,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3350       233,  233,  233,  233,  233,  233, 2379,  233,  233,  233,
3351       233,  233, 1057, 1057, 1057, 1052, 1061, 1061, 1061, 1706,
3352      1706, 1706, 2380, 1053, 1055, 1055, 1055, 1054, 1054, 1054,
3353      1057, 2381, 2383, 1061, 2382, 2384,  233,  233, 1062, 1062,
3354      1062, 1055, 1062, 2382, 1054, 1062, 1070, 1070, 1070, 2385,
3355
3356      1070, 2387, 2388, 1070, 2390, 1698, 1698, 1698, 2395, 1057,
3357       233,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3358       234,  234,  234,  234,  234,  234, 1055,  234,  234,  234,
3359       234,  234, 1054, 1063, 1063, 1063, 1069, 1069, 1069, 2396,
3360      1071, 1071, 1071, 2397, 2399, 1067, 1067, 1067, 2404, 2405,
3361      1063, 2408, 2414, 1069, 2415, 2417,  234,  234, 1071, 1072,
3362      1072, 1072, 2426, 1067, 1075, 1075, 1075, 2428, 1075, 1698,
3363      2431, 1075, 1081, 1081, 1081, 2433, 1081, 1072, 2452, 1081,
3364       234,  237,  237,  237,  237,  237,  237,  237,  237,  237,
3365       237,  237,  237,  237,  237,  237, 1067,  237,  237,  237,
3366
3367       237,  237, 1074, 1074, 1074, 1077, 1077, 1077, 1080, 1080,
3368      1080, 2457, 1078, 1078, 1078, 1085, 1085, 1085, 2452, 1074,
3369      1072, 2458, 2460, 1077, 2454, 1080,  237,  237, 2461, 2462,
3370      1078, 2467, 2468, 1085, 1700, 1700, 1700,  237,  238,  238,
3371       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3372       238,  238,  238, 2469,  238,  238,  238,  238,  238, 1078,
3373      2470, 1086, 1086, 1086, 1087, 1087, 1087, 2454, 1088, 1088,
3374      1088, 1089, 1089, 1089, 1090, 1090, 1090, 2471, 2472, 1086,
3375      1700, 1087, 2473,  238,  238, 1088, 2474, 2475, 1089, 1740,
3376      1740, 1740, 1090, 2476,  238,  247,  247,  247,  247,  247,
3377
3378       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
3379      2477,  247,  247,  247,  247,  247, 1086, 2479, 2480, 1091,
3380      1091, 1091, 1093, 1093, 1093, 1742, 1742, 1742, 2481, 2482,
3381      1089, 1095, 1095, 1095, 1097, 1097, 1097, 1091, 2483, 1093,
3382       247,  247, 1094, 1094, 1094, 1096, 1096, 1096, 1095, 2453,
3383      2484,  247, 1097, 1101, 1101, 1101, 2485, 1101, 2486, 1094,
3384      1101, 2487, 1096, 2488,  247,  248,  248,  248,  248,  248,
3385       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
3386      1091,  248,  248,  248,  248,  248, 2453, 1098, 1098, 1098,
3387      2489, 2490, 1094, 2491, 2492, 1100, 1100, 1100, 1102, 1102,
3388
3389      1102, 1103, 1103, 1103, 1096, 1098, 2493, 1094, 2494, 2496,
3390       248,  248, 1100, 1104, 1104, 1104, 1102, 2500, 2507, 1103,
3391      2508,  248, 2512, 2515, 1098, 2556, 1105, 1105, 1105, 2558,
3392      1104, 1106, 1106, 1106,  248,  290, 1107, 1107, 1107, 1111,
3393      1111, 1111,  290, 1105, 1108, 1108, 1108, 2559, 2560, 1106,
3394      2554,  290,  290, 2555, 1107, 2553, 1103, 1111, 1109, 1109,
3395      1109, 1108, 1743, 1743, 1743, 1110, 1110, 1110, 2563, 2564,
3396      1112, 1112, 1112, 2538, 2566, 1109, 1124, 1124, 1124,  290,
3397       290,  290, 1110, 2538, 2553,  290,  290,  290, 1112, 2538,
3398       290,  290, 2554, 1124,  290, 2555,  290,  290,  290,  355,
3399
3400      1118, 1118, 1118, 1119, 1119, 1119,  355, 1107, 1109, 1122,
3401      1122, 1122, 1123, 1123, 1123,  355,  355, 2567, 1118, 2465,
3402      2565, 1119, 2569, 1109, 1125, 1125, 1125, 1122, 1125, 2465,
3403      1123, 1125, 2465, 2565, 1126, 1126, 1126, 2570, 1127, 1127,
3404      1127, 1112, 2571,  355,  355,  355, 1128, 1128, 1128,  355,
3405       355,  355, 1126, 2572,  355,  355, 1127, 2568,  355, 2539,
3406       355,  355,  355, 1128, 1129, 1129, 1129, 1119, 1129, 2539,
3407      2568, 1129, 1131, 1131, 1131, 2539, 1123, 1132, 1132, 1132,
3408      1147, 1147, 1147, 1148, 1148, 1148, 1150, 1150, 1150, 2573,
3409      1131, 1181, 1181, 1181, 2575, 1132, 2576, 2577, 1147, 1127,
3410
3411      2578, 1148, 2581, 2582, 1150, 1182, 1182, 1182, 1181, 1183,
3412      1183, 1183, 1185, 1185, 1185, 1186, 1186, 1186, 1187, 1187,
3413      1187, 2583, 1187, 1182, 2584, 1187, 2585, 1183, 2586, 2587,
3414      1185, 2588, 1186, 1150, 1190, 1190, 1190, 1192, 1192, 1192,
3415      2589, 1132, 1193, 1193, 1193, 1195, 1195, 1195, 1200, 1200,
3416      1200, 1190, 1197, 1197, 1197, 1192, 1197, 2590, 2591, 1197,
3417      1193, 1185, 2592, 1195, 2593, 1200, 1201, 1201, 1201, 2594,
3418      1201, 2595, 2597, 1201, 1202, 1202, 1202, 1203, 1203, 1203,
3419      1204, 1204, 1204, 2607, 1204, 2608, 2609, 1204, 1206, 1206,
3420      1206, 1202, 1195, 2613, 1203, 1190, 1208, 1208, 1208, 1209,
3421
3422      1209, 1209, 1211, 1211, 1211, 1206, 1213, 1213, 1213, 1215,
3423      1215, 1215, 2631, 2632, 1208, 2633, 2634, 1209, 2635, 2636,
3424      1211, 2640, 2648, 1213, 1216, 1216, 1216, 1215, 1218, 1218,
3425      1218, 1219, 1219, 1219, 2640, 1219, 2651, 2652, 1219, 1223,
3426      1223, 1223, 1216, 1224, 1224, 1224, 1218, 1226, 1226, 1226,
3427      2466, 1241, 1241, 1241, 2646, 1241, 2656, 1223, 1241, 2645,
3428      2466, 1224, 1211, 2466, 2657, 1226, 1245, 1245, 1245, 1246,
3429      1246, 1246, 1247, 1247, 1247, 1218, 1249, 1249, 1249, 1255,
3430      1255, 1255, 2641, 1245, 1251, 1251, 1251, 1246, 1251, 2646,
3431      1247, 1251, 2658, 2659, 1249, 2641, 2660, 1255, 1256, 1256,
3432
3433      1256, 1258, 1258, 1258, 1259, 1259, 1259, 2645, 1259, 2661,
3434      2662, 1259, 1262, 1262, 1262, 2663, 1256, 2665, 2666, 1258,
3435      1263, 1263, 1263, 1264, 1264, 1264, 1266, 1266, 1266, 1262,
3436      1267, 1267, 1267, 1268, 1268, 1268, 2667, 1249, 1263, 2668,
3437      2669, 1264, 2670, 2671, 1266, 2672, 2674, 1267, 2675, 2676,
3438      1268, 1269, 1269, 1269, 1270, 1270, 1270, 1272, 1272, 1272,
3439      2677, 1268, 1258, 1275, 1275, 1275, 1276, 1276, 1276, 1269,
3440      1276, 2678, 1270, 1276, 2679, 1272, 1281, 1281, 1281, 2680,
3441      1275, 1282, 1282, 1282, 1284, 1284, 1284, 1287, 1287, 1287,
3442      1288, 1288, 1288, 1266, 1281, 1289, 1289, 1289, 2681, 1282,
3443
3444      2682, 2683, 1284, 2684, 1287, 1292, 1292, 1292, 1288, 1291,
3445      1291, 1291, 2685, 1289, 1293, 1293, 1293, 2686, 1293, 2687,
3446      2688, 1293, 1292, 1272, 1296, 1296, 1296, 1291, 1296, 2694,
3447      2698, 1296, 1299, 1299, 1299, 1300, 1300, 1300, 1302, 1302,
3448      1302, 1307, 1307, 1307, 2699, 1307, 2700, 2701, 1307, 1284,
3449      1299, 2718, 2719, 1300, 2720, 2713, 1302, 1310, 1310, 1310,
3450      1311, 1311, 1311, 2721, 1311, 2713, 2722, 1311, 1314, 1314,
3451      1314, 1315, 1315, 1315, 1310, 1315, 1291, 2723, 1315, 1323,
3452      1323, 1323, 1324, 1324, 1324, 1314, 1326, 1326, 1326, 1327,
3453      1327, 1327, 2714, 1327, 2726, 2727, 1327, 1323, 2716, 2728,
3454
3455      1324, 2717, 2714, 1302, 1326, 1330, 1330, 1330, 2716, 1330,
3456      2729, 2717, 1330, 1333, 1333, 1333, 1334, 1334, 1334, 2738,
3457      1334, 2730, 2739, 1334, 1339, 1339, 1339, 1340, 1340, 1340,
3458      1333, 1342, 1342, 1342, 1347, 1347, 1347, 2740, 1347, 2741,
3459      2742, 1347, 1339, 2743, 2744, 1340, 1350, 1350, 1350, 1342,
3460      1351, 1351, 1351, 1326, 1351, 2730, 2745, 1351, 1354, 1354,
3461      1354, 2748, 2749, 1350, 1355, 1355, 1355, 1357, 1357, 1357,
3462      1359, 1359, 1359, 2751, 1359, 2752, 1354, 1359, 2753, 1342,
3463      2755, 2757, 1355, 2758, 2759, 1357, 1362, 1362, 1362, 1363,
3464      1363, 1363, 1365, 1365, 1365, 1367, 1367, 1367, 2762, 1367,
3465
3466      2763, 2764, 1367, 2765, 1362, 2766, 2769, 1363, 2770, 2777,
3467      1365, 1371, 1371, 1371, 1372, 1372, 1372, 2778, 1357, 1374,
3468      1374, 1374, 2779, 1376, 1376, 1376, 2781, 1376, 2787, 1371,
3469      1376, 2788, 1372, 1382, 1382, 1382, 2789, 1374, 1383, 1383,
3470      1383, 2790, 1385, 1385, 1385, 1386, 1386, 1386, 1387, 1387,
3471      1387, 1382, 1387, 2791, 2792, 1387, 1383, 2793, 2794, 1365,
3472      1385, 2795, 1386, 1388, 1388, 1388, 2796, 2798, 1374, 1389,
3473      1389, 1389, 2799, 1389, 2804, 2805, 1389, 1391, 1391, 1391,
3474      1388, 1392, 1392, 1392, 2806, 1394, 1394, 1394, 1396, 1396,
3475      1396, 2807, 1400, 1400, 1400, 1391, 1708, 1708, 1708, 1392,
3476
3477      2817, 2808, 1385, 1394, 2818, 1396, 1397, 1397, 1397, 1400,
3478      1397, 2819, 2820, 1397, 1401, 1401, 1401, 2821, 1401, 2822,
3479      2823, 1401, 1403, 1403, 1403, 1404, 1404, 1404, 1406, 1406,
3480      1406, 1408, 1408, 1408, 2824, 1408, 2828, 2829, 1408, 2830,
3481      1403, 2831, 1708, 1404, 2808, 2832, 1406, 1411, 1411, 1411,
3482      2833, 2835, 1394, 1412, 1412, 1412, 1414, 1414, 1414, 1415,
3483      1415, 1415, 1416, 1416, 1416, 1411, 1416, 2836, 2838, 1416,
3484      2839, 1412, 2840, 2841, 1414, 2843, 1415, 1417, 1417, 1417,
3485      1418, 1418, 1418, 2844, 1418, 2848, 2849, 1418, 1419, 1419,
3486      1419, 2850, 1406, 2853, 1417, 1420, 1420, 1420, 2858, 1422,
3487
3488      1422, 1422, 1423, 1423, 1423, 2859, 1419, 1424, 1424, 1424,
3489      2860, 1424, 2861, 1420, 1424, 2862, 1414, 1422, 2863, 1423,
3490      1427, 1427, 1427, 1428, 1428, 1428, 2864, 1428, 2865, 2866,
3491      1428, 1429, 1429, 1429, 1430, 1430, 1430, 1427, 1432, 1432,
3492      1432, 1434, 1434, 1434, 1438, 1438, 1438, 2867, 2868, 1429,
3493      2869, 2871, 1430, 1439, 1439, 1439, 1432, 2872, 1434, 2873,
3494      2874, 1422, 1438, 1441, 1441, 1441, 1444, 1444, 1444, 2877,
3495      2881, 1439, 1445, 1445, 1445, 1447, 1447, 1447, 1448, 1448,
3496      1448, 1441, 1448, 2877, 1444, 1448, 1451, 1451, 1451, 2875,
3497      1445, 2884, 2885, 1447, 1452, 1452, 1452, 1454, 1454, 1454,
3498
3499      1432, 1455, 1455, 1455, 1451, 1455, 2888, 2890, 1455, 1459,
3500      1459, 1459, 1452, 2891, 2878, 1454, 1460, 1460, 1460, 1462,
3501      1462, 1462, 2893, 2894, 1441, 2878, 2897, 1459, 1447, 1464,
3502      1464, 1464, 2898, 2899, 1460, 2875, 2900, 1462, 1471, 1471,
3503      1471, 1501, 1501, 1501, 1503, 1503, 1503, 1464, 1464, 2901,
3504      1504, 1504, 1504, 1529, 1529, 1529, 1471, 1454, 1501, 1502,
3505      1502, 1502, 1503, 1502, 2902, 2903, 1502, 1504, 1505, 1505,
3506      1505, 1529, 1505, 2904, 2905, 1505, 1508, 1508, 1508, 2906,
3507      1462, 1510, 1510, 1510, 2907, 1510, 2911, 2909, 1510, 1513,
3508      1513, 1513, 2919, 2910, 1508, 2921, 1514, 1514, 1514, 2909,
3509
3510      1514, 2916, 1503, 1514, 1471, 2910, 1513, 1515, 1515, 1515,
3511      2917, 1515, 2923, 2916, 1515, 1519, 1519, 1519, 2925, 1520,
3512      1520, 1520, 2917, 1520, 2933, 1508, 1520, 1522, 1522, 1522,
3513      2935, 2936, 1519, 1524, 1524, 1524, 1525, 1525, 1525, 2939,
3514      1525, 2938, 2938, 1525, 2941, 1522, 1526, 1526, 1526, 2943,
3515      1524, 1527, 1527, 1527, 1545, 1545, 1545, 1546, 1546, 1546,
3516      1547, 1547, 1547, 1526, 1547, 2944, 2945, 1547, 2946, 1527,
3517      2953, 1545, 2936, 2957, 1546, 2952, 2937, 1522, 1548, 1548,
3518      1548, 1551, 1551, 1551, 1552, 1552, 1552, 1553, 1553, 1553,
3519      2937, 1553, 2962, 2952, 1553, 2963, 1548, 2965, 2956, 1551,
3520
3521      1527, 1552, 1554, 1554, 1554, 1555, 1555, 1555, 1556, 1556,
3522      1556, 2962, 1556, 2956, 2968, 1556, 1558, 1558, 1558, 2964,
3523      1554, 2940, 1555, 1561, 1561, 1561, 1562, 1562, 1562, 2970,
3524      1562, 2975, 2940, 1562, 1558, 1563, 1563, 1563, 2964, 2976,
3525      1561, 2967, 1548, 2978, 2979, 1551, 1564, 1564, 1564, 1565,
3526      1565, 1565, 1563, 1568, 1568, 1568, 2980, 1569, 1569, 1569,
3527      2967, 1569, 1554, 1564, 1569, 2969, 2982, 1565, 2983, 2984,
3528      1568, 1570, 1570, 1570, 1571, 1571, 1571, 1558, 1572, 1572,
3529      1572, 2985, 1572, 2987, 2969, 1572, 1573, 1573, 1573, 1570,
3530      2988, 1571, 1564, 1575, 1575, 1575, 1578, 1578, 1578, 1579,
3531
3532      1579, 1579, 2990, 1579, 1573, 2991, 1579, 1580, 1580, 1580,
3533      1575, 1580, 2998, 1578, 1580, 1565, 1583, 1583, 1583, 1590,
3534      1590, 1590, 1591, 1591, 1591, 2999, 1591, 3000, 3001, 1591,
3535      1594, 1594, 1594, 1583, 1595, 1595, 1595, 1590, 1596, 1596,
3536      1596, 1597, 1597, 1597, 1598, 1598, 1598, 1594, 1600, 1600,
3537      1600, 1595, 1573, 3002, 3003, 1596, 3006, 3007, 1597, 1603,
3538      1603, 1603, 1598, 1603, 3008, 1600, 1603, 3009, 3010, 1606,
3539      1606, 1606, 1608, 1608, 1608, 1610, 1610, 1610, 1613, 1613,
3540      1613, 1617, 1617, 1617, 1590, 1596, 1606, 1618, 1618, 1618,
3541      1608, 3011, 3012, 1610, 3013, 3015, 1613, 3017, 1617, 1598,
3542
3543      3019, 1626, 1626, 1626, 1595, 1618, 1619, 1619, 1619, 3020,
3544      1619, 1597, 3022, 1619, 1622, 1622, 1622, 3033, 1622, 1626,
3545      3034, 1622, 1628, 1628, 1628, 3035, 1628, 1617, 3036, 1628,
3546      1633, 1633, 1633, 3037, 1633, 1613, 1608, 1633, 1637, 1637,
3547      1637, 1610, 3031, 3038, 1618, 1639, 1639, 1639, 1640, 1640,
3548      1640, 3042, 1640, 3032, 3031, 1640, 1637, 1643, 1643, 1643,
3549      3043, 1643, 3044, 1639, 1643, 3032, 3045, 1626, 1646, 1646,
3550      1646, 1647, 1647, 1647, 3046, 1647, 3047, 3048, 1647, 3049,
3551      1652, 1652, 1652, 3052, 1652, 3053, 1646, 1652, 1655, 1655,
3552      1655, 1657, 1657, 1657, 1658, 1658, 1658, 3054, 1658, 1637,
3553
3554      3050, 1658, 1639, 1662, 1662, 1662, 1655, 3055, 1657, 1664,
3555      1664, 1664, 1665, 1665, 1665, 1646, 1666, 1666, 1666, 3056,
3556      3057, 1662, 1667, 1667, 1667, 3050, 1664, 1668, 1668, 1668,
3557      1665, 1671, 1671, 1671, 1666, 1655, 1678, 1678, 1678, 1667,
3558      1709, 1709, 1709, 3058, 1709, 1668, 3059, 1709, 3060, 1671,
3559      3061, 3062, 1662, 3063, 1678, 1712, 1712, 1712, 1713, 1713,
3560      1713, 3064, 1713, 3065, 3066, 1713, 3067, 3068, 1666, 1718,
3561      1718, 1718, 3069, 1712, 1720, 1720, 1720, 3070, 1720, 1665,
3562      3071, 1720, 1671, 1728, 1728, 1728, 3074, 1718, 1678, 1668,
3563      1724, 1724, 1724, 3077, 1724, 3078, 3079, 1724, 3080, 1671,
3564
3565      3081, 1728, 1730, 1730, 1730, 3074, 1730, 3082, 3083, 1730,
3566      1733, 1733, 1733, 3084, 1734, 1734, 1734, 3085, 1734, 3086,
3567      1718, 1734, 1712, 1735, 1735, 1735, 3087, 1733, 1744, 1744,
3568      1744, 1748, 1748, 1748, 1749, 1749, 1749, 1751, 1751, 1751,
3569      3088, 1735, 3089, 3090, 1728, 1752, 1752, 1752, 3091, 1752,
3570      3092, 3093, 1752, 3094, 1751, 1753, 1753, 1753, 3095, 1753,
3571      3096, 3097, 1753, 1756, 1756, 1756, 1758, 1758, 1758, 1759,
3572      1759, 1759, 3098, 3099, 1735, 1760, 1760, 1760, 3095, 1760,
3573      3100, 1756, 1760, 1758, 1763, 1763, 1763, 1759, 3101, 1764,
3574      1764, 1764, 1744, 1764, 3102, 1748, 1764, 3103, 1749, 1768,
3575
3576      1768, 1768, 1763, 1767, 1767, 1767, 3104, 1771, 1771, 1771,
3577      1756, 1771, 3105, 3106, 1771, 3107, 1759, 1768, 3108, 3109,
3578      1767, 1774, 1774, 1774, 1775, 1775, 1775, 3110, 1775, 3111,
3579      3112, 1775, 1776, 1776, 1776, 1777, 1777, 1777, 1774, 1777,
3580      3113, 3117, 1777, 1779, 1779, 1779, 1780, 1780, 1780, 1776,
3581      1763, 1782, 1782, 1782, 3114, 1782, 3118, 3119, 1782, 3120,
3582      3114, 1779, 3121, 1768, 1785, 1785, 1785, 1787, 1787, 1787,
3583      3122, 1787, 3124, 3125, 1787, 1790, 1790, 1790, 1792, 1792,
3584      1792, 3127, 1785, 1793, 1793, 1793, 3128, 1793, 3130, 3131,
3585      1793, 3133, 3134, 1790, 3135, 1792, 1794, 1794, 1794, 1796,
3586
3587      1796, 1796, 3136, 1796, 3137, 3133, 1796, 1799, 1799, 1799,
3588      1800, 1800, 1800, 1794, 1800, 3139, 3141, 1800, 1801, 1801,
3589      1801, 1790, 3143, 3145, 1799, 1806, 1806, 1806, 1807, 1807,
3590      1807, 1808, 1808, 1808, 3147, 1801, 1809, 1809, 1809, 3148,
3591      1809, 3149, 1806, 1809, 3150, 3151, 1807, 3152, 1808, 1810,
3592      1810, 1810, 1811, 1811, 1811, 1812, 1812, 1812, 1813, 1813,
3593      1813, 1815, 1815, 1815, 3153, 3154, 1810, 3156, 3158, 1811,
3594      3160, 3161, 1812, 1816, 1816, 1816, 1813, 1816, 1815, 3162,
3595      1816, 1817, 1817, 1817, 1819, 1819, 1819, 3163, 1820, 1820,
3596      1820, 3180, 1820, 3178, 1807, 1820, 3164, 3178, 1817, 3180,
3597
3598      3181, 1819, 1822, 1822, 1822, 1824, 1824, 1824, 3181, 1531,
3599      1811, 1827, 1827, 1827, 1831, 1831, 1831, 3165, 1813, 1528,
3600      1822, 3179, 1523, 1824, 3184, 3179, 1832, 1832, 1832, 1827,
3601      1832, 1831, 3164, 1832, 1834, 1834, 1834, 1836, 1836, 1836,
3602      1838, 1838, 1838, 1839, 1839, 1839, 1840, 1840, 1840, 1841,
3603      1841, 1841, 1834, 3165, 3182, 1836, 1824, 1838, 3172, 1827,
3604      1839, 3173, 3182, 1840, 1844, 1844, 1844, 1841, 1843, 1843,
3605      1843, 3184, 1845, 1845, 1845, 1846, 1846, 1846, 1847, 1847,
3606      1847, 3196, 1844, 1849, 1849, 1849, 1843, 1849, 1836, 1845,
3607      1849, 3174, 1846, 1855, 1855, 1855, 1847, 3176, 1857, 1857,
3608
3609      1857, 1858, 1858, 1858, 3183, 1858, 3172, 3190, 1858, 3173,
3610      1840, 1855, 3183, 3196, 1843, 1857, 1841, 1859, 1859, 1859,
3611      1860, 1860, 1860, 1861, 1861, 1861, 1862, 1862, 1862, 1844,
3612      1862, 1521, 1518, 1862, 1509, 1859, 1507, 3186, 1860, 3174,
3613      1861, 3176, 3190, 1847, 1855, 1863, 1863, 1863, 1869, 1869,
3614      1869, 1870, 1870, 1870, 1877, 1877, 1877, 1881, 1881, 1881,
3615      1885, 1885, 1885, 1863, 3177, 1869, 1886, 1886, 1886, 1870,
3616      1887, 1887, 1887, 3185, 3186, 1860, 1859, 1889, 1889, 1889,
3617      1891, 1891, 1891, 1892, 1892, 1892, 1897, 1897, 1897, 1899,
3618      1899, 1899, 1902, 1902, 1902, 1506, 1904, 1904, 1904, 1906,
3619
3620      1906, 1906, 1907, 1907, 1907, 3197, 3191, 1899, 3177, 3187,
3621      1902, 1500, 1870, 1904, 1916, 1916, 1916, 1906, 1916, 1907,
3622      3185, 1916, 1919, 1919, 1919, 1920, 1920, 1920, 1925, 1925,
3623      1925, 1926, 1926, 1926, 1930, 1930, 1930, 3197, 3175, 1899,
3624      1919, 3191, 1920, 1931, 1931, 1931, 3187, 1931, 3188, 1499,
3625      1931, 1930, 1934, 1934, 1934, 1935, 1935, 1935, 1906, 1936,
3626      1936, 1936, 1937, 1937, 1937, 3194, 1937, 3192, 1919, 1937,
3627      1934, 3189, 1935, 1938, 1938, 1938, 1936, 1939, 1939, 1939,
3628      1940, 1940, 1940, 1941, 1941, 1941, 3175, 1941, 3195, 3188,
3629      1941, 1938, 1942, 1942, 1942, 1939, 3230, 1940, 3193, 1945,
3630
3631      1945, 1945, 3194, 1945, 3230, 1934, 1945, 1948, 1948, 1948,
3632      1942, 1948, 3189, 3192, 1948, 1952, 1952, 1952, 1954, 1954,
3633      1954, 3198, 1956, 1956, 1956, 3195, 1938, 1958, 1958, 1958,
3634      3198, 1958, 3202, 1952, 1958, 1961, 1961, 1961, 3199, 1942,
3635      1956, 1962, 1962, 1962, 3193, 1962, 3200, 3199, 1962, 1964,
3636      1964, 1964, 1961, 1964, 3204, 3222, 1964, 1967, 1967, 1967,
3637      1968, 1968, 1968, 3201, 1968, 1497, 3202, 1968, 1969, 1969,
3638      1969, 1973, 1973, 1973, 1967, 1974, 1974, 1974, 3206, 1974,
3639      1956, 3200, 1974, 3205, 3222, 1969, 3212, 3207, 1973, 1975,
3640      1975, 1975, 1976, 1976, 1976, 3212, 1976, 3204, 3201, 1976,
3641
3642      1979, 1979, 1979, 3210, 1980, 1980, 1980, 1975, 1980, 3203,
3643      3244, 1980, 1981, 1981, 1981, 1496, 3255, 1979, 1982, 1982,
3644      1982, 1983, 1983, 1983, 3206, 1983, 3205, 3255, 1983, 1981,
3645      1984, 1984, 1984, 3207, 3218, 1982, 3210, 1986, 1986, 1986,
3646      1975, 1986, 3244, 3203, 1986, 1989, 1989, 1989, 1984, 1990,
3647      1990, 1990, 3208, 1990, 3213, 1495, 1990, 1992, 1992, 1992,
3648      3209, 1992, 1989, 3213, 1992, 1996, 1996, 1996, 1999, 1999,
3649      1999, 2001, 2001, 2001, 2002, 2002, 2002, 2004, 2004, 2004,
3650      3218, 1984, 3214, 1996, 3211, 3215, 1999, 3208, 2001, 2006,
3651      2006, 2006, 2002, 2006, 2004, 3209, 2006, 2010, 2010, 2010,
3652
3653      2013, 2013, 2013, 2015, 2015, 2015, 2016, 2016, 2016, 1494,
3654      2016, 3219, 3224, 2016, 3216, 2010, 3250, 3211, 2013, 3214,
3655      2015, 3224, 3215, 2004, 2017, 2017, 2017, 2018, 2018, 2018,
3656      3217, 2018, 1999, 3223, 2018, 2002, 2020, 2020, 2020, 1493,
3657      3226, 2017, 2022, 2022, 2022, 2023, 2023, 2023, 2024, 2024,
3658      2024, 2025, 2025, 2025, 2020, 2025, 3216, 3219, 2025, 3220,
3659      2022, 1492, 3223, 2023, 3250, 2024, 2026, 2026, 2026, 2027,
3660      2027, 2027, 3217, 2027, 3226, 3221, 2027, 2028, 2028, 2028,
3661      2033, 2033, 2033, 2026, 3225, 2035, 2035, 2035, 1491, 2035,
3662      3232, 2022, 2035, 3225, 3227, 2028, 3220, 3228, 2033, 2038,
3663
3664      2038, 2038, 2020, 2039, 2039, 2039, 3238, 2040, 2040, 2040,
3665      2023, 2040, 3221, 1490, 2040, 1489, 1487, 2038, 2043, 2043,
3666      2043, 2039, 2049, 2049, 2049, 2050, 2050, 2050, 3227, 2050,
3667      3231, 3246, 2050, 2051, 2051, 2051, 2043, 3232, 3231, 2049,
3668      3246, 3238, 2028, 3228, 1486, 2033, 2052, 2052, 2052, 1484,
3669      2038, 2051, 2057, 2057, 2057, 1483, 2039, 2058, 2058, 2058,
3670      2059, 2059, 2059, 2061, 2061, 2061, 2065, 2065, 2065, 2066,
3671      2066, 2066, 2067, 2067, 2067, 2068, 2068, 2068, 2070, 2070,
3672      2070, 2071, 2071, 2071, 2072, 2072, 2072, 2073, 2073, 2073,
3673      2074, 2074, 2074, 2075, 2075, 2075, 3229, 2051, 2077, 2077,
3674
3675      2077, 2080, 2080, 2080, 3247, 2083, 2083, 2083, 2084, 2084,
3676      2084, 1481, 2084, 3247, 1478, 2084, 2077, 1477, 3254, 2080,
3677      1476, 2068, 2083, 2086, 2086, 2086, 2087, 2087, 2087, 2088,
3678      2088, 2088, 3254, 2088, 1475, 3236, 2088, 2099, 2099, 2099,
3679      3234, 2086, 3229, 2087, 2100, 2100, 2100, 3240, 3233, 2077,
3680      2101, 2101, 2101, 3235, 2101, 2099, 1474, 2101, 2102, 2102,
3681      2102, 2100, 2107, 2107, 2107, 2108, 2108, 2108, 2109, 2109,
3682      2109, 2110, 2110, 2110, 3251, 2110, 3236, 3234, 2110, 2111,
3683      2111, 2111, 2112, 2112, 2112, 2109, 2099, 2113, 2113, 2113,
3684      3235, 2113, 3241, 3240, 2113, 3233, 1473, 2111, 1472, 2112,
3685
3686      2114, 2114, 2114, 3237, 2114, 3239, 3242, 2114, 2117, 2117,
3687      2117, 2108, 1470, 2118, 2118, 2118, 2120, 2120, 2120, 1469,
3688      2120, 3243, 3251, 2120, 1468, 1467, 2117, 2123, 2123, 2123,
3689      2111, 2118, 2130, 2130, 2130, 2132, 2132, 2132, 3241, 2132,
3690      3239, 1458, 2132, 3242, 3237, 2123, 1443, 2136, 2136, 2136,
3691      2130, 2136, 3245, 1442, 2136, 2139, 2139, 2139, 3243, 2117,
3692      2140, 2140, 2140, 1437, 2140, 3248, 3249, 2140, 1436, 2144,
3693      2144, 2144, 2139, 2144, 1435, 1433, 2144, 2147, 2147, 2147,
3694      2123, 2148, 2148, 2148, 3245, 2148, 1426, 2130, 2148, 2151,
3695      2151, 2151, 2152, 2152, 2152, 2147, 2152, 3248, 3249, 2152,
3696
3697      2153, 2153, 2153, 3252, 2153, 1425, 2151, 2153, 2156, 2156,
3698      2156, 2158, 2158, 2158, 1407, 2158, 1402, 1399, 2158, 2164,
3699      2164, 2164, 2166, 2166, 2166, 1398, 2156, 2167, 2167, 2167,
3700      1395, 2167, 1390, 1381, 2167, 3252, 3253, 2164, 1380, 2166,
3701      1379, 2147, 2168, 2168, 2168, 2170, 2170, 2170, 2171, 2171,
3702      2171, 1375, 2171, 1370, 1366, 2171, 1358, 2178, 2178, 2178,
3703      2168, 1353, 2170, 2181, 2181, 2181, 1352, 2181, 3253, 1346,
3704      2181, 2188, 2188, 2188, 2156, 2178, 2184, 2184, 2184, 1345,
3705      2184, 1344, 1343, 2184, 1338, 2190, 2190, 2190, 1337, 2188,
3706      2191, 2191, 2191, 2192, 2192, 2192, 1336, 2192, 1335, 1322,
3707
3708      2192, 1321, 2168, 2190, 1320, 2195, 2195, 2195, 2191, 2195,
3709      1319, 1318, 2195, 2198, 2198, 2198, 1317, 2199, 2199, 2199,
3710      1316, 1306, 2188, 2200, 2200, 2200, 2191, 2201, 2201, 2201,
3711      1305, 2198, 1304, 2198, 2199, 2202, 2202, 2202, 1303, 1286,
3712      2200, 2203, 2203, 2203, 2201, 2205, 2205, 2205, 2206, 2206,
3713      2206, 2190, 2202, 2207, 2207, 2207, 2210, 2210, 2210, 2203,
3714      2211, 2211, 2211, 2205, 2211, 1285, 2206, 2211, 2214, 2214,
3715      2214, 2207, 1280, 1279, 2200, 2215, 2215, 2215, 2216, 2216,
3716      2216, 2217, 2217, 2217, 1274, 1273, 2214, 2220, 2220, 2220,
3717      1254, 2201, 1250, 1244, 2202, 2221, 2221, 2221, 2223, 2223,
3718
3719      2223, 2224, 2224, 2224, 1240, 2205, 2203, 2225, 2225, 2225,
3720      2226, 2226, 2226, 2227, 2227, 2227, 2228, 2228, 2228, 2231,
3721      2231, 2231, 2232, 2232, 2232, 1239, 1238, 2214, 2233, 2233,
3722      2233, 2234, 2234, 2234, 2236, 2236, 2236, 2239, 2239, 2239,
3723      2240, 2240, 2240, 1237, 2240, 1236, 1235, 2240, 2243, 2243,
3724      2243, 1234, 2236, 1232, 2239, 2244, 2244, 2244, 1231, 2246,
3725      2246, 2246, 1229, 2246, 1228, 2243, 2246, 2259, 2259, 2259,
3726      2260, 2260, 2260, 2244, 2260, 2261, 2261, 2260, 2261, 1227,
3727      2262, 2262, 1222, 2262, 1214, 2259, 2261, 1212, 1207, 2261,
3728      1205, 2262, 1196, 2261, 2262, 2263, 2263, 2263, 2262, 2264,
3729
3730      2264, 2264, 2268, 2268, 2268, 2270, 2270, 2270, 1191, 2270,
3731      1180, 1178, 2270, 1177, 2243, 2273, 2273, 2273, 2274, 2274,
3732      2274, 1176, 2274, 1175, 1173, 2274, 1172, 1171, 2259, 2277,
3733      2277, 2277, 1170, 2273, 2278, 2278, 2278, 2286, 2286, 2286,
3734      2287, 2287, 2287, 1169, 2290, 2290, 2290, 2277, 2290, 1168,
3735      1166, 2290, 2278, 2293, 2293, 2293, 1165, 1164, 2287, 1163,
3736      1162, 2273, 2296, 2296, 2296, 2297, 2297, 2297, 1161, 2297,
3737      2293, 1160, 2297, 2300, 2300, 2300, 2305, 2305, 2305, 1158,
3738      2296, 2307, 2307, 2307, 1157, 2278, 2308, 2308, 2308, 1156,
3739      2308, 2300, 1155, 2308, 2305, 2311, 2311, 2311, 2307, 1154,
3740
3741      2287, 2312, 2312, 2312, 2313, 2313, 2313, 1153, 2313, 1152,
3742      1146, 2313, 1145, 2311, 2316, 2316, 2316, 1144, 2312, 2317,
3743      2317, 2317, 2322, 2322, 2322, 2324, 2324, 2324, 2327, 2327,
3744      2327, 2316, 2326, 2326, 2326, 1141, 2317, 1140, 1139, 2322,
3745      2328, 2328, 2328, 1137, 1133, 2327, 2311, 2312, 1130, 1121,
3746      2326, 1120, 2329, 2329, 2329, 2331, 2331, 2331, 2328, 2330,
3747      2330, 2330, 1117, 1116, 2332, 2332, 2332, 1115, 2332, 2316,
3748      2329, 2332, 2331, 2322, 2333, 2333, 2333, 2330, 1114, 1113,
3749      2317, 2334, 2334, 2334, 2335, 2335, 2335, 2336, 2336, 2336,
3750      1099, 2333, 2337, 2337, 2337, 1092, 2330, 1084, 2334, 1083,
3751
3752      2328, 2335, 2338, 2338, 2338, 2336, 2339, 2339, 2339, 2341,
3753      2341, 2341, 1082, 2329, 2344, 2344, 2344, 2346, 2346, 2346,
3754      2338, 2345, 2345, 2345, 2339, 1079, 1076, 2341, 2347, 2347,
3755      2347, 1073, 2334, 1068, 1065, 2335, 2350, 2350, 2350, 2345,
3756      2351, 2351, 2351, 2352, 2352, 2352, 2353, 2353, 2353, 2357,
3757      2357, 2357, 2360, 2360, 2360, 2361, 2361, 2361, 1064, 2361,
3758      1060, 1058, 2361, 2373, 2373, 2373, 1044, 2357, 2338, 2360,
3759      1043, 2341, 2386, 2386, 2386, 2389, 2389, 2389, 2391, 2391,
3760      2391, 2373, 2392, 2392, 2392, 2394, 2394, 2394, 2401, 2401,
3761      2401, 2402, 2402, 2402, 1042, 1041, 2391, 2403, 2403, 2403,
3762
3763      2392, 1040, 1039, 2394, 1038, 2401, 1034, 2406, 2406, 2406,
3764      2407, 2407, 2407, 1030, 2407, 2403, 1023, 2407, 2409, 2409,
3765      2409, 1020, 1019, 2373, 2406, 2410, 2410, 2410, 2412, 2412,
3766      2412, 2416, 2416, 2416, 1018, 2409, 2418, 2418, 2418, 1015,
3767      2420, 2420, 2420, 2410, 2391, 1014, 2412, 1011, 2416, 2421,
3768      2421, 2421, 1010, 2418, 2403, 2419, 2419, 2419, 2420, 2419,
3769      1009, 1006, 2419, 2422, 2422, 2422, 2421, 2422, 1005, 1002,
3770      2422, 2423, 2423, 2423, 2424, 2424, 2424, 2425, 2425, 2425,
3771      2430, 2430, 2430, 2432, 2432, 2432,  997,  994, 2423,  991,
3772       990, 2424,  987,  986, 2425,  985,  984, 2430, 2434, 2434,
3773
3774      2434, 2436, 2436, 2436, 2437, 2437, 2437,  983, 2437,  981,
3775       980, 2437, 2438, 2438, 2438,  979, 2434,  978, 2436, 2439,
3776      2439, 2439,  977, 2423, 2440, 2440, 2440, 2441, 2441, 2441,
3777      2438, 2441, 2424,  976, 2441, 2425,  975, 2439, 2444, 2444,
3778      2444,  974, 2440, 2445, 2445, 2445,  970, 2445,  965,  964,
3779      2445, 2446, 2446, 2446,  963, 2444, 2447, 2447, 2447, 2448,
3780      2448, 2448, 2450, 2450, 2450, 2451, 2451, 2451, 2446, 2455,
3781      2455, 2455,  960, 2447, 2459, 2459, 2459, 2448, 2463, 2463,
3782      2463,  959,  958, 2451,  956,  952, 2439, 2455, 2440, 2464,
3783      2464, 2464,  948, 2464,  947, 2463, 2464, 2478, 2478, 2478,
3784
3785      2495, 2495, 2495, 2497, 2497, 2497, 2498, 2498, 2498, 2501,
3786      2501, 2501, 2504, 2504, 2504, 2478, 2505, 2505, 2505,  944,
3787      2505, 2497,  941, 2505, 2498,  940, 2501,  939,  938, 2504,
3788      2506, 2506, 2506, 2509, 2509, 2509,  937, 2509,  936,  935,
3789      2509, 2513, 2513, 2513,  933, 2514, 2514, 2514, 2506, 2514,
3790       932,  931, 2514, 2516, 2516, 2516,  930, 2478, 2513, 2517,
3791      2517, 2517, 2518, 2518, 2518,  929, 2518,  928,  927, 2518,
3792      2516, 2519, 2519, 2519, 2497,  926, 2517, 2520, 2520, 2520,
3793       925, 2520,  924,  923, 2520, 2523, 2523, 2523, 2519, 2525,
3794      2525, 2525,  922, 2525,  921,  920, 2525, 2528, 2528, 2528,
3795
3796      2529, 2529, 2529, 2523, 2530, 2530, 2530, 2533, 2533, 2533,
3797       919, 2534, 2534, 2534, 2528, 2534,  918, 2529, 2534,  917,
3798       916, 2530,  915,  914, 2533, 2535, 2535, 2535, 2536, 2536,
3799      2536, 2537, 2537, 2537,  913, 2537,  909,  908, 2537, 2540,
3800      2540, 2540, 2535,  906,  905, 2536, 2542, 2542, 2542,  904,
3801       903, 2529, 2528, 2543, 2543, 2543,  902, 2540,  898, 2530,
3802       896, 2544, 2544, 2544, 2542, 2544,  895,  894, 2544,  893,
3803       889, 2543, 2547, 2547, 2547, 2548, 2548, 2548,  885, 2548,
3804       884,  881, 2548, 2549, 2549, 2549, 2550, 2550, 2550, 2547,
3805      2550,  880,  879, 2550,  878, 2551, 2551, 2551,  877,  876,
3806
3807      2549, 2557, 2557, 2557, 2561, 2561, 2561, 2580, 2580, 2580,
3808       875,  872, 2542, 2551, 2543, 2562, 2562, 2562,  871, 2562,
3809       870, 2561, 2562,  869,  866, 2580, 2596, 2596, 2596, 2598,
3810      2598, 2598, 2599, 2599, 2599, 2600, 2600, 2600, 2601, 2601,
3811      2601,  865, 2601,  864,  861, 2601,  859, 2598,  856, 2599,
3812       855,  854, 2600, 2602, 2602, 2602,  853, 2602, 2580,  852,
3813      2602, 2605, 2605, 2605, 2610, 2610, 2610,  849, 2610,  848,
3814       847, 2610, 2614, 2614, 2614, 2649, 2649, 2649, 2599, 2605,
3815      2615, 2615, 2615,  846, 2615,  845,  842, 2615,  841, 2614,
3816       840, 2598, 2616, 2616, 2616,  839, 2616,  837,  834, 2616,
3817
3818      2619, 2619, 2619, 2620, 2620, 2620,  833, 2620,  831,  828,
3819      2620, 2621, 2621, 2621, 2622, 2622, 2622, 2619, 2623, 2623,
3820      2623,  826, 2624, 2624, 2624,  823, 2624,  822, 2621, 2624,
3821       821, 2622, 2627, 2627, 2627, 2623, 2628, 2628, 2628,  820,
3822      2628,  818,  817, 2628, 2629, 2629, 2629,  816,  813, 2627,
3823      2630, 2630, 2630,  812, 2630,  811,  810, 2630, 2637, 2637,
3824      2637, 2629, 2638, 2638, 2638,  809,  808, 2623,  803, 2621,
3825      2639, 2639, 2639,  802, 2639,  801, 2637, 2639,  800,  799,
3826      2638, 2642, 2642, 2642,  798, 2642,  797,  796, 2642, 2647,
3827      2647, 2647, 2650, 2650, 2650, 2653, 2653, 2653,  795, 2653,
3828
3829       793,  791, 2653, 2664, 2664, 2664, 2647, 2647,  790, 2637,
3830      2673, 2673, 2673, 2689, 2689, 2689, 2690, 2690, 2690,  787,
3831      2664, 2691, 2691, 2691, 2692, 2692, 2692,  784, 2673, 2638,
3832      2693, 2693, 2693,  781, 2693,  780,  776, 2693,  775, 2691,
3833       774, 2692, 2695, 2695, 2695,  771, 2695,  768,  767, 2695,
3834      2702, 2702, 2702,  766, 2702,  763,  762, 2702,  758, 2673,
3835      2705, 2705, 2705,  757, 2705,  755,  752, 2705, 2708, 2708,
3836      2708,  751, 2691, 2709, 2709, 2709, 2710, 2710, 2710,  750,
3837      2710,  748,  737, 2710,  735, 2708, 2711, 2711, 2711,  732,
3838      2709, 2712, 2712, 2712,  731, 2712,  730,  728, 2712,  727,
3839
3840      2715, 2715, 2715, 2711, 2715,  726,  722, 2715, 2724, 2724,
3841      2724, 2725, 2725, 2725, 2731, 2731, 2731,  721,  720, 2708,
3842      2732, 2732, 2732, 2733, 2733, 2733, 2724, 2733,  719, 2725,
3843      2733, 2731, 2731, 2734, 2734, 2734,  716, 2732, 2732,  715,
3844       714, 2733, 2735, 2735, 2735, 2736, 2736, 2736, 2737, 2737,
3845      2737, 2746, 2746, 2746, 2747, 2747, 2747, 2711, 2747,  713,
3846       712, 2747, 2756, 2756, 2756, 2771, 2771, 2771, 2746, 2772,
3847      2772, 2772, 2773, 2773, 2773,  711,  710, 2725,  708,  705,
3848      2756, 2774, 2774, 2774,  704, 2774,  702,  700, 2774,  697,
3849      2773, 2780, 2780, 2780, 2782, 2782, 2782, 2783, 2783, 2783,
3850
3851       696, 2783,  690,  688, 2783, 2786, 2786, 2786, 2780,  686,
3852       683, 2782, 2801, 2801, 2801, 2803, 2803, 2803, 2809, 2809,
3853      2809,  682, 2786,  678,  677, 2810, 2810, 2810, 2756, 2810,
3854      2801,  676, 2810, 2803,  675, 2809, 2809, 2811, 2811, 2811,
3855       672, 2811,  671, 2810, 2811, 2814, 2814, 2814, 2815, 2815,
3856      2815, 2816, 2816, 2816,  670, 2811, 2825, 2825, 2825,  669,
3857      2825,  666,  665, 2825,  664,  663, 2803, 2812, 2812, 2812,
3858      2812, 2812, 2812, 2812, 2812, 2812,  662,  656, 2812, 2834,
3859      2834, 2834,  655, 2812, 2812, 2812, 2812, 2812, 2845, 2845,
3860      2845, 2846, 2846, 2846, 2851, 2851, 2851, 2834, 2852, 2852,
3861
3862      2852,  653, 2852,  647,  646, 2852, 2854, 2854, 2854, 2846,
3863       642, 2851, 2812, 2812, 2813, 2813, 2813, 2813, 2813, 2813,
3864      2813, 2813, 2813, 2854,  635, 2813, 2856, 2856, 2856,  631,
3865      2813, 2813, 2813, 2813, 2813, 2855, 2855, 2855,  625, 2855,
3866       621,  613, 2855, 2856, 2857, 2857, 2857,  612, 2857,  611,
3867       610, 2857, 2870, 2870, 2870, 2895, 2895, 2895,  609, 2813,
3868      2813, 2876, 2876, 2876,  605, 2876,  598,  597, 2876,  596,
3869      2870,  592,  585, 2895, 2930, 2930, 2930,  584,  580, 2876,
3870      2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879,  574,
3871       573, 2879, 2930,  569,  561,  560, 2879, 2879, 2879, 2879,
3872
3873      2879, 2908, 2908, 2908,  556, 2908,  547,  543, 2908, 2912,
3874      2912, 2912,  535, 2912,  534,  533, 2912, 2915, 2915, 2915,
3875       529, 2915,  523,  522, 2915, 2879, 2879, 2880, 2880, 2880,
3876      2880, 2880, 2880, 2880, 2880, 2880,  521,  517, 2880, 2942,
3877      2942, 2942,  511, 2880, 2880, 2880, 2880, 2880, 2959, 2959,
3878      2959, 2960, 2960, 2960, 2961, 2961, 2961, 2942, 2942, 2966,
3879      2966, 2966, 2977, 2977, 2977, 2959,  510,  506, 2960,  500,
3880       499, 2961, 2880, 2880,  498,  497, 2966, 2981, 2981, 2981,
3881      2977, 2992, 2992, 2992, 2993, 2993, 2993,  496, 2993,  495,
3882       494, 2993, 2994, 2994, 2994, 2981,  490,  484, 2992, 2995,
3883
3884      2995, 2995,  483, 2995,  481,  480, 2995,  479,  475, 2994,
3885      2996, 2996, 2996, 2997, 2997, 2997,  466, 2997,  465,  464,
3886      2997, 3004, 3004, 3004, 3014, 3014, 3014, 2996, 2981, 3005,
3887      3005, 3005,  462, 3005,  458,  452, 3005,  451, 3004, 3024,
3888      3024, 3024, 3014, 3024,  450,  446, 3024, 3027, 3027, 3027,
3889       440, 3027,  436,  428, 3027, 3030, 3030, 3030,  427, 3030,
3890       426, 3014, 3030, 3039, 3039, 3039,  425, 3039,  424,  420,
3891      3039, 3146, 3146, 3146, 3155, 3155, 3155,  414, 3155,  413,
3892       409, 3155, 3256, 3256, 3256, 3257, 3257, 3257,  403, 3146,
3893       402,  398, 3155,  391,  390,  389,  385,  378,  377,  376,
3894
3895      3256,  375,  371, 3257, 3260, 3260, 3260, 3260, 3260, 3260,
3896      3260, 3260, 3260, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
3897      3261, 3261, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262,
3898      3262, 3263, 3263, 3263, 3263, 3263, 3263, 3263, 3263, 3263,
3899      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3265,
3900      3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3266, 3266,
3901      3266, 3266, 3266, 3266, 3266, 3266, 3266, 3267, 3267, 3267,
3902      3267, 3267, 3267, 3267, 3267, 3267, 3268, 3268, 3268, 3268,
3903      3268, 3268, 3268, 3268, 3268, 3269, 3269, 3269, 3269, 3269,
3904      3269, 3269, 3269, 3269, 3270, 3270, 3270, 3270, 3270, 3270,
3905
3906      3270, 3270, 3270, 3271, 3271, 3271, 3271, 3271, 3271, 3271,
3907      3271, 3271, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272,
3908      3272, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273,
3909      3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3275,
3910      3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3276, 3276,
3911      3276, 3276, 3276, 3276, 3276, 3276, 3276, 3277, 3277, 3277,
3912      3277, 3277, 3277, 3277, 3277, 3277, 3278, 3278, 3278, 3278,
3913      3278, 3278, 3278, 3278, 3278, 3279, 3279, 3279, 3279, 3279,
3914      3279, 3279, 3279, 3279, 3280, 3280, 3280, 3280, 3280, 3280,
3915      3280, 3280, 3280, 3281, 3281, 3281, 3281, 3281, 3281, 3281,
3916
3917      3281, 3281, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282,
3918      3282, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
3919      3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3285,
3920      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3286, 3286,
3921      3286, 3286, 3286, 3286, 3286, 3286, 3286, 3287, 3287, 3287,
3922      3287, 3287, 3287, 3287, 3287, 3287, 3288, 3288, 3288, 3288,
3923      3288, 3288, 3288, 3288, 3288, 3289, 3289, 3289, 3289, 3289,
3924      3289, 3289, 3289, 3289, 3290, 3290, 3290, 3290, 3290, 3290,
3925      3290, 3290, 3290, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3926      3291, 3291, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
3927
3928      3292, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
3929      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3295,
3930      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3296, 3296,
3931      3296, 3296, 3296, 3296, 3296, 3296, 3296, 3297, 3297, 3297,
3932      3297, 3297, 3297, 3297, 3297, 3297, 3298, 3298, 3298, 3298,
3933      3298, 3298, 3298, 3298, 3298, 3299, 3299, 3299, 3299, 3299,
3934      3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300, 3300,
3935      3300, 3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301, 3301,
3936      3301, 3301, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
3937      3302, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
3938
3939      3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3305,
3940      3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3306, 3306,
3941      3306, 3306, 3306, 3306, 3306, 3306, 3306, 3307, 3307, 3307,
3942      3307, 3307, 3307, 3307, 3307, 3307, 3308, 3308, 3308, 3308,
3943      3308, 3308, 3308, 3308, 3308, 3309, 3309, 3309, 3309, 3309,
3944      3309, 3309, 3309, 3309, 3310, 3310, 3310, 3310, 3310, 3310,
3945      3310, 3310, 3310, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
3946      3311, 3311, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
3947      3312, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313,
3948      3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3315,
3949
3950      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316, 3316,
3951      3316, 3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317, 3317,
3952      3317, 3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318, 3318,
3953      3318, 3318, 3318, 3318, 3318, 3319, 3319, 3319, 3319, 3319,
3954      3319, 3319, 3319, 3319, 3320, 3320, 3320, 3320, 3320, 3320,
3955      3320, 3320, 3320, 3321, 3321, 3321,  362,  356,  352, 3321,
3956      3322, 3322, 3322,  351,  347,  341, 3322, 3323, 3323, 3323,
3957       340,  339,  335, 3323, 3324, 3324, 3324,  328,  326,  325,
3958      3324, 3325, 3325, 3325,  321,  318,  316, 3325, 3326, 3326,
3959      3326,  315,  314,  310, 3326, 3327, 3327, 3327,  306,  303,
3960
3961       299, 3327, 3328, 3328, 3328,  296,  295,  287, 3328, 3329,
3962      3329, 3329,  283,  279,  278, 3329, 3330, 3330, 3330,  277,
3963       271,  270, 3330, 3331, 3331, 3331,  268,  265,  253, 3331,
3964      3332, 3332, 3332,    0,    0,    0, 3332, 3333, 3333, 3333,
3965         0,    0,    0, 3333, 3334, 3334, 3334,    0,    0,    0,
3966      3334, 3335, 3335, 3335,    0,    0,    0, 3335, 3336, 3336,
3967      3336,    0,    0,    0, 3336, 3337, 3337, 3337,    0,    0,
3968         0, 3337, 3338, 3338, 3338,    0,    0,    0, 3338, 3339,
3969      3339, 3339,    0,    0,    0, 3339, 3340, 3340, 3340,    0,
3970         0,    0, 3340, 3341, 3341, 3341,    0,    0,    0, 3341,
3971
3972      3342, 3342, 3342,    0,    0,    0, 3342, 3343, 3343, 3343,
3973         0,    0,    0, 3343, 3344, 3344, 3344,    0,    0,    0,
3974      3344, 3345, 3345, 3345,    0,    0,    0, 3345, 3346, 3346,
3975      3346,    0,    0,    0, 3346, 3347, 3347, 3347,    0,    0,
3976         0, 3347, 3348, 3348, 3348,    0,    0,    0, 3348, 3349,
3977      3349, 3349, 3349, 3349, 3349, 3349,    0, 3349, 3350, 3350,
3978      3350,    0,    0,    0, 3350, 3351,    0,    0,    0, 3351,
3979      3352, 3352, 3352,    0,    0,    0, 3352, 3353,    0,    0,
3980         0, 3353, 3354, 3354, 3354,    0,    0,    0, 3354, 3355,
3981         0,    0,    0, 3355, 3356, 3356, 3356,    0,    0,    0,
3982
3983      3356, 3357,    0,    0,    0, 3357, 3358, 3358, 3358,    0,
3984         0,    0, 3358, 3359,    0,    0,    0, 3359, 3360, 3360,
3985      3360,    0,    0,    0, 3360, 3361,    0,    0,    0, 3361,
3986      3362, 3362, 3362,    0,    0,    0, 3362, 3363,    0,    0,
3987         0, 3363, 3364, 3364, 3364,    0,    0,    0, 3364, 3365,
3988         0,    0,    0, 3365, 3366, 3366, 3366,    0,    0,    0,
3989      3366, 3367,    0,    0,    0, 3367, 3368, 3368, 3368,    0,
3990         0,    0, 3368, 3369,    0,    0,    0, 3369, 3370, 3370,
3991      3370,    0,    0,    0, 3370, 3371,    0,    0,    0, 3371,
3992      3372, 3372, 3372,    0,    0,    0, 3372, 3373,    0,    0,
3993
3994         0, 3373, 3374, 3374, 3374,    0,    0,    0, 3374, 3375,
3995         0,    0,    0, 3375, 3376, 3376, 3376,    0,    0,    0,
3996      3376, 3377,    0,    0,    0, 3377, 3378, 3378, 3378,    0,
3997         0,    0, 3378, 3379,    0,    0,    0, 3379, 3380, 3380,
3998      3380,    0,    0,    0, 3380, 3381,    0,    0,    0, 3381,
3999      3382, 3382, 3382,    0,    0,    0, 3382, 3383,    0,    0,
4000         0, 3383, 3384, 3384, 3384,    0,    0,    0, 3384, 3385,
4001         0,    0,    0, 3385, 3386, 3386, 3386,    0,    0,    0,
4002      3386, 3387,    0,    0,    0, 3387, 3388, 3388, 3388,    0,
4003         0,    0, 3388, 3389,    0,    0,    0, 3389, 3390, 3390,
4004
4005      3390,    0,    0,    0, 3390, 3391,    0,    0,    0, 3391,
4006      3392, 3392, 3392,    0,    0,    0, 3392, 3393,    0,    0,
4007         0, 3393, 3394, 3394, 3394,    0,    0,    0, 3394, 3395,
4008         0,    0,    0, 3395, 3396, 3396, 3396,    0,    0,    0,
4009      3396, 3397,    0,    0,    0, 3397, 3398, 3398, 3398,    0,
4010         0,    0, 3398, 3399,    0,    0,    0, 3399, 3400, 3400,
4011      3400,    0,    0,    0, 3400, 3401,    0,    0,    0, 3401,
4012      3402, 3402, 3402,    0,    0,    0, 3402, 3403,    0,    0,
4013         0, 3403, 3404, 3404, 3404,    0,    0,    0, 3404, 3405,
4014         0,    0,    0, 3405, 3406, 3406, 3406, 3406, 3406, 3406,
4015
4016      3406, 3406, 3406, 3407,    0,    0,    0,    0, 3407, 3408,
4017      3408, 3408,    0,    0,    0, 3408, 3409, 3409, 3409, 3409,
4018         0,    0, 3409, 3409, 3410, 3410, 3410,    0,    0,    0,
4019      3410, 3411, 3411, 3411, 3411,    0,    0, 3411, 3411, 3412,
4020      3412, 3412,    0,    0,    0, 3412, 3413, 3413, 3413, 3413,
4021         0,    0, 3413, 3413, 3414, 3414, 3414,    0,    0,    0,
4022      3414, 3415, 3415, 3415, 3415,    0,    0, 3415, 3415, 3416,
4023      3416, 3416,    0,    0,    0, 3416, 3417, 3417, 3417, 3417,
4024         0,    0, 3417, 3417, 3418, 3418, 3418,    0,    0,    0,
4025      3418, 3419, 3419, 3419, 3419,    0,    0, 3419, 3419, 3420,
4026
4027      3420, 3420,    0,    0,    0, 3420, 3421, 3421, 3421, 3421,
4028         0,    0, 3421, 3421, 3422, 3422, 3422,    0,    0,    0,
4029      3422, 3423, 3423, 3423, 3423,    0,    0, 3423, 3423, 3424,
4030      3424, 3424,    0,    0,    0, 3424, 3425, 3425, 3425, 3425,
4031         0,    0, 3425, 3425, 3426, 3426, 3426,    0,    0,    0,
4032      3426, 3427, 3427, 3427, 3427,    0,    0, 3427, 3427, 3428,
4033      3428, 3428,    0,    0,    0, 3428, 3429, 3429, 3429, 3429,
4034         0,    0, 3429, 3429, 3430, 3430, 3430,    0,    0,    0,
4035      3430, 3431, 3431, 3431, 3431,    0,    0, 3431, 3431, 3432,
4036      3432, 3432,    0,    0,    0, 3432, 3433, 3433, 3433, 3433,
4037
4038         0,    0, 3433, 3433, 3434, 3434, 3434,    0,    0,    0,
4039      3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435, 3436,
4040      3436, 3436, 3436,    0, 3436,    0, 3436, 3437, 3437, 3437,
4041      3437,    0,    0, 3437, 3437, 3438, 3438, 3438,    0,    0,
4042         0, 3438, 3439, 3439, 3439, 3439,    0,    0, 3439, 3439,
4043      3440, 3440, 3440,    0,    0,    0, 3440, 3441, 3441, 3441,
4044      3441,    0,    0, 3441, 3441, 3442, 3442, 3442,    0,    0,
4045         0, 3442, 3443, 3443, 3443, 3443,    0,    0, 3443, 3443,
4046      3444, 3444, 3444,    0,    0,    0, 3444, 3445, 3445, 3445,
4047      3445,    0,    0, 3445, 3445, 3446, 3446, 3446, 3446,    0,
4048
4049      3446,    0, 3446, 3447, 3447, 3447, 3447,    0,    0, 3447,
4050      3447, 3448, 3448, 3448, 3448,    0, 3448,    0, 3448, 3449,
4051      3449, 3449, 3449,    0,    0, 3449, 3449, 3450, 3450, 3450,
4052         0,    0,    0, 3450, 3451, 3451, 3451, 3451,    0,    0,
4053      3451, 3451, 3452, 3452, 3452, 3452,    0, 3452,    0, 3452,
4054      3453, 3453, 3453, 3453,    0,    0, 3453, 3453, 3454, 3454,
4055      3454, 3454,    0, 3454,    0, 3454, 3455, 3455, 3455, 3455,
4056         0,    0, 3455, 3455, 3456, 3456, 3456,    0,    0,    0,
4057      3456, 3457, 3457, 3457, 3457,    0,    0, 3457, 3457, 3458,
4058      3458, 3458,    0,    0,    0, 3458, 3459, 3459, 3459, 3459,
4059
4060         0,    0, 3459, 3459, 3460, 3460, 3460, 3460,    0,    0,
4061      3460, 3460, 3461, 3461, 3461,    0,    0,    0, 3461, 3462,
4062      3462, 3462, 3462,    0,    0, 3462, 3462, 3463, 3463, 3463,
4063      3463, 3463, 3463, 3463, 3463, 3463, 3464,    0, 3464,    0,
4064         0, 3464, 3465, 3465, 3465,    0,    0,    0, 3465, 3466,
4065      3466, 3466, 3466,    0,    0, 3466, 3466, 3467, 3467, 3467,
4066      3467,    0, 3467,    0, 3467, 3468, 3468, 3468, 3468,    0,
4067         0, 3468, 3468, 3469, 3469, 3469, 3469,    0, 3469,    0,
4068      3469, 3470, 3470, 3470, 3470,    0,    0, 3470, 3470, 3471,
4069      3471, 3471,    0,    0,    0, 3471, 3472, 3472, 3472, 3472,
4070
4071         0,    0, 3472, 3472, 3473, 3473, 3473,    0,    0,    0,
4072      3473, 3474, 3474, 3474, 3474,    0,    0, 3474, 3474, 3475,
4073      3475, 3475,    0,    0,    0, 3475, 3476, 3476, 3476, 3476,
4074         0,    0, 3476, 3476, 3477, 3477, 3477,    0,    0,    0,
4075      3477, 3478, 3478, 3478, 3478,    0,    0, 3478, 3478, 3479,
4076      3479, 3479,    0,    0,    0, 3479, 3480, 3480, 3480, 3480,
4077         0,    0, 3480, 3480, 3481, 3481, 3481, 3481,    0, 3481,
4078         0, 3481, 3482, 3482, 3482, 3482,    0,    0, 3482, 3482,
4079      3483, 3483, 3483, 3483,    0, 3483,    0, 3483, 3484, 3484,
4080      3484, 3484,    0,    0, 3484, 3484, 3485, 3485, 3485,    0,
4081
4082         0,    0, 3485, 3486, 3486, 3486, 3486,    0,    0, 3486,
4083      3486, 3487, 3487, 3487, 3487,    0, 3487,    0, 3487, 3488,
4084      3488, 3488, 3488,    0,    0, 3488, 3488, 3489, 3489, 3489,
4085      3489,    0, 3489,    0, 3489, 3490, 3490, 3490, 3490,    0,
4086         0, 3490, 3490, 3491, 3491, 3491,    0,    0,    0, 3491,
4087      3492, 3492, 3492, 3492,    0,    0, 3492, 3492, 3493, 3493,
4088      3493,    0,    0,    0, 3493, 3494, 3494, 3494, 3494,    0,
4089         0, 3494, 3494, 3495, 3495, 3495,    0,    0,    0, 3495,
4090      3496, 3496, 3496, 3496,    0,    0, 3496, 3496, 3497, 3497,
4091      3497,    0,    0,    0, 3497, 3498, 3498, 3498, 3498,    0,
4092
4093         0, 3498, 3498, 3499, 3499, 3499,    0,    0,    0, 3499,
4094      3500, 3500, 3500, 3500,    0,    0, 3500, 3500, 3501, 3501,
4095      3501,    0,    0,    0, 3501, 3502, 3502, 3502, 3502,    0,
4096         0, 3502, 3502, 3503, 3503, 3503,    0,    0,    0, 3503,
4097      3504, 3504, 3504, 3504,    0,    0, 3504, 3504, 3505, 3505,
4098      3505,    0,    0,    0, 3505, 3506, 3506, 3506, 3506,    0,
4099         0, 3506, 3506, 3507, 3507, 3507,    0,    0,    0, 3507,
4100      3508, 3508, 3508, 3508,    0,    0, 3508, 3508, 3509, 3509,
4101      3509, 3509,    0,    0, 3509, 3509, 3510, 3510, 3510,    0,
4102         0,    0, 3510, 3511, 3511, 3511, 3511,    0,    0, 3511,
4103
4104      3511, 3512, 3512, 3512,    0,    0,    0, 3512, 3513, 3513,
4105      3513, 3513,    0,    0, 3513, 3513, 3514, 3514, 3514,    0,
4106         0,    0, 3514, 3515, 3515, 3515, 3515,    0,    0, 3515,
4107      3515, 3516, 3516, 3516, 3516,    0,    0, 3516, 3516, 3517,
4108      3517, 3517,    0,    0,    0, 3517, 3518, 3518, 3518, 3518,
4109         0,    0, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3519,
4110      3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
4111      3520, 3520, 3521, 3521, 3521,    0,    0,    0, 3521, 3522,
4112      3522, 3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,
4113      3523,    0,    0, 3523, 3523, 3524, 3524, 3524,    0,    0,
4114
4115         0, 3524, 3525, 3525, 3525, 3525,    0,    0, 3525, 3525,
4116      3526, 3526, 3526,    0,    0,    0, 3526, 3527, 3527, 3527,
4117      3527,    0,    0, 3527, 3527, 3528, 3528, 3528,    0,    0,
4118         0, 3528, 3529, 3529, 3529, 3529,    0,    0, 3529, 3529,
4119      3530, 3530, 3530,    0,    0,    0, 3530, 3531, 3531, 3531,
4120         0,    0,    0, 3531, 3532, 3532, 3532, 3532,    0,    0,
4121      3532, 3532, 3533, 3533, 3533,    0,    0,    0, 3533, 3534,
4122      3534, 3534, 3534,    0,    0, 3534, 3534, 3535, 3535, 3535,
4123      3535,    0,    0, 3535, 3535, 3536, 3536, 3536,    0,    0,
4124         0, 3536, 3537, 3537, 3537, 3537,    0,    0, 3537, 3537,
4125
4126      3538, 3538, 3538,    0,    0,    0, 3538, 3539, 3539, 3539,
4127      3539,    0,    0, 3539, 3539, 3540, 3540, 3540, 3540,    0,
4128         0, 3540, 3540, 3541, 3541, 3541, 3541,    0,    0, 3541,
4129      3541, 3542, 3542, 3542,    0,    0,    0, 3542, 3543, 3543,
4130      3543, 3543,    0,    0, 3543, 3543, 3544, 3544, 3544, 3544,
4131         0, 3544,    0, 3544, 3545, 3545, 3545, 3545,    0,    0,
4132      3545, 3545, 3546, 3546, 3546,    0,    0,    0, 3546, 3547,
4133      3547, 3547, 3547,    0,    0, 3547, 3547, 3548, 3548, 3548,
4134         0,    0,    0, 3548, 3549, 3549, 3549, 3549,    0,    0,
4135      3549, 3549, 3550, 3550, 3550,    0,    0,    0, 3550, 3551,
4136
4137      3551, 3551, 3551,    0,    0, 3551, 3551, 3552, 3552, 3552,
4138         0,    0,    0, 3552, 3553, 3553, 3553, 3553,    0,    0,
4139      3553, 3553, 3554, 3554, 3554,    0,    0,    0, 3554, 3555,
4140      3555, 3555, 3555,    0,    0, 3555, 3555, 3556, 3556, 3556,
4141         0,    0,    0, 3556, 3557, 3557, 3557, 3557,    0,    0,
4142      3557, 3557, 3558, 3558, 3558,    0,    0,    0, 3558, 3559,
4143      3559, 3559, 3559,    0,    0, 3559, 3559, 3560, 3560, 3560,
4144      3560,    0,    0, 3560, 3560, 3561, 3561, 3561,    0,    0,
4145         0, 3561, 3562, 3562, 3562, 3562,    0,    0, 3562, 3562,
4146      3563, 3563, 3563,    0,    0,    0, 3563, 3564, 3564, 3564,
4147
4148      3564,    0,    0, 3564, 3564, 3565, 3565, 3565, 3565,    0,
4149      3565,    0, 3565, 3566, 3566, 3566, 3566,    0,    0, 3566,
4150      3566, 3567, 3567, 3567, 3567,    0,    0, 3567, 3567, 3568,
4151      3568, 3568, 3568,    0, 3568,    0, 3568, 3569, 3569, 3569,
4152      3569,    0,    0, 3569, 3569, 3570, 3570, 3570, 3570, 3570,
4153      3570, 3570, 3570, 3570, 3571, 3571, 3571, 3571, 3571, 3571,
4154      3571, 3571, 3571, 3572, 3572, 3572,    0,    0,    0, 3572,
4155      3573, 3573, 3573, 3573,    0,    0, 3573, 3573, 3574, 3574,
4156      3574, 3574,    0,    0, 3574, 3574, 3575, 3575, 3575,    0,
4157         0,    0, 3575, 3576, 3576, 3576, 3576,    0,    0, 3576,
4158
4159      3576, 3577, 3577, 3577,    0,    0,    0, 3577, 3578, 3578,
4160      3578, 3578,    0,    0, 3578, 3578, 3579, 3579, 3579,    0,
4161         0,    0, 3579, 3580, 3580, 3580, 3580,    0,    0, 3580,
4162      3580, 3581, 3581, 3581,    0,    0,    0, 3581, 3582, 3582,
4163      3582,    0,    0,    0, 3582, 3583, 3583, 3583, 3583,    0,
4164         0, 3583, 3583, 3584, 3584, 3584,    0,    0,    0, 3584,
4165      3585, 3585, 3585, 3585,    0,    0, 3585, 3585, 3586, 3586,
4166      3586, 3586,    0,    0, 3586, 3586, 3587, 3587, 3587, 3587,
4167         0, 3587,    0, 3587, 3588, 3588, 3588, 3588,    0,    0,
4168      3588, 3588, 3589, 3589, 3589,    0,    0,    0, 3589, 3590,
4169
4170      3590, 3590, 3590,    0,    0, 3590, 3590, 3591, 3591, 3591,
4171      3591,    0,    0, 3591, 3591, 3592, 3592, 3592,    0,    0,
4172         0, 3592, 3593, 3593, 3593, 3593,    0,    0, 3593, 3593,
4173      3594, 3594, 3594, 3594,    0, 3594,    0, 3594, 3595, 3595,
4174      3595, 3595,    0,    0, 3595, 3595, 3596, 3596, 3596,    0,
4175         0,    0, 3596, 3597, 3597, 3597, 3597,    0,    0, 3597,
4176      3597, 3598, 3598, 3598,    0,    0,    0, 3598, 3599, 3599,
4177      3599, 3599,    0,    0, 3599, 3599, 3600, 3600, 3600,    0,
4178         0,    0, 3600, 3601, 3601, 3601, 3601,    0,    0, 3601,
4179      3601, 3602, 3602, 3602,    0,    0,    0, 3602, 3603, 3603,
4180
4181      3603, 3603,    0,    0, 3603, 3603, 3604, 3604, 3604,    0,
4182         0,    0, 3604, 3605, 3605, 3605, 3605,    0,    0, 3605,
4183      3605, 3606, 3606, 3606, 3606,    0, 3606,    0, 3606, 3607,
4184      3607, 3607, 3607,    0,    0, 3607, 3607, 3608, 3608, 3608,
4185         0,    0,    0, 3608, 3609, 3609, 3609, 3609,    0,    0,
4186      3609, 3609, 3610, 3610, 3610, 3610,    0,    0, 3610, 3610,
4187      3611, 3611, 3611, 3611,    0, 3611,    0, 3611, 3612, 3612,
4188      3612, 3612,    0,    0, 3612, 3612, 3613, 3613, 3613,    0,
4189         0,    0, 3613, 3614, 3614, 3614, 3614,    0,    0, 3614,
4190      3614, 3615, 3615, 3615, 3615,    0,    0, 3615, 3615, 3616,
4191
4192      3616, 3616, 3616,    0,    0, 3616, 3616, 3617, 3617, 3617,
4193      3617,    0,    0, 3617, 3617, 3618, 3618, 3618, 3618, 3618,
4194      3618, 3618, 3618, 3618, 3619, 3619, 3619, 3619, 3619, 3619,
4195      3619, 3619, 3619, 3620, 3620, 3620, 3620,    0, 3620,    0,
4196      3620, 3621, 3621, 3621, 3621,    0,    0, 3621, 3621, 3622,
4197      3622, 3622, 3622,    0,    0, 3622, 3622, 3623, 3623, 3623,
4198         0,    0,    0, 3623, 3624, 3624, 3624, 3624,    0,    0,
4199      3624, 3624, 3625, 3625, 3625,    0,    0,    0, 3625, 3626,
4200      3626, 3626, 3626,    0,    0, 3626, 3626, 3627, 3627, 3627,
4201      3627,    0, 3627,    0, 3627, 3628, 3628, 3628, 3628,    0,
4202
4203         0, 3628, 3628, 3629, 3629, 3629, 3629,    0, 3629,    0,
4204      3629, 3630, 3630, 3630, 3630,    0, 3630,    0, 3630, 3631,
4205      3631, 3631, 3631,    0,    0, 3631, 3631, 3632, 3632, 3632,
4206      3632,    0, 3632,    0, 3632, 3633, 3633, 3633, 3633,    0,
4207         0, 3633, 3633, 3634, 3634, 3634, 3634,    0,    0, 3634,
4208      3634, 3635, 3635, 3635, 3635,    0,    0, 3635, 3635, 3636,
4209      3636, 3636,    0,    0,    0, 3636, 3637, 3637, 3637, 3637,
4210         0,    0, 3637, 3637, 3638, 3638, 3638,    0,    0,    0,
4211      3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640,
4212      3640, 3640, 3640,    0, 3640,    0, 3640, 3641, 3641, 3641,
4213
4214      3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,    0,
4215         0, 3642, 3643, 3643, 3643,    0,    0,    0, 3643, 3644,
4216      3644, 3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,
4217         0,    0,    0, 3645, 3646, 3646, 3646, 3646,    0,    0,
4218      3646, 3646, 3647, 3647, 3647,    0,    0,    0, 3647, 3648,
4219      3648, 3648,    0,    0,    0, 3648, 3649, 3649, 3649, 3649,
4220         0,    0, 3649, 3649, 3650, 3650, 3650,    0,    0,    0,
4221      3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651, 3652,
4222      3652, 3652,    0,    0,    0, 3652, 3653, 3653, 3653, 3653,
4223         0,    0, 3653, 3653, 3654, 3654, 3654, 3654,    0,    0,
4224
4225      3654, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655,
4226      3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657, 3657,
4227      3657,    0,    0, 3657, 3657, 3658, 3658, 3658, 3658,    0,
4228         0, 3658, 3658, 3659, 3659, 3659, 3659,    0,    0, 3659,
4229      3659, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
4230      3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3662,
4231      3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663,
4232      3663,    0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,
4233         0, 3664, 3665, 3665, 3665,    0,    0,    0, 3665, 3666,
4234      3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667, 3667,
4235
4236      3667,    0,    0, 3667, 3667, 3668, 3668, 3668, 3668,    0,
4237         0, 3668, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4238      3669, 3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671,
4239      3671, 3671,    0,    0,    0, 3671, 3672, 3672, 3672, 3672,
4240         0,    0, 3672, 3672, 3673, 3673, 3673,    0,    0,    0,
4241      3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675,
4242      3675, 3675, 3675,    0,    0, 3675, 3675, 3676, 3676, 3676,
4243         0,    0,    0, 3676, 3677, 3677, 3677,    0,    0,    0,
4244      3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678, 3679,
4245      3679, 3679,    0,    0,    0, 3679, 3680, 3680, 3680, 3680,
4246
4247         0,    0, 3680, 3680, 3681, 3681, 3681,    0,    0,    0,
4248      3681, 3682, 3682, 3682,    0,    0,    0, 3682, 3683, 3683,
4249      3683,    0,    0,    0, 3683, 3684, 3684, 3684, 3684,    0,
4250         0, 3684, 3684, 3685, 3685, 3685,    0,    0,    0, 3685,
4251      3686, 3686, 3686, 3686,    0,    0, 3686, 3686, 3687, 3687,
4252      3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688, 3688,
4253         0,    0, 3688, 3688, 3689, 3689, 3689, 3689,    0, 3689,
4254         0, 3689, 3690, 3690, 3690, 3690,    0,    0, 3690, 3690,
4255      3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692,
4256      3692, 3692,    0,    0, 3692, 3692, 3693, 3693, 3693, 3693,
4257
4258      3693, 3693, 3693, 3693, 3693, 3694, 3694, 3694, 3694, 3694,
4259      3694, 3694, 3694, 3694, 3695, 3695, 3695, 3695,    0,    0,
4260      3695, 3695, 3696, 3696, 3696, 3696,    0,    0, 3696, 3696,
4261      3697, 3697, 3697,    0,    0,    0, 3697, 3698, 3698, 3698,
4262      3698,    0, 3698,    0, 3698, 3699, 3699, 3699, 3699,    0,
4263         0, 3699, 3699, 3700, 3700, 3700, 3700,    0,    0, 3700,
4264      3700, 3701, 3701, 3701, 3701,    0,    0, 3701, 3701, 3702,
4265      3702, 3702, 3702,    0,    0, 3702, 3702, 3703, 3703, 3703,
4266         0,    0,    0, 3703, 3704, 3704, 3704, 3704,    0,    0,
4267      3704, 3704, 3705, 3705, 3705,    0,    0,    0, 3705, 3706,
4268
4269      3706, 3706, 3706,    0,    0, 3706, 3706, 3707, 3707, 3707,
4270      3707,    0,    0, 3707, 3707, 3708, 3708, 3708,    0,    0,
4271         0, 3708, 3709, 3709, 3709,    0,    0,    0, 3709, 3710,
4272      3710, 3710, 3710,    0, 3710,    0, 3710, 3711, 3711, 3711,
4273      3711,    0,    0, 3711, 3711, 3712, 3712, 3712, 3712,    0,
4274      3712,    0, 3712, 3713, 3713, 3713,    0,    0,    0, 3713,
4275      3714, 3714, 3714,    0,    0,    0, 3714, 3715, 3715, 3715,
4276      3715,    0,    0, 3715, 3715, 3716, 3716, 3716, 3716,    0,
4277      3716,    0, 3716, 3717, 3717, 3717, 3717,    0,    0, 3717,
4278      3717, 3718, 3718, 3718, 3718,    0,    0, 3718, 3718, 3719,
4279
4280      3719, 3719, 3719,    0,    0, 3719, 3719, 3720, 3720, 3720,
4281      3720,    0, 3720,    0, 3720, 3721, 3721, 3721, 3721,    0,
4282         0, 3721, 3721, 3722, 3722, 3722, 3722,    0,    0, 3722,
4283      3722, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
4284      3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3725,
4285      3725, 3725, 3725,    0,    0, 3725, 3725, 3726, 3726, 3726,
4286         0,    0,    0, 3726, 3727, 3727, 3727,    0,    0,    0,
4287      3727, 3728, 3728, 3728, 3728,    0,    0, 3728, 3728, 3729,
4288      3729, 3729, 3729,    0,    0, 3729, 3729, 3730, 3730, 3730,
4289      3730,    0,    0, 3730, 3730, 3731, 3731, 3731,    0,    0,
4290
4291         0, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732, 3732,
4292      3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734, 3734,
4293      3734, 3734, 3734, 3734, 3734, 3734, 3735, 3735, 3735, 3735,
4294      3735, 3735, 3735, 3735, 3735, 3736, 3736, 3736, 3736, 3736,
4295      3736, 3736, 3736, 3736, 3737, 3737, 3737, 3737, 3737, 3737,
4296      3737, 3737, 3737, 3738, 3738, 3738, 3738, 3738, 3738, 3738,
4297      3738, 3738, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739,
4298      3739, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4299      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4300      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4301
4302      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4303      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4304      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4305      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4306      3259, 3259, 3259, 3259, 3259, 3259
4307     } ;
4308
4309 /* Table of booleans, true if rule could match eol. */
4310 static yyconst flex_int32_t yy_rule_can_match_eol[559] =
4311     {   0,
4312 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4313     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4314     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4315     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4316     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4317     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4318     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4319     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4320     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4321     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4322     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4323     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4324     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4325     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4326     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4327     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4328     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4329     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4330     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4331     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4332     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4333     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4334     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4335     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4336     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4337     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4338     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 
4339     0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4340
4341 static yy_state_type yy_last_accepting_state;
4342 static char *yy_last_accepting_cpos;
4343
4344 extern int surf_parse__flex_debug;
4345 int surf_parse__flex_debug = 0;
4346
4347 /* The intent behind this definition is that it'll catch
4348  * any uses of REJECT which flex missed.
4349  */
4350 #define REJECT reject_used_but_not_detected
4351 #define yymore() yymore_used_but_not_detected
4352 #define YY_MORE_ADJ 0
4353 #define YY_RESTORE_YY_MORE_OFFSET
4354 char *surf_parse_text;
4355 /* Validating XML processor for src/surf/simgrid.dtd.
4356  *
4357  * This program was generated with the FleXML XML processor generator.
4358  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4359  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
4360  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
4361  * 
4362  * There are two, intertwined parts to this program, part A and part B.
4363  *
4364  * Part A
4365  * ------
4366  * 
4367  * Some parts, here collectively called "Part A", are found in the 
4368  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4369  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
4370  *
4371  * You can redistribute, use, perform, display and/or modify "Part A"
4372  * provided the following two conditions hold:
4373  *
4374  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4375  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4376  *    FITNESS FOR A PARTICULAR PURPOSE.
4377  *
4378  * 2. The program distribution conditions do not in any way affect the
4379  *    distribution conditions of the FleXML system used to generate this
4380  *    file or any version of FleXML derived from that system.
4381  *
4382  * Notice that these are explicit rights granted to you for files
4383  * generated by the FleXML system.  For your rights in connection with
4384  * the FleXML system itself please consult the GNU General Public License.
4385  * 
4386  * Part B
4387  * ------
4388  * 
4389  * The other parts, here collectively called "Part B", and which came 
4390  * from the DTD used by FleXML to generate this program, can be 
4391  * distributed (or not, as the case may be) under the terms of whoever
4392  * wrote them, provided these terms respect and obey the two conditions 
4393  * above under the heading "Part A".
4394  *
4395  * The author of and contributors to FleXML specifically disclaim
4396  * any copyright interest in "Part B", unless "Part B" was written 
4397  * by the author of or contributors to FleXML.
4398  * 
4399  */
4400
4401 /* Version strings. */
4402 const char rcs_surfxml_flexml_skeleton[] =
4403  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4404 const char rcs_surfxml_flexml[] =
4405  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
4406
4407 /* ANSI headers. */
4408 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4409 #include <stdio.h>
4410 #include <string.h>
4411 #include <assert.h>
4412 #include <stdarg.h>
4413 #include <ctype.h>
4414      
4415 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4416 # ifndef __STRICT_ANSI__
4417 #  include <io.h>
4418 #  include <process.h>
4419 # endif
4420 #else
4421 # include <unistd.h>
4422 #endif
4423      
4424 #ifndef FLEXML_INDEXSTACKSIZE
4425 #define FLEXML_INDEXSTACKSIZE 1000
4426 #endif
4427
4428 /* Generated definitions. */
4429 #define FLEXML_yylineno
4430 #ifndef FLEXML_BUFFERSTACKSIZE
4431 #define FLEXML_BUFFERSTACKSIZE 1000000
4432 #endif
4433 #define FLEXML_NEED_BUFFERLIT
4434
4435 /* XML processor api. */
4436 /* FleXML-provided data. */
4437 int surfxml_pcdata_ix;
4438 extern char *surfxml_bufferstack;
4439 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4440 AT_surfxml_mount_name AX_surfxml_mount_name;
4441 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4442 AT_surfxml_random_generator AX_surfxml_random_generator;
4443 #define A_surfxml_random_generator AX_surfxml_random_generator
4444 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4445 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4446 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4447 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4448 AT_surfxml_prop_id AX_surfxml_prop_id;
4449 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4450 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4451 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4452 AT_surfxml_host_id AX_surfxml_host_id;
4453 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4454 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4455 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4456 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4457 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4458 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4459 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4460 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4461 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4462 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4463 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4464 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4465 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4466 AT_surfxml_host_state AX_surfxml_host_state;
4467 #define A_surfxml_host_state AX_surfxml_host_state
4468 AT_surfxml_AS_id AX_surfxml_AS_id;
4469 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4470 AT_surfxml_host_power AX_surfxml_host_power;
4471 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4472 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4473 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4474 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4475 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4476 AT_surfxml_router_id AX_surfxml_router_id;
4477 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4478 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4479 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4480 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4481 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4482 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4483 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4484 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4485 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4486 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4487 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4488 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4489 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4490 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4491 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4492 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4493 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4494 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4495 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4496 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4497 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4498 AT_surfxml_trace_file AX_surfxml_trace_file;
4499 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4500 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4501 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4502 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4503 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4504 AT_surfxml_random_min AX_surfxml_random_min;
4505 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4506 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4507 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4508 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4509 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4510 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4511 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4512 AT_surfxml_storage_content AX_surfxml_storage_content;
4513 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4514 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4515 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4516 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4517 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4518 AT_surfxml_argument_value AX_surfxml_argument_value;
4519 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4520 AT_surfxml_link_state AX_surfxml_link_state;
4521 #define A_surfxml_link_state AX_surfxml_link_state
4522 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4523 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4524 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4525 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4526 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4527 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4528 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4529 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4530 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4531 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4532 AT_surfxml_random_mean AX_surfxml_random_mean;
4533 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4534 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4535 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4536 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4537 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4538 AT_surfxml_link_latency AX_surfxml_link_latency;
4539 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4540 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4541 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4542 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4543 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4544 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4545 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4546 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4547 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4548 AT_surfxml_random_seed AX_surfxml_random_seed;
4549 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4550 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4551 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4552 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4553 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4554 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4555 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4556 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4557 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4558 AT_surfxml_random_id AX_surfxml_random_id;
4559 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4560 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4561 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4562 AT_surfxml_random_max AX_surfxml_random_max;
4563 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4564 AT_surfxml_link_id AX_surfxml_link_id;
4565 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4566 AT_surfxml_process_host AX_surfxml_process_host;
4567 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4568 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4569 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4570 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4571 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4572 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4573 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4574 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4575 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4576 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4577 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4578 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4579 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4580 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4581 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4582 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4583 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4584 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4585 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4586 AT_surfxml_prop_value AX_surfxml_prop_value;
4587 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4588 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4589 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4590 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4591 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4592 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4593 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4594 AT_surfxml_random_radical AX_surfxml_random_radical;
4595 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4596 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4597 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4598 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4599 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4600 AT_surfxml_mount_id AX_surfxml_mount_id;
4601 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4602 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4603 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4604 AT_surfxml_process_function AX_surfxml_process_function;
4605 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4606 AT_surfxml_peer_id AX_surfxml_peer_id;
4607 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4608 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4609 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4610 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4611 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4612 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4613 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4614 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4615 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4616 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4617 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4618 AT_surfxml_host_core AX_surfxml_host_core;
4619 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4620 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4621 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4622 AT_surfxml_host_availability AX_surfxml_host_availability;
4623 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4624 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4625 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4626 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4627 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4628 AT_surfxml_route_src AX_surfxml_route_src;
4629 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4630 AT_surfxml_storage_id AX_surfxml_storage_id;
4631 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4632 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4633 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4634 AT_surfxml_trace_id AX_surfxml_trace_id;
4635 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4636 AT_surfxml_peer_power AX_surfxml_peer_power;
4637 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4638 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4639 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4640 AT_surfxml_config_id AX_surfxml_config_id;
4641 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4642 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4643 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4644 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4645 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4646 AT_surfxml_include_file AX_surfxml_include_file;
4647 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4648 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4649 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4650 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4651 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4652 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4653 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4654 AT_surfxml_route_dst AX_surfxml_route_dst;
4655 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4656 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4657 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4658 AT_surfxml_platform_version AX_surfxml_platform_version;
4659 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4660
4661 /* XML state. */
4662 #ifdef FLEX_DEBUG
4663 # define ENTER(state)   debug_enter(state,#state)
4664 # define LEAVE          debug_leave()
4665 # define SET(state)     debug_set(state,#state)
4666   static void debug_enter(int, const char*);
4667   static void debug_leave(void);
4668   static void debug_set(int, const char*);
4669 #else
4670 # define ENTER(state)   (yy_push_state(state))
4671 # define LEAVE          (yy_pop_state())
4672 # define SET(state)     BEGIN(state)
4673 #endif
4674
4675 /* Generic actions. */
4676 #define SKIP    /*skip*/
4677 #define SUCCEED        CLEANUP; return 0
4678
4679 #define FAIL    return fail
4680 static int fail(const char*, ...);
4681
4682 enum {flexml_max_err_msg_size = 512};
4683 static char flexml_err_msg[flexml_max_err_msg_size];
4684 const char * surfxml_parse_err_msg()
4685 {
4686     return flexml_err_msg;
4687 }
4688 static void reset_surfxml_parse_err_msg()
4689 {
4690     flexml_err_msg[0] = '\0';
4691 }
4692
4693 /* Cleanup */
4694 static void cleanup(void);
4695 #define CLEANUP  cleanup()
4696
4697 /* Text buffer stack handling. */
4698 char *surfxml_bufferstack = NULL;
4699 static int blimit = FLEXML_BUFFERSTACKSIZE;
4700 static int bnext = 1;
4701
4702 static int *indexstack = NULL;
4703 static int ilimit = FLEXML_INDEXSTACKSIZE;
4704 static int inext = 1;
4705
4706 #define BUFFERSET(P)  (P = bnext)
4707 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4708 #define BUFFERDONE    (BUFFERPUTC('\0'))
4709
4710 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4711
4712 /* after this is called, there are at least 2 slots left in the stack */
4713 static int ck_blimit()
4714 {
4715      if (bnext >= blimit) {
4716          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4717          {
4718              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4719              assert(temp);
4720              surfxml_bufferstack = temp;
4721          }
4722      }
4723      return 0;
4724 }
4725
4726 /* after this is called, there are at least 2 slots left in the stack */
4727 static int ck_ilimit()
4728 {
4729      if (inext >= ilimit) {
4730          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4731          {
4732              int *temp = (int *) realloc(indexstack, ilimit);
4733              assert(temp);
4734              indexstack = temp;
4735          }
4736      }
4737      return 0;
4738 }
4739
4740 #ifdef FLEXML_NEED_BUFFERLIT
4741 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4742 {
4743   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4744   assert(s <= e); BUFFERSET(*pp);
4745   while (++s<e) {
4746     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4747     else BUFFERPUTC(*s);
4748   }
4749   BUFFERDONE;
4750 }
4751 #endif
4752
4753 static void pushbuffer(int p)
4754 {
4755     ck_ilimit();
4756     indexstack[inext++] = p;
4757     indexstack[inext++] = bnext;    
4758 }
4759
4760 static int popbuffer(void)
4761 {
4762     assert(inext >= 2);
4763     bnext = indexstack[--inext];
4764     return indexstack[--inext];
4765 }
4766
4767 /* General internal entities are `unput' back onto the input stream... */
4768 #define ENTITYTEXT(T) \
4769   { char *s = (T), *e = s+strlen(s);\
4770     while (--e >= s) { unput(*e); }}
4771
4772 /* Flex standard options. */
4773 #define YY_NO_INPUT 1
4774 /* Flex user-requested options. */
4775 /* XML character classes (currently restricted to ASCII). */
4776 /* "Common syntactic structures." */
4777 /* "Names and Tokens." */
4778 /* Miscellaneous. */
4779 /* Parser states (flex `exclusive start conditions'):
4780  *
4781  * PROLOG       the XML prolog of the document before <?xml...>
4782  * DOCTYPE      the XML prolog of the document after <?xml...>
4783  * EPILOG       after the root element
4784  * INCOMMENT    inside an XML comment <!--....-->
4785  * INPI         inside an XML PI <?...?>
4786  * VALUE1       inside a '...'-delimited literal
4787  * VALUE2       inside a "..."-delimited literal
4788  * CDATA        inside a <![CDATA[...] ]> section.
4789  * ROOT_<tag>   expect root element <tag>
4790  * AL_<tag>     inside the attribute list for <tag>
4791  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4792  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4793  */
4794
4795 /* State names. */
4796 const char* *surfxml_statenames=NULL;
4797
4798 #define INITIAL 0
4799 #define PROLOG 1
4800 #define DOCTYPE 2
4801 #define EPILOG 3
4802 #define INCOMMENT 4
4803 #define INPI 5
4804 #define VALUE1 6
4805 #define VALUE2 7
4806 #define CDATA 8
4807 #define ROOT_surfxml_platform 9
4808 #define AL_surfxml_platform 10
4809 #define S_surfxml_platform 11
4810 #define S_surfxml_platform_1 12
4811 #define S_surfxml_platform_2 13
4812 #define S_surfxml_platform_3 14
4813 #define S_surfxml_platform_4 15
4814 #define S_surfxml_platform_5 16
4815 #define S_surfxml_platform_6 17
4816 #define S_surfxml_platform_7 18
4817 #define S_surfxml_platform_8 19
4818 #define E_surfxml_platform 20
4819 #define AL_surfxml_include 21
4820 #define S_surfxml_include 22
4821 #define S_surfxml_include_1 23
4822 #define S_surfxml_include_2 24
4823 #define E_surfxml_include 25
4824 #define AL_surfxml_trace 26
4825 #define IN_trace 27
4826 #define AL_surfxml_random 28
4827 #define E_surfxml_random 29
4828 #define AL_surfxml_trace___connect 30
4829 #define E_surfxml_trace___connect 31
4830 #define AL_surfxml_AS 32
4831 #define S_surfxml_AS 33
4832 #define S_surfxml_AS_1 34
4833 #define S_surfxml_AS_2 35
4834 #define S_surfxml_AS_3 36
4835 #define S_surfxml_AS_4 37
4836 #define S_surfxml_AS_5 38
4837 #define S_surfxml_AS_6 39
4838 #define S_surfxml_AS_7 40
4839 #define S_surfxml_AS_8 41
4840 #define S_surfxml_AS_9 42
4841 #define S_surfxml_AS_10 43
4842 #define S_surfxml_AS_11 44
4843 #define S_surfxml_AS_12 45
4844 #define S_surfxml_AS_13 46
4845 #define S_surfxml_AS_14 47
4846 #define S_surfxml_AS_15 48
4847 #define S_surfxml_AS_16 49
4848 #define E_surfxml_AS 50
4849 #define AL_surfxml_storage___type 51
4850 #define S_surfxml_storage___type 52
4851 #define S_surfxml_storage___type_1 53
4852 #define S_surfxml_storage___type_2 54
4853 #define E_surfxml_storage___type 55
4854 #define AL_surfxml_storage 56
4855 #define S_surfxml_storage 57
4856 #define S_surfxml_storage_1 58
4857 #define S_surfxml_storage_2 59
4858 #define E_surfxml_storage 60
4859 #define AL_surfxml_mount 61
4860 #define E_surfxml_mount 62
4861 #define AL_surfxml_mstorage 63
4862 #define E_surfxml_mstorage 64
4863 #define AL_surfxml_host 65
4864 #define S_surfxml_host 66
4865 #define S_surfxml_host_1 67
4866 #define S_surfxml_host_2 68
4867 #define E_surfxml_host 69
4868 #define AL_surfxml_gpu 70
4869 #define E_surfxml_gpu 71
4870 #define AL_surfxml_host___link 72
4871 #define E_surfxml_host___link 73
4872 #define AL_surfxml_cluster 74
4873 #define E_surfxml_cluster 75
4874 #define AL_surfxml_cabinet 76
4875 #define E_surfxml_cabinet 77
4876 #define AL_surfxml_peer 78
4877 #define E_surfxml_peer 79
4878 #define AL_surfxml_router 80
4879 #define E_surfxml_router 81
4880 #define AL_surfxml_backbone 82
4881 #define E_surfxml_backbone 83
4882 #define AL_surfxml_link 84
4883 #define S_surfxml_link 85
4884 #define S_surfxml_link_1 86
4885 #define S_surfxml_link_2 87
4886 #define E_surfxml_link 88
4887 #define AL_surfxml_route 89
4888 #define S_surfxml_route 90
4889 #define S_surfxml_route_1 91
4890 #define S_surfxml_route_2 92
4891 #define E_surfxml_route 93
4892 #define AL_surfxml_ASroute 94
4893 #define S_surfxml_ASroute 95
4894 #define S_surfxml_ASroute_1 96
4895 #define S_surfxml_ASroute_2 97
4896 #define E_surfxml_ASroute 98
4897 #define AL_surfxml_link___ctn 99
4898 #define E_surfxml_link___ctn 100
4899 #define AL_surfxml_bypassRoute 101
4900 #define S_surfxml_bypassRoute 102
4901 #define S_surfxml_bypassRoute_1 103
4902 #define S_surfxml_bypassRoute_2 104
4903 #define E_surfxml_bypassRoute 105
4904 #define AL_surfxml_bypassASroute 106
4905 #define S_surfxml_bypassASroute 107
4906 #define S_surfxml_bypassASroute_1 108
4907 #define S_surfxml_bypassASroute_2 109
4908 #define E_surfxml_bypassASroute 110
4909 #define AL_surfxml_process 111
4910 #define S_surfxml_process 112
4911 #define S_surfxml_process_1 113
4912 #define S_surfxml_process_2 114
4913 #define E_surfxml_process 115
4914 #define AL_surfxml_argument 116
4915 #define E_surfxml_argument 117
4916 #define AL_surfxml_config 118
4917 #define S_surfxml_config 119
4918 #define S_surfxml_config_1 120
4919 #define S_surfxml_config_2 121
4920 #define E_surfxml_config 122
4921 #define AL_surfxml_prop 123
4922 #define E_surfxml_prop 124
4923 #define IMPOSSIBLE 125
4924
4925 #ifndef YY_NO_UNISTD_H
4926 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4927  * down here because we want the user's section 1 to have been scanned first.
4928  * The user has a chance to override it with an option.
4929  */
4930 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4931 #  ifndef __STRICT_ANSI__
4932 #    include <io.h>
4933 #    include <process.h>
4934 #  endif
4935 #else
4936 #  include <unistd.h>
4937 #endif
4938 #endif
4939
4940 #ifndef YY_EXTRA_TYPE
4941 #define YY_EXTRA_TYPE void *
4942 #endif
4943
4944 static int yy_init_globals (void );
4945
4946 /* Accessor methods to globals.
4947    These are made visible to non-reentrant scanners for convenience. */
4948
4949 int surf_parse_lex_destroy (void );
4950
4951 int surf_parse_get_debug (void );
4952
4953 void surf_parse_set_debug (int debug_flag  );
4954
4955 YY_EXTRA_TYPE surf_parse_get_extra (void );
4956
4957 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4958
4959 FILE *surf_parse_get_in (void );
4960
4961 void surf_parse_set_in  (FILE * in_str  );
4962
4963 FILE *surf_parse_get_out (void );
4964
4965 void surf_parse_set_out  (FILE * out_str  );
4966
4967 int surf_parse_get_leng (void );
4968
4969 char *surf_parse_get_text (void );
4970
4971 int surf_parse_get_lineno (void );
4972
4973 void surf_parse_set_lineno (int line_number  );
4974
4975 /* Macros after this point can all be overridden by user definitions in
4976  * section 1.
4977  */
4978
4979 #ifndef YY_SKIP_YYWRAP
4980 #ifdef __cplusplus
4981 extern "C" int surf_parse_wrap (void );
4982 #else
4983 extern int surf_parse_wrap (void );
4984 #endif
4985 #endif
4986
4987 #ifndef yytext_ptr
4988 static void yy_flex_strncpy (char *,yyconst char *,int );
4989 #endif
4990
4991 #ifdef YY_NEED_STRLEN
4992 static int yy_flex_strlen (yyconst char * );
4993 #endif
4994
4995 #ifndef YY_NO_INPUT
4996
4997 #ifdef __cplusplus
4998 static int yyinput (void );
4999 #else
5000 static int input (void );
5001 #endif
5002
5003 #endif
5004
5005         static int yy_start_stack_ptr = 0;
5006         static int yy_start_stack_depth = 0;
5007         static int *yy_start_stack = NULL;
5008     
5009     static void yy_push_state (int new_state );
5010     
5011     static void yy_pop_state (void );
5012     
5013 /* Amount of stuff to slurp up with each read. */
5014 #ifndef YY_READ_BUF_SIZE
5015 #ifdef __ia64__
5016 /* On IA-64, the buffer size is 16k, not 8k */
5017 #define YY_READ_BUF_SIZE 16384
5018 #else
5019 #define YY_READ_BUF_SIZE 8192
5020 #endif /* __ia64__ */
5021 #endif
5022
5023 /* Copy whatever the last rule matched to the standard output. */
5024 #ifndef ECHO
5025 /* This used to be an fputs(), but since the string might contain NUL's,
5026  * we now use fwrite().
5027  */
5028 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5029 #endif
5030
5031 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5032  * is returned in "result".
5033  */
5034 #ifndef YY_INPUT
5035 #define YY_INPUT(buf,result,max_size) \
5036         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5037                 { \
5038                 int c = '*'; \
5039                 size_t n; \
5040                 for ( n = 0; n < max_size && \
5041                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5042                         buf[n] = (char) c; \
5043                 if ( c == '\n' ) \
5044                         buf[n++] = (char) c; \
5045                 if ( c == EOF && ferror( surf_parse_in ) ) \
5046                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5047                 result = n; \
5048                 } \
5049         else \
5050                 { \
5051                 errno=0; \
5052                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5053                         { \
5054                         if( errno != EINTR) \
5055                                 { \
5056                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5057                                 break; \
5058                                 } \
5059                         errno=0; \
5060                         clearerr(surf_parse_in); \
5061                         } \
5062                 }\
5063 \
5064
5065 #endif
5066
5067 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5068  * we don't want an extra ';' after the "return" because that will cause
5069  * some compilers to complain about unreachable statements.
5070  */
5071 #ifndef yyterminate
5072 #define yyterminate() return YY_NULL
5073 #endif
5074
5075 /* Number of entries by which start-condition stack grows. */
5076 #ifndef YY_START_STACK_INCR
5077 #define YY_START_STACK_INCR 25
5078 #endif
5079
5080 /* Report a fatal error. */
5081 #ifndef YY_FATAL_ERROR
5082 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5083 #endif
5084
5085 /* end tables serialization structures and prototypes */
5086
5087 /* Default declaration of generated scanner - a define so the user can
5088  * easily add parameters.
5089  */
5090 #ifndef YY_DECL
5091 #define YY_DECL_IS_OURS 1
5092
5093 extern int surf_parse_lex (void);
5094
5095 #define YY_DECL int surf_parse_lex (void)
5096 #endif /* !YY_DECL */
5097
5098 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5099  * have been set up.
5100  */
5101 #ifndef YY_USER_ACTION
5102 #define YY_USER_ACTION
5103 #endif
5104
5105 /* Code executed at the end of each rule. */
5106 #ifndef YY_BREAK
5107 #define YY_BREAK break;
5108 #endif
5109
5110 #define YY_RULE_SETUP \
5111         YY_USER_ACTION
5112
5113 /** The main scanner function which does all the work.
5114  */
5115 YY_DECL
5116 {
5117         register yy_state_type yy_current_state;
5118         register char *yy_cp, *yy_bp;
5119         register int yy_act;
5120     
5121  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5122  SET(PROLOG);
5123  reset_surfxml_parse_err_msg();
5124  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5125  assert(surfxml_bufferstack);
5126  #ifdef FLEX_DEBUG
5127  {
5128      int i;
5129      for (i = 0; i < blimit; i++) {
5130          surfxml_bufferstack[i] = '\377';
5131      }
5132  }
5133  #endif
5134  surfxml_bufferstack[0] = '\0';
5135  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5136  assert(indexstack);
5137  indexstack[0] = 0;
5138
5139   /* FleXML_init */
5140   bnext = inext = 1;
5141   surfxml_bufferliteral('\0', &bnext, "0.0");
5142   surfxml_bufferliteral('\0', &bnext, "2147483647");
5143   surfxml_bufferliteral('\0', &bnext, "1");
5144   surfxml_bufferliteral('\0', &bnext, "1.0");
5145   surfxml_bufferliteral('\0', &bnext, "1");
5146   surfxml_bufferliteral('\0', &bnext, "0.0");
5147   surfxml_bufferliteral('\0', &bnext, "-1.0");
5148   surfxml_bufferliteral('\0', &bnext, "-1.0");
5149   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5150   surfxml_statenames[PROLOG] = NULL;
5151   surfxml_statenames[DOCTYPE] = NULL;
5152   surfxml_statenames[EPILOG] = NULL;
5153   surfxml_statenames[INCOMMENT] = NULL;
5154   surfxml_statenames[INPI] = NULL;
5155   surfxml_statenames[VALUE1] = NULL;
5156   surfxml_statenames[VALUE2] = NULL;
5157   surfxml_statenames[CDATA] = NULL;
5158   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5159   surfxml_statenames[AL_surfxml_platform] = NULL;
5160   surfxml_statenames[S_surfxml_platform] = "platform";
5161   surfxml_statenames[S_surfxml_platform_1] = "platform";
5162   surfxml_statenames[S_surfxml_platform_2] = "platform";
5163   surfxml_statenames[S_surfxml_platform_3] = "platform";
5164   surfxml_statenames[S_surfxml_platform_4] = "platform";
5165   surfxml_statenames[S_surfxml_platform_5] = "platform";
5166   surfxml_statenames[S_surfxml_platform_6] = "platform";
5167   surfxml_statenames[S_surfxml_platform_7] = "platform";
5168   surfxml_statenames[S_surfxml_platform_8] = "platform";
5169   surfxml_statenames[E_surfxml_platform] = "platform";
5170   surfxml_statenames[AL_surfxml_include] = NULL;
5171   surfxml_statenames[S_surfxml_include] = "include";
5172   surfxml_statenames[S_surfxml_include_1] = "include";
5173   surfxml_statenames[S_surfxml_include_2] = "include";
5174   surfxml_statenames[E_surfxml_include] = "include";
5175   surfxml_statenames[AL_surfxml_trace] = NULL;
5176   surfxml_statenames[IN_trace] = "trace";
5177   surfxml_statenames[AL_surfxml_random] = NULL;
5178   surfxml_statenames[E_surfxml_random] = "random";
5179   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5180   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5181   surfxml_statenames[AL_surfxml_AS] = NULL;
5182   surfxml_statenames[S_surfxml_AS] = "AS";
5183   surfxml_statenames[S_surfxml_AS_1] = "AS";
5184   surfxml_statenames[S_surfxml_AS_2] = "AS";
5185   surfxml_statenames[S_surfxml_AS_3] = "AS";
5186   surfxml_statenames[S_surfxml_AS_4] = "AS";
5187   surfxml_statenames[S_surfxml_AS_5] = "AS";
5188   surfxml_statenames[S_surfxml_AS_6] = "AS";
5189   surfxml_statenames[S_surfxml_AS_7] = "AS";
5190   surfxml_statenames[S_surfxml_AS_8] = "AS";
5191   surfxml_statenames[S_surfxml_AS_9] = "AS";
5192   surfxml_statenames[S_surfxml_AS_10] = "AS";
5193   surfxml_statenames[S_surfxml_AS_11] = "AS";
5194   surfxml_statenames[S_surfxml_AS_12] = "AS";
5195   surfxml_statenames[S_surfxml_AS_13] = "AS";
5196   surfxml_statenames[S_surfxml_AS_14] = "AS";
5197   surfxml_statenames[S_surfxml_AS_15] = "AS";
5198   surfxml_statenames[S_surfxml_AS_16] = "AS";
5199   surfxml_statenames[E_surfxml_AS] = "AS";
5200   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5201   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5202   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5203   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5204   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5205   surfxml_statenames[AL_surfxml_storage] = NULL;
5206   surfxml_statenames[S_surfxml_storage] = "storage";
5207   surfxml_statenames[S_surfxml_storage_1] = "storage";
5208   surfxml_statenames[S_surfxml_storage_2] = "storage";
5209   surfxml_statenames[E_surfxml_storage] = "storage";
5210   surfxml_statenames[AL_surfxml_mount] = NULL;
5211   surfxml_statenames[E_surfxml_mount] = "mount";
5212   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5213   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5214   surfxml_statenames[AL_surfxml_host] = NULL;
5215   surfxml_statenames[S_surfxml_host] = "host";
5216   surfxml_statenames[S_surfxml_host_1] = "host";
5217   surfxml_statenames[S_surfxml_host_2] = "host";
5218   surfxml_statenames[E_surfxml_host] = "host";
5219   surfxml_statenames[AL_surfxml_gpu] = NULL;
5220   surfxml_statenames[E_surfxml_gpu] = "gpu";
5221   surfxml_statenames[AL_surfxml_host___link] = NULL;
5222   surfxml_statenames[E_surfxml_host___link] = "host_link";
5223   surfxml_statenames[AL_surfxml_cluster] = NULL;
5224   surfxml_statenames[E_surfxml_cluster] = "cluster";
5225   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5226   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5227   surfxml_statenames[AL_surfxml_peer] = NULL;
5228   surfxml_statenames[E_surfxml_peer] = "peer";
5229   surfxml_statenames[AL_surfxml_router] = NULL;
5230   surfxml_statenames[E_surfxml_router] = "router";
5231   surfxml_statenames[AL_surfxml_backbone] = NULL;
5232   surfxml_statenames[E_surfxml_backbone] = "backbone";
5233   surfxml_statenames[AL_surfxml_link] = NULL;
5234   surfxml_statenames[S_surfxml_link] = "link";
5235   surfxml_statenames[S_surfxml_link_1] = "link";
5236   surfxml_statenames[S_surfxml_link_2] = "link";
5237   surfxml_statenames[E_surfxml_link] = "link";
5238   surfxml_statenames[AL_surfxml_route] = NULL;
5239   surfxml_statenames[S_surfxml_route] = "route";
5240   surfxml_statenames[S_surfxml_route_1] = "route";
5241   surfxml_statenames[S_surfxml_route_2] = "route";
5242   surfxml_statenames[E_surfxml_route] = "route";
5243   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5244   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5245   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5246   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5247   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5248   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5249   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5250   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5251   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5252   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5253   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5254   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5255   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5256   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5257   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5258   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5259   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5260   surfxml_statenames[AL_surfxml_process] = NULL;
5261   surfxml_statenames[S_surfxml_process] = "process";
5262   surfxml_statenames[S_surfxml_process_1] = "process";
5263   surfxml_statenames[S_surfxml_process_2] = "process";
5264   surfxml_statenames[E_surfxml_process] = "process";
5265   surfxml_statenames[AL_surfxml_argument] = NULL;
5266   surfxml_statenames[E_surfxml_argument] = "argument";
5267   surfxml_statenames[AL_surfxml_config] = NULL;
5268   surfxml_statenames[S_surfxml_config] = "config";
5269   surfxml_statenames[S_surfxml_config_1] = "config";
5270   surfxml_statenames[S_surfxml_config_2] = "config";
5271   surfxml_statenames[E_surfxml_config] = "config";
5272   surfxml_statenames[AL_surfxml_prop] = NULL;
5273   surfxml_statenames[E_surfxml_prop] = "prop";
5274   }
5275
5276  /* COMMENTS and PIs: handled uniformly for efficiency. */
5277
5278         if ( !(yy_init) )
5279                 {
5280                 (yy_init) = 1;
5281
5282 #ifdef YY_USER_INIT
5283                 YY_USER_INIT;
5284 #endif
5285
5286                 if ( ! (yy_start) )
5287                         (yy_start) = 1; /* first start state */
5288
5289                 if ( ! surf_parse_in )
5290                         surf_parse_in = stdin;
5291
5292                 if ( ! surf_parse_out )
5293                         surf_parse_out = stdout;
5294
5295                 if ( ! YY_CURRENT_BUFFER ) {
5296                         surf_parse_ensure_buffer_stack ();
5297                         YY_CURRENT_BUFFER_LVALUE =
5298                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5299                 }
5300
5301                 surf_parse__load_buffer_state( );
5302                 }
5303
5304         while ( 1 )             /* loops until end-of-file is reached */
5305                 {
5306                 yy_cp = (yy_c_buf_p);
5307
5308                 /* Support of surf_parse_text. */
5309                 *yy_cp = (yy_hold_char);
5310
5311                 /* yy_bp points to the position in yy_ch_buf of the start of
5312                  * the current run.
5313                  */
5314                 yy_bp = yy_cp;
5315
5316                 yy_current_state = (yy_start);
5317 yy_match:
5318                 do
5319                         {
5320                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5321                         if ( yy_accept[yy_current_state] )
5322                                 {
5323                                 (yy_last_accepting_state) = yy_current_state;
5324                                 (yy_last_accepting_cpos) = yy_cp;
5325                                 }
5326                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5327                                 {
5328                                 yy_current_state = (int) yy_def[yy_current_state];
5329                                 if ( yy_current_state >= 3260 )
5330                                         yy_c = yy_meta[(unsigned int) yy_c];
5331                                 }
5332                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5333                         ++yy_cp;
5334                         }
5335                 while ( yy_base[yy_current_state] != 11972 );
5336
5337 yy_find_action:
5338                 yy_act = yy_accept[yy_current_state];
5339                 if ( yy_act == 0 )
5340                         { /* have to back up */
5341                         yy_cp = (yy_last_accepting_cpos);
5342                         yy_current_state = (yy_last_accepting_state);
5343                         yy_act = yy_accept[yy_current_state];
5344                         }
5345
5346                 YY_DO_BEFORE_ACTION;
5347
5348                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5349                         {
5350                         int yyl;
5351                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5352                                 if ( surf_parse_text[yyl] == '\n' )
5353                                            
5354     surf_parse_lineno++;
5355 ;
5356                         }
5357
5358 do_action:      /* This label is used only to access EOF actions. */
5359
5360                 switch ( yy_act )
5361         { /* beginning of action switch */
5362                         case 0: /* must back up */
5363                         /* undo the effects of YY_DO_BEFORE_ACTION */
5364                         *yy_cp = (yy_hold_char);
5365                         yy_cp = (yy_last_accepting_cpos);
5366                         yy_current_state = (yy_last_accepting_state);
5367                         goto yy_find_action;
5368
5369 case 1:
5370 YY_RULE_SETUP
5371 ENTER(INCOMMENT);
5372         YY_BREAK
5373 case 2:
5374 YY_RULE_SETUP
5375 ENTER(INPI);
5376         YY_BREAK
5377
5378 case 3:
5379 YY_RULE_SETUP
5380 LEAVE;
5381         YY_BREAK
5382 case 4:
5383 case 5:
5384 case 6:
5385 /* rule 6 can match eol */
5386 YY_RULE_SETUP
5387 SKIP;
5388         YY_BREAK
5389 case YY_STATE_EOF(INCOMMENT):
5390 FAIL("EOF in comment.");
5391         YY_BREAK
5392
5393 case 7:
5394 YY_RULE_SETUP
5395 LEAVE;
5396         YY_BREAK
5397 case 8:
5398 case 9:
5399 /* rule 9 can match eol */
5400 YY_RULE_SETUP
5401 SKIP;
5402         YY_BREAK
5403 case YY_STATE_EOF(INPI):
5404 FAIL("EOF in PI (processing instruction).");
5405         YY_BREAK
5406
5407 /* SPACES: skipped uniformly */
5408 case 10:
5409 /* rule 10 can match eol */
5410 YY_RULE_SETUP
5411 SKIP;
5412         YY_BREAK
5413 /* PROLOG: determine root element and process it. */
5414
5415 case 11:
5416 /* rule 11 can match eol */
5417 YY_RULE_SETUP
5418 SET(DOCTYPE); 
5419         YY_BREAK
5420 case 12:
5421 /* rule 12 can match eol */
5422 YY_RULE_SETUP
5423 FAIL("Bad declaration %s.",surf_parse_text);
5424         YY_BREAK
5425
5426 case 13:
5427 /* rule 13 can match eol */
5428 YY_RULE_SETUP
5429 SET(ROOT_surfxml_platform);
5430         YY_BREAK
5431 case 14:
5432 /* rule 14 can match eol */
5433 YY_RULE_SETUP
5434 FAIL("Bad declaration %s.",surf_parse_text);
5435         YY_BREAK
5436 case 15:
5437 YY_RULE_SETUP
5438 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5439         YY_BREAK
5440 case YY_STATE_EOF(PROLOG):
5441 case YY_STATE_EOF(DOCTYPE):
5442 FAIL("EOF in prolog.");
5443         YY_BREAK
5444
5445 /* RULES DERIVED FROM DTD. */
5446 /* <!-- Small DTD for SURF based tools. -->  */
5447 case 16:
5448 /* rule 16 can match eol */
5449 YY_RULE_SETUP
5450 FAIL("Starting tag <platform> is not allowed here.");
5451         YY_BREAK
5452 case 17:
5453 /* rule 17 can match eol */
5454 YY_RULE_SETUP
5455 {
5456   AX_surfxml_platform_version = 1;
5457   ENTER(AL_surfxml_platform); pushbuffer(0);
5458   }
5459         YY_BREAK
5460
5461 case 18:
5462 /* rule 18 can match eol */
5463 YY_RULE_SETUP
5464 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
5465         YY_BREAK
5466 case 19:
5467 /* rule 19 can match eol */
5468 YY_RULE_SETUP
5469 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
5470         YY_BREAK
5471 case 20:
5472 YY_RULE_SETUP
5473 {
5474   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5475  }
5476         YY_BREAK
5477 case 21:
5478 YY_RULE_SETUP
5479 {
5480   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5481   switch (YY_START) {
5482    case ROOT_surfxml_platform: SET(EPILOG); break;
5483   }
5484  }
5485         YY_BREAK
5486 case 22:
5487 YY_RULE_SETUP
5488 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5489         YY_BREAK
5490 case 23:
5491 YY_RULE_SETUP
5492 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5493         YY_BREAK
5494 case YY_STATE_EOF(AL_surfxml_platform):
5495 FAIL("EOF in attribute list of `platform' element.");
5496         YY_BREAK
5497
5498 case 24:
5499 /* rule 24 can match eol */
5500 YY_RULE_SETUP
5501 {
5502   LEAVE;
5503   ETag_surfxml_platform();
5504   popbuffer(); /* attribute */
5505   switch (YY_START) {
5506    case ROOT_surfxml_platform: SET(EPILOG); break;
5507   }
5508  }
5509         YY_BREAK
5510 case 25:
5511 /* rule 25 can match eol */
5512 YY_RULE_SETUP
5513 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5514         YY_BREAK
5515 case 26:
5516 YY_RULE_SETUP
5517 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5518         YY_BREAK
5519 case YY_STATE_EOF(S_surfxml_platform_8):
5520 case YY_STATE_EOF(S_surfxml_platform_1):
5521 case YY_STATE_EOF(S_surfxml_platform_3):
5522 case YY_STATE_EOF(S_surfxml_platform):
5523 case YY_STATE_EOF(S_surfxml_platform_4):
5524 case YY_STATE_EOF(S_surfxml_platform_6):
5525 case YY_STATE_EOF(E_surfxml_platform):
5526 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5527         YY_BREAK
5528
5529 case 27:
5530 /* rule 27 can match eol */
5531 YY_RULE_SETUP
5532 FAIL("Starting tag <include> is not allowed here.");
5533         YY_BREAK
5534 case 28:
5535 /* rule 28 can match eol */
5536 YY_RULE_SETUP
5537 {
5538   AX_surfxml_include_file = 0;
5539   ENTER(AL_surfxml_include); pushbuffer(0);
5540   }
5541         YY_BREAK
5542
5543 case 29:
5544 /* rule 29 can match eol */
5545 YY_RULE_SETUP
5546 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5547         YY_BREAK
5548 case 30:
5549 /* rule 30 can match eol */
5550 YY_RULE_SETUP
5551 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5552         YY_BREAK
5553 case 31:
5554 YY_RULE_SETUP
5555 {
5556   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5557   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5558  }
5559         YY_BREAK
5560 case 32:
5561 YY_RULE_SETUP
5562 {
5563   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5564   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5565   switch (YY_START) {
5566    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5567    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;
5568    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;
5569    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5570   }
5571  }
5572         YY_BREAK
5573 case 33:
5574 YY_RULE_SETUP
5575 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5576         YY_BREAK
5577 case 34:
5578 YY_RULE_SETUP
5579 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5580         YY_BREAK
5581 case YY_STATE_EOF(AL_surfxml_include):
5582 FAIL("EOF in attribute list of `include' element.");
5583         YY_BREAK
5584
5585 case 35:
5586 /* rule 35 can match eol */
5587 YY_RULE_SETUP
5588 {
5589   LEAVE;
5590   ETag_surfxml_include();
5591   popbuffer(); /* attribute */
5592   switch (YY_START) {
5593    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5594    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;
5595    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;
5596    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5597   }
5598  }
5599         YY_BREAK
5600 case 36:
5601 /* rule 36 can match eol */
5602 YY_RULE_SETUP
5603 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5604         YY_BREAK
5605 case 37:
5606 YY_RULE_SETUP
5607 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5608         YY_BREAK
5609 case YY_STATE_EOF(E_surfxml_include):
5610 case YY_STATE_EOF(S_surfxml_include):
5611 case YY_STATE_EOF(S_surfxml_include_2):
5612 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5613         YY_BREAK
5614
5615 case 38:
5616 /* rule 38 can match eol */
5617 YY_RULE_SETUP
5618 FAIL("Starting tag <trace> is not allowed here.");
5619         YY_BREAK
5620 case 39:
5621 /* rule 39 can match eol */
5622 YY_RULE_SETUP
5623 {
5624   AX_surfxml_trace_id = 0;
5625   AX_surfxml_trace_file = 0;
5626   AX_surfxml_trace_periodicity = 0;
5627   ENTER(AL_surfxml_trace); pushbuffer(0);
5628   }
5629         YY_BREAK
5630
5631 case 40:
5632 /* rule 40 can match eol */
5633 YY_RULE_SETUP
5634 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
5635         YY_BREAK
5636 case 41:
5637 /* rule 41 can match eol */
5638 YY_RULE_SETUP
5639 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
5640         YY_BREAK
5641 case 42:
5642 /* rule 42 can match eol */
5643 YY_RULE_SETUP
5644 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
5645         YY_BREAK
5646 case 43:
5647 /* rule 43 can match eol */
5648 YY_RULE_SETUP
5649 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
5650         YY_BREAK
5651 case 44:
5652 /* rule 44 can match eol */
5653 YY_RULE_SETUP
5654 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
5655         YY_BREAK
5656 case 45:
5657 /* rule 45 can match eol */
5658 YY_RULE_SETUP
5659 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
5660         YY_BREAK
5661 case 46:
5662 YY_RULE_SETUP
5663 {
5664   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5665   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5666   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5667  }
5668         YY_BREAK
5669 case 47:
5670 YY_RULE_SETUP
5671 {
5672   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5673   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5674   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5675   switch (YY_START) {
5676    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5677    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5678    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5679    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;
5680    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5681    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;
5682    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5683   }
5684  }
5685         YY_BREAK
5686 case 48:
5687 YY_RULE_SETUP
5688 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5689         YY_BREAK
5690 case 49:
5691 YY_RULE_SETUP
5692 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5693         YY_BREAK
5694 case YY_STATE_EOF(AL_surfxml_trace):
5695 FAIL("EOF in attribute list of `trace' element.");
5696         YY_BREAK
5697
5698 case 50:
5699 /* rule 50 can match eol */
5700 YY_RULE_SETUP
5701 {
5702   LEAVE;
5703   BUFFERDONE;
5704   ETag_surfxml_trace();
5705   surfxml_pcdata_ix = popbuffer();
5706   popbuffer(); /* attribute */
5707   switch (YY_START) {
5708    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5709    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5710    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5711    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;
5712    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5713    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;
5714    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5715   }
5716  }
5717         YY_BREAK
5718 case 51:
5719 /* rule 51 can match eol */
5720 YY_RULE_SETUP
5721 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5722         YY_BREAK
5723 case YY_STATE_EOF(IN_trace):
5724 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5725         YY_BREAK
5726
5727 case 52:
5728 /* rule 52 can match eol */
5729 YY_RULE_SETUP
5730 FAIL("Starting tag <random> is not allowed here.");
5731         YY_BREAK
5732 case 53:
5733 /* rule 53 can match eol */
5734 YY_RULE_SETUP
5735 {
5736   AX_surfxml_random_id = 0;
5737   AX_surfxml_random_min = 0;
5738   AX_surfxml_random_max = 0;
5739   AX_surfxml_random_mean = 0;
5740   AX_surfxml_random_std_deviation = 0;
5741   AX_surfxml_random_seed = 5;
5742   AX_surfxml_random_radical = 0;
5743   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5744   ENTER(AL_surfxml_random); pushbuffer(0);
5745   }
5746         YY_BREAK
5747
5748 case 54:
5749 /* rule 54 can match eol */
5750 YY_RULE_SETUP
5751 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5752         YY_BREAK
5753 case 55:
5754 /* rule 55 can match eol */
5755 YY_RULE_SETUP
5756 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5757         YY_BREAK
5758 case 56:
5759 /* rule 56 can match eol */
5760 YY_RULE_SETUP
5761 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5762         YY_BREAK
5763 case 57:
5764 /* rule 57 can match eol */
5765 YY_RULE_SETUP
5766 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5767         YY_BREAK
5768 case 58:
5769 /* rule 58 can match eol */
5770 YY_RULE_SETUP
5771 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5772         YY_BREAK
5773 case 59:
5774 /* rule 59 can match eol */
5775 YY_RULE_SETUP
5776 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5777         YY_BREAK
5778 case 60:
5779 /* rule 60 can match eol */
5780 YY_RULE_SETUP
5781 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5782         YY_BREAK
5783 case 61:
5784 /* rule 61 can match eol */
5785 YY_RULE_SETUP
5786 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5787         YY_BREAK
5788 case 62:
5789 /* rule 62 can match eol */
5790 YY_RULE_SETUP
5791 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
5792         YY_BREAK
5793 case 63:
5794 /* rule 63 can match eol */
5795 YY_RULE_SETUP
5796 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
5797         YY_BREAK
5798 case 64:
5799 /* rule 64 can match eol */
5800 YY_RULE_SETUP
5801 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5802         YY_BREAK
5803 case 65:
5804 /* rule 65 can match eol */
5805 YY_RULE_SETUP
5806 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5807         YY_BREAK
5808 case 66:
5809 /* rule 66 can match eol */
5810 YY_RULE_SETUP
5811 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5812         YY_BREAK
5813 case 67:
5814 /* rule 67 can match eol */
5815 YY_RULE_SETUP
5816 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5817         YY_BREAK
5818 case 68:
5819 /* rule 68 can match eol */
5820 case 69:
5821 /* rule 69 can match eol */
5822 YY_RULE_SETUP
5823 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5824         YY_BREAK
5825 case 70:
5826 /* rule 70 can match eol */
5827 case 71:
5828 /* rule 71 can match eol */
5829 YY_RULE_SETUP
5830 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5831         YY_BREAK
5832 case 72:
5833 /* rule 72 can match eol */
5834 case 73:
5835 /* rule 73 can match eol */
5836 YY_RULE_SETUP
5837 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5838         YY_BREAK
5839 case 74:
5840 /* rule 74 can match eol */
5841 case 75:
5842 /* rule 75 can match eol */
5843 YY_RULE_SETUP
5844 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5845         YY_BREAK
5846 case 76:
5847 YY_RULE_SETUP
5848 {
5849   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5850   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5851   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5852   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5853   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5854   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
5855  }
5856         YY_BREAK
5857 case 77:
5858 YY_RULE_SETUP
5859 {
5860   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5861   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5862   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5863   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5864   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5865   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5866   switch (YY_START) {
5867    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5868   }
5869  }
5870         YY_BREAK
5871 case 78:
5872 YY_RULE_SETUP
5873 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5874         YY_BREAK
5875 case 79:
5876 YY_RULE_SETUP
5877 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5878         YY_BREAK
5879 case YY_STATE_EOF(AL_surfxml_random):
5880 FAIL("EOF in attribute list of `random' element.");
5881         YY_BREAK
5882
5883 case 80:
5884 /* rule 80 can match eol */
5885 YY_RULE_SETUP
5886 {
5887   LEAVE;
5888   ETag_surfxml_random();
5889   popbuffer(); /* attribute */
5890   switch (YY_START) {
5891    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5892   }
5893  }
5894         YY_BREAK
5895 case 81:
5896 /* rule 81 can match eol */
5897 YY_RULE_SETUP
5898 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5899         YY_BREAK
5900 case 82:
5901 YY_RULE_SETUP
5902 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5903         YY_BREAK
5904 case YY_STATE_EOF(E_surfxml_random):
5905 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5906         YY_BREAK
5907
5908 case 83:
5909 /* rule 83 can match eol */
5910 YY_RULE_SETUP
5911 FAIL("Starting tag <trace_connect> is not allowed here.");
5912         YY_BREAK
5913 case 84:
5914 /* rule 84 can match eol */
5915 YY_RULE_SETUP
5916 {
5917   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5918   AX_surfxml_trace_connect_trace = 0;
5919   AX_surfxml_trace_connect_element = 0;
5920   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5921   }
5922         YY_BREAK
5923
5924 case 85:
5925 /* rule 85 can match eol */
5926 case 86:
5927 /* rule 86 can match eol */
5928 YY_RULE_SETUP
5929 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
5930         YY_BREAK
5931 case 87:
5932 /* rule 87 can match eol */
5933 case 88:
5934 /* rule 88 can match eol */
5935 YY_RULE_SETUP
5936 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
5937         YY_BREAK
5938 case 89:
5939 /* rule 89 can match eol */
5940 case 90:
5941 /* rule 90 can match eol */
5942 YY_RULE_SETUP
5943 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
5944         YY_BREAK
5945 case 91:
5946 /* rule 91 can match eol */
5947 case 92:
5948 /* rule 92 can match eol */
5949 YY_RULE_SETUP
5950 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
5951         YY_BREAK
5952 case 93:
5953 /* rule 93 can match eol */
5954 case 94:
5955 /* rule 94 can match eol */
5956 YY_RULE_SETUP
5957 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
5958         YY_BREAK
5959 case 95:
5960 /* rule 95 can match eol */
5961 YY_RULE_SETUP
5962 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
5963         YY_BREAK
5964 case 96:
5965 /* rule 96 can match eol */
5966 YY_RULE_SETUP
5967 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
5968         YY_BREAK
5969 case 97:
5970 /* rule 97 can match eol */
5971 YY_RULE_SETUP
5972 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
5973         YY_BREAK
5974 case 98:
5975 /* rule 98 can match eol */
5976 YY_RULE_SETUP
5977 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
5978         YY_BREAK
5979 case 99:
5980 YY_RULE_SETUP
5981 {
5982   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5983   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5984   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
5985  }
5986         YY_BREAK
5987 case 100:
5988 YY_RULE_SETUP
5989 {
5990   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5991   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5992   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
5993   switch (YY_START) {
5994    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5995    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5996    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5997    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;
5998    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5999    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;
6000    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6001   }
6002  }
6003         YY_BREAK
6004 case 101:
6005 YY_RULE_SETUP
6006 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6007         YY_BREAK
6008 case 102:
6009 YY_RULE_SETUP
6010 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6011         YY_BREAK
6012 case YY_STATE_EOF(AL_surfxml_trace___connect):
6013 FAIL("EOF in attribute list of `trace_connect' element.");
6014         YY_BREAK
6015
6016 case 103:
6017 /* rule 103 can match eol */
6018 YY_RULE_SETUP
6019 {
6020   LEAVE;
6021   ETag_surfxml_trace___connect();
6022   popbuffer(); /* attribute */
6023   switch (YY_START) {
6024    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6025    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6026    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6027    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;
6028    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6029    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;
6030    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6031   }
6032  }
6033         YY_BREAK
6034 case 104:
6035 /* rule 104 can match eol */
6036 YY_RULE_SETUP
6037 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6038         YY_BREAK
6039 case 105:
6040 YY_RULE_SETUP
6041 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6042         YY_BREAK
6043 case YY_STATE_EOF(E_surfxml_trace___connect):
6044 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6045         YY_BREAK
6046
6047 case 106:
6048 /* rule 106 can match eol */
6049 YY_RULE_SETUP
6050 FAIL("Starting tag <AS> is not allowed here.");
6051         YY_BREAK
6052 case 107:
6053 /* rule 107 can match eol */
6054 YY_RULE_SETUP
6055 {
6056   AX_surfxml_AS_id = 0;
6057   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6058   ENTER(AL_surfxml_AS); pushbuffer(0);
6059   }
6060         YY_BREAK
6061
6062 case 108:
6063 /* rule 108 can match eol */
6064 YY_RULE_SETUP
6065 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
6066         YY_BREAK
6067 case 109:
6068 /* rule 109 can match eol */
6069 YY_RULE_SETUP
6070 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
6071         YY_BREAK
6072 case 110:
6073 /* rule 110 can match eol */
6074 case 111:
6075 /* rule 111 can match eol */
6076 YY_RULE_SETUP
6077 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6078         YY_BREAK
6079 case 112:
6080 /* rule 112 can match eol */
6081 case 113:
6082 /* rule 113 can match eol */
6083 YY_RULE_SETUP
6084 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6085         YY_BREAK
6086 case 114:
6087 /* rule 114 can match eol */
6088 case 115:
6089 /* rule 115 can match eol */
6090 YY_RULE_SETUP
6091 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6092         YY_BREAK
6093 case 116:
6094 /* rule 116 can match eol */
6095 case 117:
6096 /* rule 117 can match eol */
6097 YY_RULE_SETUP
6098 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6099         YY_BREAK
6100 case 118:
6101 /* rule 118 can match eol */
6102 case 119:
6103 /* rule 119 can match eol */
6104 YY_RULE_SETUP
6105 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6106         YY_BREAK
6107 case 120:
6108 /* rule 120 can match eol */
6109 case 121:
6110 /* rule 121 can match eol */
6111 YY_RULE_SETUP
6112 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6113         YY_BREAK
6114 case 122:
6115 /* rule 122 can match eol */
6116 case 123:
6117 /* rule 123 can match eol */
6118 YY_RULE_SETUP
6119 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6120         YY_BREAK
6121 case 124:
6122 /* rule 124 can match eol */
6123 case 125:
6124 /* rule 125 can match eol */
6125 YY_RULE_SETUP
6126 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6127         YY_BREAK
6128 case 126:
6129 YY_RULE_SETUP
6130 {
6131   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6132   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6133  }
6134         YY_BREAK
6135 case 127:
6136 YY_RULE_SETUP
6137 {
6138   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6139   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6140   switch (YY_START) {
6141    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;
6142    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;
6143    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6144   }
6145  }
6146         YY_BREAK
6147 case 128:
6148 YY_RULE_SETUP
6149 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6150         YY_BREAK
6151 case 129:
6152 YY_RULE_SETUP
6153 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6154         YY_BREAK
6155 case YY_STATE_EOF(AL_surfxml_AS):
6156 FAIL("EOF in attribute list of `AS' element.");
6157         YY_BREAK
6158
6159 case 130:
6160 /* rule 130 can match eol */
6161 YY_RULE_SETUP
6162 {
6163   LEAVE;
6164   ETag_surfxml_AS();
6165   popbuffer(); /* attribute */
6166   switch (YY_START) {
6167    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;
6168    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;
6169    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6170   }
6171  }
6172         YY_BREAK
6173 case 131:
6174 /* rule 131 can match eol */
6175 YY_RULE_SETUP
6176 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6177         YY_BREAK
6178 case 132:
6179 YY_RULE_SETUP
6180 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6181         YY_BREAK
6182 case YY_STATE_EOF(S_surfxml_AS_12):
6183 case YY_STATE_EOF(S_surfxml_AS_9):
6184 case YY_STATE_EOF(S_surfxml_AS_1):
6185 case YY_STATE_EOF(S_surfxml_AS_7):
6186 case YY_STATE_EOF(S_surfxml_AS_11):
6187 case YY_STATE_EOF(S_surfxml_AS_14):
6188 case YY_STATE_EOF(S_surfxml_AS_6):
6189 case YY_STATE_EOF(E_surfxml_AS):
6190 case YY_STATE_EOF(S_surfxml_AS_16):
6191 case YY_STATE_EOF(S_surfxml_AS_3):
6192 case YY_STATE_EOF(S_surfxml_AS):
6193 case YY_STATE_EOF(S_surfxml_AS_4):
6194 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6195         YY_BREAK
6196
6197 case 133:
6198 /* rule 133 can match eol */
6199 YY_RULE_SETUP
6200 FAIL("Starting tag <storage_type> is not allowed here.");
6201         YY_BREAK
6202 case 134:
6203 /* rule 134 can match eol */
6204 YY_RULE_SETUP
6205 {
6206   AX_surfxml_storage_type_id = 0;
6207   AX_surfxml_storage_type_model = 0;
6208   AX_surfxml_storage_type_size = 0;
6209   AX_surfxml_storage_type_content = 0;
6210   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6211   }
6212         YY_BREAK
6213
6214 case 135:
6215 /* rule 135 can match eol */
6216 YY_RULE_SETUP
6217 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
6218         YY_BREAK
6219 case 136:
6220 /* rule 136 can match eol */
6221 YY_RULE_SETUP
6222 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
6223         YY_BREAK
6224 case 137:
6225 /* rule 137 can match eol */
6226 YY_RULE_SETUP
6227 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
6228         YY_BREAK
6229 case 138:
6230 /* rule 138 can match eol */
6231 YY_RULE_SETUP
6232 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
6233         YY_BREAK
6234 case 139:
6235 /* rule 139 can match eol */
6236 YY_RULE_SETUP
6237 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_size);
6238         YY_BREAK
6239 case 140:
6240 /* rule 140 can match eol */
6241 YY_RULE_SETUP
6242 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_size);
6243         YY_BREAK
6244 case 141:
6245 /* rule 141 can match eol */
6246 YY_RULE_SETUP
6247 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
6248         YY_BREAK
6249 case 142:
6250 /* rule 142 can match eol */
6251 YY_RULE_SETUP
6252 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
6253         YY_BREAK
6254 case 143:
6255 YY_RULE_SETUP
6256 {
6257   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6258   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6259   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6260   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6261  }
6262         YY_BREAK
6263 case 144:
6264 YY_RULE_SETUP
6265 {
6266   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6267   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6268   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6269   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6270   switch (YY_START) {
6271    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6272    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;
6273   }
6274  }
6275         YY_BREAK
6276 case 145:
6277 YY_RULE_SETUP
6278 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6279         YY_BREAK
6280 case 146:
6281 YY_RULE_SETUP
6282 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6283         YY_BREAK
6284 case YY_STATE_EOF(AL_surfxml_storage___type):
6285 FAIL("EOF in attribute list of `storage_type' element.");
6286         YY_BREAK
6287
6288 case 147:
6289 /* rule 147 can match eol */
6290 YY_RULE_SETUP
6291 {
6292   LEAVE;
6293   ETag_surfxml_storage___type();
6294   popbuffer(); /* attribute */
6295   switch (YY_START) {
6296    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6297    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;
6298   }
6299  }
6300         YY_BREAK
6301 case 148:
6302 /* rule 148 can match eol */
6303 YY_RULE_SETUP
6304 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6305         YY_BREAK
6306 case 149:
6307 YY_RULE_SETUP
6308 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6309         YY_BREAK
6310 case YY_STATE_EOF(E_surfxml_storage___type):
6311 case YY_STATE_EOF(S_surfxml_storage___type):
6312 case YY_STATE_EOF(S_surfxml_storage___type_2):
6313 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6314         YY_BREAK
6315
6316 case 150:
6317 /* rule 150 can match eol */
6318 YY_RULE_SETUP
6319 FAIL("Starting tag <storage> is not allowed here.");
6320         YY_BREAK
6321 case 151:
6322 /* rule 151 can match eol */
6323 YY_RULE_SETUP
6324 {
6325   AX_surfxml_storage_id = 0;
6326   AX_surfxml_storage_typeId = 0;
6327   AX_surfxml_storage_content = 0;
6328   ENTER(AL_surfxml_storage); pushbuffer(0);
6329   }
6330         YY_BREAK
6331
6332 case 152:
6333 /* rule 152 can match eol */
6334 YY_RULE_SETUP
6335 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
6336         YY_BREAK
6337 case 153:
6338 /* rule 153 can match eol */
6339 YY_RULE_SETUP
6340 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
6341         YY_BREAK
6342 case 154:
6343 /* rule 154 can match eol */
6344 YY_RULE_SETUP
6345 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
6346         YY_BREAK
6347 case 155:
6348 /* rule 155 can match eol */
6349 YY_RULE_SETUP
6350 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
6351         YY_BREAK
6352 case 156:
6353 /* rule 156 can match eol */
6354 YY_RULE_SETUP
6355 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6356         YY_BREAK
6357 case 157:
6358 /* rule 157 can match eol */
6359 YY_RULE_SETUP
6360 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6361         YY_BREAK
6362 case 158:
6363 YY_RULE_SETUP
6364 {
6365   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6366   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6367   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6368  }
6369         YY_BREAK
6370 case 159:
6371 YY_RULE_SETUP
6372 {
6373   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6374   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6375   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6376   switch (YY_START) {
6377    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6378    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;
6379   }
6380  }
6381         YY_BREAK
6382 case 160:
6383 YY_RULE_SETUP
6384 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6385         YY_BREAK
6386 case 161:
6387 YY_RULE_SETUP
6388 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6389         YY_BREAK
6390 case YY_STATE_EOF(AL_surfxml_storage):
6391 FAIL("EOF in attribute list of `storage' element.");
6392         YY_BREAK
6393
6394 case 162:
6395 /* rule 162 can match eol */
6396 YY_RULE_SETUP
6397 {
6398   LEAVE;
6399   ETag_surfxml_storage();
6400   popbuffer(); /* attribute */
6401   switch (YY_START) {
6402    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6403    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;
6404   }
6405  }
6406         YY_BREAK
6407 case 163:
6408 /* rule 163 can match eol */
6409 YY_RULE_SETUP
6410 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6411         YY_BREAK
6412 case 164:
6413 YY_RULE_SETUP
6414 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6415         YY_BREAK
6416 case YY_STATE_EOF(E_surfxml_storage):
6417 case YY_STATE_EOF(S_surfxml_storage):
6418 case YY_STATE_EOF(S_surfxml_storage_2):
6419 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6420         YY_BREAK
6421
6422 case 165:
6423 /* rule 165 can match eol */
6424 YY_RULE_SETUP
6425 FAIL("Starting tag <mount> is not allowed here.");
6426         YY_BREAK
6427 case 166:
6428 /* rule 166 can match eol */
6429 YY_RULE_SETUP
6430 {
6431   AX_surfxml_mount_id = 0;
6432   AX_surfxml_mount_name = 0;
6433   ENTER(AL_surfxml_mount); pushbuffer(0);
6434   }
6435         YY_BREAK
6436
6437 case 167:
6438 /* rule 167 can match eol */
6439 YY_RULE_SETUP
6440 ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6441         YY_BREAK
6442 case 168:
6443 /* rule 168 can match eol */
6444 YY_RULE_SETUP
6445 ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6446         YY_BREAK
6447 case 169:
6448 /* rule 169 can match eol */
6449 YY_RULE_SETUP
6450 ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
6451         YY_BREAK
6452 case 170:
6453 /* rule 170 can match eol */
6454 YY_RULE_SETUP
6455 ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
6456         YY_BREAK
6457 case 171:
6458 YY_RULE_SETUP
6459 {
6460   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6461   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6462   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6463  }
6464         YY_BREAK
6465 case 172:
6466 YY_RULE_SETUP
6467 {
6468   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6469   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6470   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6471   switch (YY_START) {
6472    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6473   }
6474  }
6475         YY_BREAK
6476 case 173:
6477 YY_RULE_SETUP
6478 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6479         YY_BREAK
6480 case 174:
6481 YY_RULE_SETUP
6482 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6483         YY_BREAK
6484 case YY_STATE_EOF(AL_surfxml_mount):
6485 FAIL("EOF in attribute list of `mount' element.");
6486         YY_BREAK
6487
6488 case 175:
6489 /* rule 175 can match eol */
6490 YY_RULE_SETUP
6491 {
6492   LEAVE;
6493   ETag_surfxml_mount();
6494   popbuffer(); /* attribute */
6495   switch (YY_START) {
6496    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6497   }
6498  }
6499         YY_BREAK
6500 case 176:
6501 /* rule 176 can match eol */
6502 YY_RULE_SETUP
6503 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6504         YY_BREAK
6505 case 177:
6506 YY_RULE_SETUP
6507 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6508         YY_BREAK
6509 case YY_STATE_EOF(E_surfxml_mount):
6510 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6511         YY_BREAK
6512
6513 case 178:
6514 /* rule 178 can match eol */
6515 YY_RULE_SETUP
6516 FAIL("Starting tag <mstorage> is not allowed here.");
6517         YY_BREAK
6518 case 179:
6519 /* rule 179 can match eol */
6520 YY_RULE_SETUP
6521 {
6522   AX_surfxml_mstorage_typeId = 0;
6523   AX_surfxml_mstorage_name = 0;
6524   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6525   }
6526         YY_BREAK
6527
6528 case 180:
6529 /* rule 180 can match eol */
6530 YY_RULE_SETUP
6531 ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6532         YY_BREAK
6533 case 181:
6534 /* rule 181 can match eol */
6535 YY_RULE_SETUP
6536 ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6537         YY_BREAK
6538 case 182:
6539 /* rule 182 can match eol */
6540 YY_RULE_SETUP
6541 ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6542         YY_BREAK
6543 case 183:
6544 /* rule 183 can match eol */
6545 YY_RULE_SETUP
6546 ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6547         YY_BREAK
6548 case 184:
6549 YY_RULE_SETUP
6550 {
6551   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6552   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6553   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6554  }
6555         YY_BREAK
6556 case 185:
6557 YY_RULE_SETUP
6558 {
6559   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6560   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6561   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6562   switch (YY_START) {
6563    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6564   }
6565  }
6566         YY_BREAK
6567 case 186:
6568 YY_RULE_SETUP
6569 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6570         YY_BREAK
6571 case 187:
6572 YY_RULE_SETUP
6573 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6574         YY_BREAK
6575 case YY_STATE_EOF(AL_surfxml_mstorage):
6576 FAIL("EOF in attribute list of `mstorage' element.");
6577         YY_BREAK
6578
6579 case 188:
6580 /* rule 188 can match eol */
6581 YY_RULE_SETUP
6582 {
6583   LEAVE;
6584   ETag_surfxml_mstorage();
6585   popbuffer(); /* attribute */
6586   switch (YY_START) {
6587    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6588   }
6589  }
6590         YY_BREAK
6591 case 189:
6592 /* rule 189 can match eol */
6593 YY_RULE_SETUP
6594 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6595         YY_BREAK
6596 case 190:
6597 YY_RULE_SETUP
6598 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6599         YY_BREAK
6600 case YY_STATE_EOF(E_surfxml_mstorage):
6601 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6602         YY_BREAK
6603
6604 case 191:
6605 /* rule 191 can match eol */
6606 YY_RULE_SETUP
6607 FAIL("Starting tag <host> is not allowed here.");
6608         YY_BREAK
6609 case 192:
6610 /* rule 192 can match eol */
6611 YY_RULE_SETUP
6612 {
6613   AX_surfxml_host_id = 0;
6614   AX_surfxml_host_power = 0;
6615   AX_surfxml_host_core = 16;
6616   AX_surfxml_host_availability = 18;
6617   AX_surfxml_host_availability_file = 0;
6618   AX_surfxml_host_state = A_surfxml_host_state_ON;
6619   AX_surfxml_host_state_file = 0;
6620   AX_surfxml_host_coordinates = 0;
6621   ENTER(AL_surfxml_host); pushbuffer(0);
6622   }
6623         YY_BREAK
6624
6625 case 193:
6626 /* rule 193 can match eol */
6627 YY_RULE_SETUP
6628 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
6629         YY_BREAK
6630 case 194:
6631 /* rule 194 can match eol */
6632 YY_RULE_SETUP
6633 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
6634         YY_BREAK
6635 case 195:
6636 /* rule 195 can match eol */
6637 YY_RULE_SETUP
6638 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6639         YY_BREAK
6640 case 196:
6641 /* rule 196 can match eol */
6642 YY_RULE_SETUP
6643 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6644         YY_BREAK
6645 case 197:
6646 /* rule 197 can match eol */
6647 YY_RULE_SETUP
6648 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
6649         YY_BREAK
6650 case 198:
6651 /* rule 198 can match eol */
6652 YY_RULE_SETUP
6653 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
6654         YY_BREAK
6655 case 199:
6656 /* rule 199 can match eol */
6657 YY_RULE_SETUP
6658 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6659         YY_BREAK
6660 case 200:
6661 /* rule 200 can match eol */
6662 YY_RULE_SETUP
6663 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6664         YY_BREAK
6665 case 201:
6666 /* rule 201 can match eol */
6667 YY_RULE_SETUP
6668 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
6669         YY_BREAK
6670 case 202:
6671 /* rule 202 can match eol */
6672 YY_RULE_SETUP
6673 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
6674         YY_BREAK
6675 case 203:
6676 /* rule 203 can match eol */
6677 case 204:
6678 /* rule 204 can match eol */
6679 YY_RULE_SETUP
6680 A_surfxml_host_state = A_surfxml_host_state_ON;
6681         YY_BREAK
6682 case 205:
6683 /* rule 205 can match eol */
6684 case 206:
6685 /* rule 206 can match eol */
6686 YY_RULE_SETUP
6687 A_surfxml_host_state = A_surfxml_host_state_OFF;
6688         YY_BREAK
6689 case 207:
6690 /* rule 207 can match eol */
6691 YY_RULE_SETUP
6692 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
6693         YY_BREAK
6694 case 208:
6695 /* rule 208 can match eol */
6696 YY_RULE_SETUP
6697 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
6698         YY_BREAK
6699 case 209:
6700 /* rule 209 can match eol */
6701 YY_RULE_SETUP
6702 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
6703         YY_BREAK
6704 case 210:
6705 /* rule 210 can match eol */
6706 YY_RULE_SETUP
6707 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
6708         YY_BREAK
6709 case 211:
6710 YY_RULE_SETUP
6711 {
6712   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6713   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6714   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6715  }
6716         YY_BREAK
6717 case 212:
6718 YY_RULE_SETUP
6719 {
6720   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6721   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6722   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6723   switch (YY_START) {
6724    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;
6725   }
6726  }
6727         YY_BREAK
6728 case 213:
6729 YY_RULE_SETUP
6730 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6731         YY_BREAK
6732 case 214:
6733 YY_RULE_SETUP
6734 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6735         YY_BREAK
6736 case YY_STATE_EOF(AL_surfxml_host):
6737 FAIL("EOF in attribute list of `host' element.");
6738         YY_BREAK
6739
6740 case 215:
6741 /* rule 215 can match eol */
6742 YY_RULE_SETUP
6743 {
6744   LEAVE;
6745   ETag_surfxml_host();
6746   popbuffer(); /* attribute */
6747   switch (YY_START) {
6748    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;
6749   }
6750  }
6751         YY_BREAK
6752 case 216:
6753 /* rule 216 can match eol */
6754 YY_RULE_SETUP
6755 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6756         YY_BREAK
6757 case 217:
6758 YY_RULE_SETUP
6759 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6760         YY_BREAK
6761 case YY_STATE_EOF(S_surfxml_host):
6762 case YY_STATE_EOF(E_surfxml_host):
6763 case YY_STATE_EOF(S_surfxml_host_2):
6764 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6765         YY_BREAK
6766
6767 case 218:
6768 /* rule 218 can match eol */
6769 YY_RULE_SETUP
6770 FAIL("Starting tag <gpu> is not allowed here.");
6771         YY_BREAK
6772 case 219:
6773 /* rule 219 can match eol */
6774 YY_RULE_SETUP
6775 {
6776   AX_surfxml_gpu_name = 0;
6777   ENTER(AL_surfxml_gpu); pushbuffer(0);
6778   }
6779         YY_BREAK
6780
6781 case 220:
6782 /* rule 220 can match eol */
6783 YY_RULE_SETUP
6784 ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
6785         YY_BREAK
6786 case 221:
6787 /* rule 221 can match eol */
6788 YY_RULE_SETUP
6789 ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
6790         YY_BREAK
6791 case 222:
6792 YY_RULE_SETUP
6793 {
6794   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6795   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6796  }
6797         YY_BREAK
6798 case 223:
6799 YY_RULE_SETUP
6800 {
6801   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6802   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
6803   switch (YY_START) {
6804    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;
6805   }
6806  }
6807         YY_BREAK
6808 case 224:
6809 YY_RULE_SETUP
6810 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
6811         YY_BREAK
6812 case 225:
6813 YY_RULE_SETUP
6814 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
6815         YY_BREAK
6816 case YY_STATE_EOF(AL_surfxml_gpu):
6817 FAIL("EOF in attribute list of `gpu' element.");
6818         YY_BREAK
6819
6820 case 226:
6821 /* rule 226 can match eol */
6822 YY_RULE_SETUP
6823 {
6824   LEAVE;
6825   ETag_surfxml_gpu();
6826   popbuffer(); /* attribute */
6827   switch (YY_START) {
6828    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;
6829   }
6830  }
6831         YY_BREAK
6832 case 227:
6833 /* rule 227 can match eol */
6834 YY_RULE_SETUP
6835 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
6836         YY_BREAK
6837 case 228:
6838 YY_RULE_SETUP
6839 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
6840         YY_BREAK
6841 case YY_STATE_EOF(E_surfxml_gpu):
6842 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
6843         YY_BREAK
6844
6845 case 229:
6846 /* rule 229 can match eol */
6847 YY_RULE_SETUP
6848 FAIL("Starting tag <host_link> is not allowed here.");
6849         YY_BREAK
6850 case 230:
6851 /* rule 230 can match eol */
6852 YY_RULE_SETUP
6853 {
6854   AX_surfxml_host_link_id = 0;
6855   AX_surfxml_host_link_up = 0;
6856   AX_surfxml_host_link_down = 0;
6857   ENTER(AL_surfxml_host_link); pushbuffer(0);
6858   }
6859         YY_BREAK
6860
6861 case 231:
6862 /* rule 231 can match eol */
6863 YY_RULE_SETUP
6864 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_id);
6865         YY_BREAK
6866 case 232:
6867 /* rule 232 can match eol */
6868 YY_RULE_SETUP
6869 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_id);
6870         YY_BREAK
6871 case 233:
6872 /* rule 233 can match eol */
6873 YY_RULE_SETUP
6874 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_up);
6875         YY_BREAK
6876 case 234:
6877 /* rule 234 can match eol */
6878 YY_RULE_SETUP
6879 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_up);
6880         YY_BREAK
6881 case 235:
6882 /* rule 235 can match eol */
6883 YY_RULE_SETUP
6884 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_down);
6885         YY_BREAK
6886 case 236:
6887 /* rule 236 can match eol */
6888 YY_RULE_SETUP
6889 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_down);
6890         YY_BREAK
6891 case 237:
6892 YY_RULE_SETUP
6893 {
6894   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6895   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6896   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6897   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
6898  }
6899         YY_BREAK
6900 case 238:
6901 YY_RULE_SETUP
6902 {
6903   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6904   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6905   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6906   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
6907   switch (YY_START) {
6908    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;
6909   }
6910  }
6911         YY_BREAK
6912 case 239:
6913 YY_RULE_SETUP
6914 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6915         YY_BREAK
6916 case 240:
6917 YY_RULE_SETUP
6918 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6919         YY_BREAK
6920 case YY_STATE_EOF(AL_surfxml_host___link):
6921 FAIL("EOF in attribute list of `host_link' element.");
6922         YY_BREAK
6923
6924 case 241:
6925 /* rule 241 can match eol */
6926 YY_RULE_SETUP
6927 {
6928   LEAVE;
6929   ETag_surfxml_host___link();
6930   popbuffer(); /* attribute */
6931   switch (YY_START) {
6932    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;
6933   }
6934  }
6935         YY_BREAK
6936 case 242:
6937 /* rule 242 can match eol */
6938 YY_RULE_SETUP
6939 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6940         YY_BREAK
6941 case 243:
6942 YY_RULE_SETUP
6943 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6944         YY_BREAK
6945 case YY_STATE_EOF(E_surfxml_host___link):
6946 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6947         YY_BREAK
6948
6949 case 244:
6950 /* rule 244 can match eol */
6951 YY_RULE_SETUP
6952 FAIL("Starting tag <cluster> is not allowed here.");
6953         YY_BREAK
6954 case 245:
6955 /* rule 245 can match eol */
6956 YY_RULE_SETUP
6957 {
6958   AX_surfxml_cluster_id = 0;
6959   AX_surfxml_cluster_prefix = 0;
6960   AX_surfxml_cluster_suffix = 0;
6961   AX_surfxml_cluster_radical = 0;
6962   AX_surfxml_cluster_power = 0;
6963   AX_surfxml_cluster_core = 22;
6964   AX_surfxml_cluster_bw = 0;
6965   AX_surfxml_cluster_lat = 0;
6966   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6967   AX_surfxml_cluster_bb_bw = 0;
6968   AX_surfxml_cluster_bb_lat = 0;
6969   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6970   AX_surfxml_cluster_availability_file = 0;
6971   AX_surfxml_cluster_state_file = 0;
6972   AX_surfxml_cluster_router_id = 0;
6973   ENTER(AL_surfxml_cluster); pushbuffer(0);
6974   }
6975         YY_BREAK
6976
6977 case 246:
6978 /* rule 246 can match eol */
6979 YY_RULE_SETUP
6980 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6981         YY_BREAK
6982 case 247:
6983 /* rule 247 can match eol */
6984 YY_RULE_SETUP
6985 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6986         YY_BREAK
6987 case 248:
6988 /* rule 248 can match eol */
6989 YY_RULE_SETUP
6990 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6991         YY_BREAK
6992 case 249:
6993 /* rule 249 can match eol */
6994 YY_RULE_SETUP
6995 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6996         YY_BREAK
6997 case 250:
6998 /* rule 250 can match eol */
6999 YY_RULE_SETUP
7000 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
7001         YY_BREAK
7002 case 251:
7003 /* rule 251 can match eol */
7004 YY_RULE_SETUP
7005 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
7006         YY_BREAK
7007 case 252:
7008 /* rule 252 can match eol */
7009 YY_RULE_SETUP
7010 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
7011         YY_BREAK
7012 case 253:
7013 /* rule 253 can match eol */
7014 YY_RULE_SETUP
7015 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
7016         YY_BREAK
7017 case 254:
7018 /* rule 254 can match eol */
7019 YY_RULE_SETUP
7020 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7021         YY_BREAK
7022 case 255:
7023 /* rule 255 can match eol */
7024 YY_RULE_SETUP
7025 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7026         YY_BREAK
7027 case 256:
7028 /* rule 256 can match eol */
7029 YY_RULE_SETUP
7030 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7031         YY_BREAK
7032 case 257:
7033 /* rule 257 can match eol */
7034 YY_RULE_SETUP
7035 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7036         YY_BREAK
7037 case 258:
7038 /* rule 258 can match eol */
7039 YY_RULE_SETUP
7040 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7041         YY_BREAK
7042 case 259:
7043 /* rule 259 can match eol */
7044 YY_RULE_SETUP
7045 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7046         YY_BREAK
7047 case 260:
7048 /* rule 260 can match eol */
7049 YY_RULE_SETUP
7050 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7051         YY_BREAK
7052 case 261:
7053 /* rule 261 can match eol */
7054 YY_RULE_SETUP
7055 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7056         YY_BREAK
7057 case 262:
7058 /* rule 262 can match eol */
7059 case 263:
7060 /* rule 263 can match eol */
7061 YY_RULE_SETUP
7062 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7063         YY_BREAK
7064 case 264:
7065 /* rule 264 can match eol */
7066 case 265:
7067 /* rule 265 can match eol */
7068 YY_RULE_SETUP
7069 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7070         YY_BREAK
7071 case 266:
7072 /* rule 266 can match eol */
7073 case 267:
7074 /* rule 267 can match eol */
7075 YY_RULE_SETUP
7076 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7077         YY_BREAK
7078 case 268:
7079 /* rule 268 can match eol */
7080 YY_RULE_SETUP
7081 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
7082         YY_BREAK
7083 case 269:
7084 /* rule 269 can match eol */
7085 YY_RULE_SETUP
7086 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
7087         YY_BREAK
7088 case 270:
7089 /* rule 270 can match eol */
7090 YY_RULE_SETUP
7091 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
7092         YY_BREAK
7093 case 271:
7094 /* rule 271 can match eol */
7095 YY_RULE_SETUP
7096 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
7097         YY_BREAK
7098 case 272:
7099 /* rule 272 can match eol */
7100 case 273:
7101 /* rule 273 can match eol */
7102 YY_RULE_SETUP
7103 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7104         YY_BREAK
7105 case 274:
7106 /* rule 274 can match eol */
7107 case 275:
7108 /* rule 275 can match eol */
7109 YY_RULE_SETUP
7110 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7111         YY_BREAK
7112 case 276:
7113 /* rule 276 can match eol */
7114 YY_RULE_SETUP
7115 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
7116         YY_BREAK
7117 case 277:
7118 /* rule 277 can match eol */
7119 YY_RULE_SETUP
7120 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
7121         YY_BREAK
7122 case 278:
7123 /* rule 278 can match eol */
7124 YY_RULE_SETUP
7125 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
7126         YY_BREAK
7127 case 279:
7128 /* rule 279 can match eol */
7129 YY_RULE_SETUP
7130 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
7131         YY_BREAK
7132 case 280:
7133 /* rule 280 can match eol */
7134 YY_RULE_SETUP
7135 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
7136         YY_BREAK
7137 case 281:
7138 /* rule 281 can match eol */
7139 YY_RULE_SETUP
7140 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
7141         YY_BREAK
7142 case 282:
7143 YY_RULE_SETUP
7144 {
7145   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7146   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7147   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7148   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7149   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7150   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7151   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7152   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7153  }
7154         YY_BREAK
7155 case 283:
7156 YY_RULE_SETUP
7157 {
7158   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7159   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7160   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7161   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7162   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7163   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7164   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7165   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7166   switch (YY_START) {
7167    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;
7168    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;
7169    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7170   }
7171  }
7172         YY_BREAK
7173 case 284:
7174 YY_RULE_SETUP
7175 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7176         YY_BREAK
7177 case 285:
7178 YY_RULE_SETUP
7179 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7180         YY_BREAK
7181 case YY_STATE_EOF(AL_surfxml_cluster):
7182 FAIL("EOF in attribute list of `cluster' element.");
7183         YY_BREAK
7184
7185 case 286:
7186 /* rule 286 can match eol */
7187 YY_RULE_SETUP
7188 {
7189   LEAVE;
7190   ETag_surfxml_cluster();
7191   popbuffer(); /* attribute */
7192   switch (YY_START) {
7193    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;
7194    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;
7195    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7196   }
7197  }
7198         YY_BREAK
7199 case 287:
7200 /* rule 287 can match eol */
7201 YY_RULE_SETUP
7202 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7203         YY_BREAK
7204 case 288:
7205 YY_RULE_SETUP
7206 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7207         YY_BREAK
7208 case YY_STATE_EOF(E_surfxml_cluster):
7209 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7210         YY_BREAK
7211
7212 case 289:
7213 /* rule 289 can match eol */
7214 YY_RULE_SETUP
7215 FAIL("Starting tag <cabinet> is not allowed here.");
7216         YY_BREAK
7217 case 290:
7218 /* rule 290 can match eol */
7219 YY_RULE_SETUP
7220 {
7221   AX_surfxml_cabinet_id = 0;
7222   AX_surfxml_cabinet_prefix = 0;
7223   AX_surfxml_cabinet_suffix = 0;
7224   AX_surfxml_cabinet_radical = 0;
7225   AX_surfxml_cabinet_power = 0;
7226   AX_surfxml_cabinet_bw = 0;
7227   AX_surfxml_cabinet_lat = 0;
7228   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7229   }
7230         YY_BREAK
7231
7232 case 291:
7233 /* rule 291 can match eol */
7234 YY_RULE_SETUP
7235 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7236         YY_BREAK
7237 case 292:
7238 /* rule 292 can match eol */
7239 YY_RULE_SETUP
7240 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7241         YY_BREAK
7242 case 293:
7243 /* rule 293 can match eol */
7244 YY_RULE_SETUP
7245 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7246         YY_BREAK
7247 case 294:
7248 /* rule 294 can match eol */
7249 YY_RULE_SETUP
7250 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7251         YY_BREAK
7252 case 295:
7253 /* rule 295 can match eol */
7254 YY_RULE_SETUP
7255 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7256         YY_BREAK
7257 case 296:
7258 /* rule 296 can match eol */
7259 YY_RULE_SETUP
7260 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7261         YY_BREAK
7262 case 297:
7263 /* rule 297 can match eol */
7264 YY_RULE_SETUP
7265 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7266         YY_BREAK
7267 case 298:
7268 /* rule 298 can match eol */
7269 YY_RULE_SETUP
7270 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7271         YY_BREAK
7272 case 299:
7273 /* rule 299 can match eol */
7274 YY_RULE_SETUP
7275 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7276         YY_BREAK
7277 case 300:
7278 /* rule 300 can match eol */
7279 YY_RULE_SETUP
7280 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7281         YY_BREAK
7282 case 301:
7283 /* rule 301 can match eol */
7284 YY_RULE_SETUP
7285 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7286         YY_BREAK
7287 case 302:
7288 /* rule 302 can match eol */
7289 YY_RULE_SETUP
7290 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7291         YY_BREAK
7292 case 303:
7293 /* rule 303 can match eol */
7294 YY_RULE_SETUP
7295 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7296         YY_BREAK
7297 case 304:
7298 /* rule 304 can match eol */
7299 YY_RULE_SETUP
7300 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7301         YY_BREAK
7302 case 305:
7303 YY_RULE_SETUP
7304 {
7305   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7306   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7307   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7308   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7309   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7310   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7311   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7312   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7313  }
7314         YY_BREAK
7315 case 306:
7316 YY_RULE_SETUP
7317 {
7318   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7319   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7320   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7321   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7322   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7323   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7324   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7325   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7326   switch (YY_START) {
7327    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7328    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;
7329    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;
7330    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7331   }
7332  }
7333         YY_BREAK
7334 case 307:
7335 YY_RULE_SETUP
7336 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7337         YY_BREAK
7338 case 308:
7339 YY_RULE_SETUP
7340 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7341         YY_BREAK
7342 case YY_STATE_EOF(AL_surfxml_cabinet):
7343 FAIL("EOF in attribute list of `cabinet' element.");
7344         YY_BREAK
7345
7346 case 309:
7347 /* rule 309 can match eol */
7348 YY_RULE_SETUP
7349 {
7350   LEAVE;
7351   ETag_surfxml_cabinet();
7352   popbuffer(); /* attribute */
7353   switch (YY_START) {
7354    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7355    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;
7356    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;
7357    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7358   }
7359  }
7360         YY_BREAK
7361 case 310:
7362 /* rule 310 can match eol */
7363 YY_RULE_SETUP
7364 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7365         YY_BREAK
7366 case 311:
7367 YY_RULE_SETUP
7368 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7369         YY_BREAK
7370 case YY_STATE_EOF(E_surfxml_cabinet):
7371 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7372         YY_BREAK
7373
7374 case 312:
7375 /* rule 312 can match eol */
7376 YY_RULE_SETUP
7377 FAIL("Starting tag <peer> is not allowed here.");
7378         YY_BREAK
7379 case 313:
7380 /* rule 313 can match eol */
7381 YY_RULE_SETUP
7382 {
7383   AX_surfxml_peer_id = 0;
7384   AX_surfxml_peer_power = 0;
7385   AX_surfxml_peer_bw_in = 0;
7386   AX_surfxml_peer_bw_out = 0;
7387   AX_surfxml_peer_lat = 0;
7388   AX_surfxml_peer_coordinates = 0;
7389   AX_surfxml_peer_availability_file = 0;
7390   AX_surfxml_peer_state_file = 0;
7391   ENTER(AL_surfxml_peer); pushbuffer(0);
7392   }
7393         YY_BREAK
7394
7395 case 314:
7396 /* rule 314 can match eol */
7397 YY_RULE_SETUP
7398 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7399         YY_BREAK
7400 case 315:
7401 /* rule 315 can match eol */
7402 YY_RULE_SETUP
7403 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7404         YY_BREAK
7405 case 316:
7406 /* rule 316 can match eol */
7407 YY_RULE_SETUP
7408 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7409         YY_BREAK
7410 case 317:
7411 /* rule 317 can match eol */
7412 YY_RULE_SETUP
7413 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7414         YY_BREAK
7415 case 318:
7416 /* rule 318 can match eol */
7417 YY_RULE_SETUP
7418 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
7419         YY_BREAK
7420 case 319:
7421 /* rule 319 can match eol */
7422 YY_RULE_SETUP
7423 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
7424         YY_BREAK
7425 case 320:
7426 /* rule 320 can match eol */
7427 YY_RULE_SETUP
7428 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
7429         YY_BREAK
7430 case 321:
7431 /* rule 321 can match eol */
7432 YY_RULE_SETUP
7433 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
7434         YY_BREAK
7435 case 322:
7436 /* rule 322 can match eol */
7437 YY_RULE_SETUP
7438 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7439         YY_BREAK
7440 case 323:
7441 /* rule 323 can match eol */
7442 YY_RULE_SETUP
7443 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7444         YY_BREAK
7445 case 324:
7446 /* rule 324 can match eol */
7447 YY_RULE_SETUP
7448 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7449         YY_BREAK
7450 case 325:
7451 /* rule 325 can match eol */
7452 YY_RULE_SETUP
7453 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7454         YY_BREAK
7455 case 326:
7456 /* rule 326 can match eol */
7457 YY_RULE_SETUP
7458 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
7459         YY_BREAK
7460 case 327:
7461 /* rule 327 can match eol */
7462 YY_RULE_SETUP
7463 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
7464         YY_BREAK
7465 case 328:
7466 /* rule 328 can match eol */
7467 YY_RULE_SETUP
7468 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
7469         YY_BREAK
7470 case 329:
7471 /* rule 329 can match eol */
7472 YY_RULE_SETUP
7473 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
7474         YY_BREAK
7475 case 330:
7476 YY_RULE_SETUP
7477 {
7478   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7479   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7480   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7481   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7482   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7483   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7484  }
7485         YY_BREAK
7486 case 331:
7487 YY_RULE_SETUP
7488 {
7489   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7490   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7491   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7492   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7493   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7494   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7495   switch (YY_START) {
7496    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;
7497    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;
7498    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7499   }
7500  }
7501         YY_BREAK
7502 case 332:
7503 YY_RULE_SETUP
7504 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7505         YY_BREAK
7506 case 333:
7507 YY_RULE_SETUP
7508 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7509         YY_BREAK
7510 case YY_STATE_EOF(AL_surfxml_peer):
7511 FAIL("EOF in attribute list of `peer' element.");
7512         YY_BREAK
7513
7514 case 334:
7515 /* rule 334 can match eol */
7516 YY_RULE_SETUP
7517 {
7518   LEAVE;
7519   ETag_surfxml_peer();
7520   popbuffer(); /* attribute */
7521   switch (YY_START) {
7522    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;
7523    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;
7524    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7525   }
7526  }
7527         YY_BREAK
7528 case 335:
7529 /* rule 335 can match eol */
7530 YY_RULE_SETUP
7531 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7532         YY_BREAK
7533 case 336:
7534 YY_RULE_SETUP
7535 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7536         YY_BREAK
7537 case YY_STATE_EOF(E_surfxml_peer):
7538 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7539         YY_BREAK
7540
7541 case 337:
7542 /* rule 337 can match eol */
7543 YY_RULE_SETUP
7544 FAIL("Starting tag <router> is not allowed here.");
7545         YY_BREAK
7546 case 338:
7547 /* rule 338 can match eol */
7548 YY_RULE_SETUP
7549 {
7550   AX_surfxml_router_id = 0;
7551   AX_surfxml_router_coordinates = 0;
7552   ENTER(AL_surfxml_router); pushbuffer(0);
7553   }
7554         YY_BREAK
7555
7556 case 339:
7557 /* rule 339 can match eol */
7558 YY_RULE_SETUP
7559 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
7560         YY_BREAK
7561 case 340:
7562 /* rule 340 can match eol */
7563 YY_RULE_SETUP
7564 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
7565         YY_BREAK
7566 case 341:
7567 /* rule 341 can match eol */
7568 YY_RULE_SETUP
7569 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
7570         YY_BREAK
7571 case 342:
7572 /* rule 342 can match eol */
7573 YY_RULE_SETUP
7574 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
7575         YY_BREAK
7576 case 343:
7577 YY_RULE_SETUP
7578 {
7579   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7580   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7581  }
7582         YY_BREAK
7583 case 344:
7584 YY_RULE_SETUP
7585 {
7586   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7587   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7588   switch (YY_START) {
7589    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;
7590   }
7591  }
7592         YY_BREAK
7593 case 345:
7594 YY_RULE_SETUP
7595 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7596         YY_BREAK
7597 case 346:
7598 YY_RULE_SETUP
7599 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7600         YY_BREAK
7601 case YY_STATE_EOF(AL_surfxml_router):
7602 FAIL("EOF in attribute list of `router' element.");
7603         YY_BREAK
7604
7605 case 347:
7606 /* rule 347 can match eol */
7607 YY_RULE_SETUP
7608 {
7609   LEAVE;
7610   ETag_surfxml_router();
7611   popbuffer(); /* attribute */
7612   switch (YY_START) {
7613    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;
7614   }
7615  }
7616         YY_BREAK
7617 case 348:
7618 /* rule 348 can match eol */
7619 YY_RULE_SETUP
7620 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7621         YY_BREAK
7622 case 349:
7623 YY_RULE_SETUP
7624 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7625         YY_BREAK
7626 case YY_STATE_EOF(E_surfxml_router):
7627 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7628         YY_BREAK
7629
7630 case 350:
7631 /* rule 350 can match eol */
7632 YY_RULE_SETUP
7633 FAIL("Starting tag <backbone> is not allowed here.");
7634         YY_BREAK
7635 case 351:
7636 /* rule 351 can match eol */
7637 YY_RULE_SETUP
7638 {
7639   AX_surfxml_backbone_id = 0;
7640   AX_surfxml_backbone_bandwidth = 0;
7641   AX_surfxml_backbone_latency = 0;
7642   ENTER(AL_surfxml_backbone); pushbuffer(0);
7643   }
7644         YY_BREAK
7645
7646 case 352:
7647 /* rule 352 can match eol */
7648 YY_RULE_SETUP
7649 ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7650         YY_BREAK
7651 case 353:
7652 /* rule 353 can match eol */
7653 YY_RULE_SETUP
7654 ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7655         YY_BREAK
7656 case 354:
7657 /* rule 354 can match eol */
7658 YY_RULE_SETUP
7659 ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7660         YY_BREAK
7661 case 355:
7662 /* rule 355 can match eol */
7663 YY_RULE_SETUP
7664 ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7665         YY_BREAK
7666 case 356:
7667 /* rule 356 can match eol */
7668 YY_RULE_SETUP
7669 ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7670         YY_BREAK
7671 case 357:
7672 /* rule 357 can match eol */
7673 YY_RULE_SETUP
7674 ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7675         YY_BREAK
7676 case 358:
7677 YY_RULE_SETUP
7678 {
7679   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7680   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7681   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7682   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7683  }
7684         YY_BREAK
7685 case 359:
7686 YY_RULE_SETUP
7687 {
7688   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7689   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7690   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7691   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7692   switch (YY_START) {
7693    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7694    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;
7695   }
7696  }
7697         YY_BREAK
7698 case 360:
7699 YY_RULE_SETUP
7700 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7701         YY_BREAK
7702 case 361:
7703 YY_RULE_SETUP
7704 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7705         YY_BREAK
7706 case YY_STATE_EOF(AL_surfxml_backbone):
7707 FAIL("EOF in attribute list of `backbone' element.");
7708         YY_BREAK
7709
7710 case 362:
7711 /* rule 362 can match eol */
7712 YY_RULE_SETUP
7713 {
7714   LEAVE;
7715   ETag_surfxml_backbone();
7716   popbuffer(); /* attribute */
7717   switch (YY_START) {
7718    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7719    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;
7720   }
7721  }
7722         YY_BREAK
7723 case 363:
7724 /* rule 363 can match eol */
7725 YY_RULE_SETUP
7726 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7727         YY_BREAK
7728 case 364:
7729 YY_RULE_SETUP
7730 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7731         YY_BREAK
7732 case YY_STATE_EOF(E_surfxml_backbone):
7733 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7734         YY_BREAK
7735
7736 case 365:
7737 /* rule 365 can match eol */
7738 YY_RULE_SETUP
7739 FAIL("Starting tag <link> is not allowed here.");
7740         YY_BREAK
7741 case 366:
7742 /* rule 366 can match eol */
7743 YY_RULE_SETUP
7744 {
7745   AX_surfxml_link_id = 0;
7746   AX_surfxml_link_bandwidth = 0;
7747   AX_surfxml_link_bandwidth_file = 0;
7748   AX_surfxml_link_latency = 24;
7749   AX_surfxml_link_latency_file = 0;
7750   AX_surfxml_link_state = A_surfxml_link_state_ON;
7751   AX_surfxml_link_state_file = 0;
7752   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7753   ENTER(AL_surfxml_link); pushbuffer(0);
7754   }
7755         YY_BREAK
7756
7757 case 367:
7758 /* rule 367 can match eol */
7759 YY_RULE_SETUP
7760 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
7761         YY_BREAK
7762 case 368:
7763 /* rule 368 can match eol */
7764 YY_RULE_SETUP
7765 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
7766         YY_BREAK
7767 case 369:
7768 /* rule 369 can match eol */
7769 YY_RULE_SETUP
7770 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
7771         YY_BREAK
7772 case 370:
7773 /* rule 370 can match eol */
7774 YY_RULE_SETUP
7775 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
7776         YY_BREAK
7777 case 371:
7778 /* rule 371 can match eol */
7779 YY_RULE_SETUP
7780 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
7781         YY_BREAK
7782 case 372:
7783 /* rule 372 can match eol */
7784 YY_RULE_SETUP
7785 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
7786         YY_BREAK
7787 case 373:
7788 /* rule 373 can match eol */
7789 YY_RULE_SETUP
7790 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
7791         YY_BREAK
7792 case 374:
7793 /* rule 374 can match eol */
7794 YY_RULE_SETUP
7795 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
7796         YY_BREAK
7797 case 375:
7798 /* rule 375 can match eol */
7799 YY_RULE_SETUP
7800 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
7801         YY_BREAK
7802 case 376:
7803 /* rule 376 can match eol */
7804 YY_RULE_SETUP
7805 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
7806         YY_BREAK
7807 case 377:
7808 /* rule 377 can match eol */
7809 case 378:
7810 /* rule 378 can match eol */
7811 YY_RULE_SETUP
7812 A_surfxml_link_state = A_surfxml_link_state_ON;
7813         YY_BREAK
7814 case 379:
7815 /* rule 379 can match eol */
7816 case 380:
7817 /* rule 380 can match eol */
7818 YY_RULE_SETUP
7819 A_surfxml_link_state = A_surfxml_link_state_OFF;
7820         YY_BREAK
7821 case 381:
7822 /* rule 381 can match eol */
7823 YY_RULE_SETUP
7824 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
7825         YY_BREAK
7826 case 382:
7827 /* rule 382 can match eol */
7828 YY_RULE_SETUP
7829 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
7830         YY_BREAK
7831 case 383:
7832 /* rule 383 can match eol */
7833 case 384:
7834 /* rule 384 can match eol */
7835 YY_RULE_SETUP
7836 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7837         YY_BREAK
7838 case 385:
7839 /* rule 385 can match eol */
7840 case 386:
7841 /* rule 386 can match eol */
7842 YY_RULE_SETUP
7843 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7844         YY_BREAK
7845 case 387:
7846 /* rule 387 can match eol */
7847 case 388:
7848 /* rule 388 can match eol */
7849 YY_RULE_SETUP
7850 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7851         YY_BREAK
7852 case 389:
7853 YY_RULE_SETUP
7854 {
7855   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7856   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7857   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7858  }
7859         YY_BREAK
7860 case 390:
7861 YY_RULE_SETUP
7862 {
7863   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7864   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7865   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7866   switch (YY_START) {
7867    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7868    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;
7869   }
7870  }
7871         YY_BREAK
7872 case 391:
7873 YY_RULE_SETUP
7874 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7875         YY_BREAK
7876 case 392:
7877 YY_RULE_SETUP
7878 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7879         YY_BREAK
7880 case YY_STATE_EOF(AL_surfxml_link):
7881 FAIL("EOF in attribute list of `link' element.");
7882         YY_BREAK
7883
7884 case 393:
7885 /* rule 393 can match eol */
7886 YY_RULE_SETUP
7887 {
7888   LEAVE;
7889   ETag_surfxml_link();
7890   popbuffer(); /* attribute */
7891   switch (YY_START) {
7892    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7893    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;
7894   }
7895  }
7896         YY_BREAK
7897 case 394:
7898 /* rule 394 can match eol */
7899 YY_RULE_SETUP
7900 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7901         YY_BREAK
7902 case 395:
7903 YY_RULE_SETUP
7904 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7905         YY_BREAK
7906 case YY_STATE_EOF(E_surfxml_link):
7907 case YY_STATE_EOF(S_surfxml_link_2):
7908 case YY_STATE_EOF(S_surfxml_link):
7909 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7910         YY_BREAK
7911
7912 case 396:
7913 /* rule 396 can match eol */
7914 YY_RULE_SETUP
7915 FAIL("Starting tag <route> is not allowed here.");
7916         YY_BREAK
7917 case 397:
7918 /* rule 397 can match eol */
7919 YY_RULE_SETUP
7920 {
7921   AX_surfxml_route_src = 0;
7922   AX_surfxml_route_dst = 0;
7923   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7924   ENTER(AL_surfxml_route); pushbuffer(0);
7925   }
7926         YY_BREAK
7927
7928 case 398:
7929 /* rule 398 can match eol */
7930 YY_RULE_SETUP
7931 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
7932         YY_BREAK
7933 case 399:
7934 /* rule 399 can match eol */
7935 YY_RULE_SETUP
7936 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
7937         YY_BREAK
7938 case 400:
7939 /* rule 400 can match eol */
7940 YY_RULE_SETUP
7941 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
7942         YY_BREAK
7943 case 401:
7944 /* rule 401 can match eol */
7945 YY_RULE_SETUP
7946 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
7947         YY_BREAK
7948 case 402:
7949 /* rule 402 can match eol */
7950 case 403:
7951 /* rule 403 can match eol */
7952 YY_RULE_SETUP
7953 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7954         YY_BREAK
7955 case 404:
7956 /* rule 404 can match eol */
7957 case 405:
7958 /* rule 405 can match eol */
7959 YY_RULE_SETUP
7960 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7961         YY_BREAK
7962 case 406:
7963 YY_RULE_SETUP
7964 {
7965   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7966   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7967   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7968  }
7969         YY_BREAK
7970 case 407:
7971 YY_RULE_SETUP
7972 {
7973   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7974   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7975   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7976   switch (YY_START) {
7977    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;
7978   }
7979  }
7980         YY_BREAK
7981 case 408:
7982 YY_RULE_SETUP
7983 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7984         YY_BREAK
7985 case 409:
7986 YY_RULE_SETUP
7987 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7988         YY_BREAK
7989 case YY_STATE_EOF(AL_surfxml_route):
7990 FAIL("EOF in attribute list of `route' element.");
7991         YY_BREAK
7992
7993 case 410:
7994 /* rule 410 can match eol */
7995 YY_RULE_SETUP
7996 {
7997   LEAVE;
7998   ETag_surfxml_route();
7999   popbuffer(); /* attribute */
8000   switch (YY_START) {
8001    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;
8002   }
8003  }
8004         YY_BREAK
8005 case 411:
8006 /* rule 411 can match eol */
8007 YY_RULE_SETUP
8008 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8009         YY_BREAK
8010 case 412:
8011 YY_RULE_SETUP
8012 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8013         YY_BREAK
8014 case YY_STATE_EOF(S_surfxml_route):
8015 case YY_STATE_EOF(S_surfxml_route_2):
8016 case YY_STATE_EOF(E_surfxml_route):
8017 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8018         YY_BREAK
8019
8020 case 413:
8021 /* rule 413 can match eol */
8022 YY_RULE_SETUP
8023 FAIL("Starting tag <ASroute> is not allowed here.");
8024         YY_BREAK
8025 case 414:
8026 /* rule 414 can match eol */
8027 YY_RULE_SETUP
8028 {
8029   AX_surfxml_ASroute_src = 0;
8030   AX_surfxml_ASroute_dst = 0;
8031   AX_surfxml_ASroute_gw_src = 0;
8032   AX_surfxml_ASroute_gw_dst = 0;
8033   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8034   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8035   }
8036         YY_BREAK
8037
8038 case 415:
8039 /* rule 415 can match eol */
8040 YY_RULE_SETUP
8041 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
8042         YY_BREAK
8043 case 416:
8044 /* rule 416 can match eol */
8045 YY_RULE_SETUP
8046 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
8047         YY_BREAK
8048 case 417:
8049 /* rule 417 can match eol */
8050 YY_RULE_SETUP
8051 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
8052         YY_BREAK
8053 case 418:
8054 /* rule 418 can match eol */
8055 YY_RULE_SETUP
8056 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
8057         YY_BREAK
8058 case 419:
8059 /* rule 419 can match eol */
8060 YY_RULE_SETUP
8061 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
8062         YY_BREAK
8063 case 420:
8064 /* rule 420 can match eol */
8065 YY_RULE_SETUP
8066 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
8067         YY_BREAK
8068 case 421:
8069 /* rule 421 can match eol */
8070 YY_RULE_SETUP
8071 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
8072         YY_BREAK
8073 case 422:
8074 /* rule 422 can match eol */
8075 YY_RULE_SETUP
8076 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
8077         YY_BREAK
8078 case 423:
8079 /* rule 423 can match eol */
8080 case 424:
8081 /* rule 424 can match eol */
8082 YY_RULE_SETUP
8083 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8084         YY_BREAK
8085 case 425:
8086 /* rule 425 can match eol */
8087 case 426:
8088 /* rule 426 can match eol */
8089 YY_RULE_SETUP
8090 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8091         YY_BREAK
8092 case 427:
8093 YY_RULE_SETUP
8094 {
8095   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8096   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8097   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8098   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8099   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8100  }
8101         YY_BREAK
8102 case 428:
8103 YY_RULE_SETUP
8104 {
8105   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8106   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8107   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8108   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8109   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8110   switch (YY_START) {
8111    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;
8112   }
8113  }
8114         YY_BREAK
8115 case 429:
8116 YY_RULE_SETUP
8117 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8118         YY_BREAK
8119 case 430:
8120 YY_RULE_SETUP
8121 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8122         YY_BREAK
8123 case YY_STATE_EOF(AL_surfxml_ASroute):
8124 FAIL("EOF in attribute list of `ASroute' element.");
8125         YY_BREAK
8126
8127 case 431:
8128 /* rule 431 can match eol */
8129 YY_RULE_SETUP
8130 {
8131   LEAVE;
8132   ETag_surfxml_ASroute();
8133   popbuffer(); /* attribute */
8134   switch (YY_START) {
8135    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;
8136   }
8137  }
8138         YY_BREAK
8139 case 432:
8140 /* rule 432 can match eol */
8141 YY_RULE_SETUP
8142 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8143         YY_BREAK
8144 case 433:
8145 YY_RULE_SETUP
8146 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8147         YY_BREAK
8148 case YY_STATE_EOF(E_surfxml_ASroute):
8149 case YY_STATE_EOF(S_surfxml_ASroute):
8150 case YY_STATE_EOF(S_surfxml_ASroute_2):
8151 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8152         YY_BREAK
8153
8154 case 434:
8155 /* rule 434 can match eol */
8156 YY_RULE_SETUP
8157 FAIL("Starting tag <link_ctn> is not allowed here.");
8158         YY_BREAK
8159 case 435:
8160 /* rule 435 can match eol */
8161 YY_RULE_SETUP
8162 {
8163   AX_surfxml_link_ctn_id = 0;
8164   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8165   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8166   }
8167         YY_BREAK
8168
8169 case 436:
8170 /* rule 436 can match eol */
8171 YY_RULE_SETUP
8172 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
8173         YY_BREAK
8174 case 437:
8175 /* rule 437 can match eol */
8176 YY_RULE_SETUP
8177 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
8178         YY_BREAK
8179 case 438:
8180 /* rule 438 can match eol */
8181 case 439:
8182 /* rule 439 can match eol */
8183 YY_RULE_SETUP
8184 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8185         YY_BREAK
8186 case 440:
8187 /* rule 440 can match eol */
8188 case 441:
8189 /* rule 441 can match eol */
8190 YY_RULE_SETUP
8191 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8192         YY_BREAK
8193 case 442:
8194 /* rule 442 can match eol */
8195 case 443:
8196 /* rule 443 can match eol */
8197 YY_RULE_SETUP
8198 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8199         YY_BREAK
8200 case 444:
8201 YY_RULE_SETUP
8202 {
8203   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8204   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8205  }
8206         YY_BREAK
8207 case 445:
8208 YY_RULE_SETUP
8209 {
8210   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8211   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8212   switch (YY_START) {
8213    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8214    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8215    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8216    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8217   }
8218  }
8219         YY_BREAK
8220 case 446:
8221 YY_RULE_SETUP
8222 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8223         YY_BREAK
8224 case 447:
8225 YY_RULE_SETUP
8226 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8227         YY_BREAK
8228 case YY_STATE_EOF(AL_surfxml_link___ctn):
8229 FAIL("EOF in attribute list of `link_ctn' element.");
8230         YY_BREAK
8231
8232 case 448:
8233 /* rule 448 can match eol */
8234 YY_RULE_SETUP
8235 {
8236   LEAVE;
8237   ETag_surfxml_link___ctn();
8238   popbuffer(); /* attribute */
8239   switch (YY_START) {
8240    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8241    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8242    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8243    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8244   }
8245  }
8246         YY_BREAK
8247 case 449:
8248 /* rule 449 can match eol */
8249 YY_RULE_SETUP
8250 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8251         YY_BREAK
8252 case 450:
8253 YY_RULE_SETUP
8254 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8255         YY_BREAK
8256 case YY_STATE_EOF(E_surfxml_link___ctn):
8257 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8258         YY_BREAK
8259
8260 case 451:
8261 /* rule 451 can match eol */
8262 YY_RULE_SETUP
8263 FAIL("Starting tag <bypassRoute> is not allowed here.");
8264         YY_BREAK
8265 case 452:
8266 /* rule 452 can match eol */
8267 YY_RULE_SETUP
8268 {
8269   AX_surfxml_bypassRoute_src = 0;
8270   AX_surfxml_bypassRoute_dst = 0;
8271   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8272   }
8273         YY_BREAK
8274
8275 case 453:
8276 /* rule 453 can match eol */
8277 YY_RULE_SETUP
8278 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
8279         YY_BREAK
8280 case 454:
8281 /* rule 454 can match eol */
8282 YY_RULE_SETUP
8283 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
8284         YY_BREAK
8285 case 455:
8286 /* rule 455 can match eol */
8287 YY_RULE_SETUP
8288 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
8289         YY_BREAK
8290 case 456:
8291 /* rule 456 can match eol */
8292 YY_RULE_SETUP
8293 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
8294         YY_BREAK
8295 case 457:
8296 YY_RULE_SETUP
8297 {
8298   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8299   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8300   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8301  }
8302         YY_BREAK
8303 case 458:
8304 YY_RULE_SETUP
8305 {
8306   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8307   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8308   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8309   switch (YY_START) {
8310    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;
8311   }
8312  }
8313         YY_BREAK
8314 case 459:
8315 YY_RULE_SETUP
8316 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8317         YY_BREAK
8318 case 460:
8319 YY_RULE_SETUP
8320 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8321         YY_BREAK
8322 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8323 FAIL("EOF in attribute list of `bypassRoute' element.");
8324         YY_BREAK
8325
8326 case 461:
8327 /* rule 461 can match eol */
8328 YY_RULE_SETUP
8329 {
8330   LEAVE;
8331   ETag_surfxml_bypassRoute();
8332   popbuffer(); /* attribute */
8333   switch (YY_START) {
8334    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;
8335   }
8336  }
8337         YY_BREAK
8338 case 462:
8339 /* rule 462 can match eol */
8340 YY_RULE_SETUP
8341 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8342         YY_BREAK
8343 case 463:
8344 YY_RULE_SETUP
8345 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8346         YY_BREAK
8347 case YY_STATE_EOF(S_surfxml_bypassRoute):
8348 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8349 case YY_STATE_EOF(E_surfxml_bypassRoute):
8350 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8351         YY_BREAK
8352
8353 case 464:
8354 /* rule 464 can match eol */
8355 YY_RULE_SETUP
8356 FAIL("Starting tag <bypassASroute> is not allowed here.");
8357         YY_BREAK
8358 case 465:
8359 /* rule 465 can match eol */
8360 YY_RULE_SETUP
8361 {
8362   AX_surfxml_bypassASroute_src = 0;
8363   AX_surfxml_bypassASroute_dst = 0;
8364   AX_surfxml_bypassASroute_gw_src = 0;
8365   AX_surfxml_bypassASroute_gw_dst = 0;
8366   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8367   }
8368         YY_BREAK
8369
8370 case 466:
8371 /* rule 466 can match eol */
8372 YY_RULE_SETUP
8373 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
8374         YY_BREAK
8375 case 467:
8376 /* rule 467 can match eol */
8377 YY_RULE_SETUP
8378 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
8379         YY_BREAK
8380 case 468:
8381 /* rule 468 can match eol */
8382 YY_RULE_SETUP
8383 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
8384         YY_BREAK
8385 case 469:
8386 /* rule 469 can match eol */
8387 YY_RULE_SETUP
8388 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
8389         YY_BREAK
8390 case 470:
8391 /* rule 470 can match eol */
8392 YY_RULE_SETUP
8393 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8394         YY_BREAK
8395 case 471:
8396 /* rule 471 can match eol */
8397 YY_RULE_SETUP
8398 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8399         YY_BREAK
8400 case 472:
8401 /* rule 472 can match eol */
8402 YY_RULE_SETUP
8403 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8404         YY_BREAK
8405 case 473:
8406 /* rule 473 can match eol */
8407 YY_RULE_SETUP
8408 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8409         YY_BREAK
8410 case 474:
8411 YY_RULE_SETUP
8412 {
8413   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8414   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8415   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8416   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8417   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8418  }
8419         YY_BREAK
8420 case 475:
8421 YY_RULE_SETUP
8422 {
8423   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8424   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8425   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8426   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8427   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8428   switch (YY_START) {
8429    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;
8430   }
8431  }
8432         YY_BREAK
8433 case 476:
8434 YY_RULE_SETUP
8435 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8436         YY_BREAK
8437 case 477:
8438 YY_RULE_SETUP
8439 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8440         YY_BREAK
8441 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8442 FAIL("EOF in attribute list of `bypassASroute' element.");
8443         YY_BREAK
8444
8445 case 478:
8446 /* rule 478 can match eol */
8447 YY_RULE_SETUP
8448 {
8449   LEAVE;
8450   ETag_surfxml_bypassASroute();
8451   popbuffer(); /* attribute */
8452   switch (YY_START) {
8453    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;
8454   }
8455  }
8456         YY_BREAK
8457 case 479:
8458 /* rule 479 can match eol */
8459 YY_RULE_SETUP
8460 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8461         YY_BREAK
8462 case 480:
8463 YY_RULE_SETUP
8464 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8465         YY_BREAK
8466 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8467 case YY_STATE_EOF(E_surfxml_bypassASroute):
8468 case YY_STATE_EOF(S_surfxml_bypassASroute):
8469 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8470         YY_BREAK
8471
8472 case 481:
8473 /* rule 481 can match eol */
8474 YY_RULE_SETUP
8475 FAIL("Starting tag <process> is not allowed here.");
8476         YY_BREAK
8477 case 482:
8478 /* rule 482 can match eol */
8479 YY_RULE_SETUP
8480 {
8481   AX_surfxml_process_host = 0;
8482   AX_surfxml_process_function = 0;
8483   AX_surfxml_process_start_time = 28;
8484   AX_surfxml_process_kill_time = 33;
8485   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8486   ENTER(AL_surfxml_process); pushbuffer(0);
8487   }
8488         YY_BREAK
8489
8490 case 483:
8491 /* rule 483 can match eol */
8492 YY_RULE_SETUP
8493 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8494         YY_BREAK
8495 case 484:
8496 /* rule 484 can match eol */
8497 YY_RULE_SETUP
8498 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8499         YY_BREAK
8500 case 485:
8501 /* rule 485 can match eol */
8502 YY_RULE_SETUP
8503 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8504         YY_BREAK
8505 case 486:
8506 /* rule 486 can match eol */
8507 YY_RULE_SETUP
8508 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8509         YY_BREAK
8510 case 487:
8511 /* rule 487 can match eol */
8512 YY_RULE_SETUP
8513 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
8514         YY_BREAK
8515 case 488:
8516 /* rule 488 can match eol */
8517 YY_RULE_SETUP
8518 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
8519         YY_BREAK
8520 case 489:
8521 /* rule 489 can match eol */
8522 YY_RULE_SETUP
8523 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
8524         YY_BREAK
8525 case 490:
8526 /* rule 490 can match eol */
8527 YY_RULE_SETUP
8528 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
8529         YY_BREAK
8530 case 491:
8531 /* rule 491 can match eol */
8532 case 492:
8533 /* rule 492 can match eol */
8534 YY_RULE_SETUP
8535 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8536         YY_BREAK
8537 case 493:
8538 /* rule 493 can match eol */
8539 case 494:
8540 /* rule 494 can match eol */
8541 YY_RULE_SETUP
8542 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8543         YY_BREAK
8544 case 495:
8545 YY_RULE_SETUP
8546 {
8547   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8548   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8549   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8550  }
8551         YY_BREAK
8552 case 496:
8553 YY_RULE_SETUP
8554 {
8555   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8556   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8557   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8558   switch (YY_START) {
8559    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;
8560   }
8561  }
8562         YY_BREAK
8563 case 497:
8564 YY_RULE_SETUP
8565 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8566         YY_BREAK
8567 case 498:
8568 YY_RULE_SETUP
8569 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8570         YY_BREAK
8571 case YY_STATE_EOF(AL_surfxml_process):
8572 FAIL("EOF in attribute list of `process' element.");
8573         YY_BREAK
8574
8575 case 499:
8576 /* rule 499 can match eol */
8577 YY_RULE_SETUP
8578 {
8579   LEAVE;
8580   ETag_surfxml_process();
8581   popbuffer(); /* attribute */
8582   switch (YY_START) {
8583    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;
8584   }
8585  }
8586         YY_BREAK
8587 case 500:
8588 /* rule 500 can match eol */
8589 YY_RULE_SETUP
8590 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8591         YY_BREAK
8592 case 501:
8593 YY_RULE_SETUP
8594 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8595         YY_BREAK
8596 case YY_STATE_EOF(E_surfxml_process):
8597 case YY_STATE_EOF(S_surfxml_process):
8598 case YY_STATE_EOF(S_surfxml_process_2):
8599 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8600         YY_BREAK
8601
8602 case 502:
8603 /* rule 502 can match eol */
8604 YY_RULE_SETUP
8605 FAIL("Starting tag <argument> is not allowed here.");
8606         YY_BREAK
8607 case 503:
8608 /* rule 503 can match eol */
8609 YY_RULE_SETUP
8610 {
8611   AX_surfxml_argument_value = 0;
8612   ENTER(AL_surfxml_argument); pushbuffer(0);
8613   }
8614         YY_BREAK
8615
8616 case 504:
8617 /* rule 504 can match eol */
8618 YY_RULE_SETUP
8619 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
8620         YY_BREAK
8621 case 505:
8622 /* rule 505 can match eol */
8623 YY_RULE_SETUP
8624 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
8625         YY_BREAK
8626 case 506:
8627 YY_RULE_SETUP
8628 {
8629   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8630   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8631  }
8632         YY_BREAK
8633 case 507:
8634 YY_RULE_SETUP
8635 {
8636   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8637   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8638   switch (YY_START) {
8639    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8640   }
8641  }
8642         YY_BREAK
8643 case 508:
8644 YY_RULE_SETUP
8645 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8646         YY_BREAK
8647 case 509:
8648 YY_RULE_SETUP
8649 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8650         YY_BREAK
8651 case YY_STATE_EOF(AL_surfxml_argument):
8652 FAIL("EOF in attribute list of `argument' element.");
8653         YY_BREAK
8654
8655 case 510:
8656 /* rule 510 can match eol */
8657 YY_RULE_SETUP
8658 {
8659   LEAVE;
8660   ETag_surfxml_argument();
8661   popbuffer(); /* attribute */
8662   switch (YY_START) {
8663    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8664   }
8665  }
8666         YY_BREAK
8667 case 511:
8668 /* rule 511 can match eol */
8669 YY_RULE_SETUP
8670 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8671         YY_BREAK
8672 case 512:
8673 YY_RULE_SETUP
8674 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8675         YY_BREAK
8676 case YY_STATE_EOF(E_surfxml_argument):
8677 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8678         YY_BREAK
8679
8680 case 513:
8681 /* rule 513 can match eol */
8682 YY_RULE_SETUP
8683 FAIL("Starting tag <config> is not allowed here.");
8684         YY_BREAK
8685 case 514:
8686 /* rule 514 can match eol */
8687 YY_RULE_SETUP
8688 {
8689   AX_surfxml_config_id = 0;
8690   ENTER(AL_surfxml_config); pushbuffer(0);
8691   }
8692         YY_BREAK
8693
8694 case 515:
8695 /* rule 515 can match eol */
8696 YY_RULE_SETUP
8697 ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8698         YY_BREAK
8699 case 516:
8700 /* rule 516 can match eol */
8701 YY_RULE_SETUP
8702 ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8703         YY_BREAK
8704 case 517:
8705 YY_RULE_SETUP
8706 {
8707   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8708  }
8709         YY_BREAK
8710 case 518:
8711 YY_RULE_SETUP
8712 {
8713   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8714   switch (YY_START) {
8715    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8716   }
8717  }
8718         YY_BREAK
8719 case 519:
8720 YY_RULE_SETUP
8721 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8722         YY_BREAK
8723 case 520:
8724 YY_RULE_SETUP
8725 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8726         YY_BREAK
8727 case YY_STATE_EOF(AL_surfxml_config):
8728 FAIL("EOF in attribute list of `config' element.");
8729         YY_BREAK
8730
8731 case 521:
8732 /* rule 521 can match eol */
8733 YY_RULE_SETUP
8734 {
8735   LEAVE;
8736   ETag_surfxml_config();
8737   popbuffer(); /* attribute */
8738   switch (YY_START) {
8739    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8740   }
8741  }
8742         YY_BREAK
8743 case 522:
8744 /* rule 522 can match eol */
8745 YY_RULE_SETUP
8746 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8747         YY_BREAK
8748 case 523:
8749 YY_RULE_SETUP
8750 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8751         YY_BREAK
8752 case YY_STATE_EOF(S_surfxml_config):
8753 case YY_STATE_EOF(S_surfxml_config_2):
8754 case YY_STATE_EOF(E_surfxml_config):
8755 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8756         YY_BREAK
8757
8758 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8759   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8760 case 524:
8761 /* rule 524 can match eol */
8762 YY_RULE_SETUP
8763 FAIL("Starting tag <prop> is not allowed here.");
8764         YY_BREAK
8765 case 525:
8766 /* rule 525 can match eol */
8767 YY_RULE_SETUP
8768 {
8769   AX_surfxml_prop_id = 0;
8770   AX_surfxml_prop_value = 0;
8771   ENTER(AL_surfxml_prop); pushbuffer(0);
8772   }
8773         YY_BREAK
8774
8775 case 526:
8776 /* rule 526 can match eol */
8777 YY_RULE_SETUP
8778 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
8779         YY_BREAK
8780 case 527:
8781 /* rule 527 can match eol */
8782 YY_RULE_SETUP
8783 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
8784         YY_BREAK
8785 case 528:
8786 /* rule 528 can match eol */
8787 YY_RULE_SETUP
8788 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
8789         YY_BREAK
8790 case 529:
8791 /* rule 529 can match eol */
8792 YY_RULE_SETUP
8793 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
8794         YY_BREAK
8795 case 530:
8796 YY_RULE_SETUP
8797 {
8798   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8799   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8800   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8801  }
8802         YY_BREAK
8803 case 531:
8804 YY_RULE_SETUP
8805 {
8806   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8807   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8808   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8809   switch (YY_START) {
8810    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8811    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8812    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8813    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8814    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8815    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8816    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8817   }
8818  }
8819         YY_BREAK
8820 case 532:
8821 YY_RULE_SETUP
8822 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8823         YY_BREAK
8824 case 533:
8825 YY_RULE_SETUP
8826 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8827         YY_BREAK
8828 case YY_STATE_EOF(AL_surfxml_prop):
8829 FAIL("EOF in attribute list of `prop' element.");
8830         YY_BREAK
8831
8832 case 534:
8833 /* rule 534 can match eol */
8834 YY_RULE_SETUP
8835 {
8836   LEAVE;
8837   ETag_surfxml_prop();
8838   popbuffer(); /* attribute */
8839   switch (YY_START) {
8840    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8841    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8842    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8843    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8844    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8845    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8846    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8847   }
8848  }
8849         YY_BREAK
8850 case 535:
8851 /* rule 535 can match eol */
8852 YY_RULE_SETUP
8853 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8854         YY_BREAK
8855 case 536:
8856 YY_RULE_SETUP
8857 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8858         YY_BREAK
8859 case YY_STATE_EOF(E_surfxml_prop):
8860 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8861         YY_BREAK
8862
8863 /* EPILOG: after the root element. */
8864
8865 case 537:
8866 YY_RULE_SETUP
8867 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8868         YY_BREAK
8869 case YY_STATE_EOF(EPILOG):
8870 SUCCEED;
8871         YY_BREAK
8872
8873 /* CHARACTER DATA. */
8874
8875 /* Non-defined standard entities... */
8876 case 538:
8877 YY_RULE_SETUP
8878 BUFFERPUTC('&');
8879         YY_BREAK
8880 case 539:
8881 YY_RULE_SETUP
8882 BUFFERPUTC('<');
8883         YY_BREAK
8884 case 540:
8885 YY_RULE_SETUP
8886 BUFFERPUTC('>');
8887         YY_BREAK
8888 case 541:
8889 YY_RULE_SETUP
8890 BUFFERPUTC('\'');
8891         YY_BREAK
8892 case 542:
8893 YY_RULE_SETUP
8894 BUFFERPUTC('"');
8895         YY_BREAK
8896 /* Character entities. */
8897 case 543:
8898 YY_RULE_SETUP
8899 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8900         YY_BREAK
8901 case 544:
8902 YY_RULE_SETUP
8903 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8904         YY_BREAK
8905
8906 case 545:
8907 /* rule 545 can match eol */
8908 case 546:
8909 /* rule 546 can match eol */
8910 case 547:
8911 /* rule 547 can match eol */
8912 case 548:
8913 /* rule 548 can match eol */
8914 YY_RULE_SETUP
8915 BUFFERPUTC('\n');
8916         YY_BREAK
8917
8918 case 549:
8919 YY_RULE_SETUP
8920 ENTER(CDATA);
8921         YY_BREAK
8922 case 550:
8923 YY_RULE_SETUP
8924 FAIL("Unexpected `]""]>' in character data.");
8925         YY_BREAK
8926
8927 case 551:
8928 YY_RULE_SETUP
8929 BUFFERDONE; LEAVE;
8930         YY_BREAK
8931 case YY_STATE_EOF(VALUE1):
8932 FAIL("EOF in literal (\"'\" expected).");
8933         YY_BREAK
8934
8935 case 552:
8936 YY_RULE_SETUP
8937 BUFFERDONE; LEAVE;
8938         YY_BREAK
8939 case YY_STATE_EOF(VALUE2):
8940 FAIL("EOF in literal (`\"' expected).");
8941         YY_BREAK
8942
8943 case 553:
8944 /* rule 553 can match eol */
8945 YY_RULE_SETUP
8946 BUFFERPUTC(surf_parse_text[0]);
8947         YY_BREAK
8948 case 554:
8949 YY_RULE_SETUP
8950 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8951         YY_BREAK
8952
8953 case 555:
8954 YY_RULE_SETUP
8955 LEAVE;
8956         YY_BREAK
8957 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8958 case 556:
8959 YY_RULE_SETUP
8960 BUFFERPUTC(surf_parse_text[0]);
8961         YY_BREAK
8962 case YY_STATE_EOF(CDATA):
8963 FAIL("EOF in CDATA section.");
8964         YY_BREAK
8965
8966 /* Impossible rules to avoid warnings from flex(1). */
8967 /* Ideally, this should be replaced by code in flexml.pl that
8968     generates just the states not covered by other rules. */
8969
8970 case 557:
8971 /* rule 557 can match eol */
8972 YY_RULE_SETUP
8973 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8974         YY_BREAK
8975
8976 case 558:
8977 YY_RULE_SETUP
8978 ECHO;
8979         YY_BREAK
8980 case YY_STATE_EOF(INITIAL):
8981 case YY_STATE_EOF(ROOT_surfxml_platform):
8982 case YY_STATE_EOF(S_surfxml_platform_2):
8983 case YY_STATE_EOF(S_surfxml_platform_5):
8984 case YY_STATE_EOF(S_surfxml_platform_7):
8985 case YY_STATE_EOF(S_surfxml_include_1):
8986 case YY_STATE_EOF(S_surfxml_AS_2):
8987 case YY_STATE_EOF(S_surfxml_AS_5):
8988 case YY_STATE_EOF(S_surfxml_AS_8):
8989 case YY_STATE_EOF(S_surfxml_AS_10):
8990 case YY_STATE_EOF(S_surfxml_AS_13):
8991 case YY_STATE_EOF(S_surfxml_AS_15):
8992 case YY_STATE_EOF(S_surfxml_storage___type_1):
8993 case YY_STATE_EOF(S_surfxml_storage_1):
8994 case YY_STATE_EOF(S_surfxml_host_1):
8995 case YY_STATE_EOF(S_surfxml_link_1):
8996 case YY_STATE_EOF(S_surfxml_route_1):
8997 case YY_STATE_EOF(S_surfxml_ASroute_1):
8998 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8999 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9000 case YY_STATE_EOF(S_surfxml_process_1):
9001 case YY_STATE_EOF(S_surfxml_config_1):
9002 case YY_STATE_EOF(IMPOSSIBLE):
9003         yyterminate();
9004
9005         case YY_END_OF_BUFFER:
9006                 {
9007                 /* Amount of text matched not including the EOB char. */
9008                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9009
9010                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9011                 *yy_cp = (yy_hold_char);
9012                 YY_RESTORE_YY_MORE_OFFSET
9013
9014                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9015                         {
9016                         /* We're scanning a new file or input source.  It's
9017                          * possible that this happened because the user
9018                          * just pointed surf_parse_in at a new source and called
9019                          * surf_parse_lex().  If so, then we have to assure
9020                          * consistency between YY_CURRENT_BUFFER and our
9021                          * globals.  Here is the right place to do so, because
9022                          * this is the first action (other than possibly a
9023                          * back-up) that will match for the new input source.
9024                          */
9025                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9026                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9027                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9028                         }
9029
9030                 /* Note that here we test for yy_c_buf_p "<=" to the position
9031                  * of the first EOB in the buffer, since yy_c_buf_p will
9032                  * already have been incremented past the NUL character
9033                  * (since all states make transitions on EOB to the
9034                  * end-of-buffer state).  Contrast this with the test
9035                  * in input().
9036                  */
9037                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9038                         { /* This was really a NUL. */
9039                         yy_state_type yy_next_state;
9040
9041                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9042
9043                         yy_current_state = yy_get_previous_state(  );
9044
9045                         /* Okay, we're now positioned to make the NUL
9046                          * transition.  We couldn't have
9047                          * yy_get_previous_state() go ahead and do it
9048                          * for us because it doesn't know how to deal
9049                          * with the possibility of jamming (and we don't
9050                          * want to build jamming into it because then it
9051                          * will run more slowly).
9052                          */
9053
9054                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9055
9056                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9057
9058                         if ( yy_next_state )
9059                                 {
9060                                 /* Consume the NUL. */
9061                                 yy_cp = ++(yy_c_buf_p);
9062                                 yy_current_state = yy_next_state;
9063                                 goto yy_match;
9064                                 }
9065
9066                         else
9067                                 {
9068                                 yy_cp = (yy_c_buf_p);
9069                                 goto yy_find_action;
9070                                 }
9071                         }
9072
9073                 else switch ( yy_get_next_buffer(  ) )
9074                         {
9075                         case EOB_ACT_END_OF_FILE:
9076                                 {
9077                                 (yy_did_buffer_switch_on_eof) = 0;
9078
9079                                 if ( surf_parse_wrap( ) )
9080                                         {
9081                                         /* Note: because we've taken care in
9082                                          * yy_get_next_buffer() to have set up
9083                                          * surf_parse_text, we can now set up
9084                                          * yy_c_buf_p so that if some total
9085                                          * hoser (like flex itself) wants to
9086                                          * call the scanner after we return the
9087                                          * YY_NULL, it'll still work - another
9088                                          * YY_NULL will get returned.
9089                                          */
9090                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9091
9092                                         yy_act = YY_STATE_EOF(YY_START);
9093                                         goto do_action;
9094                                         }
9095
9096                                 else
9097                                         {
9098                                         if ( ! (yy_did_buffer_switch_on_eof) )
9099                                                 YY_NEW_FILE;
9100                                         }
9101                                 break;
9102                                 }
9103
9104                         case EOB_ACT_CONTINUE_SCAN:
9105                                 (yy_c_buf_p) =
9106                                         (yytext_ptr) + yy_amount_of_matched_text;
9107
9108                                 yy_current_state = yy_get_previous_state(  );
9109
9110                                 yy_cp = (yy_c_buf_p);
9111                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9112                                 goto yy_match;
9113
9114                         case EOB_ACT_LAST_MATCH:
9115                                 (yy_c_buf_p) =
9116                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9117
9118                                 yy_current_state = yy_get_previous_state(  );
9119
9120                                 yy_cp = (yy_c_buf_p);
9121                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9122                                 goto yy_find_action;
9123                         }
9124                 break;
9125                 }
9126
9127         default:
9128                 YY_FATAL_ERROR(
9129                         "fatal flex scanner internal error--no action found" );
9130         } /* end of action switch */
9131                 } /* end of scanning one token */
9132 } /* end of surf_parse_lex */
9133
9134 /* yy_get_next_buffer - try to read in a new buffer
9135  *
9136  * Returns a code representing an action:
9137  *      EOB_ACT_LAST_MATCH -
9138  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9139  *      EOB_ACT_END_OF_FILE - end of file
9140  */
9141 static int yy_get_next_buffer (void)
9142 {
9143         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9144         register char *source = (yytext_ptr);
9145         register int number_to_move, i;
9146         int ret_val;
9147
9148         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9149                 YY_FATAL_ERROR(
9150                 "fatal flex scanner internal error--end of buffer missed" );
9151
9152         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9153                 { /* Don't try to fill the buffer, so this is an EOF. */
9154                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9155                         {
9156                         /* We matched a single character, the EOB, so
9157                          * treat this as a final EOF.
9158                          */
9159                         return EOB_ACT_END_OF_FILE;
9160                         }
9161
9162                 else
9163                         {
9164                         /* We matched some text prior to the EOB, first
9165                          * process it.
9166                          */
9167                         return EOB_ACT_LAST_MATCH;
9168                         }
9169                 }
9170
9171         /* Try to read more data. */
9172
9173         /* First move last chars to start of buffer. */
9174         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9175
9176         for ( i = 0; i < number_to_move; ++i )
9177                 *(dest++) = *(source++);
9178
9179         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9180                 /* don't do the read, it's not guaranteed to return an EOF,
9181                  * just force an EOF
9182                  */
9183                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9184
9185         else
9186                 {
9187                         int num_to_read =
9188                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9189
9190                 while ( num_to_read <= 0 )
9191                         { /* Not enough room in the buffer - grow it. */
9192
9193                         /* just a shorter name for the current buffer */
9194                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9195
9196                         int yy_c_buf_p_offset =
9197                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9198
9199                         if ( b->yy_is_our_buffer )
9200                                 {
9201                                 int new_size = b->yy_buf_size * 2;
9202
9203                                 if ( new_size <= 0 )
9204                                         b->yy_buf_size += b->yy_buf_size / 8;
9205                                 else
9206                                         b->yy_buf_size *= 2;
9207
9208                                 b->yy_ch_buf = (char *)
9209                                         /* Include room in for 2 EOB chars. */
9210                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9211                                 }
9212                         else
9213                                 /* Can't grow it, we don't own it. */
9214                                 b->yy_ch_buf = 0;
9215
9216                         if ( ! b->yy_ch_buf )
9217                                 YY_FATAL_ERROR(
9218                                 "fatal error - scanner input buffer overflow" );
9219
9220                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9221
9222                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9223                                                 number_to_move - 1;
9224
9225                         }
9226
9227                 if ( num_to_read > YY_READ_BUF_SIZE )
9228                         num_to_read = YY_READ_BUF_SIZE;
9229
9230                 /* Read in more data. */
9231                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9232                         (yy_n_chars), (size_t) num_to_read );
9233
9234                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9235                 }
9236
9237         if ( (yy_n_chars) == 0 )
9238                 {
9239                 if ( number_to_move == YY_MORE_ADJ )
9240                         {
9241                         ret_val = EOB_ACT_END_OF_FILE;
9242                         surf_parse_restart(surf_parse_in  );
9243                         }
9244
9245                 else
9246                         {
9247                         ret_val = EOB_ACT_LAST_MATCH;
9248                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9249                                 YY_BUFFER_EOF_PENDING;
9250                         }
9251                 }
9252
9253         else
9254                 ret_val = EOB_ACT_CONTINUE_SCAN;
9255
9256         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9257                 /* Extend the array by 50%, plus the number we really need. */
9258                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9259                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9260                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9261                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9262         }
9263
9264         (yy_n_chars) += number_to_move;
9265         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9266         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9267
9268         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9269
9270         return ret_val;
9271 }
9272
9273 /* yy_get_previous_state - get the state just before the EOB char was reached */
9274
9275     static yy_state_type yy_get_previous_state (void)
9276 {
9277         register yy_state_type yy_current_state;
9278         register char *yy_cp;
9279     
9280         yy_current_state = (yy_start);
9281
9282         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9283                 {
9284                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9285                 if ( yy_accept[yy_current_state] )
9286                         {
9287                         (yy_last_accepting_state) = yy_current_state;
9288                         (yy_last_accepting_cpos) = yy_cp;
9289                         }
9290                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9291                         {
9292                         yy_current_state = (int) yy_def[yy_current_state];
9293                         if ( yy_current_state >= 3260 )
9294                                 yy_c = yy_meta[(unsigned int) yy_c];
9295                         }
9296                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9297                 }
9298
9299         return yy_current_state;
9300 }
9301
9302 /* yy_try_NUL_trans - try to make a transition on the NUL character
9303  *
9304  * synopsis
9305  *      next_state = yy_try_NUL_trans( current_state );
9306  */
9307     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9308 {
9309         register int yy_is_jam;
9310         register char *yy_cp = (yy_c_buf_p);
9311
9312         register YY_CHAR yy_c = 1;
9313         if ( yy_accept[yy_current_state] )
9314                 {
9315                 (yy_last_accepting_state) = yy_current_state;
9316                 (yy_last_accepting_cpos) = yy_cp;
9317                 }
9318         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9319                 {
9320                 yy_current_state = (int) yy_def[yy_current_state];
9321                 if ( yy_current_state >= 3260 )
9322                         yy_c = yy_meta[(unsigned int) yy_c];
9323                 }
9324         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9325         yy_is_jam = (yy_current_state == 3259);
9326
9327         return yy_is_jam ? 0 : yy_current_state;
9328 }
9329
9330 #ifndef YY_NO_INPUT
9331 #ifdef __cplusplus
9332     static int yyinput (void)
9333 #else
9334     static int input  (void)
9335 #endif
9336
9337 {
9338         int c;
9339     
9340         *(yy_c_buf_p) = (yy_hold_char);
9341
9342         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9343                 {
9344                 /* yy_c_buf_p now points to the character we want to return.
9345                  * If this occurs *before* the EOB characters, then it's a
9346                  * valid NUL; if not, then we've hit the end of the buffer.
9347                  */
9348                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9349                         /* This was really a NUL. */
9350                         *(yy_c_buf_p) = '\0';
9351
9352                 else
9353                         { /* need more input */
9354                         int offset = (yy_c_buf_p) - (yytext_ptr);
9355                         ++(yy_c_buf_p);
9356
9357                         switch ( yy_get_next_buffer(  ) )
9358                                 {
9359                                 case EOB_ACT_LAST_MATCH:
9360                                         /* This happens because yy_g_n_b()
9361                                          * sees that we've accumulated a
9362                                          * token and flags that we need to
9363                                          * try matching the token before
9364                                          * proceeding.  But for input(),
9365                                          * there's no matching to consider.
9366                                          * So convert the EOB_ACT_LAST_MATCH
9367                                          * to EOB_ACT_END_OF_FILE.
9368                                          */
9369
9370                                         /* Reset buffer status. */
9371                                         surf_parse_restart(surf_parse_in );
9372
9373                                         /*FALLTHROUGH*/
9374
9375                                 case EOB_ACT_END_OF_FILE:
9376                                         {
9377                                         if ( surf_parse_wrap( ) )
9378                                                 return EOF;
9379
9380                                         if ( ! (yy_did_buffer_switch_on_eof) )
9381                                                 YY_NEW_FILE;
9382 #ifdef __cplusplus
9383                                         return yyinput();
9384 #else
9385                                         return input();
9386 #endif
9387                                         }
9388
9389                                 case EOB_ACT_CONTINUE_SCAN:
9390                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9391                                         break;
9392                                 }
9393                         }
9394                 }
9395
9396         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9397         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9398         (yy_hold_char) = *++(yy_c_buf_p);
9399
9400         if ( c == '\n' )
9401                    
9402     surf_parse_lineno++;
9403 ;
9404
9405         return c;
9406 }
9407 #endif  /* ifndef YY_NO_INPUT */
9408
9409 /** Immediately switch to a different input stream.
9410  * @param input_file A readable stream.
9411  * 
9412  * @note This function does not reset the start condition to @c INITIAL .
9413  */
9414     void surf_parse_restart  (FILE * input_file )
9415 {
9416     
9417         if ( ! YY_CURRENT_BUFFER ){
9418         surf_parse_ensure_buffer_stack ();
9419                 YY_CURRENT_BUFFER_LVALUE =
9420             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9421         }
9422
9423         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9424         surf_parse__load_buffer_state( );
9425 }
9426
9427 /** Switch to a different input buffer.
9428  * @param new_buffer The new input buffer.
9429  * 
9430  */
9431     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9432 {
9433     
9434         /* TODO. We should be able to replace this entire function body
9435          * with
9436          *              surf_parse_pop_buffer_state();
9437          *              surf_parse_push_buffer_state(new_buffer);
9438      */
9439         surf_parse_ensure_buffer_stack ();
9440         if ( YY_CURRENT_BUFFER == new_buffer )
9441                 return;
9442
9443         if ( YY_CURRENT_BUFFER )
9444                 {
9445                 /* Flush out information for old buffer. */
9446                 *(yy_c_buf_p) = (yy_hold_char);
9447                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9448                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9449                 }
9450
9451         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9452         surf_parse__load_buffer_state( );
9453
9454         /* We don't actually know whether we did this switch during
9455          * EOF (surf_parse_wrap()) processing, but the only time this flag
9456          * is looked at is after surf_parse_wrap() is called, so it's safe
9457          * to go ahead and always set it.
9458          */
9459         (yy_did_buffer_switch_on_eof) = 1;
9460 }
9461
9462 static void surf_parse__load_buffer_state  (void)
9463 {
9464         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9465         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9466         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9467         (yy_hold_char) = *(yy_c_buf_p);
9468 }
9469
9470 /** Allocate and initialize an input buffer state.
9471  * @param file A readable stream.
9472  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9473  * 
9474  * @return the allocated buffer state.
9475  */
9476     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9477 {
9478         YY_BUFFER_STATE b;
9479     
9480         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9481         if ( ! b )
9482                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9483
9484         b->yy_buf_size = size;
9485
9486         /* yy_ch_buf has to be 2 characters longer than the size given because
9487          * we need to put in 2 end-of-buffer characters.
9488          */
9489         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9490         if ( ! b->yy_ch_buf )
9491                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9492
9493         b->yy_is_our_buffer = 1;
9494
9495         surf_parse__init_buffer(b,file );
9496
9497         return b;
9498 }
9499
9500 /** Destroy the buffer.
9501  * @param b a buffer created with surf_parse__create_buffer()
9502  * 
9503  */
9504     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9505 {
9506     
9507         if ( ! b )
9508                 return;
9509
9510         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9511                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9512
9513         if ( b->yy_is_our_buffer )
9514                 surf_parse_free((void *) b->yy_ch_buf  );
9515
9516         surf_parse_free((void *) b  );
9517 }
9518
9519 #ifndef __cplusplus
9520 extern int isatty (int );
9521 #endif /* __cplusplus */
9522     
9523 /* Initializes or reinitializes a buffer.
9524  * This function is sometimes called more than once on the same buffer,
9525  * such as during a surf_parse_restart() or at EOF.
9526  */
9527     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9528
9529 {
9530         int oerrno = errno;
9531     
9532         surf_parse__flush_buffer(b );
9533
9534         b->yy_input_file = file;
9535         b->yy_fill_buffer = 1;
9536
9537     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9538      * called from surf_parse_restart() or through yy_get_next_buffer.
9539      * In that case, we don't want to reset the lineno or column.
9540      */
9541     if (b != YY_CURRENT_BUFFER){
9542         b->yy_bs_lineno = 1;
9543         b->yy_bs_column = 0;
9544     }
9545
9546         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9547     
9548         errno = oerrno;
9549 }
9550
9551 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9552  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9553  * 
9554  */
9555     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9556 {
9557         if ( ! b )
9558                 return;
9559
9560         b->yy_n_chars = 0;
9561
9562         /* We always need two end-of-buffer characters.  The first causes
9563          * a transition to the end-of-buffer state.  The second causes
9564          * a jam in that state.
9565          */
9566         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9567         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9568
9569         b->yy_buf_pos = &b->yy_ch_buf[0];
9570
9571         b->yy_at_bol = 1;
9572         b->yy_buffer_status = YY_BUFFER_NEW;
9573
9574         if ( b == YY_CURRENT_BUFFER )
9575                 surf_parse__load_buffer_state( );
9576 }
9577
9578 /** Pushes the new state onto the stack. The new state becomes
9579  *  the current state. This function will allocate the stack
9580  *  if necessary.
9581  *  @param new_buffer The new state.
9582  *  
9583  */
9584 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9585 {
9586         if (new_buffer == NULL)
9587                 return;
9588
9589         surf_parse_ensure_buffer_stack();
9590
9591         /* This block is copied from surf_parse__switch_to_buffer. */
9592         if ( YY_CURRENT_BUFFER )
9593                 {
9594                 /* Flush out information for old buffer. */
9595                 *(yy_c_buf_p) = (yy_hold_char);
9596                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9597                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9598                 }
9599
9600         /* Only push if top exists. Otherwise, replace top. */
9601         if (YY_CURRENT_BUFFER)
9602                 (yy_buffer_stack_top)++;
9603         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9604
9605         /* copied from surf_parse__switch_to_buffer. */
9606         surf_parse__load_buffer_state( );
9607         (yy_did_buffer_switch_on_eof) = 1;
9608 }
9609
9610 /** Removes and deletes the top of the stack, if present.
9611  *  The next element becomes the new top.
9612  *  
9613  */
9614 void surf_parse_pop_buffer_state (void)
9615 {
9616         if (!YY_CURRENT_BUFFER)
9617                 return;
9618
9619         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9620         YY_CURRENT_BUFFER_LVALUE = NULL;
9621         if ((yy_buffer_stack_top) > 0)
9622                 --(yy_buffer_stack_top);
9623
9624         if (YY_CURRENT_BUFFER) {
9625                 surf_parse__load_buffer_state( );
9626                 (yy_did_buffer_switch_on_eof) = 1;
9627         }
9628 }
9629
9630 /* Allocates the stack if it does not exist.
9631  *  Guarantees space for at least one push.
9632  */
9633 static void surf_parse_ensure_buffer_stack (void)
9634 {
9635         int num_to_alloc;
9636     
9637         if (!(yy_buffer_stack)) {
9638
9639                 /* First allocation is just for 2 elements, since we don't know if this
9640                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9641                  * immediate realloc on the next call.
9642          */
9643                 num_to_alloc = 1;
9644                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9645                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9646                                                                 );
9647                 if ( ! (yy_buffer_stack) )
9648                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9649                                                                   
9650                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9651                                 
9652                 (yy_buffer_stack_max) = num_to_alloc;
9653                 (yy_buffer_stack_top) = 0;
9654                 return;
9655         }
9656
9657         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9658
9659                 /* Increase the buffer to prepare for a possible push. */
9660                 int grow_size = 8 /* arbitrary grow size */;
9661
9662                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9663                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9664                                                                 ((yy_buffer_stack),
9665                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9666                                                                 );
9667                 if ( ! (yy_buffer_stack) )
9668                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9669
9670                 /* zero only the new slots.*/
9671                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9672                 (yy_buffer_stack_max) = num_to_alloc;
9673         }
9674 }
9675
9676 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9677  * @param base the character buffer
9678  * @param size the size in bytes of the character buffer
9679  * 
9680  * @return the newly allocated buffer state object. 
9681  */
9682 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9683 {
9684         YY_BUFFER_STATE b;
9685     
9686         if ( size < 2 ||
9687              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9688              base[size-1] != YY_END_OF_BUFFER_CHAR )
9689                 /* They forgot to leave room for the EOB's. */
9690                 return 0;
9691
9692         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9693         if ( ! b )
9694                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9695
9696         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9697         b->yy_buf_pos = b->yy_ch_buf = base;
9698         b->yy_is_our_buffer = 0;
9699         b->yy_input_file = 0;
9700         b->yy_n_chars = b->yy_buf_size;
9701         b->yy_is_interactive = 0;
9702         b->yy_at_bol = 1;
9703         b->yy_fill_buffer = 0;
9704         b->yy_buffer_status = YY_BUFFER_NEW;
9705
9706         surf_parse__switch_to_buffer(b  );
9707
9708         return b;
9709 }
9710
9711 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9712  * scan from a @e copy of @a str.
9713  * @param yystr a NUL-terminated string to scan
9714  * 
9715  * @return the newly allocated buffer state object.
9716  * @note If you want to scan bytes that may contain NUL values, then use
9717  *       surf_parse__scan_bytes() instead.
9718  */
9719 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9720 {
9721     
9722         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9723 }
9724
9725 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9726  * scan from a @e copy of @a bytes.
9727  * @param yybytes the byte buffer to scan
9728  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9729  * 
9730  * @return the newly allocated buffer state object.
9731  */
9732 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9733 {
9734         YY_BUFFER_STATE b;
9735         char *buf;
9736         yy_size_t n;
9737         int i;
9738     
9739         /* Get memory for full buffer, including space for trailing EOB's. */
9740         n = _yybytes_len + 2;
9741         buf = (char *) surf_parse_alloc(n  );
9742         if ( ! buf )
9743                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9744
9745         for ( i = 0; i < _yybytes_len; ++i )
9746                 buf[i] = yybytes[i];
9747
9748         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9749
9750         b = surf_parse__scan_buffer(buf,n );
9751         if ( ! b )
9752                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9753
9754         /* It's okay to grow etc. this buffer, and we should throw it
9755          * away when we're done.
9756          */
9757         b->yy_is_our_buffer = 1;
9758
9759         return b;
9760 }
9761
9762     static void yy_push_state (int  new_state )
9763 {
9764         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9765                 {
9766                 yy_size_t new_size;
9767
9768                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9769                 new_size = (yy_start_stack_depth) * sizeof( int );
9770
9771                 if ( ! (yy_start_stack) )
9772                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9773
9774                 else
9775                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9776
9777                 if ( ! (yy_start_stack) )
9778                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9779                 }
9780
9781         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9782
9783         BEGIN(new_state);
9784 }
9785
9786     static void yy_pop_state  (void)
9787 {
9788         if ( --(yy_start_stack_ptr) < 0 )
9789                 YY_FATAL_ERROR( "start-condition stack underflow" );
9790
9791         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9792 }
9793
9794 #ifndef YY_EXIT_FAILURE
9795 #define YY_EXIT_FAILURE 2
9796 #endif
9797
9798 static void yy_fatal_error (yyconst char* msg )
9799 {
9800         (void) fprintf( stderr, "%s\n", msg );
9801         exit( YY_EXIT_FAILURE );
9802 }
9803
9804 /* Redefine yyless() so it works in section 3 code. */
9805
9806 #undef yyless
9807 #define yyless(n) \
9808         do \
9809                 { \
9810                 /* Undo effects of setting up surf_parse_text. */ \
9811         int yyless_macro_arg = (n); \
9812         YY_LESS_LINENO(yyless_macro_arg);\
9813                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9814                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9815                 (yy_hold_char) = *(yy_c_buf_p); \
9816                 *(yy_c_buf_p) = '\0'; \
9817                 surf_parse_leng = yyless_macro_arg; \
9818                 } \
9819         while ( 0 )
9820
9821 /* Accessor  methods (get/set functions) to struct members. */
9822
9823 /** Get the current line number.
9824  * 
9825  */
9826 int surf_parse_get_lineno  (void)
9827 {
9828         
9829     return surf_parse_lineno;
9830 }
9831
9832 /** Get the input stream.
9833  * 
9834  */
9835 FILE *surf_parse_get_in  (void)
9836 {
9837         return surf_parse_in;
9838 }
9839
9840 /** Get the output stream.
9841  * 
9842  */
9843 FILE *surf_parse_get_out  (void)
9844 {
9845         return surf_parse_out;
9846 }
9847
9848 /** Get the length of the current token.
9849  * 
9850  */
9851 int surf_parse_get_leng  (void)
9852 {
9853         return surf_parse_leng;
9854 }
9855
9856 /** Get the current token.
9857  * 
9858  */
9859
9860 char *surf_parse_get_text  (void)
9861 {
9862         return surf_parse_text;
9863 }
9864
9865 /** Set the current line number.
9866  * @param line_number
9867  * 
9868  */
9869 void surf_parse_set_lineno (int  line_number )
9870 {
9871     
9872     surf_parse_lineno = line_number;
9873 }
9874
9875 /** Set the input stream. This does not discard the current
9876  * input buffer.
9877  * @param in_str A readable stream.
9878  * 
9879  * @see surf_parse__switch_to_buffer
9880  */
9881 void surf_parse_set_in (FILE *  in_str )
9882 {
9883         surf_parse_in = in_str ;
9884 }
9885
9886 void surf_parse_set_out (FILE *  out_str )
9887 {
9888         surf_parse_out = out_str ;
9889 }
9890
9891 int surf_parse_get_debug  (void)
9892 {
9893         return surf_parse__flex_debug;
9894 }
9895
9896 void surf_parse_set_debug (int  bdebug )
9897 {
9898         surf_parse__flex_debug = bdebug ;
9899 }
9900
9901 static int yy_init_globals (void)
9902 {
9903         /* Initialization is the same as for the non-reentrant scanner.
9904      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9905      */
9906
9907     /* We do not touch surf_parse_lineno unless the option is enabled. */
9908     surf_parse_lineno =  1;
9909     
9910     (yy_buffer_stack) = 0;
9911     (yy_buffer_stack_top) = 0;
9912     (yy_buffer_stack_max) = 0;
9913     (yy_c_buf_p) = (char *) 0;
9914     (yy_init) = 0;
9915     (yy_start) = 0;
9916
9917     (yy_start_stack_ptr) = 0;
9918     (yy_start_stack_depth) = 0;
9919     (yy_start_stack) =  NULL;
9920
9921 /* Defined in main.c */
9922 #ifdef YY_STDINIT
9923     surf_parse_in = stdin;
9924     surf_parse_out = stdout;
9925 #else
9926     surf_parse_in = (FILE *) 0;
9927     surf_parse_out = (FILE *) 0;
9928 #endif
9929
9930     /* For future reference: Set errno on error, since we are called by
9931      * surf_parse_lex_init()
9932      */
9933     return 0;
9934 }
9935
9936 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9937 int surf_parse_lex_destroy  (void)
9938 {
9939     
9940     /* Pop the buffer stack, destroying each element. */
9941         while(YY_CURRENT_BUFFER){
9942                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9943                 YY_CURRENT_BUFFER_LVALUE = NULL;
9944                 surf_parse_pop_buffer_state();
9945         }
9946
9947         /* Destroy the stack itself. */
9948         surf_parse_free((yy_buffer_stack) );
9949         (yy_buffer_stack) = NULL;
9950
9951     /* Destroy the start condition stack. */
9952         surf_parse_free((yy_start_stack)  );
9953         (yy_start_stack) = NULL;
9954
9955     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9956      * surf_parse_lex() is called, initialization will occur. */
9957     yy_init_globals( );
9958
9959     return 0;
9960 }
9961
9962 /*
9963  * Internal utility routines.
9964  */
9965
9966 #ifndef yytext_ptr
9967 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9968 {
9969         register int i;
9970         for ( i = 0; i < n; ++i )
9971                 s1[i] = s2[i];
9972 }
9973 #endif
9974
9975 #ifdef YY_NEED_STRLEN
9976 static int yy_flex_strlen (yyconst char * s )
9977 {
9978         register int n;
9979         for ( n = 0; s[n]; ++n )
9980                 ;
9981
9982         return n;
9983 }
9984 #endif
9985
9986 void *surf_parse_alloc (yy_size_t  size )
9987 {
9988         return (void *) malloc( size );
9989 }
9990
9991 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9992 {
9993         /* The cast to (char *) in the following accommodates both
9994          * implementations that use char* generic pointers, and those
9995          * that use void* generic pointers.  It works with the latter
9996          * because both ANSI C and C++ allow castless assignment from
9997          * any pointer type to void*, and deal with argument conversions
9998          * as though doing an assignment.
9999          */
10000         return (void *) realloc( (char *) ptr, size );
10001 }
10002
10003 void surf_parse_free (void * ptr )
10004 {
10005         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10006 }
10007
10008 #define YYTABLES_NAME "yytables"
10009
10010 /* Element context stack lookup. */
10011 int surfxml_element_context(int i)
10012 {
10013   return (0<i && i<yy_start_stack_depth
10014           ? yy_start_stack[yy_start_stack_ptr - i]
10015           : 0);
10016 }
10017
10018 #ifdef FLEX_DEBUG
10019 void print_yy_stack(char* fmt, ...)
10020 {
10021   int i = 0; va_list ap; va_start(ap, fmt);
10022   vfprintf(stderr, fmt, ap);
10023   if (surfxml_statenames) {
10024       for (i=1; i<yy_start_stack_ptr; i++) {
10025           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10026       }
10027       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10028   }
10029   va_end(ap);
10030 }
10031
10032 void print_surfxml_bufferstack()
10033 {
10034     int i;
10035     fputs("Buffer: ", stderr);
10036     for (i = 0; i < blimit; i++) {
10037        if ( surfxml_bufferstack[i] == '\377' ) break;
10038          putc(surfxml_bufferstack[i], stderr);
10039     }
10040     putc('\n', stderr);
10041 }
10042
10043 static void debug_enter(int state, const char* statename) {
10044   yy_push_state(state);
10045   if (surf_parse__flex_debug) {
10046        print_yy_stack("--ENTER(%s) : ",statename);
10047        print_surfxml_bufferstack();
10048   }
10049 }
10050
10051 static void debug_leave(void) {
10052     if (surf_parse__flex_debug) {
10053         print_yy_stack("--LEAVE : ");
10054         print_surfxml_bufferstack();
10055     }
10056   yy_pop_state();
10057 }
10058
10059 static void debug_set(int state, const char* statename) {
10060   BEGIN(state);
10061   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10062 }
10063 #endif
10064
10065 static void cleanup(void)
10066 {
10067     if (surfxml_statenames) {
10068         free(surfxml_statenames);
10069         surfxml_statenames = NULL;
10070     }
10071     free(surfxml_bufferstack);
10072     surfxml_bufferstack = NULL;
10073
10074     free(indexstack);
10075     indexstack = NULL;
10076 }
10077
10078 static int fail(const char* fmt, ...)
10079 {
10080     int chars_left, used;
10081     va_list ap; va_start(ap, fmt);
10082 #ifdef FLEXML_yylineno
10083     used = sprintf(flexml_err_msg,
10084                    "Invalid XML (XML input line %d, state %d): ",
10085                    surf_parse_lineno, YY_START);
10086 #else
10087     used = sprintf(flexml_err_msg,
10088                    "Invalid XML (state %d): ",
10089                    YY_START);
10090 #endif
10091     chars_left = flexml_max_err_msg_size - used - 1;
10092     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10093     va_end(ap);
10094
10095 #ifndef FLEXML_quiet_parser
10096     /* print directly to sdterr */
10097     fprintf(stderr, "%s\n", flexml_err_msg);
10098     flexml_err_msg[0] = '\0';
10099 #endif
10100
10101     cleanup();
10102
10103     return 1;
10104 }
10105