Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add two new tag for routing cluster (only):
[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 524
407 #define YY_END_OF_BUFFER 525
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[3108] =
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,  525,  523,   15,   10,   10,   15,
444        15,  503,   10,  503,    5,    6,    5,    8,    9,    8,
445       519,  511,  512,  520,  517,  520,  518,  522,  511,  512,
446       522,  523,   22,   10,   22,   22,   22,   20,   22,   26,
447        10,   26,   26,  523,   26,  523,  523,   26,   33,   10,
448        33,   33,   33,   31,   33,   37,   10,   37,   37,   48,
449
450        10,   48,   48,   48,   46,   48,   48,   48,  520,  519,
451        78,   10,   78,   78,   78,   76,   78,   78,   78,   78,
452        78,   82,   10,   82,  523,   82,  101,   10,  101,  101,
453       101,   99,  101,  101,  101,  105,   10,  105,  128,   10,
454       128,  128,  128,  126,  128,  128,  132,   10,  132,  132,
455       523,  132,  132,  523,  523,  132,  523,  132,  523,  132,
456       145,   10,  145,  145,  145,  143,  145,  145,  145,  145,
457       149,   10,  149,  149,  160,   10,  160,  160,  160,  158,
458       160,  160,  160,  164,   10,  164,  164,  173,   10,  173,
459       173,  173,  171,  173,  173,  177,   10,  177,  186,   10,
460
461       186,  186,  186,  184,  186,  186,  190,   10,  190,  213,
462        10,  213,  213,  213,  211,  213,  213,  213,  213,  213,
463       217,   10,  217,  523,  217,  228,   10,  228,  228,  228,
464       226,  228,  228,  228,  232,   10,  232,  273,   10,  273,
465       273,  273,  271,  273,  273,  273,  273,  273,  273,  273,
466       273,  277,   10,  277,  298,   10,  298,  298,  298,  296,
467       298,  298,  298,  298,  298,  298,  298,  302,   10,  302,
468       311,   10,  311,  311,  311,  309,  311,  311,  315,   10,
469       315,  326,   10,  326,  326,  326,  324,  326,  326,  326,
470       330,   10,  330,  357,   10,  357,  357,  357,  355,  357,
471
472       357,  357,  357,  361,   10,  361,  361,  374,   10,  374,
473       374,  374,  372,  374,  374,  378,   10,  378,  523,  378,
474       395,   10,  395,  395,  395,  393,  395,  395,  395,  399,
475        10,  399,  399,  412,   10,  412,  412,  412,  410,  412,
476       412,  416,   10,  416,  425,   10,  425,  425,  425,  423,
477       425,  425,  429,   10,  429,  429,  442,   10,  442,  442,
478       442,  440,  442,  442,  442,  446,   10,  446,  446,  463,
479        10,  463,  463,  463,  461,  463,  463,  463,  463,  463,
480       467,   10,  467,  523,  467,  474,   10,  474,  474,  474,
481       472,  474,  478,   10,  478,  485,   10,  485,  485,  485,
482
483       483,  485,  489,   10,  489,  489,  498,   10,  498,  498,
484       498,  496,  498,  498,  502,   10,  502,   10,    0,    2,
485         2,    0,    4,    7,  514,  513,    0,    0,    0,    0,
486         0,    0,    0,   21,   23,   23,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
488         0,    0,    0,    0,    0,    0,    0,    0,    0,   32,
489        34,   34,    0,   47,   49,   49,   49,   49,    0,    0,
490         0,   77,   79,   79,   79,   79,   79,   79,   79,   79,
491        79,    0,    0,  100,  102,  102,  102,  102,    0,  127,
492       129,  129,  129,    0,    0,    0,    0,    0,    0,    0,
493
494         0,    0,    0,    0,    0,    0,    0,    0,  144,  146,
495       146,  146,  146,  146,    0,  159,  161,  161,  161,  161,
496         0,  172,  174,  174,  174,    0,  185,  187,  187,  187,
497         0,  212,  214,  214,  214,  214,  214,  214,    0,    0,
498       227,  229,  229,  229,  229,    0,  272,  274,  274,  274,
499       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
500       274,    0,  297,  299,  299,  299,  299,  299,  299,  299,
501       299,    0,  310,  312,  312,  312,    0,  325,  327,  327,
502       327,  327,    0,  356,  358,  358,  358,  358,  358,  358,
503         0,  373,  375,  375,  375,  375,    0,    0,  394,  396,
504
505       396,  396,  396,  396,    0,  411,  413,  413,  413,    0,
506       424,  426,  426,  426,    0,  441,  443,  443,  443,  443,
507         0,  462,  464,  464,  464,  464,  464,  464,    0,    0,
508       473,  475,  475,    0,  484,  486,  486,    0,  497,  499,
509       499,  499,    0,    0,    0,    0,    0,    3,    0,    0,
510         0,    0,    0,    0,    0,  521,    0,   23,    0,    0,
511       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
512         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
513       106,    0,    0,    0,    0,    0,   34,    0,    0,   49,
514         0,    0,   49,    0,    0,    0,  516,   79,    0,    0,
515
516        79,   79,   79,   79,   79,   79,    0,    0,    0,  102,
517       102,  102,    0,    0,    0,    0,  129,    0,    0,  107,
518         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
519         0,  146,    0,    0,  146,  146,    0,    0,  161,    0,
520         0,  161,    0,    0,    0,    0,  174,    0,    0,  187,
521       187,    0,    0,  214,  214,  214,    0,    0,  214,  214,
522         0,    0,    0,    0,  229,    0,    0,    0,    0,    0,
523         0,  274,  274,    0,    0,  274,    0,    0,  274,  274,
524       274,  274,  274,  274,  274,  274,    0,    0,  299,  299,
525       299,    0,    0,  299,  299,  299,    0,    0,  312,    0,
526
527         0,    0,    0,  327,    0,    0,  327,    0,    0,  358,
528         0,    0,  358,  358,  358,    0,    0,  375,  375,  375,
529         0,    0,    0,  396,  396,  396,  396,    0,    0,  413,
530         0,    0,    0,    0,  426,  426,    0,    0,  443,  443,
531       443,    0,    0,  464,  464,  464,  464,  464,    0,    0,
532         0,  475,    0,    0,    0,    0,    0,    0,    0,    0,
533       499,    0,    0,    0,   14,    1,    0,    0,  509,    0,
534         0,    0,  506,  505,    0,    0,   23,    0,    0,   25,
535         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
536         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
537
538         0,    0,  106,    0,    0,    0,    0,    0,   34,    0,
539         0,   36,    0,   49,    0,   41,   40,   49,    0,    0,
540         0,   51,    0,   79,    0,   55,   54,    0,    0,   79,
541         0,    0,   79,   79,   79,    0,    0,   81,    0,    0,
542       102,  102,  102,    0,    0,  104,    0,    0,  109,  108,
543       129,    0,    0,  131,    0,    0,    0,    0,    0,    0,
544         0,    0,    0,    0,    0,    0,  146,    0,  136,  135,
545       146,  146,    0,    0,  148,    0,  161,    0,  153,  152,
546       161,    0,    0,  163,    0,    0,  168,  167,  174,    0,
547         0,  176,    0,  187,  187,    0,    0,  189,    0,  214,
548
549       214,  214,    0,  194,  193,  214,  214,    0,    0,  216,
550         0,    0,    0,  229,    0,  221,  220,    0,  223,  222,
551         0,    0,  231,    0,  274,  274,  274,  274,    0,  248,
552       247,  274,    0,  236,  235,    0,    0,  274,  274,  274,
553       274,  274,  274,  274,    0,    0,  276,    0,  299,  299,
554       299,  299,    0,  281,  280,    0,    0,  299,  299,    0,
555         0,  301,    0,  312,    0,  306,  305,    0,    0,  314,
556         0,  327,    0,  319,  318,  327,    0,    0,  329,    0,
557       358,    0,  334,  333,  358,  358,  358,    0,    0,  360,
558         0,    0,    0,    0,    0,  375,    0,    0,  377,    0,
559
560         0,    0,    0,  396,  396,    0,    0,  396,    0,    0,
561       398,    0,  413,    0,  403,  402,    0,    0,  415,    0,
562         0,    0,    0,    0,    0,    0,  428,    0,    0,    0,
563       443,  443,    0,    0,    0,    0,  445,    0,  464,  464,
564       464,  464,  464,    0,    0,  466,    0,    0,  475,    0,
565         0,  477,    0,    0,  482,  481,    0,    0,  488,    0,
566         0,  493,  492,  499,    0,    0,  501,    0,    0,    0,
567       510,  504,    0,    0,    0,   23,    0,    0,    0,    0,
568         0,    0,    0,  191,    0,  331,    0,    0,  279,    0,
569         0,  490,    0,    0,    0,    0,    0,    0,    0,    0,
570
571       278,    0,    0,    0,    0,    0,    0,    0,   49,    0,
572         0,   79,    0,   59,   58,    0,    0,    0,   57,   56,
573        79,    0,    0,   79,    0,  491,  102,    0,    0,  102,
574         0,  129,    0,  130,    0,    0,    0,  192,  332,    0,
575         0,    0,    0,    0,    0,  146,  146,    0,    0,    0,
576       161,  161,    0,    0,    0,    0,    0,    0,  187,    0,
577       214,  214,    0,    0,  214,  214,    0,    0,    0,    0,
578         0,    0,  274,  274,  274,  274,    0,    0,    0,  250,
579       249,  274,  274,  274,  274,  274,  274,  274,    0,  299,
580       299,  299,  299,    0,  289,  288,  299,  299,    0,  312,
581
582         0,  327,  327,    0,  358,  358,  358,  358,    0,    0,
583       367,  366,    0,  365,  364,  375,    0,  331,    0,  384,
584       383,  396,  396,    0,  382,  381,  396,    0,  413,    0,
585         0,  422,  421,    0,  420,  419,    0,    0,  435,  434,
586       443,  443,    0,  433,  432,    0,  464,    0,    0,  464,
587       464,  464,    0,    0,  475,    0,    0,  499,    0,    0,
588         0,    0,   12,    0,  507,  508,    0,   23,    0,    0,
589         0,    0,    0,    0,    0,  191,    0,    0,  331,    0,
590       165,    0,  279,    0,    0,  490,    0,  362,    0,   39,
591         0,    0,    0,    0,  278,    0,   38,    0,   30,   29,
592
593         0,    0,   43,   42,   49,    0,    0,   79,    0,   61,
594        60,   79,    0,   65,   64,   79,    0,  491,  102,    0,
595         0,    0,    0,    0,    0,  129,    0,    0,    0,  192,
596         0,  332,  363,    0,    0,    0,  363,  362,  146,    0,
597         0,    0,  140,  139,    0,  161,  161,    0,    0,  170,
598       169,    0,    0,  183,  182,  187,    0,  214,  214,    0,
599       198,  197,    0,    0,    0,    0,  214,    0,  166,    0,
600         0,  225,  224,    0,  274,    0,    0,  274,  274,    0,
601       246,  245,    0,    0,  274,  274,  274,  274,  274,  274,
602         0,  299,    0,    0,  299,  299,    0,    0,  299,    0,
603
604       312,    0,  327,  327,    0,  358,  358,  358,    0,    0,
605       358,    0,  375,    0,    0,  396,  396,  396,    0,  413,
606         0,    0,  443,  443,    0,  464,    0,  450,  449,  464,
607       464,  464,    0,    0,    0,    0,    0,    0,    0,    0,
608         0,    0,    0,    0,   11,    0,   23,    0,    0,    0,
609         0,    0,    0,  480,    0,    0,    0,  165,    0,    0,
610         0,   53,  362,  303,    0,   39,    0,  479,   52,    0,
611         0,    0,   38,    0,    0,   49,    0,    0,   79,   79,
612        79,    0,  102,    0,    0,    0,    0,    0,    0,    0,
613         0,    0,   96,   95,    0,  129,    0,    0,    0,    0,
614
615       363,  304,    0,    0,    0,  146,    0,  138,  137,    0,
616       161,    0,    0,    0,    0,    0,    0,    0,  214,  214,
617         0,  196,  195,    0,    0,    0,  214,    0,  215,  166,
618         0,    0,  274,    0,  258,  257,    0,    0,  274,    0,
619       244,  243,    0,    0,  274,  274,  274,  274,    0,    0,
620         0,  299,    0,  285,  284,    0,    0,  299,    0,  283,
621       282,  299,    0,  300,  312,    0,  327,  327,    0,  358,
622       358,  358,    0,    0,    0,  358,    0,  359,  375,    0,
623         0,    0,    0,    0,    0,  396,    0,  413,    0,    0,
624         0,    0,    0,    0,    0,  464,  464,  464,  464,    0,
625
626         0,    0,  471,  470,    0,    0,    0,  495,  494,    0,
627       500,    0,    0,    0,    0,    0,    0,    0,  379,    0,
628         0,    0,    0,  234,  480,    0,   28,    0,    0,    0,
629       448,   53,  303,  150,    0,  479,   52,  233,   27,  447,
630         0,    0,   49,    0,    0,   50,   79,    0,    0,   79,
631         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
632         0,    0,    0,    0,    0,    0,  380,    0,    0,    0,
633         0,  304,  151,    0,    0,    0,    0,    0,    0,  155,
634       154,    0,    0,  175,    0,  181,  180,    0,  214,  214,
635         0,    0,  214,    0,    0,  274,    0,  260,  259,  274,
636
637         0,  238,  237,    0,    0,  274,  274,  274,    0,  240,
638       239,    0,  299,    0,  287,  286,  299,  299,  312,    0,
639       327,    0,    0,    0,  358,    0,    0,  358,  358,    0,
640         0,  358,  375,    0,  376,    0,    0,  388,  387,    0,
641       386,  385,  396,    0,  413,    0,    0,    0,  439,  438,
642         0,  437,  436,    0,  464,  464,  464,  464,    0,    0,
643         0,    0,    0,    0,    0,   17,    0,   19,   18,    0,
644       379,  468,  316,    0,    0,  234,    0,   28,  400,  178,
645        16,  448,  150,    0,    0,  233,   27,  447,    0,    0,
646        49,  515,   79,    0,   67,   66,   79,    0,   80,    0,
647
648        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,  380,  317,    0,    0,
650         0,  151,    0,    0,  142,  141,    0,    0,  157,  156,
651         0,    0,  214,  214,    0,    0,    0,    0,  214,  179,
652         0,  274,  274,    0,  242,  241,  274,  274,  274,    0,
653       299,  299,  299,  312,    0,  313,  327,    0,  323,  322,
654         0,  358,    0,  340,  339,  358,  358,    0,    0,    0,
655         0,  358,  375,  401,  396,    0,  413,    0,    0,    0,
656         0,    0,  464,  464,  464,    0,  469,    0,    0,  487,
657         0,    0,    0,   17,    0,  468,  316,    0,    0,  218,
658
659       400,  178,   16,    0,    0,    0,    0,   35,   49,    0,
660         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,  317,    0,    0,  219,    0,
663         0,    0,  162,    0,  214,  214,    0,  204,    0,  203,
664       214,  179,    0,  274,  274,    0,    0,  274,  274,    0,
665       275,  299,  299,  299,  312,    0,    0,    0,    0,    0,
666       358,  358,  358,    0,  344,    0,  343,  358,  375,  401,
667       396,    0,  397,    0,    0,    0,    0,    0,    0,  452,
668       451,    0,    0,  464,  464,    0,  465,  469,    0,    0,
669
670         0,    0,    0,   24,    0,    0,  218,    0,    0,    0,
671        49,    0,    0,    0,   79,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,  219,    0,    0,    0,  188,  214,  214,  206,
675       205,    0,    0,    0,  274,  274,    0,  270,  269,  274,
676         0,    0,  299,  299,    0,    0,  312,    0,  321,  320,
677         0,  328,    0,  336,  335,  358,  358,  358,  346,  345,
678         0,    0,  375,  396,    0,    0,    0,    0,  414,    0,
679         0,    0,  456,  455,    0,    0,    0,    0,    0,  476,
680
681         0,    0,    0,    0,  417,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
683         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,  418,    0,    0,  214,    0,    0,    0,
686       208,  207,    0,  230,  274,  274,  274,    0,  268,  267,
687       299,    0,    0,    0,  295,  294,    0,    0,  358,  358,
688       358,    0,  348,  347,    0,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690       454,  453,    0,    0,    0,    0,  417,  133,    0,    0,
691
692         0,   45,   44,    0,    0,    0,    0,    0,    0,    0,
693         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,  418,  134,    0,    0,
696         0,  214,    0,  210,  209,  274,  274,  274,  299,    0,
697       291,  290,    0,  308,  307,  358,    0,    0,  358,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
699         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700         0,  430,  133,   84,   83,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
702
703         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
704         0,    0,    0,    0,  110,  118,    0,    0,  431,  134,
705         0,    0,  200,  199,  214,  274,  274,  274,  299,  358,
706         0,  342,  341,  358,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,  405,    0,    0,  404,    0,  427,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,  430,   84,   83,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,  113,    0,    0,    0,    0,  112,
712         0,    0,  431,    0,  147,  214,  274,  274,    0,    0,
713
714       299,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,   75,
717        71,    0,    0,   74,   70,    0,   92,    0,    0,   91,
718         0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
719         0,    0,  214,  274,  274,    0,    0,    0,  299,    0,
720       338,  337,    0,    0,    0,  371,    0,  370,    0,  392,
721         0,  391,    0,  407,  409,  406,  408,    0,  444,  458,
722         0,  457,    0,    0,    0,    0,   12,    0,   12,    0,
723         0,    0,    0,    0,   86,   90,   85,   89,  125,    0,
724
725         0,  123,  124,    0,    0,  122,  214,  274,  274,    0,
726         0,    0,    0,  299,    0,    0,    0,    0,  369,  368,
727       390,  389,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,  115,    0,    0,  114,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,    0,    0,   69,    0,   68,    0,    0,  121,    0,
732       120,    0,  202,  201,    0,  266,  265,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,  293,  292,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,    0,  460,
738       459,    0,   73,   72,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742         0,    0,  117,  116,    0,    0,    0,    0,    0,    0,
743       252,    0,    0,  251,    0,    0,  350,    0,    0,  349,
744         0,    0,    0,    0,    0,  256,    0,  255,    0,  352,
745         0,  351,    0,    0,    0,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,  262,    0,  261,    0,    0,    0,
748         0,    0,    0,  264,  263,  254,  253,  354,  353,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    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,   13,    0
759     } ;
760
761 static yyconst flex_int32_t yy_ec[256] =
762     {   0,
763         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
764         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
765         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
766         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
767         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
768        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
769        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
770        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
771        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
772        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
773
774        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
775        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
776        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
777         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
778         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
779         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
780         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
781         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
782         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
783         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
784
785         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
786         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
787         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
788         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1
791     } ;
792
793 static yyconst flex_int32_t yy_meta[75] =
794     {   0,
795         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
796         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
797         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
798         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
799         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
800         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
801         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
802         5,    5,    5,    5
803     } ;
804
805 static yyconst flex_int16_t yy_base[3557] =
806     {   0,
807         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
808        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
809       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
810       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
811       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
812       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
813       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
814       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
815       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
816       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
817
818       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
819      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
820      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
821      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
822      1585, 1654, 1341, 1345, 1723,    0, 1348, 1403, 1797, 1864,
823      1406, 1409, 1931, 1988, 1413, 1416, 2045, 2105, 1471, 1474,
824      2165, 2232, 1477, 1481, 1538, 1541, 1544, 1548, 1605, 1608,
825      2299, 2366, 1611, 1615, 1618, 1674, 1677, 1680, 1684, 1687,
826      2433, 2500, 1817, 1820, 1823, 1827, 1884, 1887, 1890, 1894,
827      2567, 2624, 1951, 1954, 2681, 2748, 1957, 1961, 2008, 2011,
828
829      2014, 2018, 2065, 2068, 2815, 2882, 2071, 2075, 2078, 2125,
830      2128, 2131, 2135, 2138, 2949, 3016, 2185, 2188, 2191, 2195,
831      2198, 2252, 2255, 2258, 3083, 3153, 2262, 2265, 3223, 3280,
832      2319, 2322, 2325, 2329, 2332, 2386, 2389, 2392, 3337, 3407,
833      2396, 2399,    0,    0, 8506,11150,11150,   95,  100,   29,
834        41,11150,  103,   51,11150,11150, 8495,11150,11150, 8482,
835     11150, 8497, 8497,  202,11150,11150,11150,11150, 8491, 8491,
836      8446,  153,11150,  161, 8470,    0,  145,11150, 8436,11150,
837       165, 3473,   73, 2404,  315,  357, 8476, 8419,11150,  168,
838      8462,    0,  152,11150, 8424,11150,  261, 8466,   31,11150,
839
840       266, 8457,    0,  245,11150, 8419, 8419, 8417,  421, 8422,
841     11150,  269, 8446,    0,  340,11150, 8412, 8412,  271, 8410,
842       238,11150,  441,  163,  313,  368,11150,  503, 8438,    0,
843       401,11150, 8397, 8397, 8387,11150,  506,  548,11150,  561,
844      8432,    0,  481,11150, 8395, 8383,11150,  571, 2407, 2472,
845       567,  206,   38, 8433,  477, 2399,  572,  907, 8430,   79,
846     11150,  628, 8421,    0,  482,11150, 8377, 8383, 8371, 8376,
847     11150,  638,  426,  597,11150,  697, 8410,    0,  546,11150,
848      8366, 8376, 8350,11150,  703,  631,  691,11150,  706, 8394,
849         0,  549,11150, 8361, 8363,11150,  765,  753,11150,  773,
850
851      8387,    0,  616,11150, 8357, 8332,11150,  776,  818,11150,
852       831, 8380,    0,  815,11150, 8329, 8335, 8341, 8329, 8323,
853     11150,  838,  825, 8374,   87,11150,  841, 8365,    0,  882,
854     11150, 8321, 8327, 8314,11150,  906,  958,11150,  914, 8357,
855         0,  891,11150, 8302,  203, 8308, 8318, 8316,  157,  311,
856       908,11150,  981, 1019,11150, 1039, 8344,    0,  953,11150,
857      8293, 8287, 8294, 8304, 8302, 8287, 8281,11150, 1044, 1032,
858     11150, 1048, 8324,    0,  966,11150, 8280, 8290,11150, 1088,
859      1092,11150, 1105, 8317,    0, 1033,11150, 8287, 8283, 8281,
860     11150, 1112, 1154,11150, 1115, 8309,    0, 1089,11150, 8279,
861
862      8271, 8273,   15,11150, 1118,  559,  699,11150, 1174, 8301,
863         0, 1090,11150, 8249,  181,11150, 1179,  963, 8303, 8254,
864     11150, 1182, 8289,    0, 1158,11150, 8241, 8236,  299,11150,
865      1185, 8290,  302,11150, 1241, 8281,    0, 1225,11150, 8243,
866      8243,11150, 1247, 1290,11150, 1303, 8274,    0, 1226,11150,
867      8226, 8222,11150, 1310, 8275,  761,11150, 1365, 8266,    0,
868      1231,11150, 8214, 8209, 8213,11150, 1368, 8262,  851,11150,
869      1371, 8253,    0, 1287,11150, 8203, 8204, 8209, 8203, 8192,
870     11150, 1376, 1437, 8247,  512,11150, 1433, 8238,    0, 1288,
871     11150, 8204,11150, 1436, 1420,11150, 1440, 8232,    0, 1355,
872
873     11150, 8199,11150, 1444,  387,  814,11150, 1501, 8226,    0,
874      1360,11150, 8193, 8195,11150, 1507, 1549, 1510,  677, 8167,
875     11150, 8228, 8217,11150,11150,11150, 1558,  254, 7651, 7650,
876      7647, 7695, 7654,11150,    0, 7647, 7648, 7672, 7644,  104,
877       437, 7645, 7645, 7648,  372, 1574,  378, 7629, 7630,  625,
878       429, 7655,  634, 7624, 1575, 7619,  693, 1585, 1586,11150,
879         0, 7623, 7620,11150,    0, 7615, 1830, 7604,  372, 7601,
880      7647,11150,    0, 7600, 1897, 7589, 7605, 7590, 7599, 7596,
881      7584, 7569, 1643,11150,    0, 7580, 7563, 7575, 7554,11150,
882         0, 1964, 7552, 7597, 7575,  172, 7550, 7550,  493, 7538,
883
884      7565,  841,  888,  907,  955,  627,  903, 1282,11150,    0,
885      7530, 2021, 7539, 7513, 7519,11150,    0, 7522, 2456, 7519,
886      7492,11150,    0, 2467, 7493, 7492,11150,    0, 7479, 7475,
887      7476,11150,    0, 7483,  967, 2474, 7460, 7480, 7468, 1091,
888     11150,    0, 7452, 2479, 2522, 7465,11150,    0, 7463, 7463,
889      2525, 7444, 2529, 7439, 7435, 7442, 7442, 7420, 7439, 7437,
890      7430, 7432,11150,    0, 7432, 7427, 7404, 2535, 7398, 7393,
891      7409, 7393,11150,    0, 7392, 2547, 7380,11150,    0, 7379,
892      2587, 7359, 7371,11150,    0, 7358, 2590, 7350, 7350, 7345,
893      7333,11150,    0, 7314, 7330, 7318, 7312, 7319,11150,    0,
894
895      7303, 7311, 7306, 7290, 7326,11150,    0, 7275, 2593, 7280,
896     11150,    0, 7270, 7276, 7276,11150,    0, 7252, 7271, 7266,
897      7256,11150,    0, 7242, 7236, 7241, 7248, 7246, 7229, 7226,
898     11150,    0, 7216, 7225,11150,    0, 2596, 7206,11150,    0,
899      2599, 7196, 7189, 7225, 7225, 1470, 7173,11150, 1563,    0,
900      7158, 7157, 7198, 7197, 7149,11150, 7155, 7136, 2644, 2647,
901      1646, 7146, 7149, 7134, 7128, 7133, 7116, 7131, 7113, 7105,
902      7104, 7113, 7115, 7096, 7094, 7079, 7084, 7095, 7081, 7064,
903      1856, 7056, 7070, 7067, 7055, 7055, 7050, 2652, 2655, 7048,
904      2658, 1711, 7038, 7068, 2701, 2706,11150, 7034, 2710, 2095,
905
906      2716, 7024, 2720, 7027, 7031, 7026, 2771, 2782, 7010, 7002,
907      7010, 7009, 2776, 2779, 2728, 2155, 6984, 2785, 2835, 1915,
908      7000, 6985, 6981, 6983, 6975, 6979, 2215, 6964, 6963, 6952,
909      6950, 6950, 2838, 2282, 6963, 6953, 2844, 2848, 6937, 2856,
910      2350, 6950, 2902, 2905, 2908, 2421, 6940, 2911, 2915, 6939,
911      6937, 2972, 2977, 6932, 6921, 6926, 2980, 2554, 6925, 6908,
912      2984, 2987, 6902, 6902, 6906, 3036, 2734, 3039, 2804, 3044,
913      3049, 6909, 1920, 3057, 2936, 6911, 3063, 3104, 3112, 6910,
914      6886, 6881, 6869, 6868, 6864, 6874, 3115, 3118, 6867,   37,
915      6849, 3121, 3130, 3124, 6861, 6844, 3173, 3186, 6838, 3177,
916
917      3142, 3181, 3200, 6851, 3243, 3205, 6844, 3246, 3253, 6842,
918      3249, 3213, 6828, 6807, 6804, 3256, 3302, 3305, 3309, 3312,
919      3315, 3360, 6804, 3363, 3383, 3372, 3386, 3375, 3428, 6811,
920      3436, 3394, 3439, 3442, 3454, 3467, 3472, 3477, 3485, 3499,
921      3506, 3480, 3511, 6809, 6787, 6794, 6793, 6768, 3524, 3543,
922      6771, 6756, 3550, 3553, 3517, 3556, 3565, 3572, 3575, 3584,
923      6746, 3578, 3593, 6794,11150,11150, 1148, 6752,11150, 6787,
924      6786, 6734,11150,11150, 6731, 6729, 6739, 3597, 3600,11150,
925      3603, 1848, 6731, 6714, 6722, 6731, 6711, 6723, 6707, 6710,
926      6706, 6702, 6699, 6691, 6688, 1109, 6697, 6671, 6672, 6669,
927
928      6665, 6665, 1923, 6645, 6651, 6638, 1443, 6652, 3608, 3612,
929      3622,11150, 3626, 3634, 3641,11150,11150, 3637, 6673, 3658,
930      3661,11150, 3664, 6627, 3667,11150,11150, 3683, 3686, 3695,
931      3701, 3706, 6641, 3714, 6638, 3719, 3722,11150, 3725, 1504,
932      6619, 3728, 6618, 3732, 3746,11150, 3751, 3754,11150,11150,
933      6612, 3765, 3770,11150, 3773, 6597, 6599, 6607, 6585, 6592,
934      6579, 6568, 6582, 6574, 6554, 6552, 6566, 3777,11150,11150,
935      6550, 3792, 3795, 3799,11150, 3802, 6546, 3814,11150,11150,
936      6568, 3805, 3810,11150, 3824, 3829,11150,11150, 3837, 3843,
937      3846,11150, 3849, 3855, 3858, 3869, 3876,11150, 3879, 6532,
938
939      6539, 3882, 3888,11150,11150, 6523, 6524, 3900, 3903,11150,
940      3906, 6514, 6507, 3909, 3913,11150,11150, 3927,11150,11150,
941      3935, 3938,11150, 3941, 6506, 6493, 6505, 6495, 3947,11150,
942     11150, 3960, 3963,11150,11150, 3972, 3978, 6480, 6488, 6488,
943      6482, 6476, 6478, 6473, 3986, 3990,11150, 3993, 6468, 6461,
944      6440, 6449, 3996,11150,11150, 4012, 4015, 6430, 6437, 4023,
945      4026,11150, 4030, 6437, 4033,11150,11150, 4045, 4049,11150,
946      4052, 6412, 4055,11150,11150, 6401, 4064, 4071,11150, 4074,
947      6390, 4083,11150,11150, 6398, 6400, 6403, 4077, 4096,11150,
948      4099, 4103, 4106, 4124, 4127, 6385, 4135, 4138,11150, 4142,
949
950      6378, 4145, 4148, 6365, 6365, 4163, 4166, 6376, 4174, 4177,
951     11150, 4181, 6376, 4184,11150,11150, 4196, 4200,11150, 4203,
952      4206, 4215, 4210, 4224, 4232, 4235,11150, 4238, 4241, 4247,
953      6357, 6337, 4259, 4264, 4272, 4277,11150, 4280, 6330, 4284,
954      6348, 6345, 6324, 4287, 4291,11150, 4302, 6322, 6333, 4306,
955      4310,11150, 4313, 4325,11150,11150, 4316, 4321,11150, 4335,
956      4343,11150,11150, 6332, 4354, 4357,11150, 4360, 1447, 4367,
957     11150,11150, 6366, 6355, 6310, 6300, 4379, 6285, 6282, 6291,
958      6269, 6265, 6265, 1982, 6252, 2039, 6251, 6251, 2224, 6260,
959      6259, 2227, 6241, 6250, 6246, 6232, 6227, 6198, 6180, 6174,
960
961      2291, 6169, 6164, 4382, 4387, 4400, 4403, 4406, 6147, 6164,
962      4414, 6129, 4422,11150,11150, 4433, 4436, 4447,11150,11150,
963      6060, 4455, 4460, 6051, 4468, 2294, 6041, 4473, 4476, 4487,
964      4491, 6022, 4494,11150, 6013, 6026, 5993, 2358, 2361, 5987,
965      5932, 5880, 5836, 5831, 5812, 5752, 4497, 4500, 4506, 4519,
966      5751, 5759, 4523, 4526, 4529, 4544, 4547, 4550, 5749, 4558,
967      5747, 5672, 4565, 4568, 4577, 4584, 4588, 5656, 5578, 4591,
968      4595, 4609, 5576, 4612, 5554, 5497, 4615, 4621, 4633,11150,
969     11150, 4641, 5449, 5420, 5358, 5343, 5326,   17, 4644,  145,
970      4647,  249,  314, 4659,11150,11150, 4650,  357, 4655,  389,
971
972      4668,  439,  499, 4676,  561,  633,  650, 4679, 4682, 4688,
973     11150,11150, 4697,11150,11150,  661, 4705, 2487, 4710,11150,
974     11150,  676,  701, 4720,11150,11150,  694, 4728,  702, 4735,
975      4740,11150,11150, 4748,11150,11150, 4756, 4759,11150,11150,
976       703,  746, 4768,11150,11150, 4776,  755, 4779, 4783,  756,
977       774,  798, 4797,  831, 4800, 4804, 4807, 4810, 4818, 1145,
978       877, 4830,11150,  882,11150,11150,  857,  898, 4833,  913,
979       933,  956,  958, 1018, 1031, 2493, 1038, 1048, 2618, 1054,
980      2676, 1090, 2742, 1099, 1140, 2869, 1161, 2875, 1178, 3275,
981      1179, 1179, 1188, 1217, 2944, 1217, 4837, 4840,11150,11150,
982
983      4852, 4856,11150,11150, 1239, 1258, 4864, 1235, 4872,11150,
984     11150, 1286, 4886,11150,11150, 1284, 4894, 2998, 1289, 4899,
985      3238, 3755, 4867, 4907, 4916, 1303, 1296, 1319, 1332, 3007,
986      1354, 3011, 3367, 1367, 1356, 1359, 4920, 4923, 1360, 4926,
987      4929, 4937,11150,11150, 4945, 1365, 4948, 4951, 4957,11150,
988     11150, 4970, 4973,11150,11150, 4989, 4981, 1400, 1420, 4993,
989     11150,11150, 5001, 5007, 5015, 5019, 1434, 5028, 3330, 1442,
990      5033,11150,11150, 5041, 1443, 5047, 5050, 5060, 1430, 5065,
991     11150,11150, 5073, 5078, 5091, 1456, 1469, 1479, 1495, 5094,
992      5097, 1503, 5100, 5103, 5112, 1495, 5118, 5121, 1504, 5130,
993
994      1498, 5136, 1511, 1501, 5140, 1527, 1508, 1528, 5143, 5149,
995      1530, 5164, 1535, 5167, 1565, 5172, 5175, 5178, 5196, 1567,
996      5199, 5202, 5205, 5208, 5211, 1562, 5226,11150,11150, 1586,
997      1584, 1579, 5234, 1600, 5237, 5246, 5255, 5260, 5264, 5268,
998      5282, 1673, 1793, 1665,11150, 1604, 5286, 5289, 1641, 1635,
999      1637, 1815, 1638, 3503, 1650, 1655, 1648, 5292, 1664, 1655,
1000      1655, 5295, 5304, 5308, 1775, 5311, 1785, 5316, 5319, 1773,
1001      1787, 1775, 5322, 1805, 5325, 1811, 1841, 5328, 1817, 5331,
1002      1838, 5334, 5337, 1881, 1868, 1997, 1870, 1885, 1873, 2054,
1003      1884, 5340,11150,11150, 5355, 5359, 1870, 1867, 2006, 1873,
1004
1005      5362, 5365, 1894, 2122, 2125, 5368, 5377,11150,11150, 5386,
1006      5389, 5394, 5398, 5407, 5412, 5415, 5419, 5427, 1905, 1922,
1007      5433,11150,11150, 5442, 1937, 1938, 1919, 5450,11150, 5453,
1008      1949, 5457, 1974, 5462,11150,11150, 5470, 5476, 1976, 5484,
1009     11150,11150, 5492, 5495, 5503, 1980, 1990, 2004, 5506, 5510,
1010      5524, 2028, 5527,11150,11150, 5535, 5539, 2039, 5547,11150,
1011     11150, 2033, 5555,11150, 2045, 5558, 2032, 5561, 5564, 2035,
1012      5567, 2073, 5570, 2100, 2109, 2091, 5579,11150, 2093, 5585,
1013      2086, 5588, 5591, 5599, 5607, 2124, 5617, 2133, 5626, 5629,
1014      5632, 5636, 5650, 5653, 5661, 2142, 2144, 2138, 2151, 5664,
1015
1016      2148, 5669,11150,11150, 5684, 5687, 5691,11150,11150, 5699,
1017     11150, 2194, 2377, 2400, 2160, 5706, 5709, 5718, 5730, 2155,
1018      2171, 2209, 2200, 5737, 5741, 2209, 5744, 2210, 2221, 2214,
1019      5747, 5750, 5753, 5756, 2214, 5759, 5762, 5765, 5768, 5771,
1020      2224, 5774, 2233, 2269, 5777,11150, 2264, 5783, 5786, 2289,
1021      5796, 5803, 5806, 2304, 2302, 2302, 2309, 2305, 2314, 2316,
1022      2317, 2323, 2339, 5815, 5821, 5827, 5835, 2352, 2369, 2348,
1023      2353, 5839, 5842, 5845, 5848, 5856, 5859, 5865, 5877,11150,
1024     11150, 5885, 5890,11150, 5893,11150,11150, 5904, 2362, 2363,
1025      2429, 2507, 2372, 2409, 5909, 2427, 5912,11150,11150, 2430,
1026
1027      5924,11150,11150, 5932, 5937, 2447, 2452, 2463, 5946,11150,
1028     11150, 5954, 2470, 5958,11150,11150, 2475, 2485, 2485, 5966,
1029      2503, 5969, 5973, 5981, 2505, 5987, 5990, 2508, 2500, 2581,
1030      2638, 2505, 2532, 6001,11150, 2542, 6005,11150,11150, 6013,
1031     11150,11150, 2554, 6021, 2545, 6024, 6027, 6030,11150,11150,
1032      6046,11150,11150, 6055, 6059, 6064, 6067, 6077, 6085, 2542,
1033      6091, 6095, 6098, 2603, 2648, 6104, 6110,11150,11150, 6119,
1034      6122, 6125, 6128, 2545, 2548, 6132, 2581, 6138, 6141, 6144,
1035      6147, 6152, 6155, 2584, 2591, 6158, 6161, 6164, 2601, 6167,
1036      2601,11150, 6170, 6173,11150,11150, 6181, 6188,11150, 6192,
1037
1038     11150,11150, 2649, 2657, 2680, 2679, 2690, 2700, 2694, 2715,
1039      2710, 2738, 6200, 6203, 6186, 6191, 6228, 6232, 2704, 2702,
1040      2717, 6235, 2709, 6238,11150,11150, 6248, 6251,11150,11150,
1041      6262, 6267, 2733, 2739, 2766, 2791, 2771, 2792, 2750, 6270,
1042      6273, 2747, 2754, 6277,11150,11150, 6286, 2748, 2759, 6295,
1043      2757, 2790, 2791, 2796, 6298,11150, 6304, 6307,11150,11150,
1044      6322, 6325, 6328,11150,11150, 6336, 6343, 2826, 2848, 2829,
1045      2854, 6346, 2816, 6349, 2817, 6354, 6357, 6364, 6367, 6375,
1046      6378, 6398, 6386, 6406, 6409, 6413, 6416, 6419, 6432,11150,
1047      6438, 2878, 3048, 6441, 6444, 6447, 6451, 2806, 2808, 6463,
1048
1049      6466, 6469, 6472, 2807, 2819, 2858, 6475,11150, 2848, 6478,
1050      6482, 2866, 2881, 2878, 2897, 2885, 2898, 2900, 2896, 2930,
1051      2923, 2934, 6490, 2917, 2928, 2985, 2930, 2925, 2941, 2946,
1052      2975, 3011, 2986, 2987, 3000, 6496, 3010, 3006, 6501, 3004,
1053      6504, 6509,11150, 6512, 3010, 3014, 3093,11150, 3100,11150,
1054      6515, 6518, 6523, 3043, 3089, 6534, 6538, 3081, 6546, 6553,
1055     11150, 3074, 3080, 6556, 3082, 6559, 6565, 6577, 6581, 6584,
1056      6592, 6599, 6602, 3144,11150, 3143,11150, 6605, 3109, 6610,
1057      3122, 6613,11150, 6623, 6626, 6634, 6637, 6641, 6646,11150,
1058     11150, 6661, 6664, 6672, 6675, 6679,11150, 6682, 6685, 3276,
1059
1060      3372, 3201, 6693,11150, 3117, 3134, 6698, 3127, 3139, 3141,
1061      6706, 6712, 3583, 3658, 3132, 3167, 3176, 3181, 3188, 3206,
1062      3183, 3196, 3230, 3243, 3263, 6720, 3205, 3245, 3247, 3260,
1063      3259, 3265, 3259, 3261, 3295, 3297, 3301, 3306, 3312, 3311,
1064      3324, 3346, 6724, 3337, 6727, 6730,11150, 3331, 6733,11150,
1065     11150, 6739, 6742, 6751, 3333, 3370, 6757,11150,11150, 3379,
1066      6765, 6770, 3364, 6783, 6786, 6789, 6804, 6807,11150,11150,
1067      6815,11150, 6818,11150,11150, 6826, 6829, 6834,11150,11150,
1068      6837, 6840, 6848, 6855, 6859, 3507, 3666, 6867,11150, 6873,
1069      6876, 6886,11150,11150, 6882, 6896, 6904, 6907, 6915,11150,
1070
1071      3441, 3429, 3431, 3384, 6918, 3407, 3412, 3414, 6923, 6927,
1072      3428, 3432, 3476, 3434, 3460, 3684, 3450, 3491, 3475, 3490,
1073      3496,11150, 3518, 3507, 3516, 3522,11150, 6941, 3504, 3513,
1074      3510, 3529, 3538, 3569, 3582, 3566, 3575, 3575, 3589, 3598,
1075      3601, 3606, 3589, 6944, 3605, 6947, 6950, 6953, 6956, 6971,
1076     11150,11150, 6979,11150, 3624, 3611, 3624, 6982,11150,11150,
1077      3631, 6993, 6998, 7011,11150,11150, 7006, 7020, 7028, 7031,
1078      7034, 7037,11150,11150, 7052, 7055, 7063, 7066, 3644, 3646,
1079      3657, 3675, 3701, 3701, 7074, 7077, 7087, 3721, 3726, 7096,
1080     11150,11150, 3721, 3809, 7104, 3687, 7107, 7110, 3675, 3676,
1081
1082      7113,11150,11150, 3739, 3727, 3730, 3742, 3760, 3756, 3775,
1083      3793, 7126, 3784, 3812, 3830, 3815, 3802, 3821, 3845, 3833,
1084      7129, 3799, 3801, 3818, 3869, 3870, 3870, 3835, 3830, 3833,
1085      3862, 3912, 3915, 3902, 3867, 3879, 7132, 7135, 7138, 7148,
1086      7151, 3880, 7159,11150,11150, 3881, 3886, 3875, 3898, 7167,
1087     11150,11150, 7175,11150,11150, 7183, 7186, 7190, 7204, 7207,
1088      3925, 3933, 7215, 3966, 3977, 3911, 3922, 3953, 3928, 3942,
1089      3974, 7223, 7226, 3955, 3960, 3973, 3978, 3987, 7229, 7235,
1090      7238, 7248, 7257, 7260, 7263, 3974, 3994, 3998, 3999, 4005,
1091      4018, 4020, 4021, 7266, 7269, 4034, 4040,11150, 4041, 4053,
1092
1093      4058,11150, 4060, 7277, 4040, 4027, 4090,11150,11150, 4055,
1094      4059, 4060, 4046, 4108,11150,11150, 4069, 4068, 7280, 7284,
1095      7287, 7296,11150,11150, 4066, 4067, 4075, 7306, 4077, 7309,
1096      7312,11150,11150, 7320, 4099, 4127, 4120, 4133, 4124, 4137,
1097      4135, 4147, 4139, 4163,11150, 4156, 4166,11150, 7327,11150,
1098      7330, 4169, 4157, 4189, 4183, 4279, 7333, 7340, 7352, 7383,
1099      7430, 7360, 7363, 7366, 4206, 4226, 4240, 4208, 4229, 4248,
1100      4250, 4224, 7371,11150,11150, 4263, 4238, 4239, 4268, 4252,
1101      4263, 7394, 4232, 4235,11150, 4254, 4275, 4269, 4274,11150,
1102      4276, 4291, 7403, 7406,11150, 4290, 4291, 4302, 7409, 7413,
1103
1104      4294, 7421, 7450, 7441, 7459, 4360, 4328, 4363, 4334, 4369,
1105      4337, 4369, 4340, 4386, 4388, 4386, 4389, 7467, 4394, 4371,
1106      4404, 4374, 4401, 7476, 4413, 4421, 7496, 7543, 4413,11150,
1107     11150, 4391, 4418,11150,11150, 4405,11150, 4438, 4440,11150,
1108      4439, 4445, 7470,11150, 4449, 4412, 4415, 4467, 4472, 4434,
1109      4431, 4477, 4434, 4452, 4434, 7516, 4497, 4536, 4460, 7524,
1110     11150,11150, 7532, 4599, 4601,11150, 4511,11150, 4509,11150,
1111      4528,11150, 4528,11150,11150,11150,11150, 7489,11150,11150,
1112      4518,11150, 4519, 4580, 4538, 4562, 4549, 4556, 4548, 7554,
1113      4558, 4576, 4590, 4581,11150,11150,11150,11150,11150, 4649,
1114
1115      4557,11150,11150, 4665, 4568,11150, 7563, 7566, 7569, 4654,
1116      4593, 4693, 4604, 7574, 4706, 4638, 4723, 4658,11150,11150,
1117     11150,11150, 4655, 4666, 7577, 4699, 4689, 4708, 7592, 4712,
1118      4698, 4724, 4718,11150, 4704, 4750,11150, 4717, 4758, 7596,
1119      7599, 7607, 7614, 7625, 7628, 4729, 4742, 4762, 4748, 4757,
1120      4771, 7636, 7644, 4755, 4764, 4793, 4776, 4785, 4801, 4786,
1121      4788, 7639, 4810,11150, 4797,11150, 4811, 4796,11150, 4800,
1122     11150, 7654,11150,11150, 7662,11150,11150, 7670, 4825, 4852,
1123      4820, 4830, 4839, 4843, 4860, 4856, 7678,11150,11150, 4862,
1124      4871, 4868, 4870, 4879, 4877, 4928, 4928, 4936,11150, 4936,
1125
1126      4935, 4902, 4906, 4942, 4939, 4948, 4949, 4950, 4962, 4962,
1127      4968, 4981, 4981, 4982, 4989, 4989, 4994, 5001, 5001,11150,
1128     11150, 5021,11150,11150, 4976, 4980, 5000, 5024, 5015, 5035,
1129      5021, 5024, 5045, 5035, 5032, 5053, 5046, 5044, 5061, 5051,
1130      5049, 5066, 5088, 5105, 5109, 5089, 5091, 5098, 5098, 5115,
1131      5111, 5143, 5128, 5120, 5150, 5135, 5126, 5158, 5146, 5136,
1132      5174, 5166,11150,11150, 5155, 5162, 5163, 5169, 5190, 5184,
1133     11150, 5209, 5188,11150, 5217, 5192,11150, 5217, 5200,11150,
1134      5226, 5197, 5217, 5206, 5220,11150, 5225,11150, 5227,11150,
1135      5235,11150, 5247, 7686, 5250, 5273, 5255, 5273, 5256, 5257,
1136
1137      5259, 5260, 7689, 5341,11150, 5342,11150, 5347, 5346, 5354,
1138      5364, 5356, 5364,11150,11150,11150,11150,11150,11150, 5365,
1139      5423, 5447, 5455, 5362, 5374, 5504, 5588, 5438, 5472, 5520,
1140      5535, 5576, 5594, 5443, 5461, 5379, 5565, 5586, 5592, 5532,
1141      5640, 5659, 5660, 5482, 5483, 5663, 5694, 5603, 5672, 5429,
1142      5628, 5763, 5771, 5716, 5835, 5773, 5801, 5597, 5800, 5715,
1143      5862, 5865, 5880, 5855, 5857, 5878, 5912, 5943, 5945, 5650,
1144      5783, 5934, 6026, 5850, 5871, 5990, 5998, 5911, 5975, 5656,
1145      5978, 6015, 6033, 5977, 5993, 6065, 6168, 6071, 6161, 6053,
1146      6199, 5678, 5960, 6031, 6247, 6173, 6194, 5852, 6177, 6239,
1147
1148      6242, 6272, 5933, 7697, 7700,11150,11150, 7720, 7729, 7738,
1149      7747, 7756, 7765, 7774, 7783, 7792, 7801, 7810, 7819, 7828,
1150      7837, 7846, 7855, 7864, 7873, 7882, 7891, 7900, 7909, 7918,
1151      7927, 7936, 7945, 7954, 7963, 7972, 7981, 7990, 7999, 8008,
1152      8017, 8026, 8035, 8044, 8053, 8062, 8071, 8080, 8089, 8098,
1153      8107, 8116, 8125, 8134, 8143, 8152, 8161, 8170, 8179, 8188,
1154      8197, 8206, 8215, 8224, 8231, 8238, 8245, 8252, 8259, 8266,
1155      8273, 8280, 8287, 8294, 8301, 8308, 8315, 8322, 8329, 8336,
1156      8343, 8350, 8357, 8364, 8371, 8378, 8385, 8392, 8399, 8406,
1157      8415, 8422, 8427, 8434, 8439, 8446, 8451, 8458, 8463, 8470,
1158
1159      8475, 8482, 8487, 8494, 8499, 8506, 8511, 8518, 8523, 8530,
1160      8535, 8542, 8547, 8554, 8559, 8566, 8571, 8578, 8583, 8590,
1161      8595, 8602, 8607, 8614, 8619, 8626, 8631, 8638, 8643, 8650,
1162      8655, 8662, 8667, 8674, 8679, 8686, 8691, 8698, 8703, 8710,
1163      8715, 8722, 8727, 8736, 8742, 8749, 8757, 8764, 8772, 8779,
1164      8787, 8794, 8802, 8809, 8817, 8824, 8832, 8839, 8847, 8854,
1165      8862, 8869, 8877, 8884, 8892, 8899, 8907, 8914, 8922, 8929,
1166      8937, 8944, 8952, 8959, 8967, 8974, 8982, 8989, 8997, 9005,
1167      9013, 9021, 9029, 9036, 9044, 9052, 9060, 9068, 9076, 9083,
1168      9091, 9098, 9106, 9114, 9121, 9129, 9138, 9144, 9151, 9159,
1169
1170      9167, 9175, 9183, 9191, 9198, 9206, 9213, 9221, 9228, 9236,
1171      9243, 9251, 9258, 9266, 9274, 9282, 9290, 9298, 9305, 9313,
1172      9321, 9329, 9336, 9344, 9351, 9359, 9366, 9374, 9381, 9389,
1173      9396, 9404, 9411, 9419, 9426, 9434, 9441, 9449, 9457, 9464,
1174      9472, 9479, 9487, 9494, 9502, 9510, 9517, 9525, 9534, 9543,
1175      9550, 9558, 9566, 9573, 9581, 9588, 9596, 9603, 9611, 9618,
1176      9625, 9633, 9640, 9648, 9656, 9663, 9671, 9678, 9686, 9694,
1177      9701, 9709, 9716, 9724, 9731, 9739, 9746, 9754, 9761, 9769,
1178      9776, 9784, 9791, 9799, 9806, 9814, 9822, 9829, 9837, 9844,
1179      9852, 9860, 9868, 9876, 9884, 9892, 9901, 9910, 9917, 9925,
1180
1181      9933, 9940, 9948, 9955, 9963, 9970, 9978, 9985, 9992,10000,
1182     10007,10015,10023,10031,10039,10046,10054,10062,10069,10077,
1183     10084,10092,10099,10107,10114,10122,10129,10137,10144,10152,
1184     10160,10168,10175,10183,10191,10199,10207,10214,10222,10230,
1185     10238,10246,10255,10264,10272,10280,10288,10295,10303,10310,
1186     10318,10326,10334,10342,10350,10358,10366,10374,10382,10390,
1187     10397,10405,10412,10420,10427,10434,10442,10449,10457,10464,
1188     10471,10479,10486,10494,10501,10509,10517,10525,10532,10540,
1189     10548,10556,10565,10574,10582,10590,10597,10604,10612,10620,
1190     10628,10636,10644,10651,10659,10666,10674,10681,10688,10696,
1191
1192     10703,10711,10718,10725,10732,10740,10747,10755,10763,10771,
1193     10779,10787,10795,10803,10812,10821,10829,10837,10844,10852,
1194     10860,10868,10876,10884,10891,10899,10906,10914,10921,10928,
1195     10936,10944,10952,10959,10966,10974,10982,10990,10998,11006,
1196     11014,11022,11030,11039,11048,11056,11063,11070,11078,11086,
1197     11095,11104,11113,11122,11131,11140
1198     } ;
1199
1200 static yyconst flex_int16_t yy_def[3557] =
1201     {   0,
1202      3108, 3108, 3109, 3109, 3109, 3109, 3110, 3110, 3111, 3111,
1203      3112, 3112, 3113, 3113, 3113, 3113, 3114, 3114, 3108, 3108,
1204      3115, 3115, 3116, 3116, 3116, 3116, 3108, 3108, 3116, 3116,
1205      3116, 3116, 3108, 3108, 3116, 3116, 3108, 3108, 3116, 3116,
1206      3116, 3116, 3117, 3117, 3118, 3118, 3108, 3108, 3118, 3118,
1207      3118, 3118, 3119, 3119, 3113, 3113, 3120, 3120, 3121, 3121,
1208      3108, 3108, 3121, 3121, 3121, 3121, 3122, 3122, 3123, 3123,
1209      3124, 3124, 3125, 3125, 3125, 3125, 3108, 3108, 3125, 3125,
1210      3125, 3125, 3108, 3108, 3125, 3125, 3108, 3108, 3125, 3125,
1211      3125, 3125, 3108, 3108, 3125, 3125, 3108, 3108, 3125, 3125,
1212
1213      3125, 3125, 3126, 3126, 3127, 3127, 3108, 3108, 3127, 3127,
1214      3127, 3127, 3128, 3128, 3129, 3129, 3108, 3108, 3129, 3129,
1215      3129, 3129, 3130, 3130, 3131, 3131, 3132, 3132, 3133, 3133,
1216      3134, 3134, 3135, 3135, 3108, 3108, 3135, 3135, 3135, 3135,
1217      3136, 3136, 3137, 3137, 3107,  145, 3138, 3138, 3139, 3139,
1218      3140, 3140, 3141, 3141, 3142, 3142, 3143, 3143, 3144, 3144,
1219      3145, 3145, 3146, 3146, 3108, 3108, 3146, 3146, 3146, 3146,
1220      3147, 3147, 3148, 3148, 3108, 3108, 3148, 3148, 3148, 3148,
1221      3149, 3149, 3150, 3150, 3108, 3108, 3150, 3150, 3150, 3150,
1222      3151, 3151, 3152, 3152, 3153, 3153, 3154, 3154, 3108, 3108,
1223
1224      3154, 3154, 3154, 3154, 3155, 3155, 3156, 3156, 3108, 3108,
1225      3156, 3156, 3156, 3156, 3157, 3157, 3158, 3158, 3108, 3108,
1226      3158, 3158, 3158, 3158, 3159, 3159, 3160, 3160, 3161, 3161,
1227      3162, 3162, 3108, 3108, 3162, 3162, 3162, 3162, 3163, 3163,
1228      3164, 3164, 3108, 3108, 3107, 3107, 3107, 3107, 3107, 3107,
1229      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1230      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1231      3107, 3107, 3107, 3107, 3107, 3165, 3107, 3107, 3165, 3107,
1232      3107, 3107,  282,  282,  284,  282,  285,  285, 3107, 3107,
1233      3107, 3166, 3107, 3107, 3166, 3107, 3107,  286,  285, 3107,
1234
1235      3107, 3107, 3167, 3107, 3107, 3167, 3167, 3167, 3107, 3107,
1236      3107, 3107, 3107, 3168, 3107, 3107, 3168, 3168, 3168, 3168,
1237      3168, 3107, 3107,  285,  285,  285, 3107, 3107, 3107, 3169,
1238      3107, 3107, 3169, 3169, 3169, 3107, 3107, 3107, 3107, 3107,
1239      3107, 3170, 3107, 3107, 3170, 3170, 3107, 3107,  286,  285,
1240       286,  351,  350,  350,  350,  350,  351,  357,  356,  355,
1241      3107, 3107, 3107, 3171, 3107, 3107, 3171, 3171, 3171, 3171,
1242      3107, 3107,  285,  285, 3107, 3107, 3107, 3172, 3107, 3107,
1243      3172, 3172, 3172, 3107, 3107,  285,  285, 3107, 3107, 3107,
1244      3173, 3107, 3107, 3173, 3173, 3107, 3107, 3107, 3107, 3107,
1245
1246      3107, 3174, 3107, 3107, 3174, 3174, 3107, 3107, 3107, 3107,
1247      3107, 3107, 3175, 3107, 3107, 3175, 3175, 3175, 3175, 3175,
1248      3107, 3107,  285,  423,  423, 3107, 3107, 3107, 3176, 3107,
1249      3107, 3176, 3176, 3176, 3107, 3107, 3107, 3107, 3107, 3107,
1250      3177, 3107, 3107, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1251      3177, 3107, 3107, 3107, 3107, 3107, 3107, 3178, 3107, 3107,
1252      3178, 3178, 3178, 3178, 3178, 3178, 3178, 3107, 3107, 3107,
1253      3107, 3107, 3107, 3179, 3107, 3107, 3179, 3179, 3107, 3107,
1254      3107, 3107, 3107, 3107, 3180, 3107, 3107, 3180, 3180, 3180,
1255      3107, 3107, 3107, 3107, 3107, 3107, 3181, 3107, 3107, 3181,
1256
1257      3181, 3181, 3181, 3107, 3107,  423,  285, 3107, 3107, 3107,
1258      3182, 3107, 3107, 3182, 3182, 3107, 3107,  285,  518,  518,
1259      3107, 3107, 3107, 3183, 3107, 3107, 3183, 3183, 3183, 3107,
1260      3107,  518,  518, 3107, 3107, 3107, 3184, 3107, 3107, 3184,
1261      3184, 3107, 3107, 3107, 3107, 3107, 3107, 3185, 3107, 3107,
1262      3185, 3185, 3107, 3107,  518,  518, 3107, 3107, 3107, 3186,
1263      3107, 3107, 3186, 3186, 3186, 3107, 3107,  518,  518, 3107,
1264      3107, 3107, 3187, 3107, 3107, 3187, 3187, 3187, 3187, 3187,
1265      3107, 3107,  285,  583,  583, 3107, 3107, 3107, 3188, 3107,
1266      3107, 3188, 3107, 3107, 3107, 3107, 3107, 3107, 3189, 3107,
1267
1268      3107, 3189, 3107, 3107,  583,  285, 3107, 3107, 3107, 3190,
1269      3107, 3107, 3190, 3190, 3107, 3107, 3107, 3107, 3191, 3107,
1270      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1271      3107, 3107, 3107, 3107, 3192, 3192, 3193, 3107, 3107, 3107,
1272      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1273      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1274      3194, 3194, 3195, 3107, 3196, 3196, 3196, 3196, 3107, 3197,
1275      3107, 3107, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198,
1276      3198, 3199, 3107, 3107, 3200, 3200, 3200, 3200, 3201, 3107,
1277      3202, 3202, 3202, 3203, 3107, 3107, 3107, 3107, 3107, 3107,
1278
1279      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3204,
1280      3204, 3204, 3204, 3204, 3205, 3107, 3206, 3206, 3206, 3206,
1281      3207, 3107, 3208, 3208, 3208, 3209, 3107, 3210, 3210, 3210,
1282      3211, 3107, 3212, 3212, 3212, 3212, 3212, 3212, 3213, 3107,
1283      3107, 3214, 3214, 3214, 3214, 3215, 3107, 3216, 3216, 3216,
1284      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1285      3216, 3217, 3107, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
1286      3218, 3219, 3107, 3220, 3220, 3220, 3221, 3107, 3222, 3222,
1287      3222, 3222, 3223, 3107, 3224, 3224, 3224, 3224, 3224, 3224,
1288      3225, 3107, 3226, 3226, 3226, 3226, 3227, 3107, 3107, 3228,
1289
1290      3228, 3228, 3228, 3228, 3229, 3107, 3230, 3230, 3230, 3231,
1291      3107, 3232, 3232, 3232, 3233, 3107, 3234, 3234, 3234, 3234,
1292      3235, 3107, 3236, 3236, 3236, 3236, 3236, 3236, 3237, 3107,
1293      3107, 3238, 3238, 3239, 3107, 3240, 3240, 3241, 3107, 3242,
1294      3242, 3242, 3243, 3244, 3107, 3244, 3107, 3107, 3107, 3245,
1295      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3246, 3247, 3247,
1296      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1297      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1298      3107, 3107, 3107, 3107, 3107, 3107, 3248, 3249, 3249, 3250,
1299      3107, 3107, 3250, 3107, 3251, 3251, 3107, 3252, 3107, 3107,
1300
1301      3252, 3252, 3252, 3252, 3252, 3252, 3253, 3253, 3107, 3254,
1302      3254, 3254, 3255, 3255, 3107, 3107, 3256, 3257, 3257, 3107,
1303      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1304      3107, 3258, 3107, 3107, 3258, 3258, 3259, 3259, 3260, 3107,
1305      3107, 3260, 3261, 3261, 3107, 3107, 3262, 3263, 3263, 3264,
1306      3264, 3265, 3265, 3266, 3266, 3266, 3107, 3107, 3266, 3266,
1307      3267, 3267, 3107, 3107, 3268, 3107, 3107, 3107, 3107, 3269,
1308      3269, 3270, 3270, 3107, 3107, 3270, 3107, 3107, 3270, 3270,
1309      3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271, 3272, 3272,
1310      3272, 3107, 3107, 3272, 3272, 3272, 3273, 3273, 3274, 3107,
1311
1312      3107, 3275, 3275, 3276, 3107, 3107, 3276, 3277, 3277, 3278,
1313      3107, 3107, 3278, 3278, 3278, 3279, 3279, 3280, 3280, 3280,
1314      3281, 3281, 3107, 3282, 3282, 3282, 3282, 3283, 3283, 3284,
1315      3107, 3107, 3285, 3285, 3286, 3286, 3287, 3287, 3288, 3288,
1316      3288, 3289, 3289, 3290, 3290, 3290, 3290, 3290, 3291, 3291,
1317      3107, 3292, 3293, 3293, 3107, 3107, 3294, 3294, 3107, 3107,
1318      3295, 3296, 3296, 3297, 3107, 3107, 3297, 3107, 3107, 3298,
1319      3107, 3107, 3107, 3107, 3107, 3107, 3299, 3107, 3300, 3107,
1320      3300, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1321      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1322
1323      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3301, 3107,
1324      3302, 3107, 3302, 3303, 3107, 3107, 3107, 3303, 3107, 3107,
1325      3304, 3107, 3304, 3305, 3107, 3107, 3107, 3107, 3107, 3305,
1326      3107, 3107, 3305, 3305, 3305, 3107, 3306, 3107, 3306, 3107,
1327      3307, 3307, 3307, 3107, 3308, 3107, 3308, 3107, 3107, 3107,
1328      3309, 3107, 3310, 3107, 3310, 3107, 3107, 3107, 3107, 3107,
1329      3107, 3107, 3107, 3107, 3107, 3107, 3311, 3107, 3107, 3107,
1330      3311, 3311, 3107, 3312, 3107, 3312, 3313, 3107, 3107, 3107,
1331      3313, 3107, 3314, 3107, 3314, 3107, 3107, 3107, 3315, 3107,
1332      3316, 3107, 3316, 3317, 3317, 3107, 3318, 3107, 3318, 3319,
1333
1334      3319, 3319, 3107, 3107, 3107, 3319, 3319, 3107, 3320, 3107,
1335      3320, 3107, 3107, 3321, 3107, 3107, 3107, 3107, 3107, 3107,
1336      3107, 3322, 3107, 3322, 3323, 3323, 3323, 3323, 3107, 3107,
1337      3107, 3323, 3107, 3107, 3107, 3107, 3107, 3323, 3323, 3323,
1338      3323, 3323, 3323, 3323, 3107, 3324, 3107, 3324, 3325, 3325,
1339      3325, 3325, 3107, 3107, 3107, 3107, 3107, 3325, 3325, 3107,
1340      3326, 3107, 3326, 3327, 3107, 3107, 3107, 3107, 3328, 3107,
1341      3328, 3329, 3107, 3107, 3107, 3329, 3107, 3330, 3107, 3330,
1342      3331, 3107, 3107, 3107, 3331, 3331, 3331, 3107, 3332, 3107,
1343      3332, 3107, 3107, 3107, 3107, 3333, 3107, 3334, 3107, 3334,
1344
1345      3107, 3107, 3107, 3335, 3335, 3107, 3107, 3335, 3107, 3336,
1346      3107, 3336, 3337, 3107, 3107, 3107, 3107, 3338, 3107, 3338,
1347      3107, 3107, 3107, 3107, 3107, 3339, 3107, 3339, 3107, 3107,
1348      3340, 3340, 3107, 3107, 3107, 3341, 3107, 3341, 3342, 3342,
1349      3342, 3342, 3342, 3107, 3343, 3107, 3343, 3107, 3344, 3107,
1350      3345, 3107, 3345, 3107, 3107, 3107, 3107, 3346, 3107, 3346,
1351      3107, 3107, 3107, 3347, 3107, 3348, 3107, 3348, 3349, 3350,
1352      3107, 3107, 3107, 3107, 3107, 3351, 3352, 3107, 3107, 3107,
1353      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1354      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1355
1356      3107, 3107, 3107, 3107, 3107, 3353, 3107, 3107, 3354, 3107,
1357      3355, 3356, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1358      3356, 3107, 3107, 3356, 3357, 3107, 3358, 3107, 3107, 3358,
1359      3359, 3360, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1360      3107, 3107, 3107, 3107, 3107, 3361, 3361, 3107, 3107, 3362,
1361      3363, 3363, 3364, 3107, 3107, 3365, 3107, 3107, 3366, 3367,
1362      3368, 3368, 3107, 3107, 3368, 3368, 3369, 3107, 3107, 3107,
1363      3107, 3370, 3371, 3371, 3371, 3371, 3107, 3107, 3107, 3107,
1364      3107, 3371, 3371, 3371, 3371, 3371, 3371, 3371, 3372, 3373,
1365      3373, 3373, 3373, 3107, 3107, 3107, 3373, 3373, 3374, 3375,
1366
1367      3376, 3377, 3377, 3378, 3379, 3379, 3379, 3379, 3380, 3107,
1368      3107, 3107, 3107, 3107, 3107, 3381, 3382, 3107, 3107, 3107,
1369      3107, 3383, 3383, 3107, 3107, 3107, 3383, 3384, 3385, 3386,
1370      3107, 3107, 3107, 3107, 3107, 3107, 3387, 3107, 3107, 3107,
1371      3388, 3388, 3107, 3107, 3107, 3389, 3390, 3107, 3107, 3390,
1372      3390, 3390, 3391, 3107, 3392, 3393, 3394, 3395, 3396, 3397,
1373      3398, 3398, 3107, 3398, 3107, 3107, 3107, 3399, 3400, 3107,
1374      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1375      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1376      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1377
1378      3401, 3107, 3107, 3107, 3402, 3107, 3403, 3404, 3107, 3107,
1379      3107, 3404, 3107, 3107, 3107, 3404, 3405, 3107, 3406, 3107,
1380      3107, 3107, 3107, 3107, 3407, 3408, 3107, 3107, 3107, 3107,
1381      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3409, 3107,
1382      3107, 3107, 3107, 3107, 3410, 3411, 3411, 3412, 3107, 3107,
1383      3107, 3413, 3107, 3107, 3107, 3414, 3415, 3416, 3416, 3107,
1384      3107, 3107, 3107, 3107, 3107, 3107, 3416, 3417, 3107, 3107,
1385      3107, 3107, 3107, 3418, 3419, 3107, 3107, 3419, 3419, 3107,
1386      3107, 3107, 3107, 3107, 3419, 3419, 3419, 3419, 3419, 3419,
1387      3420, 3421, 3107, 3107, 3421, 3421, 3107, 3107, 3421, 3422,
1388
1389      3423, 3424, 3425, 3425, 3426, 3427, 3427, 3427, 3107, 3107,
1390      3427, 3428, 3429, 3430, 3107, 3431, 3431, 3431, 3432, 3433,
1391      3434, 3435, 3436, 3436, 3437, 3438, 3107, 3107, 3107, 3438,
1392      3438, 3438, 3439, 3107, 3107, 3107, 3440, 3441, 3107, 3107,
1393      3442, 3443, 3444, 3444, 3107, 3107, 3445, 3446, 3107, 3107,
1394      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1395      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1396      3107, 3107, 3107, 3107, 3447, 3448, 3107, 3449, 3450, 3450,
1397      3450, 3451, 3452, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1398      3107, 3107, 3107, 3107, 3453, 3454, 3107, 3107, 3107, 3107,
1399
1400      3107, 3107, 3107, 3107, 3107, 3455, 3107, 3107, 3107, 3456,
1401      3457, 3107, 3107, 3458, 3459, 3107, 3107, 3460, 3461, 3461,
1402      3107, 3107, 3107, 3107, 3107, 3107, 3461, 3107, 3107, 3107,
1403      3107, 3462, 3463, 3107, 3107, 3107, 3107, 3107, 3463, 3107,
1404      3107, 3107, 3107, 3107, 3463, 3463, 3463, 3463, 3107, 3107,
1405      3464, 3465, 3107, 3107, 3107, 3107, 3107, 3465, 3107, 3107,
1406      3107, 3465, 3107, 3107, 3466, 3467, 3468, 3468, 3469, 3470,
1407      3470, 3470, 3107, 3107, 3107, 3470, 3107, 3107, 3471, 3472,
1408      3107, 3107, 3107, 3107, 3107, 3473, 3474, 3475, 3476, 3477,
1409      3107, 3107, 3107, 3107, 3478, 3479, 3479, 3479, 3479, 3480,
1410
1411      3107, 3107, 3107, 3107, 3481, 3482, 3107, 3107, 3107, 3107,
1412      3107, 3483, 3484, 3484, 3107, 3107, 3107, 3485, 3107, 3107,
1413      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1414      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1415      3107, 3486, 3487, 3107, 3107, 3107, 3488, 3107, 3107, 3488,
1416      3489, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1417      3107, 3107, 3107, 3490, 3107, 3107, 3107, 3107, 3107, 3107,
1418      3107, 3107, 3107, 3107, 3107, 3491, 3107, 3107, 3107, 3107,
1419      3107, 3492, 3107, 3107, 3107, 3107, 3107, 3493, 3494, 3494,
1420      3107, 3107, 3494, 3107, 3495, 3496, 3107, 3107, 3107, 3496,
1421
1422      3107, 3107, 3107, 3107, 3107, 3496, 3496, 3496, 3107, 3107,
1423      3107, 3497, 3498, 3107, 3107, 3107, 3498, 3498, 3499, 3500,
1424      3501, 3107, 3107, 3502, 3503, 3107, 3107, 3503, 3503, 3107,
1425      3107, 3503, 3504, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1426      3107, 3107, 3505, 3506, 3507, 3508, 3509, 3107, 3107, 3107,
1427      3107, 3107, 3107, 3510, 3511, 3511, 3511, 3511, 3512, 3107,
1428      3513, 3514, 3515, 3516, 3516, 3107, 3107, 3107, 3107, 3517,
1429      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1430      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3518,
1431      3519, 3107, 3520, 3107, 3107, 3107, 3520, 3107, 3107, 3107,
1432
1433      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1434      3107, 3107, 3521, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1435      3107, 3107, 3107, 3107, 3107, 3107, 3522, 3107, 3107, 3107,
1436      3523, 3524, 3525, 3525, 3107, 3107, 3107, 3107, 3525, 3107,
1437      3526, 3527, 3527, 3107, 3107, 3107, 3527, 3527, 3527, 3528,
1438      3529, 3529, 3529, 3530, 3107, 3107, 3531, 3107, 3107, 3107,
1439      3532, 3533, 3107, 3107, 3107, 3533, 3533, 3107, 3107, 3107,
1440      3107, 3533, 3534, 3107, 3535, 3536, 3537, 3538, 3539, 3540,
1441      3107, 3107, 3541, 3541, 3541, 3542, 3107, 3543, 3107, 3107,
1442      3544, 3545, 3545, 3107, 3546, 3107, 3107, 3107, 3107, 3107,
1443
1444      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3547, 3107,
1445      3107, 3548, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1446      3107, 3107, 3549, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1447      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1448      3550, 3107, 3107, 3524, 3525, 3525, 3107, 3107, 3107, 3107,
1449      3525, 3107, 3526, 3527, 3527, 3107, 3107, 3527, 3527, 3107,
1450      3107, 3529, 3529, 3529, 3530, 3107, 3107, 3532, 3107, 3107,
1451      3533, 3533, 3533, 3107, 3107, 3107, 3107, 3533, 3534, 3107,
1452      3535, 3107, 3107, 3107, 3107, 3538, 3539, 3540, 3107, 3107,
1453      3107, 3107, 3107, 3541, 3541, 3107, 3107, 3107, 3543, 3544,
1454
1455      3545, 3545, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1456      3547, 3107, 3107, 3107, 3548, 3107, 3107, 3107, 3107, 3107,
1457      3107, 3107, 3107, 3107, 3107, 3549, 3107, 3107, 3107, 3107,
1458      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1459      3107, 3107, 3107, 3107, 3550, 3107, 3107, 3525, 3525, 3107,
1460      3107, 3107, 3107, 3526, 3527, 3527, 3107, 3107, 3107, 3527,
1461      3107, 3107, 3529, 3529, 3107, 3107, 3530, 3107, 3107, 3107,
1462      3107, 3107, 3107, 3107, 3107, 3533, 3533, 3533, 3107, 3107,
1463      3107, 3107, 3534, 3535, 3107, 3107, 3107, 3107, 3107, 3539,
1464      3540, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1465
1466      3544, 3545, 3545, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1467      3107, 3107, 3107, 3107, 3107, 3107, 3548, 3107, 3107, 3107,
1468      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3549, 3107, 3107,
1469      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1470      3107, 3107, 3107, 3107, 3107, 3550, 3525, 3107, 3107, 3107,
1471      3107, 3107, 3107, 3107, 3527, 3527, 3527, 3107, 3107, 3107,
1472      3529, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3533, 3533,
1473      3533, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1474      3107, 3107, 3107, 3107, 3539, 3540, 3107, 3107, 3107, 3107,
1475      3107, 3107, 3544, 3545, 3545, 3107, 3107, 3107, 3107, 3107,
1476
1477      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1478      3107, 3548, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1479      3549, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1480      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3550, 3107,
1481      3107, 3525, 3107, 3107, 3107, 3527, 3527, 3527, 3529, 3107,
1482      3107, 3107, 3107, 3107, 3107, 3533, 3107, 3107, 3533, 3107,
1483      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1484      3107, 3539, 3540, 3107, 3107, 3107, 3107, 3544, 3545, 3545,
1485      3545, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1486      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1487
1488      3107, 3107, 3107, 3549, 3107, 3107, 3107, 3107, 3107, 3107,
1489      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1490      3550, 3107, 3107, 3107, 3525, 3527, 3527, 3527, 3529, 3533,
1491      3107, 3107, 3107, 3533, 3107, 3107, 3107, 3107, 3107, 3107,
1492      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1493      3540, 3107, 3107, 3107, 3107, 3544, 3545, 3545, 3545, 3551,
1494      3552, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1495      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1496      3107, 3549, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1497      3107, 3107, 3107, 3107, 3107, 3525, 3527, 3527, 3107, 3107,
1498
1499      3529, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1500      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3540, 3107, 3107,
1501      3107, 3107, 3544, 3545, 3553, 3554, 3551, 3552, 3107, 3107,
1502      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1503      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1504      3107, 3107, 3525, 3527, 3527, 3107, 3107, 3107, 3529, 3107,
1505      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1506      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1507      3107, 3107, 3107, 3544, 3553, 3545, 3555, 3554, 3556, 3545,
1508      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1509
1510      3107, 3107, 3107, 3107, 3107, 3107, 3525, 3527, 3527, 3107,
1511      3107, 3107, 3107, 3529, 3107, 3107, 3107, 3107, 3107, 3107,
1512      3107, 3107, 3107, 3107, 3544, 3555, 3107, 3556, 3545, 3107,
1513      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1514      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1515      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1516      3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1517      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1518      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1519      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3544, 3107, 3107,
1520
1521      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1522      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1523      3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1524      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1525      3107, 3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1526      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1527      3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1528      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1529      3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1530      3107, 3107, 3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107,
1531
1532      3107, 3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1533      3107, 3544, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3544,
1534      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1535      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1536      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1537      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1538      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1539      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1540      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1541      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1542
1543      3544, 3544, 3544, 3544, 3544, 3107,    0, 3107, 3107, 3107,
1544      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1545      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1546      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1547      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1548      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1549      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1550      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1551      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1552      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1553
1554      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1555      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1556      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1557      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1558      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1559      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1560      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1561      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1562      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1563      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1564
1565      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1566      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1567      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1568      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1569      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1570      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1571      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1572      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1573      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1574      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1575
1576      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1577      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1578      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1579      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1580      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1581      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1582      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1583      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1584      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1585      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1586
1587      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1588      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1589      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1590      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1591      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1592      3107, 3107, 3107, 3107, 3107, 3107
1593     } ;
1594
1595 static yyconst flex_int16_t yy_nxt[11225] =
1596     {   0,
1597      3107,  248,  249,  248,  248,  249,  248,  248,  249,  248,
1598       248,  249,  248,  253,  249,  253,  259,  250,  256,  259,
1599       250,  256, 3107,  251, 3107,  257,  251, 3107,  257,  254,
1600       253,  249,  253,  619,  260,  262,  263,  260,  262,  263,
1601       264,  265,  663,  264,  265,  619,  254,  269,  270,  620,
1602       266,  262,  263,  266,  267,  622,  264,  262,  263,  652,
1603       267,  621,  264,  269,  270, 3107,  266,  249,  249,  249,
1604       789,  621,  266,  249,  249,  249,  281,  249,  281,  281,
1605       249,  281,  790,  272,  281,  249,  281,  640, 1690,  272,
1606       694,  271,  282, 1250,  655,  282,  618,  618,  618, 1251,
1607
1608       283,  618,  618,  618,  618,  618,  618,  271,  273,  274,
1609       249,  274,  273,  273,  273,  273,  273,  273,  273,  275,
1610       273,  273,  273,  650,  273,  277,  273,  278,  273,  281,
1611       249,  281,  249,  249,  249,  249,  249,  249,  651,  281,
1612       249,  281,  281,  249,  281,  283,  656,  645,  284,  622,
1613       655,  284,  863,  273,  273,  282,  622,  622,  282,  281,
1614       249,  281,  618,  618,  618,  621,  618,  618,  618,  618,
1615       618,  618,  621,  621,  682,  285,  864,  279,  273,  274,
1616       249,  274,  273,  273,  273,  273,  273,  273,  273,  275,
1617       273,  273,  273, 1692,  273,  277,  273,  278,  273,  281,
1618
1619       249,  281,  249,  249,  249,  249,  249,  249,  627,  281,
1620       249,  281,  281,  249,  281,  285,  633,  694,  286,  755,
1621       921,  286,  756,  273,  273,  283,  683,  695,  283,  249,
1622       249,  249,  249,  249,  249,  281,  249,  281,  281,  249,
1623       281,  281,  249,  281,  922,  287,  795,  279,  287,  622,
1624       628,  285,  750,  796,  285,  704,  629,  288,  281,  249,
1625       281,  630,  618,  618,  618,  621,  631,  618,  618,  618,
1626       618,  618,  618,  751,  288,  289,  290,  249,  290,  289,
1627       289,  289,  289,  289,  289,  289,  291,  289,  289,  289,
1628       680,  289,  293,  289,  294,  289,  297,  249,  297,  297,
1629
1630       249,  297,  249,  249,  249,  681,  249,  249,  249,  297,
1631       249,  297,  298,  805,  851,  298, 1695,  852,  286,  676,
1632       289,  289,  286,  677, 3107,  298,  637,  678,  295,  289,
1633       290,  249,  290,  289,  289,  289,  289,  289,  289,  289,
1634       291,  289,  289,  289,  622,  289,  293,  289,  294,  289,
1635       297,  249,  297,  297,  249,  297,  297,  249,  297,  757,
1636       621,  644,  262,  263,  803,  657,  298,  264, 3107,  299,
1637      1696,  804,  299,  758,  289,  289,  683,  309,  658,  682,
1638       651,  845,  295,  300,  301,  249,  301,  300,  300,  300,
1639       300,  300,  300,  300,  302,  300,  300,  300,  838,  300,
1640
1641       304,  300,  305,  300, 1699,  622,  310,  650,  323,  249,
1642       323,  323,  249,  323,  249,  249,  249,  894,  262,  263,
1643       659,  621,  651,  264,  324,  669,  875,  324,  300,  300,
1644       325,  655,  670,  309,  870,  639,  306,  715,  871,  307,
1645       876,  621,  618,  618,  618, 1701,  308,  300,  301,  249,
1646       301,  300,  300,  300,  300,  300,  300,  300,  302,  300,
1647       300,  300,  310,  300,  304,  300,  305,  300,  249,  249,
1648       249,  323,  249,  323,  323,  249,  323,  880,  323,  249,
1649       323,  323,  249,  323,  325,  622,  622,  324, 3107,  683,
1650       324,  876,  300,  300,  326, 1703,  865,  326,  652,  866,
1651
1652       306,  621,  621,  307,  618,  618,  618,  618,  618,  618,
1653       308,  311,  312,  249,  312,  311,  311,  311,  311,  311,
1654       311,  311,  313,  311,  311,  311,  640,  311,  315,  311,
1655       316,  311,  337,  249,  337,  337,  249,  337,  348,  249,
1656       348,  880,  348,  249,  348,  348,  249,  348,  338, 1704,
1657       622,  338,  622,  622,  349,  925,  311,  311,  349,  689,
1658       639,  350,  618,  618,  618,  317,  621,  318,  621,  621,
1659       791,  319,  618,  618,  618,  655,  320,  321,  311,  312,
1660       249,  312,  311,  311,  311,  311,  311,  311,  311,  313,
1661       311,  311,  311,  652,  311,  315,  311,  316,  311,  348,
1662
1663       249,  348,  249,  249,  249,  249,  249,  249,  715,  348,
1664       249,  348,  348,  249,  348,  350,  703, 1706,  351,  645,
1665       622,  351,  657,  311,  311,  352,  698,  697,  352,  618,
1666       618,  618,  317,  700,  318,  655,  621,  707,  319,  618,
1667       618,  618,  721,  320,  321,  327,  328,  249,  328,  327,
1668       327,  327,  327,  327,  327,  327,  329,  327,  327,  327,
1669       655,  327,  331,  327,  332,  327,  348,  249,  348,  348,
1670       249,  348,  249,  249,  249,  880,  249,  249,  249,  348,
1671       249,  348,  353, 1707,  865,  353,  845,  879,  354,  930,
1672       327,  327,  354,  882,  683,  350,  866,  333,  618,  618,
1673
1674       618,  846,  721,  334,  618,  618,  618,  618,  618,  618,
1675       791, 1708,  335,  327,  328,  249,  328,  327,  327,  327,
1676       327,  327,  327,  327,  329,  327,  327,  327, 1713,  327,
1677       331,  327,  332,  327,  348,  249,  348,  249,  249,  249,
1678       249,  249,  249, 1716,  348,  249,  348,  348,  249,  348,
1679       350, 1717,  882,  355,  655,  879,  355,  622,  327,  327,
1680       353, 1718,  655,  353,  726,  333,  618,  618,  618, 1720,
1681      1723,  334,  815,  621,  618,  618,  618,  618,  618,  618,
1682       335,  339,  340,  249,  340,  339,  339,  339,  339,  339,
1683       339,  339,  341,  339,  339,  339, 1724,  339,  343,  339,
1684
1685       344,  339,  348,  249,  348,  348,  249,  348,  249,  249,
1686       249, 1726,  249,  249,  249,  348,  249,  348,  356,  622,
1687       644,  356,  622, 1730,  357,  838,  339,  339,  357,  731,
1688      1731,  358,  618,  618,  618,  621,  739,  345,  621,  618,
1689       618,  618,  618,  618,  618, 1732,  346,  339,  340,  249,
1690       340,  339,  339,  339,  339,  339,  339,  339,  341,  339,
1691       339,  339,  821,  339,  343,  339,  344,  339,  348,  249,
1692       348,  249,  249,  249,  249,  249,  249,  655,  348,  249,
1693       348,  348,  249,  348,  358,  740,  622,  359,  683,  863,
1694       359, 1734,  339,  339,  356,  622, 1563,  356,  348,  249,
1695
1696       348, 1745,  621,  345,  348,  249,  348,  618,  618,  618,
1697       644,  621,  346,  928,  360,  618,  618,  618,  694, 1746,
1698       360,  361,  362,  249,  362,  361,  361,  361,  361,  361,
1699       361,  361,  363,  361,  361,  361,  921,  361,  365,  361,
1700       366,  361,  372,  249,  372,  372,  249,  372,  249,  249,
1701       249,  880,  249,  249,  249,  921,  708,  622,  373, 1747,
1702       864,  373,  622,  759,  325,  931,  361,  361,  325,  746,
1703       622,  367,  699,  621,  797,  760,  761,  368,  621,  928,
1704      1749,  369,  618,  618,  618, 1750,  621,  370,  361,  362,
1705       249,  362,  361,  361,  361,  361,  361,  361,  361,  363,
1706
1707       361,  361,  361,  863,  361,  365,  361,  366,  361,  372,
1708       249,  372,  372,  249,  372,  372,  249,  372, 1751,  372,
1709       249,  372,  798,  622, 1752,  373,  655,  929,  373,  955,
1710       762,  374,  956,  361,  361,  374,  622,  622,  367,  621,
1711       618,  618,  618,  772,  368,  618,  618,  618,  369,  618,
1712       618,  618,  621,  621,  370,  375,  376,  249,  376,  375,
1713       375,  375,  375,  375,  375,  375,  377,  375,  375,  375,
1714      1753,  375,  379,  375,  380,  375,  385,  249,  385,  385,
1715       249,  385,  249,  249,  249, 1754,  249,  249,  249,  618,
1716       618,  618,  386,  622,  622,  386,  622, 1755,  325, 1756,
1717
1718       375,  375,  325,  777, 1757,  381,  618,  618,  618,  621,
1719       621,  382,  621,  618,  618,  618,  618,  618,  618,  618,
1720       618,  618,  383,  375,  376,  249,  376,  375,  375,  375,
1721       375,  375,  375,  375,  377,  375,  375,  375, 1759,  375,
1722       379,  375,  380,  375,  385,  249,  385,  385,  249,  385,
1723       385,  249,  385,  963,  385,  249,  385,  964,  622, 1391,
1724       386, 1760,  622,  386, 1065,  783,  387, 1065,  375,  375,
1725       387, 1369, 1392,  381,  621,  618,  618,  618,  621,  382,
1726       618,  618,  618,  618,  618,  618,  618,  618,  618, 1742,
1727       383,  388,  389,  249,  389,  388,  388,  388,  388,  388,
1728
1729       388,  388,  390,  388,  388,  388, 1761,  388,  392,  388,
1730       393,  388,  397,  249,  397,  397,  249,  397,  408,  249,
1731       408, 1762,  408,  249,  408,  422,  249,  422,  398,  622,
1732       622,  398, 1765, 1768,  409,  622,  388,  388,  409, 1769,
1733      1770,  423,  618,  618,  618,  621,  621,  394,  618,  618,
1734       618,  621,  395,  388,  389,  249,  389,  388,  388,  388,
1735       388,  388,  388,  388,  390,  388,  388,  388, 1771,  388,
1736       392,  388,  393,  388,  422,  249,  422,  249,  249,  249,
1737       249,  249,  249, 1772,  422,  249,  422,  422,  249,  422,
1738       423,  622,  622,  424,  622, 1776,  424, 1777,  388,  388,
1739
1740       423,  810, 1779,  423,  618,  618,  618,  621,  621,  394,
1741       621,  618,  618,  618,  395,  399,  400,  249,  400,  399,
1742       399,  399,  399,  399,  399,  399,  401,  399,  399,  399,
1743       921,  399,  403,  399,  404,  399,  422,  249,  422,  422,
1744       249,  422,  436,  249,  436, 1780,  436,  249,  436,  453,
1745       249,  453,  425, 1781,  929,  425, 1783, 1796,  437,  622,
1746       399,  399,  437, 1797,  622,  454,  618,  618,  618,  618,
1747       618,  618,  618,  618,  618,  621,  405,  618,  618,  618,
1748       621, 1798,  406,  399,  400,  249,  400,  399,  399,  399,
1749       399,  399,  399,  399,  401,  399,  399,  399, 1799,  399,
1750
1751       403,  399,  404,  399,  453,  249,  453,  469,  249,  469,
1752       469,  249,  469, 1800,  480,  249,  480,  480,  249,  480,
1753       454, 1803, 1804,  470,  622, 1805,  470, 1806,  399,  399,
1754       481,  834, 1811,  481,  618,  618,  618,  618,  618,  618,
1755       621,  618,  618,  618,  405,  618,  618,  618,  829, 1819,
1756       406,  410,  411,  249,  411,  410,  410,  410,  410,  410,
1757       410,  410,  412,  410,  410,  410, 1065,  410,  414,  410,
1758       415,  410,  492,  249,  492,  492,  249,  492,  505,  249,
1759       505, 1820,  505,  249,  505,  830, 1560, 1827,  493, 1065,
1760      1831,  493, 1833, 1402,  506, 1839,  410,  410,  506,  416,
1761
1762       683,  417,  618,  618,  618, 1067, 1392,  418,  618,  618,
1763       618,  618,  618,  618,  419, 1845, 1846,  420,  410,  411,
1764       249,  411,  410,  410,  410,  410,  410,  410,  410,  412,
1765       410,  410,  410, 1847,  410,  414,  410,  415,  410,  249,
1766       249,  249,  249,  249,  249,  505,  249,  505, 1848,  505,
1767       249,  505, 1852,  622, 1402,  325, 1858, 1862,  325, 1865,
1768       843,  506, 1867,  410,  410,  506,  416, 1426,  417,  621,
1769       849,  849,  849, 1868,  418,  849,  849,  849, 1870, 1069,
1770      1871,  419, 1872, 1876,  420,  426,  427,  249,  427,  426,
1771       426,  426,  426,  426,  426,  426,  428,  426,  426,  426,
1772
1773      1879,  426,  430,  426,  431,  426,  505,  249,  505,  505,
1774       249,  505,  517,  249,  517, 1881,  517,  249,  517,  249,
1775       249,  249,  507, 1888, 1896,  507,  872,  884,  518,  850,
1776       426,  426,  518,  873,  873,  519,  432,  884,  872,  874,
1777       885,  433, 1897, 1898,  873,  873, 1899, 1082, 1082, 1082,
1778       874,  885, 1901,  434,  426,  427,  249,  427,  426,  426,
1779       426,  426,  426,  426,  426,  428,  426,  426,  426, 1915,
1780       426,  430,  426,  431,  426,  249,  249,  249,  517,  249,
1781       517,  517,  249,  517, 1563,  517,  249,  517,  517,  249,
1782       517,  519, 1065, 1919,  518,  884, 1920,  518, 1921,  426,
1783
1784       426,  520,  873, 1924,  520,  432, 1926, 1927,  909, 1912,
1785       433, 1083, 1115, 1115, 1115, 1928, 1116, 1914, 1929, 1117,
1786      1930, 1931,  434,  438,  439,  249,  439,  438,  438,  438,
1787       438,  438,  438,  438,  440,  438,  438,  438,  441,  438,
1788       442,  438,  443,  438,  441,  441,  441,  441,  441,  441,
1789       441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
1790       441,  441,  441,  441,  441,  441,  441,  441,  438,  438,
1791       441,  444,  445,  446,  441,  441,  441,  441,  441,  447,
1792       441,  441,  448,  441,  441,  441,  449,  441,  450,  451,
1793       441,  441,  441,  441,  441,  441,  441,  455,  456,  249,
1794
1795       456,  455,  455,  455,  455,  455,  455,  455,  457,  455,
1796       455,  455, 1563,  455,  459,  455,  460,  455,  531,  249,
1797       531,  531,  249,  531,  249,  249,  249, 1934,  249,  249,
1798       249,  891,  891,  891,  532, 1935, 1922,  532, 1938, 1939,
1799       519, 1940,  455,  455,  519,  461,  462,  463,  892, 1082,
1800      1082, 1082, 1923,  464, 1913, 1941,  465, 1103, 1103, 1103,
1801       466, 1943, 1944,  467,  455,  456,  249,  456,  455,  455,
1802       455,  455,  455,  455,  455,  457,  455,  455,  455, 1947,
1803       455,  459,  455,  460,  455,  531,  249,  531,  531,  249,
1804       531,  531,  249,  531, 1950,  531,  249,  531,  899,  899,
1805
1806       899,  532, 1954, 1955,  532, 1958, 1959,  533, 1960,  455,
1807       455,  533,  461,  462,  463,  900, 1082, 1082, 1082, 1963,
1808       464, 1083, 1967,  465, 1103, 1103, 1103,  466, 1968, 1971,
1809       467,  471,  472,  249,  472,  471,  471,  471,  471,  471,
1810       471,  471,  473,  471,  471,  471, 1973,  471,  475,  471,
1811       476,  471,  543,  249,  543,  543,  249,  543,  554,  249,
1812       554, 1989,  554,  249,  554,  915,  915,  915,  544, 1226,
1813      1990,  544, 1991, 1992,  555, 1993,  471,  471,  555, 1227,
1814      1156,  477,  916, 1576, 1576, 1576, 1228,  478,  471,  472,
1815       249,  472,  471,  471,  471,  471,  471,  471,  471,  473,
1816
1817       471,  471,  471, 1994,  471,  475,  471,  476,  471,  249,
1818       249,  249,  249,  249,  249,  554,  249,  554, 1956,  554,
1819       249,  554,  933,  933,  933,  519, 1957, 1969,  519, 1577,
1820      1996,  555, 2000,  471,  471,  555, 2006, 2007,  477,  934,
1821      1579, 1579, 1579, 1970,  478,  482,  483,  249,  483,  482,
1822       482,  482,  482,  482,  482,  482,  484,  482,  482,  482,
1823      2008,  482,  486,  482,  487,  482,  554,  249,  554,  554,
1824       249,  554,  567,  249,  567, 1961,  567,  249,  567,  249,
1825       249,  249,  556, 1962, 2013,  556, 1580, 2017,  568, 2018,
1826       482,  482,  568, 2019,  488,  519, 1125, 1125, 1125, 2021,
1827
1828      1126,  489, 2025, 1127,  490,  482,  483,  249,  483,  482,
1829       482,  482,  482,  482,  482,  482,  484,  482,  482,  482,
1830      2029,  482,  486,  482,  487,  482,  249,  249,  249,  567,
1831       249,  567,  567,  249,  567, 2030,  567,  249,  567,  567,
1832       249,  567,  519, 1969, 2031,  568, 1922, 2032,  568, 2033,
1833       482,  482,  569, 2036,  488,  569, 1148, 1148, 1148, 1923,
1834      1149,  489, 1970, 1150,  490,  494,  495,  249,  495,  494,
1835       494,  494,  494,  494,  494,  494,  496,  494,  494,  494,
1836      2043,  494,  498,  494,  499,  494,  582,  249,  582,  582,
1837       249,  582,  249,  249,  249, 2045,  249,  249,  249,  582,
1838
1839       249,  582,  583, 2055, 2056,  583, 2057, 2058,  584, 2060,
1840       494,  494,  584, 1065,  500,  583, 1103, 1103, 1103, 2063,
1841      2066,  501, 2072, 2073,  502, 1583, 1583, 1583, 1586, 1586,
1842      1586,  503,  494,  495,  249,  495,  494,  494,  494,  494,
1843       494,  494,  494,  496,  494,  494,  494, 2074,  494,  498,
1844       494,  499,  494,  582,  249,  582,  582,  249,  582,  582,
1845       249,  582, 2075,  594,  249,  594,  594,  249,  594,  583,
1846      2077, 2079,  585, 2080, 2081,  585, 2085,  494,  494,  595,
1847      1156,  500,  595, 1168, 1168, 1168, 2089, 1169,  501, 2091,
1848      1170,  502, 1595, 1595, 1595, 1618, 1618, 1618,  503,  508,
1849
1850       509,  249,  509,  508,  508,  508,  508,  508,  508,  508,
1851       510,  508,  508,  508, 2092,  508,  512,  508,  513,  508,
1852       604,  249,  604,  604,  249,  604,  249,  249,  249, 2093,
1853       249,  249,  249,  604,  249,  604,  605, 2097, 2103,  605,
1854      2104, 2105,  325, 2106,  508,  508,  325, 2107, 2108,  605,
1855       514, 1178, 1178, 1178, 2109, 1179, 2110, 2111, 1180, 1630,
1856      1630, 1630, 1632, 1632, 1632,  515,  508,  509,  249,  509,
1857       508,  508,  508,  508,  508,  508,  508,  510,  508,  508,
1858       508, 2112,  508,  512,  508,  513,  508,  604,  249,  604,
1859       604,  249,  604,  604,  249,  604, 1563,  616,  249,  616,
1860
1861       616,  249,  616,  605, 2118, 1631,  606, 2119, 1580,  606,
1862      2120,  508,  508,  617, 2121, 3107,  617,  514,  694, 1563,
1863       652, 2133, 1186, 1186, 1186,  652, 1187, 2064,  695, 1188,
1864      2134, 2139,  515,  521,  522,  249,  522,  521,  521,  521,
1865       521,  521,  521,  521,  523,  521,  521,  521,  705,  521,
1866       525,  521,  526,  521,  653, 2135,  696,  940,  940,  940,
1867       654, 2140,  697, 2136,  706, 2065,  698,  655,  945,  945,
1868       945,  656,  699,  700,  941,  957,  957,  957,  521,  521,
1869       966,  966,  966,  694,  527,  946, 2142,  528, 1579, 1579,
1870      1579, 2143,  958,  701, 1576, 1576, 1576,  967, 2147,  529,
1871
1872       521,  522,  249,  522,  521,  521,  521,  521,  521,  521,
1873       521,  523,  521,  521,  521, 2148,  521,  525,  521,  526,
1874       521,  702, 2149,  968,  968,  968,  974,  974,  974, 2151,
1875       977,  977,  977, 2137, 1715,  655,  992,  992,  992,  649,
1876       969, 2138, 2152,  975, 2153,  521,  521,  978, 1000, 1000,
1877      1000,  527, 2154,  993,  528, 1203, 1203, 1203, 2157, 1204,
1878      2162, 2166, 1205, 2167, 2172, 1001,  529,  534,  535,  249,
1879       535,  534,  534,  534,  534,  534,  534,  534,  536,  534,
1880       534,  534, 2173,  534,  538,  534,  539,  534, 1005, 1005,
1881      1005, 1011, 1011, 1011, 1031, 1031, 1031, 1055, 1055, 1055,
1882
1883      1059, 1059, 1059, 2174, 2175, 1006, 2177, 2168, 1012, 2187,
1884      2198, 1032,  534,  534, 1056, 2169, 2199, 1060,  540, 1579,
1885      1579, 1579, 1563,  541,  534,  535,  249,  535,  534,  534,
1886       534,  534,  534,  534,  534,  536,  534,  534,  534, 2200,
1887       534,  538,  534,  539,  534, 1078, 1078, 1078, 1078, 1078,
1888      1078, 2204, 2205, 1110, 1110, 1110, 1110, 1110, 1110,  891,
1889       891,  891, 2206, 1080, 2170, 2192, 1080, 1563, 2209,  534,
1890       534, 1112, 2171, 2213, 1112,  540,  892, 1758, 1758, 1758,
1891       541,  545,  546,  249,  546,  545,  545,  545,  545,  545,
1892       545,  545,  547,  545,  545,  545, 2214,  545,  549,  545,
1893
1894       550,  545, 1120, 1120, 1120, 2215, 1081, 1120, 1120, 1120,
1895      2216,  899,  899,  899, 2193, 2217, 1113, 1128, 1128, 1128,
1896      1122, 1131, 1131, 1131, 2218, 1122,  545,  545,  900,  915,
1897       915,  915,  551, 2219, 1129, 1215, 1215, 1215, 1132, 1216,
1898      2220, 2221, 1217, 1583, 1583, 1583,  916,  552,  545,  546,
1899       249,  546,  545,  545,  545,  545,  545,  545,  545,  547,
1900       545,  545,  545, 2222,  545,  549,  545,  550,  545, 2237,
1901      2238, 1123, 1136, 1136, 1136, 2239, 2240, 1144, 1144, 1144,
1902      1144, 1144, 1144, 1136, 1136, 1136, 1152, 1152, 1152, 2245,
1903      1138, 2246, 2247,  545,  545, 1146, 2248, 2249, 1146,  551,
1904
1905      2250, 1138, 2251, 2254, 1154, 1218, 1218, 1218, 2255, 1219,
1906      2258, 2259, 1220, 2262,  552,  557,  558,  249,  558,  557,
1907       557,  557,  557,  557,  557,  557,  559,  557,  557,  557,
1908      1139,  557,  561,  557,  562,  557, 1152, 1152, 1152,  933,
1909       933,  933, 2263, 2264, 1147, 1173, 1173, 1173, 2265, 1173,
1910      1173, 1173, 2274, 2275, 1154, 2276,  934,  940,  940,  940,
1911       557,  557, 2277, 1175, 2279, 2281,  563, 1175, 2305,  564,
1912      1586, 1586, 1586, 1155,  941, 2306, 1763, 1763, 1763, 2308,
1913      2309,  565,  557,  558,  249,  558,  557,  557,  557,  557,
1914       557,  557,  557,  559,  557,  557,  557, 1563,  557,  561,
1915
1916       557,  562,  557, 1182, 1182, 1182, 1182, 1182, 1182,  945,
1917       945,  945, 1190, 1190, 1190, 1176, 1190, 1190, 1190, 2310,
1918      2311, 1184, 2315, 2316, 1184, 2317,  946,  557,  557, 2301,
1919      1192, 2318, 2319,  563, 1192, 2320,  564, 1229, 1229, 1229,
1920      1764, 1230, 2321, 2322, 1231, 1595, 1595, 1595,  565,  570,
1921       571,  249,  571,  570,  570,  570,  570,  570,  570,  570,
1922       572,  570,  570,  570, 2323,  570,  574,  570,  575,  570,
1923      2324, 2325, 1185, 1196, 1196, 1196, 2327, 1193, 1196, 1196,
1924      1196,  957,  957,  957, 2328, 1208, 1208, 1208, 1208, 1208,
1925      1208, 1198, 2331, 2332,  570,  570, 1198, 2333,  958, 1618,
1926
1927      1618, 1618,  576, 1210,  577, 2334, 1210,  578, 1630, 1630,
1928      1630,  579, 1632, 1632, 1632,  580,  570,  571,  249,  571,
1929       570,  570,  570,  570,  570,  570,  570,  572,  570,  570,
1930       570, 2335,  570,  574,  570,  575,  570,  966,  966,  966,
1931       968,  968,  968, 1199, 2329, 1221, 1221, 1221, 2338, 1211,
1932      1221, 1221, 1221, 2330,  967, 2339, 2340,  969,  974,  974,
1933       974,  570,  570, 1223,  977,  977,  977, 1563, 1223,  576,
1934      2336,  577, 2341, 2342,  578,  975, 2344, 2348,  579, 2337,
1935      2349,  978,  580,  586,  587,  249,  587,  586,  586,  586,
1936       586,  586,  586,  586,  588,  586,  586,  586, 2350,  586,
1937
1938       590,  586,  591,  586, 2302, 1233, 1233, 1233, 2351, 1234,
1939      2355, 1224, 1235, 1236, 1236, 1236, 1245, 1245, 1245, 1245,
1940      1245, 1245,  992,  992,  992, 1256, 1256, 1256,  586,  586,
1941      1237, 1253, 1253, 1253, 1247, 1254, 2356, 1247, 1255,  993,
1942      2360, 2363, 1257, 1265, 1265, 1265, 2364, 1266, 2367, 2379,
1943      1267, 2380,  592,  586,  587,  249,  587,  586,  586,  586,
1944       586,  586,  586,  586,  588,  586,  586,  586, 2383,  586,
1945       590,  586,  591,  586, 1260, 1260, 1260, 1248, 1000, 1000,
1946      1000, 2384, 1268, 1268, 1268, 2404, 2405, 1260, 1260, 1260,
1947      2406, 2407, 1262, 2408, 2417, 1001, 2418, 2419,  586,  586,
1948
1949      1270, 1268, 1268, 1268, 2420, 1262, 1273, 1273, 1273, 2421,
1950      1274, 2422, 2423, 1275, 1282, 1282, 1282, 2424, 1283, 1270,
1951      1563, 1284,  592,  596,  597,  249,  597,  596,  596,  596,
1952       596,  596,  596,  596,  598,  596,  596,  596, 1263,  596,
1953       600,  596,  601,  596, 1005, 1005, 1005, 1277, 1277, 1277,
1954      1011, 1011, 1011, 2425, 1277, 1277, 1277, 1288, 1288, 1288,
1955      1784, 1006, 1271, 2403, 2426, 1279, 1785, 1012,  596,  596,
1956      1786, 2427, 1279, 2429, 1787, 1290, 1766, 1766, 1766,  602,
1957       596,  597,  249,  597,  596,  596,  596,  596,  596,  596,
1958       596,  598,  596,  596,  596, 1065,  596,  600,  596,  601,
1959
1960       596, 1280, 2430, 1288, 1288, 1288, 1292, 1292, 1292, 2431,
1961      1294, 1294, 1294, 3107, 3107, 3107, 1297, 1297, 1297, 2432,
1962      2433, 1290, 1767, 1293, 2434,  596,  596, 1295, 2435, 2436,
1963      3107, 1830, 1830, 1830, 1299, 2401,  602,  607,  608,  249,
1964       608,  607,  607,  607,  607,  607,  607,  607,  609,  607,
1965       607,  607, 2437,  607,  611,  607,  612,  607, 1291, 2438,
1966      2439, 1297, 1297, 1297, 1302, 1302, 1302, 2440, 1801, 1801,
1967      1801, 2441, 1296, 1306, 1306, 1306, 1309, 1309, 1309, 1299,
1968      2442, 1303,  607,  607, 3107, 3107, 3107, 3107, 3107, 3107,
1969      1307, 1563, 2443,  613, 1311, 1314, 1314, 1314, 2444, 1315,
1970
1971      2445, 3107, 1316, 2447, 3107, 2455,  614,  607,  608,  249,
1972       608,  607,  607,  607,  607,  607,  607,  607,  609,  607,
1973       607,  607, 1300,  607,  611,  607,  612,  607, 2402, 1309,
1974      1309, 1309, 1802, 2456, 1304, 2457, 2461, 1031, 1031, 1031,
1975      1317, 1317, 1317, 1317, 1317, 1317, 1308, 1311, 1563, 1305,
1976      1563, 2496,  607,  607, 1032, 1321, 1321, 1321, 1319, 2498,
1977      1065, 1319, 2499,  613, 2500, 2504, 1312, 2505, 1323, 1323,
1978      1323, 2508, 1322, 1325, 1325, 1325,  614,  622, 1325, 1325,
1979      1325, 1335, 1335, 1335,  637, 1324, 1329, 1329, 1329, 2493,
1980      2494, 1327, 2495,  621,  638, 2509, 1327, 2506, 1320, 1337,
1981
1982      3107, 3107, 3107, 1330, 1925, 1925, 1925, 1333, 1333, 1333,
1983      2507, 2512, 1335, 1335, 1335, 2513, 2514, 3107, 1055, 1055,
1984      1055,  639,  640,  641, 1334, 1344, 1344, 1344,  642,  643,
1985      1337, 2479,  644,  645, 2515, 1056,  646, 2516,  647,  648,
1986       649, 2480, 2517, 1346, 1344, 1344, 1344, 2481, 2518, 1328,
1987      1331, 1350, 1350, 1350, 1350, 1350, 1350, 1354, 1354, 1354,
1988      2519, 1355, 1346, 2520, 1356, 1332, 1357, 1357, 1357, 1352,
1989      2522, 2523, 1352, 1357, 1357, 1357, 1059, 1059, 1059, 1365,
1990      1365, 1365, 2524, 1338, 1359, 1361, 1361, 1361, 2525, 1362,
1991      2526, 1359, 1363, 1060, 1365, 1365, 1365, 1367, 1078, 1078,
1992
1993      1078, 1078, 1078, 1078, 1078, 1078, 1078, 2411, 1347, 1404,
1994      1404, 1404, 1367, 1110, 1110, 1110, 1080, 2412, 1353, 1080,
1995      2413, 2527, 1080, 1110, 1110, 1110, 1405, 1110, 1110, 1110,
1996      2528, 1112, 2529, 2530, 1360, 1407, 1407, 1407, 3107, 3107,
1997      3107, 1112, 1115, 1115, 1115, 1112, 1116, 2531, 2532, 1117,
1998      2533, 1377, 1408, 2534, 2535, 3107, 2536, 2538, 1368, 1120,
1999      1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1125, 1125,
2000      1125, 2546, 1126, 2547, 2548, 1127, 1406, 1122, 2549, 2566,
2001      1122, 2567, 2414, 1122, 1128, 1128, 1128, 1413, 1413, 1413,
2002      2482, 1414, 2415, 2568, 1415, 2416, 1416, 1416, 1416, 1409,
2003
2004      2483, 1129, 1131, 1131, 1131, 2510, 2484, 1418, 1418, 1418,
2005      2569, 1419, 1411, 1417, 1420, 1422, 1422, 1422, 2511, 1132,
2006      1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1428,
2007      1428, 1428, 1423, 1144, 1144, 1144, 2570, 2571, 1138, 2582,
2008      1065, 1138, 2584, 2585, 1138, 2574, 1429, 1144, 1144, 1144,
2009      2576, 1146, 1144, 1144, 1144, 1148, 1148, 1148, 2575, 1149,
2010      2586, 2587, 1150, 2577, 2588, 1146, 1152, 1152, 1152, 2589,
2011      1146, 1152, 1152, 1152, 1433, 1433, 1433, 1788, 1168, 1168,
2012      1168, 2590, 1169, 1789, 1154, 1170, 1425, 1790, 2578, 1154,
2013      2591, 1791, 1434, 1448, 1448, 1448, 1173, 1173, 1173, 1431,
2014
2015      1173, 1173, 1173, 1173, 1173, 1173, 1182, 1182, 1182, 2592,
2016      1449, 1182, 1182, 1182, 1175, 1178, 1178, 1178, 1175, 1179,
2017      2593, 1175, 1180, 2596, 1184, 1182, 1182, 1182, 1563, 1184,
2018      1186, 1186, 1186, 2597, 1187, 2598, 2599, 1188, 1454, 1454,
2019      1454, 2600, 2601, 1184, 1190, 1190, 1190, 1190, 1190, 1190,
2020      1190, 1190, 1190, 2602, 2603, 1455, 1457, 1457, 1457, 3107,
2021      3107, 3107, 1192, 2579, 1450, 1192, 2605, 2606, 1192, 2607,
2022      1196, 1196, 1196, 1458, 2608, 2609, 3107, 1196, 1196, 1196,
2023      1196, 1196, 1196, 1463, 1463, 1463, 1453, 1459, 1198, 1203,
2024      1203, 1203, 2610, 1204, 2611, 1198, 1205, 2612, 1198, 2613,
2025
2026      1464, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
2027      1470, 1470, 1470, 2614, 1215, 1215, 1215, 1456, 1216, 1210,
2028      2615, 1217, 1210, 2616, 2617, 1210, 2618, 1471, 1218, 1218,
2029      1218, 2619, 1219, 2625, 2626, 1220, 1221, 1221, 1221, 1221,
2030      1221, 1221, 1221, 1221, 1221, 2627, 1460, 2628, 1229, 1229,
2031      1229, 2629, 1230, 2643, 1223, 1231, 2644, 1223, 2645, 2635,
2032      1223, 1477, 1477, 1477, 1233, 1233, 1233, 2637, 1234, 2636,
2033      2646, 1235, 1467, 1236, 1236, 1236, 2647, 2638, 1478, 1479,
2034      1479, 1479, 2648, 1480, 2652, 2653, 1481, 1245, 1245, 1245,
2035      1237, 1245, 1245, 1245, 1245, 1245, 1245, 1253, 1253, 1253,
2036
2037      2639, 1254, 2654, 2655, 1255, 1247, 1065, 1472, 2665, 1247,
2038      2640, 2641, 1247, 1256, 1256, 1256, 1494, 1494, 1494, 2666,
2039      1495, 2642, 2667, 1496, 1260, 1260, 1260, 1260, 1260, 1260,
2040      1257, 1260, 1260, 1260, 1265, 1265, 1265, 2668, 1266, 2669,
2041      2656, 1267, 1262, 2670, 2671, 1262, 1268, 1268, 1268, 1262,
2042      1268, 1268, 1268, 1268, 1268, 1268, 1273, 1273, 1273, 2672,
2043      1274, 1489, 2676, 1275, 1270, 1277, 1277, 1277, 1270, 2677,
2044      2678, 1270, 1277, 1277, 1277, 1277, 1277, 1277, 1288, 1288,
2045      1288, 2679, 1499, 1279, 1282, 1282, 1282, 2680, 1283, 2681,
2046      1279, 1284, 2683, 1279, 2684, 2685, 1290, 1288, 1288, 1288,
2047
2048      1288, 1288, 1288, 2686, 1292, 1292, 1292, 1510, 1510, 1510,
2049      2687, 1511, 2688, 2689, 1512, 1290, 2690, 2691, 1290, 2692,
2050      1501, 1293, 2696, 2697, 1504, 1294, 1294, 1294, 1513, 1513,
2051      1513, 2698, 1514, 2701, 2706, 1515, 1297, 1297, 1297, 1297,
2052      1297, 1297, 1295, 1297, 1297, 1297, 1302, 1302, 1302, 1519,
2053      1519, 1519, 2707, 1520, 1299, 2708, 1521, 1299, 2709, 2710,
2054      1509, 1299, 2711, 1303, 1306, 1306, 1306, 1524, 1524, 1524,
2055      2712, 1525, 2713, 2714, 1526, 1309, 1309, 1309, 1309, 1309,
2056      1309, 1307, 1309, 1309, 1309, 1314, 1314, 1314, 2715, 1315,
2057      2716, 2717, 1316, 1311, 2719, 2720, 1311, 1317, 1317, 1317,
2058
2059      1311, 1317, 1317, 1317, 1317, 1317, 1317, 1321, 1321, 1321,
2060      1517, 1323, 1323, 1323, 2721, 1319, 1531, 1531, 1531, 1319,
2061      1532, 2722, 1319, 1533, 1322, 1534, 1534, 1534, 1324, 1535,
2062      2729, 2730, 1536, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
2063      1325, 1325, 1329, 1329, 1329, 2731, 1528, 2732, 1538, 1538,
2064      1538, 1327, 1539, 2733, 1327, 1540, 2734, 1327, 2735, 1330,
2065      1333, 1333, 1333, 2736, 1530, 1543, 1543, 1543, 2737, 1544,
2066      2738, 2739, 1545, 1335, 1335, 1335, 2740, 1334, 1335, 1335,
2067      1335, 1335, 1335, 1335, 2741, 1548, 1548, 1548, 1344, 1344,
2068      1344, 1337, 1344, 1344, 1344, 2742, 1337, 2745, 1065, 1337,
2069
2070      2746, 1537, 1549, 1344, 1344, 1344, 1346, 1350, 1350, 1350,
2071      1346, 1350, 1350, 1350, 1350, 1350, 1350, 1357, 1357, 1357,
2072      2747, 1346, 1357, 1357, 1357, 1352, 1354, 1354, 1354, 1352,
2073      1355, 2748, 1352, 1356, 2749, 1359, 1357, 1357, 1357, 2750,
2074      1359, 2723, 2751, 1546, 1361, 1361, 1361, 2752, 1362, 2753,
2075      2754, 1363, 2755, 2759, 1359, 1365, 1365, 1365, 1365, 1365,
2076      1365, 1365, 1365, 1365, 1553, 2766, 2767, 1556, 1562, 1562,
2077      1562, 2768, 2769, 1367, 2770, 2771, 1367, 2772, 2773, 1367,
2078      1078, 1078, 1078, 1404, 1404, 1404, 1563, 1564, 1598, 1598,
2079      1598, 2774, 1599, 2775, 2776, 1600, 1557, 2777, 1080, 2780,
2080
2081      1405, 1110, 1110, 1110, 1407, 1407, 1407, 1602, 1602, 1602,
2082      2781, 1603, 2782, 2783, 1604, 1120, 1120, 1120, 2786, 1112,
2083      1065, 1408, 1559, 1413, 1413, 1413, 2791, 1414, 2792, 2786,
2084      1415, 2793, 2787, 1122, 1416, 1416, 1416, 1609, 1609, 1609,
2085      2789, 1610, 2794, 2795, 1611, 2796, 1569, 2797, 1418, 1418,
2086      1418, 1417, 1419, 2798, 2799, 1420, 1422, 1422, 1422, 1601,
2087      2800, 1613, 1613, 1613, 1607, 1614, 2784, 2801, 1615, 1136,
2088      1136, 1136, 2802, 1423, 1428, 1428, 1428, 1620, 1620, 1620,
2089      2803, 1621, 2804, 2805, 1622, 2806, 2807, 1138, 1623, 1623,
2090      1623, 1429, 1144, 1144, 1144, 1433, 1433, 1433, 1640, 1640,
2091
2092      1640, 1448, 1448, 1448, 2808, 1624, 2809, 1642, 1642, 1642,
2093      1146, 1643, 2814, 1434, 1644, 1641, 2819, 2820, 1449, 1617,
2094      1173, 1173, 1173, 2810, 1182, 1182, 1182, 1454, 1454, 1454,
2095      1649, 1649, 1649, 2821, 1650, 2811, 2822, 1651, 1175, 2823,
2096      2824, 1625, 1184, 2786, 1455, 1190, 1190, 1190, 1457, 1457,
2097      1457, 1653, 1653, 1653, 2827, 1654, 2827, 2787, 1655, 1196,
2098      1196, 1196, 2812, 1192, 2786, 1458, 1463, 1463, 1463, 1660,
2099      1660, 1660, 2830, 1661, 2813, 2789, 1662, 1198, 1663, 1663,
2100      1663, 1563, 1564, 1464, 1645, 1665, 1665, 1665, 1648, 1208,
2101      1208, 1208, 1470, 1470, 1470, 1664, 1671, 1671, 1671, 1065,
2102
2103      1672, 2831, 1666, 1673, 2832, 1652, 2833, 1210, 2836, 1471,
2104      1221, 1221, 1221, 1676, 1676, 1676, 1477, 1477, 1477, 2839,
2105      1657, 2848, 1680, 1680, 1680, 2815, 1681, 2817, 1223, 1682,
2106      1677, 1667, 2851, 1478, 1479, 1479, 1479, 2816, 1480, 2818,
2107      2825, 1481, 1683, 1683, 1683, 1245, 1245, 1245, 1693, 1693,
2108      1693, 1697, 1697, 1697, 2834, 1668, 1260, 1260, 1260, 1684,
2109      1494, 1494, 1494, 1247, 1495, 1694, 2856, 1496, 1698, 1268,
2110      1268, 1268, 2835, 2837, 1262, 2846, 1674, 1277, 1277, 1277,
2111      1709, 1709, 1709, 1288, 1288, 1288, 2859, 1270, 2838, 1510,
2112      1510, 1510, 2860, 1511, 2847, 1279, 1512, 1710, 1513, 1513,
2113
2114      1513, 1290, 1514, 2861, 2827, 1515, 1297, 1297, 1297, 2863,
2115      1691, 1519, 1519, 1519, 2849, 1520, 2827, 2864, 1521, 2865,
2116      1700, 1524, 1524, 1524, 1299, 1525, 1711, 2854, 1526, 1309,
2117      1309, 1309, 2866, 2850, 1705, 1702, 1317, 1317, 1317, 2867,
2118      1712, 1531, 1531, 1531, 2857, 1532, 2855, 1311, 1533, 1534,
2119      1534, 1534, 2868, 1535, 1319, 2869, 1536, 1325, 1325, 1325,
2120      1538, 1538, 1538, 2858, 1539, 2870, 2871, 1540, 2881, 1543,
2121      1543, 1543, 1714, 1544, 2882, 1327, 1545, 1335, 1335, 1335,
2122      1548, 1548, 1548, 2883, 1727, 1727, 1727, 2884, 1728, 2885,
2123      1719, 1729, 2886, 1721, 2890, 1337, 2891, 1549, 1344, 1344,
2124
2125      1344, 1735, 1735, 1735, 1722, 1350, 1350, 1350, 1357, 1357,
2126      1357, 1739, 1739, 1739, 2892, 2893, 1346, 2894, 1736, 1365,
2127      1365, 1365, 2895, 1352, 1725, 2896, 1359, 2897, 1740, 2899,
2128      2900, 1562, 1562, 1562, 1078, 1078, 1078, 1367, 1773, 1773,
2129      1773, 1598, 1598, 1598, 2901, 1599, 2902, 1733, 1600, 1563,
2130      2903, 2904, 1080, 1110, 1110, 1110, 2908, 1602, 1602, 1602,
2131      1738, 1603, 2909, 2905, 1604, 1120, 1120, 1120, 1623, 1623,
2132      1623, 1112, 1737, 1609, 1609, 1609, 2910, 1610, 2906, 2911,
2133      1611, 1741, 1743, 1122, 1774, 1624, 1748, 1613, 1613, 1613,
2134      2907, 1614, 2912, 2913, 1615, 1136, 1136, 1136, 2914, 1744,
2135
2136      1620, 1620, 1620, 2915, 1621, 2916, 2917, 1622, 1792, 1792,
2137      1792, 2918, 1793, 1138, 2919, 1794, 1778, 1144, 1144, 1144,
2138      1775, 1801, 1801, 1801, 1763, 1763, 1763, 1640, 1640, 1640,
2139      1807, 1807, 1807, 2920, 1808, 1146, 2921, 1809, 1642, 1642,
2140      1642, 2923, 1643, 2924, 1641, 1644, 1173, 1173, 1173, 1812,
2141      1812, 1812, 1182, 1182, 1182, 1065, 1782, 2925, 1649, 1649,
2142      1649, 2926, 1650, 2927, 1175, 1651, 1813, 2928, 1795, 2929,
2143      1184, 1190, 1190, 1190, 1653, 1653, 1653, 2930, 1654, 2931,
2144      2922, 1655, 1196, 1196, 1196, 1764, 2932, 2933, 1802, 1192,
2145      1816, 1816, 1816, 1810, 1660, 1660, 1660, 2934, 1661, 1814,
2146
2147      1198, 1662, 1663, 1663, 1663, 2935, 2936, 1817, 1821, 1821,
2148      1821, 2937, 1822, 2938, 2939, 1823, 1665, 1665, 1665, 1664,
2149      1824, 1824, 1824, 2940, 1825, 2941, 2942, 1826, 2944, 1828,
2150      1828, 1828, 2945, 1666, 1671, 1671, 1671, 1815, 1672, 2946,
2151      1065, 1673, 1221, 1221, 1221, 2947, 1818, 1829, 1676, 1676,
2152      1676, 1834, 1834, 1834, 2948, 1835, 2949, 2950, 1836, 2943,
2153      1223, 1837, 1837, 1837, 2951, 1677, 1680, 1680, 1680, 2952,
2154      1681, 2953, 2954, 1682, 1683, 1683, 1683, 2955, 1838, 1840,
2155      1840, 1840, 2956, 1841, 2957, 2958, 1842, 2959, 1832, 2960,
2156      2961, 1684, 1843, 1843, 1843, 1849, 1849, 1849, 1245, 1245,
2157
2158      1245, 1693, 1693, 1693, 1853, 1853, 1853, 1065, 1854, 1844,
2159      2963, 1855, 1850, 1856, 1856, 1856, 1247, 2964, 1694, 1697,
2160      1697, 1697, 1859, 1859, 1859, 2965, 1860, 2962, 2966, 1861,
2161      1857, 1863, 1863, 1863, 2967, 2968, 1698, 1268, 1268, 1268,
2162      2969, 1277, 1277, 1277, 1709, 1709, 1709, 2970, 2971, 1864,
2163      1873, 1873, 1873, 2972, 1874, 1270, 2973, 1875, 2974, 1279,
2164      2975, 1710, 2976, 2977, 1851, 1877, 1877, 1877, 1297, 1297,
2165      1297, 2978, 2979, 1882, 1882, 1882, 1884, 1884, 1884, 3107,
2166      3107, 3107, 2980, 1878, 2982, 1065, 1299, 2983, 1866, 1869,
2167      1883, 2981, 2984, 1885, 2985, 2986, 3107, 1309, 1309, 1309,
2168
2169      1317, 1317, 1317, 1325, 1325, 1325, 1891, 1891, 1891, 1893,
2170      1893, 1893, 1335, 1335, 1335, 1311, 2987, 2988, 1319, 1880,
2171      2989, 1327, 2990, 1892, 2991, 2992, 1894, 1727, 1727, 1727,
2172      1337, 1728, 2993, 2995, 1729, 1344, 1344, 1344, 1735, 1735,
2173      1735, 2996, 2997, 1886, 2998, 1065, 1889, 1902, 1902, 1902,
2174      2999, 1903, 3000, 1346, 1904, 1736, 1350, 1350, 1350, 2994,
2175      3001, 1357, 1357, 1357, 1887, 1739, 1739, 1739, 1890, 1907,
2176      1907, 1907, 3002, 1908, 1352, 3004, 1909, 1895, 3005, 1359,
2177      3006, 3007, 1740, 1910, 1910, 1910, 1900, 1916, 1916, 1916,
2178      1078, 1078, 1078, 1758, 1758, 1758, 1932, 1932, 1932, 3008,
2179
2180      3009, 1911, 3010, 3011, 1917, 1763, 1763, 1763, 1080, 1933,
2181      1933, 1933, 1766, 1766, 1766, 1905, 1906, 1936, 1936, 1936,
2182      1937, 1937, 1937, 1773, 1773, 1773, 1110, 1110, 1110, 1945,
2183      1945, 1945, 1948, 1948, 1948, 1136, 1136, 1136, 1952, 1952,
2184      1952, 1792, 1792, 1792, 1112, 1793, 3014, 1946, 1794, 1949,
2185      3015, 1918, 3016, 1138, 3017, 1953, 1144, 1144, 1144, 3018,
2186      1965, 1965, 1965, 1801, 1801, 1801, 1972, 1972, 1972, 1974,
2187      1974, 1974, 3019, 1689, 1146, 1065, 1942, 1966, 1807, 1807,
2188      1807, 1065, 1808, 1065, 1065, 1809, 1975, 1173, 1173, 1173,
2189      1977, 1977, 1977, 1065, 1951, 1812, 1812, 1812, 1065, 1979,
2190
2191      1979, 1979, 1964, 1980, 1688, 1175, 1981, 1978, 1182, 1182,
2192      1182, 3020, 1813, 1983, 1983, 1983, 1816, 1816, 1816, 3021,
2193      1985, 1985, 1985, 1687, 1986, 3026, 1184, 1987, 1196, 1196,
2194      1196, 1984, 3022, 1817, 1821, 1821, 1821, 3027, 1822, 3038,
2195      1976, 1823, 1065, 1824, 1824, 1824, 1198, 1825, 1065, 3030,
2196      1826, 1828, 1828, 1828, 1830, 1830, 1830, 1065, 1221, 1221,
2197      1221, 1982, 1065, 1834, 1834, 1834, 1065, 1835, 1686, 1829,
2198      1836, 1837, 1837, 1837, 1065, 1988, 1223, 1997, 1997, 1997,
2199      1065, 1998, 3052, 3031, 1999, 1840, 1840, 1840, 1838, 1841,
2200      3023, 1065, 1842, 1843, 1843, 1843, 2001, 2001, 2001, 3036,
2201
2202      2002, 1065, 1065, 2003, 2004, 2004, 2004, 1849, 1849, 1849,
2203      1844, 2009, 2009, 2009, 3024, 2010, 1995, 3037, 2011, 3028,
2204      1685, 2005, 3025, 1065, 1850, 1245, 1245, 1245, 1853, 1853,
2205      1853, 3032, 1854, 3046, 3047, 1855, 1856, 1856, 1856, 1065,
2206      2014, 2014, 2014, 1247, 2015, 1679, 3033, 2016, 1859, 1859,
2207      1859, 1065, 1860, 1857, 1065, 1861, 1863, 1863, 1863, 1268,
2208      1268, 1268, 2022, 2022, 2022, 1277, 1277, 1277, 2026, 2026,
2209      2026, 1873, 1873, 1873, 1864, 1874, 2012, 1270, 1875, 2023,
2210      1877, 1877, 1877, 1279, 1065, 2027, 2034, 2034, 2034, 1882,
2211      1882, 1882, 2037, 2037, 2037, 1065, 2038, 3042, 1878, 2039,
2212
2213      1884, 1884, 1884, 3029, 2035, 1065, 1883, 1065, 2040, 2040,
2214      2040, 1065, 2041, 1065, 2028, 2042, 1065, 1885, 1309, 1309,
2215      1309, 1678, 1065, 2020, 1675, 3039, 2024, 1317, 1317, 1317,
2216      1325, 1325, 1325, 1891, 1891, 1891, 1311, 2048, 2048, 2048,
2217      3040, 2049, 3034, 1670, 2050, 1319, 3041, 1065, 1327, 3060,
2218      1892, 1893, 1893, 1893, 2051, 2051, 2051, 3050, 2052, 1065,
2219      3035, 2053, 1335, 1335, 1335, 1344, 1344, 1344, 1894, 1065,
2220      1902, 1902, 1902, 3048, 1903, 1065, 2046, 1904, 1065, 1065,
2221      1337, 3053, 1065, 1346, 2044, 1350, 1350, 1350, 1357, 1357,
2222      1357, 1065, 1907, 1907, 1907, 2047, 1908, 1065, 3072, 1909,
2223
2224      1910, 1910, 1910, 1352, 3049, 3043, 1359, 1916, 1916, 1916,
2225      2067, 2067, 2067, 1065, 2068, 3044, 3045, 2069, 1911, 1078,
2226      1078, 1078, 3082, 1669, 1917, 3062, 3051, 2054, 1659, 3094,
2227      2059, 2071, 2071, 2071, 1065, 1065, 2061, 1080, 2076, 2076,
2228      2076, 2062, 1925, 1925, 1925, 2078, 2078, 2078, 2082, 2082,
2229      2082, 1932, 1932, 1932, 1933, 1933, 1933, 2083, 2083, 2083,
2230      1936, 1936, 1936, 1937, 1937, 1937, 2086, 2086, 2086, 2087,
2231      2087, 2087, 2088, 2088, 2088, 1110, 1110, 1110, 1945, 1945,
2232      1945, 3056, 1065, 2070, 1948, 1948, 1948, 2094, 2094, 2094,
2233      1065, 2095, 1065, 1112, 2096, 1658, 1946, 2098, 2098, 2098,
2234
2235      1656, 1949, 1065, 2084, 1952, 1952, 1952, 2100, 2100, 2100,
2236      1647, 2101, 1646, 1639, 2102, 2099, 1144, 1144, 1144, 1065,
2237      1065, 1953, 1965, 1965, 1965, 3054, 2090, 3058, 2114, 2114,
2238      2114, 3073, 2115, 3055, 1146, 2116, 2117, 2117, 2117, 1966,
2239      1972, 1972, 1972, 2122, 2122, 2122, 1974, 1974, 1974, 2124,
2240      2124, 2124, 3061, 2125, 1065, 3059, 2126, 1173, 1173, 1173,
2241      1977, 1977, 1977, 1975, 1638, 2113, 2128, 2128, 2128, 1065,
2242      2129, 1065, 3063, 2130, 1065, 1175, 1065, 1978, 1979, 1979,
2243      1979, 1065, 1980, 1637, 1065, 1981, 1182, 1182, 1182, 2123,
2244      1065, 1983, 1983, 1983, 1985, 1985, 1985, 1065, 1986, 1065,
2245
2246      3057, 1987, 1636, 3076, 1184, 1196, 1196, 1196, 2127, 1984,
2247      1221, 1221, 1221, 1997, 1997, 1997, 3066, 1998, 3067, 3100,
2248      1999, 3064, 3080, 1198, 3077, 2001, 2001, 2001, 1223, 2002,
2249      1065, 1065, 2003, 2004, 2004, 2004, 3065, 2131, 2144, 2144,
2250      2144, 3104, 2145, 3068, 3074, 2146, 1635, 2009, 2009, 2009,
2251      2005, 2010, 1065, 1065, 2011, 1245, 1245, 1245, 2132, 2014,
2252      2014, 2014, 1065, 2015, 1065, 2141, 2016, 2155, 2155, 2155,
2253      2022, 2022, 2022, 1247, 2158, 2158, 2158, 3069, 2159, 1065,
2254      1634, 2160, 1277, 1277, 1277, 2156, 3081, 2023, 2026, 2026,
2255      2026, 2163, 2163, 2163, 1065, 2164, 1065, 1065, 2165, 3070,
2256
2257      1279, 3071, 2034, 2034, 2034, 2027, 2037, 2037, 2037, 1065,
2258      2038, 3095, 1065, 2039, 2040, 2040, 2040, 1065, 2041, 2150,
2259      2035, 2042, 1309, 1309, 1309, 1317, 1317, 1317, 1325, 1325,
2260      1325, 2048, 2048, 2048, 1065, 2049, 3075, 3086, 2050, 1633,
2261      1311, 3096, 2161, 1319, 3083, 1065, 1327, 2051, 2051, 2051,
2262      1065, 2052, 1065, 3087, 2053, 3078, 1335, 1335, 1335, 1629,
2263      2181, 2181, 2181, 3079, 2179, 3107, 3107, 3107, 3107, 3107,
2264      3107, 3084, 1065, 2176, 1337, 1628, 2180, 2182, 3107, 3107,
2265      3107, 1627, 3107, 1626, 1065, 3107, 1344, 1344, 1344, 3085,
2266      1065, 2178, 1350, 1350, 1350, 3107, 2189, 2189, 2189, 2191,
2267
2268      2191, 2191, 1619, 1616, 1346, 2194, 2194, 2194, 1612, 3092,
2269      1352, 2067, 2067, 2067, 2190, 2068, 2183, 1065, 2069, 3088,
2270      1078, 1078, 1078, 2071, 2071, 2071, 2196, 2196, 2196, 2197,
2271      2197, 2197, 2184, 2076, 2076, 2076, 3090, 2185, 1080, 2078,
2272      2078, 2078, 2201, 2201, 2201, 2202, 2202, 2202, 2203, 2203,
2273      2203, 2186, 2188, 2082, 2082, 2082, 2083, 2083, 2083, 2086,
2274      2086, 2086, 2087, 2087, 2087, 2088, 2088, 2088, 2207, 2207,
2275      2207, 2210, 2210, 2210, 2094, 2094, 2094, 1608, 2095, 2195,
2276      1065, 2096, 3107, 3107, 3107, 1606, 2208, 1065, 2211, 2098,
2277      2098, 2098, 1065, 2100, 2100, 2100, 1065, 2101, 1605, 3107,
2278
2279      2102, 1144, 1144, 1144, 2114, 2114, 2114, 2099, 2115, 2224,
2280      2225, 2116, 2226, 1065, 2230, 2231, 1597, 2232, 1065, 1146,
2281      2227, 1596, 3089, 2228, 3098, 2233, 3091, 2229, 2234, 2117,
2282      2117, 2117, 2235, 2236, 2236, 2236, 2122, 2122, 2122, 2124,
2283      2124, 2124, 1594, 2125, 3101, 3099, 2126, 1593, 2212, 1173,
2284      1173, 1173, 2128, 2128, 2128, 3093, 2129, 3097, 1065, 2130,
2285      1592, 1065, 2223, 2242, 2242, 2242, 1065, 1175, 1196, 1196,
2286      1196, 2252, 2252, 2252, 1221, 1221, 1221, 3104, 2144, 2144,
2287      2144, 2243, 2145, 1591, 1590, 2146, 1198, 2256, 2256, 2256,
2288      3102, 1065, 1223, 3103, 1589, 2241, 2260, 2260, 2260, 2155,
2289
2290      2155, 2155, 1588, 1587, 2257, 2266, 2266, 2266, 2158, 2158,
2291      2158, 1585, 2159, 1584, 2261, 2160, 1582, 2156, 1581, 2244,
2292      1578, 1575, 2267, 1277, 1277, 1277, 2269, 2269, 2269, 2163,
2293      2163, 2163, 1574, 2164, 2253, 1573, 2165, 3107, 3107, 3107,
2294      1572, 1279, 1571, 2270, 3107, 3107, 3107, 3107, 3107, 3107,
2295      2280, 2280, 2280, 1570, 3107, 2282, 2282, 2282, 2284, 2284,
2296      2284, 3107, 1568, 1567, 3107, 1317, 1317, 1317, 1325, 1325,
2297      1325, 1566, 2271, 2283, 2268, 2285, 1335, 1335, 1335, 2181,
2298      2181, 2181, 1565, 1319, 1558, 1555, 1327, 2292, 2292, 2292,
2299      1554, 1552, 2272, 1551, 1337, 1550, 2182, 1547, 2278, 2289,
2300
2301      2289, 2289, 1542, 2290, 2293, 2273, 2291, 3107, 3107, 3107,
2302      3107, 3107, 3107, 2288, 2296, 2296, 2296, 2298, 2298, 2298,
2303      1350, 1350, 1350, 1541, 3107, 2286, 1529, 3107, 1527, 2287,
2304      1523, 1522, 2297, 2189, 2189, 2189, 1518, 1516, 1352, 2191,
2305      2191, 2191, 2194, 2194, 2194, 2303, 2303, 2303, 2196, 2196,
2306      2196, 2190, 2197, 2197, 2197, 1508, 1507, 1065, 2294, 1506,
2307      1505, 2295, 1503, 2304, 2307, 2307, 2307, 2201, 2201, 2201,
2308      2202, 2202, 2202, 2203, 2203, 2203, 2207, 2207, 2207, 2210,
2309      2210, 2210, 1502, 2312, 2312, 2312, 2299, 2313, 1500, 1498,
2310      2314, 1144, 1144, 1144, 2208, 1497, 2211, 2236, 2236, 2236,
2311
2312      1493, 2300, 2343, 2343, 2343, 1173, 1173, 1173, 1492, 1146,
2313      2242, 2242, 2242, 2346, 2346, 2346, 2352, 2352, 2352, 2252,
2314      2252, 2252, 1491, 1175, 1221, 1221, 1221, 1490, 2243, 1488,
2315      1487, 2347, 1486, 2353, 1485, 2256, 2256, 2256, 1484, 2357,
2316      2357, 2357, 1223, 2358, 1483, 1482, 2359, 2361, 2361, 2361,
2317      1476, 2326, 2257, 1475, 2260, 2260, 2260, 2365, 2365, 2365,
2318      2266, 2266, 2266, 1474, 2362, 1473, 2368, 2368, 2368, 1469,
2319      2369, 2345, 2261, 2370, 2366, 1468, 1466, 2267, 2371, 2371,
2320      2371, 2354, 2269, 2269, 2269, 2373, 2373, 2373, 1465, 2374,
2321      1462, 1461, 2375, 3107, 3107, 3107, 2372, 1452, 1451, 2270,
2322
2323      3107, 3107, 3107, 3107, 3107, 3107, 2381, 2381, 2381, 1447,
2324      3107, 2280, 2280, 2280, 2282, 2282, 2282, 3107, 1446, 1445,
2325      3107, 1444, 1443, 2382, 2284, 2284, 2284, 2385, 2385, 2385,
2326      1442, 2386, 2283, 1441, 2387, 2388, 2388, 2388, 1325, 1325,
2327      1325, 2285, 1335, 1335, 1335, 2376, 1440, 2289, 2289, 2289,
2328      1439, 2290, 1438, 2389, 2291, 1437, 1327, 1436, 2377, 1435,
2329      1337, 2378, 2292, 2292, 2292, 2392, 2392, 2392, 1432, 2393,
2330      1430, 1427, 2394, 2395, 2395, 2395, 2397, 2397, 2397, 2293,
2331      2296, 2296, 2296, 2298, 2298, 2298, 2399, 2399, 2399, 1424,
2332      2396, 1421, 1412, 2398, 2303, 2303, 2303, 1410, 2297, 2307,
2333
2334      2307, 2307, 1403, 1401, 2400, 2390, 2391, 2409, 2409, 2409,
2335      1400, 1399, 2304, 2312, 2312, 2312, 1398, 2313, 1397, 1396,
2336      2314, 1144, 1144, 1144, 2410, 2343, 2343, 2343, 1173, 1173,
2337      1173, 2346, 2346, 2346, 2448, 2448, 2448, 1395, 1394, 1146,
2338      2352, 2352, 2352, 2450, 2450, 2450, 1175, 2451, 1393, 2347,
2339      2452, 2449, 2453, 2453, 2453, 1390, 1389, 2353, 2357, 2357,
2340      2357, 1388, 2358, 1387, 1386, 2359, 2361, 2361, 2361, 1385,
2341      2454, 2458, 2458, 2458, 1384, 2459, 1383, 1382, 2460, 1381,
2342      1380, 2428, 1379, 2362, 2462, 2462, 2462, 2365, 2365, 2365,
2343      2464, 2464, 2464, 1378, 2465, 1376, 1375, 2466, 1374, 2446,
2344
2345      1373, 2463, 1372, 1371, 2366, 2467, 2467, 2467, 2368, 2368,
2346      2368, 1370, 2369, 1065, 1364, 2370, 2371, 2371, 2371, 2373,
2347      2373, 2373, 2468, 2374, 1349, 1348, 2375, 3107, 3107, 3107,
2348      3107, 3107, 3107, 1343, 2372, 3107, 3107, 3107, 2381, 2381,
2349      2381, 2472, 2472, 2472, 3107, 2473, 1342, 3107, 2474, 2475,
2350      2475, 2475, 3107, 1341, 1340, 2382, 2477, 2477, 2477, 1339,
2351      2385, 2385, 2385, 1313, 2386, 1301, 2476, 2387, 2388, 2388,
2352      2388, 1287, 1286, 2478, 1325, 1325, 1325, 1335, 1335, 1335,
2353      1285, 2470, 2469, 2395, 2395, 2395, 2389, 2392, 2392, 2392,
2354      2471, 2393, 1327, 1281, 2394, 1337, 1276, 2487, 2487, 2487,
2355
2356      2396, 2488, 1272, 1264, 2489, 2397, 2397, 2397, 2490, 2490,
2357      2490, 1259, 2491, 1258, 1252, 2492, 2399, 2399, 2399, 2497,
2358      2497, 2497, 2398, 1249, 2409, 2409, 2409, 1244, 2501, 2501,
2359      2501, 1243, 2502, 1242, 2400, 2503, 1241, 1240, 2486, 1239,
2360      2485, 2410, 1144, 1144, 1144, 2537, 2537, 2537, 1173, 1173,
2361      1173, 2540, 2540, 2540, 2448, 2448, 2448, 2543, 2543, 2543,
2362      1146, 2544, 1238, 1232, 2545, 1225, 1175, 1214, 2541, 1213,
2363      1212, 2449, 2450, 2450, 2450, 1207, 2451, 1206, 1202, 2452,
2364      2453, 2453, 2453, 2458, 2458, 2458, 1201, 2459, 1200, 1195,
2365      2460, 1194, 1189, 2521, 2462, 2462, 2462, 2542, 2454, 2550,
2366
2367      2550, 2550, 1181, 2551, 1177, 1172, 2552, 2467, 2467, 2467,
2368      2539, 2463, 2464, 2464, 2464, 1171, 2465, 1167, 1166, 2466,
2369      1165, 2553, 2553, 2553, 2468, 2554, 1164, 1163, 2555, 3107,
2370      3107, 3107, 2557, 2557, 2557, 3107, 3107, 3107, 2472, 2472,
2371      2472, 1162, 2473, 1161, 1160, 2474, 3107, 1159, 1158, 2558,
2372      1157, 1151, 3107, 2475, 2475, 2475, 2560, 2560, 2560, 1143,
2373      2561, 1142, 1141, 2562, 2477, 2477, 2477, 2563, 2563, 2563,
2374      2476, 2564, 1140, 1135, 2565, 1325, 1325, 1325, 1335, 1335,
2375      1335, 2478, 1134, 1133, 2559, 1130, 1124, 2556, 2487, 2487,
2376      2487, 1119, 2488, 1327, 1118, 2489, 1337, 2490, 2490, 2490,
2377
2378      1114, 2491, 1109, 1108, 2492, 2580, 2580, 2580, 2497, 2497,
2379      2497, 2583, 2583, 2583, 2501, 2501, 2501, 1107, 2502, 1106,
2380      1105, 2503, 2581, 1563, 1104, 1102, 2572, 2594, 2594, 2594,
2381      1144, 1144, 1144, 2537, 2537, 2537, 2620, 2620, 2620, 1173,
2382      1173, 1173, 1101, 1100, 2595, 2573, 1099, 1098, 1146, 2540,
2383      2540, 2540, 2622, 2622, 2622, 1097, 2623, 1175, 1096, 2624,
2384      2543, 2543, 2543, 1095, 2544, 1094, 2541, 2545, 2550, 2550,
2385      2550, 1093, 2551, 1092, 1091, 2552, 2553, 2553, 2553, 2604,
2386      2554, 1090, 1089, 2555, 3107, 3107, 3107, 2557, 2557, 2557,
2387      2621, 2631, 2631, 2631, 1088, 2632, 1087, 1086, 2633, 1085,
2388
2389      1084, 3107, 1077, 1076, 2558, 3107, 3107, 3107, 2560, 2560,
2390      2560, 1075, 2561, 1074, 1073, 2562, 2563, 2563, 2563, 1072,
2391      2564, 1071, 3107, 2565, 2649, 2649, 2649, 1335, 1335, 1335,
2392      2657, 2657, 2657, 1068, 1066, 2630, 2580, 2580, 2580, 2659,
2393      2659, 2659, 2650, 2660, 1065, 1337, 2661, 2658, 1563, 2662,
2394      2662, 2662, 1063, 2581, 1563, 1061, 1058, 1563, 2583, 2583,
2395      2583, 2663, 2663, 2663, 2664, 2664, 2664, 2594, 2594, 2594,
2396      2673, 2673, 2673, 1054, 2674, 1052, 2634, 2675, 1144, 1144,
2397      1144, 2693, 2693, 2693, 2595, 2620, 2620, 2620, 2694, 2694,
2398      2694, 1051, 1050, 2651, 1048, 1047, 1146, 2622, 2622, 2622,
2399
2400      1046, 2623, 1045, 1044, 2624, 1043, 2695, 2699, 2699, 2699,
2401      2702, 2702, 2702, 2631, 2631, 2631, 1041, 2632, 1040, 1039,
2402      2633, 2704, 2704, 2704, 2700, 1038, 1036, 2703, 2649, 2649,
2403      2649, 1335, 1335, 1335, 2657, 2657, 2657, 1035, 2705, 1034,
2404      1030, 2724, 2724, 2724, 2682, 2725, 2650, 1029, 2726, 1337,
2405      1027, 2658, 1563, 2659, 2659, 2659, 1026, 2660, 1025, 1563,
2406      2661, 2662, 2662, 2662, 2663, 2663, 2663, 2664, 2664, 2664,
2407      1024, 1563, 2673, 2673, 2673, 1023, 2674, 1022, 1020, 2675,
2408      1019, 1018, 2718, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2409      1561, 1561, 1017, 1015, 1561, 2743, 2743, 2743, 1014, 1561,
2410
2411      1561, 1561, 1563, 1561, 2693, 2693, 2693, 2694, 2694, 2694,
2412      2699, 2699, 2699, 2744, 2756, 2756, 2756, 1013, 2757, 1010,
2413      1009, 2758, 2702, 2702, 2702, 2695, 1007, 2700, 1561, 1561,
2414      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 2703,
2415      1004, 1561, 2704, 2704, 2704, 1003, 1561, 1561, 1561, 1563,
2416      1561, 2760, 2760, 2760,  999, 2761,  998,  996, 2762, 2705,
2417      2763, 2763, 2763,  995, 2764,  994,  991, 2765, 2778, 2778,
2418      2778, 2743, 2743, 2743,  990, 1561, 1561, 2724, 2724, 2724,
2419       989, 2725,  988,  986, 2726,  985, 2779,  984,  983, 2744,
2420      2778, 2778, 2778,  982,  981, 1563, 1561, 1561, 1561, 1561,
2421
2422      1561, 2790, 1561, 1561, 1561,  980,  979, 1561, 2779,  976,
2423       973,  972, 1561, 1561, 1561, 1563, 1561, 2756, 2756, 2756,
2424       971, 2757,  965,  962, 2758, 2760, 2760, 2760,  960, 2761,
2425       959,  954, 2762, 2763, 2763, 2763,  953, 2764,  951,  950,
2426      2765, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2427      1561, 2790,  949,  947, 1561, 2829, 2829, 2829,  944, 1561,
2428      1561, 1561, 1563, 1561, 2840, 2840, 2840, 2842, 2842, 2842,
2429      2844, 2844, 2844, 1563, 1564, 2852, 2852, 2852, 2862, 2862,
2430      2862, 2841,  942,  939, 2843,  938,  936, 2845, 1561, 1561,
2431       935,  932, 2853, 2829, 2829, 2829, 1065, 2840, 2840, 2840,
2432
2433      2872, 2872, 2872,  927, 2873,  926,  924, 2874, 2842, 2842,
2434      2842, 1563,  923,  920, 2841, 2875, 2875, 2875,  919, 2876,
2435       917,  914, 2877,  912,  911, 2843, 2844, 2844, 2844, 2878,
2436      2878, 2878,  910, 2879,  908,  906, 2880, 2852, 2852, 2852,
2437      2862, 2862, 2862, 2845, 1743, 2887, 2887, 2887,  905, 2888,
2438       904,  903, 2889,  902, 2853, 2872, 2872, 2872, 1065, 2873,
2439       901,  898, 2874, 2875, 2875, 2875,  897, 2876,  896,  893,
2440      2877, 2878, 2878, 2878,  890, 2879,  889, 2898, 2880, 2887,
2441      2887, 2887,  887, 2888,  886,  883, 2889, 3003, 3003, 3003,
2442      3003, 3003, 3003,  881, 3012,  878,  877, 3013, 3105, 3105,
2443
2444      3105, 3105, 3105, 3105,  869, 1065,  868,  867, 1065,  862,
2445       861,  860,  858,  857,  856,  855, 3106,  854,  853, 3106,
2446       246,  246,  246,  246,  246,  246,  246,  246,  246,  247,
2447       247,  247,  247,  247,  247,  247,  247,  247,  252,  252,
2448       252,  252,  252,  252,  252,  252,  252,  255,  255,  255,
2449       255,  255,  255,  255,  255,  255,  258,  258,  258,  258,
2450       258,  258,  258,  258,  258,  261,  261,  261,  261,  261,
2451       261,  261,  261,  261,  268,  268,  268,  268,  268,  268,
2452       268,  268,  268,  276,  276,  276,  276,  276,  276,  276,
2453       276,  276,  280,  280,  280,  280,  280,  280,  280,  280,
2454
2455       280,  292,  292,  292,  292,  292,  292,  292,  292,  292,
2456       296,  296,  296,  296,  296,  296,  296,  296,  296,  303,
2457       303,  303,  303,  303,  303,  303,  303,  303,  314,  314,
2458       314,  314,  314,  314,  314,  314,  314,  322,  322,  322,
2459       322,  322,  322,  322,  322,  322,  330,  330,  330,  330,
2460       330,  330,  330,  330,  330,  336,  336,  336,  336,  336,
2461       336,  336,  336,  336,  342,  342,  342,  342,  342,  342,
2462       342,  342,  342,  347,  347,  347,  347,  347,  347,  347,
2463       347,  347,  364,  364,  364,  364,  364,  364,  364,  364,
2464       364,  371,  371,  371,  371,  371,  371,  371,  371,  371,
2465
2466       378,  378,  378,  378,  378,  378,  378,  378,  378,  384,
2467       384,  384,  384,  384,  384,  384,  384,  384,  391,  391,
2468       391,  391,  391,  391,  391,  391,  391,  396,  396,  396,
2469       396,  396,  396,  396,  396,  396,  402,  402,  402,  402,
2470       402,  402,  402,  402,  402,  407,  407,  407,  407,  407,
2471       407,  407,  407,  407,  413,  413,  413,  413,  413,  413,
2472       413,  413,  413,  421,  421,  421,  421,  421,  421,  421,
2473       421,  421,  429,  429,  429,  429,  429,  429,  429,  429,
2474       429,  435,  435,  435,  435,  435,  435,  435,  435,  435,
2475       452,  452,  452,  452,  452,  452,  452,  452,  452,  458,
2476
2477       458,  458,  458,  458,  458,  458,  458,  458,  468,  468,
2478       468,  468,  468,  468,  468,  468,  468,  474,  474,  474,
2479       474,  474,  474,  474,  474,  474,  479,  479,  479,  479,
2480       479,  479,  479,  479,  479,  485,  485,  485,  485,  485,
2481       485,  485,  485,  485,  491,  491,  491,  491,  491,  491,
2482       491,  491,  491,  497,  497,  497,  497,  497,  497,  497,
2483       497,  497,  504,  504,  504,  504,  504,  504,  504,  504,
2484       504,  511,  511,  511,  511,  511,  511,  511,  511,  511,
2485       516,  516,  516,  516,  516,  516,  516,  516,  516,  524,
2486       524,  524,  524,  524,  524,  524,  524,  524,  530,  530,
2487
2488       530,  530,  530,  530,  530,  530,  530,  537,  537,  537,
2489       537,  537,  537,  537,  537,  537,  542,  542,  542,  542,
2490       542,  542,  542,  542,  542,  548,  548,  548,  548,  548,
2491       548,  548,  548,  548,  553,  553,  553,  553,  553,  553,
2492       553,  553,  553,  560,  560,  560,  560,  560,  560,  560,
2493       560,  560,  566,  566,  566,  566,  566,  566,  566,  566,
2494       566,  573,  573,  573,  573,  573,  573,  573,  573,  573,
2495       581,  581,  581,  581,  581,  581,  581,  581,  581,  589,
2496       589,  589,  589,  589,  589,  589,  589,  589,  593,  593,
2497       593,  593,  593,  593,  593,  593,  593,  599,  599,  599,
2498
2499       599,  599,  599,  599,  599,  599,  603,  603,  603,  603,
2500       603,  603,  603,  603,  603,  610,  610,  610,  610,  610,
2501       610,  610,  610,  610,  615,  615,  615,  615,  615,  615,
2502       615,  615,  615,  635,  635,  635,  848,  845,  847,  635,
2503       661,  661,  661,  842,  841,  839,  661,  665,  665,  665,
2504       837,  835,  833,  665,  673,  673,  673,  831, 3107,  828,
2505       673,  685,  685,  685,  827,  826,  825,  685,  691,  691,
2506       691,  824,  822,  821,  691,  710,  710,  710,  820,  819,
2507       818,  710,  717,  717,  717,  816,  815,  814,  717,  723,
2508       723,  723,  813,  811,  809,  723,  728,  728,  728,  808,
2509
2510       806,  805,  728,  733,  733,  733,  802,  801,  799,  733,
2511       742,  742,  742,  644, 3107,  794,  742,  748,  748,  748,
2512       792,  788,  787,  748,  764,  764,  764,  786,  784,  782,
2513       764,  774,  774,  774,  781,  780,  778,  774,  779,  779,
2514       779,  776,  775,  773,  779,  785,  785,  785,  771,  770,
2515       769,  785,  793,  793,  793,  768,  767,  766,  793,  800,
2516       800,  800,  765,  763,  754,  800,  807,  807,  807,  753,
2517       752,  749,  807,  812,  812,  812,  747,  745,  744,  812,
2518       817,  817,  817,  743,  741, 3107,  817,  823,  823,  823,
2519       738,  737,  736,  823,  832,  832,  832,  735,  734,  732,
2520
2521       832,  836,  836,  836,  730,  729,  727,  836,  840,  840,
2522       840,  725,  724,  722,  840,  844,  844,  844,  844,  844,
2523       844,  844,  720,  844,  635,  635,  635,  719,  718,  716,
2524       635,  859,  714,  713,  712,  859,  661,  661,  661,  711,
2525       709, 3107,  661,  888, 3107,  693,  692,  888,  665,  665,
2526       665,  690,  688,  687,  665,  895,  686,  684,  679,  895,
2527       673,  673,  673,  675,  674,  672,  673,  907,  671,  668,
2528       667,  907,  685,  685,  685,  666,  664,  663,  685,  913,
2529       662,  660,  655,  913,  691,  691,  691, 3107,  636,  634,
2530       691,  918,  632,  626,  625,  918,  710,  710,  710,  626,
2531
2532       625,  624,  710,  937,  623, 3107, 3107,  937,  717,  717,
2533       717, 3107, 3107, 3107,  717,  943, 3107, 3107, 3107,  943,
2534       723,  723,  723, 3107, 3107, 3107,  723,  948, 3107, 3107,
2535      3107,  948,  728,  728,  728, 3107, 3107, 3107,  728,  952,
2536      3107, 3107, 3107,  952,  733,  733,  733, 3107, 3107, 3107,
2537       733,  961, 3107, 3107, 3107,  961,  742,  742,  742, 3107,
2538      3107, 3107,  742,  970, 3107, 3107, 3107,  970,  748,  748,
2539       748, 3107, 3107, 3107,  748,  987, 3107, 3107, 3107,  987,
2540       764,  764,  764, 3107, 3107, 3107,  764,  997, 3107, 3107,
2541      3107,  997,  774,  774,  774, 3107, 3107, 3107,  774, 1002,
2542
2543      3107, 3107, 3107, 1002,  779,  779,  779, 3107, 3107, 3107,
2544       779, 1008, 3107, 3107, 3107, 1008,  785,  785,  785, 3107,
2545      3107, 3107,  785, 1016, 3107, 3107, 3107, 1016,  793,  793,
2546       793, 3107, 3107, 3107,  793, 1021, 3107, 3107, 3107, 1021,
2547       800,  800,  800, 3107, 3107, 3107,  800, 1028, 3107, 3107,
2548      3107, 1028,  807,  807,  807, 3107, 3107, 3107,  807, 1033,
2549      3107, 3107, 3107, 1033,  812,  812,  812, 3107, 3107, 3107,
2550       812, 1037, 3107, 3107, 3107, 1037,  817,  817,  817, 3107,
2551      3107, 3107,  817, 1042, 3107, 3107, 3107, 1042,  823,  823,
2552       823, 3107, 3107, 3107,  823, 1049, 3107, 3107, 3107, 1049,
2553
2554       832,  832,  832, 3107, 3107, 3107,  832, 1053, 3107, 3107,
2555      3107, 1053,  836,  836,  836, 3107, 3107, 3107,  836, 1057,
2556      3107, 3107, 3107, 1057,  840,  840,  840, 3107, 3107, 3107,
2557       840, 1062, 3107, 3107, 3107, 1062, 1064, 1064, 1064, 1064,
2558      1064, 1064, 1064, 1064, 1064, 1070, 3107, 3107, 3107, 3107,
2559      1070,  635,  635,  635, 3107, 3107, 3107,  635, 1079, 1079,
2560      1079, 1079, 3107, 3107, 1079, 1079,  661,  661,  661, 3107,
2561      3107, 3107,  661, 1111, 1111, 1111, 1111, 3107, 3107, 1111,
2562      1111,  665,  665,  665, 3107, 3107, 3107,  665, 1121, 1121,
2563      1121, 1121, 3107, 3107, 1121, 1121,  673,  673,  673, 3107,
2564
2565      3107, 3107,  673, 1137, 1137, 1137, 1137, 3107, 3107, 1137,
2566      1137,  685,  685,  685, 3107, 3107, 3107,  685, 1145, 1145,
2567      1145, 1145, 3107, 3107, 1145, 1145,  691,  691,  691, 3107,
2568      3107, 3107,  691, 1153, 1153, 1153, 1153, 3107, 3107, 1153,
2569      1153,  710,  710,  710, 3107, 3107, 3107,  710, 1174, 1174,
2570      1174, 1174, 3107, 3107, 1174, 1174,  717,  717,  717, 3107,
2571      3107, 3107,  717, 1183, 1183, 1183, 1183, 3107, 3107, 1183,
2572      1183,  723,  723,  723, 3107, 3107, 3107,  723, 1191, 1191,
2573      1191, 1191, 3107, 3107, 1191, 1191,  728,  728,  728, 3107,
2574      3107, 3107,  728, 1197, 1197, 1197, 1197, 3107, 3107, 1197,
2575
2576      1197,  733,  733,  733, 3107, 3107, 3107,  733, 1209, 1209,
2577      1209, 1209, 3107, 3107, 1209, 1209,  742,  742,  742, 3107,
2578      3107, 3107,  742, 1222, 1222, 1222, 1222, 3107, 3107, 1222,
2579      1222,  748,  748,  748, 3107, 3107, 3107,  748, 1246, 1246,
2580      1246, 1246, 3107, 3107, 1246, 1246,  764,  764,  764, 3107,
2581      3107, 3107,  764, 1261, 1261, 1261, 1261, 3107, 3107, 1261,
2582      1261,  774,  774,  774, 3107, 3107, 3107,  774, 1269, 1269,
2583      1269, 1269, 3107, 3107, 1269, 1269,  779,  779,  779, 3107,
2584      3107, 3107,  779, 1278, 1278, 1278, 1278, 3107, 3107, 1278,
2585      1278,  785,  785,  785, 3107, 3107, 3107,  785, 1289, 1289,
2586
2587      1289, 1289, 3107, 3107, 1289, 1289,  793,  793,  793,  793,
2588      3107,  793, 3107,  793, 1298, 1298, 1298, 1298, 3107, 3107,
2589      1298, 1298,  800,  800,  800,  800, 3107,  800, 3107,  800,
2590      1310, 1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,  807,
2591       807, 3107, 3107, 3107,  807, 1318, 1318, 1318, 1318, 3107,
2592      3107, 1318, 1318,  812,  812,  812,  812, 3107,  812, 3107,
2593       812, 1326, 1326, 1326, 1326, 3107, 3107, 1326, 1326,  817,
2594       817,  817,  817, 3107,  817, 3107,  817, 1336, 1336, 1336,
2595      1336, 3107, 3107, 1336, 1336,  823,  823,  823, 3107, 3107,
2596      3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345, 1345,
2597
2598       832,  832,  832, 3107, 3107, 3107,  832, 1351, 1351, 1351,
2599      1351, 3107, 3107, 1351, 1351, 1358, 1358, 1358, 1358, 3107,
2600      3107, 1358, 1358,  840,  840,  840, 3107, 3107, 3107,  840,
2601      1366, 1366, 1366, 1366, 3107, 3107, 1366, 1366, 1064, 1064,
2602      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1070, 3107, 1070,
2603      3107, 3107, 1070,  635,  635,  635, 3107, 3107, 3107,  635,
2604      1079, 1079, 1079, 1079, 3107, 3107, 1079, 1079,  661,  661,
2605       661,  661, 3107,  661, 3107,  661, 1111, 1111, 1111, 1111,
2606      3107, 3107, 1111, 1111,  665,  665,  665,  665, 3107,  665,
2607      3107,  665, 1121, 1121, 1121, 1121, 3107, 3107, 1121, 1121,
2608
2609       673,  673,  673, 3107, 3107, 3107,  673, 1137, 1137, 1137,
2610      1137, 3107, 3107, 1137, 1137,  685,  685,  685, 3107, 3107,
2611      3107,  685, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145,
2612       691,  691,  691, 3107, 3107, 3107,  691, 1153, 1153, 1153,
2613      1153, 3107, 3107, 1153, 1153,  710,  710,  710, 3107, 3107,
2614      3107,  710, 1174, 1174, 1174, 1174, 3107, 3107, 1174, 1174,
2615       717,  717,  717, 3107, 3107, 3107,  717, 1183, 1183, 1183,
2616      1183, 3107, 3107, 1183, 1183,  723,  723,  723,  723, 3107,
2617       723, 3107,  723, 1191, 1191, 1191, 1191, 3107, 3107, 1191,
2618      1191,  728,  728,  728,  728, 3107,  728, 3107,  728, 1197,
2619
2620      1197, 1197, 1197, 3107, 3107, 1197, 1197,  733,  733,  733,
2621      3107, 3107, 3107,  733, 1209, 1209, 1209, 1209, 3107, 3107,
2622      1209, 1209,  742,  742,  742,  742, 3107,  742, 3107,  742,
2623      1222, 1222, 1222, 1222, 3107, 3107, 1222, 1222,  748,  748,
2624       748, 3107, 3107, 3107,  748, 1246, 1246, 1246, 1246, 3107,
2625      3107, 1246, 1246,  764,  764,  764, 3107, 3107, 3107,  764,
2626      1261, 1261, 1261, 1261, 3107, 3107, 1261, 1261,  774,  774,
2627       774, 3107, 3107, 3107,  774, 1269, 1269, 1269, 1269, 3107,
2628      3107, 1269, 1269,  779,  779,  779, 3107, 3107, 3107,  779,
2629      1278, 1278, 1278, 1278, 3107, 3107, 1278, 1278,  785,  785,
2630
2631       785, 3107, 3107, 3107,  785, 1289, 1289, 1289, 1289, 3107,
2632      3107, 1289, 1289,  793,  793,  793, 3107, 3107, 3107,  793,
2633      1298, 1298, 1298, 1298, 3107, 3107, 1298, 1298,  800,  800,
2634       800, 3107, 3107, 3107,  800, 1310, 1310, 1310, 1310, 3107,
2635      3107, 1310, 1310,  807,  807,  807, 3107, 3107, 3107,  807,
2636      1318, 1318, 1318, 1318, 3107, 3107, 1318, 1318, 1326, 1326,
2637      1326, 1326, 3107, 3107, 1326, 1326,  817,  817,  817, 3107,
2638      3107, 3107,  817, 1336, 1336, 1336, 1336, 3107, 3107, 1336,
2639      1336,  823,  823,  823, 3107, 3107, 3107,  823, 1345, 1345,
2640      1345, 1345, 3107, 3107, 1345, 1345,  832,  832,  832, 3107,
2641
2642      3107, 3107,  832, 1351, 1351, 1351, 1351, 3107, 3107, 1351,
2643      1351, 1358, 1358, 1358, 1358, 3107, 3107, 1358, 1358,  840,
2644       840,  840, 3107, 3107, 3107,  840, 1366, 1366, 1366, 1366,
2645      3107, 3107, 1366, 1366, 1064, 1064, 1064, 1064, 1064, 1064,
2646      1064, 1064, 1064, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2647      1561, 1561,  635,  635,  635, 3107, 3107, 3107,  635, 1079,
2648      1079, 1079, 1079, 3107, 3107, 1079, 1079, 1111, 1111, 1111,
2649      1111, 3107, 3107, 1111, 1111,  665,  665,  665, 3107, 3107,
2650      3107,  665, 1121, 1121, 1121, 1121, 3107, 3107, 1121, 1121,
2651       673,  673,  673, 3107, 3107, 3107,  673, 1137, 1137, 1137,
2652
2653      1137, 3107, 3107, 1137, 1137,  685,  685,  685, 3107, 3107,
2654      3107,  685, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145,
2655       691,  691,  691, 3107, 3107, 3107,  691,  710,  710,  710,
2656      3107, 3107, 3107,  710, 1174, 1174, 1174, 1174, 3107, 3107,
2657      1174, 1174,  717,  717,  717, 3107, 3107, 3107,  717, 1183,
2658      1183, 1183, 1183, 3107, 3107, 1183, 1183, 1191, 1191, 1191,
2659      1191, 3107, 3107, 1191, 1191,  728,  728,  728, 3107, 3107,
2660      3107,  728, 1197, 1197, 1197, 1197, 3107, 3107, 1197, 1197,
2661       733,  733,  733, 3107, 3107, 3107,  733, 1209, 1209, 1209,
2662      1209, 3107, 3107, 1209, 1209, 1222, 1222, 1222, 1222, 3107,
2663
2664      3107, 1222, 1222,  748,  748,  748, 3107, 3107, 3107,  748,
2665      1246, 1246, 1246, 1246, 3107, 3107, 1246, 1246,  764,  764,
2666       764, 3107, 3107, 3107,  764, 1261, 1261, 1261, 1261, 3107,
2667      3107, 1261, 1261,  774,  774,  774, 3107, 3107, 3107,  774,
2668      1269, 1269, 1269, 1269, 3107, 3107, 1269, 1269,  779,  779,
2669       779, 3107, 3107, 3107,  779, 1278, 1278, 1278, 1278, 3107,
2670      3107, 1278, 1278,  785,  785,  785, 3107, 3107, 3107,  785,
2671      1289, 1289, 1289, 1289, 3107, 3107, 1289, 1289,  793,  793,
2672       793, 3107, 3107, 3107,  793, 1298, 1298, 1298, 1298, 3107,
2673      3107, 1298, 1298,  800,  800,  800, 3107, 3107, 3107,  800,
2674
2675      1310, 1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,  807,
2676       807, 3107, 3107, 3107,  807, 1318, 1318, 1318, 1318, 3107,
2677      3107, 1318, 1318, 1326, 1326, 1326, 1326, 3107, 3107, 1326,
2678      1326,  817,  817,  817, 3107, 3107, 3107,  817, 1336, 1336,
2679      1336, 1336, 3107, 3107, 1336, 1336,  823,  823,  823, 3107,
2680      3107, 3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345,
2681      1345,  832,  832,  832,  832, 3107,  832, 3107,  832, 1351,
2682      1351, 1351, 1351, 3107, 3107, 1351, 1351, 1358, 1358, 1358,
2683      1358, 3107, 3107, 1358, 1358,  840,  840,  840,  840, 3107,
2684       840, 3107,  840, 1366, 1366, 1366, 1366, 3107, 3107, 1366,
2685
2686      1366, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
2687      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,  635,
2688       635,  635, 3107, 3107, 3107,  635, 1079, 1079, 1079, 1079,
2689      3107, 3107, 1079, 1079, 1111, 1111, 1111, 1111, 3107, 3107,
2690      1111, 1111,  665,  665,  665, 3107, 3107, 3107,  665, 1121,
2691      1121, 1121, 1121, 3107, 3107, 1121, 1121,  673,  673,  673,
2692      3107, 3107, 3107,  673, 1137, 1137, 1137, 1137, 3107, 3107,
2693      1137, 1137,  685,  685,  685, 3107, 3107, 3107,  685, 1145,
2694      1145, 1145, 1145, 3107, 3107, 1145, 1145,  691,  691,  691,
2695      3107, 3107, 3107,  691,  710,  710,  710, 3107, 3107, 3107,
2696
2697       710, 1174, 1174, 1174, 1174, 3107, 3107, 1174, 1174,  717,
2698       717,  717, 3107, 3107, 3107,  717, 1183, 1183, 1183, 1183,
2699      3107, 3107, 1183, 1183, 1191, 1191, 1191, 1191, 3107, 3107,
2700      1191, 1191,  728,  728,  728,  728, 3107,  728, 3107,  728,
2701      1197, 1197, 1197, 1197, 3107, 3107, 1197, 1197,  733,  733,
2702       733, 3107, 3107, 3107,  733, 1209, 1209, 1209, 1209, 3107,
2703      3107, 1209, 1209, 1222, 1222, 1222, 1222, 3107, 3107, 1222,
2704      1222,  748,  748,  748, 3107, 3107, 3107,  748, 1246, 1246,
2705      1246, 1246, 3107, 3107, 1246, 1246,  764,  764,  764, 3107,
2706      3107, 3107,  764, 1261, 1261, 1261, 1261, 3107, 3107, 1261,
2707
2708      1261,  774,  774,  774, 3107, 3107, 3107,  774, 1269, 1269,
2709      1269, 1269, 3107, 3107, 1269, 1269,  779,  779,  779, 3107,
2710      3107, 3107,  779, 1278, 1278, 1278, 1278, 3107, 3107, 1278,
2711      1278,  785,  785,  785, 3107, 3107, 3107,  785, 1289, 1289,
2712      1289, 1289, 3107, 3107, 1289, 1289,  793,  793,  793, 3107,
2713      3107, 3107,  793, 1298, 1298, 1298, 1298, 3107, 3107, 1298,
2714      1298,  800,  800,  800,  800, 3107,  800, 3107,  800, 1310,
2715      1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,  807,  807,
2716      3107, 3107, 3107,  807, 1318, 1318, 1318, 1318, 3107, 3107,
2717      1318, 1318, 1326, 1326, 1326, 1326, 3107, 3107, 1326, 1326,
2718
2719       817,  817,  817,  817, 3107,  817, 3107,  817, 1336, 1336,
2720      1336, 1336, 3107, 3107, 1336, 1336,  823,  823,  823, 3107,
2721      3107, 3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345,
2722      1345, 1351, 1351, 1351, 1351, 3107, 3107, 1351, 1351, 1358,
2723      1358, 1358, 1358, 3107, 3107, 1358, 1358, 1366, 1366, 1366,
2724      1366, 3107, 3107, 1366, 1366, 1064, 1064, 1064, 1064, 1064,
2725      1064, 1064, 1064, 1064, 1561, 1561, 1561, 1561, 1561, 1561,
2726      1561, 1561, 1561,  635,  635,  635,  635, 3107,  635, 3107,
2727       635, 1079, 1079, 1079, 1079, 3107, 3107, 1079, 1079, 1111,
2728      1111, 1111, 1111, 3107, 3107, 1111, 1111,  665,  665,  665,
2729
2730      3107, 3107, 3107,  665, 1121, 1121, 1121, 1121, 3107, 3107,
2731      1121, 1121,  673,  673,  673, 3107, 3107, 3107,  673, 1137,
2732      1137, 1137, 1137, 3107, 3107, 1137, 1137,  685,  685,  685,
2733       685, 3107,  685, 3107,  685, 1145, 1145, 1145, 1145, 3107,
2734      3107, 1145, 1145,  691,  691,  691,  691, 3107,  691, 3107,
2735       691,  710,  710,  710,  710, 3107,  710, 3107,  710, 1174,
2736      1174, 1174, 1174, 3107, 3107, 1174, 1174,  717,  717,  717,
2737       717, 3107,  717, 3107,  717, 1183, 1183, 1183, 1183, 3107,
2738      3107, 1183, 1183, 1191, 1191, 1191, 1191, 3107, 3107, 1191,
2739      1191, 1197, 1197, 1197, 1197, 3107, 3107, 1197, 1197,  733,
2740
2741       733,  733, 3107, 3107, 3107,  733, 1222, 1222, 1222, 1222,
2742      3107, 3107, 1222, 1222,  748,  748,  748, 3107, 3107, 3107,
2743       748, 1246, 1246, 1246, 1246, 3107, 3107, 1246, 1246,  764,
2744       764,  764, 3107, 3107, 3107,  764,  774,  774,  774, 3107,
2745      3107, 3107,  774, 1269, 1269, 1269, 1269, 3107, 3107, 1269,
2746      1269,  779,  779,  779, 3107, 3107, 3107,  779, 1278, 1278,
2747      1278, 1278, 3107, 3107, 1278, 1278,  785,  785,  785, 3107,
2748      3107, 3107,  785,  793,  793,  793, 3107, 3107, 3107,  793,
2749      1298, 1298, 1298, 1298, 3107, 3107, 1298, 1298,  800,  800,
2750       800, 3107, 3107, 3107,  800, 1310, 1310, 1310, 1310, 3107,
2751
2752      3107, 1310, 1310,  807,  807,  807, 3107, 3107, 3107,  807,
2753      1318, 1318, 1318, 1318, 3107, 3107, 1318, 1318, 1326, 1326,
2754      1326, 1326, 3107, 3107, 1326, 1326, 1336, 1336, 1336, 1336,
2755      3107, 3107, 1336, 1336,  823,  823,  823, 3107, 3107, 3107,
2756       823, 1345, 1345, 1345, 1345, 3107, 3107, 1345, 1345, 1351,
2757      1351, 1351, 1351, 3107, 3107, 1351, 1351, 1358, 1358, 1358,
2758      1358, 3107, 3107, 1358, 1358, 1064, 1064, 1064, 1064, 1064,
2759      1064, 1064, 1064, 1064, 1561, 1561, 1561, 1561, 1561, 1561,
2760      1561, 1561, 1561, 1079, 1079, 1079, 1079, 3107, 3107, 1079,
2761      1079, 1111, 1111, 1111, 1111, 3107, 3107, 1111, 1111,  665,
2762
2763       665,  665, 3107, 3107, 3107,  665,  673,  673,  673, 3107,
2764      3107, 3107,  673, 1137, 1137, 1137, 1137, 3107, 3107, 1137,
2765      1137, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145, 1174,
2766      1174, 1174, 1174, 3107, 3107, 1174, 1174, 1183, 1183, 1183,
2767      1183, 3107, 3107, 1183, 1183, 1197, 1197, 1197, 1197, 3107,
2768      3107, 1197, 1197,  733,  733,  733, 3107, 3107, 3107,  733,
2769      1222, 1222, 1222, 1222, 3107, 3107, 1222, 1222,  748,  748,
2770       748, 3107, 3107, 3107,  748, 1246, 1246, 1246, 1246, 3107,
2771      3107, 1246, 1246,  764,  764,  764, 3107, 3107, 3107,  764,
2772       774,  774,  774, 3107, 3107, 3107,  774, 1269, 1269, 1269,
2773
2774      1269, 3107, 3107, 1269, 1269,  779,  779,  779, 3107, 3107,
2775      3107,  779, 1278, 1278, 1278, 1278, 3107, 3107, 1278, 1278,
2776       785,  785,  785, 3107, 3107, 3107,  785,  793,  793,  793,
2777      3107, 3107, 3107,  793,  800,  800,  800, 3107, 3107, 3107,
2778       800, 1310, 1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,
2779       807,  807, 3107, 3107, 3107,  807, 1318, 1318, 1318, 1318,
2780      3107, 3107, 1318, 1318, 1326, 1326, 1326, 1326, 3107, 3107,
2781      1326, 1326, 1336, 1336, 1336, 1336, 3107, 3107, 1336, 1336,
2782       823,  823,  823,  823, 3107,  823, 3107,  823, 1345, 1345,
2783      1345, 1345, 3107, 3107, 1345, 1345, 1351, 1351, 1351, 1351,
2784
2785      3107, 3107, 1351, 1351, 1358, 1358, 1358, 1358, 3107, 3107,
2786      1358, 1358, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
2787      1064, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2788      1079, 1079, 1079, 1079, 3107, 3107, 1079, 1079, 1111, 1111,
2789      1111, 1111, 3107, 3107, 1111, 1111,  665,  665,  665, 3107,
2790      3107, 3107,  665,  673,  673,  673,  673, 3107,  673, 3107,
2791       673, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145, 1174,
2792      1174, 1174, 1174, 3107, 3107, 1174, 1174, 1183, 1183, 1183,
2793      1183, 3107, 3107, 1183, 1183, 1197, 1197, 1197, 1197, 3107,
2794      3107, 1197, 1197,  733,  733,  733, 3107, 3107, 3107,  733,
2795
2796      1222, 1222, 1222, 1222, 3107, 3107, 1222, 1222,  748,  748,
2797       748, 3107, 3107, 3107,  748, 1246, 1246, 1246, 1246, 3107,
2798      3107, 1246, 1246,  764,  764,  764, 3107, 3107, 3107,  764,
2799       774,  774,  774, 3107, 3107, 3107,  774,  779,  779,  779,
2800       779, 3107,  779, 3107,  779, 1278, 1278, 1278, 1278, 3107,
2801      3107, 1278, 1278,  785,  785,  785,  785, 3107,  785, 3107,
2802       785,  793,  793,  793, 3107, 3107, 3107,  793,  800,  800,
2803       800, 3107, 3107, 3107,  800, 1310, 1310, 1310, 1310, 3107,
2804      3107, 1310, 1310,  807,  807,  807,  807, 3107,  807, 3107,
2805       807, 1318, 1318, 1318, 1318, 3107, 3107, 1318, 1318, 1326,
2806
2807      1326, 1326, 1326, 3107, 3107, 1326, 1326, 1336, 1336, 1336,
2808      1336, 3107, 3107, 1336, 1336,  823,  823,  823,  823, 3107,
2809       823, 3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345,
2810      1345, 1351, 1351, 1351, 1351, 3107, 3107, 1351, 1351, 1064,
2811      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1561, 1561,
2812      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1079, 1079, 1079,
2813      1079, 3107, 3107, 1079, 1079,  665,  665,  665, 3107, 3107,
2814      3107,  665,  673,  673,  673, 3107, 3107, 3107,  673, 1145,
2815      1145, 1145, 1145, 3107, 3107, 1145, 1145, 1174, 1174, 1174,
2816      1174, 3107, 3107, 1174, 1174, 2727, 2727, 2727, 2727, 2727,
2817
2818      2727, 2727, 2727, 2727, 2728, 2728, 2728, 2728, 2728, 2728,
2819      2728, 2728, 2728, 2785, 2785, 2785, 2785, 2785, 2785, 2785,
2820      2785, 2785, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788,
2821      2788, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826,
2822      2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828,  245,
2823      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2824      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2825      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2826      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2827      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2828
2829      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2830      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2831      3107, 3107, 3107, 3107
2832     } ;
2833
2834 static yyconst flex_int16_t yy_chk[11225] =
2835     {   0,
2836         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2837         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2838         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2839         8,    8,    8,  250,   11,   13,   13,   12,   14,   14,
2840        13,   13,  299,   14,   14,  251,    8,   17,   17,  250,
2841        13,   15,   15,   14,   15,  254,   15,   16,   16,  353,
2842        16,  251,   16,   18,   18,    0,   15,   19,   19,   19,
2843       503,  254,   16,   20,   20,   20,   23,   23,   23,   24,
2844        24,   24,  503,   19,   25,   25,   25,  353, 1488,   20,
2845       360,   17,   23,  990,  299,   24,  248,  248,  248,  990,
2846
2847        25,  249,  249,  249,  253,  253,  253,   18,   21,   21,
2848        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2849        21,   21,   21,  283,   21,   21,   21,   21,   21,   26,
2850        26,   26,   27,   27,   27,   28,   28,   28,  283,   29,
2851        29,   29,   30,   30,   30,   26,  360,  425,   27,  277,
2852       425,   28,  640,   21,   21,   29,  293,  272,   30,   31,
2853        31,   31,  274,  274,  274,  277,  281,  281,  281,  290,
2854       290,  290,  293,  272,  324,   31,  640,   21,   22,   22,
2855        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2856        22,   22,   22, 1490,   22,   22,   22,   22,   22,   32,
2857
2858        32,   32,   33,   33,   33,   34,   34,   34,  264,   35,
2859        35,   35,   36,   36,   36,   32,  272,  352,   33,  449,
2860       696,   34,  449,   22,   22,   35,  324,  352,   36,   37,
2861        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2862        40,   41,   41,   41,  696,   37,  515,   22,   38,  304,
2863       264,   39,  445,  515,   40,  352,  264,   41,   42,   42,
2864        42,  264,  297,  297,  297,  304,  264,  301,  301,  301,
2865       312,  312,  312,  445,   42,   43,   43,   43,   43,   43,
2866        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2867       321,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2868
2869        46,   46,   47,   47,   47,  321,   48,   48,   48,   49,
2870        49,   49,   45,  533,  628,   46, 1492,  628,   47,  319,
2871        43,   43,   48,  319,  325,   49,  285,  319,   43,   44,
2872        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2873        44,   44,   44,   44,  315,   44,   44,   44,   44,   44,
2874        50,   50,   50,   51,   51,   51,   52,   52,   52,  450,
2875       315,  533,   55,   55,  529,  285,   50,   55,  286,   51,
2876      1493,  529,   52,  450,   44,   44,  325,   55,  285,  326,
2877       285,  669,   44,   53,   53,   53,   53,   53,   53,   53,
2878        53,   53,   53,   53,   53,   53,   53,   53,  605,   53,
2879
2880        53,   53,   53,   53, 1498,  331,   55,  286,   59,   59,
2881        59,   60,   60,   60,   61,   61,   61,  669,   56,   56,
2882       286,  331,  286,   56,   59,  309,  647,   60,   53,   53,
2883        61,  326,  309,   56,  645,  605,   53,  373,  645,   53,
2884       647,  309,  323,  323,  323, 1500,   53,   54,   54,   54,
2885        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2886        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2887        62,   63,   63,   63,   64,   64,   64,  651,   65,   65,
2888        65,   66,   66,   66,   62,  343,  365,   63,  355,  373,
2889        64,  651,   54,   54,   65, 1502,  641,   66,  355,  641,
2890
2891        54,  343,  365,   54,  328,  328,  328,  337,  337,  337,
2892        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2893        57,   57,   57,   57,   57,   57,  355,   57,   57,   57,
2894        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2895        73,  699,   74,   74,   74,   75,   75,   75,   69, 1503,
2896       379,   70,  338,  392,   73,  699,   57,   57,   74,  338,
2897       585,   75,  340,  340,  340,   57,  379,   57,  338,  392,
2898       506,   57,  348,  348,  348,  585,   57,   57,   58,   58,
2899        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2900        58,   58,   58,  357,   58,   58,   58,   58,   58,   76,
2901
2902        76,   76,   77,   77,   77,   78,   78,   78,  374,   79,
2903        79,   79,   80,   80,   80,   76,  351, 1505,   77,  506,
2904       403,   78,  357,   58,   58,   79,  351,  357,   80,  362,
2905       362,  362,   58,  351,   58,  357,  403,  357,   58,  372,
2906       372,  372,  386,   58,   58,   67,   67,   67,   67,   67,
2907        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2908       374,   67,   67,   67,   67,   67,   81,   81,   81,   82,
2909        82,   82,   83,   83,   83,  706,   84,   84,   84,   85,
2910        85,   85,   81, 1506,  650,   82,  619,  650,   83,  706,
2911        67,   67,   84,  653,  386,   85,  653,   67,  376,  376,
2912
2913       376,  619,  387,   67,  385,  385,  385,  389,  389,  389,
2914       507, 1507,   67,   68,   68,   68,   68,   68,   68,   68,
2915        68,   68,   68,   68,   68,   68,   68,   68, 1516,   68,
2916        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
2917        88,   88,   88, 1522,   89,   89,   89,   90,   90,   90,
2918        86, 1523,  657,   87,  387,  657,   88,  398,   68,   68,
2919        89, 1527,  507,   90,  398,   68,  397,  397,  397, 1529,
2920      1541,   68,  556,  398,  400,  400,  400,  408,  408,  408,
2921        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2922        71,   71,   71,   71,   71,   71, 1542,   71,   71,   71,
2923
2924        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
2925        93, 1547,   94,   94,   94,   95,   95,   95,   91,  414,
2926       556,   92,  409, 1550,   93,  606,   71,   71,   94,  409,
2927      1551,   95,  411,  411,  411,  414,  423,   71,  409,  422,
2928       422,  422,  427,  427,  427, 1552,   71,   72,   72,   72,
2929        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2930        72,   72,  569,   72,   72,   72,   72,   72,   96,   96,
2931        96,   97,   97,   97,   98,   98,   98,  606,   99,   99,
2932        99,  100,  100,  100,   96,  423,  430,   97,  423,  702,
2933        98, 1554,   72,   72,   99,  442, 1561,  100,  101,  101,
2934
2935       101, 1564,  430,   72,  102,  102,  102,  436,  436,  436,
2936       569,  442,   72,  702,  101,  439,  439,  439,  358, 1567,
2937       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2938       103,  103,  103,  103,  103,  103,  703,  103,  103,  103,
2939       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
2940       107,  707,  108,  108,  108,  704,  358,  459,  105, 1568,
2941       703,  106,  437,  451,  107,  707,  103,  103,  108,  437,
2942       475,  103,  358,  459,  518,  451,  451,  103,  437,  704,
2943      1570,  103,  453,  453,  453, 1571,  475,  103,  104,  104,
2944       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2945
2946       104,  104,  104,  705,  104,  104,  104,  104,  104,  109,
2947       109,  109,  110,  110,  110,  111,  111,  111, 1572,  112,
2948       112,  112,  518,  454, 1573,  109,  518,  705,  110,  735,
2949       454,  111,  735,  104,  104,  112,  470,  486,  104,  454,
2950       456,  456,  456,  470,  104,  469,  469,  469,  104,  472,
2951       472,  472,  470,  486,  104,  113,  113,  113,  113,  113,
2952       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2953      1574,  113,  113,  113,  113,  113,  115,  115,  115,  116,
2954       116,  116,  117,  117,  117, 1575,  118,  118,  118,  480,
2955       480,  480,  115,  498,  512,  116,  481, 1577,  117, 1578,
2956
2957       113,  113,  118,  481, 1580,  113,  483,  483,  483,  498,
2958       512,  113,  481,  492,  492,  492,  495,  495,  495,  505,
2959       505,  505,  113,  114,  114,  114,  114,  114,  114,  114,
2960       114,  114,  114,  114,  114,  114,  114,  114, 1582,  114,
2961       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
2962       121,  121,  121,  740,  122,  122,  122,  740,  493, 1096,
2963       119, 1584,  525,  120, 1560,  493,  121, 1067,  114,  114,
2964       122, 1067, 1096,  114,  493,  509,  509,  509,  525,  114,
2965       517,  517,  517,  522,  522,  522,  531,  531,  531, 1560,
2966       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2967
2968       123,  123,  123,  123,  123,  123, 1585,  123,  123,  123,
2969       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
2970       129, 1587,  130,  130,  130,  133,  133,  133,  125,  538,
2971       549,  126, 1589, 1591,  129,  561,  123,  123,  130, 1592,
2972      1593,  133,  535,  535,  535,  538,  549,  123,  543,  543,
2973       543,  561,  123,  124,  124,  124,  124,  124,  124,  124,
2974       124,  124,  124,  124,  124,  124,  124,  124, 1594,  124,
2975       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
2976       136,  136,  136, 1596,  137,  137,  137,  138,  138,  138,
2977       134,  574,  590,  135,  544, 1605,  136, 1606,  124,  124,
2978
2979       137,  544, 1608,  138,  546,  546,  546,  574,  590,  124,
2980       544,  554,  554,  554,  124,  127,  127,  127,  127,  127,
2981       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2982       708,  127,  127,  127,  127,  127,  139,  139,  139,  140,
2983       140,  140,  143,  143,  143, 1612,  144,  144,  144,  147,
2984       147,  147,  139, 1616,  708,  140, 1619, 1626,  143,  600,
2985       127,  127,  144, 1627,  611,  147,  558,  558,  558,  567,
2986       567,  567,  571,  571,  571,  600,  127,  582,  582,  582,
2987       611, 1628,  127,  128,  128,  128,  128,  128,  128,  128,
2988       128,  128,  128,  128,  128,  128,  128,  128, 1629,  128,
2989
2990       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
2991       152,  152,  152, 1631,  155,  155,  155,  156,  156,  156,
2992       148, 1634, 1635,  151,  595, 1636,  152, 1639,  128,  128,
2993       155,  595, 1646,  156,  587,  587,  587,  594,  594,  594,
2994       595,  597,  597,  597,  128,  604,  604,  604,  583, 1658,
2995       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2996       131,  131,  131,  131,  131,  131, 1369,  131,  131,  131,
2997       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
2998       163, 1659,  164,  164,  164,  583, 1369, 1667,  159,  846,
2999      1670,  160, 1675, 1107,  163, 1679,  131,  131,  164,  131,
3000
3001       583,  131,  608,  608,  608,  846, 1107,  131,  616,  616,
3002       616,  618,  618,  618,  131, 1686, 1687,  131,  132,  132,
3003       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3004       132,  132,  132, 1688,  132,  132,  132,  132,  132,  165,
3005       165,  165,  166,  166,  166,  167,  167,  167, 1689,  168,
3006       168,  168, 1692,  617, 1140,  165, 1696, 1699,  166, 1701,
3007       617,  167, 1703,  132,  132,  168,  132, 1140,  132,  617,
3008       627,  627,  627, 1704,  132,  849,  849,  849, 1706,  849,
3009      1707,  132, 1708, 1711,  132,  141,  141,  141,  141,  141,
3010       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3011
3012      1713,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3013       170,  170,  173,  173,  173, 1715,  174,  174,  174,  175,
3014       175,  175,  169, 1720, 1726,  170,  646,  655,  173,  627,
3015       141,  141,  174,  646,  655,  175,  141,  658,  659,  646,
3016       655,  141, 1730, 1731,  658,  659, 1732,  861,  861,  861,
3017       658,  659, 1734,  141,  142,  142,  142,  142,  142,  142,
3018       142,  142,  142,  142,  142,  142,  142,  142,  142, 1746,
3019       142,  142,  142,  142,  142,  176,  176,  176,  177,  177,
3020       177,  178,  178,  178, 1744,  179,  179,  179,  180,  180,
3021       180,  176, 1742, 1749,  177,  683, 1750,  178, 1751,  142,
3022
3023       142,  179,  683, 1753,  180,  142, 1755, 1756,  683, 1742,
3024       142,  861,  892,  892,  892, 1757,  892, 1744, 1759,  892,
3025      1760, 1761,  142,  145,  145,  145,  145,  145,  145,  145,
3026       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3027       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3028       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3029       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3030       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3031       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3032       145,  145,  145,  145,  145,  145,  145,  149,  149,  149,
3033
3034       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3035       149,  149, 1743,  149,  149,  149,  149,  149,  183,  183,
3036       183,  184,  184,  184,  185,  185,  185, 1765,  186,  186,
3037       186,  667,  667,  667,  183, 1767, 1752,  184, 1770, 1771,
3038       185, 1772,  149,  149,  186,  149,  149,  149,  667, 1082,
3039      1082, 1082, 1752,  149, 1743, 1774,  149,  881,  881,  881,
3040       149, 1776, 1777,  149,  150,  150,  150,  150,  150,  150,
3041       150,  150,  150,  150,  150,  150,  150,  150,  150, 1779,
3042       150,  150,  150,  150,  150,  187,  187,  187,  188,  188,
3043       188,  189,  189,  189, 1781,  190,  190,  190,  675,  675,
3044
3045       675,  187, 1784, 1785,  188, 1787, 1788,  189, 1789,  150,
3046       150,  190,  150,  150,  150,  675,  920,  920,  920, 1791,
3047       150,  881, 1797,  150, 1103, 1103, 1103,  150, 1798, 1800,
3048       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3049       153,  153,  153,  153,  153,  153, 1803,  153,  153,  153,
3050       153,  153,  193,  193,  193,  194,  194,  194,  197,  197,
3051       197, 1819,  198,  198,  198,  692,  692,  692,  193,  973,
3052      1820,  194, 1825, 1826,  197, 1827,  153,  153,  198,  973,
3053       920,  153,  692, 1384, 1384, 1384,  973,  153,  154,  154,
3054       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3055
3056       154,  154,  154, 1831,  154,  154,  154,  154,  154,  199,
3057       199,  199,  200,  200,  200,  201,  201,  201, 1786,  202,
3058       202,  202,  712,  712,  712,  199, 1786, 1799,  200, 1384,
3059      1833,  201, 1839,  154,  154,  202, 1846, 1847,  154,  712,
3060      1386, 1386, 1386, 1799,  154,  157,  157,  157,  157,  157,
3061       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3062      1848,  157,  157,  157,  157,  157,  203,  203,  203,  204,
3063       204,  204,  207,  207,  207, 1790,  208,  208,  208,  209,
3064       209,  209,  203, 1790, 1852,  204, 1386, 1858,  207, 1862,
3065       157,  157,  208, 1865,  157,  209,  900,  900,  900, 1867,
3066
3067       900,  157, 1870,  900,  157,  158,  158,  158,  158,  158,
3068       158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3069      1872,  158,  158,  158,  158,  158,  210,  210,  210,  211,
3070       211,  211,  212,  212,  212, 1874,  213,  213,  213,  214,
3071       214,  214,  210, 1804, 1875,  211, 1805, 1876,  212, 1879,
3072       158,  158,  213, 1881,  158,  214,  916,  916,  916, 1804,
3073       916,  158, 1805,  916,  158,  161,  161,  161,  161,  161,
3074       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3075      1886,  161,  161,  161,  161,  161,  217,  217,  217,  218,
3076       218,  218,  219,  219,  219, 1888,  220,  220,  220,  221,
3077
3078       221,  221,  217, 1896, 1897,  218, 1898, 1899,  219, 1901,
3079       161,  161,  220, 1912,  161,  221,  927,  927,  927, 1912,
3080      1915,  161, 1920, 1921,  161, 1389, 1389, 1389, 1392, 1392,
3081      1392,  161,  162,  162,  162,  162,  162,  162,  162,  162,
3082       162,  162,  162,  162,  162,  162,  162, 1922,  162,  162,
3083       162,  162,  162,  222,  222,  222,  223,  223,  223,  224,
3084       224,  224, 1923,  227,  227,  227,  228,  228,  228,  222,
3085      1926, 1928,  223, 1929, 1930,  224, 1935,  162,  162,  227,
3086       927,  162,  228,  934,  934,  934, 1941,  934,  162, 1943,
3087       934,  162, 1401, 1401, 1401, 1426, 1426, 1426,  162,  171,
3088
3089       171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
3090       171,  171,  171,  171, 1944,  171,  171,  171,  171,  171,
3091       231,  231,  231,  232,  232,  232,  233,  233,  233, 1947,
3092       234,  234,  234,  235,  235,  235,  231, 1950, 1954,  232,
3093      1955, 1956,  233, 1957,  171,  171,  234, 1958, 1959,  235,
3094       171,  941,  941,  941, 1960,  941, 1961, 1962,  941, 1438,
3095      1438, 1438, 1439, 1439, 1439,  171,  172,  172,  172,  172,
3096       172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
3097       172, 1963,  172,  172,  172,  172,  172,  236,  236,  236,
3098       237,  237,  237,  238,  238,  238, 1913,  241,  241,  241,
3099
3100       242,  242,  242,  236, 1968, 1438,  237, 1969, 1439,  238,
3101      1970,  172,  172,  241, 1971,  284,  242,  172,  349, 1914,
3102       356, 1989,  946,  946,  946,  284,  946, 1913,  349,  946,
3103      1990, 1993,  172,  181,  181,  181,  181,  181,  181,  181,
3104       181,  181,  181,  181,  181,  181,  181,  181,  356,  181,
3105       181,  181,  181,  181,  284, 1991,  349,  719,  719,  719,
3106       284, 1994,  349, 1991,  356, 1914,  349,  284,  724,  724,
3107       724,  284,  349,  349,  719,  736,  736,  736,  181,  181,
3108       744,  744,  744,  350,  181,  724, 1996,  181, 1518, 1518,
3109      1518, 2000,  736,  350, 1576, 1576, 1576,  744, 2006,  181,
3110
3111       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
3112       182,  182,  182,  182,  182, 2007,  182,  182,  182,  182,
3113       182,  350, 2008,  745,  745,  745,  751,  751,  751, 2013,
3114       753,  753,  753, 1992, 1518,  350,  768,  768,  768,  350,
3115       745, 1992, 2017,  751, 2018,  182,  182,  753,  776,  776,
3116       776,  182, 2019,  768,  182,  958,  958,  958, 2021,  958,
3117      2025, 2028,  958, 2029, 2032,  776,  182,  191,  191,  191,
3118       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
3119       191,  191, 2033,  191,  191,  191,  191,  191,  781,  781,
3120       781,  787,  787,  787,  809,  809,  809,  837,  837,  837,
3121
3122       841,  841,  841, 2036, 2043,  781, 2045, 2030,  787, 2060,
3123      2074,  809,  191,  191,  837, 2030, 2075,  841,  191, 1579,
3124      1579, 1579, 2064,  191,  192,  192,  192,  192,  192,  192,
3125       192,  192,  192,  192,  192,  192,  192,  192,  192, 2077,
3126       192,  192,  192,  192,  192,  859,  859,  859,  860,  860,
3127       860, 2084, 2085,  888,  888,  888,  889,  889,  889,  891,
3128       891,  891, 2089,  859, 2031, 2064,  860, 2065, 2091,  192,
3129       192,  888, 2031, 2103,  889,  192,  891, 1581, 1581, 1581,
3130       192,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3131       195,  195,  195,  195,  195,  195, 2104,  195,  195,  195,
3132
3133       195,  195,  895,  895,  895, 2105,  860,  896,  896,  896,
3134      2106,  899,  899,  899, 2065, 2107,  889,  901,  901,  901,
3135       895,  903,  903,  903, 2108,  896,  195,  195,  899,  915,
3136       915,  915,  195, 2109,  901,  967,  967,  967,  903,  967,
3137      2110, 2111,  967, 1583, 1583, 1583,  915,  195,  196,  196,
3138       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3139       196,  196,  196, 2112,  196,  196,  196,  196,  196, 2119,
3140      2120,  896,  907,  907,  907, 2121, 2123,  913,  913,  913,
3141       914,  914,  914,  908,  908,  908,  918,  918,  918, 2133,
3142       907, 2134, 2135,  196,  196,  913, 2136, 2137,  914,  196,
3143
3144      2138,  908, 2139, 2142,  918,  969,  969,  969, 2143,  969,
3145      2148, 2149,  969, 2151,  196,  205,  205,  205,  205,  205,
3146       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3147       908,  205,  205,  205,  205,  205,  919,  919,  919,  933,
3148       933,  933, 2152, 2153,  914,  937,  937,  937, 2154,  938,
3149       938,  938, 2168, 2169,  919, 2170,  933,  940,  940,  940,
3150       205,  205, 2171,  937, 2173, 2175,  205,  938, 2198,  205,
3151      1586, 1586, 1586,  919,  940, 2199, 1588, 1588, 1588, 2204,
3152      2205,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3153       206,  206,  206,  206,  206,  206,  206, 2192,  206,  206,
3154
3155       206,  206,  206,  943,  943,  943,  944,  944,  944,  945,
3156       945,  945,  948,  948,  948,  938,  949,  949,  949, 2206,
3157      2209,  943, 2212, 2213,  944, 2214,  945,  206,  206, 2192,
3158       948, 2215, 2216,  206,  949, 2217,  206,  975,  975,  975,
3159      1588,  975, 2218, 2219,  975, 1595, 1595, 1595,  206,  215,
3160       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
3161       215,  215,  215,  215, 2220,  215,  215,  215,  215,  215,
3162      2221, 2222,  944,  952,  952,  952, 2224,  949,  953,  953,
3163       953,  957,  957,  957, 2225,  961,  961,  961,  962,  962,
3164       962,  952, 2227, 2228,  215,  215,  953, 2229,  957, 1618,
3165
3166      1618, 1618,  215,  961,  215, 2230,  962,  215, 1630, 1630,
3167      1630,  215, 1632, 1632, 1632,  215,  216,  216,  216,  216,
3168       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
3169       216, 2231,  216,  216,  216,  216,  216,  966,  966,  966,
3170       968,  968,  968,  953, 2226,  970,  970,  970, 2233,  962,
3171       971,  971,  971, 2226,  966, 2234, 2235,  968,  974,  974,
3172       974,  216,  216,  970,  977,  977,  977, 2193,  971,  216,
3173      2232,  216, 2237, 2238,  216,  974, 2240, 2245,  216, 2232,
3174      2246,  977,  216,  225,  225,  225,  225,  225,  225,  225,
3175       225,  225,  225,  225,  225,  225,  225,  225, 2247,  225,
3176
3177       225,  225,  225,  225, 2193,  978,  978,  978, 2249,  978,
3178      2254,  971,  978,  979,  979,  979,  987,  987,  987,  988,
3179       988,  988,  992,  992,  992,  994,  994,  994,  225,  225,
3180       979,  993,  993,  993,  987,  993, 2255,  988,  993,  992,
3181      2258, 2262,  994, 1001, 1001, 1001, 2263, 1001, 2265, 2274,
3182      1001, 2276,  225,  226,  226,  226,  226,  226,  226,  226,
3183       226,  226,  226,  226,  226,  226,  226,  226, 2279,  226,
3184       226,  226,  226,  226,  997,  997,  997,  988, 1000, 1000,
3185      1000, 2281, 1002, 1002, 1002, 2305, 2306,  998,  998,  998,
3186      2308, 2309,  997, 2310, 2315, 1000, 2316, 2317,  226,  226,
3187
3188      1002, 1003, 1003, 1003, 2318,  998, 1006, 1006, 1006, 2319,
3189      1006, 2320, 2321, 1006, 1012, 1012, 1012, 2322, 1012, 1003,
3190      2302, 1012,  226,  229,  229,  229,  229,  229,  229,  229,
3191       229,  229,  229,  229,  229,  229,  229,  229,  998,  229,
3192       229,  229,  229,  229, 1005, 1005, 1005, 1008, 1008, 1008,
3193      1011, 1011, 1011, 2323, 1009, 1009, 1009, 1016, 1016, 1016,
3194      1621, 1005, 1003, 2302, 2324, 1008, 1621, 1011,  229,  229,
3195      1621, 2325, 1009, 2327, 1621, 1016, 1590, 1590, 1590,  229,
3196       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3197       230,  230,  230,  230,  230, 2300,  230,  230,  230,  230,
3198
3199       230, 1009, 2328, 1017, 1017, 1017, 1018, 1018, 1018, 2329,
3200      1019, 1019, 1019, 1020, 1020, 1020, 1021, 1021, 1021, 2330,
3201      2331, 1017, 1590, 1018, 2332,  230,  230, 1019, 2333, 2334,
3202      1020, 1669, 1669, 1669, 1021, 2300,  230,  239,  239,  239,
3203       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3204       239,  239, 2335,  239,  239,  239,  239,  239, 1017, 2336,
3205      2337, 1022, 1022, 1022, 1024, 1024, 1024, 2338, 1633, 1633,
3206      1633, 2339, 1020, 1026, 1026, 1026, 1028, 1028, 1028, 1022,
3207      2340, 1024,  239,  239, 1025, 1025, 1025, 1027, 1027, 1027,
3208      1026, 2301, 2341,  239, 1028, 1032, 1032, 1032, 2342, 1032,
3209
3210      2344, 1025, 1032, 2348, 1027, 2355,  239,  240,  240,  240,
3211       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3212       240,  240, 1022,  240,  240,  240,  240,  240, 2301, 1029,
3213      1029, 1029, 1633, 2356, 1025, 2360, 2363, 1031, 1031, 1031,
3214      1033, 1033, 1033, 1034, 1034, 1034, 1027, 1029, 2402, 1025,
3215      2403, 2404,  240,  240, 1031, 1035, 1035, 1035, 1033, 2406,
3216      2401, 1034, 2407,  240, 2408, 2411, 1029, 2412, 1036, 1036,
3217      1036, 2414, 1035, 1037, 1037, 1037,  240,  282, 1038, 1038,
3218      1038, 1042, 1042, 1042,  282, 1036, 1039, 1039, 1039, 2401,
3219      2402, 1037, 2403,  282,  282, 2415, 1038, 2413, 1034, 1042,
3220
3221      1040, 1040, 1040, 1039, 1754, 1754, 1754, 1041, 1041, 1041,
3222      2413, 2417, 1043, 1043, 1043, 2418, 2419, 1040, 1055, 1055,
3223      1055,  282,  282,  282, 1041, 1049, 1049, 1049,  282,  282,
3224      1043, 2386,  282,  282, 2420, 1055,  282, 2421,  282,  282,
3225       282, 2386, 2423, 1049, 1050, 1050, 1050, 2386, 2424, 1038,
3226      1040, 1053, 1053, 1053, 1054, 1054, 1054, 1056, 1056, 1056,
3227      2425, 1056, 1050, 2426, 1056, 1040, 1057, 1057, 1057, 1053,
3228      2429, 2430, 1054, 1058, 1058, 1058, 1059, 1059, 1059, 1062,
3229      1062, 1062, 2431, 1043, 1057, 1060, 1060, 1060, 2432, 1060,
3230      2433, 1058, 1060, 1059, 1063, 1063, 1063, 1062, 1078, 1078,
3231
3232      1078, 1079, 1079, 1079, 1081, 1081, 1081, 2313, 1050, 1109,
3233      1109, 1109, 1063, 1110, 1110, 1110, 1078, 2313, 1054, 1079,
3234      2313, 2434, 1081, 1111, 1111, 1111, 1109, 1113, 1113, 1113,
3235      2435, 1110, 2436, 2437, 1058, 1114, 1114, 1114, 1118, 1118,
3236      1118, 1111, 1115, 1115, 1115, 1113, 1115, 2438, 2439, 1115,
3237      2440, 1081, 1114, 2441, 2442, 1118, 2443, 2445, 1063, 1120,
3238      1120, 1120, 1121, 1121, 1121, 1123, 1123, 1123, 1125, 1125,
3239      1125, 2455, 1125, 2456, 2457, 1125, 1113, 1120, 2461, 2479,
3240      1121, 2480, 2314, 1123, 1128, 1128, 1128, 1129, 1129, 1129,
3241      2387, 1129, 2314, 2481, 1129, 2314, 1130, 1130, 1130, 1118,
3242
3243      2387, 1128, 1131, 1131, 1131, 2416, 2387, 1132, 1132, 1132,
3244      2482, 1132, 1123, 1130, 1132, 1134, 1134, 1134, 2416, 1131,
3245      1136, 1136, 1136, 1137, 1137, 1137, 1139, 1139, 1139, 1142,
3246      1142, 1142, 1134, 1144, 1144, 1144, 2483, 2484, 1136, 2496,
3247      2493, 1137, 2499, 2500, 1139, 2488, 1142, 1145, 1145, 1145,
3248      2489, 1144, 1147, 1147, 1147, 1148, 1148, 1148, 2488, 1148,
3249      2504, 2505, 1148, 2489, 2506, 1145, 1152, 1152, 1152, 2507,
3250      1147, 1153, 1153, 1153, 1155, 1155, 1155, 1622, 1168, 1168,
3251      1168, 2508, 1168, 1622, 1152, 1168, 1139, 1622, 2493, 1153,
3252      2509, 1622, 1155, 1172, 1172, 1172, 1173, 1173, 1173, 1147,
3253
3254      1174, 1174, 1174, 1176, 1176, 1176, 1182, 1182, 1182, 2510,
3255      1172, 1183, 1183, 1183, 1173, 1178, 1178, 1178, 1174, 1178,
3256      2511, 1176, 1178, 2513, 1182, 1185, 1185, 1185, 2494, 1183,
3257      1186, 1186, 1186, 2514, 1186, 2515, 2516, 1186, 1189, 1189,
3258      1189, 2517, 2518, 1185, 1190, 1190, 1190, 1191, 1191, 1191,
3259      1193, 1193, 1193, 2519, 2520, 1189, 1194, 1194, 1194, 1195,
3260      1195, 1195, 1190, 2494, 1176, 1191, 2522, 2523, 1193, 2524,
3261      1196, 1196, 1196, 1194, 2525, 2526, 1195, 1197, 1197, 1197,
3262      1199, 1199, 1199, 1202, 1202, 1202, 1185, 1195, 1196, 1203,
3263      1203, 1203, 2527, 1203, 2528, 1197, 1203, 2529, 1199, 2530,
3264
3265      1202, 1208, 1208, 1208, 1209, 1209, 1209, 1211, 1211, 1211,
3266      1214, 1214, 1214, 2531, 1215, 1215, 1215, 1193, 1215, 1208,
3267      2532, 1215, 1209, 2533, 2534, 1211, 2535, 1214, 1218, 1218,
3268      1218, 2536, 1218, 2542, 2546, 1218, 1221, 1221, 1221, 1222,
3269      1222, 1222, 1224, 1224, 1224, 2547, 1199, 2548, 1229, 1229,
3270      1229, 2549, 1229, 2566, 1221, 1229, 2567, 1222, 2568, 2561,
3271      1224, 1232, 1232, 1232, 1233, 1233, 1233, 2562, 1233, 2561,
3272      2569, 1233, 1211, 1236, 1236, 1236, 2570, 2562, 1232, 1237,
3273      1237, 1237, 2571, 1237, 2574, 2575, 1237, 1245, 1245, 1245,
3274      1236, 1246, 1246, 1246, 1248, 1248, 1248, 1253, 1253, 1253,
3275
3276      2564, 1253, 2576, 2577, 1253, 1245, 2578, 1224, 2586, 1246,
3277      2564, 2565, 1248, 1256, 1256, 1256, 1257, 1257, 1257, 2587,
3278      1257, 2565, 2588, 1257, 1260, 1260, 1260, 1261, 1261, 1261,
3279      1256, 1263, 1263, 1263, 1265, 1265, 1265, 2589, 1265, 2590,
3280      2578, 1265, 1260, 2591, 2592, 1261, 1268, 1268, 1268, 1263,
3281      1269, 1269, 1269, 1271, 1271, 1271, 1273, 1273, 1273, 2593,
3282      1273, 1248, 2596, 1273, 1268, 1277, 1277, 1277, 1269, 2597,
3283      2599, 1271, 1278, 1278, 1278, 1280, 1280, 1280, 1288, 1288,
3284      1288, 2600, 1263, 1277, 1282, 1282, 1282, 2601, 1282, 2603,
3285      1278, 1282, 2605, 1280, 2606, 2607, 1288, 1289, 1289, 1289,
3286
3287      1291, 1291, 1291, 2610, 1292, 1292, 1292, 1293, 1293, 1293,
3288      2611, 1293, 2612, 2613, 1293, 1289, 2614, 2617, 1291, 2618,
3289      1271, 1292, 2625, 2626, 1280, 1294, 1294, 1294, 1295, 1295,
3290      1295, 2627, 1295, 2629, 2635, 1295, 1297, 1297, 1297, 1298,
3291      1298, 1298, 1294, 1300, 1300, 1300, 1302, 1302, 1302, 1303,
3292      1303, 1303, 2636, 1303, 1297, 2637, 1303, 1298, 2638, 2639,
3293      1291, 1300, 2640, 1302, 1306, 1306, 1306, 1307, 1307, 1307,
3294      2641, 1307, 2642, 2643, 1307, 1309, 1309, 1309, 1310, 1310,
3295      1310, 1306, 1312, 1312, 1312, 1314, 1314, 1314, 2644, 1314,
3296      2646, 2647, 1314, 1309, 2652, 2653, 1310, 1317, 1317, 1317,
3297
3298      1312, 1318, 1318, 1318, 1320, 1320, 1320, 1321, 1321, 1321,
3299      1300, 1323, 1323, 1323, 2654, 1317, 1322, 1322, 1322, 1318,
3300      1322, 2655, 1320, 1322, 1321, 1324, 1324, 1324, 1323, 1324,
3301      2665, 2666, 1324, 1325, 1325, 1325, 1326, 1326, 1326, 1328,
3302      1328, 1328, 1329, 1329, 1329, 2667, 1312, 2668, 1330, 1330,
3303      1330, 1325, 1330, 2669, 1326, 1330, 2670, 1328, 2671, 1329,
3304      1333, 1333, 1333, 2672, 1320, 1334, 1334, 1334, 2676, 1334,
3305      2677, 2678, 1334, 1335, 1335, 1335, 2679, 1333, 1336, 1336,
3306      1336, 1338, 1338, 1338, 2680, 1340, 1340, 1340, 1344, 1344,
3307      1344, 1335, 1345, 1345, 1345, 2681, 1336, 2683, 2656, 1338,
3308
3309      2684, 1328, 1340, 1347, 1347, 1347, 1344, 1350, 1350, 1350,
3310      1345, 1351, 1351, 1351, 1353, 1353, 1353, 1357, 1357, 1357,
3311      2686, 1347, 1358, 1358, 1358, 1350, 1354, 1354, 1354, 1351,
3312      1354, 2687, 1353, 1354, 2688, 1357, 1360, 1360, 1360, 2689,
3313      1358, 2656, 2691, 1338, 1361, 1361, 1361, 2692, 1361, 2696,
3314      2697, 1361, 2698, 2701, 1360, 1365, 1365, 1365, 1366, 1366,
3315      1366, 1368, 1368, 1368, 1347, 2706, 2707, 1353, 1370, 1370,
3316      1370, 2708, 2709, 1365, 2710, 2711, 1366, 2712, 2713, 1368,
3317      1377, 1377, 1377, 1404, 1404, 1404, 1370, 1370, 1405, 1405,
3318      1405, 2714, 1405, 2715, 2716, 1405, 1360, 2717, 1377, 2719,
3319
3320      1404, 1406, 1406, 1406, 1407, 1407, 1407, 1408, 1408, 1408,
3321      2720, 1408, 2721, 2722, 1408, 1411, 1411, 1411, 2725, 1406,
3322      2723, 1407, 1368, 1413, 1413, 1413, 2729, 1413, 2732, 2726,
3323      1413, 2733, 2725, 1411, 1416, 1416, 1416, 1417, 1417, 1417,
3324      2726, 1417, 2736, 2738, 1417, 2739, 1377, 2741, 1418, 1418,
3325      1418, 1416, 1418, 2742, 2745, 1418, 1422, 1422, 1422, 1406,
3326      2746, 1423, 1423, 1423, 1411, 1423, 2723, 2747, 1423, 1425,
3327      1425, 1425, 2748, 1422, 1428, 1428, 1428, 1429, 1429, 1429,
3328      2749, 1429, 2750, 2751, 1429, 2752, 2753, 1425, 1430, 1430,
3329      1430, 1428, 1431, 1431, 1431, 1433, 1433, 1433, 1447, 1447,
3330
3331      1447, 1448, 1448, 1448, 2754, 1430, 2755, 1449, 1449, 1449,
3332      1431, 1449, 2759, 1433, 1449, 1447, 2767, 2769, 1448, 1425,
3333      1450, 1450, 1450, 2757, 1453, 1453, 1453, 1454, 1454, 1454,
3334      1455, 1455, 1455, 2771, 1455, 2757, 2773, 1455, 1450, 2781,
3335      2783, 1431, 1453, 2785, 1454, 1456, 1456, 1456, 1457, 1457,
3336      1457, 1458, 1458, 1458, 2787, 1458, 2789, 2785, 1458, 1460,
3337      1460, 1460, 2758, 1456, 2788, 1457, 1463, 1463, 1463, 1464,
3338      1464, 1464, 2791, 1464, 2758, 2788, 1464, 1460, 1465, 1465,
3339      1465, 2786, 2786, 1463, 1450, 1466, 1466, 1466, 1453, 1467,
3340      1467, 1467, 1470, 1470, 1470, 1465, 1471, 1471, 1471, 2784,
3341
3342      1471, 2792, 1466, 1471, 2793, 1456, 2794, 1467, 2801, 1470,
3343      1472, 1472, 1472, 1474, 1474, 1474, 1477, 1477, 1477, 2805,
3344      1460, 2811, 1478, 1478, 1478, 2764, 1478, 2765, 1472, 1478,
3345      1474, 1466, 2813, 1477, 1479, 1479, 1479, 2764, 1479, 2765,
3346      2784, 1479, 1482, 1482, 1482, 1489, 1489, 1489, 1491, 1491,
3347      1491, 1497, 1497, 1497, 2800, 1467, 1499, 1499, 1499, 1482,
3348      1494, 1494, 1494, 1489, 1494, 1491, 2816, 1494, 1497, 1501,
3349      1501, 1501, 2800, 2804, 1499, 2810, 1472, 1504, 1504, 1504,
3350      1508, 1508, 1508, 1509, 1509, 1509, 2818, 1501, 2804, 1510,
3351      1510, 1510, 2823, 1510, 2810, 1504, 1510, 1508, 1513, 1513,
3352
3353      1513, 1509, 1513, 2824, 2826, 1513, 1517, 1517, 1517, 2827,
3354      1489, 1519, 1519, 1519, 2812, 1519, 2828, 2830, 1519, 2831,
3355      1499, 1524, 1524, 1524, 1517, 1524, 1508, 2815, 1524, 1528,
3356      1528, 1528, 2832, 2812, 1504, 1501, 1530, 1530, 1530, 2833,
3357      1509, 1531, 1531, 1531, 2817, 1531, 2815, 1528, 1531, 1534,
3358      1534, 1534, 2835, 1534, 1530, 2836, 1534, 1537, 1537, 1537,
3359      1538, 1538, 1538, 2817, 1538, 2838, 2839, 1538, 2846, 1543,
3360      1543, 1543, 1517, 1543, 2847, 1537, 1543, 1546, 1546, 1546,
3361      1548, 1548, 1548, 2848, 1549, 1549, 1549, 2849, 1549, 2850,
3362      1528, 1549, 2851, 1530, 2854, 1546, 2855, 1548, 1553, 1553,
3363
3364      1553, 1555, 1555, 1555, 1537, 1556, 1556, 1556, 1557, 1557,
3365      1557, 1558, 1558, 1558, 2856, 2857, 1553, 2858, 1555, 1559,
3366      1559, 1559, 2859, 1556, 1546, 2860, 1557, 2861, 1558, 2863,
3367      2865, 1562, 1562, 1562, 1569, 1569, 1569, 1559, 1597, 1597,
3368      1597, 1598, 1598, 1598, 2867, 1598, 2868, 1553, 1598, 1562,
3369      2870, 2879, 1569, 1601, 1601, 1601, 2881, 1602, 1602, 1602,
3370      1557, 1602, 2882, 2879, 1602, 1607, 1607, 1607, 1623, 1623,
3371      1623, 1601, 1556, 1609, 1609, 1609, 2883, 1609, 2880, 2884,
3372      1609, 1559, 1562, 1607, 1597, 1623, 1569, 1613, 1613, 1613,
3373      2880, 1613, 2885, 2886, 1613, 1617, 1617, 1617, 2890, 1562,
3374
3375      1620, 1620, 1620, 2891, 1620, 2892, 2893, 1620, 1624, 1624,
3376      1624, 2894, 1624, 1617, 2895, 1624, 1607, 1625, 1625, 1625,
3377      1601, 1637, 1637, 1637, 1638, 1638, 1638, 1640, 1640, 1640,
3378      1641, 1641, 1641, 2896, 1641, 1625, 2897, 1641, 1642, 1642,
3379      1642, 2900, 1642, 2901, 1640, 1642, 1645, 1645, 1645, 1647,
3380      1647, 1647, 1648, 1648, 1648, 2898, 1617, 2902, 1649, 1649,
3381      1649, 2903, 1649, 2904, 1645, 1649, 1647, 2905, 1625, 2906,
3382      1648, 1652, 1652, 1652, 1653, 1653, 1653, 2907, 1653, 2908,
3383      2898, 1653, 1657, 1657, 1657, 1637, 2909, 2910, 1638, 1652,
3384      1656, 1656, 1656, 1645, 1660, 1660, 1660, 2911, 1660, 1648,
3385
3386      1657, 1660, 1663, 1663, 1663, 2912, 2913, 1656, 1664, 1664,
3387      1664, 2914, 1664, 2915, 2916, 1664, 1665, 1665, 1665, 1663,
3388      1666, 1666, 1666, 2917, 1666, 2918, 2919, 1666, 2925, 1668,
3389      1668, 1668, 2926, 1665, 1671, 1671, 1671, 1652, 1671, 2927,
3390      2922, 1671, 1674, 1674, 1674, 2928, 1657, 1668, 1676, 1676,
3391      1676, 1677, 1677, 1677, 2929, 1677, 2930, 2931, 1677, 2922,
3392      1674, 1678, 1678, 1678, 2932, 1676, 1680, 1680, 1680, 2933,
3393      1680, 2934, 2935, 1680, 1683, 1683, 1683, 2936, 1678, 1684,
3394      1684, 1684, 2937, 1684, 2938, 2939, 1684, 2940, 1674, 2941,
3395      2942, 1683, 1685, 1685, 1685, 1690, 1690, 1690, 1691, 1691,
3396
3397      1691, 1693, 1693, 1693, 1694, 1694, 1694, 2943, 1694, 1685,
3398      2944, 1694, 1690, 1695, 1695, 1695, 1691, 2945, 1693, 1697,
3399      1697, 1697, 1698, 1698, 1698, 2946, 1698, 2943, 2947, 1698,
3400      1695, 1700, 1700, 1700, 2948, 2949, 1697, 1702, 1702, 1702,
3401      2950, 1705, 1705, 1705, 1709, 1709, 1709, 2951, 2952, 1700,
3402      1710, 1710, 1710, 2953, 1710, 1702, 2954, 1710, 2955, 1705,
3403      2956, 1709, 2957, 2958, 1691, 1712, 1712, 1712, 1714, 1714,
3404      1714, 2959, 2960, 1716, 1716, 1716, 1717, 1717, 1717, 1718,
3405      1718, 1718, 2961, 1712, 2965, 2962, 1714, 2966, 1702, 1705,
3406      1716, 2962, 2967, 1717, 2968, 2969, 1718, 1719, 1719, 1719,
3407
3408      1721, 1721, 1721, 1722, 1722, 1722, 1723, 1723, 1723, 1724,
3409      1724, 1724, 1725, 1725, 1725, 1719, 2970, 2972, 1721, 1714,
3410      2973, 1722, 2975, 1723, 2976, 2978, 1724, 1727, 1727, 1727,
3411      1725, 1727, 2979, 2982, 1727, 1733, 1733, 1733, 1735, 1735,
3412      1735, 2983, 2984, 1718, 2985, 2981, 1721, 1736, 1736, 1736,
3413      2987, 1736, 2989, 1733, 1736, 1735, 1737, 1737, 1737, 2981,
3414      2991, 1738, 1738, 1738, 1719, 1739, 1739, 1739, 1722, 1740,
3415      1740, 1740, 2993, 1740, 1737, 2995, 1740, 1725, 2996, 1738,
3416      2997, 2998, 1739, 1741, 1741, 1741, 1733, 1747, 1747, 1747,
3417      1748, 1748, 1748, 1758, 1758, 1758, 1762, 1762, 1762, 2999,
3418
3419      3000, 1741, 3001, 3002, 1747, 1763, 1763, 1763, 1748, 1764,
3420      1764, 1764, 1766, 1766, 1766, 1737, 1738, 1768, 1768, 1768,
3421      1769, 1769, 1769, 1773, 1773, 1773, 1775, 1775, 1775, 1778,
3422      1778, 1778, 1780, 1780, 1780, 1782, 1782, 1782, 1783, 1783,
3423      1783, 1792, 1792, 1792, 1775, 1792, 3004, 1778, 1792, 1780,
3424      3006, 1748, 3008, 1782, 3009, 1783, 1795, 1795, 1795, 3010,
3425      1796, 1796, 1796, 1801, 1801, 1801, 1802, 1802, 1802, 1806,
3426      1806, 1806, 3011, 1487, 1795, 3012, 1775, 1796, 1807, 1807,
3427      1807, 3024, 1807, 3013, 3020, 1807, 1806, 1810, 1810, 1810,
3428      1811, 1811, 1811, 3025, 1782, 1812, 1812, 1812, 3036, 1813,
3429
3430      1813, 1813, 1795, 1813, 1486, 1810, 1813, 1811, 1814, 1814,
3431      1814, 3012, 1812, 1815, 1815, 1815, 1816, 1816, 1816, 3013,
3432      1817, 1817, 1817, 1485, 1817, 3024, 1814, 1817, 1818, 1818,
3433      1818, 1815, 3020, 1816, 1821, 1821, 1821, 3025, 1821, 3036,
3434      1810, 1821, 3021, 1824, 1824, 1824, 1818, 1824, 3050, 3028,
3435      1824, 1828, 1828, 1828, 1830, 1830, 1830, 3028, 1832, 1832,
3436      1832, 1814, 3034, 1834, 1834, 1834, 3022, 1834, 1484, 1828,
3437      1834, 1837, 1837, 1837, 3023, 1818, 1832, 1838, 1838, 1838,
3438      3035, 1838, 3050, 3029, 1838, 1840, 1840, 1840, 1837, 1840,
3439      3021, 3029, 1840, 1843, 1843, 1843, 1844, 1844, 1844, 3034,
3440
3441      1844, 3044, 3045, 1844, 1845, 1845, 1845, 1849, 1849, 1849,
3442      1843, 1850, 1850, 1850, 3022, 1850, 1832, 3035, 1850, 3026,
3443      1483, 1845, 3023, 3026, 1849, 1851, 1851, 1851, 1853, 1853,
3444      1853, 3030, 1853, 3044, 3045, 1853, 1856, 1856, 1856, 3030,
3445      1857, 1857, 1857, 1851, 1857, 1476, 3031, 1857, 1859, 1859,
3446      1859, 3040, 1859, 1856, 3031, 1859, 1863, 1863, 1863, 1866,
3447      1866, 1866, 1868, 1868, 1868, 1869, 1869, 1869, 1871, 1871,
3448      1871, 1873, 1873, 1873, 1863, 1873, 1851, 1866, 1873, 1868,
3449      1877, 1877, 1877, 1869, 3037, 1871, 1880, 1880, 1880, 1882,
3450      1882, 1882, 1883, 1883, 1883, 3032, 1883, 3040, 1877, 1883,
3451
3452      1884, 1884, 1884, 3027, 1880, 3038, 1882, 3027, 1885, 1885,
3453      1885, 3039, 1885, 3033, 1871, 1885, 3058, 1884, 1887, 1887,
3454      1887, 1475, 3048, 1866, 1473, 3037, 1869, 1889, 1889, 1889,
3455      1890, 1890, 1890, 1891, 1891, 1891, 1887, 1892, 1892, 1892,
3456      3038, 1892, 3032, 1469, 1892, 1889, 3039, 3051, 1890, 3058,
3457      1891, 1893, 1893, 1893, 1894, 1894, 1894, 3048, 1894, 3041,
3458      3033, 1894, 1895, 1895, 1895, 1900, 1900, 1900, 1893, 3070,
3459      1902, 1902, 1902, 3046, 1902, 3080, 1889, 1902, 3042, 3043,
3460      1895, 3051, 3046, 1900, 1887, 1905, 1905, 1905, 1906, 1906,
3461      1906, 3049, 1907, 1907, 1907, 1890, 1907, 3092, 3070, 1907,
3462
3463      1910, 1910, 1910, 1905, 3047, 3041, 1906, 1916, 1916, 1916,
3464      1917, 1917, 1917, 3047, 1917, 3042, 3043, 1917, 1910, 1918,
3465      1918, 1918, 3080, 1468, 1916, 3060, 3049, 1895, 1462, 3092,
3466      1900, 1919, 1919, 1919, 3060, 3054, 1905, 1918, 1924, 1924,
3467      1924, 1906, 1925, 1925, 1925, 1927, 1927, 1927, 1931, 1931,
3468      1931, 1932, 1932, 1932, 1933, 1933, 1933, 1934, 1934, 1934,
3469      1936, 1936, 1936, 1937, 1937, 1937, 1938, 1938, 1938, 1939,
3470      1939, 1939, 1940, 1940, 1940, 1942, 1942, 1942, 1945, 1945,
3471      1945, 3054, 3052, 1918, 1948, 1948, 1948, 1949, 1949, 1949,
3472      3053, 1949, 3056, 1942, 1949, 1461, 1945, 1951, 1951, 1951,
3473
3474      1459, 1948, 3071, 1934, 1952, 1952, 1952, 1953, 1953, 1953,
3475      1452, 1953, 1451, 1446, 1953, 1951, 1964, 1964, 1964, 3059,
3476      3057, 1952, 1965, 1965, 1965, 3052, 1942, 3056, 1966, 1966,
3477      1966, 3071, 1966, 3053, 1964, 1966, 1967, 1967, 1967, 1965,
3478      1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974, 1975,
3479      1975, 1975, 3059, 1975, 3055, 3057, 1975, 1976, 1976, 1976,
3480      1977, 1977, 1977, 1974, 1445, 1964, 1978, 1978, 1978, 3074,
3481      1978, 3098, 3061, 1978, 3064, 1976, 3065, 1977, 1979, 1979,
3482      1979, 3061, 1979, 1444, 3062, 1979, 1982, 1982, 1982, 1973,
3483      3075, 1983, 1983, 1983, 1985, 1985, 1985, 3066, 1985, 3063,
3484
3485      3055, 1985, 1443, 3074, 1982, 1988, 1988, 1988, 1976, 1983,
3486      1995, 1995, 1995, 1997, 1997, 1997, 3064, 1997, 3065, 3098,
3487      1997, 3062, 3078, 1988, 3075, 2001, 2001, 2001, 1995, 2001,
3488      3078, 3067, 2001, 2004, 2004, 2004, 3063, 1982, 2005, 2005,
3489      2005, 3103, 2005, 3066, 3072, 2005, 1442, 2009, 2009, 2009,
3490      2004, 2009, 3103, 3072, 2009, 2012, 2012, 2012, 1988, 2014,
3491      2014, 2014, 3068, 2014, 3069, 1995, 2014, 2020, 2020, 2020,
3492      2022, 2022, 2022, 2012, 2023, 2023, 2023, 3067, 2023, 3093,
3493      1441, 2023, 2024, 2024, 2024, 2020, 3079, 2022, 2026, 2026,
3494      2026, 2027, 2027, 2027, 3079, 2027, 3084, 3081, 2027, 3068,
3495
3496      2024, 3069, 2034, 2034, 2034, 2026, 2037, 2037, 2037, 3076,
3497      2037, 3093, 3085, 2037, 2040, 2040, 2040, 3077, 2040, 2012,
3498      2034, 2040, 2044, 2044, 2044, 2046, 2046, 2046, 2047, 2047,
3499      2047, 2048, 2048, 2048, 3082, 2048, 3073, 3084, 2048, 1440,
3500      2044, 3094, 2024, 2046, 3081, 3073, 2047, 2051, 2051, 2051,
3501      3094, 2051, 3083, 3085, 2051, 3076, 2054, 2054, 2054, 1437,
3502      2055, 2055, 2055, 3077, 2047, 2056, 2056, 2056, 2057, 2057,
3503      2057, 3082, 3090, 2044, 2054, 1436, 2054, 2055, 2058, 2058,
3504      2058, 1435, 2056, 1432, 3086, 2057, 2059, 2059, 2059, 3083,
3505      3088, 2046, 2061, 2061, 2061, 2058, 2062, 2062, 2062, 2063,
3506
3507      2063, 2063, 1427, 1424, 2059, 2066, 2066, 2066, 1421, 3090,
3508      2061, 2067, 2067, 2067, 2062, 2067, 2056, 2063, 2067, 3086,
3509      2070, 2070, 2070, 2071, 2071, 2071, 2072, 2072, 2072, 2073,
3510      2073, 2073, 2057, 2076, 2076, 2076, 3088, 2058, 2070, 2078,
3511      2078, 2078, 2079, 2079, 2079, 2080, 2080, 2080, 2081, 2081,
3512      2081, 2059, 2061, 2082, 2082, 2082, 2083, 2083, 2083, 2086,
3513      2086, 2086, 2087, 2087, 2087, 2088, 2088, 2088, 2090, 2090,
3514      2090, 2093, 2093, 2093, 2094, 2094, 2094, 1412, 2094, 2070,
3515      3089, 2094, 2097, 2097, 2097, 1410, 2090, 3087, 2093, 2098,
3516      2098, 2098, 3096, 2100, 2100, 2100, 3099, 2100, 1409, 2097,
3517
3518      2100, 2113, 2113, 2113, 2114, 2114, 2114, 2098, 2114, 2115,
3519      2115, 2114, 2115, 3097, 2116, 2116, 1403, 2116, 3091, 2113,
3520      2115, 1402, 3087, 2115, 3096, 2116, 3089, 2115, 2116, 2117,
3521      2117, 2117, 2116, 2118, 2118, 2118, 2122, 2122, 2122, 2124,
3522      2124, 2124, 1400, 2124, 3099, 3097, 2124, 1399, 2097, 2127,
3523      2127, 2127, 2128, 2128, 2128, 3091, 2128, 3095, 3100, 2128,
3524      1398, 3101, 2113, 2131, 2131, 2131, 3095, 2127, 2132, 2132,
3525      2132, 2140, 2140, 2140, 2141, 2141, 2141, 3102, 2144, 2144,
3526      2144, 2131, 2144, 1397, 1396, 2144, 2132, 2147, 2147, 2147,
3527      3100, 3102, 2141, 3101, 1395, 2127, 2150, 2150, 2150, 2155,
3528
3529      2155, 2155, 1394, 1393, 2147, 2157, 2157, 2157, 2158, 2158,
3530      2158, 1391, 2158, 1390, 2150, 2158, 1388, 2155, 1387, 2132,
3531      1385, 1383, 2157, 2161, 2161, 2161, 2162, 2162, 2162, 2163,
3532      2163, 2163, 1382, 2163, 2141, 1381, 2163, 2166, 2166, 2166,
3533      1380, 2161, 1379, 2162, 2167, 2167, 2167, 2172, 2172, 2172,
3534      2174, 2174, 2174, 1378, 2166, 2176, 2176, 2176, 2177, 2177,
3535      2177, 2167, 1376, 1375, 2172, 2178, 2178, 2178, 2179, 2179,
3536      2179, 1374, 2162, 2176, 2161, 2177, 2180, 2180, 2180, 2181,
3537      2181, 2181, 1373, 2178, 1364, 1349, 2179, 2183, 2183, 2183,
3538      1348, 1343, 2166, 1342, 2180, 1341, 2181, 1339, 2172, 2182,
3539
3540      2182, 2182, 1332, 2182, 2183, 2167, 2182, 2184, 2184, 2184,
3541      2185, 2185, 2185, 2180, 2186, 2186, 2186, 2187, 2187, 2187,
3542      2188, 2188, 2188, 1331, 2184, 2178, 1313, 2185, 1308, 2179,
3543      1305, 1304, 2186, 2189, 2189, 2189, 1301, 1296, 2188, 2191,
3544      2191, 2191, 2194, 2194, 2194, 2195, 2195, 2195, 2196, 2196,
3545      2196, 2189, 2197, 2197, 2197, 1287, 1286, 2191, 2184, 1285,
3546      1281, 2185, 1276, 2195, 2200, 2200, 2200, 2201, 2201, 2201,
3547      2202, 2202, 2202, 2203, 2203, 2203, 2207, 2207, 2207, 2210,
3548      2210, 2210, 1272, 2211, 2211, 2211, 2188, 2211, 1264, 1259,
3549      2211, 2223, 2223, 2223, 2207, 1258, 2210, 2236, 2236, 2236,
3550
3551      1252, 2191, 2239, 2239, 2239, 2241, 2241, 2241, 1251, 2223,
3552      2242, 2242, 2242, 2244, 2244, 2244, 2251, 2251, 2251, 2252,
3553      2252, 2252, 1250, 2241, 2253, 2253, 2253, 1249, 2242, 1244,
3554      1243, 2244, 1242, 2251, 1241, 2256, 2256, 2256, 1240, 2257,
3555      2257, 2257, 2253, 2257, 1239, 1238, 2257, 2259, 2259, 2259,
3556      1228, 2223, 2256, 1227, 2260, 2260, 2260, 2264, 2264, 2264,
3557      2266, 2266, 2266, 1226, 2259, 1225, 2267, 2267, 2267, 1213,
3558      2267, 2241, 2260, 2267, 2264, 1212, 1207, 2266, 2268, 2268,
3559      2268, 2253, 2269, 2269, 2269, 2270, 2270, 2270, 1206, 2270,
3560      1201, 1200, 2270, 2271, 2271, 2271, 2268, 1181, 1177, 2269,
3561
3562      2272, 2272, 2272, 2273, 2273, 2273, 2278, 2278, 2278, 1171,
3563      2271, 2280, 2280, 2280, 2282, 2282, 2282, 2272, 1167, 1166,
3564      2273, 1165, 1164, 2278, 2284, 2284, 2284, 2285, 2285, 2285,
3565      1163, 2285, 2282, 1162, 2285, 2286, 2286, 2286, 2287, 2287,
3566      2287, 2284, 2288, 2288, 2288, 2271, 1161, 2289, 2289, 2289,
3567      1160, 2289, 1159, 2286, 2289, 1158, 2287, 1157, 2272, 1156,
3568      2288, 2273, 2292, 2292, 2292, 2293, 2293, 2293, 1151, 2293,
3569      1143, 1141, 2293, 2294, 2294, 2294, 2295, 2295, 2295, 2292,
3570      2296, 2296, 2296, 2298, 2298, 2298, 2299, 2299, 2299, 1135,
3571      2294, 1133, 1124, 2295, 2303, 2303, 2303, 1119, 2296, 2307,
3572
3573      2307, 2307, 1108, 1106, 2299, 2287, 2288, 2311, 2311, 2311,
3574      1105, 1104, 2303, 2312, 2312, 2312, 1102, 2312, 1101, 1100,
3575      2312, 2326, 2326, 2326, 2311, 2343, 2343, 2343, 2345, 2345,
3576      2345, 2346, 2346, 2346, 2349, 2349, 2349, 1099, 1098, 2326,
3577      2352, 2352, 2352, 2353, 2353, 2353, 2345, 2353, 1097, 2346,
3578      2353, 2349, 2354, 2354, 2354, 1095, 1094, 2352, 2357, 2357,
3579      2357, 1093, 2357, 1092, 1091, 2357, 2361, 2361, 2361, 1090,
3580      2354, 2362, 2362, 2362, 1089, 2362, 1088, 1087, 2362, 1086,
3581      1085, 2326, 1084, 2361, 2364, 2364, 2364, 2365, 2365, 2365,
3582      2366, 2366, 2366, 1083, 2366, 1077, 1076, 2366, 1075, 2345,
3583
3584      1072, 2364, 1071, 1070, 2365, 2367, 2367, 2367, 2368, 2368,
3585      2368, 1068, 2368, 1064, 1061, 2368, 2371, 2371, 2371, 2373,
3586      2373, 2373, 2367, 2373, 1052, 1051, 2373, 2376, 2376, 2376,
3587      2377, 2377, 2377, 1048, 2371, 2378, 2378, 2378, 2381, 2381,
3588      2381, 2382, 2382, 2382, 2376, 2382, 1047, 2377, 2382, 2383,
3589      2383, 2383, 2378, 1046, 1045, 2381, 2384, 2384, 2384, 1044,
3590      2385, 2385, 2385, 1030, 2385, 1023, 2383, 2385, 2388, 2388,
3591      2388, 1015, 1014, 2384, 2390, 2390, 2390, 2391, 2391, 2391,
3592      1013, 2377, 2376, 2395, 2395, 2395, 2388, 2392, 2392, 2392,
3593      2378, 2392, 2390, 1010, 2392, 2391, 1007, 2396, 2396, 2396,
3594
3595      2395, 2396, 1004,  999, 2396, 2397, 2397, 2397, 2398, 2398,
3596      2398,  996, 2398,  995,  991, 2398, 2399, 2399, 2399, 2405,
3597      2405, 2405, 2397,  989, 2409, 2409, 2409,  986, 2410, 2410,
3598      2410,  985, 2410,  984, 2399, 2410,  983,  982, 2391,  981,
3599      2390, 2409, 2428, 2428, 2428, 2444, 2444, 2444, 2446, 2446,
3600      2446, 2447, 2447, 2447, 2448, 2448, 2448, 2449, 2449, 2449,
3601      2428, 2449,  980,  976, 2449,  972, 2446,  965, 2447,  964,
3602       963, 2448, 2450, 2450, 2450,  960, 2450,  959,  956, 2450,
3603      2453, 2453, 2453, 2458, 2458, 2458,  955, 2458,  954,  951,
3604      2458,  950,  947, 2428, 2462, 2462, 2462, 2447, 2453, 2463,
3605
3606      2463, 2463,  942, 2463,  939,  936, 2463, 2467, 2467, 2467,
3607      2446, 2462, 2464, 2464, 2464,  935, 2464,  932,  931, 2464,
3608       930, 2468, 2468, 2468, 2467, 2468,  929,  928, 2468, 2469,
3609      2469, 2469, 2470, 2470, 2470, 2471, 2471, 2471, 2472, 2472,
3610      2472,  926, 2472,  925,  924, 2472, 2469,  923,  922, 2470,
3611       921,  917, 2471, 2475, 2475, 2475, 2476, 2476, 2476,  912,
3612      2476,  911,  910, 2476, 2477, 2477, 2477, 2478, 2478, 2478,
3613      2475, 2478,  909,  906, 2478, 2485, 2485, 2485, 2486, 2486,
3614      2486, 2477,  905,  904, 2471,  902,  898, 2469, 2487, 2487,
3615      2487,  894, 2487, 2485,  893, 2487, 2486, 2490, 2490, 2490,
3616
3617       890, 2490,  887,  886, 2490, 2495, 2495, 2495, 2497, 2497,
3618      2497, 2498, 2498, 2498, 2501, 2501, 2501,  885, 2501,  884,
3619       883, 2501, 2495, 2495,  882,  880, 2485, 2512, 2512, 2512,
3620      2521, 2521, 2521, 2537, 2537, 2537, 2538, 2538, 2538, 2539,
3621      2539, 2539,  879,  878, 2512, 2486,  877,  876, 2521, 2540,
3622      2540, 2540, 2541, 2541, 2541,  875, 2541, 2539,  874, 2541,
3623      2543, 2543, 2543,  873, 2543,  872, 2540, 2543, 2550, 2550,
3624      2550,  871, 2550,  870,  869, 2550, 2553, 2553, 2553, 2521,
3625      2553,  868,  867, 2553, 2556, 2556, 2556, 2557, 2557, 2557,
3626      2539, 2558, 2558, 2558,  866, 2558,  865,  864, 2558,  863,
3627
3628       862, 2556,  858,  857, 2557, 2559, 2559, 2559, 2560, 2560,
3629      2560,  855, 2560,  854,  853, 2560, 2563, 2563, 2563,  852,
3630      2563,  851, 2559, 2563, 2572, 2572, 2572, 2573, 2573, 2573,
3631      2579, 2579, 2579,  847,  845, 2556, 2580, 2580, 2580, 2581,
3632      2581, 2581, 2572, 2581,  844, 2573, 2581, 2579, 2579, 2582,
3633      2582, 2582,  843, 2580, 2580,  842,  838, 2581, 2583, 2583,
3634      2583, 2584, 2584, 2584, 2585, 2585, 2585, 2594, 2594, 2594,
3635      2595, 2595, 2595,  834, 2595,  833, 2559, 2595, 2604, 2604,
3636      2604, 2619, 2619, 2619, 2594, 2620, 2620, 2620, 2621, 2621,
3637      2621,  830,  829, 2573,  828,  827, 2604, 2622, 2622, 2622,
3638
3639       826, 2622,  825,  824, 2622,  821, 2621, 2628, 2628, 2628,
3640      2630, 2630, 2630, 2631, 2631, 2631,  820, 2631,  819,  818,
3641      2631, 2634, 2634, 2634, 2628,  815,  814, 2630, 2649, 2649,
3642      2649, 2651, 2651, 2651, 2657, 2657, 2657,  813, 2634,  810,
3643       808, 2658, 2658, 2658, 2604, 2658, 2649,  805, 2658, 2651,
3644       804, 2657, 2657, 2659, 2659, 2659,  803, 2659,  802, 2658,
3645      2659, 2662, 2662, 2662, 2663, 2663, 2663, 2664, 2664, 2664,
3646       801, 2659, 2673, 2673, 2673,  798, 2673,  797,  796, 2673,
3647       795,  794, 2651, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
3648      2660, 2660,  791,  790, 2660, 2682, 2682, 2682,  789, 2660,
3649
3650      2660, 2660, 2660, 2660, 2693, 2693, 2693, 2694, 2694, 2694,
3651      2699, 2699, 2699, 2682, 2700, 2700, 2700,  788, 2700,  786,
3652       783, 2700, 2702, 2702, 2702, 2694,  782, 2699, 2660, 2660,
3653      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2702,
3654       780, 2661, 2704, 2704, 2704,  777, 2661, 2661, 2661, 2661,
3655      2661, 2703, 2703, 2703,  775, 2703,  772,  771, 2703, 2704,
3656      2705, 2705, 2705,  770, 2705,  769,  767, 2705, 2718, 2718,
3657      2718, 2743, 2743, 2743,  766, 2661, 2661, 2724, 2724, 2724,
3658       765, 2724,  762,  761, 2724,  760, 2718,  759,  758, 2743,
3659      2778, 2778, 2778,  757,  756, 2724, 2727, 2727, 2727, 2727,
3660
3661      2727, 2727, 2727, 2727, 2727,  755,  754, 2727, 2778,  752,
3662       750,  749, 2727, 2727, 2727, 2727, 2727, 2756, 2756, 2756,
3663       746, 2756,  743,  739, 2756, 2760, 2760, 2760,  738, 2760,
3664       737,  734, 2760, 2763, 2763, 2763,  731, 2763,  730,  729,
3665      2763, 2727, 2727, 2728, 2728, 2728, 2728, 2728, 2728, 2728,
3666      2728, 2728,  726,  725, 2728, 2790, 2790, 2790,  721, 2728,
3667      2728, 2728, 2728, 2728, 2807, 2807, 2807, 2808, 2808, 2808,
3668      2809, 2809, 2809, 2790, 2790, 2814, 2814, 2814, 2825, 2825,
3669      2825, 2807,  720,  718, 2808,  715,  714, 2809, 2728, 2728,
3670       713,  711, 2814, 2829, 2829, 2829, 2825, 2840, 2840, 2840,
3671
3672      2841, 2841, 2841,  701, 2841,  700,  698, 2841, 2842, 2842,
3673      2842, 2829,  697,  695, 2840, 2843, 2843, 2843,  694, 2843,
3674       693,  689, 2843,  688,  687, 2842, 2844, 2844, 2844, 2845,
3675      2845, 2845,  686, 2845,  682,  681, 2845, 2852, 2852, 2852,
3676      2862, 2862, 2862, 2844, 2829, 2853, 2853, 2853,  680, 2853,
3677       679,  678, 2853,  677, 2852, 2872, 2872, 2872, 2862, 2872,
3678       676,  674, 2872, 2875, 2875, 2875,  671, 2875,  670,  668,
3679      2875, 2878, 2878, 2878,  666, 2878,  663, 2862, 2878, 2887,
3680      2887, 2887,  662, 2887,  656,  654, 2887, 2994, 2994, 2994,
3681      3003, 3003, 3003,  652, 3003,  649,  648, 3003, 3104, 3104,
3682
3683      3104, 3105, 3105, 3105,  644, 2994,  643,  642, 3003,  639,
3684       638,  637,  636,  633,  632,  631, 3104,  630,  629, 3105,
3685      3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3109,
3686      3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3110, 3110,
3687      3110, 3110, 3110, 3110, 3110, 3110, 3110, 3111, 3111, 3111,
3688      3111, 3111, 3111, 3111, 3111, 3111, 3112, 3112, 3112, 3112,
3689      3112, 3112, 3112, 3112, 3112, 3113, 3113, 3113, 3113, 3113,
3690      3113, 3113, 3113, 3113, 3114, 3114, 3114, 3114, 3114, 3114,
3691      3114, 3114, 3114, 3115, 3115, 3115, 3115, 3115, 3115, 3115,
3692      3115, 3115, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116,
3693
3694      3116, 3117, 3117, 3117, 3117, 3117, 3117, 3117, 3117, 3117,
3695      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3119,
3696      3119, 3119, 3119, 3119, 3119, 3119, 3119, 3119, 3120, 3120,
3697      3120, 3120, 3120, 3120, 3120, 3120, 3120, 3121, 3121, 3121,
3698      3121, 3121, 3121, 3121, 3121, 3121, 3122, 3122, 3122, 3122,
3699      3122, 3122, 3122, 3122, 3122, 3123, 3123, 3123, 3123, 3123,
3700      3123, 3123, 3123, 3123, 3124, 3124, 3124, 3124, 3124, 3124,
3701      3124, 3124, 3124, 3125, 3125, 3125, 3125, 3125, 3125, 3125,
3702      3125, 3125, 3126, 3126, 3126, 3126, 3126, 3126, 3126, 3126,
3703      3126, 3127, 3127, 3127, 3127, 3127, 3127, 3127, 3127, 3127,
3704
3705      3128, 3128, 3128, 3128, 3128, 3128, 3128, 3128, 3128, 3129,
3706      3129, 3129, 3129, 3129, 3129, 3129, 3129, 3129, 3130, 3130,
3707      3130, 3130, 3130, 3130, 3130, 3130, 3130, 3131, 3131, 3131,
3708      3131, 3131, 3131, 3131, 3131, 3131, 3132, 3132, 3132, 3132,
3709      3132, 3132, 3132, 3132, 3132, 3133, 3133, 3133, 3133, 3133,
3710      3133, 3133, 3133, 3133, 3134, 3134, 3134, 3134, 3134, 3134,
3711      3134, 3134, 3134, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
3712      3135, 3135, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
3713      3136, 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137,
3714      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3139,
3715
3716      3139, 3139, 3139, 3139, 3139, 3139, 3139, 3139, 3140, 3140,
3717      3140, 3140, 3140, 3140, 3140, 3140, 3140, 3141, 3141, 3141,
3718      3141, 3141, 3141, 3141, 3141, 3141, 3142, 3142, 3142, 3142,
3719      3142, 3142, 3142, 3142, 3142, 3143, 3143, 3143, 3143, 3143,
3720      3143, 3143, 3143, 3143, 3144, 3144, 3144, 3144, 3144, 3144,
3721      3144, 3144, 3144, 3145, 3145, 3145, 3145, 3145, 3145, 3145,
3722      3145, 3145, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146,
3723      3146, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147,
3724      3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3149,
3725      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3150, 3150,
3726
3727      3150, 3150, 3150, 3150, 3150, 3150, 3150, 3151, 3151, 3151,
3728      3151, 3151, 3151, 3151, 3151, 3151, 3152, 3152, 3152, 3152,
3729      3152, 3152, 3152, 3152, 3152, 3153, 3153, 3153, 3153, 3153,
3730      3153, 3153, 3153, 3153, 3154, 3154, 3154, 3154, 3154, 3154,
3731      3154, 3154, 3154, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
3732      3155, 3155, 3156, 3156, 3156, 3156, 3156, 3156, 3156, 3156,
3733      3156, 3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157,
3734      3158, 3158, 3158, 3158, 3158, 3158, 3158, 3158, 3158, 3159,
3735      3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3160, 3160,
3736      3160, 3160, 3160, 3160, 3160, 3160, 3160, 3161, 3161, 3161,
3737
3738      3161, 3161, 3161, 3161, 3161, 3161, 3162, 3162, 3162, 3162,
3739      3162, 3162, 3162, 3162, 3162, 3163, 3163, 3163, 3163, 3163,
3740      3163, 3163, 3163, 3163, 3164, 3164, 3164, 3164, 3164, 3164,
3741      3164, 3164, 3164, 3165, 3165, 3165,  623,  622,  620, 3165,
3742      3166, 3166, 3166,  614,  613,  609, 3166, 3167, 3167, 3167,
3743       602,  598,  592, 3167, 3168, 3168, 3168,  588,  584,  580,
3744      3168, 3169, 3169, 3169,  579,  578,  577, 3169, 3170, 3170,
3745      3170,  576,  572,  568, 3170, 3171, 3171, 3171,  565,  564,
3746       563, 3171, 3172, 3172, 3172,  559,  555,  552, 3172, 3173,
3747      3173, 3173,  551,  547,  541, 3173, 3174, 3174, 3174,  540,
3748
3749       536,  532, 3174, 3175, 3175, 3175,  528,  527,  523, 3175,
3750      3176, 3176, 3176,  520,  519,  514, 3176, 3177, 3177, 3177,
3751       510,  502,  501, 3177, 3178, 3178, 3178,  500,  496,  490,
3752      3178, 3179, 3179, 3179,  489,  488,  484, 3179, 3180, 3180,
3753      3180,  478,  477,  473, 3180, 3181, 3181, 3181,  467,  466,
3754       465, 3181, 3182, 3182, 3182,  464,  463,  462, 3182, 3183,
3755      3183, 3183,  461,  457,  448, 3183, 3184, 3184, 3184,  447,
3756       446,  444, 3184, 3185, 3185, 3185,  440,  434,  433, 3185,
3757      3186, 3186, 3186,  432,  428,  424, 3186, 3187, 3187, 3187,
3758       420,  419,  418, 3187, 3188, 3188, 3188,  417,  416,  412,
3759
3760      3188, 3189, 3189, 3189,  406,  405,  401, 3189, 3190, 3190,
3761      3190,  395,  394,  390, 3190, 3191, 3191, 3191, 3191, 3191,
3762      3191, 3191,  383, 3191, 3192, 3192, 3192,  382,  381,  377,
3763      3192, 3193,  370,  369,  368, 3193, 3194, 3194, 3194,  367,
3764       363,  359, 3194, 3195,  354,  346,  345, 3195, 3196, 3196,
3765      3196,  341,  335,  334, 3196, 3197,  333,  329,  320, 3197,
3766      3198, 3198, 3198,  318,  317,  313, 3198, 3199,  310,  308,
3767       307, 3199, 3200, 3200, 3200,  306,  302,  298, 3200, 3201,
3768       295,  291,  288, 3201, 3202, 3202, 3202,  287,  279,  275,
3769      3202, 3203,  271,  270,  269, 3203, 3204, 3204, 3204,  263,
3770
3771       262,  260, 3204, 3205,  257,  245,    0, 3205, 3206, 3206,
3772      3206,    0,    0,    0, 3206, 3207,    0,    0,    0, 3207,
3773      3208, 3208, 3208,    0,    0,    0, 3208, 3209,    0,    0,
3774         0, 3209, 3210, 3210, 3210,    0,    0,    0, 3210, 3211,
3775         0,    0,    0, 3211, 3212, 3212, 3212,    0,    0,    0,
3776      3212, 3213,    0,    0,    0, 3213, 3214, 3214, 3214,    0,
3777         0,    0, 3214, 3215,    0,    0,    0, 3215, 3216, 3216,
3778      3216,    0,    0,    0, 3216, 3217,    0,    0,    0, 3217,
3779      3218, 3218, 3218,    0,    0,    0, 3218, 3219,    0,    0,
3780         0, 3219, 3220, 3220, 3220,    0,    0,    0, 3220, 3221,
3781
3782         0,    0,    0, 3221, 3222, 3222, 3222,    0,    0,    0,
3783      3222, 3223,    0,    0,    0, 3223, 3224, 3224, 3224,    0,
3784         0,    0, 3224, 3225,    0,    0,    0, 3225, 3226, 3226,
3785      3226,    0,    0,    0, 3226, 3227,    0,    0,    0, 3227,
3786      3228, 3228, 3228,    0,    0,    0, 3228, 3229,    0,    0,
3787         0, 3229, 3230, 3230, 3230,    0,    0,    0, 3230, 3231,
3788         0,    0,    0, 3231, 3232, 3232, 3232,    0,    0,    0,
3789      3232, 3233,    0,    0,    0, 3233, 3234, 3234, 3234,    0,
3790         0,    0, 3234, 3235,    0,    0,    0, 3235, 3236, 3236,
3791      3236,    0,    0,    0, 3236, 3237,    0,    0,    0, 3237,
3792
3793      3238, 3238, 3238,    0,    0,    0, 3238, 3239,    0,    0,
3794         0, 3239, 3240, 3240, 3240,    0,    0,    0, 3240, 3241,
3795         0,    0,    0, 3241, 3242, 3242, 3242,    0,    0,    0,
3796      3242, 3243,    0,    0,    0, 3243, 3244, 3244, 3244, 3244,
3797      3244, 3244, 3244, 3244, 3244, 3245,    0,    0,    0,    0,
3798      3245, 3246, 3246, 3246,    0,    0,    0, 3246, 3247, 3247,
3799      3247, 3247,    0,    0, 3247, 3247, 3248, 3248, 3248,    0,
3800         0,    0, 3248, 3249, 3249, 3249, 3249,    0,    0, 3249,
3801      3249, 3250, 3250, 3250,    0,    0,    0, 3250, 3251, 3251,
3802      3251, 3251,    0,    0, 3251, 3251, 3252, 3252, 3252,    0,
3803
3804         0,    0, 3252, 3253, 3253, 3253, 3253,    0,    0, 3253,
3805      3253, 3254, 3254, 3254,    0,    0,    0, 3254, 3255, 3255,
3806      3255, 3255,    0,    0, 3255, 3255, 3256, 3256, 3256,    0,
3807         0,    0, 3256, 3257, 3257, 3257, 3257,    0,    0, 3257,
3808      3257, 3258, 3258, 3258,    0,    0,    0, 3258, 3259, 3259,
3809      3259, 3259,    0,    0, 3259, 3259, 3260, 3260, 3260,    0,
3810         0,    0, 3260, 3261, 3261, 3261, 3261,    0,    0, 3261,
3811      3261, 3262, 3262, 3262,    0,    0,    0, 3262, 3263, 3263,
3812      3263, 3263,    0,    0, 3263, 3263, 3264, 3264, 3264,    0,
3813         0,    0, 3264, 3265, 3265, 3265, 3265,    0,    0, 3265,
3814
3815      3265, 3266, 3266, 3266,    0,    0,    0, 3266, 3267, 3267,
3816      3267, 3267,    0,    0, 3267, 3267, 3268, 3268, 3268,    0,
3817         0,    0, 3268, 3269, 3269, 3269, 3269,    0,    0, 3269,
3818      3269, 3270, 3270, 3270,    0,    0,    0, 3270, 3271, 3271,
3819      3271, 3271,    0,    0, 3271, 3271, 3272, 3272, 3272,    0,
3820         0,    0, 3272, 3273, 3273, 3273, 3273,    0,    0, 3273,
3821      3273, 3274, 3274, 3274,    0,    0,    0, 3274, 3275, 3275,
3822      3275, 3275,    0,    0, 3275, 3275, 3276, 3276, 3276,    0,
3823         0,    0, 3276, 3277, 3277, 3277, 3277,    0,    0, 3277,
3824      3277, 3278, 3278, 3278,    0,    0,    0, 3278, 3279, 3279,
3825
3826      3279, 3279,    0,    0, 3279, 3279, 3280, 3280, 3280, 3280,
3827         0, 3280,    0, 3280, 3281, 3281, 3281, 3281,    0,    0,
3828      3281, 3281, 3282, 3282, 3282, 3282,    0, 3282,    0, 3282,
3829      3283, 3283, 3283, 3283,    0,    0, 3283, 3283, 3284, 3284,
3830      3284,    0,    0,    0, 3284, 3285, 3285, 3285, 3285,    0,
3831         0, 3285, 3285, 3286, 3286, 3286, 3286,    0, 3286,    0,
3832      3286, 3287, 3287, 3287, 3287,    0,    0, 3287, 3287, 3288,
3833      3288, 3288, 3288,    0, 3288,    0, 3288, 3289, 3289, 3289,
3834      3289,    0,    0, 3289, 3289, 3290, 3290, 3290,    0,    0,
3835         0, 3290, 3291, 3291, 3291, 3291,    0,    0, 3291, 3291,
3836
3837      3292, 3292, 3292,    0,    0,    0, 3292, 3293, 3293, 3293,
3838      3293,    0,    0, 3293, 3293, 3294, 3294, 3294, 3294,    0,
3839         0, 3294, 3294, 3295, 3295, 3295,    0,    0,    0, 3295,
3840      3296, 3296, 3296, 3296,    0,    0, 3296, 3296, 3297, 3297,
3841      3297, 3297, 3297, 3297, 3297, 3297, 3297, 3298,    0, 3298,
3842         0,    0, 3298, 3299, 3299, 3299,    0,    0,    0, 3299,
3843      3300, 3300, 3300, 3300,    0,    0, 3300, 3300, 3301, 3301,
3844      3301, 3301,    0, 3301,    0, 3301, 3302, 3302, 3302, 3302,
3845         0,    0, 3302, 3302, 3303, 3303, 3303, 3303,    0, 3303,
3846         0, 3303, 3304, 3304, 3304, 3304,    0,    0, 3304, 3304,
3847
3848      3305, 3305, 3305,    0,    0,    0, 3305, 3306, 3306, 3306,
3849      3306,    0,    0, 3306, 3306, 3307, 3307, 3307,    0,    0,
3850         0, 3307, 3308, 3308, 3308, 3308,    0,    0, 3308, 3308,
3851      3309, 3309, 3309,    0,    0,    0, 3309, 3310, 3310, 3310,
3852      3310,    0,    0, 3310, 3310, 3311, 3311, 3311,    0,    0,
3853         0, 3311, 3312, 3312, 3312, 3312,    0,    0, 3312, 3312,
3854      3313, 3313, 3313,    0,    0,    0, 3313, 3314, 3314, 3314,
3855      3314,    0,    0, 3314, 3314, 3315, 3315, 3315, 3315,    0,
3856      3315,    0, 3315, 3316, 3316, 3316, 3316,    0,    0, 3316,
3857      3316, 3317, 3317, 3317, 3317,    0, 3317,    0, 3317, 3318,
3858
3859      3318, 3318, 3318,    0,    0, 3318, 3318, 3319, 3319, 3319,
3860         0,    0,    0, 3319, 3320, 3320, 3320, 3320,    0,    0,
3861      3320, 3320, 3321, 3321, 3321, 3321,    0, 3321,    0, 3321,
3862      3322, 3322, 3322, 3322,    0,    0, 3322, 3322, 3323, 3323,
3863      3323,    0,    0,    0, 3323, 3324, 3324, 3324, 3324,    0,
3864         0, 3324, 3324, 3325, 3325, 3325,    0,    0,    0, 3325,
3865      3326, 3326, 3326, 3326,    0,    0, 3326, 3326, 3327, 3327,
3866      3327,    0,    0,    0, 3327, 3328, 3328, 3328, 3328,    0,
3867         0, 3328, 3328, 3329, 3329, 3329,    0,    0,    0, 3329,
3868      3330, 3330, 3330, 3330,    0,    0, 3330, 3330, 3331, 3331,
3869
3870      3331,    0,    0,    0, 3331, 3332, 3332, 3332, 3332,    0,
3871         0, 3332, 3332, 3333, 3333, 3333,    0,    0,    0, 3333,
3872      3334, 3334, 3334, 3334,    0,    0, 3334, 3334, 3335, 3335,
3873      3335,    0,    0,    0, 3335, 3336, 3336, 3336, 3336,    0,
3874         0, 3336, 3336, 3337, 3337, 3337,    0,    0,    0, 3337,
3875      3338, 3338, 3338, 3338,    0,    0, 3338, 3338, 3339, 3339,
3876      3339, 3339,    0,    0, 3339, 3339, 3340, 3340, 3340,    0,
3877         0,    0, 3340, 3341, 3341, 3341, 3341,    0,    0, 3341,
3878      3341, 3342, 3342, 3342,    0,    0,    0, 3342, 3343, 3343,
3879      3343, 3343,    0,    0, 3343, 3343, 3344, 3344, 3344,    0,
3880
3881         0,    0, 3344, 3345, 3345, 3345, 3345,    0,    0, 3345,
3882      3345, 3346, 3346, 3346, 3346,    0,    0, 3346, 3346, 3347,
3883      3347, 3347,    0,    0,    0, 3347, 3348, 3348, 3348, 3348,
3884         0,    0, 3348, 3348, 3349, 3349, 3349, 3349, 3349, 3349,
3885      3349, 3349, 3349, 3350, 3350, 3350, 3350, 3350, 3350, 3350,
3886      3350, 3350, 3351, 3351, 3351,    0,    0,    0, 3351, 3352,
3887      3352, 3352, 3352,    0,    0, 3352, 3352, 3353, 3353, 3353,
3888      3353,    0,    0, 3353, 3353, 3354, 3354, 3354,    0,    0,
3889         0, 3354, 3355, 3355, 3355, 3355,    0,    0, 3355, 3355,
3890      3356, 3356, 3356,    0,    0,    0, 3356, 3357, 3357, 3357,
3891
3892      3357,    0,    0, 3357, 3357, 3358, 3358, 3358,    0,    0,
3893         0, 3358, 3359, 3359, 3359, 3359,    0,    0, 3359, 3359,
3894      3360, 3360, 3360,    0,    0,    0, 3360, 3361, 3361, 3361,
3895         0,    0,    0, 3361, 3362, 3362, 3362, 3362,    0,    0,
3896      3362, 3362, 3363, 3363, 3363,    0,    0,    0, 3363, 3364,
3897      3364, 3364, 3364,    0,    0, 3364, 3364, 3365, 3365, 3365,
3898      3365,    0,    0, 3365, 3365, 3366, 3366, 3366,    0,    0,
3899         0, 3366, 3367, 3367, 3367, 3367,    0,    0, 3367, 3367,
3900      3368, 3368, 3368,    0,    0,    0, 3368, 3369, 3369, 3369,
3901      3369,    0,    0, 3369, 3369, 3370, 3370, 3370, 3370,    0,
3902
3903         0, 3370, 3370, 3371, 3371, 3371,    0,    0,    0, 3371,
3904      3372, 3372, 3372, 3372,    0,    0, 3372, 3372, 3373, 3373,
3905      3373,    0,    0,    0, 3373, 3374, 3374, 3374, 3374,    0,
3906         0, 3374, 3374, 3375, 3375, 3375,    0,    0,    0, 3375,
3907      3376, 3376, 3376, 3376,    0,    0, 3376, 3376, 3377, 3377,
3908      3377,    0,    0,    0, 3377, 3378, 3378, 3378, 3378,    0,
3909         0, 3378, 3378, 3379, 3379, 3379,    0,    0,    0, 3379,
3910      3380, 3380, 3380, 3380,    0,    0, 3380, 3380, 3381, 3381,
3911      3381,    0,    0,    0, 3381, 3382, 3382, 3382, 3382,    0,
3912         0, 3382, 3382, 3383, 3383, 3383,    0,    0,    0, 3383,
3913
3914      3384, 3384, 3384, 3384,    0,    0, 3384, 3384, 3385, 3385,
3915      3385,    0,    0,    0, 3385, 3386, 3386, 3386, 3386,    0,
3916         0, 3386, 3386, 3387, 3387, 3387, 3387,    0,    0, 3387,
3917      3387, 3388, 3388, 3388,    0,    0,    0, 3388, 3389, 3389,
3918      3389, 3389,    0,    0, 3389, 3389, 3390, 3390, 3390,    0,
3919         0,    0, 3390, 3391, 3391, 3391, 3391,    0,    0, 3391,
3920      3391, 3392, 3392, 3392, 3392,    0, 3392,    0, 3392, 3393,
3921      3393, 3393, 3393,    0,    0, 3393, 3393, 3394, 3394, 3394,
3922      3394,    0,    0, 3394, 3394, 3395, 3395, 3395, 3395,    0,
3923      3395,    0, 3395, 3396, 3396, 3396, 3396,    0,    0, 3396,
3924
3925      3396, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397,
3926      3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3399,
3927      3399, 3399,    0,    0,    0, 3399, 3400, 3400, 3400, 3400,
3928         0,    0, 3400, 3400, 3401, 3401, 3401, 3401,    0,    0,
3929      3401, 3401, 3402, 3402, 3402,    0,    0,    0, 3402, 3403,
3930      3403, 3403, 3403,    0,    0, 3403, 3403, 3404, 3404, 3404,
3931         0,    0,    0, 3404, 3405, 3405, 3405, 3405,    0,    0,
3932      3405, 3405, 3406, 3406, 3406,    0,    0,    0, 3406, 3407,
3933      3407, 3407, 3407,    0,    0, 3407, 3407, 3408, 3408, 3408,
3934         0,    0,    0, 3408, 3409, 3409, 3409,    0,    0,    0,
3935
3936      3409, 3410, 3410, 3410, 3410,    0,    0, 3410, 3410, 3411,
3937      3411, 3411,    0,    0,    0, 3411, 3412, 3412, 3412, 3412,
3938         0,    0, 3412, 3412, 3413, 3413, 3413, 3413,    0,    0,
3939      3413, 3413, 3414, 3414, 3414, 3414,    0, 3414,    0, 3414,
3940      3415, 3415, 3415, 3415,    0,    0, 3415, 3415, 3416, 3416,
3941      3416,    0,    0,    0, 3416, 3417, 3417, 3417, 3417,    0,
3942         0, 3417, 3417, 3418, 3418, 3418, 3418,    0,    0, 3418,
3943      3418, 3419, 3419, 3419,    0,    0,    0, 3419, 3420, 3420,
3944      3420, 3420,    0,    0, 3420, 3420, 3421, 3421, 3421,    0,
3945         0,    0, 3421, 3422, 3422, 3422, 3422,    0,    0, 3422,
3946
3947      3422, 3423, 3423, 3423,    0,    0,    0, 3423, 3424, 3424,
3948      3424, 3424,    0,    0, 3424, 3424, 3425, 3425, 3425,    0,
3949         0,    0, 3425, 3426, 3426, 3426, 3426,    0,    0, 3426,
3950      3426, 3427, 3427, 3427,    0,    0,    0, 3427, 3428, 3428,
3951      3428, 3428,    0,    0, 3428, 3428, 3429, 3429, 3429,    0,
3952         0,    0, 3429, 3430, 3430, 3430, 3430,    0,    0, 3430,
3953      3430, 3431, 3431, 3431, 3431,    0, 3431,    0, 3431, 3432,
3954      3432, 3432, 3432,    0,    0, 3432, 3432, 3433, 3433, 3433,
3955         0,    0,    0, 3433, 3434, 3434, 3434, 3434,    0,    0,
3956      3434, 3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435,
3957
3958      3436, 3436, 3436, 3436,    0, 3436,    0, 3436, 3437, 3437,
3959      3437, 3437,    0,    0, 3437, 3437, 3438, 3438, 3438,    0,
3960         0,    0, 3438, 3439, 3439, 3439, 3439,    0,    0, 3439,
3961      3439, 3440, 3440, 3440, 3440,    0,    0, 3440, 3440, 3441,
3962      3441, 3441, 3441,    0,    0, 3441, 3441, 3442, 3442, 3442,
3963      3442,    0,    0, 3442, 3442, 3443, 3443, 3443, 3443, 3443,
3964      3443, 3443, 3443, 3443, 3444, 3444, 3444, 3444, 3444, 3444,
3965      3444, 3444, 3444, 3445, 3445, 3445, 3445,    0, 3445,    0,
3966      3445, 3446, 3446, 3446, 3446,    0,    0, 3446, 3446, 3447,
3967      3447, 3447, 3447,    0,    0, 3447, 3447, 3448, 3448, 3448,
3968
3969         0,    0,    0, 3448, 3449, 3449, 3449, 3449,    0,    0,
3970      3449, 3449, 3450, 3450, 3450,    0,    0,    0, 3450, 3451,
3971      3451, 3451, 3451,    0,    0, 3451, 3451, 3452, 3452, 3452,
3972      3452,    0, 3452,    0, 3452, 3453, 3453, 3453, 3453,    0,
3973         0, 3453, 3453, 3454, 3454, 3454, 3454,    0, 3454,    0,
3974      3454, 3455, 3455, 3455, 3455,    0, 3455,    0, 3455, 3456,
3975      3456, 3456, 3456,    0,    0, 3456, 3456, 3457, 3457, 3457,
3976      3457,    0, 3457,    0, 3457, 3458, 3458, 3458, 3458,    0,
3977         0, 3458, 3458, 3459, 3459, 3459, 3459,    0,    0, 3459,
3978      3459, 3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461,
3979
3980      3461, 3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,
3981         0,    0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0,
3982      3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465,
3983      3465, 3465,    0,    0,    0, 3465, 3466, 3466, 3466,    0,
3984         0,    0, 3466, 3467, 3467, 3467, 3467,    0,    0, 3467,
3985      3467, 3468, 3468, 3468,    0,    0,    0, 3468, 3469, 3469,
3986      3469, 3469,    0,    0, 3469, 3469, 3470, 3470, 3470,    0,
3987         0,    0, 3470, 3471, 3471, 3471,    0,    0,    0, 3471,
3988      3472, 3472, 3472, 3472,    0,    0, 3472, 3472, 3473, 3473,
3989      3473,    0,    0,    0, 3473, 3474, 3474, 3474, 3474,    0,
3990
3991         0, 3474, 3474, 3475, 3475, 3475,    0,    0,    0, 3475,
3992      3476, 3476, 3476, 3476,    0,    0, 3476, 3476, 3477, 3477,
3993      3477, 3477,    0,    0, 3477, 3477, 3478, 3478, 3478, 3478,
3994         0,    0, 3478, 3478, 3479, 3479, 3479,    0,    0,    0,
3995      3479, 3480, 3480, 3480, 3480,    0,    0, 3480, 3480, 3481,
3996      3481, 3481, 3481,    0,    0, 3481, 3481, 3482, 3482, 3482,
3997      3482,    0,    0, 3482, 3482, 3483, 3483, 3483, 3483, 3483,
3998      3483, 3483, 3483, 3483, 3484, 3484, 3484, 3484, 3484, 3484,
3999      3484, 3484, 3484, 3485, 3485, 3485, 3485,    0,    0, 3485,
4000      3485, 3486, 3486, 3486, 3486,    0,    0, 3486, 3486, 3487,
4001
4002      3487, 3487,    0,    0,    0, 3487, 3488, 3488, 3488,    0,
4003         0,    0, 3488, 3489, 3489, 3489, 3489,    0,    0, 3489,
4004      3489, 3490, 3490, 3490, 3490,    0,    0, 3490, 3490, 3491,
4005      3491, 3491, 3491,    0,    0, 3491, 3491, 3492, 3492, 3492,
4006      3492,    0,    0, 3492, 3492, 3493, 3493, 3493, 3493,    0,
4007         0, 3493, 3493, 3494, 3494, 3494,    0,    0,    0, 3494,
4008      3495, 3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496,
4009      3496,    0,    0,    0, 3496, 3497, 3497, 3497, 3497,    0,
4010         0, 3497, 3497, 3498, 3498, 3498,    0,    0,    0, 3498,
4011      3499, 3499, 3499,    0,    0,    0, 3499, 3500, 3500, 3500,
4012
4013      3500,    0,    0, 3500, 3500, 3501, 3501, 3501,    0,    0,
4014         0, 3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502,
4015      3503, 3503, 3503,    0,    0,    0, 3503, 3504, 3504, 3504,
4016         0,    0,    0, 3504, 3505, 3505, 3505,    0,    0,    0,
4017      3505, 3506, 3506, 3506, 3506,    0,    0, 3506, 3506, 3507,
4018      3507, 3507,    0,    0,    0, 3507, 3508, 3508, 3508, 3508,
4019         0,    0, 3508, 3508, 3509, 3509, 3509, 3509,    0,    0,
4020      3509, 3509, 3510, 3510, 3510, 3510,    0,    0, 3510, 3510,
4021      3511, 3511, 3511, 3511,    0, 3511,    0, 3511, 3512, 3512,
4022      3512, 3512,    0,    0, 3512, 3512, 3513, 3513, 3513, 3513,
4023
4024         0,    0, 3513, 3513, 3514, 3514, 3514, 3514,    0,    0,
4025      3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
4026      3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4027      3517, 3517, 3517, 3517,    0,    0, 3517, 3517, 3518, 3518,
4028      3518, 3518,    0,    0, 3518, 3518, 3519, 3519, 3519,    0,
4029         0,    0, 3519, 3520, 3520, 3520, 3520,    0, 3520,    0,
4030      3520, 3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522,
4031      3522, 3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,
4032      3523,    0,    0, 3523, 3523, 3524, 3524, 3524, 3524,    0,
4033         0, 3524, 3524, 3525, 3525, 3525,    0,    0,    0, 3525,
4034
4035      3526, 3526, 3526, 3526,    0,    0, 3526, 3526, 3527, 3527,
4036      3527,    0,    0,    0, 3527, 3528, 3528, 3528, 3528,    0,
4037         0, 3528, 3528, 3529, 3529, 3529,    0,    0,    0, 3529,
4038      3530, 3530, 3530,    0,    0,    0, 3530, 3531, 3531, 3531,
4039      3531,    0, 3531,    0, 3531, 3532, 3532, 3532, 3532,    0,
4040         0, 3532, 3532, 3533, 3533, 3533, 3533,    0, 3533,    0,
4041      3533, 3534, 3534, 3534,    0,    0,    0, 3534, 3535, 3535,
4042      3535,    0,    0,    0, 3535, 3536, 3536, 3536, 3536,    0,
4043         0, 3536, 3536, 3537, 3537, 3537, 3537,    0, 3537,    0,
4044      3537, 3538, 3538, 3538, 3538,    0,    0, 3538, 3538, 3539,
4045
4046      3539, 3539, 3539,    0,    0, 3539, 3539, 3540, 3540, 3540,
4047      3540,    0,    0, 3540, 3540, 3541, 3541, 3541, 3541,    0,
4048      3541,    0, 3541, 3542, 3542, 3542, 3542,    0,    0, 3542,
4049      3542, 3543, 3543, 3543, 3543,    0,    0, 3543, 3543, 3544,
4050      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3545, 3545,
4051      3545, 3545, 3545, 3545, 3545, 3545, 3545, 3546, 3546, 3546,
4052      3546,    0,    0, 3546, 3546, 3547, 3547, 3547,    0,    0,
4053         0, 3547, 3548, 3548, 3548,    0,    0,    0, 3548, 3549,
4054      3549, 3549, 3549,    0,    0, 3549, 3549, 3550, 3550, 3550,
4055      3550,    0,    0, 3550, 3550, 3551, 3551, 3551, 3551, 3551,
4056
4057      3551, 3551, 3551, 3551, 3552, 3552, 3552, 3552, 3552, 3552,
4058      3552, 3552, 3552, 3553, 3553, 3553, 3553, 3553, 3553, 3553,
4059      3553, 3553, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
4060      3554, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555,
4061      3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3107,
4062      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4063      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4064      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4065      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4066      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4067
4068      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4069      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4070      3107, 3107, 3107, 3107
4071     } ;
4072
4073 /* Table of booleans, true if rule could match eol. */
4074 static yyconst flex_int32_t yy_rule_can_match_eol[525] =
4075     {   0,
4076 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4077     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4078     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4079     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4080     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4081     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4082     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4083     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4084     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4085     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4086     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4087     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4088     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4089     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4090     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4091     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4092     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4093     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4094     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4095     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4096     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4097     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4098     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4099     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4100     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4101     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4102     0, 0, 0, 1, 0,     };
4103
4104 static yy_state_type yy_last_accepting_state;
4105 static char *yy_last_accepting_cpos;
4106
4107 extern int surf_parse__flex_debug;
4108 int surf_parse__flex_debug = 0;
4109
4110 /* The intent behind this definition is that it'll catch
4111  * any uses of REJECT which flex missed.
4112  */
4113 #define REJECT reject_used_but_not_detected
4114 #define yymore() yymore_used_but_not_detected
4115 #define YY_MORE_ADJ 0
4116 #define YY_RESTORE_YY_MORE_OFFSET
4117 char *surf_parse_text;
4118 /* Validating XML processor for src/surf/simgrid.dtd.
4119  *
4120  * This program was generated with the FleXML XML processor generator.
4121  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4122  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4123  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4124  * 
4125  * There are two, intertwined parts to this program, part A and part B.
4126  *
4127  * Part A
4128  * ------
4129  * 
4130  * Some parts, here collectively called "Part A", are found in the 
4131  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4132  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4133  *
4134  * You can redistribute, use, perform, display and/or modify "Part A"
4135  * provided the following two conditions hold:
4136  *
4137  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4138  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4139  *    FITNESS FOR A PARTICULAR PURPOSE.
4140  *
4141  * 2. The program distribution conditions do not in any way affect the
4142  *    distribution conditions of the FleXML system used to generate this
4143  *    file or any version of FleXML derived from that system.
4144  *
4145  * Notice that these are explicit rights granted to you for files
4146  * generated by the FleXML system.  For your rights in connection with
4147  * the FleXML system itself please consult the GNU General Public License.
4148  * 
4149  * Part B
4150  * ------
4151  * 
4152  * The other parts, here collectively called "Part B", and which came 
4153  * from the DTD used by FleXML to generate this program, can be 
4154  * distributed (or not, as the case may be) under the terms of whoever
4155  * wrote them, provided these terms respect and obey the two conditions 
4156  * above under the heading "Part A".
4157  *
4158  * The author of and contributors to FleXML specifically disclaim
4159  * any copyright interest in "Part B", unless "Part B" was written 
4160  * by the author of or contributors to FleXML.
4161  * 
4162  */
4163
4164 /* Version strings. */
4165 const char rcs_surfxml_flexml_skeleton[] =
4166  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4167 const char rcs_surfxml_flexml[] =
4168  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4169
4170 /* ANSI headers. */
4171 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4172 #include <stdio.h>
4173 #include <string.h>
4174 #include <assert.h>
4175 #include <stdarg.h>
4176 #include <ctype.h>
4177      
4178 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4179 # ifndef __STRICT_ANSI__
4180 #  include <io.h>
4181 #  include <process.h>
4182 # endif
4183 #else
4184 # include <unistd.h>
4185 #endif
4186      
4187 #ifndef FLEXML_INDEXSTACKSIZE
4188 #define FLEXML_INDEXSTACKSIZE 1000
4189 #endif
4190
4191 /* Generated definitions. */
4192 #define FLEXML_yylineno
4193 #ifndef FLEXML_BUFFERSTACKSIZE
4194 #define FLEXML_BUFFERSTACKSIZE 1000000
4195 #endif
4196 #define FLEXML_NEED_BUFFERLIT
4197
4198 /* XML processor api. */
4199 /* FleXML-provided data. */
4200 int surfxml_pcdata_ix;
4201 extern char *surfxml_bufferstack;
4202 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4203 AT_surfxml_mount_name AX_surfxml_mount_name;
4204 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4205 short int surfxml_mount_name_isset;
4206 AT_surfxml_random_generator AX_surfxml_random_generator;
4207 #define A_surfxml_random_generator AX_surfxml_random_generator
4208 short int surfxml_random_generator_isset;
4209 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4210 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4211 short int surfxml_ASroute_gw_dst_isset;
4212 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4213 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4214 short int surfxml_trace_connect_element_isset;
4215 AT_surfxml_prop_id AX_surfxml_prop_id;
4216 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4217 short int surfxml_prop_id_isset;
4218 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4219 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4220 short int surfxml_host_link_up_isset;
4221 AT_surfxml_host_id AX_surfxml_host_id;
4222 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4223 short int surfxml_host_id_isset;
4224 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4225 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4226 short int surfxml_ASroute_symmetrical_isset;
4227 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4228 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4229 short int surfxml_peer_lat_isset;
4230 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4231 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4232 short int surfxml_process_on_failure_isset;
4233 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4234 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4235 short int surfxml_link_latency_file_isset;
4236 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4237 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4238 short int surfxml_peer_availability_file_isset;
4239 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4240 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4241 short int surfxml_link_ctn_direction_isset;
4242 AT_surfxml_host_state AX_surfxml_host_state;
4243 #define A_surfxml_host_state AX_surfxml_host_state
4244 short int surfxml_host_state_isset;
4245 AT_surfxml_AS_id AX_surfxml_AS_id;
4246 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4247 short int surfxml_AS_id_isset;
4248 AT_surfxml_host_power AX_surfxml_host_power;
4249 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4250 short int surfxml_host_power_isset;
4251 AT_surfxml_router_id AX_surfxml_router_id;
4252 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4253 short int surfxml_router_id_isset;
4254 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4255 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4256 short int surfxml_storage_type_id_isset;
4257 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4258 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4259 short int surfxml_process_start_time_isset;
4260 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4261 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4262 short int surfxml_cluster_suffix_isset;
4263 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4264 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4265 short int surfxml_bypassASroute_dst_isset;
4266 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4267 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4268 short int surfxml_host_link_id_isset;
4269 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4270 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4271 short int surfxml_ASroute_src_isset;
4272 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4273 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4274 short int surfxml_cluster_prefix_isset;
4275 AT_surfxml_trace_file AX_surfxml_trace_file;
4276 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4277 short int surfxml_trace_file_isset;
4278 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4279 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4280 short int surfxml_link_sharing_policy_isset;
4281 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4282 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4283 short int surfxml_storage_typeId_isset;
4284 AT_surfxml_random_min AX_surfxml_random_min;
4285 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4286 short int surfxml_random_min_isset;
4287 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4288 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4289 short int surfxml_link_ctn_id_isset;
4290 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4291 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4292 short int surfxml_peer_bw_out_isset;
4293 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4294 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4295 short int surfxml_cluster_availability_file_isset;
4296 AT_surfxml_storage_content AX_surfxml_storage_content;
4297 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4298 short int surfxml_storage_content_isset;
4299 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4300 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4301 short int surfxml_process_kill_time_isset;
4302 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4303 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4304 short int surfxml_cluster_bb_bw_isset;
4305 AT_surfxml_argument_value AX_surfxml_argument_value;
4306 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4307 short int surfxml_argument_value_isset;
4308 AT_surfxml_link_state AX_surfxml_link_state;
4309 #define A_surfxml_link_state AX_surfxml_link_state
4310 short int surfxml_link_state_isset;
4311 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4312 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4313 short int surfxml_ASroute_gw_src_isset;
4314 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4315 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4316 short int surfxml_AS_routing_isset;
4317 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4318 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4319 short int surfxml_link_bandwidth_isset;
4320 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4321 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4322 short int surfxml_cluster_id_isset;
4323 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4324 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4325 short int surfxml_peer_bw_in_isset;
4326 AT_surfxml_random_mean AX_surfxml_random_mean;
4327 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4328 short int surfxml_random_mean_isset;
4329 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4330 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4331 short int surfxml_storage_type_size_isset;
4332 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4333 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4334 short int surfxml_cluster_bb_lat_isset;
4335 AT_surfxml_link_latency AX_surfxml_link_latency;
4336 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4337 short int surfxml_link_latency_isset;
4338 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4339 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4340 short int surfxml_backbone_bandwidth_isset;
4341 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4342 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4343 short int surfxml_backbone_id_isset;
4344 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4345 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4346 short int surfxml_trace_connect_kind_isset;
4347 AT_surfxml_random_seed AX_surfxml_random_seed;
4348 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4349 short int surfxml_random_seed_isset;
4350 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4351 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4352 short int surfxml_cluster_state_file_isset;
4353 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4354 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4355 short int surfxml_link_bandwidth_file_isset;
4356 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4357 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4358 short int surfxml_storage_type_content_isset;
4359 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4360 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4361 short int surfxml_route_symmetrical_isset;
4362 AT_surfxml_random_id AX_surfxml_random_id;
4363 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4364 short int surfxml_random_id_isset;
4365 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4366 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4367 short int surfxml_mstorage_name_isset;
4368 AT_surfxml_random_max AX_surfxml_random_max;
4369 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4370 short int surfxml_random_max_isset;
4371 AT_surfxml_link_id AX_surfxml_link_id;
4372 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4373 short int surfxml_link_id_isset;
4374 AT_surfxml_process_host AX_surfxml_process_host;
4375 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4376 short int surfxml_process_host_isset;
4377 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4378 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4379 short int surfxml_host_availability_file_isset;
4380 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4381 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4382 short int surfxml_cluster_lat_isset;
4383 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4384 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4385 short int surfxml_router_coordinates_isset;
4386 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4387 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4388 short int surfxml_trace_periodicity_isset;
4389 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4390 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4391 short int surfxml_cluster_bb_sharing_policy_isset;
4392 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4393 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4394 short int surfxml_peer_coordinates_isset;
4395 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4396 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4397 short int surfxml_peer_state_file_isset;
4398 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4399 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4400 short int surfxml_bypassASroute_src_isset;
4401 AT_surfxml_prop_value AX_surfxml_prop_value;
4402 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4403 short int surfxml_prop_value_isset;
4404 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4405 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4406 short int surfxml_mstorage_typeId_isset;
4407 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4408 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4409 short int surfxml_ASroute_dst_isset;
4410 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4411 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4412 short int surfxml_link_state_file_isset;
4413 AT_surfxml_random_radical AX_surfxml_random_radical;
4414 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4415 short int surfxml_random_radical_isset;
4416 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4417 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4418 short int surfxml_bypassASroute_gw_src_isset;
4419 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4420 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4421 short int surfxml_trace_connect_trace_isset;
4422 AT_surfxml_mount_id AX_surfxml_mount_id;
4423 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4424 short int surfxml_mount_id_isset;
4425 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4426 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4427 short int surfxml_cluster_power_isset;
4428 AT_surfxml_process_function AX_surfxml_process_function;
4429 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4430 short int surfxml_process_function_isset;
4431 AT_surfxml_peer_id AX_surfxml_peer_id;
4432 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4433 short int surfxml_peer_id_isset;
4434 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4435 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4436 short int surfxml_cluster_router_id_isset;
4437 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4438 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4439 short int surfxml_cluster_sharing_policy_isset;
4440 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4441 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4442 short int surfxml_bypassRoute_dst_isset;
4443 AT_surfxml_host_core AX_surfxml_host_core;
4444 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4445 short int surfxml_host_core_isset;
4446 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4447 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4448 short int surfxml_storage_type_model_isset;
4449 AT_surfxml_host_availability AX_surfxml_host_availability;
4450 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4451 short int surfxml_host_availability_isset;
4452 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4453 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4454 short int surfxml_bypassRoute_src_isset;
4455 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4456 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4457 short int surfxml_backbone_latency_isset;
4458 AT_surfxml_route_src AX_surfxml_route_src;
4459 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4460 short int surfxml_route_src_isset;
4461 AT_surfxml_storage_id AX_surfxml_storage_id;
4462 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4463 short int surfxml_storage_id_isset;
4464 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4465 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4466 short int surfxml_host_coordinates_isset;
4467 AT_surfxml_trace_id AX_surfxml_trace_id;
4468 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4469 short int surfxml_trace_id_isset;
4470 AT_surfxml_peer_power AX_surfxml_peer_power;
4471 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4472 short int surfxml_peer_power_isset;
4473 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4474 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4475 short int surfxml_cluster_radical_isset;
4476 AT_surfxml_config_id AX_surfxml_config_id;
4477 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4478 short int surfxml_config_id_isset;
4479 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4480 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4481 short int surfxml_bypassASroute_gw_dst_isset;
4482 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4483 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4484 short int surfxml_host_link_down_isset;
4485 AT_surfxml_include_file AX_surfxml_include_file;
4486 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4487 short int surfxml_include_file_isset;
4488 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4489 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4490 short int surfxml_random_std_deviation_isset;
4491 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4492 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4493 short int surfxml_cluster_core_isset;
4494 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4495 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4496 short int surfxml_host_state_file_isset;
4497 AT_surfxml_route_dst AX_surfxml_route_dst;
4498 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4499 short int surfxml_route_dst_isset;
4500 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4501 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4502 short int surfxml_cluster_bw_isset;
4503 AT_surfxml_platform_version AX_surfxml_platform_version;
4504 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4505 short int surfxml_platform_version_isset;
4506
4507 /* XML state. */
4508 #ifdef FLEX_DEBUG
4509 # define ENTER(state)   debug_enter(state,#state)
4510 # define LEAVE          debug_leave()
4511 # define SET(state)     debug_set(state,#state)
4512   static void debug_enter(int, const char*);
4513   static void debug_leave(void);
4514   static void debug_set(int, const char*);
4515 #else
4516 # define ENTER(state)   (yy_push_state(state))
4517 # define LEAVE          (yy_pop_state())
4518 # define SET(state)     BEGIN(state)
4519 #endif
4520
4521 /* Generic actions. */
4522 #define SKIP    /*skip*/
4523 #define SUCCEED        CLEANUP; return 0
4524
4525 #define FAIL    return fail
4526 static int fail(const char*, ...);
4527
4528 enum {flexml_max_err_msg_size = 512};
4529 static char flexml_err_msg[flexml_max_err_msg_size];
4530 const char * surfxml_parse_err_msg()
4531 {
4532     return flexml_err_msg;
4533 }
4534 static void reset_surfxml_parse_err_msg()
4535 {
4536     flexml_err_msg[0] = '\0';
4537 }
4538
4539 /* Cleanup */
4540 static void cleanup(void);
4541 #define CLEANUP  cleanup()
4542
4543 /* Text buffer stack handling. */
4544 char *surfxml_bufferstack = NULL;
4545 static int blimit = FLEXML_BUFFERSTACKSIZE;
4546 static int bnext = 1;
4547
4548 static int *indexstack = NULL;
4549 static int ilimit = FLEXML_INDEXSTACKSIZE;
4550 static int inext = 1;
4551
4552 #define BUFFERSET(P)  (P = bnext)
4553 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4554 #define BUFFERDONE    (BUFFERPUTC('\0'))
4555
4556 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4557
4558 /* after this is called, there are at least 2 slots left in the stack */
4559 static int ck_blimit()
4560 {
4561      if (bnext >= blimit) {
4562          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4563          {
4564              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4565              assert(temp);
4566              surfxml_bufferstack = temp;
4567          }
4568      }
4569      return 0;
4570 }
4571
4572 /* after this is called, there are at least 2 slots left in the stack */
4573 static int ck_ilimit()
4574 {
4575      if (inext >= ilimit) {
4576          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4577          {
4578              int *temp = (int *) realloc(indexstack, ilimit);
4579              assert(temp);
4580              indexstack = temp;
4581          }
4582      }
4583      return 0;
4584 }
4585
4586 #ifdef FLEXML_NEED_BUFFERLIT
4587 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4588 {
4589   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4590   assert(s <= e); BUFFERSET(*pp);
4591   while (++s<e) {
4592     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4593     else BUFFERPUTC(*s);
4594   }
4595   BUFFERDONE;
4596 }
4597 #endif
4598
4599 static void pushbuffer(int p)
4600 {
4601     ck_ilimit();
4602     indexstack[inext++] = p;
4603     indexstack[inext++] = bnext;    
4604 }
4605
4606 static int popbuffer(void)
4607 {
4608     assert(inext >= 2);
4609     bnext = indexstack[--inext];
4610     return indexstack[--inext];
4611 }
4612
4613 /* General internal entities are `unput' back onto the input stream... */
4614 #define ENTITYTEXT(T) \
4615   { char *s = (T), *e = s+strlen(s);\
4616     while (--e >= s) { unput(*e); }}
4617
4618 /* Flex standard options. */
4619 #define YY_NO_INPUT 1
4620 /* Flex user-requested options. */
4621 /* XML character classes (currently restricted to ASCII). */
4622 /* "Common syntactic structures." */
4623 /* "Names and Tokens." */
4624 /* Miscellaneous. */
4625 /* Parser states (flex `exclusive start conditions'):
4626  *
4627  * PROLOG       the XML prolog of the document before <?xml...>
4628  * DOCTYPE      the XML prolog of the document after <?xml...>
4629  * EPILOG       after the root element
4630  * INCOMMENT    inside an XML comment <!--....-->
4631  * INPI         inside an XML PI <?...?>
4632  * VALUE1       inside a '...'-delimited literal
4633  * VALUE2       inside a "..."-delimited literal
4634  * CDATA        inside a <![CDATA[...] ]> section.
4635  * ROOT_<tag>   expect root element <tag>
4636  * AL_<tag>     inside the attribute list for <tag>
4637  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4638  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4639  */
4640
4641 /* State names. */
4642 const char* *surfxml_statenames=NULL;
4643
4644 #define INITIAL 0
4645 #define PROLOG 1
4646 #define DOCTYPE 2
4647 #define EPILOG 3
4648 #define INCOMMENT 4
4649 #define INPI 5
4650 #define VALUE1 6
4651 #define VALUE2 7
4652 #define CDATA 8
4653 #define ROOT_surfxml_platform 9
4654 #define AL_surfxml_platform 10
4655 #define S_surfxml_platform 11
4656 #define S_surfxml_platform_1 12
4657 #define S_surfxml_platform_2 13
4658 #define S_surfxml_platform_3 14
4659 #define S_surfxml_platform_4 15
4660 #define S_surfxml_platform_5 16
4661 #define S_surfxml_platform_6 17
4662 #define S_surfxml_platform_7 18
4663 #define S_surfxml_platform_8 19
4664 #define E_surfxml_platform 20
4665 #define AL_surfxml_include 21
4666 #define S_surfxml_include 22
4667 #define S_surfxml_include_1 23
4668 #define S_surfxml_include_2 24
4669 #define E_surfxml_include 25
4670 #define AL_surfxml_trace 26
4671 #define IN_trace 27
4672 #define AL_surfxml_random 28
4673 #define S_surfxml_random 29
4674 #define S_surfxml_random_1 30
4675 #define S_surfxml_random_2 31
4676 #define E_surfxml_random 32
4677 #define AL_surfxml_trace_connect 33
4678 #define E_surfxml_trace_connect 34
4679 #define AL_surfxml_AS 35
4680 #define S_surfxml_AS 36
4681 #define S_surfxml_AS_1 37
4682 #define S_surfxml_AS_2 38
4683 #define S_surfxml_AS_3 39
4684 #define S_surfxml_AS_4 40
4685 #define S_surfxml_AS_5 41
4686 #define S_surfxml_AS_6 42
4687 #define S_surfxml_AS_7 43
4688 #define S_surfxml_AS_8 44
4689 #define S_surfxml_AS_9 45
4690 #define S_surfxml_AS_10 46
4691 #define S_surfxml_AS_11 47
4692 #define S_surfxml_AS_12 48
4693 #define S_surfxml_AS_13 49
4694 #define E_surfxml_AS 50
4695 #define AL_surfxml_storage_type 51
4696 #define S_surfxml_storage_type 52
4697 #define S_surfxml_storage_type_1 53
4698 #define S_surfxml_storage_type_2 54
4699 #define E_surfxml_storage_type 55
4700 #define AL_surfxml_storage 56
4701 #define S_surfxml_storage 57
4702 #define S_surfxml_storage_1 58
4703 #define S_surfxml_storage_2 59
4704 #define E_surfxml_storage 60
4705 #define AL_surfxml_mount 61
4706 #define E_surfxml_mount 62
4707 #define AL_surfxml_mstorage 63
4708 #define E_surfxml_mstorage 64
4709 #define AL_surfxml_host 65
4710 #define S_surfxml_host 66
4711 #define S_surfxml_host_1 67
4712 #define S_surfxml_host_2 68
4713 #define E_surfxml_host 69
4714 #define AL_surfxml_host_link 70
4715 #define E_surfxml_host_link 71
4716 #define AL_surfxml_cluster 72
4717 #define E_surfxml_cluster 73
4718 #define AL_surfxml_peer 74
4719 #define E_surfxml_peer 75
4720 #define AL_surfxml_router 76
4721 #define E_surfxml_router 77
4722 #define AL_surfxml_backbone 78
4723 #define E_surfxml_backbone 79
4724 #define AL_surfxml_link 80
4725 #define S_surfxml_link 81
4726 #define S_surfxml_link_1 82
4727 #define S_surfxml_link_2 83
4728 #define E_surfxml_link 84
4729 #define AL_surfxml_route 85
4730 #define S_surfxml_route 86
4731 #define S_surfxml_route_1 87
4732 #define S_surfxml_route_2 88
4733 #define E_surfxml_route 89
4734 #define AL_surfxml_ASroute 90
4735 #define S_surfxml_ASroute 91
4736 #define S_surfxml_ASroute_1 92
4737 #define S_surfxml_ASroute_2 93
4738 #define E_surfxml_ASroute 94
4739 #define AL_surfxml_link_ctn 95
4740 #define E_surfxml_link_ctn 96
4741 #define AL_surfxml_bypassRoute 97
4742 #define S_surfxml_bypassRoute 98
4743 #define S_surfxml_bypassRoute_1 99
4744 #define S_surfxml_bypassRoute_2 100
4745 #define E_surfxml_bypassRoute 101
4746 #define AL_surfxml_bypassASroute 102
4747 #define S_surfxml_bypassASroute 103
4748 #define S_surfxml_bypassASroute_1 104
4749 #define S_surfxml_bypassASroute_2 105
4750 #define E_surfxml_bypassASroute 106
4751 #define AL_surfxml_process 107
4752 #define S_surfxml_process 108
4753 #define S_surfxml_process_1 109
4754 #define S_surfxml_process_2 110
4755 #define E_surfxml_process 111
4756 #define AL_surfxml_argument 112
4757 #define E_surfxml_argument 113
4758 #define AL_surfxml_config 114
4759 #define S_surfxml_config 115
4760 #define S_surfxml_config_1 116
4761 #define S_surfxml_config_2 117
4762 #define E_surfxml_config 118
4763 #define AL_surfxml_prop 119
4764 #define E_surfxml_prop 120
4765 #define IMPOSSIBLE 121
4766
4767 #ifndef YY_NO_UNISTD_H
4768 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4769  * down here because we want the user's section 1 to have been scanned first.
4770  * The user has a chance to override it with an option.
4771  */
4772 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4773 #  ifndef __STRICT_ANSI__
4774 #    include <io.h>
4775 #    include <process.h>
4776 #  endif
4777 #else
4778 #  include <unistd.h>
4779 #endif
4780 #endif
4781
4782 #ifndef YY_EXTRA_TYPE
4783 #define YY_EXTRA_TYPE void *
4784 #endif
4785
4786 static int yy_init_globals (void );
4787
4788 /* Accessor methods to globals.
4789    These are made visible to non-reentrant scanners for convenience. */
4790
4791 int surf_parse_lex_destroy (void );
4792
4793 int surf_parse_get_debug (void );
4794
4795 void surf_parse_set_debug (int debug_flag  );
4796
4797 YY_EXTRA_TYPE surf_parse_get_extra (void );
4798
4799 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4800
4801 FILE *surf_parse_get_in (void );
4802
4803 void surf_parse_set_in  (FILE * in_str  );
4804
4805 FILE *surf_parse_get_out (void );
4806
4807 void surf_parse_set_out  (FILE * out_str  );
4808
4809 int surf_parse_get_leng (void );
4810
4811 char *surf_parse_get_text (void );
4812
4813 int surf_parse_get_lineno (void );
4814
4815 void surf_parse_set_lineno (int line_number  );
4816
4817 /* Macros after this point can all be overridden by user definitions in
4818  * section 1.
4819  */
4820
4821 #ifndef YY_SKIP_YYWRAP
4822 #ifdef __cplusplus
4823 extern "C" int surf_parse_wrap (void );
4824 #else
4825 extern int surf_parse_wrap (void );
4826 #endif
4827 #endif
4828
4829 #ifndef yytext_ptr
4830 static void yy_flex_strncpy (char *,yyconst char *,int );
4831 #endif
4832
4833 #ifdef YY_NEED_STRLEN
4834 static int yy_flex_strlen (yyconst char * );
4835 #endif
4836
4837 #ifndef YY_NO_INPUT
4838
4839 #ifdef __cplusplus
4840 static int yyinput (void );
4841 #else
4842 static int input (void );
4843 #endif
4844
4845 #endif
4846
4847         static int yy_start_stack_ptr = 0;
4848         static int yy_start_stack_depth = 0;
4849         static int *yy_start_stack = NULL;
4850     
4851     static void yy_push_state (int new_state );
4852     
4853     static void yy_pop_state (void );
4854     
4855 /* Amount of stuff to slurp up with each read. */
4856 #ifndef YY_READ_BUF_SIZE
4857 #ifdef __ia64__
4858 /* On IA-64, the buffer size is 16k, not 8k */
4859 #define YY_READ_BUF_SIZE 16384
4860 #else
4861 #define YY_READ_BUF_SIZE 8192
4862 #endif /* __ia64__ */
4863 #endif
4864
4865 /* Copy whatever the last rule matched to the standard output. */
4866 #ifndef ECHO
4867 /* This used to be an fputs(), but since the string might contain NUL's,
4868  * we now use fwrite().
4869  */
4870 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4871 #endif
4872
4873 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4874  * is returned in "result".
4875  */
4876 #ifndef YY_INPUT
4877 #define YY_INPUT(buf,result,max_size) \
4878         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4879                 { \
4880                 int c = '*'; \
4881                 size_t n; \
4882                 for ( n = 0; n < max_size && \
4883                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4884                         buf[n] = (char) c; \
4885                 if ( c == '\n' ) \
4886                         buf[n++] = (char) c; \
4887                 if ( c == EOF && ferror( surf_parse_in ) ) \
4888                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4889                 result = n; \
4890                 } \
4891         else \
4892                 { \
4893                 errno=0; \
4894                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4895                         { \
4896                         if( errno != EINTR) \
4897                                 { \
4898                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4899                                 break; \
4900                                 } \
4901                         errno=0; \
4902                         clearerr(surf_parse_in); \
4903                         } \
4904                 }\
4905 \
4906
4907 #endif
4908
4909 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4910  * we don't want an extra ';' after the "return" because that will cause
4911  * some compilers to complain about unreachable statements.
4912  */
4913 #ifndef yyterminate
4914 #define yyterminate() return YY_NULL
4915 #endif
4916
4917 /* Number of entries by which start-condition stack grows. */
4918 #ifndef YY_START_STACK_INCR
4919 #define YY_START_STACK_INCR 25
4920 #endif
4921
4922 /* Report a fatal error. */
4923 #ifndef YY_FATAL_ERROR
4924 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4925 #endif
4926
4927 /* end tables serialization structures and prototypes */
4928
4929 /* Default declaration of generated scanner - a define so the user can
4930  * easily add parameters.
4931  */
4932 #ifndef YY_DECL
4933 #define YY_DECL_IS_OURS 1
4934
4935 extern int surf_parse_lex (void);
4936
4937 #define YY_DECL int surf_parse_lex (void)
4938 #endif /* !YY_DECL */
4939
4940 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4941  * have been set up.
4942  */
4943 #ifndef YY_USER_ACTION
4944 #define YY_USER_ACTION
4945 #endif
4946
4947 /* Code executed at the end of each rule. */
4948 #ifndef YY_BREAK
4949 #define YY_BREAK break;
4950 #endif
4951
4952 #define YY_RULE_SETUP \
4953         YY_USER_ACTION
4954
4955 /** The main scanner function which does all the work.
4956  */
4957 YY_DECL
4958 {
4959         register yy_state_type yy_current_state;
4960         register char *yy_cp, *yy_bp;
4961         register int yy_act;
4962     
4963  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4964  SET(PROLOG);
4965  reset_surfxml_parse_err_msg();
4966  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4967  assert(surfxml_bufferstack);
4968  #ifdef FLEX_DEBUG
4969  {
4970      int i;
4971      for (i = 0; i < blimit; i++) {
4972          surfxml_bufferstack[i] = '\377';
4973      }
4974  }
4975  #endif
4976  surfxml_bufferstack[0] = '\0';
4977  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4978  assert(indexstack);
4979  indexstack[0] = 0;
4980
4981   /* FleXML_init */
4982   bnext = inext = 1;
4983   surfxml_bufferliteral('\0', &bnext, "0.0");
4984   surfxml_bufferliteral('\0', &bnext, "2147483647");
4985   surfxml_bufferliteral('\0', &bnext, "1");
4986   surfxml_bufferliteral('\0', &bnext, "1.0");
4987   surfxml_bufferliteral('\0', &bnext, "1");
4988   surfxml_bufferliteral('\0', &bnext, "0.0");
4989   surfxml_bufferliteral('\0', &bnext, "-1.0");
4990   surfxml_bufferliteral('\0', &bnext, "-1.0");
4991   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4992   surfxml_statenames[PROLOG] = NULL;
4993   surfxml_statenames[DOCTYPE] = NULL;
4994   surfxml_statenames[EPILOG] = NULL;
4995   surfxml_statenames[INCOMMENT] = NULL;
4996   surfxml_statenames[INPI] = NULL;
4997   surfxml_statenames[VALUE1] = NULL;
4998   surfxml_statenames[VALUE2] = NULL;
4999   surfxml_statenames[CDATA] = NULL;
5000   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5001   surfxml_statenames[AL_surfxml_platform] = NULL;
5002   surfxml_statenames[S_surfxml_platform] = "platform";
5003   surfxml_statenames[S_surfxml_platform_1] = "platform";
5004   surfxml_statenames[S_surfxml_platform_2] = "platform";
5005   surfxml_statenames[S_surfxml_platform_3] = "platform";
5006   surfxml_statenames[S_surfxml_platform_4] = "platform";
5007   surfxml_statenames[S_surfxml_platform_5] = "platform";
5008   surfxml_statenames[S_surfxml_platform_6] = "platform";
5009   surfxml_statenames[S_surfxml_platform_7] = "platform";
5010   surfxml_statenames[S_surfxml_platform_8] = "platform";
5011   surfxml_statenames[E_surfxml_platform] = "platform";
5012   surfxml_statenames[AL_surfxml_include] = NULL;
5013   surfxml_statenames[S_surfxml_include] = "include";
5014   surfxml_statenames[S_surfxml_include_1] = "include";
5015   surfxml_statenames[S_surfxml_include_2] = "include";
5016   surfxml_statenames[E_surfxml_include] = "include";
5017   surfxml_statenames[AL_surfxml_trace] = NULL;
5018   surfxml_statenames[IN_trace] = "trace";
5019   surfxml_statenames[AL_surfxml_random] = NULL;
5020   surfxml_statenames[S_surfxml_random] = "random";
5021   surfxml_statenames[S_surfxml_random_1] = "random";
5022   surfxml_statenames[S_surfxml_random_2] = "random";
5023   surfxml_statenames[E_surfxml_random] = "random";
5024   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5025   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5026   surfxml_statenames[AL_surfxml_AS] = NULL;
5027   surfxml_statenames[S_surfxml_AS] = "AS";
5028   surfxml_statenames[S_surfxml_AS_1] = "AS";
5029   surfxml_statenames[S_surfxml_AS_2] = "AS";
5030   surfxml_statenames[S_surfxml_AS_3] = "AS";
5031   surfxml_statenames[S_surfxml_AS_4] = "AS";
5032   surfxml_statenames[S_surfxml_AS_5] = "AS";
5033   surfxml_statenames[S_surfxml_AS_6] = "AS";
5034   surfxml_statenames[S_surfxml_AS_7] = "AS";
5035   surfxml_statenames[S_surfxml_AS_8] = "AS";
5036   surfxml_statenames[S_surfxml_AS_9] = "AS";
5037   surfxml_statenames[S_surfxml_AS_10] = "AS";
5038   surfxml_statenames[S_surfxml_AS_11] = "AS";
5039   surfxml_statenames[S_surfxml_AS_12] = "AS";
5040   surfxml_statenames[S_surfxml_AS_13] = "AS";
5041   surfxml_statenames[E_surfxml_AS] = "AS";
5042   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5043   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5044   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5045   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5046   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5047   surfxml_statenames[AL_surfxml_storage] = NULL;
5048   surfxml_statenames[S_surfxml_storage] = "storage";
5049   surfxml_statenames[S_surfxml_storage_1] = "storage";
5050   surfxml_statenames[S_surfxml_storage_2] = "storage";
5051   surfxml_statenames[E_surfxml_storage] = "storage";
5052   surfxml_statenames[AL_surfxml_mount] = NULL;
5053   surfxml_statenames[E_surfxml_mount] = "mount";
5054   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5055   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5056   surfxml_statenames[AL_surfxml_host] = NULL;
5057   surfxml_statenames[S_surfxml_host] = "host";
5058   surfxml_statenames[S_surfxml_host_1] = "host";
5059   surfxml_statenames[S_surfxml_host_2] = "host";
5060   surfxml_statenames[E_surfxml_host] = "host";
5061   surfxml_statenames[AL_surfxml_host_link] = NULL;
5062   surfxml_statenames[E_surfxml_host_link] = "host_link";
5063   surfxml_statenames[AL_surfxml_cluster] = NULL;
5064   surfxml_statenames[E_surfxml_cluster] = "cluster";
5065   surfxml_statenames[AL_surfxml_peer] = NULL;
5066   surfxml_statenames[E_surfxml_peer] = "peer";
5067   surfxml_statenames[AL_surfxml_router] = NULL;
5068   surfxml_statenames[E_surfxml_router] = "router";
5069   surfxml_statenames[AL_surfxml_backbone] = NULL;
5070   surfxml_statenames[E_surfxml_backbone] = "backbone";
5071   surfxml_statenames[AL_surfxml_link] = NULL;
5072   surfxml_statenames[S_surfxml_link] = "link";
5073   surfxml_statenames[S_surfxml_link_1] = "link";
5074   surfxml_statenames[S_surfxml_link_2] = "link";
5075   surfxml_statenames[E_surfxml_link] = "link";
5076   surfxml_statenames[AL_surfxml_route] = NULL;
5077   surfxml_statenames[S_surfxml_route] = "route";
5078   surfxml_statenames[S_surfxml_route_1] = "route";
5079   surfxml_statenames[S_surfxml_route_2] = "route";
5080   surfxml_statenames[E_surfxml_route] = "route";
5081   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5082   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5083   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5084   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5085   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5086   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5087   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5088   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5089   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5090   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5091   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5092   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5093   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5094   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5095   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5096   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5097   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5098   surfxml_statenames[AL_surfxml_process] = NULL;
5099   surfxml_statenames[S_surfxml_process] = "process";
5100   surfxml_statenames[S_surfxml_process_1] = "process";
5101   surfxml_statenames[S_surfxml_process_2] = "process";
5102   surfxml_statenames[E_surfxml_process] = "process";
5103   surfxml_statenames[AL_surfxml_argument] = NULL;
5104   surfxml_statenames[E_surfxml_argument] = "argument";
5105   surfxml_statenames[AL_surfxml_config] = NULL;
5106   surfxml_statenames[S_surfxml_config] = "config";
5107   surfxml_statenames[S_surfxml_config_1] = "config";
5108   surfxml_statenames[S_surfxml_config_2] = "config";
5109   surfxml_statenames[E_surfxml_config] = "config";
5110   surfxml_statenames[AL_surfxml_prop] = NULL;
5111   surfxml_statenames[E_surfxml_prop] = "prop";
5112   }
5113
5114  /* COMMENTS and PIs: handled uniformly for efficiency. */
5115
5116         if ( !(yy_init) )
5117                 {
5118                 (yy_init) = 1;
5119
5120 #ifdef YY_USER_INIT
5121                 YY_USER_INIT;
5122 #endif
5123
5124                 if ( ! (yy_start) )
5125                         (yy_start) = 1; /* first start state */
5126
5127                 if ( ! surf_parse_in )
5128                         surf_parse_in = stdin;
5129
5130                 if ( ! surf_parse_out )
5131                         surf_parse_out = stdout;
5132
5133                 if ( ! YY_CURRENT_BUFFER ) {
5134                         surf_parse_ensure_buffer_stack ();
5135                         YY_CURRENT_BUFFER_LVALUE =
5136                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5137                 }
5138
5139                 surf_parse__load_buffer_state( );
5140                 }
5141
5142         while ( 1 )             /* loops until end-of-file is reached */
5143                 {
5144                 yy_cp = (yy_c_buf_p);
5145
5146                 /* Support of surf_parse_text. */
5147                 *yy_cp = (yy_hold_char);
5148
5149                 /* yy_bp points to the position in yy_ch_buf of the start of
5150                  * the current run.
5151                  */
5152                 yy_bp = yy_cp;
5153
5154                 yy_current_state = (yy_start);
5155 yy_match:
5156                 do
5157                         {
5158                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5159                         if ( yy_accept[yy_current_state] )
5160                                 {
5161                                 (yy_last_accepting_state) = yy_current_state;
5162                                 (yy_last_accepting_cpos) = yy_cp;
5163                                 }
5164                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5165                                 {
5166                                 yy_current_state = (int) yy_def[yy_current_state];
5167                                 if ( yy_current_state >= 3108 )
5168                                         yy_c = yy_meta[(unsigned int) yy_c];
5169                                 }
5170                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5171                         ++yy_cp;
5172                         }
5173                 while ( yy_base[yy_current_state] != 11150 );
5174
5175 yy_find_action:
5176                 yy_act = yy_accept[yy_current_state];
5177                 if ( yy_act == 0 )
5178                         { /* have to back up */
5179                         yy_cp = (yy_last_accepting_cpos);
5180                         yy_current_state = (yy_last_accepting_state);
5181                         yy_act = yy_accept[yy_current_state];
5182                         }
5183
5184                 YY_DO_BEFORE_ACTION;
5185
5186                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5187                         {
5188                         int yyl;
5189                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5190                                 if ( surf_parse_text[yyl] == '\n' )
5191                                            
5192     surf_parse_lineno++;
5193 ;
5194                         }
5195
5196 do_action:      /* This label is used only to access EOF actions. */
5197
5198                 switch ( yy_act )
5199         { /* beginning of action switch */
5200                         case 0: /* must back up */
5201                         /* undo the effects of YY_DO_BEFORE_ACTION */
5202                         *yy_cp = (yy_hold_char);
5203                         yy_cp = (yy_last_accepting_cpos);
5204                         yy_current_state = (yy_last_accepting_state);
5205                         goto yy_find_action;
5206
5207 case 1:
5208 YY_RULE_SETUP
5209 ENTER(INCOMMENT);
5210         YY_BREAK
5211 case 2:
5212 YY_RULE_SETUP
5213 ENTER(INPI);
5214         YY_BREAK
5215
5216 case 3:
5217 YY_RULE_SETUP
5218 LEAVE;
5219         YY_BREAK
5220 case 4:
5221 case 5:
5222 case 6:
5223 /* rule 6 can match eol */
5224 YY_RULE_SETUP
5225 SKIP;
5226         YY_BREAK
5227 case YY_STATE_EOF(INCOMMENT):
5228 FAIL("EOF in comment.");
5229         YY_BREAK
5230
5231 case 7:
5232 YY_RULE_SETUP
5233 LEAVE;
5234         YY_BREAK
5235 case 8:
5236 case 9:
5237 /* rule 9 can match eol */
5238 YY_RULE_SETUP
5239 SKIP;
5240         YY_BREAK
5241 case YY_STATE_EOF(INPI):
5242 FAIL("EOF in PI (processing instruction).");
5243         YY_BREAK
5244
5245 /* SPACES: skipped uniformly */
5246 case 10:
5247 /* rule 10 can match eol */
5248 YY_RULE_SETUP
5249 SKIP;
5250         YY_BREAK
5251 /* PROLOG: determine root element and process it. */
5252
5253 case 11:
5254 /* rule 11 can match eol */
5255 YY_RULE_SETUP
5256 SET(DOCTYPE); 
5257         YY_BREAK
5258 case 12:
5259 /* rule 12 can match eol */
5260 YY_RULE_SETUP
5261 FAIL("Bad declaration %s.",surf_parse_text);
5262         YY_BREAK
5263
5264 case 13:
5265 /* rule 13 can match eol */
5266 YY_RULE_SETUP
5267 SET(ROOT_surfxml_platform);
5268         YY_BREAK
5269 case 14:
5270 /* rule 14 can match eol */
5271 YY_RULE_SETUP
5272 FAIL("Bad declaration %s.",surf_parse_text);
5273         YY_BREAK
5274 case 15:
5275 YY_RULE_SETUP
5276 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5277         YY_BREAK
5278 case YY_STATE_EOF(PROLOG):
5279 case YY_STATE_EOF(DOCTYPE):
5280 FAIL("EOF in prolog.");
5281         YY_BREAK
5282
5283 /* RULES DERIVED FROM DTD. */
5284 /* <!-- Small DTD for SURF based tools. -->  */
5285 case 16:
5286 /* rule 16 can match eol */
5287 YY_RULE_SETUP
5288 FAIL("Starting tag <platform> is not allowed here.");
5289         YY_BREAK
5290 case 17:
5291 /* rule 17 can match eol */
5292 YY_RULE_SETUP
5293 {
5294   AX_surfxml_platform_version = 1;
5295   surfxml_platform_version_isset = 0;
5296   ENTER(AL_surfxml_platform); pushbuffer(0);
5297   }
5298         YY_BREAK
5299
5300 case 18:
5301 /* rule 18 can match eol */
5302 YY_RULE_SETUP
5303 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
5304         YY_BREAK
5305 case 19:
5306 /* rule 19 can match eol */
5307 YY_RULE_SETUP
5308 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
5309         YY_BREAK
5310 case 20:
5311 YY_RULE_SETUP
5312 {
5313   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5314  }
5315         YY_BREAK
5316 case 21:
5317 YY_RULE_SETUP
5318 {
5319   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5320   switch (YY_START) {
5321    case ROOT_surfxml_platform: SET(EPILOG); break;
5322   }
5323  }
5324         YY_BREAK
5325 case 22:
5326 YY_RULE_SETUP
5327 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5328         YY_BREAK
5329 case 23:
5330 YY_RULE_SETUP
5331 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5332         YY_BREAK
5333 case YY_STATE_EOF(AL_surfxml_platform):
5334 FAIL("EOF in attribute list of `platform' element.");
5335         YY_BREAK
5336
5337 case 24:
5338 /* rule 24 can match eol */
5339 YY_RULE_SETUP
5340 {
5341   LEAVE;
5342   ETag_surfxml_platform();
5343   popbuffer(); /* attribute */
5344   switch (YY_START) {
5345    case ROOT_surfxml_platform: SET(EPILOG); break;
5346   }
5347  }
5348         YY_BREAK
5349 case 25:
5350 /* rule 25 can match eol */
5351 YY_RULE_SETUP
5352 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5353         YY_BREAK
5354 case 26:
5355 YY_RULE_SETUP
5356 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5357         YY_BREAK
5358 case YY_STATE_EOF(S_surfxml_platform_8):
5359 case YY_STATE_EOF(S_surfxml_platform_1):
5360 case YY_STATE_EOF(S_surfxml_platform_3):
5361 case YY_STATE_EOF(S_surfxml_platform):
5362 case YY_STATE_EOF(S_surfxml_platform_4):
5363 case YY_STATE_EOF(S_surfxml_platform_6):
5364 case YY_STATE_EOF(E_surfxml_platform):
5365 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5366         YY_BREAK
5367
5368 case 27:
5369 /* rule 27 can match eol */
5370 YY_RULE_SETUP
5371 FAIL("Starting tag <include> is not allowed here.");
5372         YY_BREAK
5373 case 28:
5374 /* rule 28 can match eol */
5375 YY_RULE_SETUP
5376 {
5377   AX_surfxml_include_file = 0;
5378   surfxml_include_file_isset = 0;
5379   ENTER(AL_surfxml_include); pushbuffer(0);
5380   }
5381         YY_BREAK
5382
5383 case 29:
5384 /* rule 29 can match eol */
5385 YY_RULE_SETUP
5386 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5387         YY_BREAK
5388 case 30:
5389 /* rule 30 can match eol */
5390 YY_RULE_SETUP
5391 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5392         YY_BREAK
5393 case 31:
5394 YY_RULE_SETUP
5395 {
5396   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5397   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5398  }
5399         YY_BREAK
5400 case 32:
5401 YY_RULE_SETUP
5402 {
5403   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5404   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5405   switch (YY_START) {
5406    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5407    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5408    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;
5409    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5410   }
5411  }
5412         YY_BREAK
5413 case 33:
5414 YY_RULE_SETUP
5415 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5416         YY_BREAK
5417 case 34:
5418 YY_RULE_SETUP
5419 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5420         YY_BREAK
5421 case YY_STATE_EOF(AL_surfxml_include):
5422 FAIL("EOF in attribute list of `include' element.");
5423         YY_BREAK
5424
5425 case 35:
5426 /* rule 35 can match eol */
5427 YY_RULE_SETUP
5428 {
5429   LEAVE;
5430   ETag_surfxml_include();
5431   popbuffer(); /* attribute */
5432   switch (YY_START) {
5433    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5434    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5435    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;
5436    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5437   }
5438  }
5439         YY_BREAK
5440 case 36:
5441 /* rule 36 can match eol */
5442 YY_RULE_SETUP
5443 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5444         YY_BREAK
5445 case 37:
5446 YY_RULE_SETUP
5447 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5448         YY_BREAK
5449 case YY_STATE_EOF(E_surfxml_include):
5450 case YY_STATE_EOF(S_surfxml_include):
5451 case YY_STATE_EOF(S_surfxml_include_2):
5452 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5453         YY_BREAK
5454
5455 case 38:
5456 /* rule 38 can match eol */
5457 YY_RULE_SETUP
5458 FAIL("Starting tag <trace> is not allowed here.");
5459         YY_BREAK
5460 case 39:
5461 /* rule 39 can match eol */
5462 YY_RULE_SETUP
5463 {
5464   AX_surfxml_trace_id = 0;
5465   surfxml_trace_id_isset = 0;
5466   AX_surfxml_trace_file = 0;
5467   surfxml_trace_file_isset = 0;
5468   AX_surfxml_trace_periodicity = 0;
5469   surfxml_trace_periodicity_isset = 0;
5470   ENTER(AL_surfxml_trace); pushbuffer(0);
5471   }
5472         YY_BREAK
5473
5474 case 40:
5475 /* rule 40 can match eol */
5476 YY_RULE_SETUP
5477 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
5478         YY_BREAK
5479 case 41:
5480 /* rule 41 can match eol */
5481 YY_RULE_SETUP
5482 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
5483         YY_BREAK
5484 case 42:
5485 /* rule 42 can match eol */
5486 YY_RULE_SETUP
5487 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
5488         YY_BREAK
5489 case 43:
5490 /* rule 43 can match eol */
5491 YY_RULE_SETUP
5492 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
5493         YY_BREAK
5494 case 44:
5495 /* rule 44 can match eol */
5496 YY_RULE_SETUP
5497 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
5498         YY_BREAK
5499 case 45:
5500 /* rule 45 can match eol */
5501 YY_RULE_SETUP
5502 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
5503         YY_BREAK
5504 case 46:
5505 YY_RULE_SETUP
5506 {
5507   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5508   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5509   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5510  }
5511         YY_BREAK
5512 case 47:
5513 YY_RULE_SETUP
5514 {
5515   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5516   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5517   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5518   switch (YY_START) {
5519    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5520    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5521    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5522    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5523    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;
5524    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5525    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5526   }
5527  }
5528         YY_BREAK
5529 case 48:
5530 YY_RULE_SETUP
5531 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5532         YY_BREAK
5533 case 49:
5534 YY_RULE_SETUP
5535 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5536         YY_BREAK
5537 case YY_STATE_EOF(AL_surfxml_trace):
5538 FAIL("EOF in attribute list of `trace' element.");
5539         YY_BREAK
5540
5541 case 50:
5542 /* rule 50 can match eol */
5543 YY_RULE_SETUP
5544 {
5545   LEAVE;
5546   BUFFERDONE;
5547   ETag_surfxml_trace();
5548   surfxml_pcdata_ix = popbuffer();
5549   popbuffer(); /* attribute */
5550   switch (YY_START) {
5551    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5552    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5553    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5554    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5555    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;
5556    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5557    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5558   }
5559  }
5560         YY_BREAK
5561 case 51:
5562 /* rule 51 can match eol */
5563 YY_RULE_SETUP
5564 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5565         YY_BREAK
5566 case YY_STATE_EOF(IN_trace):
5567 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5568         YY_BREAK
5569
5570 case 52:
5571 /* rule 52 can match eol */
5572 YY_RULE_SETUP
5573 FAIL("Starting tag <random> is not allowed here.");
5574         YY_BREAK
5575 case 53:
5576 /* rule 53 can match eol */
5577 YY_RULE_SETUP
5578 {
5579   AX_surfxml_random_id = 0;
5580   surfxml_random_id_isset = 0;
5581   AX_surfxml_random_min = 0;
5582   surfxml_random_min_isset = 0;
5583   AX_surfxml_random_max = 0;
5584   surfxml_random_max_isset = 0;
5585   AX_surfxml_random_mean = 0;
5586   surfxml_random_mean_isset = 0;
5587   AX_surfxml_random_std_deviation = 0;
5588   surfxml_random_std_deviation_isset = 0;
5589   AX_surfxml_random_seed = 5;
5590   surfxml_random_seed_isset = 0;
5591   AX_surfxml_random_radical = 0;
5592   surfxml_random_radical_isset = 0;
5593   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5594   surfxml_random_generator_isset = 0;
5595   ENTER(AL_surfxml_random); pushbuffer(0);
5596   }
5597         YY_BREAK
5598
5599 case 54:
5600 /* rule 54 can match eol */
5601 YY_RULE_SETUP
5602 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5603         YY_BREAK
5604 case 55:
5605 /* rule 55 can match eol */
5606 YY_RULE_SETUP
5607 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5608         YY_BREAK
5609 case 56:
5610 /* rule 56 can match eol */
5611 YY_RULE_SETUP
5612 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5613         YY_BREAK
5614 case 57:
5615 /* rule 57 can match eol */
5616 YY_RULE_SETUP
5617 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5618         YY_BREAK
5619 case 58:
5620 /* rule 58 can match eol */
5621 YY_RULE_SETUP
5622 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5623         YY_BREAK
5624 case 59:
5625 /* rule 59 can match eol */
5626 YY_RULE_SETUP
5627 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5628         YY_BREAK
5629 case 60:
5630 /* rule 60 can match eol */
5631 YY_RULE_SETUP
5632 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5633         YY_BREAK
5634 case 61:
5635 /* rule 61 can match eol */
5636 YY_RULE_SETUP
5637 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5638         YY_BREAK
5639 case 62:
5640 /* rule 62 can match eol */
5641 YY_RULE_SETUP
5642 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std_deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
5643         YY_BREAK
5644 case 63:
5645 /* rule 63 can match eol */
5646 YY_RULE_SETUP
5647 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std_deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
5648         YY_BREAK
5649 case 64:
5650 /* rule 64 can match eol */
5651 YY_RULE_SETUP
5652 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5653         YY_BREAK
5654 case 65:
5655 /* rule 65 can match eol */
5656 YY_RULE_SETUP
5657 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5658         YY_BREAK
5659 case 66:
5660 /* rule 66 can match eol */
5661 YY_RULE_SETUP
5662 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5663         YY_BREAK
5664 case 67:
5665 /* rule 67 can match eol */
5666 YY_RULE_SETUP
5667 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5668         YY_BREAK
5669 case 68:
5670 /* rule 68 can match eol */
5671 case 69:
5672 /* rule 69 can match eol */
5673 YY_RULE_SETUP
5674 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5675         YY_BREAK
5676 case 70:
5677 /* rule 70 can match eol */
5678 case 71:
5679 /* rule 71 can match eol */
5680 YY_RULE_SETUP
5681 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5682         YY_BREAK
5683 case 72:
5684 /* rule 72 can match eol */
5685 case 73:
5686 /* rule 73 can match eol */
5687 YY_RULE_SETUP
5688 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5689         YY_BREAK
5690 case 74:
5691 /* rule 74 can match eol */
5692 case 75:
5693 /* rule 75 can match eol */
5694 YY_RULE_SETUP
5695 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5696         YY_BREAK
5697 case 76:
5698 YY_RULE_SETUP
5699 {
5700   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5701   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5702   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5703   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5704   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5705   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5706  }
5707         YY_BREAK
5708 case 77:
5709 YY_RULE_SETUP
5710 {
5711   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5712   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5713   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5714   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5715   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5716   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5717   switch (YY_START) {
5718    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5719   }
5720  }
5721         YY_BREAK
5722 case 78:
5723 YY_RULE_SETUP
5724 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5725         YY_BREAK
5726 case 79:
5727 YY_RULE_SETUP
5728 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5729         YY_BREAK
5730 case YY_STATE_EOF(AL_surfxml_random):
5731 FAIL("EOF in attribute list of `random' element.");
5732         YY_BREAK
5733
5734 case 80:
5735 /* rule 80 can match eol */
5736 YY_RULE_SETUP
5737 {
5738   LEAVE;
5739   ETag_surfxml_random();
5740   popbuffer(); /* attribute */
5741   switch (YY_START) {
5742    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5743   }
5744  }
5745         YY_BREAK
5746 case 81:
5747 /* rule 81 can match eol */
5748 YY_RULE_SETUP
5749 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5750         YY_BREAK
5751 case 82:
5752 YY_RULE_SETUP
5753 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5754         YY_BREAK
5755 case YY_STATE_EOF(S_surfxml_random):
5756 case YY_STATE_EOF(S_surfxml_random_2):
5757 case YY_STATE_EOF(E_surfxml_random):
5758 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5759         YY_BREAK
5760
5761 case 83:
5762 /* rule 83 can match eol */
5763 YY_RULE_SETUP
5764 FAIL("Starting tag <trace_connect> is not allowed here.");
5765         YY_BREAK
5766 case 84:
5767 /* rule 84 can match eol */
5768 YY_RULE_SETUP
5769 {
5770   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5771   surfxml_trace_connect_kind_isset = 0;
5772   AX_surfxml_trace_connect_trace = 0;
5773   surfxml_trace_connect_trace_isset = 0;
5774   AX_surfxml_trace_connect_element = 0;
5775   surfxml_trace_connect_element_isset = 0;
5776   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5777   }
5778         YY_BREAK
5779
5780 case 85:
5781 /* rule 85 can match eol */
5782 case 86:
5783 /* rule 86 can match eol */
5784 YY_RULE_SETUP
5785 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5786         YY_BREAK
5787 case 87:
5788 /* rule 87 can match eol */
5789 case 88:
5790 /* rule 88 can match eol */
5791 YY_RULE_SETUP
5792 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5793         YY_BREAK
5794 case 89:
5795 /* rule 89 can match eol */
5796 case 90:
5797 /* rule 90 can match eol */
5798 YY_RULE_SETUP
5799 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5800         YY_BREAK
5801 case 91:
5802 /* rule 91 can match eol */
5803 case 92:
5804 /* rule 92 can match eol */
5805 YY_RULE_SETUP
5806 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5807         YY_BREAK
5808 case 93:
5809 /* rule 93 can match eol */
5810 case 94:
5811 /* rule 94 can match eol */
5812 YY_RULE_SETUP
5813 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5814         YY_BREAK
5815 case 95:
5816 /* rule 95 can match eol */
5817 YY_RULE_SETUP
5818 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");} surfxml_trace_connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
5819         YY_BREAK
5820 case 96:
5821 /* rule 96 can match eol */
5822 YY_RULE_SETUP
5823 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");}  surfxml_trace_connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
5824         YY_BREAK
5825 case 97:
5826 /* rule 97 can match eol */
5827 YY_RULE_SETUP
5828 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");} surfxml_trace_connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
5829         YY_BREAK
5830 case 98:
5831 /* rule 98 can match eol */
5832 YY_RULE_SETUP
5833 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");}  surfxml_trace_connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
5834         YY_BREAK
5835 case 99:
5836 YY_RULE_SETUP
5837 {
5838   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5839   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5840   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5841  }
5842         YY_BREAK
5843 case 100:
5844 YY_RULE_SETUP
5845 {
5846   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5847   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5848   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5849   switch (YY_START) {
5850    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5851    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5852    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5853    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5854    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;
5855    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5856    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5857   }
5858  }
5859         YY_BREAK
5860 case 101:
5861 YY_RULE_SETUP
5862 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5863         YY_BREAK
5864 case 102:
5865 YY_RULE_SETUP
5866 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5867         YY_BREAK
5868 case YY_STATE_EOF(AL_surfxml_trace_connect):
5869 FAIL("EOF in attribute list of `trace_connect' element.");
5870         YY_BREAK
5871
5872 case 103:
5873 /* rule 103 can match eol */
5874 YY_RULE_SETUP
5875 {
5876   LEAVE;
5877   ETag_surfxml_trace_connect();
5878   popbuffer(); /* attribute */
5879   switch (YY_START) {
5880    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5881    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5882    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5883    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5884    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;
5885    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5886    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5887   }
5888  }
5889         YY_BREAK
5890 case 104:
5891 /* rule 104 can match eol */
5892 YY_RULE_SETUP
5893 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5894         YY_BREAK
5895 case 105:
5896 YY_RULE_SETUP
5897 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5898         YY_BREAK
5899 case YY_STATE_EOF(E_surfxml_trace_connect):
5900 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5901         YY_BREAK
5902
5903 case 106:
5904 /* rule 106 can match eol */
5905 YY_RULE_SETUP
5906 FAIL("Starting tag <AS> is not allowed here.");
5907         YY_BREAK
5908 case 107:
5909 /* rule 107 can match eol */
5910 YY_RULE_SETUP
5911 {
5912   AX_surfxml_AS_id = 0;
5913   surfxml_AS_id_isset = 0;
5914   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
5915   surfxml_AS_routing_isset = 0;
5916   ENTER(AL_surfxml_AS); pushbuffer(0);
5917   }
5918         YY_BREAK
5919
5920 case 108:
5921 /* rule 108 can match eol */
5922 YY_RULE_SETUP
5923 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5924         YY_BREAK
5925 case 109:
5926 /* rule 109 can match eol */
5927 YY_RULE_SETUP
5928 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5929         YY_BREAK
5930 case 110:
5931 /* rule 110 can match eol */
5932 case 111:
5933 /* rule 111 can match eol */
5934 YY_RULE_SETUP
5935 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5936         YY_BREAK
5937 case 112:
5938 /* rule 112 can match eol */
5939 case 113:
5940 /* rule 113 can match eol */
5941 YY_RULE_SETUP
5942 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5943         YY_BREAK
5944 case 114:
5945 /* rule 114 can match eol */
5946 case 115:
5947 /* rule 115 can match eol */
5948 YY_RULE_SETUP
5949 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5950         YY_BREAK
5951 case 116:
5952 /* rule 116 can match eol */
5953 case 117:
5954 /* rule 117 can match eol */
5955 YY_RULE_SETUP
5956 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5957         YY_BREAK
5958 case 118:
5959 /* rule 118 can match eol */
5960 case 119:
5961 /* rule 119 can match eol */
5962 YY_RULE_SETUP
5963 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5964         YY_BREAK
5965 case 120:
5966 /* rule 120 can match eol */
5967 case 121:
5968 /* rule 121 can match eol */
5969 YY_RULE_SETUP
5970 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
5971         YY_BREAK
5972 case 122:
5973 /* rule 122 can match eol */
5974 case 123:
5975 /* rule 123 can match eol */
5976 YY_RULE_SETUP
5977 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5978         YY_BREAK
5979 case 124:
5980 /* rule 124 can match eol */
5981 case 125:
5982 /* rule 125 can match eol */
5983 YY_RULE_SETUP
5984 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5985         YY_BREAK
5986 case 126:
5987 YY_RULE_SETUP
5988 {
5989   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5990   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5991  }
5992         YY_BREAK
5993 case 127:
5994 YY_RULE_SETUP
5995 {
5996   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5997   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5998   switch (YY_START) {
5999    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6000    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;
6001    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6002   }
6003  }
6004         YY_BREAK
6005 case 128:
6006 YY_RULE_SETUP
6007 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6008         YY_BREAK
6009 case 129:
6010 YY_RULE_SETUP
6011 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6012         YY_BREAK
6013 case YY_STATE_EOF(AL_surfxml_AS):
6014 FAIL("EOF in attribute list of `AS' element.");
6015         YY_BREAK
6016
6017 case 130:
6018 /* rule 130 can match eol */
6019 YY_RULE_SETUP
6020 {
6021   LEAVE;
6022   ETag_surfxml_AS();
6023   popbuffer(); /* attribute */
6024   switch (YY_START) {
6025    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6026    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;
6027    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6028   }
6029  }
6030         YY_BREAK
6031 case 131:
6032 /* rule 131 can match eol */
6033 YY_RULE_SETUP
6034 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6035         YY_BREAK
6036 case 132:
6037 YY_RULE_SETUP
6038 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6039         YY_BREAK
6040 case YY_STATE_EOF(S_surfxml_AS_9):
6041 case YY_STATE_EOF(S_surfxml_AS_1):
6042 case YY_STATE_EOF(S_surfxml_AS_11):
6043 case YY_STATE_EOF(S_surfxml_AS_6):
6044 case YY_STATE_EOF(E_surfxml_AS):
6045 case YY_STATE_EOF(S_surfxml_AS_3):
6046 case YY_STATE_EOF(S_surfxml_AS_13):
6047 case YY_STATE_EOF(S_surfxml_AS_8):
6048 case YY_STATE_EOF(S_surfxml_AS):
6049 case YY_STATE_EOF(S_surfxml_AS_4):
6050 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6051         YY_BREAK
6052
6053 case 133:
6054 /* rule 133 can match eol */
6055 YY_RULE_SETUP
6056 FAIL("Starting tag <storage_type> is not allowed here.");
6057         YY_BREAK
6058 case 134:
6059 /* rule 134 can match eol */
6060 YY_RULE_SETUP
6061 {
6062   AX_surfxml_storage_type_id = 0;
6063   surfxml_storage_type_id_isset = 0;
6064   AX_surfxml_storage_type_model = 0;
6065   surfxml_storage_type_model_isset = 0;
6066   AX_surfxml_storage_type_size = 0;
6067   surfxml_storage_type_size_isset = 0;
6068   AX_surfxml_storage_type_content = 0;
6069   surfxml_storage_type_content_isset = 0;
6070   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6071   }
6072         YY_BREAK
6073
6074 case 135:
6075 /* rule 135 can match eol */
6076 YY_RULE_SETUP
6077 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");} surfxml_storage_type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
6078         YY_BREAK
6079 case 136:
6080 /* rule 136 can match eol */
6081 YY_RULE_SETUP
6082 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");}  surfxml_storage_type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
6083         YY_BREAK
6084 case 137:
6085 /* rule 137 can match eol */
6086 YY_RULE_SETUP
6087 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");} surfxml_storage_type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
6088         YY_BREAK
6089 case 138:
6090 /* rule 138 can match eol */
6091 YY_RULE_SETUP
6092 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");}  surfxml_storage_type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
6093         YY_BREAK
6094 case 139:
6095 /* rule 139 can match eol */
6096 YY_RULE_SETUP
6097 if (surfxml_storage_type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage_type>");} surfxml_storage_type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_size);
6098         YY_BREAK
6099 case 140:
6100 /* rule 140 can match eol */
6101 YY_RULE_SETUP
6102 if (surfxml_storage_type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage_type>");}  surfxml_storage_type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_size);
6103         YY_BREAK
6104 case 141:
6105 /* rule 141 can match eol */
6106 YY_RULE_SETUP
6107 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");} surfxml_storage_type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
6108         YY_BREAK
6109 case 142:
6110 /* rule 142 can match eol */
6111 YY_RULE_SETUP
6112 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");}  surfxml_storage_type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
6113         YY_BREAK
6114 case 143:
6115 YY_RULE_SETUP
6116 {
6117   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6118   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6119   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6120   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6121  }
6122         YY_BREAK
6123 case 144:
6124 YY_RULE_SETUP
6125 {
6126   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6127   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6128   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6129   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6130   switch (YY_START) {
6131    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6132    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6133   }
6134  }
6135         YY_BREAK
6136 case 145:
6137 YY_RULE_SETUP
6138 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6139         YY_BREAK
6140 case 146:
6141 YY_RULE_SETUP
6142 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6143         YY_BREAK
6144 case YY_STATE_EOF(AL_surfxml_storage_type):
6145 FAIL("EOF in attribute list of `storage_type' element.");
6146         YY_BREAK
6147
6148 case 147:
6149 /* rule 147 can match eol */
6150 YY_RULE_SETUP
6151 {
6152   LEAVE;
6153   ETag_surfxml_storage_type();
6154   popbuffer(); /* attribute */
6155   switch (YY_START) {
6156    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6157    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6158   }
6159  }
6160         YY_BREAK
6161 case 148:
6162 /* rule 148 can match eol */
6163 YY_RULE_SETUP
6164 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6165         YY_BREAK
6166 case 149:
6167 YY_RULE_SETUP
6168 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6169         YY_BREAK
6170 case YY_STATE_EOF(E_surfxml_storage_type):
6171 case YY_STATE_EOF(S_surfxml_storage_type_2):
6172 case YY_STATE_EOF(S_surfxml_storage_type):
6173 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6174         YY_BREAK
6175
6176 case 150:
6177 /* rule 150 can match eol */
6178 YY_RULE_SETUP
6179 FAIL("Starting tag <storage> is not allowed here.");
6180         YY_BREAK
6181 case 151:
6182 /* rule 151 can match eol */
6183 YY_RULE_SETUP
6184 {
6185   AX_surfxml_storage_id = 0;
6186   surfxml_storage_id_isset = 0;
6187   AX_surfxml_storage_typeId = 0;
6188   surfxml_storage_typeId_isset = 0;
6189   AX_surfxml_storage_content = 0;
6190   surfxml_storage_content_isset = 0;
6191   ENTER(AL_surfxml_storage); pushbuffer(0);
6192   }
6193         YY_BREAK
6194
6195 case 152:
6196 /* rule 152 can match eol */
6197 YY_RULE_SETUP
6198 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
6199         YY_BREAK
6200 case 153:
6201 /* rule 153 can match eol */
6202 YY_RULE_SETUP
6203 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
6204         YY_BREAK
6205 case 154:
6206 /* rule 154 can match eol */
6207 YY_RULE_SETUP
6208 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
6209         YY_BREAK
6210 case 155:
6211 /* rule 155 can match eol */
6212 YY_RULE_SETUP
6213 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
6214         YY_BREAK
6215 case 156:
6216 /* rule 156 can match eol */
6217 YY_RULE_SETUP
6218 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6219         YY_BREAK
6220 case 157:
6221 /* rule 157 can match eol */
6222 YY_RULE_SETUP
6223 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6224         YY_BREAK
6225 case 158:
6226 YY_RULE_SETUP
6227 {
6228   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6229   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6230   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6231  }
6232         YY_BREAK
6233 case 159:
6234 YY_RULE_SETUP
6235 {
6236   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6237   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6238   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6239   switch (YY_START) {
6240    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6241    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6242   }
6243  }
6244         YY_BREAK
6245 case 160:
6246 YY_RULE_SETUP
6247 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6248         YY_BREAK
6249 case 161:
6250 YY_RULE_SETUP
6251 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6252         YY_BREAK
6253 case YY_STATE_EOF(AL_surfxml_storage):
6254 FAIL("EOF in attribute list of `storage' element.");
6255         YY_BREAK
6256
6257 case 162:
6258 /* rule 162 can match eol */
6259 YY_RULE_SETUP
6260 {
6261   LEAVE;
6262   ETag_surfxml_storage();
6263   popbuffer(); /* attribute */
6264   switch (YY_START) {
6265    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6266    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6267   }
6268  }
6269         YY_BREAK
6270 case 163:
6271 /* rule 163 can match eol */
6272 YY_RULE_SETUP
6273 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6274         YY_BREAK
6275 case 164:
6276 YY_RULE_SETUP
6277 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6278         YY_BREAK
6279 case YY_STATE_EOF(E_surfxml_storage):
6280 case YY_STATE_EOF(S_surfxml_storage):
6281 case YY_STATE_EOF(S_surfxml_storage_2):
6282 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6283         YY_BREAK
6284
6285 case 165:
6286 /* rule 165 can match eol */
6287 YY_RULE_SETUP
6288 FAIL("Starting tag <mount> is not allowed here.");
6289         YY_BREAK
6290 case 166:
6291 /* rule 166 can match eol */
6292 YY_RULE_SETUP
6293 {
6294   AX_surfxml_mount_id = 0;
6295   surfxml_mount_id_isset = 0;
6296   AX_surfxml_mount_name = 0;
6297   surfxml_mount_name_isset = 0;
6298   ENTER(AL_surfxml_mount); pushbuffer(0);
6299   }
6300         YY_BREAK
6301
6302 case 167:
6303 /* rule 167 can match eol */
6304 YY_RULE_SETUP
6305 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6306         YY_BREAK
6307 case 168:
6308 /* rule 168 can match eol */
6309 YY_RULE_SETUP
6310 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6311         YY_BREAK
6312 case 169:
6313 /* rule 169 can match eol */
6314 YY_RULE_SETUP
6315 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
6316         YY_BREAK
6317 case 170:
6318 /* rule 170 can match eol */
6319 YY_RULE_SETUP
6320 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
6321         YY_BREAK
6322 case 171:
6323 YY_RULE_SETUP
6324 {
6325   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6326   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6327   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6328  }
6329         YY_BREAK
6330 case 172:
6331 YY_RULE_SETUP
6332 {
6333   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6334   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6335   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6336   switch (YY_START) {
6337    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6338   }
6339  }
6340         YY_BREAK
6341 case 173:
6342 YY_RULE_SETUP
6343 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6344         YY_BREAK
6345 case 174:
6346 YY_RULE_SETUP
6347 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6348         YY_BREAK
6349 case YY_STATE_EOF(AL_surfxml_mount):
6350 FAIL("EOF in attribute list of `mount' element.");
6351         YY_BREAK
6352
6353 case 175:
6354 /* rule 175 can match eol */
6355 YY_RULE_SETUP
6356 {
6357   LEAVE;
6358   ETag_surfxml_mount();
6359   popbuffer(); /* attribute */
6360   switch (YY_START) {
6361    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6362   }
6363  }
6364         YY_BREAK
6365 case 176:
6366 /* rule 176 can match eol */
6367 YY_RULE_SETUP
6368 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6369         YY_BREAK
6370 case 177:
6371 YY_RULE_SETUP
6372 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6373         YY_BREAK
6374 case YY_STATE_EOF(E_surfxml_mount):
6375 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6376         YY_BREAK
6377
6378 case 178:
6379 /* rule 178 can match eol */
6380 YY_RULE_SETUP
6381 FAIL("Starting tag <mstorage> is not allowed here.");
6382         YY_BREAK
6383 case 179:
6384 /* rule 179 can match eol */
6385 YY_RULE_SETUP
6386 {
6387   AX_surfxml_mstorage_typeId = 0;
6388   surfxml_mstorage_typeId_isset = 0;
6389   AX_surfxml_mstorage_name = 0;
6390   surfxml_mstorage_name_isset = 0;
6391   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6392   }
6393         YY_BREAK
6394
6395 case 180:
6396 /* rule 180 can match eol */
6397 YY_RULE_SETUP
6398 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6399         YY_BREAK
6400 case 181:
6401 /* rule 181 can match eol */
6402 YY_RULE_SETUP
6403 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6404         YY_BREAK
6405 case 182:
6406 /* rule 182 can match eol */
6407 YY_RULE_SETUP
6408 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6409         YY_BREAK
6410 case 183:
6411 /* rule 183 can match eol */
6412 YY_RULE_SETUP
6413 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6414         YY_BREAK
6415 case 184:
6416 YY_RULE_SETUP
6417 {
6418   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6419   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6420   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6421  }
6422         YY_BREAK
6423 case 185:
6424 YY_RULE_SETUP
6425 {
6426   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6427   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6428   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6429   switch (YY_START) {
6430    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6431   }
6432  }
6433         YY_BREAK
6434 case 186:
6435 YY_RULE_SETUP
6436 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6437         YY_BREAK
6438 case 187:
6439 YY_RULE_SETUP
6440 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6441         YY_BREAK
6442 case YY_STATE_EOF(AL_surfxml_mstorage):
6443 FAIL("EOF in attribute list of `mstorage' element.");
6444         YY_BREAK
6445
6446 case 188:
6447 /* rule 188 can match eol */
6448 YY_RULE_SETUP
6449 {
6450   LEAVE;
6451   ETag_surfxml_mstorage();
6452   popbuffer(); /* attribute */
6453   switch (YY_START) {
6454    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6455   }
6456  }
6457         YY_BREAK
6458 case 189:
6459 /* rule 189 can match eol */
6460 YY_RULE_SETUP
6461 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6462         YY_BREAK
6463 case 190:
6464 YY_RULE_SETUP
6465 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6466         YY_BREAK
6467 case YY_STATE_EOF(E_surfxml_mstorage):
6468 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6469         YY_BREAK
6470
6471 case 191:
6472 /* rule 191 can match eol */
6473 YY_RULE_SETUP
6474 FAIL("Starting tag <host> is not allowed here.");
6475         YY_BREAK
6476 case 192:
6477 /* rule 192 can match eol */
6478 YY_RULE_SETUP
6479 {
6480   AX_surfxml_host_id = 0;
6481   surfxml_host_id_isset = 0;
6482   AX_surfxml_host_power = 0;
6483   surfxml_host_power_isset = 0;
6484   AX_surfxml_host_core = 16;
6485   surfxml_host_core_isset = 0;
6486   AX_surfxml_host_availability = 18;
6487   surfxml_host_availability_isset = 0;
6488   AX_surfxml_host_availability_file = 0;
6489   surfxml_host_availability_file_isset = 0;
6490   AX_surfxml_host_state = A_surfxml_host_state_ON;
6491   surfxml_host_state_isset = 0;
6492   AX_surfxml_host_state_file = 0;
6493   surfxml_host_state_file_isset = 0;
6494   AX_surfxml_host_coordinates = 0;
6495   surfxml_host_coordinates_isset = 0;
6496   ENTER(AL_surfxml_host); pushbuffer(0);
6497   }
6498         YY_BREAK
6499
6500 case 193:
6501 /* rule 193 can match eol */
6502 YY_RULE_SETUP
6503 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
6504         YY_BREAK
6505 case 194:
6506 /* rule 194 can match eol */
6507 YY_RULE_SETUP
6508 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
6509         YY_BREAK
6510 case 195:
6511 /* rule 195 can match eol */
6512 YY_RULE_SETUP
6513 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6514         YY_BREAK
6515 case 196:
6516 /* rule 196 can match eol */
6517 YY_RULE_SETUP
6518 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6519         YY_BREAK
6520 case 197:
6521 /* rule 197 can match eol */
6522 YY_RULE_SETUP
6523 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
6524         YY_BREAK
6525 case 198:
6526 /* rule 198 can match eol */
6527 YY_RULE_SETUP
6528 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
6529         YY_BREAK
6530 case 199:
6531 /* rule 199 can match eol */
6532 YY_RULE_SETUP
6533 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6534         YY_BREAK
6535 case 200:
6536 /* rule 200 can match eol */
6537 YY_RULE_SETUP
6538 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6539         YY_BREAK
6540 case 201:
6541 /* rule 201 can match eol */
6542 YY_RULE_SETUP
6543 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
6544         YY_BREAK
6545 case 202:
6546 /* rule 202 can match eol */
6547 YY_RULE_SETUP
6548 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
6549         YY_BREAK
6550 case 203:
6551 /* rule 203 can match eol */
6552 case 204:
6553 /* rule 204 can match eol */
6554 YY_RULE_SETUP
6555 A_surfxml_host_state = A_surfxml_host_state_ON;
6556         YY_BREAK
6557 case 205:
6558 /* rule 205 can match eol */
6559 case 206:
6560 /* rule 206 can match eol */
6561 YY_RULE_SETUP
6562 A_surfxml_host_state = A_surfxml_host_state_OFF;
6563         YY_BREAK
6564 case 207:
6565 /* rule 207 can match eol */
6566 YY_RULE_SETUP
6567 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
6568         YY_BREAK
6569 case 208:
6570 /* rule 208 can match eol */
6571 YY_RULE_SETUP
6572 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
6573         YY_BREAK
6574 case 209:
6575 /* rule 209 can match eol */
6576 YY_RULE_SETUP
6577 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
6578         YY_BREAK
6579 case 210:
6580 /* rule 210 can match eol */
6581 YY_RULE_SETUP
6582 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
6583         YY_BREAK
6584 case 211:
6585 YY_RULE_SETUP
6586 {
6587   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6588   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6589   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6590  }
6591         YY_BREAK
6592 case 212:
6593 YY_RULE_SETUP
6594 {
6595   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6596   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6597   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6598   switch (YY_START) {
6599    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6600   }
6601  }
6602         YY_BREAK
6603 case 213:
6604 YY_RULE_SETUP
6605 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6606         YY_BREAK
6607 case 214:
6608 YY_RULE_SETUP
6609 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6610         YY_BREAK
6611 case YY_STATE_EOF(AL_surfxml_host):
6612 FAIL("EOF in attribute list of `host' element.");
6613         YY_BREAK
6614
6615 case 215:
6616 /* rule 215 can match eol */
6617 YY_RULE_SETUP
6618 {
6619   LEAVE;
6620   ETag_surfxml_host();
6621   popbuffer(); /* attribute */
6622   switch (YY_START) {
6623    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6624   }
6625  }
6626         YY_BREAK
6627 case 216:
6628 /* rule 216 can match eol */
6629 YY_RULE_SETUP
6630 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6631         YY_BREAK
6632 case 217:
6633 YY_RULE_SETUP
6634 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6635         YY_BREAK
6636 case YY_STATE_EOF(S_surfxml_host):
6637 case YY_STATE_EOF(E_surfxml_host):
6638 case YY_STATE_EOF(S_surfxml_host_2):
6639 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6640         YY_BREAK
6641
6642 case 218:
6643 /* rule 218 can match eol */
6644 YY_RULE_SETUP
6645 FAIL("Starting tag <host_link> is not allowed here.");
6646         YY_BREAK
6647 case 219:
6648 /* rule 219 can match eol */
6649 YY_RULE_SETUP
6650 {
6651   AX_surfxml_host_link_id = 0;
6652   surfxml_host_link_id_isset = 0;
6653   AX_surfxml_host_link_up = 0;
6654   surfxml_host_link_up_isset = 0;
6655   AX_surfxml_host_link_down = 0;
6656   surfxml_host_link_down_isset = 0;
6657   ENTER(AL_surfxml_host_link); pushbuffer(0);
6658   }
6659         YY_BREAK
6660
6661 case 220:
6662 /* rule 220 can match eol */
6663 YY_RULE_SETUP
6664 if (surfxml_host_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host_link>");} surfxml_host_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_id);
6665         YY_BREAK
6666 case 221:
6667 /* rule 221 can match eol */
6668 YY_RULE_SETUP
6669 if (surfxml_host_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host_link>");}  surfxml_host_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_id);
6670         YY_BREAK
6671 case 222:
6672 /* rule 222 can match eol */
6673 YY_RULE_SETUP
6674 if (surfxml_host_link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host_link>");} surfxml_host_link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_up);
6675         YY_BREAK
6676 case 223:
6677 /* rule 223 can match eol */
6678 YY_RULE_SETUP
6679 if (surfxml_host_link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host_link>");}  surfxml_host_link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_up);
6680         YY_BREAK
6681 case 224:
6682 /* rule 224 can match eol */
6683 YY_RULE_SETUP
6684 if (surfxml_host_link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host_link>");} surfxml_host_link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_down);
6685         YY_BREAK
6686 case 225:
6687 /* rule 225 can match eol */
6688 YY_RULE_SETUP
6689 if (surfxml_host_link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host_link>");}  surfxml_host_link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_down);
6690         YY_BREAK
6691 case 226:
6692 YY_RULE_SETUP
6693 {
6694   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6695   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6696   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6697   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6698  }
6699         YY_BREAK
6700 case 227:
6701 YY_RULE_SETUP
6702 {
6703   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6704   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6705   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6706   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6707   switch (YY_START) {
6708    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6709   }
6710  }
6711         YY_BREAK
6712 case 228:
6713 YY_RULE_SETUP
6714 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6715         YY_BREAK
6716 case 229:
6717 YY_RULE_SETUP
6718 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6719         YY_BREAK
6720 case YY_STATE_EOF(AL_surfxml_host_link):
6721 FAIL("EOF in attribute list of `host_link' element.");
6722         YY_BREAK
6723
6724 case 230:
6725 /* rule 230 can match eol */
6726 YY_RULE_SETUP
6727 {
6728   LEAVE;
6729   ETag_surfxml_host_link();
6730   popbuffer(); /* attribute */
6731   switch (YY_START) {
6732    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6733   }
6734  }
6735         YY_BREAK
6736 case 231:
6737 /* rule 231 can match eol */
6738 YY_RULE_SETUP
6739 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6740         YY_BREAK
6741 case 232:
6742 YY_RULE_SETUP
6743 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6744         YY_BREAK
6745 case YY_STATE_EOF(E_surfxml_host_link):
6746 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6747         YY_BREAK
6748
6749 case 233:
6750 /* rule 233 can match eol */
6751 YY_RULE_SETUP
6752 FAIL("Starting tag <cluster> is not allowed here.");
6753         YY_BREAK
6754 case 234:
6755 /* rule 234 can match eol */
6756 YY_RULE_SETUP
6757 {
6758   AX_surfxml_cluster_id = 0;
6759   surfxml_cluster_id_isset = 0;
6760   AX_surfxml_cluster_prefix = 0;
6761   surfxml_cluster_prefix_isset = 0;
6762   AX_surfxml_cluster_suffix = 0;
6763   surfxml_cluster_suffix_isset = 0;
6764   AX_surfxml_cluster_radical = 0;
6765   surfxml_cluster_radical_isset = 0;
6766   AX_surfxml_cluster_power = 0;
6767   surfxml_cluster_power_isset = 0;
6768   AX_surfxml_cluster_core = 22;
6769   surfxml_cluster_core_isset = 0;
6770   AX_surfxml_cluster_bw = 0;
6771   surfxml_cluster_bw_isset = 0;
6772   AX_surfxml_cluster_lat = 0;
6773   surfxml_cluster_lat_isset = 0;
6774   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6775   surfxml_cluster_sharing_policy_isset = 0;
6776   AX_surfxml_cluster_bb_bw = 0;
6777   surfxml_cluster_bb_bw_isset = 0;
6778   AX_surfxml_cluster_bb_lat = 0;
6779   surfxml_cluster_bb_lat_isset = 0;
6780   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6781   surfxml_cluster_bb_sharing_policy_isset = 0;
6782   AX_surfxml_cluster_availability_file = 0;
6783   surfxml_cluster_availability_file_isset = 0;
6784   AX_surfxml_cluster_state_file = 0;
6785   surfxml_cluster_state_file_isset = 0;
6786   AX_surfxml_cluster_router_id = 0;
6787   surfxml_cluster_router_id_isset = 0;
6788   ENTER(AL_surfxml_cluster); pushbuffer(0);
6789   }
6790         YY_BREAK
6791
6792 case 235:
6793 /* rule 235 can match eol */
6794 YY_RULE_SETUP
6795 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6796         YY_BREAK
6797 case 236:
6798 /* rule 236 can match eol */
6799 YY_RULE_SETUP
6800 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6801         YY_BREAK
6802 case 237:
6803 /* rule 237 can match eol */
6804 YY_RULE_SETUP
6805 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6806         YY_BREAK
6807 case 238:
6808 /* rule 238 can match eol */
6809 YY_RULE_SETUP
6810 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6811         YY_BREAK
6812 case 239:
6813 /* rule 239 can match eol */
6814 YY_RULE_SETUP
6815 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6816         YY_BREAK
6817 case 240:
6818 /* rule 240 can match eol */
6819 YY_RULE_SETUP
6820 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6821         YY_BREAK
6822 case 241:
6823 /* rule 241 can match eol */
6824 YY_RULE_SETUP
6825 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6826         YY_BREAK
6827 case 242:
6828 /* rule 242 can match eol */
6829 YY_RULE_SETUP
6830 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6831         YY_BREAK
6832 case 243:
6833 /* rule 243 can match eol */
6834 YY_RULE_SETUP
6835 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
6836         YY_BREAK
6837 case 244:
6838 /* rule 244 can match eol */
6839 YY_RULE_SETUP
6840 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
6841         YY_BREAK
6842 case 245:
6843 /* rule 245 can match eol */
6844 YY_RULE_SETUP
6845 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6846         YY_BREAK
6847 case 246:
6848 /* rule 246 can match eol */
6849 YY_RULE_SETUP
6850 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6851         YY_BREAK
6852 case 247:
6853 /* rule 247 can match eol */
6854 YY_RULE_SETUP
6855 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6856         YY_BREAK
6857 case 248:
6858 /* rule 248 can match eol */
6859 YY_RULE_SETUP
6860 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6861         YY_BREAK
6862 case 249:
6863 /* rule 249 can match eol */
6864 YY_RULE_SETUP
6865 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6866         YY_BREAK
6867 case 250:
6868 /* rule 250 can match eol */
6869 YY_RULE_SETUP
6870 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6871         YY_BREAK
6872 case 251:
6873 /* rule 251 can match eol */
6874 case 252:
6875 /* rule 252 can match eol */
6876 YY_RULE_SETUP
6877 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6878         YY_BREAK
6879 case 253:
6880 /* rule 253 can match eol */
6881 case 254:
6882 /* rule 254 can match eol */
6883 YY_RULE_SETUP
6884 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6885         YY_BREAK
6886 case 255:
6887 /* rule 255 can match eol */
6888 case 256:
6889 /* rule 256 can match eol */
6890 YY_RULE_SETUP
6891 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6892         YY_BREAK
6893 case 257:
6894 /* rule 257 can match eol */
6895 YY_RULE_SETUP
6896 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
6897         YY_BREAK
6898 case 258:
6899 /* rule 258 can match eol */
6900 YY_RULE_SETUP
6901 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
6902         YY_BREAK
6903 case 259:
6904 /* rule 259 can match eol */
6905 YY_RULE_SETUP
6906 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
6907         YY_BREAK
6908 case 260:
6909 /* rule 260 can match eol */
6910 YY_RULE_SETUP
6911 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
6912         YY_BREAK
6913 case 261:
6914 /* rule 261 can match eol */
6915 case 262:
6916 /* rule 262 can match eol */
6917 YY_RULE_SETUP
6918 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6919         YY_BREAK
6920 case 263:
6921 /* rule 263 can match eol */
6922 case 264:
6923 /* rule 264 can match eol */
6924 YY_RULE_SETUP
6925 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6926         YY_BREAK
6927 case 265:
6928 /* rule 265 can match eol */
6929 YY_RULE_SETUP
6930 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
6931         YY_BREAK
6932 case 266:
6933 /* rule 266 can match eol */
6934 YY_RULE_SETUP
6935 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
6936         YY_BREAK
6937 case 267:
6938 /* rule 267 can match eol */
6939 YY_RULE_SETUP
6940 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
6941         YY_BREAK
6942 case 268:
6943 /* rule 268 can match eol */
6944 YY_RULE_SETUP
6945 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
6946         YY_BREAK
6947 case 269:
6948 /* rule 269 can match eol */
6949 YY_RULE_SETUP
6950 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
6951         YY_BREAK
6952 case 270:
6953 /* rule 270 can match eol */
6954 YY_RULE_SETUP
6955 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
6956         YY_BREAK
6957 case 271:
6958 YY_RULE_SETUP
6959 {
6960   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6961   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6962   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6963   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6964   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6965   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6966   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6967   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6968  }
6969         YY_BREAK
6970 case 272:
6971 YY_RULE_SETUP
6972 {
6973   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6974   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6975   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6976   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6977   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6978   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6979   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6980   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6981   switch (YY_START) {
6982    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6983    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;
6984    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6985   }
6986  }
6987         YY_BREAK
6988 case 273:
6989 YY_RULE_SETUP
6990 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6991         YY_BREAK
6992 case 274:
6993 YY_RULE_SETUP
6994 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6995         YY_BREAK
6996 case YY_STATE_EOF(AL_surfxml_cluster):
6997 FAIL("EOF in attribute list of `cluster' element.");
6998         YY_BREAK
6999
7000 case 275:
7001 /* rule 275 can match eol */
7002 YY_RULE_SETUP
7003 {
7004   LEAVE;
7005   ETag_surfxml_cluster();
7006   popbuffer(); /* attribute */
7007   switch (YY_START) {
7008    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7009    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;
7010    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7011   }
7012  }
7013         YY_BREAK
7014 case 276:
7015 /* rule 276 can match eol */
7016 YY_RULE_SETUP
7017 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7018         YY_BREAK
7019 case 277:
7020 YY_RULE_SETUP
7021 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7022         YY_BREAK
7023 case YY_STATE_EOF(E_surfxml_cluster):
7024 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7025         YY_BREAK
7026
7027 case 278:
7028 /* rule 278 can match eol */
7029 YY_RULE_SETUP
7030 FAIL("Starting tag <peer> is not allowed here.");
7031         YY_BREAK
7032 case 279:
7033 /* rule 279 can match eol */
7034 YY_RULE_SETUP
7035 {
7036   AX_surfxml_peer_id = 0;
7037   surfxml_peer_id_isset = 0;
7038   AX_surfxml_peer_power = 0;
7039   surfxml_peer_power_isset = 0;
7040   AX_surfxml_peer_bw_in = 0;
7041   surfxml_peer_bw_in_isset = 0;
7042   AX_surfxml_peer_bw_out = 0;
7043   surfxml_peer_bw_out_isset = 0;
7044   AX_surfxml_peer_lat = 0;
7045   surfxml_peer_lat_isset = 0;
7046   AX_surfxml_peer_coordinates = 0;
7047   surfxml_peer_coordinates_isset = 0;
7048   AX_surfxml_peer_availability_file = 0;
7049   surfxml_peer_availability_file_isset = 0;
7050   AX_surfxml_peer_state_file = 0;
7051   surfxml_peer_state_file_isset = 0;
7052   ENTER(AL_surfxml_peer); pushbuffer(0);
7053   }
7054         YY_BREAK
7055
7056 case 280:
7057 /* rule 280 can match eol */
7058 YY_RULE_SETUP
7059 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7060         YY_BREAK
7061 case 281:
7062 /* rule 281 can match eol */
7063 YY_RULE_SETUP
7064 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7065         YY_BREAK
7066 case 282:
7067 /* rule 282 can match eol */
7068 YY_RULE_SETUP
7069 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7070         YY_BREAK
7071 case 283:
7072 /* rule 283 can match eol */
7073 YY_RULE_SETUP
7074 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7075         YY_BREAK
7076 case 284:
7077 /* rule 284 can match eol */
7078 YY_RULE_SETUP
7079 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw_in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
7080         YY_BREAK
7081 case 285:
7082 /* rule 285 can match eol */
7083 YY_RULE_SETUP
7084 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw_in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
7085         YY_BREAK
7086 case 286:
7087 /* rule 286 can match eol */
7088 YY_RULE_SETUP
7089 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw_out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
7090         YY_BREAK
7091 case 287:
7092 /* rule 287 can match eol */
7093 YY_RULE_SETUP
7094 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw_out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
7095         YY_BREAK
7096 case 288:
7097 /* rule 288 can match eol */
7098 YY_RULE_SETUP
7099 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7100         YY_BREAK
7101 case 289:
7102 /* rule 289 can match eol */
7103 YY_RULE_SETUP
7104 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7105         YY_BREAK
7106 case 290:
7107 /* rule 290 can match eol */
7108 YY_RULE_SETUP
7109 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7110         YY_BREAK
7111 case 291:
7112 /* rule 291 can match eol */
7113 YY_RULE_SETUP
7114 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7115         YY_BREAK
7116 case 292:
7117 /* rule 292 can match eol */
7118 YY_RULE_SETUP
7119 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
7120         YY_BREAK
7121 case 293:
7122 /* rule 293 can match eol */
7123 YY_RULE_SETUP
7124 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
7125         YY_BREAK
7126 case 294:
7127 /* rule 294 can match eol */
7128 YY_RULE_SETUP
7129 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
7130         YY_BREAK
7131 case 295:
7132 /* rule 295 can match eol */
7133 YY_RULE_SETUP
7134 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
7135         YY_BREAK
7136 case 296:
7137 YY_RULE_SETUP
7138 {
7139   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7140   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7141   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7142   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7143   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7144   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7145  }
7146         YY_BREAK
7147 case 297:
7148 YY_RULE_SETUP
7149 {
7150   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7151   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7152   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7153   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7154   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7155   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7156   switch (YY_START) {
7157    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7158    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;
7159    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7160   }
7161  }
7162         YY_BREAK
7163 case 298:
7164 YY_RULE_SETUP
7165 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7166         YY_BREAK
7167 case 299:
7168 YY_RULE_SETUP
7169 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7170         YY_BREAK
7171 case YY_STATE_EOF(AL_surfxml_peer):
7172 FAIL("EOF in attribute list of `peer' element.");
7173         YY_BREAK
7174
7175 case 300:
7176 /* rule 300 can match eol */
7177 YY_RULE_SETUP
7178 {
7179   LEAVE;
7180   ETag_surfxml_peer();
7181   popbuffer(); /* attribute */
7182   switch (YY_START) {
7183    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7184    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;
7185    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7186   }
7187  }
7188         YY_BREAK
7189 case 301:
7190 /* rule 301 can match eol */
7191 YY_RULE_SETUP
7192 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7193         YY_BREAK
7194 case 302:
7195 YY_RULE_SETUP
7196 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7197         YY_BREAK
7198 case YY_STATE_EOF(E_surfxml_peer):
7199 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7200         YY_BREAK
7201
7202 case 303:
7203 /* rule 303 can match eol */
7204 YY_RULE_SETUP
7205 FAIL("Starting tag <router> is not allowed here.");
7206         YY_BREAK
7207 case 304:
7208 /* rule 304 can match eol */
7209 YY_RULE_SETUP
7210 {
7211   AX_surfxml_router_id = 0;
7212   surfxml_router_id_isset = 0;
7213   AX_surfxml_router_coordinates = 0;
7214   surfxml_router_coordinates_isset = 0;
7215   ENTER(AL_surfxml_router); pushbuffer(0);
7216   }
7217         YY_BREAK
7218
7219 case 305:
7220 /* rule 305 can match eol */
7221 YY_RULE_SETUP
7222 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
7223         YY_BREAK
7224 case 306:
7225 /* rule 306 can match eol */
7226 YY_RULE_SETUP
7227 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
7228         YY_BREAK
7229 case 307:
7230 /* rule 307 can match eol */
7231 YY_RULE_SETUP
7232 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
7233         YY_BREAK
7234 case 308:
7235 /* rule 308 can match eol */
7236 YY_RULE_SETUP
7237 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
7238         YY_BREAK
7239 case 309:
7240 YY_RULE_SETUP
7241 {
7242   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7243   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7244  }
7245         YY_BREAK
7246 case 310:
7247 YY_RULE_SETUP
7248 {
7249   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7250   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7251   switch (YY_START) {
7252    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7253   }
7254  }
7255         YY_BREAK
7256 case 311:
7257 YY_RULE_SETUP
7258 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7259         YY_BREAK
7260 case 312:
7261 YY_RULE_SETUP
7262 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7263         YY_BREAK
7264 case YY_STATE_EOF(AL_surfxml_router):
7265 FAIL("EOF in attribute list of `router' element.");
7266         YY_BREAK
7267
7268 case 313:
7269 /* rule 313 can match eol */
7270 YY_RULE_SETUP
7271 {
7272   LEAVE;
7273   ETag_surfxml_router();
7274   popbuffer(); /* attribute */
7275   switch (YY_START) {
7276    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7277   }
7278  }
7279         YY_BREAK
7280 case 314:
7281 /* rule 314 can match eol */
7282 YY_RULE_SETUP
7283 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7284         YY_BREAK
7285 case 315:
7286 YY_RULE_SETUP
7287 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7288         YY_BREAK
7289 case YY_STATE_EOF(E_surfxml_router):
7290 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7291         YY_BREAK
7292
7293 case 316:
7294 /* rule 316 can match eol */
7295 YY_RULE_SETUP
7296 FAIL("Starting tag <backbone> is not allowed here.");
7297         YY_BREAK
7298 case 317:
7299 /* rule 317 can match eol */
7300 YY_RULE_SETUP
7301 {
7302   AX_surfxml_backbone_id = 0;
7303   surfxml_backbone_id_isset = 0;
7304   AX_surfxml_backbone_bandwidth = 0;
7305   surfxml_backbone_bandwidth_isset = 0;
7306   AX_surfxml_backbone_latency = 0;
7307   surfxml_backbone_latency_isset = 0;
7308   ENTER(AL_surfxml_backbone); pushbuffer(0);
7309   }
7310         YY_BREAK
7311
7312 case 318:
7313 /* rule 318 can match eol */
7314 YY_RULE_SETUP
7315 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7316         YY_BREAK
7317 case 319:
7318 /* rule 319 can match eol */
7319 YY_RULE_SETUP
7320 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7321         YY_BREAK
7322 case 320:
7323 /* rule 320 can match eol */
7324 YY_RULE_SETUP
7325 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7326         YY_BREAK
7327 case 321:
7328 /* rule 321 can match eol */
7329 YY_RULE_SETUP
7330 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7331         YY_BREAK
7332 case 322:
7333 /* rule 322 can match eol */
7334 YY_RULE_SETUP
7335 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7336         YY_BREAK
7337 case 323:
7338 /* rule 323 can match eol */
7339 YY_RULE_SETUP
7340 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7341         YY_BREAK
7342 case 324:
7343 YY_RULE_SETUP
7344 {
7345   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7346   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7347   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7348   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7349  }
7350         YY_BREAK
7351 case 325:
7352 YY_RULE_SETUP
7353 {
7354   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7355   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7356   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7357   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7358   switch (YY_START) {
7359    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7360    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7361   }
7362  }
7363         YY_BREAK
7364 case 326:
7365 YY_RULE_SETUP
7366 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7367         YY_BREAK
7368 case 327:
7369 YY_RULE_SETUP
7370 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7371         YY_BREAK
7372 case YY_STATE_EOF(AL_surfxml_backbone):
7373 FAIL("EOF in attribute list of `backbone' element.");
7374         YY_BREAK
7375
7376 case 328:
7377 /* rule 328 can match eol */
7378 YY_RULE_SETUP
7379 {
7380   LEAVE;
7381   ETag_surfxml_backbone();
7382   popbuffer(); /* attribute */
7383   switch (YY_START) {
7384    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7385    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7386   }
7387  }
7388         YY_BREAK
7389 case 329:
7390 /* rule 329 can match eol */
7391 YY_RULE_SETUP
7392 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7393         YY_BREAK
7394 case 330:
7395 YY_RULE_SETUP
7396 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7397         YY_BREAK
7398 case YY_STATE_EOF(E_surfxml_backbone):
7399 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7400         YY_BREAK
7401
7402 case 331:
7403 /* rule 331 can match eol */
7404 YY_RULE_SETUP
7405 FAIL("Starting tag <link> is not allowed here.");
7406         YY_BREAK
7407 case 332:
7408 /* rule 332 can match eol */
7409 YY_RULE_SETUP
7410 {
7411   AX_surfxml_link_id = 0;
7412   surfxml_link_id_isset = 0;
7413   AX_surfxml_link_bandwidth = 0;
7414   surfxml_link_bandwidth_isset = 0;
7415   AX_surfxml_link_bandwidth_file = 0;
7416   surfxml_link_bandwidth_file_isset = 0;
7417   AX_surfxml_link_latency = 24;
7418   surfxml_link_latency_isset = 0;
7419   AX_surfxml_link_latency_file = 0;
7420   surfxml_link_latency_file_isset = 0;
7421   AX_surfxml_link_state = A_surfxml_link_state_ON;
7422   surfxml_link_state_isset = 0;
7423   AX_surfxml_link_state_file = 0;
7424   surfxml_link_state_file_isset = 0;
7425   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7426   surfxml_link_sharing_policy_isset = 0;
7427   ENTER(AL_surfxml_link); pushbuffer(0);
7428   }
7429         YY_BREAK
7430
7431 case 333:
7432 /* rule 333 can match eol */
7433 YY_RULE_SETUP
7434 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
7435         YY_BREAK
7436 case 334:
7437 /* rule 334 can match eol */
7438 YY_RULE_SETUP
7439 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
7440         YY_BREAK
7441 case 335:
7442 /* rule 335 can match eol */
7443 YY_RULE_SETUP
7444 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
7445         YY_BREAK
7446 case 336:
7447 /* rule 336 can match eol */
7448 YY_RULE_SETUP
7449 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
7450         YY_BREAK
7451 case 337:
7452 /* rule 337 can match eol */
7453 YY_RULE_SETUP
7454 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
7455         YY_BREAK
7456 case 338:
7457 /* rule 338 can match eol */
7458 YY_RULE_SETUP
7459 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
7460         YY_BREAK
7461 case 339:
7462 /* rule 339 can match eol */
7463 YY_RULE_SETUP
7464 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
7465         YY_BREAK
7466 case 340:
7467 /* rule 340 can match eol */
7468 YY_RULE_SETUP
7469 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
7470         YY_BREAK
7471 case 341:
7472 /* rule 341 can match eol */
7473 YY_RULE_SETUP
7474 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
7475         YY_BREAK
7476 case 342:
7477 /* rule 342 can match eol */
7478 YY_RULE_SETUP
7479 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
7480         YY_BREAK
7481 case 343:
7482 /* rule 343 can match eol */
7483 case 344:
7484 /* rule 344 can match eol */
7485 YY_RULE_SETUP
7486 A_surfxml_link_state = A_surfxml_link_state_ON;
7487         YY_BREAK
7488 case 345:
7489 /* rule 345 can match eol */
7490 case 346:
7491 /* rule 346 can match eol */
7492 YY_RULE_SETUP
7493 A_surfxml_link_state = A_surfxml_link_state_OFF;
7494         YY_BREAK
7495 case 347:
7496 /* rule 347 can match eol */
7497 YY_RULE_SETUP
7498 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
7499         YY_BREAK
7500 case 348:
7501 /* rule 348 can match eol */
7502 YY_RULE_SETUP
7503 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
7504         YY_BREAK
7505 case 349:
7506 /* rule 349 can match eol */
7507 case 350:
7508 /* rule 350 can match eol */
7509 YY_RULE_SETUP
7510 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7511         YY_BREAK
7512 case 351:
7513 /* rule 351 can match eol */
7514 case 352:
7515 /* rule 352 can match eol */
7516 YY_RULE_SETUP
7517 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7518         YY_BREAK
7519 case 353:
7520 /* rule 353 can match eol */
7521 case 354:
7522 /* rule 354 can match eol */
7523 YY_RULE_SETUP
7524 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7525         YY_BREAK
7526 case 355:
7527 YY_RULE_SETUP
7528 {
7529   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7530   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7531   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7532  }
7533         YY_BREAK
7534 case 356:
7535 YY_RULE_SETUP
7536 {
7537   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7538   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7539   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7540   switch (YY_START) {
7541    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7542    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7543   }
7544  }
7545         YY_BREAK
7546 case 357:
7547 YY_RULE_SETUP
7548 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7549         YY_BREAK
7550 case 358:
7551 YY_RULE_SETUP
7552 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7553         YY_BREAK
7554 case YY_STATE_EOF(AL_surfxml_link):
7555 FAIL("EOF in attribute list of `link' element.");
7556         YY_BREAK
7557
7558 case 359:
7559 /* rule 359 can match eol */
7560 YY_RULE_SETUP
7561 {
7562   LEAVE;
7563   ETag_surfxml_link();
7564   popbuffer(); /* attribute */
7565   switch (YY_START) {
7566    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7567    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7568   }
7569  }
7570         YY_BREAK
7571 case 360:
7572 /* rule 360 can match eol */
7573 YY_RULE_SETUP
7574 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7575         YY_BREAK
7576 case 361:
7577 YY_RULE_SETUP
7578 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7579         YY_BREAK
7580 case YY_STATE_EOF(E_surfxml_link):
7581 case YY_STATE_EOF(S_surfxml_link_2):
7582 case YY_STATE_EOF(S_surfxml_link):
7583 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7584         YY_BREAK
7585
7586 case 362:
7587 /* rule 362 can match eol */
7588 YY_RULE_SETUP
7589 FAIL("Starting tag <route> is not allowed here.");
7590         YY_BREAK
7591 case 363:
7592 /* rule 363 can match eol */
7593 YY_RULE_SETUP
7594 {
7595   AX_surfxml_route_src = 0;
7596   surfxml_route_src_isset = 0;
7597   AX_surfxml_route_dst = 0;
7598   surfxml_route_dst_isset = 0;
7599   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7600   surfxml_route_symmetrical_isset = 0;
7601   ENTER(AL_surfxml_route); pushbuffer(0);
7602   }
7603         YY_BREAK
7604
7605 case 364:
7606 /* rule 364 can match eol */
7607 YY_RULE_SETUP
7608 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
7609         YY_BREAK
7610 case 365:
7611 /* rule 365 can match eol */
7612 YY_RULE_SETUP
7613 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
7614         YY_BREAK
7615 case 366:
7616 /* rule 366 can match eol */
7617 YY_RULE_SETUP
7618 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
7619         YY_BREAK
7620 case 367:
7621 /* rule 367 can match eol */
7622 YY_RULE_SETUP
7623 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
7624         YY_BREAK
7625 case 368:
7626 /* rule 368 can match eol */
7627 case 369:
7628 /* rule 369 can match eol */
7629 YY_RULE_SETUP
7630 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7631         YY_BREAK
7632 case 370:
7633 /* rule 370 can match eol */
7634 case 371:
7635 /* rule 371 can match eol */
7636 YY_RULE_SETUP
7637 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7638         YY_BREAK
7639 case 372:
7640 YY_RULE_SETUP
7641 {
7642   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7643   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7644   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7645  }
7646         YY_BREAK
7647 case 373:
7648 YY_RULE_SETUP
7649 {
7650   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7651   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7652   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7653   switch (YY_START) {
7654    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7655   }
7656  }
7657         YY_BREAK
7658 case 374:
7659 YY_RULE_SETUP
7660 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7661         YY_BREAK
7662 case 375:
7663 YY_RULE_SETUP
7664 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7665         YY_BREAK
7666 case YY_STATE_EOF(AL_surfxml_route):
7667 FAIL("EOF in attribute list of `route' element.");
7668         YY_BREAK
7669
7670 case 376:
7671 /* rule 376 can match eol */
7672 YY_RULE_SETUP
7673 {
7674   LEAVE;
7675   ETag_surfxml_route();
7676   popbuffer(); /* attribute */
7677   switch (YY_START) {
7678    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7679   }
7680  }
7681         YY_BREAK
7682 case 377:
7683 /* rule 377 can match eol */
7684 YY_RULE_SETUP
7685 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7686         YY_BREAK
7687 case 378:
7688 YY_RULE_SETUP
7689 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7690         YY_BREAK
7691 case YY_STATE_EOF(S_surfxml_route):
7692 case YY_STATE_EOF(S_surfxml_route_2):
7693 case YY_STATE_EOF(E_surfxml_route):
7694 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7695         YY_BREAK
7696
7697 case 379:
7698 /* rule 379 can match eol */
7699 YY_RULE_SETUP
7700 FAIL("Starting tag <ASroute> is not allowed here.");
7701         YY_BREAK
7702 case 380:
7703 /* rule 380 can match eol */
7704 YY_RULE_SETUP
7705 {
7706   AX_surfxml_ASroute_src = 0;
7707   surfxml_ASroute_src_isset = 0;
7708   AX_surfxml_ASroute_dst = 0;
7709   surfxml_ASroute_dst_isset = 0;
7710   AX_surfxml_ASroute_gw_src = 0;
7711   surfxml_ASroute_gw_src_isset = 0;
7712   AX_surfxml_ASroute_gw_dst = 0;
7713   surfxml_ASroute_gw_dst_isset = 0;
7714   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7715   surfxml_ASroute_symmetrical_isset = 0;
7716   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7717   }
7718         YY_BREAK
7719
7720 case 381:
7721 /* rule 381 can match eol */
7722 YY_RULE_SETUP
7723 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
7724         YY_BREAK
7725 case 382:
7726 /* rule 382 can match eol */
7727 YY_RULE_SETUP
7728 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
7729         YY_BREAK
7730 case 383:
7731 /* rule 383 can match eol */
7732 YY_RULE_SETUP
7733 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
7734         YY_BREAK
7735 case 384:
7736 /* rule 384 can match eol */
7737 YY_RULE_SETUP
7738 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
7739         YY_BREAK
7740 case 385:
7741 /* rule 385 can match eol */
7742 YY_RULE_SETUP
7743 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
7744         YY_BREAK
7745 case 386:
7746 /* rule 386 can match eol */
7747 YY_RULE_SETUP
7748 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
7749         YY_BREAK
7750 case 387:
7751 /* rule 387 can match eol */
7752 YY_RULE_SETUP
7753 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7754         YY_BREAK
7755 case 388:
7756 /* rule 388 can match eol */
7757 YY_RULE_SETUP
7758 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7759         YY_BREAK
7760 case 389:
7761 /* rule 389 can match eol */
7762 case 390:
7763 /* rule 390 can match eol */
7764 YY_RULE_SETUP
7765 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7766         YY_BREAK
7767 case 391:
7768 /* rule 391 can match eol */
7769 case 392:
7770 /* rule 392 can match eol */
7771 YY_RULE_SETUP
7772 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7773         YY_BREAK
7774 case 393:
7775 YY_RULE_SETUP
7776 {
7777   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7778   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7779   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7780   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7781   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7782  }
7783         YY_BREAK
7784 case 394:
7785 YY_RULE_SETUP
7786 {
7787   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7788   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7789   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7790   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7791   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7792   switch (YY_START) {
7793    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;
7794   }
7795  }
7796         YY_BREAK
7797 case 395:
7798 YY_RULE_SETUP
7799 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7800         YY_BREAK
7801 case 396:
7802 YY_RULE_SETUP
7803 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7804         YY_BREAK
7805 case YY_STATE_EOF(AL_surfxml_ASroute):
7806 FAIL("EOF in attribute list of `ASroute' element.");
7807         YY_BREAK
7808
7809 case 397:
7810 /* rule 397 can match eol */
7811 YY_RULE_SETUP
7812 {
7813   LEAVE;
7814   ETag_surfxml_ASroute();
7815   popbuffer(); /* attribute */
7816   switch (YY_START) {
7817    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;
7818   }
7819  }
7820         YY_BREAK
7821 case 398:
7822 /* rule 398 can match eol */
7823 YY_RULE_SETUP
7824 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7825         YY_BREAK
7826 case 399:
7827 YY_RULE_SETUP
7828 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7829         YY_BREAK
7830 case YY_STATE_EOF(E_surfxml_ASroute):
7831 case YY_STATE_EOF(S_surfxml_ASroute):
7832 case YY_STATE_EOF(S_surfxml_ASroute_2):
7833 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7834         YY_BREAK
7835
7836 case 400:
7837 /* rule 400 can match eol */
7838 YY_RULE_SETUP
7839 FAIL("Starting tag <link_ctn> is not allowed here.");
7840         YY_BREAK
7841 case 401:
7842 /* rule 401 can match eol */
7843 YY_RULE_SETUP
7844 {
7845   AX_surfxml_link_ctn_id = 0;
7846   surfxml_link_ctn_id_isset = 0;
7847   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7848   surfxml_link_ctn_direction_isset = 0;
7849   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7850   }
7851         YY_BREAK
7852
7853 case 402:
7854 /* rule 402 can match eol */
7855 YY_RULE_SETUP
7856 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");} surfxml_link_ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
7857         YY_BREAK
7858 case 403:
7859 /* rule 403 can match eol */
7860 YY_RULE_SETUP
7861 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");}  surfxml_link_ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
7862         YY_BREAK
7863 case 404:
7864 /* rule 404 can match eol */
7865 case 405:
7866 /* rule 405 can match eol */
7867 YY_RULE_SETUP
7868 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7869         YY_BREAK
7870 case 406:
7871 /* rule 406 can match eol */
7872 case 407:
7873 /* rule 407 can match eol */
7874 YY_RULE_SETUP
7875 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7876         YY_BREAK
7877 case 408:
7878 /* rule 408 can match eol */
7879 case 409:
7880 /* rule 409 can match eol */
7881 YY_RULE_SETUP
7882 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7883         YY_BREAK
7884 case 410:
7885 YY_RULE_SETUP
7886 {
7887   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7888   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7889  }
7890         YY_BREAK
7891 case 411:
7892 YY_RULE_SETUP
7893 {
7894   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7895   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7896   switch (YY_START) {
7897    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7898    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7899    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7900    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7901   }
7902  }
7903         YY_BREAK
7904 case 412:
7905 YY_RULE_SETUP
7906 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7907         YY_BREAK
7908 case 413:
7909 YY_RULE_SETUP
7910 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7911         YY_BREAK
7912 case YY_STATE_EOF(AL_surfxml_link_ctn):
7913 FAIL("EOF in attribute list of `link_ctn' element.");
7914         YY_BREAK
7915
7916 case 414:
7917 /* rule 414 can match eol */
7918 YY_RULE_SETUP
7919 {
7920   LEAVE;
7921   ETag_surfxml_link_ctn();
7922   popbuffer(); /* attribute */
7923   switch (YY_START) {
7924    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7925    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7926    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7927    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7928   }
7929  }
7930         YY_BREAK
7931 case 415:
7932 /* rule 415 can match eol */
7933 YY_RULE_SETUP
7934 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7935         YY_BREAK
7936 case 416:
7937 YY_RULE_SETUP
7938 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7939         YY_BREAK
7940 case YY_STATE_EOF(E_surfxml_link_ctn):
7941 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7942         YY_BREAK
7943
7944 case 417:
7945 /* rule 417 can match eol */
7946 YY_RULE_SETUP
7947 FAIL("Starting tag <bypassRoute> is not allowed here.");
7948         YY_BREAK
7949 case 418:
7950 /* rule 418 can match eol */
7951 YY_RULE_SETUP
7952 {
7953   AX_surfxml_bypassRoute_src = 0;
7954   surfxml_bypassRoute_src_isset = 0;
7955   AX_surfxml_bypassRoute_dst = 0;
7956   surfxml_bypassRoute_dst_isset = 0;
7957   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7958   }
7959         YY_BREAK
7960
7961 case 419:
7962 /* rule 419 can match eol */
7963 YY_RULE_SETUP
7964 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7965         YY_BREAK
7966 case 420:
7967 /* rule 420 can match eol */
7968 YY_RULE_SETUP
7969 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7970         YY_BREAK
7971 case 421:
7972 /* rule 421 can match eol */
7973 YY_RULE_SETUP
7974 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7975         YY_BREAK
7976 case 422:
7977 /* rule 422 can match eol */
7978 YY_RULE_SETUP
7979 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7980         YY_BREAK
7981 case 423:
7982 YY_RULE_SETUP
7983 {
7984   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7985   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7986   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7987  }
7988         YY_BREAK
7989 case 424:
7990 YY_RULE_SETUP
7991 {
7992   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7993   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7994   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7995   switch (YY_START) {
7996    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7997   }
7998  }
7999         YY_BREAK
8000 case 425:
8001 YY_RULE_SETUP
8002 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8003         YY_BREAK
8004 case 426:
8005 YY_RULE_SETUP
8006 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8007         YY_BREAK
8008 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8009 FAIL("EOF in attribute list of `bypassRoute' element.");
8010         YY_BREAK
8011
8012 case 427:
8013 /* rule 427 can match eol */
8014 YY_RULE_SETUP
8015 {
8016   LEAVE;
8017   ETag_surfxml_bypassRoute();
8018   popbuffer(); /* attribute */
8019   switch (YY_START) {
8020    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8021   }
8022  }
8023         YY_BREAK
8024 case 428:
8025 /* rule 428 can match eol */
8026 YY_RULE_SETUP
8027 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8028         YY_BREAK
8029 case 429:
8030 YY_RULE_SETUP
8031 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8032         YY_BREAK
8033 case YY_STATE_EOF(S_surfxml_bypassRoute):
8034 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8035 case YY_STATE_EOF(E_surfxml_bypassRoute):
8036 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8037         YY_BREAK
8038
8039 case 430:
8040 /* rule 430 can match eol */
8041 YY_RULE_SETUP
8042 FAIL("Starting tag <bypassASroute> is not allowed here.");
8043         YY_BREAK
8044 case 431:
8045 /* rule 431 can match eol */
8046 YY_RULE_SETUP
8047 {
8048   AX_surfxml_bypassASroute_src = 0;
8049   surfxml_bypassASroute_src_isset = 0;
8050   AX_surfxml_bypassASroute_dst = 0;
8051   surfxml_bypassASroute_dst_isset = 0;
8052   AX_surfxml_bypassASroute_gw_src = 0;
8053   surfxml_bypassASroute_gw_src_isset = 0;
8054   AX_surfxml_bypassASroute_gw_dst = 0;
8055   surfxml_bypassASroute_gw_dst_isset = 0;
8056   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8057   }
8058         YY_BREAK
8059
8060 case 432:
8061 /* rule 432 can match eol */
8062 YY_RULE_SETUP
8063 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
8064         YY_BREAK
8065 case 433:
8066 /* rule 433 can match eol */
8067 YY_RULE_SETUP
8068 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
8069         YY_BREAK
8070 case 434:
8071 /* rule 434 can match eol */
8072 YY_RULE_SETUP
8073 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
8074         YY_BREAK
8075 case 435:
8076 /* rule 435 can match eol */
8077 YY_RULE_SETUP
8078 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
8079         YY_BREAK
8080 case 436:
8081 /* rule 436 can match eol */
8082 YY_RULE_SETUP
8083 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8084         YY_BREAK
8085 case 437:
8086 /* rule 437 can match eol */
8087 YY_RULE_SETUP
8088 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8089         YY_BREAK
8090 case 438:
8091 /* rule 438 can match eol */
8092 YY_RULE_SETUP
8093 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8094         YY_BREAK
8095 case 439:
8096 /* rule 439 can match eol */
8097 YY_RULE_SETUP
8098 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8099         YY_BREAK
8100 case 440:
8101 YY_RULE_SETUP
8102 {
8103   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8104   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8105   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8106   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8107   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8108  }
8109         YY_BREAK
8110 case 441:
8111 YY_RULE_SETUP
8112 {
8113   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8114   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8115   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8116   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8117   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8118   switch (YY_START) {
8119    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;
8120   }
8121  }
8122         YY_BREAK
8123 case 442:
8124 YY_RULE_SETUP
8125 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8126         YY_BREAK
8127 case 443:
8128 YY_RULE_SETUP
8129 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8130         YY_BREAK
8131 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8132 FAIL("EOF in attribute list of `bypassASroute' element.");
8133         YY_BREAK
8134
8135 case 444:
8136 /* rule 444 can match eol */
8137 YY_RULE_SETUP
8138 {
8139   LEAVE;
8140   ETag_surfxml_bypassASroute();
8141   popbuffer(); /* attribute */
8142   switch (YY_START) {
8143    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;
8144   }
8145  }
8146         YY_BREAK
8147 case 445:
8148 /* rule 445 can match eol */
8149 YY_RULE_SETUP
8150 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8151         YY_BREAK
8152 case 446:
8153 YY_RULE_SETUP
8154 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8155         YY_BREAK
8156 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8157 case YY_STATE_EOF(E_surfxml_bypassASroute):
8158 case YY_STATE_EOF(S_surfxml_bypassASroute):
8159 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8160         YY_BREAK
8161
8162 case 447:
8163 /* rule 447 can match eol */
8164 YY_RULE_SETUP
8165 FAIL("Starting tag <process> is not allowed here.");
8166         YY_BREAK
8167 case 448:
8168 /* rule 448 can match eol */
8169 YY_RULE_SETUP
8170 {
8171   AX_surfxml_process_host = 0;
8172   surfxml_process_host_isset = 0;
8173   AX_surfxml_process_function = 0;
8174   surfxml_process_function_isset = 0;
8175   AX_surfxml_process_start_time = 28;
8176   surfxml_process_start_time_isset = 0;
8177   AX_surfxml_process_kill_time = 33;
8178   surfxml_process_kill_time_isset = 0;
8179   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8180   surfxml_process_on_failure_isset = 0;
8181   ENTER(AL_surfxml_process); pushbuffer(0);
8182   }
8183         YY_BREAK
8184
8185 case 449:
8186 /* rule 449 can match eol */
8187 YY_RULE_SETUP
8188 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8189         YY_BREAK
8190 case 450:
8191 /* rule 450 can match eol */
8192 YY_RULE_SETUP
8193 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8194         YY_BREAK
8195 case 451:
8196 /* rule 451 can match eol */
8197 YY_RULE_SETUP
8198 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8199         YY_BREAK
8200 case 452:
8201 /* rule 452 can match eol */
8202 YY_RULE_SETUP
8203 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8204         YY_BREAK
8205 case 453:
8206 /* rule 453 can match eol */
8207 YY_RULE_SETUP
8208 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
8209         YY_BREAK
8210 case 454:
8211 /* rule 454 can match eol */
8212 YY_RULE_SETUP
8213 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
8214         YY_BREAK
8215 case 455:
8216 /* rule 455 can match eol */
8217 YY_RULE_SETUP
8218 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
8219         YY_BREAK
8220 case 456:
8221 /* rule 456 can match eol */
8222 YY_RULE_SETUP
8223 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
8224         YY_BREAK
8225 case 457:
8226 /* rule 457 can match eol */
8227 case 458:
8228 /* rule 458 can match eol */
8229 YY_RULE_SETUP
8230 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8231         YY_BREAK
8232 case 459:
8233 /* rule 459 can match eol */
8234 case 460:
8235 /* rule 460 can match eol */
8236 YY_RULE_SETUP
8237 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8238         YY_BREAK
8239 case 461:
8240 YY_RULE_SETUP
8241 {
8242   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8243   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8244   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8245  }
8246         YY_BREAK
8247 case 462:
8248 YY_RULE_SETUP
8249 {
8250   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8251   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8252   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8253   switch (YY_START) {
8254    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;
8255   }
8256  }
8257         YY_BREAK
8258 case 463:
8259 YY_RULE_SETUP
8260 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8261         YY_BREAK
8262 case 464:
8263 YY_RULE_SETUP
8264 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8265         YY_BREAK
8266 case YY_STATE_EOF(AL_surfxml_process):
8267 FAIL("EOF in attribute list of `process' element.");
8268         YY_BREAK
8269
8270 case 465:
8271 /* rule 465 can match eol */
8272 YY_RULE_SETUP
8273 {
8274   LEAVE;
8275   ETag_surfxml_process();
8276   popbuffer(); /* attribute */
8277   switch (YY_START) {
8278    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;
8279   }
8280  }
8281         YY_BREAK
8282 case 466:
8283 /* rule 466 can match eol */
8284 YY_RULE_SETUP
8285 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8286         YY_BREAK
8287 case 467:
8288 YY_RULE_SETUP
8289 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8290         YY_BREAK
8291 case YY_STATE_EOF(E_surfxml_process):
8292 case YY_STATE_EOF(S_surfxml_process):
8293 case YY_STATE_EOF(S_surfxml_process_2):
8294 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8295         YY_BREAK
8296
8297 case 468:
8298 /* rule 468 can match eol */
8299 YY_RULE_SETUP
8300 FAIL("Starting tag <argument> is not allowed here.");
8301         YY_BREAK
8302 case 469:
8303 /* rule 469 can match eol */
8304 YY_RULE_SETUP
8305 {
8306   AX_surfxml_argument_value = 0;
8307   surfxml_argument_value_isset = 0;
8308   ENTER(AL_surfxml_argument); pushbuffer(0);
8309   }
8310         YY_BREAK
8311
8312 case 470:
8313 /* rule 470 can match eol */
8314 YY_RULE_SETUP
8315 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
8316         YY_BREAK
8317 case 471:
8318 /* rule 471 can match eol */
8319 YY_RULE_SETUP
8320 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
8321         YY_BREAK
8322 case 472:
8323 YY_RULE_SETUP
8324 {
8325   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8326   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8327  }
8328         YY_BREAK
8329 case 473:
8330 YY_RULE_SETUP
8331 {
8332   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8333   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8334   switch (YY_START) {
8335    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8336   }
8337  }
8338         YY_BREAK
8339 case 474:
8340 YY_RULE_SETUP
8341 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8342         YY_BREAK
8343 case 475:
8344 YY_RULE_SETUP
8345 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8346         YY_BREAK
8347 case YY_STATE_EOF(AL_surfxml_argument):
8348 FAIL("EOF in attribute list of `argument' element.");
8349         YY_BREAK
8350
8351 case 476:
8352 /* rule 476 can match eol */
8353 YY_RULE_SETUP
8354 {
8355   LEAVE;
8356   ETag_surfxml_argument();
8357   popbuffer(); /* attribute */
8358   switch (YY_START) {
8359    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8360   }
8361  }
8362         YY_BREAK
8363 case 477:
8364 /* rule 477 can match eol */
8365 YY_RULE_SETUP
8366 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8367         YY_BREAK
8368 case 478:
8369 YY_RULE_SETUP
8370 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8371         YY_BREAK
8372 case YY_STATE_EOF(E_surfxml_argument):
8373 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8374         YY_BREAK
8375
8376 case 479:
8377 /* rule 479 can match eol */
8378 YY_RULE_SETUP
8379 FAIL("Starting tag <config> is not allowed here.");
8380         YY_BREAK
8381 case 480:
8382 /* rule 480 can match eol */
8383 YY_RULE_SETUP
8384 {
8385   AX_surfxml_config_id = 0;
8386   surfxml_config_id_isset = 0;
8387   ENTER(AL_surfxml_config); pushbuffer(0);
8388   }
8389         YY_BREAK
8390
8391 case 481:
8392 /* rule 481 can match eol */
8393 YY_RULE_SETUP
8394 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8395         YY_BREAK
8396 case 482:
8397 /* rule 482 can match eol */
8398 YY_RULE_SETUP
8399 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8400         YY_BREAK
8401 case 483:
8402 YY_RULE_SETUP
8403 {
8404   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8405  }
8406         YY_BREAK
8407 case 484:
8408 YY_RULE_SETUP
8409 {
8410   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8411   switch (YY_START) {
8412    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8413   }
8414  }
8415         YY_BREAK
8416 case 485:
8417 YY_RULE_SETUP
8418 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8419         YY_BREAK
8420 case 486:
8421 YY_RULE_SETUP
8422 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8423         YY_BREAK
8424 case YY_STATE_EOF(AL_surfxml_config):
8425 FAIL("EOF in attribute list of `config' element.");
8426         YY_BREAK
8427
8428 case 487:
8429 /* rule 487 can match eol */
8430 YY_RULE_SETUP
8431 {
8432   LEAVE;
8433   ETag_surfxml_config();
8434   popbuffer(); /* attribute */
8435   switch (YY_START) {
8436    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8437   }
8438  }
8439         YY_BREAK
8440 case 488:
8441 /* rule 488 can match eol */
8442 YY_RULE_SETUP
8443 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8444         YY_BREAK
8445 case 489:
8446 YY_RULE_SETUP
8447 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8448         YY_BREAK
8449 case YY_STATE_EOF(S_surfxml_config):
8450 case YY_STATE_EOF(S_surfxml_config_2):
8451 case YY_STATE_EOF(E_surfxml_config):
8452 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8453         YY_BREAK
8454
8455 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8456   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8457 case 490:
8458 /* rule 490 can match eol */
8459 YY_RULE_SETUP
8460 FAIL("Starting tag <prop> is not allowed here.");
8461         YY_BREAK
8462 case 491:
8463 /* rule 491 can match eol */
8464 YY_RULE_SETUP
8465 {
8466   AX_surfxml_prop_id = 0;
8467   surfxml_prop_id_isset = 0;
8468   AX_surfxml_prop_value = 0;
8469   surfxml_prop_value_isset = 0;
8470   ENTER(AL_surfxml_prop); pushbuffer(0);
8471   }
8472         YY_BREAK
8473
8474 case 492:
8475 /* rule 492 can match eol */
8476 YY_RULE_SETUP
8477 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
8478         YY_BREAK
8479 case 493:
8480 /* rule 493 can match eol */
8481 YY_RULE_SETUP
8482 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
8483         YY_BREAK
8484 case 494:
8485 /* rule 494 can match eol */
8486 YY_RULE_SETUP
8487 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
8488         YY_BREAK
8489 case 495:
8490 /* rule 495 can match eol */
8491 YY_RULE_SETUP
8492 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
8493         YY_BREAK
8494 case 496:
8495 YY_RULE_SETUP
8496 {
8497   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8498   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8499   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8500  }
8501         YY_BREAK
8502 case 497:
8503 YY_RULE_SETUP
8504 {
8505   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8506   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8507   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8508   switch (YY_START) {
8509    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8510    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8511    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8512    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8513    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8514    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8515    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8516   }
8517  }
8518         YY_BREAK
8519 case 498:
8520 YY_RULE_SETUP
8521 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8522         YY_BREAK
8523 case 499:
8524 YY_RULE_SETUP
8525 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8526         YY_BREAK
8527 case YY_STATE_EOF(AL_surfxml_prop):
8528 FAIL("EOF in attribute list of `prop' element.");
8529         YY_BREAK
8530
8531 case 500:
8532 /* rule 500 can match eol */
8533 YY_RULE_SETUP
8534 {
8535   LEAVE;
8536   ETag_surfxml_prop();
8537   popbuffer(); /* attribute */
8538   switch (YY_START) {
8539    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8540    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8541    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8542    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8543    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8544    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8545    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8546   }
8547  }
8548         YY_BREAK
8549 case 501:
8550 /* rule 501 can match eol */
8551 YY_RULE_SETUP
8552 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8553         YY_BREAK
8554 case 502:
8555 YY_RULE_SETUP
8556 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8557         YY_BREAK
8558 case YY_STATE_EOF(E_surfxml_prop):
8559 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8560         YY_BREAK
8561
8562 /* EPILOG: after the root element. */
8563
8564 case 503:
8565 YY_RULE_SETUP
8566 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8567         YY_BREAK
8568 case YY_STATE_EOF(EPILOG):
8569 SUCCEED;
8570         YY_BREAK
8571
8572 /* CHARACTER DATA. */
8573
8574 /* Non-defined standard entities... */
8575 case 504:
8576 YY_RULE_SETUP
8577 BUFFERPUTC('&');
8578         YY_BREAK
8579 case 505:
8580 YY_RULE_SETUP
8581 BUFFERPUTC('<');
8582         YY_BREAK
8583 case 506:
8584 YY_RULE_SETUP
8585 BUFFERPUTC('>');
8586         YY_BREAK
8587 case 507:
8588 YY_RULE_SETUP
8589 BUFFERPUTC('\'');
8590         YY_BREAK
8591 case 508:
8592 YY_RULE_SETUP
8593 BUFFERPUTC('"');
8594         YY_BREAK
8595 /* Character entities. */
8596 case 509:
8597 YY_RULE_SETUP
8598 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8599         YY_BREAK
8600 case 510:
8601 YY_RULE_SETUP
8602 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8603         YY_BREAK
8604
8605 case 511:
8606 /* rule 511 can match eol */
8607 case 512:
8608 /* rule 512 can match eol */
8609 case 513:
8610 /* rule 513 can match eol */
8611 case 514:
8612 /* rule 514 can match eol */
8613 YY_RULE_SETUP
8614 BUFFERPUTC('\n');
8615         YY_BREAK
8616
8617 case 515:
8618 YY_RULE_SETUP
8619 ENTER(CDATA);
8620         YY_BREAK
8621 case 516:
8622 YY_RULE_SETUP
8623 FAIL("Unexpected `]""]>' in character data.");
8624         YY_BREAK
8625
8626 case 517:
8627 YY_RULE_SETUP
8628 BUFFERDONE; LEAVE;
8629         YY_BREAK
8630 case YY_STATE_EOF(VALUE1):
8631 FAIL("EOF in literal (\"'\" expected).");
8632         YY_BREAK
8633
8634 case 518:
8635 YY_RULE_SETUP
8636 BUFFERDONE; LEAVE;
8637         YY_BREAK
8638 case YY_STATE_EOF(VALUE2):
8639 FAIL("EOF in literal (`\"' expected).");
8640         YY_BREAK
8641
8642 case 519:
8643 /* rule 519 can match eol */
8644 YY_RULE_SETUP
8645 BUFFERPUTC(surf_parse_text[0]);
8646         YY_BREAK
8647 case 520:
8648 YY_RULE_SETUP
8649 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8650         YY_BREAK
8651
8652 case 521:
8653 YY_RULE_SETUP
8654 LEAVE;
8655         YY_BREAK
8656 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8657 case 522:
8658 YY_RULE_SETUP
8659 BUFFERPUTC(surf_parse_text[0]);
8660         YY_BREAK
8661 case YY_STATE_EOF(CDATA):
8662 FAIL("EOF in CDATA section.");
8663         YY_BREAK
8664
8665 /* Impossible rules to avoid warnings from flex(1). */
8666 /* Ideally, this should be replaced by code in flexml.pl that
8667     generates just the states not covered by other rules. */
8668
8669 case 523:
8670 /* rule 523 can match eol */
8671 YY_RULE_SETUP
8672 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8673         YY_BREAK
8674
8675 case 524:
8676 YY_RULE_SETUP
8677 ECHO;
8678         YY_BREAK
8679 case YY_STATE_EOF(INITIAL):
8680 case YY_STATE_EOF(ROOT_surfxml_platform):
8681 case YY_STATE_EOF(S_surfxml_platform_2):
8682 case YY_STATE_EOF(S_surfxml_platform_5):
8683 case YY_STATE_EOF(S_surfxml_platform_7):
8684 case YY_STATE_EOF(S_surfxml_include_1):
8685 case YY_STATE_EOF(S_surfxml_random_1):
8686 case YY_STATE_EOF(S_surfxml_AS_2):
8687 case YY_STATE_EOF(S_surfxml_AS_5):
8688 case YY_STATE_EOF(S_surfxml_AS_7):
8689 case YY_STATE_EOF(S_surfxml_AS_10):
8690 case YY_STATE_EOF(S_surfxml_AS_12):
8691 case YY_STATE_EOF(S_surfxml_storage_type_1):
8692 case YY_STATE_EOF(S_surfxml_storage_1):
8693 case YY_STATE_EOF(S_surfxml_host_1):
8694 case YY_STATE_EOF(S_surfxml_link_1):
8695 case YY_STATE_EOF(S_surfxml_route_1):
8696 case YY_STATE_EOF(S_surfxml_ASroute_1):
8697 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8698 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8699 case YY_STATE_EOF(S_surfxml_process_1):
8700 case YY_STATE_EOF(S_surfxml_config_1):
8701 case YY_STATE_EOF(IMPOSSIBLE):
8702         yyterminate();
8703
8704         case YY_END_OF_BUFFER:
8705                 {
8706                 /* Amount of text matched not including the EOB char. */
8707                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8708
8709                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8710                 *yy_cp = (yy_hold_char);
8711                 YY_RESTORE_YY_MORE_OFFSET
8712
8713                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8714                         {
8715                         /* We're scanning a new file or input source.  It's
8716                          * possible that this happened because the user
8717                          * just pointed surf_parse_in at a new source and called
8718                          * surf_parse_lex().  If so, then we have to assure
8719                          * consistency between YY_CURRENT_BUFFER and our
8720                          * globals.  Here is the right place to do so, because
8721                          * this is the first action (other than possibly a
8722                          * back-up) that will match for the new input source.
8723                          */
8724                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8725                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8726                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8727                         }
8728
8729                 /* Note that here we test for yy_c_buf_p "<=" to the position
8730                  * of the first EOB in the buffer, since yy_c_buf_p will
8731                  * already have been incremented past the NUL character
8732                  * (since all states make transitions on EOB to the
8733                  * end-of-buffer state).  Contrast this with the test
8734                  * in input().
8735                  */
8736                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8737                         { /* This was really a NUL. */
8738                         yy_state_type yy_next_state;
8739
8740                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8741
8742                         yy_current_state = yy_get_previous_state(  );
8743
8744                         /* Okay, we're now positioned to make the NUL
8745                          * transition.  We couldn't have
8746                          * yy_get_previous_state() go ahead and do it
8747                          * for us because it doesn't know how to deal
8748                          * with the possibility of jamming (and we don't
8749                          * want to build jamming into it because then it
8750                          * will run more slowly).
8751                          */
8752
8753                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8754
8755                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8756
8757                         if ( yy_next_state )
8758                                 {
8759                                 /* Consume the NUL. */
8760                                 yy_cp = ++(yy_c_buf_p);
8761                                 yy_current_state = yy_next_state;
8762                                 goto yy_match;
8763                                 }
8764
8765                         else
8766                                 {
8767                                 yy_cp = (yy_c_buf_p);
8768                                 goto yy_find_action;
8769                                 }
8770                         }
8771
8772                 else switch ( yy_get_next_buffer(  ) )
8773                         {
8774                         case EOB_ACT_END_OF_FILE:
8775                                 {
8776                                 (yy_did_buffer_switch_on_eof) = 0;
8777
8778                                 if ( surf_parse_wrap( ) )
8779                                         {
8780                                         /* Note: because we've taken care in
8781                                          * yy_get_next_buffer() to have set up
8782                                          * surf_parse_text, we can now set up
8783                                          * yy_c_buf_p so that if some total
8784                                          * hoser (like flex itself) wants to
8785                                          * call the scanner after we return the
8786                                          * YY_NULL, it'll still work - another
8787                                          * YY_NULL will get returned.
8788                                          */
8789                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8790
8791                                         yy_act = YY_STATE_EOF(YY_START);
8792                                         goto do_action;
8793                                         }
8794
8795                                 else
8796                                         {
8797                                         if ( ! (yy_did_buffer_switch_on_eof) )
8798                                                 YY_NEW_FILE;
8799                                         }
8800                                 break;
8801                                 }
8802
8803                         case EOB_ACT_CONTINUE_SCAN:
8804                                 (yy_c_buf_p) =
8805                                         (yytext_ptr) + yy_amount_of_matched_text;
8806
8807                                 yy_current_state = yy_get_previous_state(  );
8808
8809                                 yy_cp = (yy_c_buf_p);
8810                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8811                                 goto yy_match;
8812
8813                         case EOB_ACT_LAST_MATCH:
8814                                 (yy_c_buf_p) =
8815                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8816
8817                                 yy_current_state = yy_get_previous_state(  );
8818
8819                                 yy_cp = (yy_c_buf_p);
8820                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8821                                 goto yy_find_action;
8822                         }
8823                 break;
8824                 }
8825
8826         default:
8827                 YY_FATAL_ERROR(
8828                         "fatal flex scanner internal error--no action found" );
8829         } /* end of action switch */
8830                 } /* end of scanning one token */
8831 } /* end of surf_parse_lex */
8832
8833 /* yy_get_next_buffer - try to read in a new buffer
8834  *
8835  * Returns a code representing an action:
8836  *      EOB_ACT_LAST_MATCH -
8837  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8838  *      EOB_ACT_END_OF_FILE - end of file
8839  */
8840 static int yy_get_next_buffer (void)
8841 {
8842         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8843         register char *source = (yytext_ptr);
8844         register int number_to_move, i;
8845         int ret_val;
8846
8847         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8848                 YY_FATAL_ERROR(
8849                 "fatal flex scanner internal error--end of buffer missed" );
8850
8851         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8852                 { /* Don't try to fill the buffer, so this is an EOF. */
8853                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8854                         {
8855                         /* We matched a single character, the EOB, so
8856                          * treat this as a final EOF.
8857                          */
8858                         return EOB_ACT_END_OF_FILE;
8859                         }
8860
8861                 else
8862                         {
8863                         /* We matched some text prior to the EOB, first
8864                          * process it.
8865                          */
8866                         return EOB_ACT_LAST_MATCH;
8867                         }
8868                 }
8869
8870         /* Try to read more data. */
8871
8872         /* First move last chars to start of buffer. */
8873         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8874
8875         for ( i = 0; i < number_to_move; ++i )
8876                 *(dest++) = *(source++);
8877
8878         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8879                 /* don't do the read, it's not guaranteed to return an EOF,
8880                  * just force an EOF
8881                  */
8882                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8883
8884         else
8885                 {
8886                         int num_to_read =
8887                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8888
8889                 while ( num_to_read <= 0 )
8890                         { /* Not enough room in the buffer - grow it. */
8891
8892                         /* just a shorter name for the current buffer */
8893                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8894
8895                         int yy_c_buf_p_offset =
8896                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8897
8898                         if ( b->yy_is_our_buffer )
8899                                 {
8900                                 int new_size = b->yy_buf_size * 2;
8901
8902                                 if ( new_size <= 0 )
8903                                         b->yy_buf_size += b->yy_buf_size / 8;
8904                                 else
8905                                         b->yy_buf_size *= 2;
8906
8907                                 b->yy_ch_buf = (char *)
8908                                         /* Include room in for 2 EOB chars. */
8909                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8910                                 }
8911                         else
8912                                 /* Can't grow it, we don't own it. */
8913                                 b->yy_ch_buf = 0;
8914
8915                         if ( ! b->yy_ch_buf )
8916                                 YY_FATAL_ERROR(
8917                                 "fatal error - scanner input buffer overflow" );
8918
8919                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8920
8921                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8922                                                 number_to_move - 1;
8923
8924                         }
8925
8926                 if ( num_to_read > YY_READ_BUF_SIZE )
8927                         num_to_read = YY_READ_BUF_SIZE;
8928
8929                 /* Read in more data. */
8930                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8931                         (yy_n_chars), (size_t) num_to_read );
8932
8933                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8934                 }
8935
8936         if ( (yy_n_chars) == 0 )
8937                 {
8938                 if ( number_to_move == YY_MORE_ADJ )
8939                         {
8940                         ret_val = EOB_ACT_END_OF_FILE;
8941                         surf_parse_restart(surf_parse_in  );
8942                         }
8943
8944                 else
8945                         {
8946                         ret_val = EOB_ACT_LAST_MATCH;
8947                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8948                                 YY_BUFFER_EOF_PENDING;
8949                         }
8950                 }
8951
8952         else
8953                 ret_val = EOB_ACT_CONTINUE_SCAN;
8954
8955         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8956                 /* Extend the array by 50%, plus the number we really need. */
8957                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8958                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8959                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8960                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8961         }
8962
8963         (yy_n_chars) += number_to_move;
8964         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8965         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8966
8967         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8968
8969         return ret_val;
8970 }
8971
8972 /* yy_get_previous_state - get the state just before the EOB char was reached */
8973
8974     static yy_state_type yy_get_previous_state (void)
8975 {
8976         register yy_state_type yy_current_state;
8977         register char *yy_cp;
8978     
8979         yy_current_state = (yy_start);
8980
8981         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8982                 {
8983                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8984                 if ( yy_accept[yy_current_state] )
8985                         {
8986                         (yy_last_accepting_state) = yy_current_state;
8987                         (yy_last_accepting_cpos) = yy_cp;
8988                         }
8989                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8990                         {
8991                         yy_current_state = (int) yy_def[yy_current_state];
8992                         if ( yy_current_state >= 3108 )
8993                                 yy_c = yy_meta[(unsigned int) yy_c];
8994                         }
8995                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8996                 }
8997
8998         return yy_current_state;
8999 }
9000
9001 /* yy_try_NUL_trans - try to make a transition on the NUL character
9002  *
9003  * synopsis
9004  *      next_state = yy_try_NUL_trans( current_state );
9005  */
9006     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9007 {
9008         register int yy_is_jam;
9009         register char *yy_cp = (yy_c_buf_p);
9010
9011         register YY_CHAR yy_c = 1;
9012         if ( yy_accept[yy_current_state] )
9013                 {
9014                 (yy_last_accepting_state) = yy_current_state;
9015                 (yy_last_accepting_cpos) = yy_cp;
9016                 }
9017         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9018                 {
9019                 yy_current_state = (int) yy_def[yy_current_state];
9020                 if ( yy_current_state >= 3108 )
9021                         yy_c = yy_meta[(unsigned int) yy_c];
9022                 }
9023         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9024         yy_is_jam = (yy_current_state == 3107);
9025
9026         return yy_is_jam ? 0 : yy_current_state;
9027 }
9028
9029 #ifndef YY_NO_INPUT
9030 #ifdef __cplusplus
9031     static int yyinput (void)
9032 #else
9033     static int input  (void)
9034 #endif
9035
9036 {
9037         int c;
9038     
9039         *(yy_c_buf_p) = (yy_hold_char);
9040
9041         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9042                 {
9043                 /* yy_c_buf_p now points to the character we want to return.
9044                  * If this occurs *before* the EOB characters, then it's a
9045                  * valid NUL; if not, then we've hit the end of the buffer.
9046                  */
9047                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9048                         /* This was really a NUL. */
9049                         *(yy_c_buf_p) = '\0';
9050
9051                 else
9052                         { /* need more input */
9053                         int offset = (yy_c_buf_p) - (yytext_ptr);
9054                         ++(yy_c_buf_p);
9055
9056                         switch ( yy_get_next_buffer(  ) )
9057                                 {
9058                                 case EOB_ACT_LAST_MATCH:
9059                                         /* This happens because yy_g_n_b()
9060                                          * sees that we've accumulated a
9061                                          * token and flags that we need to
9062                                          * try matching the token before
9063                                          * proceeding.  But for input(),
9064                                          * there's no matching to consider.
9065                                          * So convert the EOB_ACT_LAST_MATCH
9066                                          * to EOB_ACT_END_OF_FILE.
9067                                          */
9068
9069                                         /* Reset buffer status. */
9070                                         surf_parse_restart(surf_parse_in );
9071
9072                                         /*FALLTHROUGH*/
9073
9074                                 case EOB_ACT_END_OF_FILE:
9075                                         {
9076                                         if ( surf_parse_wrap( ) )
9077                                                 return EOF;
9078
9079                                         if ( ! (yy_did_buffer_switch_on_eof) )
9080                                                 YY_NEW_FILE;
9081 #ifdef __cplusplus
9082                                         return yyinput();
9083 #else
9084                                         return input();
9085 #endif
9086                                         }
9087
9088                                 case EOB_ACT_CONTINUE_SCAN:
9089                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9090                                         break;
9091                                 }
9092                         }
9093                 }
9094
9095         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9096         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9097         (yy_hold_char) = *++(yy_c_buf_p);
9098
9099         if ( c == '\n' )
9100                    
9101     surf_parse_lineno++;
9102 ;
9103
9104         return c;
9105 }
9106 #endif  /* ifndef YY_NO_INPUT */
9107
9108 /** Immediately switch to a different input stream.
9109  * @param input_file A readable stream.
9110  * 
9111  * @note This function does not reset the start condition to @c INITIAL .
9112  */
9113     void surf_parse_restart  (FILE * input_file )
9114 {
9115     
9116         if ( ! YY_CURRENT_BUFFER ){
9117         surf_parse_ensure_buffer_stack ();
9118                 YY_CURRENT_BUFFER_LVALUE =
9119             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9120         }
9121
9122         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9123         surf_parse__load_buffer_state( );
9124 }
9125
9126 /** Switch to a different input buffer.
9127  * @param new_buffer The new input buffer.
9128  * 
9129  */
9130     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9131 {
9132     
9133         /* TODO. We should be able to replace this entire function body
9134          * with
9135          *              surf_parse_pop_buffer_state();
9136          *              surf_parse_push_buffer_state(new_buffer);
9137      */
9138         surf_parse_ensure_buffer_stack ();
9139         if ( YY_CURRENT_BUFFER == new_buffer )
9140                 return;
9141
9142         if ( YY_CURRENT_BUFFER )
9143                 {
9144                 /* Flush out information for old buffer. */
9145                 *(yy_c_buf_p) = (yy_hold_char);
9146                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9147                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9148                 }
9149
9150         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9151         surf_parse__load_buffer_state( );
9152
9153         /* We don't actually know whether we did this switch during
9154          * EOF (surf_parse_wrap()) processing, but the only time this flag
9155          * is looked at is after surf_parse_wrap() is called, so it's safe
9156          * to go ahead and always set it.
9157          */
9158         (yy_did_buffer_switch_on_eof) = 1;
9159 }
9160
9161 static void surf_parse__load_buffer_state  (void)
9162 {
9163         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9164         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9165         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9166         (yy_hold_char) = *(yy_c_buf_p);
9167 }
9168
9169 /** Allocate and initialize an input buffer state.
9170  * @param file A readable stream.
9171  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9172  * 
9173  * @return the allocated buffer state.
9174  */
9175     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9176 {
9177         YY_BUFFER_STATE b;
9178     
9179         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9180         if ( ! b )
9181                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9182
9183         b->yy_buf_size = size;
9184
9185         /* yy_ch_buf has to be 2 characters longer than the size given because
9186          * we need to put in 2 end-of-buffer characters.
9187          */
9188         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9189         if ( ! b->yy_ch_buf )
9190                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9191
9192         b->yy_is_our_buffer = 1;
9193
9194         surf_parse__init_buffer(b,file );
9195
9196         return b;
9197 }
9198
9199 /** Destroy the buffer.
9200  * @param b a buffer created with surf_parse__create_buffer()
9201  * 
9202  */
9203     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9204 {
9205     
9206         if ( ! b )
9207                 return;
9208
9209         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9210                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9211
9212         if ( b->yy_is_our_buffer )
9213                 surf_parse_free((void *) b->yy_ch_buf  );
9214
9215         surf_parse_free((void *) b  );
9216 }
9217
9218 #ifndef __cplusplus
9219 extern int isatty (int );
9220 #endif /* __cplusplus */
9221     
9222 /* Initializes or reinitializes a buffer.
9223  * This function is sometimes called more than once on the same buffer,
9224  * such as during a surf_parse_restart() or at EOF.
9225  */
9226     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9227
9228 {
9229         int oerrno = errno;
9230     
9231         surf_parse__flush_buffer(b );
9232
9233         b->yy_input_file = file;
9234         b->yy_fill_buffer = 1;
9235
9236     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9237      * called from surf_parse_restart() or through yy_get_next_buffer.
9238      * In that case, we don't want to reset the lineno or column.
9239      */
9240     if (b != YY_CURRENT_BUFFER){
9241         b->yy_bs_lineno = 1;
9242         b->yy_bs_column = 0;
9243     }
9244
9245         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9246     
9247         errno = oerrno;
9248 }
9249
9250 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9251  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9252  * 
9253  */
9254     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9255 {
9256         if ( ! b )
9257                 return;
9258
9259         b->yy_n_chars = 0;
9260
9261         /* We always need two end-of-buffer characters.  The first causes
9262          * a transition to the end-of-buffer state.  The second causes
9263          * a jam in that state.
9264          */
9265         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9266         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9267
9268         b->yy_buf_pos = &b->yy_ch_buf[0];
9269
9270         b->yy_at_bol = 1;
9271         b->yy_buffer_status = YY_BUFFER_NEW;
9272
9273         if ( b == YY_CURRENT_BUFFER )
9274                 surf_parse__load_buffer_state( );
9275 }
9276
9277 /** Pushes the new state onto the stack. The new state becomes
9278  *  the current state. This function will allocate the stack
9279  *  if necessary.
9280  *  @param new_buffer The new state.
9281  *  
9282  */
9283 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9284 {
9285         if (new_buffer == NULL)
9286                 return;
9287
9288         surf_parse_ensure_buffer_stack();
9289
9290         /* This block is copied from surf_parse__switch_to_buffer. */
9291         if ( YY_CURRENT_BUFFER )
9292                 {
9293                 /* Flush out information for old buffer. */
9294                 *(yy_c_buf_p) = (yy_hold_char);
9295                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9296                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9297                 }
9298
9299         /* Only push if top exists. Otherwise, replace top. */
9300         if (YY_CURRENT_BUFFER)
9301                 (yy_buffer_stack_top)++;
9302         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9303
9304         /* copied from surf_parse__switch_to_buffer. */
9305         surf_parse__load_buffer_state( );
9306         (yy_did_buffer_switch_on_eof) = 1;
9307 }
9308
9309 /** Removes and deletes the top of the stack, if present.
9310  *  The next element becomes the new top.
9311  *  
9312  */
9313 void surf_parse_pop_buffer_state (void)
9314 {
9315         if (!YY_CURRENT_BUFFER)
9316                 return;
9317
9318         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9319         YY_CURRENT_BUFFER_LVALUE = NULL;
9320         if ((yy_buffer_stack_top) > 0)
9321                 --(yy_buffer_stack_top);
9322
9323         if (YY_CURRENT_BUFFER) {
9324                 surf_parse__load_buffer_state( );
9325                 (yy_did_buffer_switch_on_eof) = 1;
9326         }
9327 }
9328
9329 /* Allocates the stack if it does not exist.
9330  *  Guarantees space for at least one push.
9331  */
9332 static void surf_parse_ensure_buffer_stack (void)
9333 {
9334         int num_to_alloc;
9335     
9336         if (!(yy_buffer_stack)) {
9337
9338                 /* First allocation is just for 2 elements, since we don't know if this
9339                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9340                  * immediate realloc on the next call.
9341          */
9342                 num_to_alloc = 1;
9343                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9344                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9345                                                                 );
9346                 if ( ! (yy_buffer_stack) )
9347                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9348                                                                   
9349                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9350                                 
9351                 (yy_buffer_stack_max) = num_to_alloc;
9352                 (yy_buffer_stack_top) = 0;
9353                 return;
9354         }
9355
9356         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9357
9358                 /* Increase the buffer to prepare for a possible push. */
9359                 int grow_size = 8 /* arbitrary grow size */;
9360
9361                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9362                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9363                                                                 ((yy_buffer_stack),
9364                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9365                                                                 );
9366                 if ( ! (yy_buffer_stack) )
9367                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9368
9369                 /* zero only the new slots.*/
9370                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9371                 (yy_buffer_stack_max) = num_to_alloc;
9372         }
9373 }
9374
9375 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9376  * @param base the character buffer
9377  * @param size the size in bytes of the character buffer
9378  * 
9379  * @return the newly allocated buffer state object. 
9380  */
9381 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9382 {
9383         YY_BUFFER_STATE b;
9384     
9385         if ( size < 2 ||
9386              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9387              base[size-1] != YY_END_OF_BUFFER_CHAR )
9388                 /* They forgot to leave room for the EOB's. */
9389                 return 0;
9390
9391         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9392         if ( ! b )
9393                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9394
9395         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9396         b->yy_buf_pos = b->yy_ch_buf = base;
9397         b->yy_is_our_buffer = 0;
9398         b->yy_input_file = 0;
9399         b->yy_n_chars = b->yy_buf_size;
9400         b->yy_is_interactive = 0;
9401         b->yy_at_bol = 1;
9402         b->yy_fill_buffer = 0;
9403         b->yy_buffer_status = YY_BUFFER_NEW;
9404
9405         surf_parse__switch_to_buffer(b  );
9406
9407         return b;
9408 }
9409
9410 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9411  * scan from a @e copy of @a str.
9412  * @param yystr a NUL-terminated string to scan
9413  * 
9414  * @return the newly allocated buffer state object.
9415  * @note If you want to scan bytes that may contain NUL values, then use
9416  *       surf_parse__scan_bytes() instead.
9417  */
9418 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9419 {
9420     
9421         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9422 }
9423
9424 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9425  * scan from a @e copy of @a bytes.
9426  * @param yybytes the byte buffer to scan
9427  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9428  * 
9429  * @return the newly allocated buffer state object.
9430  */
9431 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9432 {
9433         YY_BUFFER_STATE b;
9434         char *buf;
9435         yy_size_t n;
9436         int i;
9437     
9438         /* Get memory for full buffer, including space for trailing EOB's. */
9439         n = _yybytes_len + 2;
9440         buf = (char *) surf_parse_alloc(n  );
9441         if ( ! buf )
9442                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9443
9444         for ( i = 0; i < _yybytes_len; ++i )
9445                 buf[i] = yybytes[i];
9446
9447         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9448
9449         b = surf_parse__scan_buffer(buf,n );
9450         if ( ! b )
9451                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9452
9453         /* It's okay to grow etc. this buffer, and we should throw it
9454          * away when we're done.
9455          */
9456         b->yy_is_our_buffer = 1;
9457
9458         return b;
9459 }
9460
9461     static void yy_push_state (int  new_state )
9462 {
9463         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9464                 {
9465                 yy_size_t new_size;
9466
9467                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9468                 new_size = (yy_start_stack_depth) * sizeof( int );
9469
9470                 if ( ! (yy_start_stack) )
9471                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9472
9473                 else
9474                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9475
9476                 if ( ! (yy_start_stack) )
9477                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9478                 }
9479
9480         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9481
9482         BEGIN(new_state);
9483 }
9484
9485     static void yy_pop_state  (void)
9486 {
9487         if ( --(yy_start_stack_ptr) < 0 )
9488                 YY_FATAL_ERROR( "start-condition stack underflow" );
9489
9490         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9491 }
9492
9493 #ifndef YY_EXIT_FAILURE
9494 #define YY_EXIT_FAILURE 2
9495 #endif
9496
9497 static void yy_fatal_error (yyconst char* msg )
9498 {
9499         (void) fprintf( stderr, "%s\n", msg );
9500         exit( YY_EXIT_FAILURE );
9501 }
9502
9503 /* Redefine yyless() so it works in section 3 code. */
9504
9505 #undef yyless
9506 #define yyless(n) \
9507         do \
9508                 { \
9509                 /* Undo effects of setting up surf_parse_text. */ \
9510         int yyless_macro_arg = (n); \
9511         YY_LESS_LINENO(yyless_macro_arg);\
9512                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9513                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9514                 (yy_hold_char) = *(yy_c_buf_p); \
9515                 *(yy_c_buf_p) = '\0'; \
9516                 surf_parse_leng = yyless_macro_arg; \
9517                 } \
9518         while ( 0 )
9519
9520 /* Accessor  methods (get/set functions) to struct members. */
9521
9522 /** Get the current line number.
9523  * 
9524  */
9525 int surf_parse_get_lineno  (void)
9526 {
9527         
9528     return surf_parse_lineno;
9529 }
9530
9531 /** Get the input stream.
9532  * 
9533  */
9534 FILE *surf_parse_get_in  (void)
9535 {
9536         return surf_parse_in;
9537 }
9538
9539 /** Get the output stream.
9540  * 
9541  */
9542 FILE *surf_parse_get_out  (void)
9543 {
9544         return surf_parse_out;
9545 }
9546
9547 /** Get the length of the current token.
9548  * 
9549  */
9550 int surf_parse_get_leng  (void)
9551 {
9552         return surf_parse_leng;
9553 }
9554
9555 /** Get the current token.
9556  * 
9557  */
9558
9559 char *surf_parse_get_text  (void)
9560 {
9561         return surf_parse_text;
9562 }
9563
9564 /** Set the current line number.
9565  * @param line_number
9566  * 
9567  */
9568 void surf_parse_set_lineno (int  line_number )
9569 {
9570     
9571     surf_parse_lineno = line_number;
9572 }
9573
9574 /** Set the input stream. This does not discard the current
9575  * input buffer.
9576  * @param in_str A readable stream.
9577  * 
9578  * @see surf_parse__switch_to_buffer
9579  */
9580 void surf_parse_set_in (FILE *  in_str )
9581 {
9582         surf_parse_in = in_str ;
9583 }
9584
9585 void surf_parse_set_out (FILE *  out_str )
9586 {
9587         surf_parse_out = out_str ;
9588 }
9589
9590 int surf_parse_get_debug  (void)
9591 {
9592         return surf_parse__flex_debug;
9593 }
9594
9595 void surf_parse_set_debug (int  bdebug )
9596 {
9597         surf_parse__flex_debug = bdebug ;
9598 }
9599
9600 static int yy_init_globals (void)
9601 {
9602         /* Initialization is the same as for the non-reentrant scanner.
9603      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9604      */
9605
9606     /* We do not touch surf_parse_lineno unless the option is enabled. */
9607     surf_parse_lineno =  1;
9608     
9609     (yy_buffer_stack) = 0;
9610     (yy_buffer_stack_top) = 0;
9611     (yy_buffer_stack_max) = 0;
9612     (yy_c_buf_p) = (char *) 0;
9613     (yy_init) = 0;
9614     (yy_start) = 0;
9615
9616     (yy_start_stack_ptr) = 0;
9617     (yy_start_stack_depth) = 0;
9618     (yy_start_stack) =  NULL;
9619
9620 /* Defined in main.c */
9621 #ifdef YY_STDINIT
9622     surf_parse_in = stdin;
9623     surf_parse_out = stdout;
9624 #else
9625     surf_parse_in = (FILE *) 0;
9626     surf_parse_out = (FILE *) 0;
9627 #endif
9628
9629     /* For future reference: Set errno on error, since we are called by
9630      * surf_parse_lex_init()
9631      */
9632     return 0;
9633 }
9634
9635 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9636 int surf_parse_lex_destroy  (void)
9637 {
9638     
9639     /* Pop the buffer stack, destroying each element. */
9640         while(YY_CURRENT_BUFFER){
9641                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9642                 YY_CURRENT_BUFFER_LVALUE = NULL;
9643                 surf_parse_pop_buffer_state();
9644         }
9645
9646         /* Destroy the stack itself. */
9647         surf_parse_free((yy_buffer_stack) );
9648         (yy_buffer_stack) = NULL;
9649
9650     /* Destroy the start condition stack. */
9651         surf_parse_free((yy_start_stack)  );
9652         (yy_start_stack) = NULL;
9653
9654     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9655      * surf_parse_lex() is called, initialization will occur. */
9656     yy_init_globals( );
9657
9658     return 0;
9659 }
9660
9661 /*
9662  * Internal utility routines.
9663  */
9664
9665 #ifndef yytext_ptr
9666 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9667 {
9668         register int i;
9669         for ( i = 0; i < n; ++i )
9670                 s1[i] = s2[i];
9671 }
9672 #endif
9673
9674 #ifdef YY_NEED_STRLEN
9675 static int yy_flex_strlen (yyconst char * s )
9676 {
9677         register int n;
9678         for ( n = 0; s[n]; ++n )
9679                 ;
9680
9681         return n;
9682 }
9683 #endif
9684
9685 void *surf_parse_alloc (yy_size_t  size )
9686 {
9687         return (void *) malloc( size );
9688 }
9689
9690 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9691 {
9692         /* The cast to (char *) in the following accommodates both
9693          * implementations that use char* generic pointers, and those
9694          * that use void* generic pointers.  It works with the latter
9695          * because both ANSI C and C++ allow castless assignment from
9696          * any pointer type to void*, and deal with argument conversions
9697          * as though doing an assignment.
9698          */
9699         return (void *) realloc( (char *) ptr, size );
9700 }
9701
9702 void surf_parse_free (void * ptr )
9703 {
9704         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9705 }
9706
9707 #define YYTABLES_NAME "yytables"
9708
9709 /* Element context stack lookup. */
9710 int surfxml_element_context(int i)
9711 {
9712   return (0<i && i<yy_start_stack_depth
9713           ? yy_start_stack[yy_start_stack_ptr - i]
9714           : 0);
9715 }
9716
9717 #ifdef FLEX_DEBUG
9718 void print_yy_stack(char* fmt, ...)
9719 {
9720   int i = 0; va_list ap; va_start(ap, fmt);
9721   vfprintf(stderr, fmt, ap);
9722   if (surfxml_statenames) {
9723       for (i=1; i<yy_start_stack_ptr; i++) {
9724           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9725       }
9726       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9727   }
9728   va_end(ap);
9729 }
9730
9731 void print_surfxml_bufferstack()
9732 {
9733     int i;
9734     fputs("Buffer: ", stderr);
9735     for (i = 0; i < blimit; i++) {
9736        if ( surfxml_bufferstack[i] == '\377' ) break;
9737          putc(surfxml_bufferstack[i], stderr);
9738     }
9739     putc('\n', stderr);
9740 }
9741
9742 static void debug_enter(int state, const char* statename) {
9743   yy_push_state(state);
9744   if (surf_parse__flex_debug) {
9745        print_yy_stack("--ENTER(%s) : ",statename);
9746        print_surfxml_bufferstack();
9747   }
9748 }
9749
9750 static void debug_leave(void) {
9751     if (surf_parse__flex_debug) {
9752         print_yy_stack("--LEAVE : ");
9753         print_surfxml_bufferstack();
9754     }
9755   yy_pop_state();
9756 }
9757
9758 static void debug_set(int state, const char* statename) {
9759   BEGIN(state);
9760   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9761 }
9762 #endif
9763
9764 static void cleanup(void)
9765 {
9766     if (surfxml_statenames) {
9767         free(surfxml_statenames);
9768         surfxml_statenames = NULL;
9769     }
9770     free(surfxml_bufferstack);
9771     surfxml_bufferstack = NULL;
9772
9773     free(indexstack);
9774     indexstack = NULL;
9775 }
9776
9777 static int fail(const char* fmt, ...)
9778 {
9779     int chars_left, used;
9780     va_list ap; va_start(ap, fmt);
9781 #ifdef FLEXML_yylineno
9782     used = sprintf(flexml_err_msg,
9783                    "Invalid XML (XML input line %d, state %d): ",
9784                    surf_parse_lineno, YY_START);
9785 #else
9786     used = sprintf(flexml_err_msg,
9787                    "Invalid XML (state %d): ",
9788                    YY_START);
9789 #endif
9790     chars_left = flexml_max_err_msg_size - used - 1;
9791     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9792     va_end(ap);
9793
9794 #ifndef FLEXML_quiet_parser
9795     /* print directly to sdterr */
9796     fprintf(stderr, "%s\n", flexml_err_msg);
9797     flexml_err_msg[0] = '\0';
9798 #endif
9799
9800     cleanup();
9801
9802     return 1;
9803 }
9804